@tricoteuses/assemblee 1.8.0 → 1.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/bugs/acteur-00010/plugin.test.js +2 -2
- package/lib/bugs/acteur-00010.js +3 -3
- package/lib/bugs/agenda-00002/plugin.test.js +3 -3
- package/lib/bugs/agenda-00002.js +5 -5
- package/lib/bugs/agenda-00008/plugin.test.js +2 -2
- package/lib/bugs/agenda-00008.js +3 -3
- package/lib/bugs/agenda-00011/plugin.test.js +6 -6
- package/lib/bugs/agenda-00011.js +8 -8
- package/lib/bugs.js +11 -11
- package/lib/cleaners/index.d.ts +1 -0
- package/lib/cleaners/index.js +8 -1
- package/lib/cleaners/index.mjs +2 -1
- package/lib/cleaners/scrutins.js +2 -1
- package/lib/cleaners/scrutins.mjs +3 -2
- package/lib/cleaners/textes_loi.d.ts +1 -0
- package/lib/cleaners/textes_loi.js +12 -0
- package/lib/cleaners/textes_loi.mjs +5 -0
- package/lib/cleaners/xml.d.ts +3 -0
- package/lib/cleaners/xml.js +13 -1
- package/lib/cleaners/xml.mjs +11 -1
- package/lib/datasets.d.ts +9 -2
- package/lib/datasets.js +24 -3
- package/lib/datasets.mjs +24 -3
- package/lib/dates.js +3 -3
- package/lib/examples/PIONANR5L15B0020/input.d.ts +2 -0
- package/lib/examples/PIONANR5L15B0020/input.js +10 -0
- package/lib/examples/PIONANR5L15B0020/input.mjs +193 -0
- package/lib/examples/PRJLANR5L16B0914/input.d.ts +2 -0
- package/lib/examples/PRJLANR5L16B0914/input.js +10 -0
- package/lib/examples/PRJLANR5L16B0914/input.mjs +322 -0
- package/lib/examples/PRJLANR5L16B2014/input.d.ts +2 -0
- package/lib/examples/PRJLANR5L16B2014/input.js +10 -0
- package/lib/examples/PRJLANR5L16B2014/input.mjs +577 -0
- package/lib/examples/PRJLANR5L16B2424/input.d.ts +2 -0
- package/lib/examples/PRJLANR5L16B2424/input.js +10 -0
- package/lib/examples/PRJLANR5L16B2424/input.mjs +322 -0
- package/lib/examples/PRJLANR5L16B2462/input.d.ts +2 -0
- package/lib/examples/PRJLANR5L16B2462/input.js +10 -0
- package/lib/examples/PRJLANR5L16B2462/input.mjs +1308 -0
- package/lib/loaders.d.ts +5 -0
- package/lib/loaders.js +308 -262
- package/lib/loaders.mjs +16 -3
- package/lib/logger.d.ts +16 -0
- package/lib/logger.js +35 -0
- package/lib/logger.mjs +26 -0
- package/lib/parsers/documents.js +2 -2
- package/lib/parsers/textes_lois.d.ts +16 -1
- package/lib/parsers/textes_lois.js +733 -28
- package/lib/parsers/textes_lois.mjs +587 -22
- package/lib/raw_types/acteurs_et_organes.js +1 -1
- package/lib/raw_types/agendas.js +1 -1
- package/lib/raw_types/amendements.js +1 -1
- package/lib/raw_types/debats.js +1 -1
- package/lib/raw_types/dossiers_legislatifs.js +1 -1
- package/lib/raw_types/questions.js +1 -1
- package/lib/raw_types/scrutins.d.ts +18 -13
- package/lib/raw_types/scrutins.js +28 -14
- package/lib/raw_types/scrutins.mjs +28 -14
- package/lib/raw_types/textes_loi.d.ts +93 -0
- package/lib/raw_types/textes_loi.js +429 -0
- package/lib/raw_types/textes_loi.mjs +378 -0
- package/lib/scripts/bugs_helper.js +9 -9
- package/lib/scripts/document_dossiers_legislatifs.js +1 -1
- package/lib/scripts/process_open_dataset.d.ts +17 -0
- package/lib/scripts/process_open_dataset.js +302 -0
- package/lib/scripts/process_open_dataset.mjs +136 -0
- package/lib/scripts/process_textes_loi_dataset.d.ts +7 -0
- package/lib/scripts/process_textes_loi_dataset.js +374 -0
- package/lib/scripts/process_textes_loi_dataset.mjs +237 -0
- package/lib/scripts/raw_types_from_amendements.js +2 -2
- package/lib/scripts/reorganize_data.js +1 -1
- package/lib/scripts/reorganize_data.mjs +1 -1
- package/lib/scripts/retrieve_deputes_photos.js +3 -3
- package/lib/scripts/retrieve_documents.js +4 -4
- package/lib/scripts/retrieve_open_data.js +41 -279
- package/lib/scripts/retrieve_open_data.mjs +13 -126
- package/lib/scripts/retrieve_pending_amendments.js +2 -2
- package/lib/scripts/retrieve_senateurs_photos.js +2 -2
- package/lib/scripts/retrieve_textes_lois.js +2 -2
- package/lib/scripts/shared/cli_helpers.d.ts +5 -0
- package/lib/scripts/shared/cli_helpers.js +7 -2
- package/lib/scripts/shared/cli_helpers.mjs +6 -1
- package/lib/scripts/test_iter_load.js +25 -10
- package/lib/scripts/test_iter_load.mjs +19 -11
- package/lib/scripts/validate_json.js +3 -3
- package/lib/types/acteurs_et_organes.js +1 -1
- package/lib/types/agendas.js +1 -1
- package/lib/types/amendements.js +1 -1
- package/lib/types/debats.js +1 -1
- package/lib/types/dossiers_legislatifs.js +1 -1
- package/lib/types/questions.js +1 -1
- package/lib/types/scrutins.d.ts +6 -3
- package/lib/types/scrutins.js +13 -7
- package/lib/types/scrutins.mjs +13 -7
- package/lib/types/textes_loi.d.ts +94 -0
- package/lib/types/textes_loi.js +429 -0
- package/lib/types/textes_loi.mjs +378 -0
- package/package.json +13 -12
- package/lib/scripts/retrieve_textes_lois_llm.d.ts +0 -1
- package/lib/scripts/retrieve_textes_lois_llm.js +0 -188
- package/lib/scripts/retrieve_textes_lois_llm.mjs +0 -85
|
@@ -652,4 +652,4 @@ function main(argv) {
|
|
|
652
652
|
|
|
653
653
|
/* istanbul ignore if */
|
|
654
654
|
if (process.argv[1].endsWith("document_dossiers_legislatifs.ts")) process.exit(main(process.argv));
|
|
655
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29tbWFuZExpbmVBcmdzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfY29tbWFuZExpbmVVc2FnZSIsIl9hc3NlcnQiLCJfZmlsZV9zeXN0ZW1zIiwiX0xlY3R1cmVNYXBwaW5nIiwiZSIsIl9fZXNNb2R1bGUiLCJfc2xpY2VkVG9BcnJheSIsInIiLCJfYXJyYXlXaXRoSG9sZXMiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVSZXN0IiwiVHlwZUVycm9yIiwibCIsInQiLCJTeW1ib2wiLCJpdGVyYXRvciIsIm4iLCJpIiwidSIsImEiLCJmIiwibyIsImNhbGwiLCJuZXh0IiwiT2JqZWN0IiwiZG9uZSIsInB1c2giLCJ2YWx1ZSIsImxlbmd0aCIsIkFycmF5IiwiaXNBcnJheSIsIl90b0NvbnN1bWFibGVBcnJheSIsIl9hcnJheVdpdGhvdXRIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVTcHJlYWQiLCJmcm9tIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJfY2FsbFN1cGVyIiwiX2dldFByb3RvdHlwZU9mIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4iLCJfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiUmVmbGVjdCIsImNvbnN0cnVjdCIsImNvbnN0cnVjdG9yIiwiYXBwbHkiLCJfdHlwZW9mIiwiX2Fzc2VydFRoaXNJbml0aWFsaXplZCIsIlJlZmVyZW5jZUVycm9yIiwiQm9vbGVhbiIsInByb3RvdHlwZSIsInZhbHVlT2YiLCJzZXRQcm90b3R5cGVPZiIsImdldFByb3RvdHlwZU9mIiwiYmluZCIsIl9fcHJvdG9fXyIsIl9pbmhlcml0cyIsImNyZWF0ZSIsIndyaXRhYmxlIiwiY29uZmlndXJhYmxlIiwiZGVmaW5lUHJvcGVydHkiLCJfc2V0UHJvdG90eXBlT2YiLCJfZGVmaW5lUHJvcGVydGllcyIsImVudW1lcmFibGUiLCJfdG9Qcm9wZXJ0eUtleSIsImtleSIsIl9jcmVhdGVDbGFzcyIsIl9jbGFzc0NhbGxDaGVjayIsIl9kZWZpbmVQcm9wZXJ0eSIsIl90b1ByaW1pdGl2ZSIsInRvUHJpbWl0aXZlIiwiU3RyaW5nIiwiTnVtYmVyIiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJfbiIsIkYiLCJzIiwidG9TdHJpbmciLCJzbGljZSIsIm5hbWUiLCJ0ZXN0IiwicGFyc2VBcmdzIiwiYXJndiIsIm9wdGlvbnNEZWZpbml0aW9ucyIsImRlc2NyaXB0aW9uIiwiZGVmYXVsdE9wdGlvbiIsIm11bHRpcGxlIiwidHlwZSIsInNlY3Rpb25zIiwiaGVhZGVyIiwiY29udGVudCIsIm9wdGlvbkxpc3QiLCJvcHRpb25zIiwiY29tbWFuZExpbmVBcmdzIiwiY29uc29sZSIsImVycm9yIiwiaGVscCIsInVzYWdlIiwiY29tbWFuZExpbmVVc2FnZSIsIndhcm4iLCJlcVNldCIsImFzIiwiYnMiLCJzaXplIiwiX2l0ZXJhdG9yIiwiX3N0ZXAiLCJoYXMiLCJlcnIiLCJDb2RlMlBhdHRlcm4iLCJwYXR0ZXJuIiwiY2hpbGRyZW4iLCJfcGF0dGVybl8iLCJfbWF0Y2hfY291bnRfIiwiYXNzaWduIiwiQ29kZTJQYXR0ZXJuQ29tRm9uZCIsIl9Db2RlMlBhdHRlcm4yIiwiTGVjdHVyZU1hcHBpbmciLCJTZXQiLCJhZGQiLCJhY3RlIiwiY29kZXMiLCJjb2RlQWN0ZSIsImdldFR5cGUiLCJsaWJlbGxlQWN0ZSIsIm5vbUNhbm9uaXF1ZSIsImxpYmVsbGUiLCJyZW1hcCIsInR5cGVzIiwibWVyZ2VDb2RlcyIsIl9pIiwiX0FycmF5JGZyb20iLCJjIiwicHJpbnRBbmNob3JzIiwiX2kyIiwiX0FycmF5JGZyb20yIiwiY29kZSIsImxvZyIsImNvbmNhdCIsImdldENvZGVzIiwiam9pbiIsImlzTGVjdHVyZSIsIm1hdGNoIiwiY29kZXNfbGVjdHVyZV9yZWdleHAiLCJFcnJvciIsIm1hcCIsInJlcGxhY2UiLCJnZXRDb2RlQWN0ZSIsIlJlZ0V4cCIsImNvZGVzX2xlY3R1cmUiLCJMZWN0dXJlTWFwcGVyIiwibWFwcGluZyIsImNvbGxlY3QiLCJ1bmRlZmluZWQiLCJsZWN0dXJlcyIsIkFjdGVzRG9jdW1lbnRhdGlvbiIsInNhbml0eUNoZWNrcyIsInZlcmJvc2UiLCJhcmd1bWVudHMiLCJsZWN0dXJlIiwiQ01QIiwiQ0MiLCJQUk9NIiwiQU4yMSIsIkFOTFVOSSIsIlLDqXNvbHV0aW9uIiwiQU4yMCIsIkVVIiwiSW1tdW5pdMOpIiwicHJvY2VkdXJlcyIsImNvZGUycGF0dGVybiIsIndhbGtGaWxlcyIsImRhdGEiLCJhY3Rpb24iLCJfaXRlcmF0b3IyIiwiZ2V0RmlsZXMiLCJfc3RlcDIiLCJmaWxlIiwiZG9zc2llciIsImxvYWQiLCJwcm9jZWR1cmUiLCJyZW1hcFByb2NlZHVyZSIsInByb2NlZHVyZVBhcmxlbWVudGFpcmUiLCJhY3Rlc0xlZ2lzbGF0aWZzIiwiY29sbGVjdEZpbGVzIiwiX3RoaXMiLCJfYWN0ZXMiLCJfYzJwIiwiX3BhcmVudCIsInByb2Nlc3NGaWxlcyIsIl90aGlzMiIsImFjdGVzIiwiYzJwIiwicGFyZW50IiwibWVyZ2UiLCJ2YWxpZGF0ZSIsInJlbWFwQWN0ZXMiLCJyZXN1bHRzIiwiX2l0ZXJhdG9yMyIsIl9zdGVwMyIsImxlY3R1cmVNYXBwZXIiLCJjb2xsZWN0QWN0ZXMiLCJfaXRlcmF0b3I0IiwiX3N0ZXA0IiwibWVyZ2VfcHJvY2VkdXJlcyIsIk1hcCIsInJlbWFwcGVkUHJvY2VkdXJlcyIsImdldCIsIm9yZGVyZWRDb2RlcyIsIm9yZGVyZWQiLCJ4IiwiYXNzZXJ0IiwidmFsaWRhdGVDaHJvbm9sb2d5Iiwic2VxdWVuY2UiLCJtZXJnZUFjdGUiLCJzaG9ydENvZGUiLCJ4c2lUeXBlIiwiX2l0ZXJhdG9yNSIsIl9zdGVwNSIsIl9pdGVyYXRvcjYiLCJfc3RlcDYiLCJ2YWxpZGF0ZUxldmVsIiwicGF0aCIsIl9pMyIsIl9hcnIiLCJlbnRyaWVzIiwiX2FyciRfaSIsInByaW50RW50cnkiLCJlbnRyeSIsInRpdGxlIiwidW5kZXJsaW5lIiwiYWRkQW5jaG9ycyIsImFuY2hvcnNQcmludGVkIiwiYW5jaG9ycyIsInJlbmFtZUNNUCIsInN0YXJ0c1dpdGgiLCJlbmRzV2l0aCIsInByaW50TGV2ZWwiLCJrZXlzIiwiX2l0ZXJhdG9yNyIsIl9zdGVwNyIsInN1YnN0cmluZyIsInByaW50Q29kZXMiLCJfaTQiLCJfT2JqZWN0JGtleXMiLCJwcmludEFuY2hvcnNJbmRleCIsIl9pNSIsIl9BcnJheSRmcm9tMyIsImdldEFnZ3JlZ2F0ZWQiLCJyZW1hcHBlZCIsInByaW50IiwiX2k2IiwiX2FycjIiLCJfYXJyMiRfaSIsImFnZ3JlZ2F0ZWQiLCJtYWluIiwiZG9jIiwicHJvY2VzcyIsImV4aXQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyaXB0cy9kb2N1bWVudF9kb3NzaWVyc19sZWdpc2xhdGlmcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY29tbWFuZExpbmVBcmdzIGZyb20gXCJjb21tYW5kLWxpbmUtYXJnc1wiXG5pbXBvcnQgY29tbWFuZExpbmVVc2FnZSBmcm9tIFwiY29tbWFuZC1saW5lLXVzYWdlXCJcbmltcG9ydCBhc3NlcnQgZnJvbSBcImFzc2VydFwiXG5pbXBvcnQgeyBsb2FkLCBnZXRGaWxlcyB9IGZyb20gXCIuLi9maWxlX3N5c3RlbXNcIlxuXG5mdW5jdGlvbiBwYXJzZUFyZ3MoYXJndjogc3RyaW5nW10pOiBhbnkge1xuICBjb25zdCBvcHRpb25zRGVmaW5pdGlvbnMgPSBbXG4gICAge1xuICAgICAgZGVzY3JpcHRpb246IFwicGF0aG5hbWUgdG8gYSBKU09OIGZpbGUgb3IgYSBnbG9iIHBhdHRlcm4gdG8gSlNPTiBmaWxlc1wiLFxuICAgICAgZGVmYXVsdE9wdGlvbjogdHJ1ZSxcbiAgICAgIG11bHRpcGxlOiB0cnVlLFxuICAgICAgbmFtZTogXCJkYXRhXCIsXG4gICAgICB0eXBlOiBTdHJpbmcsXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiBcIm5vLXNhbml0eS1jaGVja3NcIixcbiAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgICBkZXNjcmlwdGlvbjogXCJEbyBub3QgcGVyZm9ybSBzYW5pdHkgY2hlY2tzLlwiLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogXCJ2ZXJib3NlXCIsXG4gICAgICB0eXBlOiBCb29sZWFuLFxuICAgICAgZGVzY3JpcHRpb246IFwiaW5jcmVhc2UgdmVyYm9zaXR5XCIsXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiBcImhlbHBcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlByaW50IHRoaXMgdXNhZ2UgZ3VpZGUuXCIsXG4gICAgfSxcbiAgXVxuICBjb25zdCBzZWN0aW9ucyA9IFtcbiAgICB7XG4gICAgICBoZWFkZXI6IFwiQWlkZSDDoCBsYSBkb2N1bWVudGF0aW9uIGR1IGRvc3NpZXIgbMOpZ2lzbGF0aWZcIixcbiAgICAgIGNvbnRlbnQ6IFwiR8OpbsOocmUgdW5lIGhpw6lyYXJjaGllIGRlcyBhY3RlcyBsw6lnaXNsYXRpZnNcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIGhlYWRlcjogXCJPcHRpb25zXCIsXG4gICAgICBvcHRpb25MaXN0OiBvcHRpb25zRGVmaW5pdGlvbnMsXG4gICAgfSxcbiAgXVxuICBjb25zdCBvcHRpb25zID0gY29tbWFuZExpbmVBcmdzKG9wdGlvbnNEZWZpbml0aW9ucywge1xuICAgIGFyZ3Y6IGFyZ3YsXG4gIH0pXG4gIGlmICghKFwiaGVscFwiIGluIG9wdGlvbnMpICYmICEoXCJkYXRhXCIgaW4gb3B0aW9ucykpIHtcbiAgICBjb25zb2xlLmVycm9yKFwiLS1kYXRhIGlzIG1hbmRhdG9yeVwiKVxuICAgIG9wdGlvbnMuaGVscCA9IHRydWVcbiAgfVxuICBpZiAoXCJoZWxwXCIgaW4gb3B0aW9ucykge1xuICAgIGNvbnN0IHVzYWdlID0gY29tbWFuZExpbmVVc2FnZShzZWN0aW9ucylcbiAgICBjb25zb2xlLndhcm4odXNhZ2UpXG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICByZXR1cm4gb3B0aW9uc1xufVxuXG5mdW5jdGlvbiBlcVNldChhczogU2V0PHN0cmluZz4sIGJzOiBTZXQ8c3RyaW5nPik6IGJvb2xlYW4ge1xuICBpZiAoYXMuc2l6ZSAhPT0gYnMuc2l6ZSkgcmV0dXJuIGZhbHNlXG4gIGZvciAodmFyIGEgb2YgYXMpIGlmICghYnMuaGFzKGEpKSByZXR1cm4gZmFsc2VcbiAgcmV0dXJuIHRydWVcbn1cblxuY2xhc3MgQ29kZTJQYXR0ZXJuIHtcbiAgX3BhdHRlcm5fOiBhbnlcbiAgX21hdGNoX2NvdW50XzogbnVtYmVyXG4gIGNvbnN0cnVjdG9yKHBhdHRlcm46IGFueSwgY2hpbGRyZW46IGFueSkge1xuICAgIHRoaXMuX3BhdHRlcm5fID0gcGF0dGVyblxuICAgIHRoaXMuX21hdGNoX2NvdW50XyA9IDBcbiAgICBPYmplY3QuYXNzaWduKHRoaXMsIGNoaWxkcmVuKVxuICB9XG59XG5cbmNsYXNzIENvZGUyUGF0dGVybkNvbUZvbmQgZXh0ZW5kcyBDb2RlMlBhdHRlcm4ge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihcIl4vU0FJU0lFLygvTk9NSU4vKSooL1JFVU5JT04vKSooL1JBUFBPUlQvKSokXCIsIHt9KVxuICB9XG59XG5cbmNsYXNzIExlY3R1cmVNYXBwaW5nIHtcbiAgbGliZWxsZTogYW55ID0ge31cbiAgY29kZXM6IGFueSA9IG5ldyBTZXQoKVxuXG4gIHN0YXRpYyBjb2Rlc19sZWN0dXJlOiBzdHJpbmdbXSA9IFtcbiAgICBcIkFOMVwiLFxuICAgIFwiU04xXCIsXG4gICAgXCJBTk5MRUNcIixcbiAgICBcIlNOTkxFQ1wiLFxuICAgIFwiQU5MREVGXCIsXG4gICAgXCJBTjJcIixcbiAgICBcIlNOMlwiLFxuICAgIFwiU04zXCIsXG4gIF1cbiAgc3RhdGljIGNvZGVzX2xlY3R1cmVfcmVnZXhwOiBhbnkgPSBuZXcgUmVnRXhwKFxuICAgIFwiXig/OlwiICsgTGVjdHVyZU1hcHBpbmcuY29kZXNfbGVjdHVyZS5qb2luKFwifFwiKSArIFwiKSgtLiopPyRcIixcbiAgKVxuXG4gIHN0YXRpYyBpc0xlY3R1cmUoYWN0ZTogYW55KSB7XG4gICAgcmV0dXJuIGFjdGUuY29kZUFjdGUubWF0Y2goTGVjdHVyZU1hcHBpbmcuY29kZXNfbGVjdHVyZV9yZWdleHApXG4gIH1cblxuICBzdGF0aWMgZ2V0VHlwZShhY3RlOiBhbnkpIHtcbiAgICBpZiAoYWN0ZS5jb2RlQWN0ZS5tYXRjaCgvXkFOLykpIHJldHVybiBcIkFOXCJcbiAgICBlbHNlIGlmIChhY3RlLmNvZGVBY3RlLm1hdGNoKC9eU04vKSkgcmV0dXJuIFwiU05cIlxuICAgIGVsc2UgdGhyb3cgRXJyb3IoYCR7YWN0ZS5jb2RlQWN0ZX0gZG9lcyBub3Qgc3RhcnQgd2l0aCBBTiBvciBTTmApXG4gIH1cblxuICBzdGF0aWMgbWFwKGNvZGVBY3RlOiBhbnkpIHtcbiAgICByZXR1cm4gY29kZUFjdGUucmVwbGFjZShMZWN0dXJlTWFwcGluZy5jb2Rlc19sZWN0dXJlX3JlZ2V4cCwgYGxlY3R1cmUkMWApXG4gIH1cblxuICBzdGF0aWMgZ2V0Q29kZUFjdGUoYWN0ZTogYW55KSB7XG4gICAgaWYgKCFMZWN0dXJlTWFwcGluZy5pc0xlY3R1cmUoYWN0ZSkpIHJldHVyblxuXG4gICAgcmV0dXJuIExlY3R1cmVNYXBwaW5nLm1hcChhY3RlLmNvZGVBY3RlKVxuICB9XG5cbiAgYWRkKGFjdGU6IGFueSkge1xuICAgIHRoaXMuY29kZXMuYWRkKGFjdGUuY29kZUFjdGUpXG5cbiAgICBjb25zdCB0eXBlID0gTGVjdHVyZU1hcHBpbmcuZ2V0VHlwZShhY3RlKVxuXG4gICAgaWYgKCEoYWN0ZS5saWJlbGxlQWN0ZS5ub21DYW5vbmlxdWUgaW4gdGhpcy5saWJlbGxlKSlcbiAgICAgIHRoaXMubGliZWxsZVthY3RlLmxpYmVsbGVBY3RlLm5vbUNhbm9uaXF1ZV0gPSBuZXcgU2V0KClcbiAgICB0aGlzLmxpYmVsbGVbYWN0ZS5saWJlbGxlQWN0ZS5ub21DYW5vbmlxdWVdLmFkZCh0eXBlKVxuICB9XG5cbiAgcmVtYXAoYWN0ZTogYW55LCBjb2RlQWN0ZTogc3RyaW5nKSB7XG4gICAgYWN0ZS5jb2RlQWN0ZSA9IGNvZGVBY3RlXG5cbiAgICBsZXQgdHlwZXMgPSB0aGlzLmxpYmVsbGVbYWN0ZS5saWJlbGxlQWN0ZS5ub21DYW5vbmlxdWVdXG4gICAgaWYgKCEodHlwZXMuaGFzKFwiU05cIikgJiYgdHlwZXMuaGFzKFwiQU5cIikpKSB7XG4gICAgICBpZiAodHlwZXMuaGFzKFwiU05cIikpIGFjdGUubGliZWxsZUFjdGUubm9tQ2Fub25pcXVlICs9IFwiIChTw6luYXQpXCJcbiAgICAgIGVsc2UgaWYgKHR5cGVzLmhhcyhcIkFOXCIpKVxuICAgICAgICBhY3RlLmxpYmVsbGVBY3RlLm5vbUNhbm9uaXF1ZSArPSBcIiAoQXNzZW1ibMOpZSBOYXRpb25hbGUpXCJcbiAgICB9XG4gIH1cblxuICBtZXJnZUNvZGVzKGNvZGVzOiBhbnkpIHtcbiAgICBmb3IgKGNvbnN0IGMgb2YgQXJyYXkuZnJvbSh0aGlzLmNvZGVzKSkgY29kZXMuYWRkKGMpXG4gIH1cblxuICBwcmludEFuY2hvcnMoKSB7XG4gICAgZm9yIChjb25zdCBjb2RlIG9mIEFycmF5LmZyb20odGhpcy5jb2RlcykpIGNvbnNvbGUubG9nKGAuLiBfJHtjb2RlfTpgKVxuICB9XG5cbiAgZ2V0Q29kZXMoKSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5jb2Rlcykuam9pbihcIixcIilcbiAgfVxufVxuXG5jbGFzcyBMZWN0dXJlTWFwcGVyIHtcbiAgbWFwcGluZzogYW55ID0ge31cblxuICBoYXMoY29kZUFjdGU6IHN0cmluZykge1xuICAgIHJldHVybiBjb2RlQWN0ZSBpbiB0aGlzLm1hcHBpbmdcbiAgfVxuXG4gIGNvbGxlY3QoYWN0ZTogYW55KSB7XG4gICAgY29uc3QgY29kZUFjdGUgPSBMZWN0dXJlTWFwcGluZy5nZXRDb2RlQWN0ZShhY3RlKVxuICAgIGlmIChjb2RlQWN0ZSAhPSB1bmRlZmluZWQpIHtcbiAgICAgIGxldCBsZWN0dXJlcyA9IHRoaXMubWFwcGluZ1xuICAgICAgaWYgKCEoY29kZUFjdGUgaW4gbGVjdHVyZXMpKSBsZWN0dXJlc1tjb2RlQWN0ZV0gPSBuZXcgTGVjdHVyZU1hcHBpbmcoKVxuICAgICAgbGVjdHVyZXNbY29kZUFjdGVdLmFkZChhY3RlKVxuICAgIH1cbiAgfVxuXG4gIHJlbWFwKGFjdGU6IGFueSkge1xuICAgIGNvbnN0IGNvZGVBY3RlID0gTGVjdHVyZU1hcHBpbmcuZ2V0Q29kZUFjdGUoYWN0ZSlcbiAgICBpZiAoY29kZUFjdGUgIT0gdW5kZWZpbmVkKSB0aGlzLm1hcHBpbmdbY29kZUFjdGVdLnJlbWFwKGFjdGUsIGNvZGVBY3RlKVxuICB9XG5cbiAgbWVyZ2VDb2Rlcyhjb2RlczogYW55LCBjb2RlQWN0ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5tYXBwaW5nW2NvZGVBY3RlXS5tZXJnZUNvZGVzKGNvZGVzKVxuICB9XG5cbiAgcHJpbnRBbmNob3JzKGNvZGVBY3RlOiBzdHJpbmcpIHtcbiAgICB0aGlzLm1hcHBpbmdbY29kZUFjdGVdLnByaW50QW5jaG9ycygpXG4gIH1cblxuICBnZXRDb2Rlcyhjb2RlQWN0ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMubWFwcGluZ1tjb2RlQWN0ZV0uZ2V0Q29kZXMoKVxuICB9XG59XG5cbmNsYXNzIEFjdGVzRG9jdW1lbnRhdGlvbiB7XG4gIHZlcmJvc2U6IGJvb2xlYW5cbiAgc2FuaXR5Q2hlY2tzOiBib29sZWFuXG4gIGxlY3R1cmVNYXBwZXI6IGFueSA9IG5ldyBMZWN0dXJlTWFwcGVyKClcbiAgcmVtYXBwZWRQcm9jZWR1cmVzOiBhbnkgPSB7fVxuICBhbmNob3JzUHJpbnRlZDogYW55ID0ge31cbiAgYW5jaG9yczogYW55ID0gbmV3IFNldCgpXG4gIGNvZGVzOiBhbnkgPSB7fVxuICBwcm9jZWR1cmVzOiBhbnkgPSBudWxsXG4gIGNvZGUycGF0dGVybjogYW55ID0gbmV3IENvZGUyUGF0dGVybihudWxsLCB7XG4gICAgXCJQcm9jw6lkdXJlIGzDqWdpc2xhdGl2ZVwiOiBuZXcgQ29kZTJQYXR0ZXJuKFxuICAgICAgXCJeKCgoL2xlY3R1cmUvKSspfCgoL2xlY3R1cmUvKSsvQ01QLygvbGVjdHVyZS8pKikpKC9DQy8pPygvUFJPTS8pPygvQU4tQVBQTEkvKT8kXCIsXG4gICAgICB7XG4gICAgICAgIGxlY3R1cmU6IG5ldyBDb2RlMlBhdHRlcm4oXG4gICAgICAgICAgXCJeKC9ERVBPVC8pPygvRFBUTEVUVFJFQ1QvKT8oL0VUSS8pPygvQVZDRS8pPygvREdWVC8pPygvQUNJTi8pPygvTU9USU9OLykqKC9QUk9DQUNDLyk/KC9DT00vKT8oKC9ERUJBVFMvKSspPygvUlRSSU5JLyk/JFwiLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIFwibGVjdHVyZS1DT01cIjogbmV3IENvZGUyUGF0dGVybihcIl4oL0ZPTkQvfC9BVklTLykrJFwiLCB7XG4gICAgICAgICAgICAgIFwibGVjdHVyZS1DT00tRk9ORFwiOiBuZXcgQ29kZTJQYXR0ZXJuQ29tRm9uZCgpLFxuICAgICAgICAgICAgICBcImxlY3R1cmUtQ09NLUFWSVNcIjogbmV3IENvZGUyUGF0dGVybkNvbUZvbmQoKSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgXCJsZWN0dXJlLURFQkFUU1wiOiBuZXcgQ29kZTJQYXR0ZXJuKFxuICAgICAgICAgICAgICBcIl4oL1NFQU5DRS8pKigoL01PVElPTi8pPygvTU9USU9OLVZPVEUvKSspPygvREVDLyk/JFwiLFxuICAgICAgICAgICAgICB7fSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgfSxcbiAgICAgICAgKSxcbiAgICAgICAgQ01QOiBuZXcgQ29kZTJQYXR0ZXJuKFxuICAgICAgICAgIFwiXigvREVQT1QvfC9TQUlTSUUvKXsxLDJ9KC9DT00vKT8oL0RFQy8pPygvREVCQVRTLUFOLy9ERUJBVFMtU04vKT9cIixcbiAgICAgICAgICB7XG4gICAgICAgICAgICBcIkNNUC1DT01cIjogbmV3IENvZGUyUGF0dGVybihcbiAgICAgICAgICAgICAgXCJeKC9OT01JTi8pPygvUkFQUE9SVC1BTi98L1JBUFBPUlQtU04vKXsyfSRcIixcbiAgICAgICAgICAgICAge30sXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgXCJDTVAtREVCQVRTLUFOXCI6IG5ldyBDb2RlMlBhdHRlcm4oXCJeKC9TRUFOQ0UvKSooL0RFQy8pPyRcIiwge30pLFxuICAgICAgICAgICAgXCJDTVAtREVCQVRTLVNOXCI6IG5ldyBDb2RlMlBhdHRlcm4oXCJeKC9TRUFOQ0UvKSooL0RFQy8pPyRcIiwge30pLFxuICAgICAgICAgIH0sXG4gICAgICAgICksXG4gICAgICAgIENDOiBuZXcgQ29kZTJQYXR0ZXJuKFwiXigvU0FJU0lFLykrKC9DT05DTFVTSU9OLyk/JFwiLCB7fSksXG4gICAgICAgIFBST006IG5ldyBDb2RlMlBhdHRlcm4oXCJeKC9QVUIvKT8kXCIsIHt9KSxcbiAgICAgICAgXCJBTi1BUFBMSVwiOiBuZXcgQ29kZTJQYXR0ZXJuKFwiXigvUkFQUE9SVC8pPyRcIiwge30pLFxuICAgICAgfSxcbiAgICApLFxuICAgIFwiQWxsb2N1dGlvbiBkdSBQcsOpc2lkZW50IGRlIGwnQXNzZW1ibMOpZSBuYXRpb25hbGVcIjogbmV3IENvZGUyUGF0dGVybihcbiAgICAgIFwiXi9BTjIxLyRcIixcbiAgICAgIHtcbiAgICAgICAgQU4yMTogbmV3IENvZGUyUGF0dGVybihcIl4oL0FQQU4vKT8kXCIsIHt9KSxcbiAgICAgIH0sXG4gICAgKSxcbiAgICBcIlLDqXNvbHV0aW9uIEFydGljbGUgMzQtMVwiOiBuZXcgQ29kZTJQYXR0ZXJuKFwiXigvQU5MVU5JLyk/JFwiLCB7XG4gICAgICBBTkxVTkk6IG5ldyBDb2RlMlBhdHRlcm4oXCJeKC9ERVBPVC8pPygvREVCQVRTLyk/KC9SVFJJTkkvKT8kXCIsIHtcbiAgICAgICAgXCJBTkxVTkktREVCQVRTXCI6IG5ldyBDb2RlMlBhdHRlcm4oXCJeKC9TRUFOQ0UvKSsoL0RFQy8pPyRcIiwge30pLFxuICAgICAgfSksXG4gICAgfSksXG4gICAgUsOpc29sdXRpb246IG5ldyBDb2RlMlBhdHRlcm4oXCJeKC9BTkxVTkkvKT8oL0NDLyk/JFwiLCB7XG4gICAgICBBTkxVTkk6IG5ldyBDb2RlMlBhdHRlcm4oXCJeKC9ERVBPVC8pPygvQ09NLyk/KC9ERUJBVFMvfC9SVFJJTkkvKT8kXCIsIHtcbiAgICAgICAgXCJBTkxVTkktQ09NXCI6IG5ldyBDb2RlMlBhdHRlcm4oXCJeKC9DQUUvKT8oL0ZPTkQvKT8kXCIsIHtcbiAgICAgICAgICBcIkFOTFVOSS1DT00tRk9ORFwiOiBuZXcgQ29kZTJQYXR0ZXJuQ29tRm9uZCgpLFxuICAgICAgICAgIFwiQU5MVU5JLUNPTS1DQUVcIjogbmV3IENvZGUyUGF0dGVybihcbiAgICAgICAgICAgIFwiXigvU0FJU0lFLyk/KC9OT01JTi8pPygvUkVVTklPTi8pPygvUkFQUE9SVC8pPygvREVDLyk/JFwiLFxuICAgICAgICAgICAge30sXG4gICAgICAgICAgKSxcbiAgICAgICAgfSksXG4gICAgICAgIFwiQU5MVU5JLURFQkFUU1wiOiBuZXcgQ29kZTJQYXR0ZXJuKFwiXigvU0VBTkNFLykqKC9ERUMvKT8kXCIsIHt9KSxcbiAgICAgIH0pLFxuICAgICAgQ0M6IG5ldyBDb2RlMlBhdHRlcm4oXCJeKC9TQUlTSUUvKT8oL0NPTkNMVVNJT04vKT8kXCIsIHt9KSxcbiAgICB9KSxcbiAgICBcIlJhcHBvcnQgZCdpbmZvcm1hdGlvbiBzYW5zIG1pc3Npb25cIjogbmV3IENvZGUyUGF0dGVybihcbiAgICAgIFwiXigvQU4yMC8pPygvRVUvKT8kXCIsXG4gICAgICB7XG4gICAgICAgIEFOMjA6IG5ldyBDb2RlMlBhdHRlcm4oXCJeKC9SQVBQT1JULyk/JFwiLCB7fSksXG4gICAgICAgIEVVOiBuZXcgQ29kZTJQYXR0ZXJuKFwiXigvREVDLykrJFwiLCB7fSksXG4gICAgICB9LFxuICAgICksXG4gICAgXCJNaXNzaW9uIGQnaW5mb3JtYXRpb25cIjogbmV3IENvZGUyUGF0dGVybihcIl4oL0FOMjAvKT8kXCIsIHtcbiAgICAgIEFOMjA6IG5ldyBDb2RlMlBhdHRlcm4oXCJeKC9NSVNJTkYvKT8kXCIsIHtcbiAgICAgICAgXCJBTjIwLU1JU0lORlwiOiBuZXcgQ29kZTJQYXR0ZXJuKFxuICAgICAgICAgIFwiXigvQ1JFQS8pPygvTk9NSU4vKT8oL1JBUFBPUlQvKT8kXCIsXG4gICAgICAgICAge30sXG4gICAgICAgICksXG4gICAgICB9KSxcbiAgICB9KSxcbiAgICBcIkNvbW1pc3Npb24gZCdlbnF1w6p0ZVwiOiBuZXcgQ29kZTJQYXR0ZXJuKFwiXigvQU4yMC8pPyRcIiwge1xuICAgICAgQU4yMDogbmV3IENvZGUyUGF0dGVybihcIl4oL0NPTUVOUS8pPyRcIiwge1xuICAgICAgICBcIkFOMjAtQ09NRU5RXCI6IG5ldyBDb2RlMlBhdHRlcm4oXG4gICAgICAgICAgXCJeKC9DUkVBLyk/KC9OT01JTi8pPygvUkFQUE9SVC8pPyRcIixcbiAgICAgICAgICB7fSxcbiAgICAgICAgKSxcbiAgICAgIH0pLFxuICAgIH0pLFxuICAgIFwiRW5nYWdlbWVudCBkZSBsYSByZXNwb25zYWJpbGl0w6kgZ291dmVybmVtZW50YWxlXCI6IG5ldyBDb2RlMlBhdHRlcm4oXG4gICAgICBcIl4vQU4yMS8kXCIsXG4gICAgICB7XG4gICAgICAgIEFOMjE6IG5ldyBDb2RlMlBhdHRlcm4oXCJeKCgoL01PVElPTi8pKi9ERUJBVFMvKXwoL0RHVlQvKSl7MSwyfSRcIiwge1xuICAgICAgICAgIFwiQU4yMS1ERUJBVFNcIjogbmV3IENvZGUyUGF0dGVybihcIl4oL1NFQU5DRS8pKigvTU9USU9OLVZPVEUvKSokXCIsIHt9KSxcbiAgICAgICAgfSksXG4gICAgICB9LFxuICAgICksXG4gICAgXCJNb3Rpb24gcsOpZsOpcmVuZGFpcmVcIjogbmV3IENvZGUyUGF0dGVybihcIl4oL2xlY3R1cmUvKSskXCIsIHtcbiAgICAgIGxlY3R1cmU6IG5ldyBDb2RlMlBhdHRlcm4oXCJeKC9ERVBPVC8pPygvQ09NLyk/KC9ERUJBVFMvKT8kXCIsIHtcbiAgICAgICAgXCJsZWN0dXJlLUNPTVwiOiBuZXcgQ29kZTJQYXR0ZXJuKFwiXigvRk9ORC8pPyRcIiwge1xuICAgICAgICAgIFwibGVjdHVyZS1DT00tRk9ORFwiOiBuZXcgQ29kZTJQYXR0ZXJuKFxuICAgICAgICAgICAgXCJeKC9TQUlTSUUvKT8oL05PTUlOLykqKC9SQVBQT1JULykqJFwiLFxuICAgICAgICAgICAge30sXG4gICAgICAgICAgKSxcbiAgICAgICAgfSksXG4gICAgICAgIFwibGVjdHVyZS1ERUJBVFNcIjogbmV3IENvZGUyUGF0dGVybihcIl4oL0RFQy8pPyRcIiwge30pLFxuICAgICAgfSksXG4gICAgfSksXG4gICAgSW1tdW5pdMOpOiBuZXcgQ29kZTJQYXR0ZXJuKFwiXigvQU5MVU5JLykrJFwiLCB7XG4gICAgICBBTkxVTkk6IG5ldyBDb2RlMlBhdHRlcm4oXCJeKC9ERVBPVC8pPygvQ09NLyk/KC9ERUJBVFMvKT8oL1JUUklOSS8pPyRcIiwge1xuICAgICAgICBcIkFOTFVOSS1DT01cIjogbmV3IENvZGUyUGF0dGVybihcIl4oL0ZPTkQvKT8kXCIsIHtcbiAgICAgICAgICBcIkFOTFVOSS1DT00tRk9ORFwiOiBuZXcgQ29kZTJQYXR0ZXJuKFxuICAgICAgICAgICAgXCJeKC9TQUlTSUUvKT8oL05PTUlOLykqKC9SQVBQT1JULykqJFwiLFxuICAgICAgICAgICAge30sXG4gICAgICAgICAgKSxcbiAgICAgICAgfSksXG4gICAgICAgIFwiQU5MVU5JLURFQkFUU1wiOiBuZXcgQ29kZTJQYXR0ZXJuKFwiXigvU0VBTkNFLyk/KC9ERUMvKSRcIiwge30pLFxuICAgICAgfSksXG4gICAgfSksXG4gICAgXCJSZXNwb25zYWJpbGl0w6kgcMOpbmFsZSBkdSBwcsOpc2lkZW50IGRlIGxhIHLDqXB1YmxpcXVlXCI6IG5ldyBDb2RlMlBhdHRlcm4oXG4gICAgICBcIl4vbGVjdHVyZS8kXCIsXG4gICAgICB7XG4gICAgICAgIGxlY3R1cmU6IG5ldyBDb2RlMlBhdHRlcm4oXCJeKC9ERVBPVC8pPygvUkVDQlVSRUFVLyk/JFwiLCB7fSksXG4gICAgICB9LFxuICAgICksXG4gICAgXCJQcm9wb3NpdGlvbiBkZSBsb2kgcHLDqXNlbnTDqWUgZW4gYXBwbGljYXRpb24gZGUgbCdhcnRpY2xlIDExIGRlIGxhIENvbnN0aXR1dGlvblwiOlxuICAgICAgbmV3IENvZGUyUGF0dGVybihcIl4vbGVjdHVyZS8kXCIsIHtcbiAgICAgICAgbGVjdHVyZTogbmV3IENvZGUyUGF0dGVybihcIl4oL0RFUE9ULyk/JFwiLCB7fSksXG4gICAgICB9KSxcbiAgfSlcblxuICBjb25zdHJ1Y3RvcihzYW5pdHlDaGVja3M6IGJvb2xlYW4sIHZlcmJvc2U6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIHRoaXMudmVyYm9zZSA9IHZlcmJvc2VcbiAgICB0aGlzLnNhbml0eUNoZWNrcyA9IHNhbml0eUNoZWNrc1xuICAgIHRoaXMucHJvY2VkdXJlcyA9IHt9XG4gICAgdGhpcy5jb2RlMnBhdHRlcm4uX21hdGNoX2NvdW50XysrXG4gIH1cblxuICB3YWxrRmlsZXMoZGF0YTogc3RyaW5nW10sIGFjdGlvbjogYW55KSB7XG4gICAgZm9yIChjb25zdCBmaWxlIG9mIGdldEZpbGVzKGRhdGEpKSB7XG4gICAgICBjb25zdCBkb3NzaWVyID0gbG9hZChmaWxlKVxuICAgICAgbGV0IHByb2NlZHVyZTogc3RyaW5nID0gdGhpcy5yZW1hcFByb2NlZHVyZShcbiAgICAgICAgZG9zc2llci5wcm9jZWR1cmVQYXJsZW1lbnRhaXJlLmxpYmVsbGUsXG4gICAgICApXG4gICAgICBpZiAoIShwcm9jZWR1cmUgaW4gdGhpcy5wcm9jZWR1cmVzKSkgdGhpcy5wcm9jZWR1cmVzW3Byb2NlZHVyZV0gPSB7fVxuICAgICAgYWN0aW9uKFxuICAgICAgICB0aGlzLnByb2NlZHVyZXNbcHJvY2VkdXJlXSxcbiAgICAgICAgZG9zc2llci5hY3Rlc0xlZ2lzbGF0aWZzLFxuICAgICAgICB0aGlzLmNvZGUycGF0dGVybltwcm9jZWR1cmVdLFxuICAgICAgICBudWxsLFxuICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIGNvbGxlY3RGaWxlcyhkYXRhOiBzdHJpbmdbXSkge1xuICAgIHRoaXMud2Fsa0ZpbGVzKFxuICAgICAgZGF0YSxcbiAgICAgIChfYWN0ZXM6IGFueSwgYWN0ZXNMZWdpc2xhdGlmczogYW55LCBfYzJwOiBhbnksIF9wYXJlbnQ6IHN0cmluZykgPT4ge1xuICAgICAgICB0aGlzLmNvbGxlY3QoYWN0ZXNMZWdpc2xhdGlmcylcbiAgICAgIH0sXG4gICAgKVxuICB9XG5cbiAgcHJvY2Vzc0ZpbGVzKGRhdGE6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy53YWxrRmlsZXMoXG4gICAgICBkYXRhLFxuICAgICAgKGFjdGVzOiBhbnksIGFjdGVzTGVnaXNsYXRpZnM6IGFueSwgYzJwOiBhbnksIHBhcmVudDogc3RyaW5nKSA9PiB7XG4gICAgICAgIHRoaXMubWVyZ2UoYWN0ZXMsIGFjdGVzTGVnaXNsYXRpZnMsIGMycCwgcGFyZW50KVxuICAgICAgfSxcbiAgICApXG4gICAgaWYgKHRoaXMuc2FuaXR5Q2hlY2tzKSB0aGlzLnZhbGlkYXRlKClcbiAgfVxuXG4gIHJlbWFwQWN0ZXMoYWN0ZXM6IGFueSk6IGFueSB7XG4gICAgbGV0IHJlc3VsdHMgPSBbXVxuICAgIGZvciAoY29uc3QgYWN0ZSBvZiBhY3Rlcykge1xuICAgICAgdGhpcy5sZWN0dXJlTWFwcGVyLnJlbWFwKGFjdGUpXG5cbiAgICAgIC8vIENDLVNBSVNJRS0gc3VmZml4IGRvZXMgbm90IGltcGx5IGEgaGllcmFyY2h5XG4gICAgICBhY3RlLmNvZGVBY3RlID0gYWN0ZS5jb2RlQWN0ZS5yZXBsYWNlKC9eQ0MtU0FJU0lFLiovLCBcIkNDLVNBSVNJRVwiKVxuXG4gICAgICByZXN1bHRzLnB1c2goYWN0ZSlcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdHNcbiAgfVxuXG4gIGNvbGxlY3RBY3RlcyhhY3RlczogYW55KTogYW55IHtcbiAgICBsZXQgcmVzdWx0cyA9IFtdXG4gICAgZm9yIChjb25zdCBhY3RlIG9mIGFjdGVzKSB7XG4gICAgICB0aGlzLmxlY3R1cmVNYXBwZXIuY29sbGVjdChhY3RlKVxuXG4gICAgICByZXN1bHRzLnB1c2goYWN0ZSlcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdHNcbiAgfVxuXG4gIHJlbWFwUHJvY2VkdXJlKHByb2NlZHVyZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBtZXJnZV9wcm9jZWR1cmVzOiBNYXA8c3RyaW5nLCBhbnk+ID0gbmV3IE1hcChbXG4gICAgICBbXCJQcm9wb3NpdGlvbiBkZSBsb2kgb3JkaW5haXJlXCIsIFwiUHJvY8OpZHVyZSBsw6lnaXNsYXRpdmVcIl0sXG4gICAgICBbXCJQcm9qZXQgZGUgbG9pIG9yZGluYWlyZVwiLCBcIlByb2PDqWR1cmUgbMOpZ2lzbGF0aXZlXCJdLFxuICAgICAgW1xuICAgICAgICBcIlByb2pldCBkZSByYXRpZmljYXRpb24gZGVzIHRyYWl0w6lzIGV0IGNvbnZlbnRpb25zXCIsXG4gICAgICAgIFwiUHJvY8OpZHVyZSBsw6lnaXNsYXRpdmVcIixcbiAgICAgIF0sXG4gICAgICBbXCJQcm9qZXQgb3UgcHJvcG9zaXRpb24gZGUgbG9pIG9yZ2FuaXF1ZVwiLCBcIlByb2PDqWR1cmUgbMOpZ2lzbGF0aXZlXCJdLFxuICAgICAgW1xuICAgICAgICBcIlByb2pldCBvdSBwcm9wb3NpdGlvbiBkZSBsb2kgY29uc3RpdHV0aW9ubmVsbGVcIixcbiAgICAgICAgXCJQcm9jw6lkdXJlIGzDqWdpc2xhdGl2ZVwiLFxuICAgICAgXSxcbiAgICAgIFtcIlByb2pldCBkZSBsb2kgZGUgZmluYW5jZXMgZGUgbCdhbm7DqWVcIiwgXCJQcm9jw6lkdXJlIGzDqWdpc2xhdGl2ZVwiXSxcbiAgICAgIFtcIlByb2pldCBkZSBsb2kgZGUgZmluYW5jZXMgcmVjdGlmaWNhdGl2ZVwiLCBcIlByb2PDqWR1cmUgbMOpZ2lzbGF0aXZlXCJdLFxuICAgICAgW1xuICAgICAgICBcIlByb2pldCBkZSBsb2kgZGUgZmluYW5jZW1lbnQgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCIsXG4gICAgICAgIFwiUHJvY8OpZHVyZSBsw6lnaXNsYXRpdmVcIixcbiAgICAgIF0sXG4gICAgXSlcbiAgICBpZiAobWVyZ2VfcHJvY2VkdXJlcy5oYXMocHJvY2VkdXJlKSkge1xuICAgICAgdGhpcy5yZW1hcHBlZFByb2NlZHVyZXNbcHJvY2VkdXJlXSA9IG51bGxcbiAgICAgIHJldHVybiBtZXJnZV9wcm9jZWR1cmVzLmdldChwcm9jZWR1cmUpXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBwcm9jZWR1cmVcbiAgICB9XG4gIH1cblxuICAvLyByZXR1cm4gdGhlIGNvZGVBY3RlcyBpbiB0aGUgc2FtZSBvcmRlciB0aGV5IGFwcGVhciBpbiB0aGUgcmVnZXhwXG4gIG9yZGVyZWRDb2Rlcyhjb2RlczogYW55LCBjMnA6IGFueSwgcGFyZW50OiBzdHJpbmcpOiBTZXQ8c3RyaW5nPiB7XG4gICAgY29kZXMgPSBuZXcgU2V0KGNvZGVzKVxuICAgIGlmICghdGhpcy5zYW5pdHlDaGVja3MpIHJldHVybiBjb2Rlc1xuICAgIGxldCBvcmRlcmVkID0gYzJwW1wiX3BhdHRlcm5fXCJdLm1hdGNoKG5ldyBSZWdFeHAoXCIvLio/L1wiLCBcImdcIikpXG4gICAgb3JkZXJlZCA9IG9yZGVyZWQubWFwKCh4OiBzdHJpbmcpID0+IHgucmVwbGFjZShuZXcgUmVnRXhwKFwiLyguKikvXCIpLCBcIiQxXCIpKVxuICAgIGlmIChwYXJlbnQgIT0gbnVsbCkgb3JkZXJlZCA9IG9yZGVyZWQubWFwKCh4OiBzdHJpbmcpID0+IGAke3BhcmVudH0tJHt4fWApXG4gICAgb3JkZXJlZCA9IG5ldyBTZXQob3JkZXJlZClcbiAgICBhc3NlcnQoZXFTZXQob3JkZXJlZCwgY29kZXMpLCBgJHtbLi4ub3JkZXJlZF19ICE9ICR7Wy4uLmNvZGVzXX1gKVxuICAgIHJldHVybiBvcmRlcmVkXG4gIH1cblxuICB2YWxpZGF0ZUNocm9ub2xvZ3koYWN0ZXNMZWdpc2xhdGlmczogYW55LCBjMnA6IGFueSwgcGFyZW50OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBwYXR0ZXJuID0gYzJwW1wiX3BhdHRlcm5fXCJdXG4gICAgY29uc3Qgc2VxdWVuY2UgPSBhY3Rlc0xlZ2lzbGF0aWZzXG4gICAgICAubWFwKCh4OiBhbnkpID0+IGAvJHt4LmNvZGVBY3RlfS9gLnJlcGxhY2UoYC8ke3BhcmVudH0tYCwgXCIvXCIpKVxuICAgICAgLmpvaW4oXCJcIilcbiAgICBhc3NlcnQoXG4gICAgICBzZXF1ZW5jZS5tYXRjaChuZXcgUmVnRXhwKHBhdHRlcm4pKSxcbiAgICAgIGAke3BhdHRlcm59IGRvZXMgbm90IG1hdGNoICR7c2VxdWVuY2V9YCxcbiAgICApXG4gICAgYzJwLl9tYXRjaF9jb3VudF8rK1xuICB9XG5cbiAgbWVyZ2VBY3RlKGFjdGVzOiBhbnksIGFjdGU6IGFueSwgYzJwOiBhbnksIHBhcmVudDogc3RyaW5nKTogdm9pZCB7XG4gICAgbGV0IGNvZGU6IHN0cmluZyA9IGFjdGUuY29kZUFjdGVcbiAgICBsZXQgc2hvcnRDb2RlOiBzdHJpbmcgPSBjb2RlLnJlcGxhY2UobmV3IFJlZ0V4cChgXiR7cGFyZW50fS1gKSwgXCJcIilcbiAgICBzaG9ydENvZGUgPSBzaG9ydENvZGUucmVwbGFjZSgvLShBTnxTTikkLywgXCJcIilcbiAgICB0aGlzLmNvZGVzW3Nob3J0Q29kZV0gPSBudWxsXG4gICAgbGV0IG5hbWU6IHN0cmluZyA9IGFjdGUubGliZWxsZUFjdGUubm9tQ2Fub25pcXVlXG4gICAgaWYgKCEoY29kZSBpbiBhY3RlcykpIHtcbiAgICAgIGFjdGVzW2NvZGVdID0ge1xuICAgICAgICB0eXBlOiBhY3RlLnhzaVR5cGUsXG4gICAgICAgIG5hbWU6IG5ldyBTZXQoW25hbWVdKSxcbiAgICAgICAgc2hvcnRDb2RlOiBzaG9ydENvZGUsXG4gICAgICAgIGFjdGVzOiB7fSxcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgYWN0ZXNbY29kZV0ubmFtZS5hZGQobmFtZSlcbiAgICB9XG4gICAgaWYgKFwiYWN0ZXNMZWdpc2xhdGlmc1wiIGluIGFjdGUpXG4gICAgICB0aGlzLm1lcmdlKGFjdGVzW2NvZGVdLmFjdGVzLCBhY3RlLmFjdGVzTGVnaXNsYXRpZnMsIGMycFtjb2RlXSwgY29kZSlcbiAgfVxuXG4gIG1lcmdlKGFjdGVzOiBhbnksIGFjdGVzTGVnaXNsYXRpZnM6IGFueSwgYzJwOiBhbnksIHBhcmVudDogYW55KTogdm9pZCB7XG4gICAgY29uc3QgbCA9IHRoaXMucmVtYXBBY3RlcyhhY3Rlc0xlZ2lzbGF0aWZzKVxuICAgIHRoaXMudmFsaWRhdGVDaHJvbm9sb2d5KGwsIGMycCwgcGFyZW50KVxuICAgIGZvciAoY29uc3QgYWN0ZSBvZiBsKSB0aGlzLm1lcmdlQWN0ZShhY3RlcywgYWN0ZSwgYzJwLCBwYXJlbnQpXG4gIH1cblxuICBjb2xsZWN0KGFjdGVzTGVnaXNsYXRpZnM6IGFueSk6IHZvaWQge1xuICAgIGZvciAoY29uc3QgYWN0ZSBvZiB0aGlzLmNvbGxlY3RBY3RlcyhhY3Rlc0xlZ2lzbGF0aWZzKSlcbiAgICAgIGlmIChcImFjdGVzTGVnaXNsYXRpZnNcIiBpbiBhY3RlKSB0aGlzLmNvbGxlY3QoYWN0ZS5hY3Rlc0xlZ2lzbGF0aWZzKVxuICB9XG5cbiAgdmFsaWRhdGVMZXZlbChjMnA6IGFueSwgcGF0aDogYW55KSB7XG4gICAgYXNzZXJ0KGMycC5fbWF0Y2hfY291bnRfID4gMCwgYCR7cGF0aH0gaXMgbmV2ZXIgdXNlZGApXG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoYzJwKSBhcyBbc3RyaW5nLCBhbnldW10pIHtcbiAgICAgIGlmICh2YWx1ZSAhPSBudWxsICYmIHZhbHVlLmNvbnN0cnVjdG9yLm5hbWUgPT0gXCJDb2RlMlBhdHRlcm5cIilcbiAgICAgICAgdGhpcy52YWxpZGF0ZUxldmVsKHZhbHVlLCBwYXRoLmNvbmNhdChba2V5XSkpXG4gICAgfVxuICB9XG5cbiAgdmFsaWRhdGUoKSB7XG4gICAgdGhpcy52YWxpZGF0ZUxldmVsKHRoaXMuY29kZTJwYXR0ZXJuLCBbXSlcbiAgfVxuXG4gIHByaW50RW50cnkoc2VjdGlvbnM6IHN0cmluZywgZW50cnk6IHN0cmluZywgY29kZXM6IHN0cmluZykge1xuICAgIGNvbnN0IHRpdGxlID0gYFxcYCR7ZW50cnl9XFxgX19gXG4gICAgY29uc29sZS5sb2codGl0bGUpXG4gICAgY29uc3QgdW5kZXJsaW5lID0gbmV3IEFycmF5KHRpdGxlLmxlbmd0aCArIDEpLmpvaW4oc2VjdGlvbnNbMF0pXG4gICAgY29uc29sZS5sb2codW5kZXJsaW5lKVxuICAgIGNvbnNvbGUubG9nKGNvZGVzKVxuICB9XG5cbiAgYWRkQW5jaG9ycyhrZXk6IHN0cmluZykge1xuICAgIGlmIChrZXkgaW4gdGhpcy5hbmNob3JzUHJpbnRlZCkgcmV0dXJuXG4gICAgaWYgKHRoaXMubGVjdHVyZU1hcHBlci5oYXMoa2V5KSlcbiAgICAgIHRoaXMubGVjdHVyZU1hcHBlci5tZXJnZUNvZGVzKHRoaXMuYW5jaG9ycywga2V5KVxuICAgIGVsc2UgdGhpcy5hbmNob3JzLmFkZChrZXkpXG4gIH1cblxuICBwcmludEFuY2hvcnMoa2V5OiBzdHJpbmcpIHtcbiAgICBpZiAoa2V5IGluIHRoaXMuYW5jaG9yc1ByaW50ZWQpIHJldHVyblxuICAgIHRoaXMuYW5jaG9yc1ByaW50ZWRba2V5XSA9IG51bGxcbiAgICBpZiAodGhpcy5sZWN0dXJlTWFwcGVyLmhhcyhrZXkpKSB0aGlzLmxlY3R1cmVNYXBwZXIucHJpbnRBbmNob3JzKGtleSlcbiAgICBlbHNlIGNvbnNvbGUubG9nKGAuLiBfJHtrZXl9OmApXG4gIH1cblxuICBnZXRDb2RlcyhrZXk6IHN0cmluZywgc2hvcnRDb2RlOiBzdHJpbmcpIHtcbiAgICBpZiAoa2V5IGluIHRoaXMuYW5jaG9yc1ByaW50ZWQpIHJldHVybiBgY2YgXFxcXCoke3Nob3J0Q29kZX1cXFxcKmBcbiAgICBpZiAodGhpcy5sZWN0dXJlTWFwcGVyLmhhcyhrZXkpKSByZXR1cm4gdGhpcy5sZWN0dXJlTWFwcGVyLmdldENvZGVzKGtleSlcbiAgICBlbHNlIHJldHVybiBrZXlcbiAgfVxuXG4gIHJlbmFtZUNNUChrZXk6IHN0cmluZywgbmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKGtleS5zdGFydHNXaXRoKFwiQ01QXCIpKSB7XG4gICAgICBpZiAoa2V5LmVuZHNXaXRoKFwiLVNOXCIpKSByZXR1cm4gYCR7bmFtZX0gKFPDqW5hdClgXG4gICAgICBlbHNlIGlmIChrZXkuZW5kc1dpdGgoXCItQU5cIikpIHJldHVybiBgJHtuYW1lfSAoQXNzZW1ibMOpZSBOYXRpb25hbGUpYFxuICAgICAgZWxzZSByZXR1cm4gbmFtZVxuICAgIH0gZWxzZSByZXR1cm4gbmFtZVxuICB9XG5cbiAgcHJpbnRMZXZlbChhY3RlczogYW55LCBzZWN0aW9uczogc3RyaW5nLCBjMnA6IGFueSwgcGFyZW50OiBhbnkpIHtcbiAgICBjb25zdCBrZXlzOiBTZXQ8c3RyaW5nPiA9IHRoaXMub3JkZXJlZENvZGVzKE9iamVjdC5rZXlzKGFjdGVzKSwgYzJwLCBwYXJlbnQpXG4gICAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgICAgY29uc3QgdmFsdWUgPSBhY3Rlc1trZXldXG4gICAgICBsZXQgbmFtZSA9IEFycmF5LmZyb20odmFsdWUubmFtZSkuam9pbihcIiwgXCIpXG4gICAgICBuYW1lID0gdGhpcy5yZW5hbWVDTVAoa2V5LCBuYW1lKVxuICAgICAgY29uc3QgY29kZXMgPSB0aGlzLmdldENvZGVzKGtleSwgdmFsdWUuc2hvcnRDb2RlKVxuICAgICAgdGhpcy5hZGRBbmNob3JzKGtleSlcbiAgICAgIHRoaXMucHJpbnRBbmNob3JzKGtleSlcbiAgICAgIGNvbnNvbGUubG9nKFwiXCIpXG4gICAgICB0aGlzLnByaW50RW50cnkoc2VjdGlvbnMsIGAke25hbWV9IDwke3ZhbHVlLnNob3J0Q29kZX1UT0NfPmAsIGNvZGVzKVxuICAgICAgY29uc29sZS5sb2coXCJcIilcbiAgICAgIGlmIChPYmplY3Qua2V5cyh2YWx1ZS5hY3RlcykubGVuZ3RoID4gMClcbiAgICAgICAgdGhpcy5wcmludExldmVsKHZhbHVlLmFjdGVzLCBzZWN0aW9ucy5zdWJzdHJpbmcoMSksIGMycFtrZXldLCBrZXkpXG4gICAgfVxuICB9XG5cbiAgcHJpbnRDb2RlcygpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh0aGlzLmNvZGVzKSlcbiAgICAgIGNvbnNvbGUubG9nKGAuLiBfJHtrZXl9VE9DOiBodHRwOi8vYClcbiAgfVxuXG4gIHByaW50QW5jaG9yc0luZGV4KCkge1xuICAgIGZvciAoY29uc3QgY29kZSBvZiBBcnJheS5mcm9tKHRoaXMuYW5jaG9ycykpXG4gICAgICBjb25zb2xlLmxvZyhgKiA6cmVmOlxcYCR7Y29kZX0gPCR7Y29kZX0+XFxgYClcbiAgfVxuXG4gIGdldEFnZ3JlZ2F0ZWQocHJvY2VkdXJlOiBzdHJpbmcpIHtcbiAgICBpZiAocHJvY2VkdXJlID09IFwiUHJvY8OpZHVyZSBsw6lnaXNsYXRpdmVcIikge1xuICAgICAgY29uc3QgcmVtYXBwZWQgPSBPYmplY3Qua2V5cyh0aGlzLnJlbWFwcGVkUHJvY2VkdXJlcykuam9pbihcIiwgXCIpXG4gICAgICByZXR1cm4gYCAoYWdyw6lnYXRpb24gZGUgJHtyZW1hcHBlZH0pYFxuICAgIH0gZWxzZSByZXR1cm4gXCJcIlxuICB9XG5cbiAgcHJpbnQoKTogdm9pZCB7XG4gICAgdGhpcy5hbmNob3JzUHJpbnRlZCA9IHt9XG4gICAgZm9yIChjb25zdCBba2V5LCBhY3Rlc10gb2YgT2JqZWN0LmVudHJpZXModGhpcy5wcm9jZWR1cmVzKSBhcyBbXG4gICAgICBzdHJpbmcsXG4gICAgICBhbnksXG4gICAgXVtdKSB7XG4gICAgICBjb25zdCBjb2RlID0ga2V5LnJlcGxhY2UoLyArL2csIFwiX1wiKVxuICAgICAgdGhpcy5jb2Rlc1tjb2RlXSA9IG51bGxcbiAgICAgIGNvbnN0IGFnZ3JlZ2F0ZWQgPSB0aGlzLmdldEFnZ3JlZ2F0ZWQoa2V5KVxuICAgICAgY29uc3QgdGl0bGUgPSBgXFxgJHtrZXl9IDwke2NvZGV9VE9DXz5cXGBfXyR7YWdncmVnYXRlZH1gXG4gICAgICBjb25zb2xlLmxvZyh0aXRsZSlcbiAgICAgIGNvbnN0IHVuZGVybGluZSA9IG5ldyBBcnJheSh0aXRsZS5sZW5ndGggKyAxKS5qb2luKFwiPVwiKVxuICAgICAgY29uc29sZS5sb2codW5kZXJsaW5lKVxuICAgICAgdGhpcy5wcmludExldmVsKGFjdGVzLCBcIi1+LidcIiwgdGhpcy5jb2RlMnBhdHRlcm5ba2V5XSwgbnVsbClcbiAgICB9XG4gICAgdGhpcy5wcmludENvZGVzKClcbiAgICB0aGlzLnByaW50QW5jaG9yc0luZGV4KClcbiAgfVxufVxuXG5mdW5jdGlvbiBtYWluKGFyZ3Y6IGFueSk6IG51bWJlciB7XG4gIGNvbnN0IG9wdGlvbnMgPSBwYXJzZUFyZ3MoYXJndilcbiAgaWYgKG9wdGlvbnMgPT09IG51bGwpIHJldHVybiAxXG4gIGxldCBkb2MgPSBuZXcgQWN0ZXNEb2N1bWVudGF0aW9uKFxuICAgICFvcHRpb25zW1wibm8tc2FuaXR5LWNoZWNrc1wiXSxcbiAgICBvcHRpb25zLnZlcmJvc2UsXG4gIClcbiAgZG9jLmNvbGxlY3RGaWxlcyhvcHRpb25zLmRhdGEpXG4gIGRvYy5wcm9jZXNzRmlsZXMob3B0aW9ucy5kYXRhKVxuICBkb2MucHJpbnQoKVxuICByZXR1cm4gMFxufVxuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbmlmIChwcm9jZXNzLmFyZ3ZbMV0uZW5kc1dpdGgoXCJkb2N1bWVudF9kb3NzaWVyc19sZWdpc2xhdGlmcy50c1wiKSlcbiAgcHJvY2Vzcy5leGl0KG1haW4ocHJvY2Vzcy5hcmd2KSlcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsZ0JBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGlCQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxPQUFBLEdBQUFILHNCQUFBLENB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
|
|
655
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29tbWFuZExpbmVBcmdzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfY29tbWFuZExpbmVVc2FnZSIsIl9hc3NlcnQiLCJfZmlsZV9zeXN0ZW1zIiwiX0xlY3R1cmVNYXBwaW5nIiwiZSIsIl9fZXNNb2R1bGUiLCJfc2xpY2VkVG9BcnJheSIsInIiLCJfYXJyYXlXaXRoSG9sZXMiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVSZXN0IiwiVHlwZUVycm9yIiwibCIsInQiLCJTeW1ib2wiLCJpdGVyYXRvciIsIm4iLCJpIiwidSIsImEiLCJmIiwibyIsImNhbGwiLCJuZXh0IiwiT2JqZWN0IiwiZG9uZSIsInB1c2giLCJ2YWx1ZSIsImxlbmd0aCIsIkFycmF5IiwiaXNBcnJheSIsIl90b0NvbnN1bWFibGVBcnJheSIsIl9hcnJheVdpdGhvdXRIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVTcHJlYWQiLCJmcm9tIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJfY2FsbFN1cGVyIiwiX2dldFByb3RvdHlwZU9mIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4iLCJfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiUmVmbGVjdCIsImNvbnN0cnVjdCIsImNvbnN0cnVjdG9yIiwiYXBwbHkiLCJfdHlwZW9mIiwiX2Fzc2VydFRoaXNJbml0aWFsaXplZCIsIlJlZmVyZW5jZUVycm9yIiwiQm9vbGVhbiIsInByb3RvdHlwZSIsInZhbHVlT2YiLCJzZXRQcm90b3R5cGVPZiIsImdldFByb3RvdHlwZU9mIiwiYmluZCIsIl9fcHJvdG9fXyIsIl9pbmhlcml0cyIsImNyZWF0ZSIsIndyaXRhYmxlIiwiY29uZmlndXJhYmxlIiwiZGVmaW5lUHJvcGVydHkiLCJfc2V0UHJvdG90eXBlT2YiLCJfZGVmaW5lUHJvcGVydGllcyIsImVudW1lcmFibGUiLCJfdG9Qcm9wZXJ0eUtleSIsImtleSIsIl9jcmVhdGVDbGFzcyIsIl9jbGFzc0NhbGxDaGVjayIsIl9kZWZpbmVQcm9wZXJ0eSIsIl90b1ByaW1pdGl2ZSIsInRvUHJpbWl0aXZlIiwiU3RyaW5nIiwiTnVtYmVyIiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJfbiIsIkYiLCJzIiwidG9TdHJpbmciLCJzbGljZSIsIm5hbWUiLCJ0ZXN0IiwicGFyc2VBcmdzIiwiYXJndiIsIm9wdGlvbnNEZWZpbml0aW9ucyIsImRlc2NyaXB0aW9uIiwiZGVmYXVsdE9wdGlvbiIsIm11bHRpcGxlIiwidHlwZSIsInNlY3Rpb25zIiwiaGVhZGVyIiwiY29udGVudCIsIm9wdGlvbkxpc3QiLCJvcHRpb25zIiwiY29tbWFuZExpbmVBcmdzIiwiY29uc29sZSIsImVycm9yIiwiaGVscCIsInVzYWdlIiwiY29tbWFuZExpbmVVc2FnZSIsIndhcm4iLCJlcVNldCIsImFzIiwiYnMiLCJzaXplIiwiX2l0ZXJhdG9yIiwiX3N0ZXAiLCJoYXMiLCJlcnIiLCJDb2RlMlBhdHRlcm4iLCJwYXR0ZXJuIiwiY2hpbGRyZW4iLCJfcGF0dGVybl8iLCJfbWF0Y2hfY291bnRfIiwiYXNzaWduIiwiQ29kZTJQYXR0ZXJuQ29tRm9uZCIsIl9Db2RlMlBhdHRlcm4yIiwiTGVjdHVyZU1hcHBpbmciLCJTZXQiLCJhZGQiLCJhY3RlIiwiY29kZXMiLCJjb2RlQWN0ZSIsImdldFR5cGUiLCJsaWJlbGxlQWN0ZSIsIm5vbUNhbm9uaXF1ZSIsImxpYmVsbGUiLCJyZW1hcCIsInR5cGVzIiwibWVyZ2VDb2RlcyIsIl9pIiwiX0FycmF5JGZyb20iLCJjIiwicHJpbnRBbmNob3JzIiwiX2kyIiwiX0FycmF5JGZyb20yIiwiY29kZSIsImxvZyIsImNvbmNhdCIsImdldENvZGVzIiwiam9pbiIsImlzTGVjdHVyZSIsIm1hdGNoIiwiY29kZXNfbGVjdHVyZV9yZWdleHAiLCJFcnJvciIsIm1hcCIsInJlcGxhY2UiLCJnZXRDb2RlQWN0ZSIsIlJlZ0V4cCIsImNvZGVzX2xlY3R1cmUiLCJMZWN0dXJlTWFwcGVyIiwibWFwcGluZyIsImNvbGxlY3QiLCJ1bmRlZmluZWQiLCJsZWN0dXJlcyIsIkFjdGVzRG9jdW1lbnRhdGlvbiIsInNhbml0eUNoZWNrcyIsInZlcmJvc2UiLCJhcmd1bWVudHMiLCJsZWN0dXJlIiwiQ01QIiwiQ0MiLCJQUk9NIiwiQU4yMSIsIkFOTFVOSSIsIlLDqXNvbHV0aW9uIiwiQU4yMCIsIkVVIiwiSW1tdW5pdMOpIiwicHJvY2VkdXJlcyIsImNvZGUycGF0dGVybiIsIndhbGtGaWxlcyIsImRhdGEiLCJhY3Rpb24iLCJfaXRlcmF0b3IyIiwiZ2V0RmlsZXMiLCJfc3RlcDIiLCJmaWxlIiwiZG9zc2llciIsImxvYWQiLCJwcm9jZWR1cmUiLCJyZW1hcFByb2NlZHVyZSIsInByb2NlZHVyZVBhcmxlbWVudGFpcmUiLCJhY3Rlc0xlZ2lzbGF0aWZzIiwiY29sbGVjdEZpbGVzIiwiX3RoaXMiLCJfYWN0ZXMiLCJfYzJwIiwiX3BhcmVudCIsInByb2Nlc3NGaWxlcyIsIl90aGlzMiIsImFjdGVzIiwiYzJwIiwicGFyZW50IiwibWVyZ2UiLCJ2YWxpZGF0ZSIsInJlbWFwQWN0ZXMiLCJyZXN1bHRzIiwiX2l0ZXJhdG9yMyIsIl9zdGVwMyIsImxlY3R1cmVNYXBwZXIiLCJjb2xsZWN0QWN0ZXMiLCJfaXRlcmF0b3I0IiwiX3N0ZXA0IiwibWVyZ2VfcHJvY2VkdXJlcyIsIk1hcCIsInJlbWFwcGVkUHJvY2VkdXJlcyIsImdldCIsIm9yZGVyZWRDb2RlcyIsIm9yZGVyZWQiLCJ4IiwiYXNzZXJ0IiwidmFsaWRhdGVDaHJvbm9sb2d5Iiwic2VxdWVuY2UiLCJtZXJnZUFjdGUiLCJzaG9ydENvZGUiLCJ4c2lUeXBlIiwiX2l0ZXJhdG9yNSIsIl9zdGVwNSIsIl9pdGVyYXRvcjYiLCJfc3RlcDYiLCJ2YWxpZGF0ZUxldmVsIiwicGF0aCIsIl9pMyIsIl9hcnIiLCJlbnRyaWVzIiwiX2FyciRfaSIsInByaW50RW50cnkiLCJlbnRyeSIsInRpdGxlIiwidW5kZXJsaW5lIiwiYWRkQW5jaG9ycyIsImFuY2hvcnNQcmludGVkIiwiYW5jaG9ycyIsInJlbmFtZUNNUCIsInN0YXJ0c1dpdGgiLCJlbmRzV2l0aCIsInByaW50TGV2ZWwiLCJrZXlzIiwiX2l0ZXJhdG9yNyIsIl9zdGVwNyIsInN1YnN0cmluZyIsInByaW50Q29kZXMiLCJfaTQiLCJfT2JqZWN0JGtleXMiLCJwcmludEFuY2hvcnNJbmRleCIsIl9pNSIsIl9BcnJheSRmcm9tMyIsImdldEFnZ3JlZ2F0ZWQiLCJyZW1hcHBlZCIsInByaW50IiwiX2k2IiwiX2FycjIiLCJfYXJyMiRfaSIsImFnZ3JlZ2F0ZWQiLCJtYWluIiwiZG9jIiwicHJvY2VzcyIsImV4aXQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyaXB0cy9kb2N1bWVudF9kb3NzaWVyc19sZWdpc2xhdGlmcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY29tbWFuZExpbmVBcmdzIGZyb20gXCJjb21tYW5kLWxpbmUtYXJnc1wiXG5pbXBvcnQgY29tbWFuZExpbmVVc2FnZSBmcm9tIFwiY29tbWFuZC1saW5lLXVzYWdlXCJcbmltcG9ydCBhc3NlcnQgZnJvbSBcImFzc2VydFwiXG5pbXBvcnQgeyBsb2FkLCBnZXRGaWxlcyB9IGZyb20gXCIuLi9maWxlX3N5c3RlbXNcIlxuXG5mdW5jdGlvbiBwYXJzZUFyZ3MoYXJndjogc3RyaW5nW10pOiBhbnkge1xuICBjb25zdCBvcHRpb25zRGVmaW5pdGlvbnMgPSBbXG4gICAge1xuICAgICAgZGVzY3JpcHRpb246IFwicGF0aG5hbWUgdG8gYSBKU09OIGZpbGUgb3IgYSBnbG9iIHBhdHRlcm4gdG8gSlNPTiBmaWxlc1wiLFxuICAgICAgZGVmYXVsdE9wdGlvbjogdHJ1ZSxcbiAgICAgIG11bHRpcGxlOiB0cnVlLFxuICAgICAgbmFtZTogXCJkYXRhXCIsXG4gICAgICB0eXBlOiBTdHJpbmcsXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiBcIm5vLXNhbml0eS1jaGVja3NcIixcbiAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgICBkZXNjcmlwdGlvbjogXCJEbyBub3QgcGVyZm9ybSBzYW5pdHkgY2hlY2tzLlwiLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogXCJ2ZXJib3NlXCIsXG4gICAgICB0eXBlOiBCb29sZWFuLFxuICAgICAgZGVzY3JpcHRpb246IFwiaW5jcmVhc2UgdmVyYm9zaXR5XCIsXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiBcImhlbHBcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlByaW50IHRoaXMgdXNhZ2UgZ3VpZGUuXCIsXG4gICAgfSxcbiAgXVxuICBjb25zdCBzZWN0aW9ucyA9IFtcbiAgICB7XG4gICAgICBoZWFkZXI6IFwiQWlkZSDDoCBsYSBkb2N1bWVudGF0aW9uIGR1IGRvc3NpZXIgbMOpZ2lzbGF0aWZcIixcbiAgICAgIGNvbnRlbnQ6IFwiR8OpbsOocmUgdW5lIGhpw6lyYXJjaGllIGRlcyBhY3RlcyBsw6lnaXNsYXRpZnNcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIGhlYWRlcjogXCJPcHRpb25zXCIsXG4gICAgICBvcHRpb25MaXN0OiBvcHRpb25zRGVmaW5pdGlvbnMsXG4gICAgfSxcbiAgXVxuICBjb25zdCBvcHRpb25zID0gY29tbWFuZExpbmVBcmdzKG9wdGlvbnNEZWZpbml0aW9ucywge1xuICAgIGFyZ3Y6IGFyZ3YsXG4gIH0pXG4gIGlmICghKFwiaGVscFwiIGluIG9wdGlvbnMpICYmICEoXCJkYXRhXCIgaW4gb3B0aW9ucykpIHtcbiAgICBjb25zb2xlLmVycm9yKFwiLS1kYXRhIGlzIG1hbmRhdG9yeVwiKVxuICAgIG9wdGlvbnMuaGVscCA9IHRydWVcbiAgfVxuICBpZiAoXCJoZWxwXCIgaW4gb3B0aW9ucykge1xuICAgIGNvbnN0IHVzYWdlID0gY29tbWFuZExpbmVVc2FnZShzZWN0aW9ucylcbiAgICBjb25zb2xlLndhcm4odXNhZ2UpXG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICByZXR1cm4gb3B0aW9uc1xufVxuXG5mdW5jdGlvbiBlcVNldChhczogU2V0PHN0cmluZz4sIGJzOiBTZXQ8c3RyaW5nPik6IGJvb2xlYW4ge1xuICBpZiAoYXMuc2l6ZSAhPT0gYnMuc2l6ZSkgcmV0dXJuIGZhbHNlXG4gIGZvciAodmFyIGEgb2YgYXMpIGlmICghYnMuaGFzKGEpKSByZXR1cm4gZmFsc2VcbiAgcmV0dXJuIHRydWVcbn1cblxuY2xhc3MgQ29kZTJQYXR0ZXJuIHtcbiAgX3BhdHRlcm5fOiBhbnlcbiAgX21hdGNoX2NvdW50XzogbnVtYmVyXG4gIGNvbnN0cnVjdG9yKHBhdHRlcm46IGFueSwgY2hpbGRyZW46IGFueSkge1xuICAgIHRoaXMuX3BhdHRlcm5fID0gcGF0dGVyblxuICAgIHRoaXMuX21hdGNoX2NvdW50XyA9IDBcbiAgICBPYmplY3QuYXNzaWduKHRoaXMsIGNoaWxkcmVuKVxuICB9XG59XG5cbmNsYXNzIENvZGUyUGF0dGVybkNvbUZvbmQgZXh0ZW5kcyBDb2RlMlBhdHRlcm4ge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihcIl4vU0FJU0lFLygvTk9NSU4vKSooL1JFVU5JT04vKSooL1JBUFBPUlQvKSokXCIsIHt9KVxuICB9XG59XG5cbmNsYXNzIExlY3R1cmVNYXBwaW5nIHtcbiAgbGliZWxsZTogYW55ID0ge31cbiAgY29kZXM6IGFueSA9IG5ldyBTZXQoKVxuXG4gIHN0YXRpYyBjb2Rlc19sZWN0dXJlOiBzdHJpbmdbXSA9IFtcbiAgICBcIkFOMVwiLFxuICAgIFwiU04xXCIsXG4gICAgXCJBTk5MRUNcIixcbiAgICBcIlNOTkxFQ1wiLFxuICAgIFwiQU5MREVGXCIsXG4gICAgXCJBTjJcIixcbiAgICBcIlNOMlwiLFxuICAgIFwiU04zXCIsXG4gIF1cbiAgc3RhdGljIGNvZGVzX2xlY3R1cmVfcmVnZXhwOiBhbnkgPSBuZXcgUmVnRXhwKFxuICAgIFwiXig/OlwiICsgTGVjdHVyZU1hcHBpbmcuY29kZXNfbGVjdHVyZS5qb2luKFwifFwiKSArIFwiKSgtLiopPyRcIixcbiAgKVxuXG4gIHN0YXRpYyBpc0xlY3R1cmUoYWN0ZTogYW55KSB7XG4gICAgcmV0dXJuIGFjdGUuY29kZUFjdGUubWF0Y2goTGVjdHVyZU1hcHBpbmcuY29kZXNfbGVjdHVyZV9yZWdleHApXG4gIH1cblxuICBzdGF0aWMgZ2V0VHlwZShhY3RlOiBhbnkpIHtcbiAgICBpZiAoYWN0ZS5jb2RlQWN0ZS5tYXRjaCgvXkFOLykpIHJldHVybiBcIkFOXCJcbiAgICBlbHNlIGlmIChhY3RlLmNvZGVBY3RlLm1hdGNoKC9eU04vKSkgcmV0dXJuIFwiU05cIlxuICAgIGVsc2UgdGhyb3cgRXJyb3IoYCR7YWN0ZS5jb2RlQWN0ZX0gZG9lcyBub3Qgc3RhcnQgd2l0aCBBTiBvciBTTmApXG4gIH1cblxuICBzdGF0aWMgbWFwKGNvZGVBY3RlOiBhbnkpIHtcbiAgICByZXR1cm4gY29kZUFjdGUucmVwbGFjZShMZWN0dXJlTWFwcGluZy5jb2Rlc19sZWN0dXJlX3JlZ2V4cCwgYGxlY3R1cmUkMWApXG4gIH1cblxuICBzdGF0aWMgZ2V0Q29kZUFjdGUoYWN0ZTogYW55KSB7XG4gICAgaWYgKCFMZWN0dXJlTWFwcGluZy5pc0xlY3R1cmUoYWN0ZSkpIHJldHVyblxuXG4gICAgcmV0dXJuIExlY3R1cmVNYXBwaW5nLm1hcChhY3RlLmNvZGVBY3RlKVxuICB9XG5cbiAgYWRkKGFjdGU6IGFueSkge1xuICAgIHRoaXMuY29kZXMuYWRkKGFjdGUuY29kZUFjdGUpXG5cbiAgICBjb25zdCB0eXBlID0gTGVjdHVyZU1hcHBpbmcuZ2V0VHlwZShhY3RlKVxuXG4gICAgaWYgKCEoYWN0ZS5saWJlbGxlQWN0ZS5ub21DYW5vbmlxdWUgaW4gdGhpcy5saWJlbGxlKSlcbiAgICAgIHRoaXMubGliZWxsZVthY3RlLmxpYmVsbGVBY3RlLm5vbUNhbm9uaXF1ZV0gPSBuZXcgU2V0KClcbiAgICB0aGlzLmxpYmVsbGVbYWN0ZS5saWJlbGxlQWN0ZS5ub21DYW5vbmlxdWVdLmFkZCh0eXBlKVxuICB9XG5cbiAgcmVtYXAoYWN0ZTogYW55LCBjb2RlQWN0ZTogc3RyaW5nKSB7XG4gICAgYWN0ZS5jb2RlQWN0ZSA9IGNvZGVBY3RlXG5cbiAgICBsZXQgdHlwZXMgPSB0aGlzLmxpYmVsbGVbYWN0ZS5saWJlbGxlQWN0ZS5ub21DYW5vbmlxdWVdXG4gICAgaWYgKCEodHlwZXMuaGFzKFwiU05cIikgJiYgdHlwZXMuaGFzKFwiQU5cIikpKSB7XG4gICAgICBpZiAodHlwZXMuaGFzKFwiU05cIikpIGFjdGUubGliZWxsZUFjdGUubm9tQ2Fub25pcXVlICs9IFwiIChTw6luYXQpXCJcbiAgICAgIGVsc2UgaWYgKHR5cGVzLmhhcyhcIkFOXCIpKVxuICAgICAgICBhY3RlLmxpYmVsbGVBY3RlLm5vbUNhbm9uaXF1ZSArPSBcIiAoQXNzZW1ibMOpZSBOYXRpb25hbGUpXCJcbiAgICB9XG4gIH1cblxuICBtZXJnZUNvZGVzKGNvZGVzOiBhbnkpIHtcbiAgICBmb3IgKGNvbnN0IGMgb2YgQXJyYXkuZnJvbSh0aGlzLmNvZGVzKSkgY29kZXMuYWRkKGMpXG4gIH1cblxuICBwcmludEFuY2hvcnMoKSB7XG4gICAgZm9yIChjb25zdCBjb2RlIG9mIEFycmF5LmZyb20odGhpcy5jb2RlcykpIGNvbnNvbGUubG9nKGAuLiBfJHtjb2RlfTpgKVxuICB9XG5cbiAgZ2V0Q29kZXMoKSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5jb2Rlcykuam9pbihcIixcIilcbiAgfVxufVxuXG5jbGFzcyBMZWN0dXJlTWFwcGVyIHtcbiAgbWFwcGluZzogYW55ID0ge31cblxuICBoYXMoY29kZUFjdGU6IHN0cmluZykge1xuICAgIHJldHVybiBjb2RlQWN0ZSBpbiB0aGlzLm1hcHBpbmdcbiAgfVxuXG4gIGNvbGxlY3QoYWN0ZTogYW55KSB7XG4gICAgY29uc3QgY29kZUFjdGUgPSBMZWN0dXJlTWFwcGluZy5nZXRDb2RlQWN0ZShhY3RlKVxuICAgIGlmIChjb2RlQWN0ZSAhPSB1bmRlZmluZWQpIHtcbiAgICAgIGxldCBsZWN0dXJlcyA9IHRoaXMubWFwcGluZ1xuICAgICAgaWYgKCEoY29kZUFjdGUgaW4gbGVjdHVyZXMpKSBsZWN0dXJlc1tjb2RlQWN0ZV0gPSBuZXcgTGVjdHVyZU1hcHBpbmcoKVxuICAgICAgbGVjdHVyZXNbY29kZUFjdGVdLmFkZChhY3RlKVxuICAgIH1cbiAgfVxuXG4gIHJlbWFwKGFjdGU6IGFueSkge1xuICAgIGNvbnN0IGNvZGVBY3RlID0gTGVjdHVyZU1hcHBpbmcuZ2V0Q29kZUFjdGUoYWN0ZSlcbiAgICBpZiAoY29kZUFjdGUgIT0gdW5kZWZpbmVkKSB0aGlzLm1hcHBpbmdbY29kZUFjdGVdLnJlbWFwKGFjdGUsIGNvZGVBY3RlKVxuICB9XG5cbiAgbWVyZ2VDb2Rlcyhjb2RlczogYW55LCBjb2RlQWN0ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5tYXBwaW5nW2NvZGVBY3RlXS5tZXJnZUNvZGVzKGNvZGVzKVxuICB9XG5cbiAgcHJpbnRBbmNob3JzKGNvZGVBY3RlOiBzdHJpbmcpIHtcbiAgICB0aGlzLm1hcHBpbmdbY29kZUFjdGVdLnByaW50QW5jaG9ycygpXG4gIH1cblxuICBnZXRDb2Rlcyhjb2RlQWN0ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMubWFwcGluZ1tjb2RlQWN0ZV0uZ2V0Q29kZXMoKVxuICB9XG59XG5cbmNsYXNzIEFjdGVzRG9jdW1lbnRhdGlvbiB7XG4gIHZlcmJvc2U6IGJvb2xlYW5cbiAgc2FuaXR5Q2hlY2tzOiBib29sZWFuXG4gIGxlY3R1cmVNYXBwZXI6IGFueSA9IG5ldyBMZWN0dXJlTWFwcGVyKClcbiAgcmVtYXBwZWRQcm9jZWR1cmVzOiBhbnkgPSB7fVxuICBhbmNob3JzUHJpbnRlZDogYW55ID0ge31cbiAgYW5jaG9yczogYW55ID0gbmV3IFNldCgpXG4gIGNvZGVzOiBhbnkgPSB7fVxuICBwcm9jZWR1cmVzOiBhbnkgPSBudWxsXG4gIGNvZGUycGF0dGVybjogYW55ID0gbmV3IENvZGUyUGF0dGVybihudWxsLCB7XG4gICAgXCJQcm9jw6lkdXJlIGzDqWdpc2xhdGl2ZVwiOiBuZXcgQ29kZTJQYXR0ZXJuKFxuICAgICAgXCJeKCgoL2xlY3R1cmUvKSspfCgoL2xlY3R1cmUvKSsvQ01QLygvbGVjdHVyZS8pKikpKC9DQy8pPygvUFJPTS8pPygvQU4tQVBQTEkvKT8kXCIsXG4gICAgICB7XG4gICAgICAgIGxlY3R1cmU6IG5ldyBDb2RlMlBhdHRlcm4oXG4gICAgICAgICAgXCJeKC9ERVBPVC8pPygvRFBUTEVUVFJFQ1QvKT8oL0VUSS8pPygvQVZDRS8pPygvREdWVC8pPygvQUNJTi8pPygvTU9USU9OLykqKC9QUk9DQUNDLyk/KC9DT00vKT8oKC9ERUJBVFMvKSspPygvUlRSSU5JLyk/JFwiLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIFwibGVjdHVyZS1DT01cIjogbmV3IENvZGUyUGF0dGVybihcIl4oL0ZPTkQvfC9BVklTLykrJFwiLCB7XG4gICAgICAgICAgICAgIFwibGVjdHVyZS1DT00tRk9ORFwiOiBuZXcgQ29kZTJQYXR0ZXJuQ29tRm9uZCgpLFxuICAgICAgICAgICAgICBcImxlY3R1cmUtQ09NLUFWSVNcIjogbmV3IENvZGUyUGF0dGVybkNvbUZvbmQoKSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgXCJsZWN0dXJlLURFQkFUU1wiOiBuZXcgQ29kZTJQYXR0ZXJuKFxuICAgICAgICAgICAgICBcIl4oL1NFQU5DRS8pKigoL01PVElPTi8pPygvTU9USU9OLVZPVEUvKSspPygvREVDLyk/JFwiLFxuICAgICAgICAgICAgICB7fSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgfSxcbiAgICAgICAgKSxcbiAgICAgICAgQ01QOiBuZXcgQ29kZTJQYXR0ZXJuKFxuICAgICAgICAgIFwiXigvREVQT1QvfC9TQUlTSUUvKXsxLDJ9KC9DT00vKT8oL0RFQy8pPygvREVCQVRTLUFOLy9ERUJBVFMtU04vKT9cIixcbiAgICAgICAgICB7XG4gICAgICAgICAgICBcIkNNUC1DT01cIjogbmV3IENvZGUyUGF0dGVybihcbiAgICAgICAgICAgICAgXCJeKC9OT01JTi8pPygvUkFQUE9SVC1BTi98L1JBUFBPUlQtU04vKXsyfSRcIixcbiAgICAgICAgICAgICAge30sXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgXCJDTVAtREVCQVRTLUFOXCI6IG5ldyBDb2RlMlBhdHRlcm4oXCJeKC9TRUFOQ0UvKSooL0RFQy8pPyRcIiwge30pLFxuICAgICAgICAgICAgXCJDTVAtREVCQVRTLVNOXCI6IG5ldyBDb2RlMlBhdHRlcm4oXCJeKC9TRUFOQ0UvKSooL0RFQy8pPyRcIiwge30pLFxuICAgICAgICAgIH0sXG4gICAgICAgICksXG4gICAgICAgIENDOiBuZXcgQ29kZTJQYXR0ZXJuKFwiXigvU0FJU0lFLykrKC9DT05DTFVTSU9OLyk/JFwiLCB7fSksXG4gICAgICAgIFBST006IG5ldyBDb2RlMlBhdHRlcm4oXCJeKC9QVUIvKT8kXCIsIHt9KSxcbiAgICAgICAgXCJBTi1BUFBMSVwiOiBuZXcgQ29kZTJQYXR0ZXJuKFwiXigvUkFQUE9SVC8pPyRcIiwge30pLFxuICAgICAgfSxcbiAgICApLFxuICAgIFwiQWxsb2N1dGlvbiBkdSBQcsOpc2lkZW50IGRlIGwnQXNzZW1ibMOpZSBuYXRpb25hbGVcIjogbmV3IENvZGUyUGF0dGVybihcbiAgICAgIFwiXi9BTjIxLyRcIixcbiAgICAgIHtcbiAgICAgICAgQU4yMTogbmV3IENvZGUyUGF0dGVybihcIl4oL0FQQU4vKT8kXCIsIHt9KSxcbiAgICAgIH0sXG4gICAgKSxcbiAgICBcIlLDqXNvbHV0aW9uIEFydGljbGUgMzQtMVwiOiBuZXcgQ29kZTJQYXR0ZXJuKFwiXigvQU5MVU5JLyk/JFwiLCB7XG4gICAgICBBTkxVTkk6IG5ldyBDb2RlMlBhdHRlcm4oXCJeKC9ERVBPVC8pPygvREVCQVRTLyk/KC9SVFJJTkkvKT8kXCIsIHtcbiAgICAgICAgXCJBTkxVTkktREVCQVRTXCI6IG5ldyBDb2RlMlBhdHRlcm4oXCJeKC9TRUFOQ0UvKSsoL0RFQy8pPyRcIiwge30pLFxuICAgICAgfSksXG4gICAgfSksXG4gICAgUsOpc29sdXRpb246IG5ldyBDb2RlMlBhdHRlcm4oXCJeKC9BTkxVTkkvKT8oL0NDLyk/JFwiLCB7XG4gICAgICBBTkxVTkk6IG5ldyBDb2RlMlBhdHRlcm4oXCJeKC9ERVBPVC8pPygvQ09NLyk/KC9ERUJBVFMvfC9SVFJJTkkvKT8kXCIsIHtcbiAgICAgICAgXCJBTkxVTkktQ09NXCI6IG5ldyBDb2RlMlBhdHRlcm4oXCJeKC9DQUUvKT8oL0ZPTkQvKT8kXCIsIHtcbiAgICAgICAgICBcIkFOTFVOSS1DT00tRk9ORFwiOiBuZXcgQ29kZTJQYXR0ZXJuQ29tRm9uZCgpLFxuICAgICAgICAgIFwiQU5MVU5JLUNPTS1DQUVcIjogbmV3IENvZGUyUGF0dGVybihcbiAgICAgICAgICAgIFwiXigvU0FJU0lFLyk/KC9OT01JTi8pPygvUkVVTklPTi8pPygvUkFQUE9SVC8pPygvREVDLyk/JFwiLFxuICAgICAgICAgICAge30sXG4gICAgICAgICAgKSxcbiAgICAgICAgfSksXG4gICAgICAgIFwiQU5MVU5JLURFQkFUU1wiOiBuZXcgQ29kZTJQYXR0ZXJuKFwiXigvU0VBTkNFLykqKC9ERUMvKT8kXCIsIHt9KSxcbiAgICAgIH0pLFxuICAgICAgQ0M6IG5ldyBDb2RlMlBhdHRlcm4oXCJeKC9TQUlTSUUvKT8oL0NPTkNMVVNJT04vKT8kXCIsIHt9KSxcbiAgICB9KSxcbiAgICBcIlJhcHBvcnQgZCdpbmZvcm1hdGlvbiBzYW5zIG1pc3Npb25cIjogbmV3IENvZGUyUGF0dGVybihcbiAgICAgIFwiXigvQU4yMC8pPygvRVUvKT8kXCIsXG4gICAgICB7XG4gICAgICAgIEFOMjA6IG5ldyBDb2RlMlBhdHRlcm4oXCJeKC9SQVBQT1JULyk/JFwiLCB7fSksXG4gICAgICAgIEVVOiBuZXcgQ29kZTJQYXR0ZXJuKFwiXigvREVDLykrJFwiLCB7fSksXG4gICAgICB9LFxuICAgICksXG4gICAgXCJNaXNzaW9uIGQnaW5mb3JtYXRpb25cIjogbmV3IENvZGUyUGF0dGVybihcIl4oL0FOMjAvKT8kXCIsIHtcbiAgICAgIEFOMjA6IG5ldyBDb2RlMlBhdHRlcm4oXCJeKC9NSVNJTkYvKT8kXCIsIHtcbiAgICAgICAgXCJBTjIwLU1JU0lORlwiOiBuZXcgQ29kZTJQYXR0ZXJuKFxuICAgICAgICAgIFwiXigvQ1JFQS8pPygvTk9NSU4vKT8oL1JBUFBPUlQvKT8kXCIsXG4gICAgICAgICAge30sXG4gICAgICAgICksXG4gICAgICB9KSxcbiAgICB9KSxcbiAgICBcIkNvbW1pc3Npb24gZCdlbnF1w6p0ZVwiOiBuZXcgQ29kZTJQYXR0ZXJuKFwiXigvQU4yMC8pPyRcIiwge1xuICAgICAgQU4yMDogbmV3IENvZGUyUGF0dGVybihcIl4oL0NPTUVOUS8pPyRcIiwge1xuICAgICAgICBcIkFOMjAtQ09NRU5RXCI6IG5ldyBDb2RlMlBhdHRlcm4oXG4gICAgICAgICAgXCJeKC9DUkVBLyk/KC9OT01JTi8pPygvUkFQUE9SVC8pPyRcIixcbiAgICAgICAgICB7fSxcbiAgICAgICAgKSxcbiAgICAgIH0pLFxuICAgIH0pLFxuICAgIFwiRW5nYWdlbWVudCBkZSBsYSByZXNwb25zYWJpbGl0w6kgZ291dmVybmVtZW50YWxlXCI6IG5ldyBDb2RlMlBhdHRlcm4oXG4gICAgICBcIl4vQU4yMS8kXCIsXG4gICAgICB7XG4gICAgICAgIEFOMjE6IG5ldyBDb2RlMlBhdHRlcm4oXCJeKCgoL01PVElPTi8pKi9ERUJBVFMvKXwoL0RHVlQvKSl7MSwyfSRcIiwge1xuICAgICAgICAgIFwiQU4yMS1ERUJBVFNcIjogbmV3IENvZGUyUGF0dGVybihcIl4oL1NFQU5DRS8pKigvTU9USU9OLVZPVEUvKSokXCIsIHt9KSxcbiAgICAgICAgfSksXG4gICAgICB9LFxuICAgICksXG4gICAgXCJNb3Rpb24gcsOpZsOpcmVuZGFpcmVcIjogbmV3IENvZGUyUGF0dGVybihcIl4oL2xlY3R1cmUvKSskXCIsIHtcbiAgICAgIGxlY3R1cmU6IG5ldyBDb2RlMlBhdHRlcm4oXCJeKC9ERVBPVC8pPygvQ09NLyk/KC9ERUJBVFMvKT8kXCIsIHtcbiAgICAgICAgXCJsZWN0dXJlLUNPTVwiOiBuZXcgQ29kZTJQYXR0ZXJuKFwiXigvRk9ORC8pPyRcIiwge1xuICAgICAgICAgIFwibGVjdHVyZS1DT00tRk9ORFwiOiBuZXcgQ29kZTJQYXR0ZXJuKFxuICAgICAgICAgICAgXCJeKC9TQUlTSUUvKT8oL05PTUlOLykqKC9SQVBQT1JULykqJFwiLFxuICAgICAgICAgICAge30sXG4gICAgICAgICAgKSxcbiAgICAgICAgfSksXG4gICAgICAgIFwibGVjdHVyZS1ERUJBVFNcIjogbmV3IENvZGUyUGF0dGVybihcIl4oL0RFQy8pPyRcIiwge30pLFxuICAgICAgfSksXG4gICAgfSksXG4gICAgSW1tdW5pdMOpOiBuZXcgQ29kZTJQYXR0ZXJuKFwiXigvQU5MVU5JLykrJFwiLCB7XG4gICAgICBBTkxVTkk6IG5ldyBDb2RlMlBhdHRlcm4oXCJeKC9ERVBPVC8pPygvQ09NLyk/KC9ERUJBVFMvKT8oL1JUUklOSS8pPyRcIiwge1xuICAgICAgICBcIkFOTFVOSS1DT01cIjogbmV3IENvZGUyUGF0dGVybihcIl4oL0ZPTkQvKT8kXCIsIHtcbiAgICAgICAgICBcIkFOTFVOSS1DT00tRk9ORFwiOiBuZXcgQ29kZTJQYXR0ZXJuKFxuICAgICAgICAgICAgXCJeKC9TQUlTSUUvKT8oL05PTUlOLykqKC9SQVBQT1JULykqJFwiLFxuICAgICAgICAgICAge30sXG4gICAgICAgICAgKSxcbiAgICAgICAgfSksXG4gICAgICAgIFwiQU5MVU5JLURFQkFUU1wiOiBuZXcgQ29kZTJQYXR0ZXJuKFwiXigvU0VBTkNFLyk/KC9ERUMvKSRcIiwge30pLFxuICAgICAgfSksXG4gICAgfSksXG4gICAgXCJSZXNwb25zYWJpbGl0w6kgcMOpbmFsZSBkdSBwcsOpc2lkZW50IGRlIGxhIHLDqXB1YmxpcXVlXCI6IG5ldyBDb2RlMlBhdHRlcm4oXG4gICAgICBcIl4vbGVjdHVyZS8kXCIsXG4gICAgICB7XG4gICAgICAgIGxlY3R1cmU6IG5ldyBDb2RlMlBhdHRlcm4oXCJeKC9ERVBPVC8pPygvUkVDQlVSRUFVLyk/JFwiLCB7fSksXG4gICAgICB9LFxuICAgICksXG4gICAgXCJQcm9wb3NpdGlvbiBkZSBsb2kgcHLDqXNlbnTDqWUgZW4gYXBwbGljYXRpb24gZGUgbCdhcnRpY2xlIDExIGRlIGxhIENvbnN0aXR1dGlvblwiOlxuICAgICAgbmV3IENvZGUyUGF0dGVybihcIl4vbGVjdHVyZS8kXCIsIHtcbiAgICAgICAgbGVjdHVyZTogbmV3IENvZGUyUGF0dGVybihcIl4oL0RFUE9ULyk/JFwiLCB7fSksXG4gICAgICB9KSxcbiAgfSlcblxuICBjb25zdHJ1Y3RvcihzYW5pdHlDaGVja3M6IGJvb2xlYW4sIHZlcmJvc2U6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIHRoaXMudmVyYm9zZSA9IHZlcmJvc2VcbiAgICB0aGlzLnNhbml0eUNoZWNrcyA9IHNhbml0eUNoZWNrc1xuICAgIHRoaXMucHJvY2VkdXJlcyA9IHt9XG4gICAgdGhpcy5jb2RlMnBhdHRlcm4uX21hdGNoX2NvdW50XysrXG4gIH1cblxuICB3YWxrRmlsZXMoZGF0YTogc3RyaW5nW10sIGFjdGlvbjogYW55KSB7XG4gICAgZm9yIChjb25zdCBmaWxlIG9mIGdldEZpbGVzKGRhdGEpKSB7XG4gICAgICBjb25zdCBkb3NzaWVyID0gbG9hZChmaWxlKVxuICAgICAgbGV0IHByb2NlZHVyZTogc3RyaW5nID0gdGhpcy5yZW1hcFByb2NlZHVyZShcbiAgICAgICAgZG9zc2llci5wcm9jZWR1cmVQYXJsZW1lbnRhaXJlLmxpYmVsbGUsXG4gICAgICApXG4gICAgICBpZiAoIShwcm9jZWR1cmUgaW4gdGhpcy5wcm9jZWR1cmVzKSkgdGhpcy5wcm9jZWR1cmVzW3Byb2NlZHVyZV0gPSB7fVxuICAgICAgYWN0aW9uKFxuICAgICAgICB0aGlzLnByb2NlZHVyZXNbcHJvY2VkdXJlXSxcbiAgICAgICAgZG9zc2llci5hY3Rlc0xlZ2lzbGF0aWZzLFxuICAgICAgICB0aGlzLmNvZGUycGF0dGVybltwcm9jZWR1cmVdLFxuICAgICAgICBudWxsLFxuICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIGNvbGxlY3RGaWxlcyhkYXRhOiBzdHJpbmdbXSkge1xuICAgIHRoaXMud2Fsa0ZpbGVzKFxuICAgICAgZGF0YSxcbiAgICAgIChfYWN0ZXM6IGFueSwgYWN0ZXNMZWdpc2xhdGlmczogYW55LCBfYzJwOiBhbnksIF9wYXJlbnQ6IHN0cmluZykgPT4ge1xuICAgICAgICB0aGlzLmNvbGxlY3QoYWN0ZXNMZWdpc2xhdGlmcylcbiAgICAgIH0sXG4gICAgKVxuICB9XG5cbiAgcHJvY2Vzc0ZpbGVzKGRhdGE6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy53YWxrRmlsZXMoXG4gICAgICBkYXRhLFxuICAgICAgKGFjdGVzOiBhbnksIGFjdGVzTGVnaXNsYXRpZnM6IGFueSwgYzJwOiBhbnksIHBhcmVudDogc3RyaW5nKSA9PiB7XG4gICAgICAgIHRoaXMubWVyZ2UoYWN0ZXMsIGFjdGVzTGVnaXNsYXRpZnMsIGMycCwgcGFyZW50KVxuICAgICAgfSxcbiAgICApXG4gICAgaWYgKHRoaXMuc2FuaXR5Q2hlY2tzKSB0aGlzLnZhbGlkYXRlKClcbiAgfVxuXG4gIHJlbWFwQWN0ZXMoYWN0ZXM6IGFueSk6IGFueSB7XG4gICAgbGV0IHJlc3VsdHMgPSBbXVxuICAgIGZvciAoY29uc3QgYWN0ZSBvZiBhY3Rlcykge1xuICAgICAgdGhpcy5sZWN0dXJlTWFwcGVyLnJlbWFwKGFjdGUpXG5cbiAgICAgIC8vIENDLVNBSVNJRS0gc3VmZml4IGRvZXMgbm90IGltcGx5IGEgaGllcmFyY2h5XG4gICAgICBhY3RlLmNvZGVBY3RlID0gYWN0ZS5jb2RlQWN0ZS5yZXBsYWNlKC9eQ0MtU0FJU0lFLiovLCBcIkNDLVNBSVNJRVwiKVxuXG4gICAgICByZXN1bHRzLnB1c2goYWN0ZSlcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdHNcbiAgfVxuXG4gIGNvbGxlY3RBY3RlcyhhY3RlczogYW55KTogYW55IHtcbiAgICBsZXQgcmVzdWx0cyA9IFtdXG4gICAgZm9yIChjb25zdCBhY3RlIG9mIGFjdGVzKSB7XG4gICAgICB0aGlzLmxlY3R1cmVNYXBwZXIuY29sbGVjdChhY3RlKVxuXG4gICAgICByZXN1bHRzLnB1c2goYWN0ZSlcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdHNcbiAgfVxuXG4gIHJlbWFwUHJvY2VkdXJlKHByb2NlZHVyZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBtZXJnZV9wcm9jZWR1cmVzOiBNYXA8c3RyaW5nLCBhbnk+ID0gbmV3IE1hcChbXG4gICAgICBbXCJQcm9wb3NpdGlvbiBkZSBsb2kgb3JkaW5haXJlXCIsIFwiUHJvY8OpZHVyZSBsw6lnaXNsYXRpdmVcIl0sXG4gICAgICBbXCJQcm9qZXQgZGUgbG9pIG9yZGluYWlyZVwiLCBcIlByb2PDqWR1cmUgbMOpZ2lzbGF0aXZlXCJdLFxuICAgICAgW1xuICAgICAgICBcIlByb2pldCBkZSByYXRpZmljYXRpb24gZGVzIHRyYWl0w6lzIGV0IGNvbnZlbnRpb25zXCIsXG4gICAgICAgIFwiUHJvY8OpZHVyZSBsw6lnaXNsYXRpdmVcIixcbiAgICAgIF0sXG4gICAgICBbXCJQcm9qZXQgb3UgcHJvcG9zaXRpb24gZGUgbG9pIG9yZ2FuaXF1ZVwiLCBcIlByb2PDqWR1cmUgbMOpZ2lzbGF0aXZlXCJdLFxuICAgICAgW1xuICAgICAgICBcIlByb2pldCBvdSBwcm9wb3NpdGlvbiBkZSBsb2kgY29uc3RpdHV0aW9ubmVsbGVcIixcbiAgICAgICAgXCJQcm9jw6lkdXJlIGzDqWdpc2xhdGl2ZVwiLFxuICAgICAgXSxcbiAgICAgIFtcIlByb2pldCBkZSBsb2kgZGUgZmluYW5jZXMgZGUgbCdhbm7DqWVcIiwgXCJQcm9jw6lkdXJlIGzDqWdpc2xhdGl2ZVwiXSxcbiAgICAgIFtcIlByb2pldCBkZSBsb2kgZGUgZmluYW5jZXMgcmVjdGlmaWNhdGl2ZVwiLCBcIlByb2PDqWR1cmUgbMOpZ2lzbGF0aXZlXCJdLFxuICAgICAgW1xuICAgICAgICBcIlByb2pldCBkZSBsb2kgZGUgZmluYW5jZW1lbnQgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCIsXG4gICAgICAgIFwiUHJvY8OpZHVyZSBsw6lnaXNsYXRpdmVcIixcbiAgICAgIF0sXG4gICAgXSlcbiAgICBpZiAobWVyZ2VfcHJvY2VkdXJlcy5oYXMocHJvY2VkdXJlKSkge1xuICAgICAgdGhpcy5yZW1hcHBlZFByb2NlZHVyZXNbcHJvY2VkdXJlXSA9IG51bGxcbiAgICAgIHJldHVybiBtZXJnZV9wcm9jZWR1cmVzLmdldChwcm9jZWR1cmUpXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBwcm9jZWR1cmVcbiAgICB9XG4gIH1cblxuICAvLyByZXR1cm4gdGhlIGNvZGVBY3RlcyBpbiB0aGUgc2FtZSBvcmRlciB0aGV5IGFwcGVhciBpbiB0aGUgcmVnZXhwXG4gIG9yZGVyZWRDb2Rlcyhjb2RlczogYW55LCBjMnA6IGFueSwgcGFyZW50OiBzdHJpbmcpOiBTZXQ8c3RyaW5nPiB7XG4gICAgY29kZXMgPSBuZXcgU2V0KGNvZGVzKVxuICAgIGlmICghdGhpcy5zYW5pdHlDaGVja3MpIHJldHVybiBjb2Rlc1xuICAgIGxldCBvcmRlcmVkID0gYzJwW1wiX3BhdHRlcm5fXCJdLm1hdGNoKG5ldyBSZWdFeHAoXCIvLio/L1wiLCBcImdcIikpXG4gICAgb3JkZXJlZCA9IG9yZGVyZWQubWFwKCh4OiBzdHJpbmcpID0+IHgucmVwbGFjZShuZXcgUmVnRXhwKFwiLyguKikvXCIpLCBcIiQxXCIpKVxuICAgIGlmIChwYXJlbnQgIT0gbnVsbCkgb3JkZXJlZCA9IG9yZGVyZWQubWFwKCh4OiBzdHJpbmcpID0+IGAke3BhcmVudH0tJHt4fWApXG4gICAgb3JkZXJlZCA9IG5ldyBTZXQob3JkZXJlZClcbiAgICBhc3NlcnQoZXFTZXQob3JkZXJlZCwgY29kZXMpLCBgJHtbLi4ub3JkZXJlZF19ICE9ICR7Wy4uLmNvZGVzXX1gKVxuICAgIHJldHVybiBvcmRlcmVkXG4gIH1cblxuICB2YWxpZGF0ZUNocm9ub2xvZ3koYWN0ZXNMZWdpc2xhdGlmczogYW55LCBjMnA6IGFueSwgcGFyZW50OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBwYXR0ZXJuID0gYzJwW1wiX3BhdHRlcm5fXCJdXG4gICAgY29uc3Qgc2VxdWVuY2UgPSBhY3Rlc0xlZ2lzbGF0aWZzXG4gICAgICAubWFwKCh4OiBhbnkpID0+IGAvJHt4LmNvZGVBY3RlfS9gLnJlcGxhY2UoYC8ke3BhcmVudH0tYCwgXCIvXCIpKVxuICAgICAgLmpvaW4oXCJcIilcbiAgICBhc3NlcnQoXG4gICAgICBzZXF1ZW5jZS5tYXRjaChuZXcgUmVnRXhwKHBhdHRlcm4pKSxcbiAgICAgIGAke3BhdHRlcm59IGRvZXMgbm90IG1hdGNoICR7c2VxdWVuY2V9YCxcbiAgICApXG4gICAgYzJwLl9tYXRjaF9jb3VudF8rK1xuICB9XG5cbiAgbWVyZ2VBY3RlKGFjdGVzOiBhbnksIGFjdGU6IGFueSwgYzJwOiBhbnksIHBhcmVudDogc3RyaW5nKTogdm9pZCB7XG4gICAgbGV0IGNvZGU6IHN0cmluZyA9IGFjdGUuY29kZUFjdGVcbiAgICBsZXQgc2hvcnRDb2RlOiBzdHJpbmcgPSBjb2RlLnJlcGxhY2UobmV3IFJlZ0V4cChgXiR7cGFyZW50fS1gKSwgXCJcIilcbiAgICBzaG9ydENvZGUgPSBzaG9ydENvZGUucmVwbGFjZSgvLShBTnxTTikkLywgXCJcIilcbiAgICB0aGlzLmNvZGVzW3Nob3J0Q29kZV0gPSBudWxsXG4gICAgbGV0IG5hbWU6IHN0cmluZyA9IGFjdGUubGliZWxsZUFjdGUubm9tQ2Fub25pcXVlXG4gICAgaWYgKCEoY29kZSBpbiBhY3RlcykpIHtcbiAgICAgIGFjdGVzW2NvZGVdID0ge1xuICAgICAgICB0eXBlOiBhY3RlLnhzaVR5cGUsXG4gICAgICAgIG5hbWU6IG5ldyBTZXQoW25hbWVdKSxcbiAgICAgICAgc2hvcnRDb2RlOiBzaG9ydENvZGUsXG4gICAgICAgIGFjdGVzOiB7fSxcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgYWN0ZXNbY29kZV0ubmFtZS5hZGQobmFtZSlcbiAgICB9XG4gICAgaWYgKFwiYWN0ZXNMZWdpc2xhdGlmc1wiIGluIGFjdGUpXG4gICAgICB0aGlzLm1lcmdlKGFjdGVzW2NvZGVdLmFjdGVzLCBhY3RlLmFjdGVzTGVnaXNsYXRpZnMsIGMycFtjb2RlXSwgY29kZSlcbiAgfVxuXG4gIG1lcmdlKGFjdGVzOiBhbnksIGFjdGVzTGVnaXNsYXRpZnM6IGFueSwgYzJwOiBhbnksIHBhcmVudDogYW55KTogdm9pZCB7XG4gICAgY29uc3QgbCA9IHRoaXMucmVtYXBBY3RlcyhhY3Rlc0xlZ2lzbGF0aWZzKVxuICAgIHRoaXMudmFsaWRhdGVDaHJvbm9sb2d5KGwsIGMycCwgcGFyZW50KVxuICAgIGZvciAoY29uc3QgYWN0ZSBvZiBsKSB0aGlzLm1lcmdlQWN0ZShhY3RlcywgYWN0ZSwgYzJwLCBwYXJlbnQpXG4gIH1cblxuICBjb2xsZWN0KGFjdGVzTGVnaXNsYXRpZnM6IGFueSk6IHZvaWQge1xuICAgIGZvciAoY29uc3QgYWN0ZSBvZiB0aGlzLmNvbGxlY3RBY3RlcyhhY3Rlc0xlZ2lzbGF0aWZzKSlcbiAgICAgIGlmIChcImFjdGVzTGVnaXNsYXRpZnNcIiBpbiBhY3RlKSB0aGlzLmNvbGxlY3QoYWN0ZS5hY3Rlc0xlZ2lzbGF0aWZzKVxuICB9XG5cbiAgdmFsaWRhdGVMZXZlbChjMnA6IGFueSwgcGF0aDogYW55KSB7XG4gICAgYXNzZXJ0KGMycC5fbWF0Y2hfY291bnRfID4gMCwgYCR7cGF0aH0gaXMgbmV2ZXIgdXNlZGApXG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoYzJwKSBhcyBbc3RyaW5nLCBhbnldW10pIHtcbiAgICAgIGlmICh2YWx1ZSAhPSBudWxsICYmIHZhbHVlLmNvbnN0cnVjdG9yLm5hbWUgPT0gXCJDb2RlMlBhdHRlcm5cIilcbiAgICAgICAgdGhpcy52YWxpZGF0ZUxldmVsKHZhbHVlLCBwYXRoLmNvbmNhdChba2V5XSkpXG4gICAgfVxuICB9XG5cbiAgdmFsaWRhdGUoKSB7XG4gICAgdGhpcy52YWxpZGF0ZUxldmVsKHRoaXMuY29kZTJwYXR0ZXJuLCBbXSlcbiAgfVxuXG4gIHByaW50RW50cnkoc2VjdGlvbnM6IHN0cmluZywgZW50cnk6IHN0cmluZywgY29kZXM6IHN0cmluZykge1xuICAgIGNvbnN0IHRpdGxlID0gYFxcYCR7ZW50cnl9XFxgX19gXG4gICAgY29uc29sZS5sb2codGl0bGUpXG4gICAgY29uc3QgdW5kZXJsaW5lID0gbmV3IEFycmF5KHRpdGxlLmxlbmd0aCArIDEpLmpvaW4oc2VjdGlvbnNbMF0pXG4gICAgY29uc29sZS5sb2codW5kZXJsaW5lKVxuICAgIGNvbnNvbGUubG9nKGNvZGVzKVxuICB9XG5cbiAgYWRkQW5jaG9ycyhrZXk6IHN0cmluZykge1xuICAgIGlmIChrZXkgaW4gdGhpcy5hbmNob3JzUHJpbnRlZCkgcmV0dXJuXG4gICAgaWYgKHRoaXMubGVjdHVyZU1hcHBlci5oYXMoa2V5KSlcbiAgICAgIHRoaXMubGVjdHVyZU1hcHBlci5tZXJnZUNvZGVzKHRoaXMuYW5jaG9ycywga2V5KVxuICAgIGVsc2UgdGhpcy5hbmNob3JzLmFkZChrZXkpXG4gIH1cblxuICBwcmludEFuY2hvcnMoa2V5OiBzdHJpbmcpIHtcbiAgICBpZiAoa2V5IGluIHRoaXMuYW5jaG9yc1ByaW50ZWQpIHJldHVyblxuICAgIHRoaXMuYW5jaG9yc1ByaW50ZWRba2V5XSA9IG51bGxcbiAgICBpZiAodGhpcy5sZWN0dXJlTWFwcGVyLmhhcyhrZXkpKSB0aGlzLmxlY3R1cmVNYXBwZXIucHJpbnRBbmNob3JzKGtleSlcbiAgICBlbHNlIGNvbnNvbGUubG9nKGAuLiBfJHtrZXl9OmApXG4gIH1cblxuICBnZXRDb2RlcyhrZXk6IHN0cmluZywgc2hvcnRDb2RlOiBzdHJpbmcpIHtcbiAgICBpZiAoa2V5IGluIHRoaXMuYW5jaG9yc1ByaW50ZWQpIHJldHVybiBgY2YgXFxcXCoke3Nob3J0Q29kZX1cXFxcKmBcbiAgICBpZiAodGhpcy5sZWN0dXJlTWFwcGVyLmhhcyhrZXkpKSByZXR1cm4gdGhpcy5sZWN0dXJlTWFwcGVyLmdldENvZGVzKGtleSlcbiAgICBlbHNlIHJldHVybiBrZXlcbiAgfVxuXG4gIHJlbmFtZUNNUChrZXk6IHN0cmluZywgbmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKGtleS5zdGFydHNXaXRoKFwiQ01QXCIpKSB7XG4gICAgICBpZiAoa2V5LmVuZHNXaXRoKFwiLVNOXCIpKSByZXR1cm4gYCR7bmFtZX0gKFPDqW5hdClgXG4gICAgICBlbHNlIGlmIChrZXkuZW5kc1dpdGgoXCItQU5cIikpIHJldHVybiBgJHtuYW1lfSAoQXNzZW1ibMOpZSBOYXRpb25hbGUpYFxuICAgICAgZWxzZSByZXR1cm4gbmFtZVxuICAgIH0gZWxzZSByZXR1cm4gbmFtZVxuICB9XG5cbiAgcHJpbnRMZXZlbChhY3RlczogYW55LCBzZWN0aW9uczogc3RyaW5nLCBjMnA6IGFueSwgcGFyZW50OiBhbnkpIHtcbiAgICBjb25zdCBrZXlzOiBTZXQ8c3RyaW5nPiA9IHRoaXMub3JkZXJlZENvZGVzKE9iamVjdC5rZXlzKGFjdGVzKSwgYzJwLCBwYXJlbnQpXG4gICAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgICAgY29uc3QgdmFsdWUgPSBhY3Rlc1trZXldXG4gICAgICBsZXQgbmFtZSA9IEFycmF5LmZyb20odmFsdWUubmFtZSkuam9pbihcIiwgXCIpXG4gICAgICBuYW1lID0gdGhpcy5yZW5hbWVDTVAoa2V5LCBuYW1lKVxuICAgICAgY29uc3QgY29kZXMgPSB0aGlzLmdldENvZGVzKGtleSwgdmFsdWUuc2hvcnRDb2RlKVxuICAgICAgdGhpcy5hZGRBbmNob3JzKGtleSlcbiAgICAgIHRoaXMucHJpbnRBbmNob3JzKGtleSlcbiAgICAgIGNvbnNvbGUubG9nKFwiXCIpXG4gICAgICB0aGlzLnByaW50RW50cnkoc2VjdGlvbnMsIGAke25hbWV9IDwke3ZhbHVlLnNob3J0Q29kZX1UT0NfPmAsIGNvZGVzKVxuICAgICAgY29uc29sZS5sb2coXCJcIilcbiAgICAgIGlmIChPYmplY3Qua2V5cyh2YWx1ZS5hY3RlcykubGVuZ3RoID4gMClcbiAgICAgICAgdGhpcy5wcmludExldmVsKHZhbHVlLmFjdGVzLCBzZWN0aW9ucy5zdWJzdHJpbmcoMSksIGMycFtrZXldLCBrZXkpXG4gICAgfVxuICB9XG5cbiAgcHJpbnRDb2RlcygpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh0aGlzLmNvZGVzKSlcbiAgICAgIGNvbnNvbGUubG9nKGAuLiBfJHtrZXl9VE9DOiBodHRwOi8vYClcbiAgfVxuXG4gIHByaW50QW5jaG9yc0luZGV4KCkge1xuICAgIGZvciAoY29uc3QgY29kZSBvZiBBcnJheS5mcm9tKHRoaXMuYW5jaG9ycykpXG4gICAgICBjb25zb2xlLmxvZyhgKiA6cmVmOlxcYCR7Y29kZX0gPCR7Y29kZX0+XFxgYClcbiAgfVxuXG4gIGdldEFnZ3JlZ2F0ZWQocHJvY2VkdXJlOiBzdHJpbmcpIHtcbiAgICBpZiAocHJvY2VkdXJlID09IFwiUHJvY8OpZHVyZSBsw6lnaXNsYXRpdmVcIikge1xuICAgICAgY29uc3QgcmVtYXBwZWQgPSBPYmplY3Qua2V5cyh0aGlzLnJlbWFwcGVkUHJvY2VkdXJlcykuam9pbihcIiwgXCIpXG4gICAgICByZXR1cm4gYCAoYWdyw6lnYXRpb24gZGUgJHtyZW1hcHBlZH0pYFxuICAgIH0gZWxzZSByZXR1cm4gXCJcIlxuICB9XG5cbiAgcHJpbnQoKTogdm9pZCB7XG4gICAgdGhpcy5hbmNob3JzUHJpbnRlZCA9IHt9XG4gICAgZm9yIChjb25zdCBba2V5LCBhY3Rlc10gb2YgT2JqZWN0LmVudHJpZXModGhpcy5wcm9jZWR1cmVzKSBhcyBbXG4gICAgICBzdHJpbmcsXG4gICAgICBhbnksXG4gICAgXVtdKSB7XG4gICAgICBjb25zdCBjb2RlID0ga2V5LnJlcGxhY2UoLyArL2csIFwiX1wiKVxuICAgICAgdGhpcy5jb2Rlc1tjb2RlXSA9IG51bGxcbiAgICAgIGNvbnN0IGFnZ3JlZ2F0ZWQgPSB0aGlzLmdldEFnZ3JlZ2F0ZWQoa2V5KVxuICAgICAgY29uc3QgdGl0bGUgPSBgXFxgJHtrZXl9IDwke2NvZGV9VE9DXz5cXGBfXyR7YWdncmVnYXRlZH1gXG4gICAgICBjb25zb2xlLmxvZyh0aXRsZSlcbiAgICAgIGNvbnN0IHVuZGVybGluZSA9IG5ldyBBcnJheSh0aXRsZS5sZW5ndGggKyAxKS5qb2luKFwiPVwiKVxuICAgICAgY29uc29sZS5sb2codW5kZXJsaW5lKVxuICAgICAgdGhpcy5wcmludExldmVsKGFjdGVzLCBcIi1+LidcIiwgdGhpcy5jb2RlMnBhdHRlcm5ba2V5XSwgbnVsbClcbiAgICB9XG4gICAgdGhpcy5wcmludENvZGVzKClcbiAgICB0aGlzLnByaW50QW5jaG9yc0luZGV4KClcbiAgfVxufVxuXG5mdW5jdGlvbiBtYWluKGFyZ3Y6IGFueSk6IG51bWJlciB7XG4gIGNvbnN0IG9wdGlvbnMgPSBwYXJzZUFyZ3MoYXJndilcbiAgaWYgKG9wdGlvbnMgPT09IG51bGwpIHJldHVybiAxXG4gIGxldCBkb2MgPSBuZXcgQWN0ZXNEb2N1bWVudGF0aW9uKFxuICAgICFvcHRpb25zW1wibm8tc2FuaXR5LWNoZWNrc1wiXSxcbiAgICBvcHRpb25zLnZlcmJvc2UsXG4gIClcbiAgZG9jLmNvbGxlY3RGaWxlcyhvcHRpb25zLmRhdGEpXG4gIGRvYy5wcm9jZXNzRmlsZXMob3B0aW9ucy5kYXRhKVxuICBkb2MucHJpbnQoKVxuICByZXR1cm4gMFxufVxuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbmlmIChwcm9jZXNzLmFyZ3ZbMV0uZW5kc1dpdGgoXCJkb2N1bWVudF9kb3NzaWVyc19sZWdpc2xhdGlmcy50c1wiKSlcbiAgcHJvY2Vzcy5leGl0KG1haW4ocHJvY2Vzcy5hcmd2KSlcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsZ0JBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGlCQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxPQUFBLEdBQUFILHNCQUFBLENB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
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
type ProcessDatasetArguments = {
|
|
2
|
+
dataset: any;
|
|
3
|
+
dataDir: string;
|
|
4
|
+
parser: any;
|
|
5
|
+
options: any;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Processes a dataset by fetching, unzipping, and converting files from XML to JSON format.
|
|
9
|
+
*
|
|
10
|
+
* @param {any} dataset - The dataset object containing metadata and processing instructions.
|
|
11
|
+
* @param {string} dataDir - The directory where the dataset files will be stored.
|
|
12
|
+
* @param {any} parser - The parser used to convert XML data to JSON.
|
|
13
|
+
* @param {any} options - Options to control the processing behavior, such as fetching and silent mode.
|
|
14
|
+
* @returns {Promise<void>} A promise that resolves when the dataset processing is complete.
|
|
15
|
+
*/
|
|
16
|
+
export declare function processDataset(args: ProcessDatasetArguments): Promise<void>;
|
|
17
|
+
export {};
|