@aerokit/sdk 12.80.0 → 12.82.0
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/dist/cjs/bpm/deployer.js +1 -1
- package/dist/cjs/bpm/index.js +1 -1
- package/dist/cjs/bpm/process.js +1 -1
- package/dist/cjs/bpm/tasks.js +1 -1
- package/dist/cjs/bpm/tracer.js +1 -1
- package/dist/cjs/bpm/values.js +1 -1
- package/dist/cjs/cache/cache.js +1 -1
- package/dist/cjs/cache/index.js +1 -1
- package/dist/cjs/cms/cmis.js +1 -1
- package/dist/cjs/cms/index.js +1 -1
- package/dist/cjs/component/decorators.js +1 -1
- package/dist/cjs/component/index.js +1 -1
- package/dist/cjs/core/configurations.js +1 -1
- package/dist/cjs/core/context.js +1 -1
- package/dist/cjs/core/env.js +1 -1
- package/dist/cjs/core/globals.js +1 -1
- package/dist/cjs/core/index.js +1 -1
- package/dist/cjs/db/dao.js +1 -1
- package/dist/cjs/db/database.js +1 -1
- package/dist/cjs/db/decorators.js +1 -1
- package/dist/cjs/db/index.js +1 -1
- package/dist/cjs/db/insert.js +1 -1
- package/dist/cjs/db/orm.js +1 -1
- package/dist/cjs/db/ormstatements.js +1 -1
- package/dist/cjs/db/procedure.js +1 -1
- package/dist/cjs/db/query.js +1 -1
- package/dist/cjs/db/repository.js +1 -1
- package/dist/cjs/db/sequence.js +1 -1
- package/dist/cjs/db/sql.js +1 -1
- package/dist/cjs/db/store.js +1 -1
- package/dist/cjs/db/translator.js +1 -1
- package/dist/cjs/db/update.js +1 -1
- package/dist/cjs/etcd/client.js +1 -1
- package/dist/cjs/etcd/index.js +1 -1
- package/dist/cjs/extensions/decorators.js +1 -1
- package/dist/cjs/extensions/extensions.js +1 -1
- package/dist/cjs/extensions/index.js +1 -1
- package/dist/cjs/git/client.js +1 -1
- package/dist/cjs/git/index.js +1 -1
- package/dist/cjs/http/client-async.js +1 -1
- package/dist/cjs/http/client.js +1 -1
- package/dist/cjs/http/decorators.js +1 -1
- package/dist/cjs/http/errors/ForbiddenError.js +1 -1
- package/dist/cjs/http/errors/ValidationError.js +1 -1
- package/dist/cjs/http/errors.js +1 -1
- package/dist/cjs/http/index.js +1 -1
- package/dist/cjs/http/request.js +1 -1
- package/dist/cjs/http/response.js +1 -1
- package/dist/cjs/http/rs/resource-http-controller.js +1 -1
- package/dist/cjs/http/rs/resource-mappings.js +1 -1
- package/dist/cjs/http/rs/resource-method.js +1 -1
- package/dist/cjs/http/rs/resource.js +1 -1
- package/dist/cjs/http/rs.js +1 -1
- package/dist/cjs/http/session.js +1 -1
- package/dist/cjs/http/upload.js +1 -1
- package/dist/cjs/http/utils.js +1 -1
- package/dist/cjs/indexing/index.js +1 -1
- package/dist/cjs/indexing/searcher.js +1 -1
- package/dist/cjs/indexing/writer.js +1 -1
- package/dist/cjs/integrations/index.js +1 -1
- package/dist/cjs/integrations/integrations.js +1 -1
- package/dist/cjs/io/bytes.js +1 -1
- package/dist/cjs/io/files.js +1 -1
- package/dist/cjs/io/image.js +1 -1
- package/dist/cjs/io/index.js +1 -1
- package/dist/cjs/io/streams.js +1 -1
- package/dist/cjs/io/zip.js +1 -1
- package/dist/cjs/job/decorators.js +1 -1
- package/dist/cjs/job/index.js +1 -1
- package/dist/cjs/job/scheduler.js +1 -1
- package/dist/cjs/junit/index.js +1 -1
- package/dist/cjs/junit/junit.js +1 -1
- package/dist/cjs/kafka/consumer.js +1 -1
- package/dist/cjs/kafka/index.js +1 -1
- package/dist/cjs/kafka/producer.js +1 -1
- package/dist/cjs/log/index.js +1 -1
- package/dist/cjs/log/logging.js +1 -1
- package/dist/cjs/mail/client.js +1 -1
- package/dist/cjs/mail/index.js +1 -1
- package/dist/cjs/messaging/consumer.js +1 -1
- package/dist/cjs/messaging/decorators.js +1 -1
- package/dist/cjs/messaging/index.js +1 -1
- package/dist/cjs/messaging/producer.js +1 -1
- package/dist/cjs/mongodb/client.js +1 -1
- package/dist/cjs/mongodb/dao.js +1 -1
- package/dist/cjs/mongodb/index.js +1 -1
- package/dist/cjs/net/decorators.js +1 -1
- package/dist/cjs/net/index.js +1 -1
- package/dist/cjs/net/soap.js +1 -1
- package/dist/cjs/net/websockets.js +1 -1
- package/dist/cjs/pdf/index.js +1 -1
- package/dist/cjs/pdf/pdf.js +3 -3
- package/dist/cjs/platform/command.js +1 -1
- package/dist/cjs/platform/engines.js +1 -1
- package/dist/cjs/platform/index.js +1 -1
- package/dist/cjs/platform/lifecycle.js +1 -1
- package/dist/cjs/platform/os.js +1 -1
- package/dist/cjs/platform/problems.js +1 -1
- package/dist/cjs/platform/registry.js +1 -1
- package/dist/cjs/platform/repository.js +1 -1
- package/dist/cjs/platform/workspace.js +1 -1
- package/dist/cjs/qldb/index.js +1 -1
- package/dist/cjs/qldb/qldb.js +1 -1
- package/dist/cjs/rabbitmq/consumer.js +1 -1
- package/dist/cjs/rabbitmq/index.js +1 -1
- package/dist/cjs/rabbitmq/producer.js +1 -1
- package/dist/cjs/redis/client.js +1 -1
- package/dist/cjs/redis/index.js +1 -1
- package/dist/cjs/security/decorators.js +1 -1
- package/dist/cjs/security/index.js +1 -1
- package/dist/cjs/security/oauth.js +1 -1
- package/dist/cjs/security/user.js +1 -1
- package/dist/cjs/template/engines.js +1 -1
- package/dist/cjs/template/index.js +1 -1
- package/dist/cjs/utils/alphanumeric.js +2 -2
- package/dist/cjs/utils/base64.js +1 -1
- package/dist/cjs/utils/converter.js +1 -1
- package/dist/cjs/utils/digest.js +1 -1
- package/dist/cjs/utils/escape.js +1 -1
- package/dist/cjs/utils/hex.js +1 -1
- package/dist/cjs/utils/index.js +1 -1
- package/dist/cjs/utils/jsonpath.js +1 -1
- package/dist/cjs/utils/qrcode.js +1 -1
- package/dist/cjs/utils/url.js +1 -1
- package/dist/cjs/utils/utf8.js +1 -1
- package/dist/cjs/utils/uuid.js +1 -1
- package/dist/cjs/utils/xml.js +1 -1
- package/dist/dts/bpm/deployer.d.ts +35 -3
- package/dist/dts/bpm/index.d.ts +14 -0
- package/dist/dts/bpm/process.d.ts +28 -3
- package/dist/dts/bpm/tasks.d.ts +32 -1
- package/dist/dts/bpm/tracer.d.ts +35 -0
- package/dist/dts/bpm/values.d.ts +17 -3
- package/dist/dts/cache/cache.d.ts +38 -0
- package/dist/dts/cache/index.d.ts +10 -0
- package/dist/dts/cms/cmis.d.ts +28 -3
- package/dist/dts/cms/index.d.ts +10 -0
- package/dist/dts/component/decorators.d.ts +35 -5
- package/dist/dts/component/index.d.ts +10 -0
- package/dist/dts/core/configurations.d.ts +43 -4
- package/dist/dts/core/context.d.ts +35 -2
- package/dist/dts/core/env.d.ts +29 -2
- package/dist/dts/core/globals.d.ts +34 -2
- package/dist/dts/core/index.d.ts +13 -0
- package/dist/dts/db/database.d.ts +34 -0
- package/dist/dts/db/decorators.d.ts +55 -2
- package/dist/dts/db/index.d.ts +19 -0
- package/dist/dts/db/orm.d.ts +43 -0
- package/dist/dts/db/procedure.d.ts +37 -0
- package/dist/dts/db/query.d.ts +25 -1
- package/dist/dts/db/repository.d.ts +52 -0
- package/dist/dts/db/sequence.d.ts +31 -2
- package/dist/dts/db/sql.d.ts +33 -0
- package/dist/dts/db/store.d.ts +27 -0
- package/dist/dts/db/translator.d.ts +34 -1
- package/dist/dts/db/update.d.ts +38 -0
- package/dist/dts/etcd/client.d.ts +36 -0
- package/dist/dts/etcd/index.d.ts +10 -0
- package/dist/dts/extensions/decorators.d.ts +28 -0
- package/dist/dts/extensions/extensions.d.ts +30 -1
- package/dist/dts/extensions/index.d.ts +11 -0
- package/dist/dts/git/client.d.ts +28 -0
- package/dist/dts/git/index.d.ts +10 -0
- package/dist/dts/http/client-async.d.ts +29 -1
- package/dist/dts/http/client.d.ts +29 -1
- package/dist/dts/http/decorators.d.ts +38 -0
- package/dist/dts/http/errors/ForbiddenError.d.ts +6 -2
- package/dist/dts/http/errors/ValidationError.d.ts +6 -2
- package/dist/dts/http/errors.d.ts +14 -0
- package/dist/dts/http/index.d.ts +18 -0
- package/dist/dts/http/request.d.ts +30 -3
- package/dist/dts/http/response.d.ts +40 -3
- package/dist/dts/http/rs/resource-mappings.d.ts +30 -0
- package/dist/dts/http/rs.d.ts +38 -0
- package/dist/dts/http/session.d.ts +34 -3
- package/dist/dts/http/upload.d.ts +27 -2
- package/dist/dts/http/utils.d.ts +42 -0
- package/dist/dts/indexing/index.d.ts +11 -0
- package/dist/dts/indexing/searcher.d.ts +35 -2
- package/dist/dts/indexing/writer.d.ts +23 -2
- package/dist/dts/integrations/index.d.ts +10 -0
- package/dist/dts/integrations/integrations.d.ts +27 -3
- package/dist/dts/io/bytes.d.ts +33 -2
- package/dist/dts/io/files.d.ts +34 -2
- package/dist/dts/io/image.d.ts +27 -2
- package/dist/dts/io/index.d.ts +14 -0
- package/dist/dts/io/streams.d.ts +40 -0
- package/dist/dts/io/zip.d.ts +32 -0
- package/dist/dts/job/decorators.d.ts +29 -0
- package/dist/dts/job/index.d.ts +11 -0
- package/dist/dts/job/scheduler.d.ts +33 -2
- package/dist/dts/junit/index.d.ts +10 -0
- package/dist/dts/junit/junit.d.ts +31 -0
- package/dist/dts/kafka/consumer.d.ts +31 -0
- package/dist/dts/kafka/index.d.ts +11 -0
- package/dist/dts/kafka/producer.d.ts +31 -0
- package/dist/dts/log/index.d.ts +10 -0
- package/dist/dts/log/logging.d.ts +32 -0
- package/dist/dts/mail/client.d.ts +27 -0
- package/dist/dts/mail/index.d.ts +10 -0
- package/dist/dts/messaging/consumer.d.ts +29 -2
- package/dist/dts/messaging/decorators.d.ts +32 -0
- package/dist/dts/messaging/index.d.ts +12 -0
- package/dist/dts/messaging/producer.d.ts +27 -2
- package/dist/dts/mongodb/client.d.ts +37 -0
- package/dist/dts/mongodb/dao.d.ts +53 -0
- package/dist/dts/mongodb/index.d.ts +11 -0
- package/dist/dts/net/decorators.d.ts +27 -0
- package/dist/dts/net/index.d.ts +13 -0
- package/dist/dts/net/soap.d.ts +34 -0
- package/dist/dts/net/websockets.d.ts +34 -0
- package/dist/dts/pdf/index.d.ts +10 -0
- package/dist/dts/pdf/pdf.d.ts +41 -2
- package/dist/dts/platform/command.d.ts +26 -0
- package/dist/dts/platform/engines.d.ts +38 -0
- package/dist/dts/platform/index.d.ts +19 -0
- package/dist/dts/platform/lifecycle.d.ts +29 -0
- package/dist/dts/platform/os.d.ts +30 -0
- package/dist/dts/platform/problems.d.ts +36 -0
- package/dist/dts/platform/registry.d.ts +39 -0
- package/dist/dts/platform/repository.d.ts +40 -0
- package/dist/dts/platform/workspace.d.ts +42 -0
- package/dist/dts/qldb/index.d.ts +12 -0
- package/dist/dts/qldb/qldb.d.ts +14 -0
- package/dist/dts/rabbitmq/consumer.d.ts +24 -3
- package/dist/dts/rabbitmq/index.d.ts +13 -0
- package/dist/dts/rabbitmq/producer.d.ts +20 -3
- package/dist/dts/redis/client.d.ts +31 -3
- package/dist/dts/redis/index.d.ts +12 -0
- package/dist/dts/security/decorators.d.ts +34 -0
- package/dist/dts/security/index.d.ts +14 -0
- package/dist/dts/security/oauth.d.ts +27 -0
- package/dist/dts/security/user.d.ts +39 -0
- package/dist/dts/template/engines.d.ts +31 -0
- package/dist/dts/template/index.d.ts +12 -0
- package/dist/dts/utils/alphanumeric.d.ts +36 -2
- package/dist/dts/utils/base64.d.ts +30 -0
- package/dist/dts/utils/converter.d.ts +37 -2
- package/dist/dts/utils/digest.d.ts +31 -0
- package/dist/dts/utils/escape.d.ts +28 -3
- package/dist/dts/utils/hex.d.ts +30 -0
- package/dist/dts/utils/index.d.ts +23 -0
- package/dist/dts/utils/jsonpath.d.ts +43 -0
- package/dist/dts/utils/qrcode.d.ts +24 -3
- package/dist/dts/utils/url.d.ts +37 -3
- package/dist/dts/utils/utf8.d.ts +34 -3
- package/dist/dts/utils/uuid.d.ts +28 -2
- package/dist/dts/utils/xml.d.ts +31 -2
- package/dist/esm/bpm/deployer.mjs +1 -1
- package/dist/esm/bpm/index.mjs +1 -1
- package/dist/esm/bpm/process.mjs +1 -1
- package/dist/esm/bpm/tasks.mjs +1 -1
- package/dist/esm/bpm/tracer.mjs +1 -1
- package/dist/esm/bpm/values.mjs +1 -1
- package/dist/esm/cache/cache.mjs +1 -1
- package/dist/esm/cache/index.mjs +1 -1
- package/dist/esm/cms/cmis.mjs +1 -1
- package/dist/esm/cms/index.mjs +1 -1
- package/dist/esm/component/decorators.mjs +1 -1
- package/dist/esm/component/index.mjs +1 -1
- package/dist/esm/core/configurations.mjs +1 -1
- package/dist/esm/core/context.mjs +1 -1
- package/dist/esm/core/env.mjs +1 -1
- package/dist/esm/core/globals.mjs +1 -1
- package/dist/esm/core/index.mjs +1 -1
- package/dist/esm/db/dao.mjs +1 -1
- package/dist/esm/db/database.mjs +1 -1
- package/dist/esm/db/decorators.mjs +1 -1
- package/dist/esm/db/index.mjs +1 -1
- package/dist/esm/db/insert.mjs +1 -1
- package/dist/esm/db/orm.mjs +1 -1
- package/dist/esm/db/ormstatements.mjs +1 -1
- package/dist/esm/db/procedure.mjs +1 -1
- package/dist/esm/db/query.mjs +1 -1
- package/dist/esm/db/repository.mjs +1 -1
- package/dist/esm/db/sequence.mjs +1 -1
- package/dist/esm/db/sql.mjs +1 -1
- package/dist/esm/db/store.mjs +1 -1
- package/dist/esm/db/translator.mjs +1 -1
- package/dist/esm/db/update.mjs +1 -1
- package/dist/esm/etcd/client.mjs +1 -1
- package/dist/esm/etcd/index.mjs +1 -1
- package/dist/esm/extensions/decorators.mjs +1 -1
- package/dist/esm/extensions/extensions.mjs +1 -1
- package/dist/esm/extensions/index.mjs +1 -1
- package/dist/esm/git/client.mjs +1 -1
- package/dist/esm/git/index.mjs +1 -1
- package/dist/esm/http/client-async.mjs +1 -1
- package/dist/esm/http/client.mjs +1 -1
- package/dist/esm/http/decorators.mjs +1 -1
- package/dist/esm/http/errors/ForbiddenError.mjs +1 -1
- package/dist/esm/http/errors/ValidationError.mjs +1 -1
- package/dist/esm/http/errors.mjs +1 -1
- package/dist/esm/http/index.mjs +1 -1
- package/dist/esm/http/request.mjs +1 -1
- package/dist/esm/http/response.mjs +1 -1
- package/dist/esm/http/rs/resource-http-controller.mjs +1 -1
- package/dist/esm/http/rs/resource-mappings.mjs +1 -1
- package/dist/esm/http/rs/resource-method.mjs +1 -1
- package/dist/esm/http/rs/resource.mjs +1 -1
- package/dist/esm/http/rs.mjs +1 -1
- package/dist/esm/http/session.mjs +1 -1
- package/dist/esm/http/upload.mjs +1 -1
- package/dist/esm/http/utils.mjs +1 -1
- package/dist/esm/indexing/index.mjs +1 -1
- package/dist/esm/indexing/searcher.mjs +1 -1
- package/dist/esm/indexing/writer.mjs +1 -1
- package/dist/esm/integrations/index.mjs +1 -1
- package/dist/esm/integrations/integrations.mjs +1 -1
- package/dist/esm/io/bytes.mjs +1 -1
- package/dist/esm/io/files.mjs +1 -1
- package/dist/esm/io/image.mjs +1 -1
- package/dist/esm/io/index.mjs +1 -1
- package/dist/esm/io/streams.mjs +1 -1
- package/dist/esm/io/zip.mjs +1 -1
- package/dist/esm/job/decorators.mjs +1 -1
- package/dist/esm/job/index.mjs +1 -1
- package/dist/esm/job/scheduler.mjs +1 -1
- package/dist/esm/junit/index.mjs +1 -1
- package/dist/esm/junit/junit.mjs +1 -1
- package/dist/esm/kafka/consumer.mjs +1 -1
- package/dist/esm/kafka/index.mjs +1 -1
- package/dist/esm/kafka/producer.mjs +1 -1
- package/dist/esm/log/index.mjs +1 -1
- package/dist/esm/log/logging.mjs +1 -1
- package/dist/esm/mail/client.mjs +1 -1
- package/dist/esm/mail/index.mjs +1 -1
- package/dist/esm/messaging/consumer.mjs +1 -1
- package/dist/esm/messaging/decorators.mjs +1 -1
- package/dist/esm/messaging/index.mjs +1 -1
- package/dist/esm/messaging/producer.mjs +1 -1
- package/dist/esm/mongodb/client.mjs +2 -2
- package/dist/esm/mongodb/dao.mjs +1 -1
- package/dist/esm/mongodb/index.mjs +1 -1
- package/dist/esm/net/decorators.mjs +1 -1
- package/dist/esm/net/index.mjs +1 -1
- package/dist/esm/net/soap.mjs +1 -1
- package/dist/esm/net/websockets.mjs +1 -1
- package/dist/esm/pdf/index.mjs +1 -1
- package/dist/esm/pdf/pdf.mjs +3 -3
- package/dist/esm/platform/command.mjs +1 -1
- package/dist/esm/platform/engines.mjs +1 -1
- package/dist/esm/platform/index.mjs +1 -1
- package/dist/esm/platform/lifecycle.mjs +1 -1
- package/dist/esm/platform/os.mjs +1 -1
- package/dist/esm/platform/problems.mjs +1 -1
- package/dist/esm/platform/registry.mjs +1 -1
- package/dist/esm/platform/repository.mjs +1 -1
- package/dist/esm/platform/workspace.mjs +1 -1
- package/dist/esm/qldb/index.mjs +1 -1
- package/dist/esm/qldb/qldb.mjs +1 -1
- package/dist/esm/rabbitmq/consumer.mjs +1 -1
- package/dist/esm/rabbitmq/index.mjs +1 -1
- package/dist/esm/rabbitmq/producer.mjs +1 -1
- package/dist/esm/redis/client.mjs +1 -1
- package/dist/esm/redis/index.mjs +1 -1
- package/dist/esm/security/decorators.mjs +1 -1
- package/dist/esm/security/index.mjs +1 -1
- package/dist/esm/security/oauth.mjs +1 -1
- package/dist/esm/security/user.mjs +1 -1
- package/dist/esm/template/engines.mjs +1 -1
- package/dist/esm/template/index.mjs +1 -1
- package/dist/esm/utils/alphanumeric.mjs +2 -2
- package/dist/esm/utils/base64.mjs +1 -1
- package/dist/esm/utils/converter.mjs +1 -1
- package/dist/esm/utils/digest.mjs +1 -1
- package/dist/esm/utils/escape.mjs +1 -1
- package/dist/esm/utils/hex.mjs +1 -1
- package/dist/esm/utils/index.mjs +1 -1
- package/dist/esm/utils/jsonpath.mjs +1 -1
- package/dist/esm/utils/qrcode.mjs +1 -1
- package/dist/esm/utils/url.mjs +1 -1
- package/dist/esm/utils/utf8.mjs +1 -1
- package/dist/esm/utils/uuid.mjs +1 -1
- package/dist/esm/utils/xml.mjs +1 -1
- package/package.json +1 -1
|
@@ -344,4 +344,4 @@ if (typeof module !== "undefined") {
|
|
|
344
344
|
export {
|
|
345
345
|
Response
|
|
346
346
|
};
|
|
347
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2h0dHAvcmVzcG9uc2UudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogUHJvdmlkZXMgYSBzdGF0aWMgZmFcdTAwRTdhZGUgKGBSZXNwb25zZWAgY2xhc3MpIGZvciBtYW5hZ2luZyB0aGUgSFRUUCByZXNwb25zZS5cbiAqIFRoaXMgY2xhc3Mgd3JhcHMgYSBuYXRpdmUgSmF2YSBIVFRQIHJlc3BvbnNlIG9iamVjdCwgb2ZmZXJpbmcgbWV0aG9kcyBmb3Igc2V0dGluZ1xuICogc3RhdHVzIGNvZGVzLCBoZWFkZXJzLCBjb29raWVzLCBhbmQgd3JpdGluZyBjb250ZW50ICh0ZXh0LCBKU09OLCBvciBiaW5hcnkpLlxuICovXG5cbmltcG9ydCB7IE91dHB1dFN0cmVhbSB9IGZyb20gXCJAYWVyb2tpdC9zZGsvaW8vc3RyZWFtc1wiXG5cbmNvbnN0IEh0dHBSZXNwb25zZUZhY2FkZSA9IEphdmEudHlwZShcIm9yZy5lY2xpcHNlLmRpcmlnaWJsZS5jb21wb25lbnRzLmFwaS5odHRwLkh0dHBSZXNwb25zZUZhY2FkZVwiKTtcbmNvbnN0IE91dHB1dFN0cmVhbVdyaXRlciA9IEphdmEudHlwZShcImphdmEuaW8uT3V0cHV0U3RyZWFtV3JpdGVyXCIpO1xuY29uc3QgU3RhbmRhcmRDaGFyc2V0cyA9IEphdmEudHlwZShcImphdmEubmlvLmNoYXJzZXQuU3RhbmRhcmRDaGFyc2V0c1wiKTtcblxuLyoqXG4gKiBEZWZpbmVzIHRoZSBzdHJ1Y3R1cmUgZm9yIGFuIEhUVFAgY29va2llLCBpbmNsdWRpbmcgaXRzIG5hbWUsIHZhbHVlLCBhbmQgb3B0aW9uYWwgYXR0cmlidXRlcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb29raWUge1xuICAgIC8qKiBUaGUgbmFtZSBvZiB0aGUgY29va2llLiAqL1xuICAgIG5hbWU6IHN0cmluZztcbiAgICAvKiogVGhlIHZhbHVlIG9mIHRoZSBjb29raWUuICovXG4gICAgdmFsdWU6IHN0cmluZztcbiAgICAvKiogS2V5LXZhbHVlIG1hcCBvZiBjb29raWUgYXR0cmlidXRlcyAoZS5nLiwgJ21heEFnZScsICdwYXRoJywgJ2RvbWFpbicsICdzZWN1cmUnLCAnaHR0cE9ubHknKS4gKi9cbiAgICBhdHRyaWJ1dGVzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuIH1cblxuLyoqXG4gKiBUaGUgc3RhdGljIFJlc3BvbnNlIGNsYXNzIHByb3ZpZGluZyBzdGFuZGFyZGl6ZWQgSFRUUCBzdGF0dXMgY29kZXMgYW5kIG1ldGhvZHNcbiAqIGZvciBjb25zdHJ1Y3RpbmcgdGhlIHNlcnZlcidzIHJlc3BvbnNlLlxuICovXG5leHBvcnQgY2xhc3MgUmVzcG9uc2Uge1xuXG4gICAgLy8gLS0tIFN0YW5kYXJkIEhUVFAgU3RhdHVzIENvZGUgQ29uc3RhbnRzIChJbmZvcm1hdGlvbmFsLCBTdWNjZXNzLCBSZWRpcmVjdGlvbiwgQ2xpZW50IEVycm9yLCBTZXJ2ZXIgRXJyb3IpIC0tLVxuXG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBBQ0NFUFRFRCA9IDIwMjtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEJBRF9HQVRFV0FZID0gNTAyO1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQkFEX1JFUVVFU1QgPSA0MDA7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBDT05GTElDVCA9IDQwOTtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IENPTlRJTlVFID0gMTAwO1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQ1JFQVRFRCA9IDIwMTtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEVYUEVDVEFUSU9OX0ZBSUxFRCA9IDQxNztcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEZPUkJJRERFTiA9IDQwMztcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEZPVU5EID0gMzAyO1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgR0FURVdBWV9USU1FT1VUID0gNTA0O1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgR09ORSA9IDQxMDtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEhUVFBfVkVSU0lPTl9OT1RfU1VQUE9SVEVEID0gNTA1O1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgSU5URVJOQUxfU0VSVkVSX0VSUk9SID0gNTAwO1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTEVOR1RIX1JFUVVJUkVEID0gNDExO1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTUVUSE9EX05PVF9BTExPV0VEID0gNDA1O1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTU9WRURfUEVSTUFORU5UTFkgPSAzMDE7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBNT1ZFRF9URU1QT1JBUklMWSA9IDMwMjtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE1VTFRJUExFX0NIT0lDRVMgPSAzMDA7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBOT19DT05URU5UID0gMjA0O1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04gPSAyMDM7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBOT1RfQUNDRVBUQUJMRSA9IDQwNjtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE5PVF9GT1VORCA9IDQwNDtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE5PVF9JTVBMRU1FTlRFRCA9IDUwMTtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE5PVF9NT0RJRklFRCA9IDMwNDtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE9LID0gMjAwO1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUEFSVElBTF9DT05URU5UID0gMjA2O1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUEFZTUVOVF9SRVFVSVJFRCA9IDQwMjtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBSRUNPTkRJVElPTl9GQUlMRUQgPSA0MTI7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBQUk9YWV9BVVRIRU5USUNBVElPTl9SRVFVSVJFRCA9IDQwNztcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFJFUVVFU1RfRU5USVRZX1RPT19MQVJHRSA9IDQxMztcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFJFUVVFU1RfVElNRU9VVCA9IDQwODtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFJFUVVFU1RfVVJJX1RPT19MT05HID0gNDE0O1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUkVRVUVTVEVEX1JBTkdFX05PVF9TQVRJU0ZJQUJMRSA9IDQxNjtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFJFU0VUX0NPTlRFTlQgPSAyMDU7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBTRUVfT1RIRVIgPSAzMDM7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBTRVJWSUNFX1VOQVZBSUxBQkxFID0gNTAzO1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU1dJVENISU5HX1BST1RPQ09MUyA9IDEwMTtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFRFTVBPUkFSWV9SRURJUkVDVCA9IDMwNztcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFVOQVVUSE9SSVpFRCA9IDQwMTtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFVOU1VQUE9SVEVEX01FRElBX1RZUEUgPSA0MTU7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBVU0VfUFJPWFkgPSAzMDU7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBVTlBST0NFU1NBQkxFX0NPTlRFTlQgPSA0MjI7XG5cbiAgICAvKipcbiAgICAgKiBNYXBwaW5nIGJldHdlZW4gSFRUUCByZXNwb25zZSBjb2RlcyAoc3RyaW5nKSBhbmQgdGhlaXIgY29ycmVzcG9uZGluZyByZWFzb24tcGhyYXNlc1xuICAgICAqIGFzIGRlZmluZWQgaW4gUkZDIDcyMzEsIHNlY3Rpb24gNi4xLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgSHR0cENvZGVzUmVhc29ucyA9IHtcbiAgICAgICAgXCIxMDBcIjogXCJDb250aW51ZVwiLCBcIjEwMVwiOiBcIlN3aXRjaGluZyBQcm90b2NvbHNcIiwgXCIyMDBcIjogXCJPS1wiLCBcIjIwMVwiOiBcIkNyZWF0ZWRcIixcbiAgICAgICAgXCIyMDJcIjogXCJBY2NlcHRlZFwiLCBcIjIwM1wiOiBcIk5vbi1BdXRob3JpdGF0aXZlIEluZm9ybWF0aW9uXCIsIFwiMjA0XCI6IFwiTm8gQ29udGVudFwiLFxuICAgICAgICBcIjIwNVwiOiBcIlJlc2V0IENvbnRlbnRcIiwgXCIyMDZcIjogXCJQYXJ0aWFsIENvbnRlbnRcIiwgXCIzMDBcIjogXCJNdWx0aXBsZSBDaG9pY2VzXCIsXG4gICAgICAgIFwiMzAxXCI6IFwiTW92ZWQgUGVybWFuZW50bHlcIiwgXCIzMDJcIjogXCJGb3VuZFwiLCBcIjMwM1wiOiBcIlNlZSBPdGhlclwiLCBcIjMwNFwiOiBcIk5vdCBNb2RpZmllZFwiLFxuICAgICAgICBcIjMwNVwiOiBcIlVzZSBQcm94eVwiLCBcIjMwN1wiOiBcIlRlbXBvcmFyeSBSZWRpcmVjdFwiLCBcIjQwMFwiOiBcIkJhZCBSZXF1ZXN0XCIsXG4gICAgICAgIFwiNDAxXCI6IFwiVW5hdXRob3JpemVkXCIsIFwiNDAyXCI6IFwiUGF5bWVudCBSZXF1aXJlZFwiLCBcIjQwM1wiOiBcIkZvcmJpZGRlblwiLFxuICAgICAgICBcIjQwNFwiOiBcIk5vdCBGb3VuZFwiLCBcIjQwNVwiOiBcIk1ldGhvZCBOb3QgQWxsb3dlZFwiLCBcIjQwNlwiOiBcIk5vdCBBY2NlcHRhYmxlXCIsXG4gICAgICAgIFwiNDA3XCI6IFwiUHJveHkgQXV0aGVudGljYXRpb24gUmVxdWlyZWRcIiwgXCI0MDhcIjogXCJSZXF1ZXN0IFRpbWVvdXRcIiwgXCI0MDlcIjogXCJDb25mbGljdFwiLFxuICAgICAgICBcIjQxMFwiOiBcIkdvbmVcIiwgXCI0MTFcIjogXCJMZW5ndGggUmVxdWlyZWRcIiwgXCI0MTJcIjogXCJQcmVjb25kaXRpb24gRmFpbGVkXCIsXG4gICAgICAgIFwiNDEzXCI6IFwiUGF5bG9hZCBUb28gTGFyZ2VcIiwgXCI0MTRcIjogXCJVUkkgVG9vIExhcmdlXCIsIFwiNDE1XCI6IFwiVW5zdXBwb3J0ZWQgTWVkaWEgVHlwZVwiLFxuICAgICAgICBcIjQxNlwiOiBcIlJhbmdlIE5vdCBTYXRpc2ZpYWJsZVwiLCBcIjQxN1wiOiBcIkV4cGVjdGF0aW9uIEZhaWxlZFwiLCBcIjQyMlwiOiBcIlVucHJvY2Vzc2FibGUgQ29udGVudFwiLFxuICAgICAgICBcIjQyNlwiOiBcIlVwZ3JhZGUgUmVxdWlyZWRcIiwgXCI1MDBcIjogXCJJbnRlcm5hbCBTZXJ2ZXIgRXJyb3JcIiwgXCI1MDFcIjogXCJOb3QgSW1wbGVtZW50ZWRcIixcbiAgICAgICAgXCI1MDJcIjogXCJCYWQgR2F0ZXdheVwiLCBcIjUwM1wiOiBcIlNlcnZpY2UgVW5hdmFpbGFibGVcIiwgXCI1MDRcIjogXCJHYXRld2F5IFRpbW1lb3V0XCIsXG4gICAgICAgIFwiNTA1XCI6IFwiSFRUUCBWZXJzaW9uIE5vdCBTdXBwb3J0ZWRcIixcblxuICAgICAgICAvKipcbiAgICAgICAgKiBVdGlsaXR5IG1ldGhvZCB0aGF0IGFjY2VwdHMgYW4gSFRUUCBjb2RlIGFuZCByZXR1cm5zIGl0cyBjb3JyZXNwb25kaW5nIHJlYXNvbi1waHJhc2UuXG4gICAgICAgICogQHBhcmFtIGNvZGUgVGhlIEhUVFAgc3RhdHVzIGNvZGUgKG51bWJlcikuXG4gICAgICAgICogQHJldHVybnMgVGhlIHJlYXNvbiBwaHJhc2Ugc3RyaW5nLlxuICAgICAgICAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIGNvZGUgaXMgbm90IGEgdmFsaWQgaW50ZWdlciBpbiB0aGUgcmFuZ2UgWzEwMC01MDVdLlxuICAgICAgICAqL1xuICAgICAgICBnZXRSZWFzb246IChjb2RlOiBudW1iZXIpOiBzdHJpbmcgPT4ge1xuICAgICAgICAgICAgaWYgKGlzTmFOKGNvZGUpIHx8IGNvZGUgPCAxMDAgfHwgY29kZSA+IDUwNSkge1xuICAgICAgICAgICAgICAgIHRocm93IEVycm9yKCdJbGxlZ2FsIGFyZ3VtZW50IGZvciBjb2RlWycgKyBjb2RlICsgJ10uIFZhbGlkIEhUVFAgY29kZXMgYXJlIGludGVnZXIgbnVtYmVycyBpbiB0aGUgcmFuZ2UgWzEwMC01MDVdLicpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gUmVzcG9uc2UuSHR0cENvZGVzUmVhc29uc1tTdHJpbmcoY29kZSldO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIHRoZSByZXNwb25zZSBmYVx1MDBFN2FkZSBpcyBjdXJyZW50bHkgdmFsaWQgb3IgY29ubmVjdGVkIHRvIGFuIGFjdGl2ZSByZXF1ZXN0IGNvbnRleHQuXG4gICAgICogQHJldHVybnMgVHJ1ZSBpZiB2YWxpZCwgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgaXNWYWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIEh0dHBSZXNwb25zZUZhY2FkZS5pc1ZhbGlkKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2VyaWFsaXplcyBhIEphdmFTY3JpcHQgb2JqZWN0IHRvIEpTT04sIHNldHMgdGhlIGBDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb25gIGhlYWRlcixcbiAgICAgKiBhbmQgd3JpdGVzIHRoZSBKU09OIHN0cmluZyB0byB0aGUgcmVzcG9uc2Ugb3V0cHV0IHN0cmVhbS5cbiAgICAgKiBAcGFyYW0gb2JqIFRoZSBKYXZhU2NyaXB0IG9iamVjdCB0byBiZSBzZXJpYWxpemVkIGFuZCBzZW50LlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMganNvbihvYmo6IGFueSk6IHZvaWQge1xuICAgICAgICBSZXNwb25zZS5hZGRIZWFkZXIoXCJDb250ZW50LVR5cGVcIiwgXCJhcHBsaWNhdGlvbi9qc29uXCIpXG4gICAgICAgIGNvbnN0IG9iakpzb24gPSBKU09OLnN0cmluZ2lmeShvYmopO1xuICAgICAgICBSZXNwb25zZS5wcmludChvYmpKc29uKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBXcml0ZXMgYSBzdHJpbmcgb2YgdGV4dCB0byB0aGUgcmVzcG9uc2UgYm9keSB1c2luZyAqKlVURi04KiogZW5jb2RpbmcuXG4gICAgICogTm90ZTogVGhpcyBtZXRob2QgYXV0b21hdGljYWxseSBoYW5kbGVzIGZsdXNoaW5nIHRoZSBvdXRwdXQgc3RyZWFtLlxuICAgICAqIEBwYXJhbSB0ZXh0IFRoZSBzdHJpbmcgY29udGVudCB0byB3cml0ZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHByaW50KHRleHQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0ZXh0ID0gKHRleHQgJiYgdGV4dC50b1N0cmluZygpKSB8fCBcIlwiO1xuICAgICAgICBjb25zdCBvdXQgPSBSZXNwb25zZS5nZXRPdXRwdXRTdHJlYW0oKS5uYXRpdmU7XG4gICAgICAgIC8vIFVzZSBKYXZhIEkvTyB0byBlbnN1cmUgZXhwbGljaXQgVVRGLTggZW5jb2RpbmdcbiAgICAgICAgY29uc3Qgd3JpdGVyID0gbmV3IE91dHB1dFN0cmVhbVdyaXRlcihvdXQsIFN0YW5kYXJkQ2hhcnNldHMuVVRGXzgpO1xuICAgICAgICB3cml0ZXIud3JpdGUodGV4dCk7XG4gICAgICAgIHdyaXRlci5mbHVzaCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdyaXRlcyBhIHN0cmluZyBvZiB0ZXh0IGZvbGxvd2VkIGJ5IGEgbmV3bGluZSBjaGFyYWN0ZXIgKGBcXG5gKSB0byB0aGUgcmVzcG9uc2UgYm9keVxuICAgICAqIHVzaW5nICoqVVRGLTgqKiBlbmNvZGluZy5cbiAgICAgKiBAcGFyYW0gdGV4dCBUaGUgc3RyaW5nIGNvbnRlbnQgdG8gd3JpdGUuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBwcmludGxuKHRleHQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0ZXh0ID0gKHRleHQgJiYgdGV4dC50b1N0cmluZygpKSB8fCBcIlwiO1xuICAgICAgICBjb25zdCBvdXQgPSBSZXNwb25zZS5nZXRPdXRwdXRTdHJlYW0oKS5uYXRpdmU7XG4gICAgICAgIGNvbnN0IHdyaXRlciA9IG5ldyBPdXRwdXRTdHJlYW1Xcml0ZXIob3V0LCBTdGFuZGFyZENoYXJzZXRzLlVURl84KTtcbiAgICAgICAgd3JpdGVyLndyaXRlKHRleHQpO1xuICAgICAgICB3cml0ZXIud3JpdGUoXCJcXG5cIik7XG4gICAgICAgIHdyaXRlci5mbHVzaCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdyaXRlcyBhbiBhcnJheSBvZiBieXRlcyBkaXJlY3RseSB0byB0aGUgcmVzcG9uc2Ugb3V0cHV0IHN0cmVhbSwgdHlwaWNhbGx5IHVzZWQgZm9yIGJpbmFyeSBkYXRhLlxuICAgICAqIEBwYXJhbSBieXRlcyBUaGUgYXJyYXkgb2YgYnl0ZXMgdG8gd3JpdGUuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyB3cml0ZShieXRlczogYW55W10pOiB2b2lkIHtcbiAgICAgICAgaWYgKCFieXRlcykge1xuICAgICAgICAgICAgYnl0ZXMgPSBbXTtcbiAgICAgICAgfVxuICAgICAgICBIdHRwUmVzcG9uc2VGYWNhZGUud3JpdGUoYnl0ZXMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiB0aGUgcmVzcG9uc2UgaGVhZGVycyBhbmQgc3RhdHVzIGhhdmUgYWxyZWFkeSBiZWVuIHNlbnQgdG8gdGhlIGNsaWVudC5cbiAgICAgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSByZXNwb25zZSBpcyBjb21taXR0ZWQsIGZhbHNlIG90aGVyd2lzZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGlzQ29tbWl0dGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gSHR0cFJlc3BvbnNlRmFjYWRlLmlzQ29tbWl0dGVkKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgdmFsdWUgb2YgdGhlIGBDb250ZW50LVR5cGVgIGhlYWRlci5cbiAgICAgKiBAcGFyYW0gY29udGVudFR5cGUgVGhlIE1JTUUgdHlwZSBzdHJpbmcgKGUuZy4sICd0ZXh0L2h0bWwnLCAnYXBwbGljYXRpb24vcGRmJykuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBzZXRDb250ZW50VHlwZShjb250ZW50VHlwZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIEh0dHBSZXNwb25zZUZhY2FkZS5zZXRDb250ZW50VHlwZShjb250ZW50VHlwZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRm9yY2VzIGFueSBidWZmZXJlZCBvdXRwdXQgdG8gYmUgd3JpdHRlbiB0byB0aGUgY2xpZW50LlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZmx1c2goKTogdm9pZCB7XG4gICAgICAgIEh0dHBSZXNwb25zZUZhY2FkZS5mbHVzaCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsb3NlcyB0aGUgcmVzcG9uc2Ugb3V0cHV0IHN0cmVhbS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGNsb3NlKCk6IHZvaWQge1xuICAgICAgICBIdHRwUmVzcG9uc2VGYWNhZGUuY2xvc2UoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGRzIGEgY29va2llIHRvIHRoZSByZXNwb25zZS4gVGhlIGNvb2tpZSBvYmplY3QgaXMgc2VyaWFsaXplZCB0byBKU09OIGJlZm9yZSBiZWluZyBwYXNzZWRcbiAgICAgKiB0byB0aGUgdW5kZXJseWluZyBKYXZhIGZhY2FkZS5cbiAgICAgKiBAcGFyYW0gY29va2llIFRoZSBjb29raWUgZGVmaW5pdGlvbiBvYmplY3QuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBhZGRDb29raWUoY29va2llOiBDb29raWUpOiB2b2lkIHtcbiAgICAgICAgSHR0cFJlc3BvbnNlRmFjYWRlLmFkZENvb2tpZShKU09OLnN0cmluZ2lmeShjb29raWUpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYSByZXNwb25zZSBoZWFkZXIgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUgaGFzIGFscmVhZHkgYmVlbiBzZXQuXG4gICAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIGhlYWRlci5cbiAgICAgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBoZWFkZXIgZXhpc3RzLCBmYWxzZSBvdGhlcndpc2UuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBjb250YWluc0hlYWRlcihuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIEh0dHBSZXNwb25zZUZhY2FkZS5jb250YWluc0hlYWRlcihuYW1lKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFbmNvZGVzIGEgVVJMIGZvciB1c2UgaW4gcmVkaXJlY3RzIG9yIGZvcm1zLCBpbmNsdWRpbmcgc2Vzc2lvbiBpbmZvcm1hdGlvbiBpZiBuZWNlc3NhcnkuXG4gICAgICogQHBhcmFtIHVybCBUaGUgVVJMIHRvIGVuY29kZS5cbiAgICAgKiBAcmV0dXJucyBUaGUgZW5jb2RlZCBVUkwgc3RyaW5nLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZW5jb2RlVVJMKHVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEh0dHBSZXNwb25zZUZhY2FkZS5lbmNvZGVVUkwodXJsKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBjaGFyYWN0ZXIgZW5jb2RpbmcgdXNlZCBmb3IgdGhlIHJlc3BvbnNlIGJvZHkuXG4gICAgICogQHJldHVybnMgVGhlIGNoYXJhY3RlciBlbmNvZGluZyBzdHJpbmcuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRDaGFyYWN0ZXJFbmNvZGluZygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gSHR0cFJlc3BvbnNlRmFjYWRlLmdldENoYXJhY3RlckVuY29kaW5nKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRW5jb2RlcyBhIFVSTCBmb3IgdXNlIGluIHRoZSBgTG9jYXRpb25gIGhlYWRlciBvZiBhIHJlZGlyZWN0IHJlc3BvbnNlLlxuICAgICAqIEBwYXJhbSB1cmwgVGhlIHJlZGlyZWN0IFVSTCB0byBlbmNvZGUuXG4gICAgICogQHJldHVybnMgVGhlIGVuY29kZWQgcmVkaXJlY3QgVVJMIHN0cmluZy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGVuY29kZVJlZGlyZWN0VVJMKHVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEh0dHBSZXNwb25zZUZhY2FkZS5lbmNvZGVSZWRpcmVjdFVSTCh1cmwpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGN1cnJlbnQgYENvbnRlbnQtVHlwZWAgaGVhZGVyIHZhbHVlLlxuICAgICAqIEByZXR1cm5zIFRoZSBjb250ZW50IHR5cGUgc3RyaW5nLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0Q29udGVudFR5cGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEh0dHBSZXNwb25zZUZhY2FkZS5nZXRDb250ZW50VHlwZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNlbmRzIGFuIEhUVFAgZXJyb3IgcmVzcG9uc2UgdG8gdGhlIGNsaWVudCB3aXRoIHRoZSBzcGVjaWZpZWQgc3RhdHVzIGNvZGUgYW5kIG9wdGlvbmFsIG1lc3NhZ2UuXG4gICAgICogVGhpcyBieXBhc3NlcyB0aGUgbm9ybWFsIHJlc3BvbnNlIGJvZHkgd3JpdGluZyBwcm9jZXNzLlxuICAgICAqIEBwYXJhbSBzdGF0dXMgVGhlIEhUVFAgc3RhdHVzIGNvZGUgKGUuZy4sIDQwNCwgNTAwKS5cbiAgICAgKiBAcGFyYW0gbWVzc2FnZSBBbiBvcHRpb25hbCBtZXNzYWdlIHRvIGluY2x1ZGUgaW4gdGhlIGVycm9yIHJlc3BvbnNlLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgc2VuZEVycm9yKHN0YXR1czogbnVtYmVyLCBtZXNzYWdlPzogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIEh0dHBSZXNwb25zZUZhY2FkZS5zZW5kRXJyb3Ioc3RhdHVzLCBtZXNzYWdlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBjaGFyYWN0ZXIgZW5jb2RpbmcgdG8gYmUgdXNlZCBmb3IgdGhlIHJlc3BvbnNlIGJvZHkgKGUuZy4sICdVVEYtOCcpLlxuICAgICAqIEBwYXJhbSBjaGFyc2V0IFRoZSBjaGFyYWN0ZXIgc2V0IHN0cmluZy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHNldENoYXJhY3RlckVuY29kaW5nKGNoYXJzZXQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBIdHRwUmVzcG9uc2VGYWNhZGUuc2V0Q2hhcmFjdGVyRW5jb2RpbmcoY2hhcnNldCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2VuZHMgYSByZWRpcmVjdCByZXNwb25zZSAoc3RhdHVzIGNvZGUgMzAyIGJ5IGRlZmF1bHQpIHRvIHRoZSBjbGllbnQuXG4gICAgICogQHBhcmFtIGxvY2F0aW9uIFRoZSBuZXcgVVJMIHRvIHJlZGlyZWN0IHRoZSBjbGllbnQgdG8uXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBzZW5kUmVkaXJlY3QobG9jYXRpb246IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBIdHRwUmVzcG9uc2VGYWNhZGUuc2VuZFJlZGlyZWN0KGxvY2F0aW9uKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBgQ29udGVudC1MZW5ndGhgIGhlYWRlciBmb3IgdGhlIHJlc3BvbnNlLlxuICAgICAqIEBwYXJhbSBsZW5ndGggVGhlIHNpemUgb2YgdGhlIHJlc3BvbnNlIGJvZHkgaW4gYnl0ZXMuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBzZXRDb250ZW50TGVuZ3RoKGxlbmd0aDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIEh0dHBSZXNwb25zZUZhY2FkZS5zZXRDb250ZW50TGVuZ3RoKGxlbmd0aCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyBhIHJlc3BvbnNlIGhlYWRlciB3aXRoIHRoZSBnaXZlbiBuYW1lIGFuZCB2YWx1ZS4gSWYgdGhlIGhlYWRlciBhbHJlYWR5IGV4aXN0cywgaXRzIHZhbHVlIGlzIG92ZXJ3cml0dGVuLlxuICAgICAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBoZWFkZXIuXG4gICAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSBvZiB0aGUgaGVhZGVyLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgc2V0SGVhZGVyKG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBIdHRwUmVzcG9uc2VGYWNhZGUuc2V0SGVhZGVyKG5hbWUsIHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGRzIGEgcmVzcG9uc2UgaGVhZGVyIHdpdGggdGhlIGdpdmVuIG5hbWUgYW5kIHZhbHVlLiBJZiB0aGUgaGVhZGVyIGFscmVhZHkgZXhpc3RzLCBhIHNlY29uZCBoZWFkZXIgd2l0aCB0aGUgc2FtZSBuYW1lIGlzIGFkZGVkLlxuICAgICAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBoZWFkZXIuXG4gICAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSBvZiB0aGUgaGVhZGVyLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgYWRkSGVhZGVyKG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBIdHRwUmVzcG9uc2VGYWNhZGUuYWRkSGVhZGVyKG5hbWUsIHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBIVFRQIHN0YXR1cyBjb2RlIGZvciB0aGUgcmVzcG9uc2UuXG4gICAgICogQHBhcmFtIHN0YXR1cyBUaGUgaW50ZWdlciBzdGF0dXMgY29kZSAoZS5nLiwgMjAwLCA0MDQpLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgc2V0U3RhdHVzKHN0YXR1czogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIEh0dHBSZXNwb25zZUZhY2FkZS5zZXRTdGF0dXMoc3RhdHVzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDbGVhcnMgYWxsIGJ1ZmZlcnMsIHN0YXR1cyBjb2RlLCBhbmQgaGVhZGVycyBmcm9tIHRoZSByZXNwb25zZSwgYWxsb3dpbmcgYSBuZXcgcmVzcG9uc2UgdG8gYmUgZ2VuZXJhdGVkLlxuICAgICAqIFRoaXMgaXMgb25seSBwb3NzaWJsZSBpZiB0aGUgcmVzcG9uc2UgaGFzIG5vdCB5ZXQgYmVlbiBjb21taXR0ZWQuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyByZXNldCgpOiB2b2lkIHtcbiAgICAgICAgSHR0cFJlc3BvbnNlRmFjYWRlLnJlc2V0KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgdmFsdWUgb2YgYSBzcGVjaWZpYyBoZWFkZXIuIElmIG11bHRpcGxlIGhlYWRlcnMgd2l0aCB0aGUgc2FtZSBuYW1lIGV4aXN0LCBpdCByZXR1cm5zIHRoZSBmaXJzdCBvbmUuXG4gICAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIGhlYWRlci5cbiAgICAgKiBAcmV0dXJucyBUaGUgaGVhZGVyIHZhbHVlIHN0cmluZy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldEhlYWRlcihuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gSHR0cFJlc3BvbnNlRmFjYWRlLmdldEhlYWRlcihuYW1lKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBsb2NhbGUgZm9yIHRoZSByZXNwb25zZSwgd2hpY2ggbWF5IGFmZmVjdCBsYW5ndWFnZSBhbmQgZGF0ZS90aW1lIGZvcm1hdHRpbmcuXG4gICAgICogQHBhcmFtIGxhbmd1YWdlIFRoZSBsYW5ndWFnZSBjb2RlIChlLmcuLCAnZW4nLCAnZnInKS5cbiAgICAgKiBAcGFyYW0gY291bnRyeSBUaGUgb3B0aW9uYWwgY291bnRyeSBjb2RlIChlLmcuLCAnVVMnLCAnR0InKS5cbiAgICAgKiBAcGFyYW0gdmFyaWFudCBUaGUgb3B0aW9uYWwgdmFyaWFudCBjb2RlLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgc2V0TG9jYWxlKGxhbmd1YWdlOiBzdHJpbmcsIGNvdW50cnk/OiBzdHJpbmcsIHZhcmlhbnQ/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgcmV0dXJuIEh0dHBSZXNwb25zZUZhY2FkZS5zZXRMb2NhbGUobGFuZ3VhZ2UsIGNvdW50cnksIHZhcmlhbnQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgYWxsIGhlYWRlciB2YWx1ZXMgZm9yIGEgc3BlY2lmaWMgaGVhZGVyIG5hbWUgYXMgYW4gYXJyYXkgb2Ygc3RyaW5ncy5cbiAgICAgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgaGVhZGVyLlxuICAgICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIGhlYWRlciB2YWx1ZXMuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRIZWFkZXJzKG5hbWU6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoSHR0cFJlc3BvbnNlRmFjYWRlLmdldEhlYWRlcnMobmFtZSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIG5hbWVzIG9mIGFsbCBoZWFkZXJzIHRoYXQgaGF2ZSBiZWVuIHNldCBvbiB0aGUgcmVzcG9uc2UuXG4gICAgICogQHJldHVybnMgQW4gYXJyYXkgb2YgaGVhZGVyIG5hbWVzLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0SGVhZGVyTmFtZXMoKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShIdHRwUmVzcG9uc2VGYWNhZGUuZ2V0SGVhZGVyTmFtZXMoKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgY3VycmVudGx5IHNldCBsb2NhbGUgc3RyaW5nIGZvciB0aGUgcmVzcG9uc2UuXG4gICAgICogQHJldHVybnMgVGhlIGxvY2FsZSBzdHJpbmcuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRMb2NhbGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEh0dHBSZXNwb25zZUZhY2FkZS5nZXRMb2NhbGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSB1bmRlcmx5aW5nIG91dHB1dCBzdHJlYW0gb2JqZWN0LCB3cmFwcGVkIGluIHRoZSBTREsncyBgT3V0cHV0U3RyZWFtYCBjbGFzcy5cbiAgICAgKiBUaGlzIGlzIHVzZWZ1bCBmb3Igd3JpdGluZyByYXcgb3IgbGFyZ2UgYW1vdW50cyBvZiBkYXRhLlxuICAgICAqIEByZXR1cm5zIFRoZSBvdXRwdXQgc3RyZWFtIG9iamVjdC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldE91dHB1dFN0cmVhbSgpOiBPdXRwdXRTdHJlYW0ge1xuICAgICAgICByZXR1cm4gbmV3IE91dHB1dFN0cmVhbShIdHRwUmVzcG9uc2VGYWNhZGUuZ2V0T3V0cHV0U3RyZWFtKCkpO1xuICAgIH1cbn1cblxuLy8gQHRzLWlnbm9yZVxuaWYgKHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnKSB7XG5cdC8vIEB0cy1pZ25vcmVcblx0bW9kdWxlLmV4cG9ydHMgPSBSZXNwb25zZTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICJBQU1BLFNBQVMsb0JBQW9CO0FBRTdCLE1BQU0scUJBQXFCLEtBQUssS0FBSyw4REFBOEQ7QUFDbkcsTUFBTSxxQkFBcUIsS0FBSyxLQUFLLDRCQUE0QjtBQUNqRSxNQUFNLG1CQUFtQixLQUFLLEtBQUssbUNBQW1DO0FBa0IvRCxNQUFNLFNBQVM7QUFBQTtBQUFBLEVBSWxCLE9BQXVCLFdBQVc7QUFBQSxFQUNsQyxPQUF1QixjQUFjO0FBQUEs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
|
|
347
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2h0dHAvcmVzcG9uc2UudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQG1vZHVsZSBodHRwL3Jlc3BvbnNlXG4gKiBAcGFja2FnZSBAYWVyb2tpdC9zZGsvaHR0cFxuICogQG5hbWUgUmVzcG9uc2VcbiAqIEBvdmVydmlld1xuICogXG4gKiBUaGUgYFJlc3BvbnNlYCBjbGFzcyBwcm92aWRlcyBhIHN0YXRpYyBmYVx1MDBFN2FkZSBmb3IgbWFuYWdpbmcgdGhlIEhUVFAgcmVzcG9uc2UgaW4gYSBzZXJ2ZXIgY29udGV4dC4gSXQgd3JhcHMgYSBuYXRpdmUgSmF2YSBIVFRQIHJlc3BvbnNlIG9iamVjdCwgb2ZmZXJpbmcgbWV0aG9kcyBmb3Igc2V0dGluZyBzdGF0dXMgY29kZXMsIGhlYWRlcnMsIGNvb2tpZXMsIGFuZCB3cml0aW5nIGNvbnRlbnQgKHRleHQsIEpTT04sIG9yIGJpbmFyeSkgdG8gdGhlIHJlc3BvbnNlIGJvZHkuIFRoZSBjbGFzcyBhbHNvIGluY2x1ZGVzIGNvbnN0YW50cyBmb3Igc3RhbmRhcmQgSFRUUCBzdGF0dXMgY29kZXMgYW5kIGEgbWFwcGluZyBvZiB0aGVzZSBjb2RlcyB0byB0aGVpciByZWFzb24gcGhyYXNlcyBhcyBkZWZpbmVkIGluIFJGQyA3MjMxLlxuICogXG4gKiAjIyMgS2V5IEZlYXR1cmVzOlxuICogLSAqKkhUVFAgU3RhdHVzIENvZGVzKio6IFByb3ZpZGVzIGNvbnN0YW50cyBmb3IgYWxsIHN0YW5kYXJkIEhUVFAgc3RhdHVzIGNvZGVzLCBtYWtpbmcgaXQgZWFzaWVyIHRvIHNldCByZXNwb25zZSBzdGF0dXNlcyB3aXRob3V0IG1lbW9yaXppbmcgbnVtZXJpYyB2YWx1ZXMuXG4gKiAtICoqQ29udGVudCBXcml0aW5nKio6IE1ldGhvZHMgZm9yIHdyaXRpbmcgdGV4dCwgSlNPTiwgb3IgYmluYXJ5IGRhdGEgdG8gdGhlIHJlc3BvbnNlIGJvZHksIHdpdGggcHJvcGVyIGhhbmRsaW5nIG9mIGNoYXJhY3RlciBlbmNvZGluZy5cbiAqIC0gKipIZWFkZXIgTWFuYWdlbWVudCoqOiBNZXRob2RzIGZvciBzZXR0aW5nIGFuZCBhZGRpbmcgaGVhZGVycywgYXMgd2VsbCBhcyBjaGVja2luZyBmb3IgZXhpc3RpbmcgaGVhZGVycy5cbiAqIC0gKipDb29raWUgTWFuYWdlbWVudCoqOiBBIG1ldGhvZCBmb3IgYWRkaW5nIGNvb2tpZXMgdG8gdGhlIHJlc3BvbnNlLCB3aXRoIHN1cHBvcnQgZm9yIGNvb2tpZSBhdHRyaWJ1dGVzLlxuICogLSAqKlJlc3BvbnNlIENvbnRyb2wqKjogTWV0aG9kcyBmb3IgZmx1c2hpbmcgYW5kIGNsb3NpbmcgdGhlIHJlc3BvbnNlIG91dHB1dCBzdHJlYW0sIHNlbmRpbmcgcmVkaXJlY3RzIGFuZCBlcnJvcnMsIGFuZCByZXNldHRpbmcgdGhlIHJlc3BvbnNlLlxuICogXG4gKiAjIyMgVXNlIENhc2VzOlxuICogLSAqKkFQSSBEZXZlbG9wbWVudCoqOiBVc2VkIGluIEhUVFAgY29udHJvbGxlcnMgdG8gY29uc3RydWN0IHJlc3BvbnNlcyB0byBjbGllbnQgcmVxdWVzdHMgaW4gYSBzdHJ1Y3R1cmVkIGFuZCBjb25zaXN0ZW50IG1hbm5lci5cbiAqIC0gKipXZWIgQXBwbGljYXRpb24gRGV2ZWxvcG1lbnQqKjogVXNlZnVsIGluIGFueSBzZXJ2ZXItc2lkZSBjb2RlIHRoYXQgbmVlZHMgdG8gc2VuZCBIVFRQIHJlc3BvbnNlcywgc3VjaCBhcyByZW5kZXJpbmcgSFRNTCBwYWdlcyBvciBzZXJ2aW5nIGZpbGVzLlxuICogXG4gKiAjIyMgRXhhbXBsZSBVc2FnZTpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBSZXNwb25zZSB9IGZyb20gXCJAYWVyb2tpdC9zZGsvaHR0cFwiO1xuICogXG4gKiAvLyBTZW5kaW5nIGEgSlNPTiByZXNwb25zZSB3aXRoIGEgMjAwIE9LIHN0YXR1c1xuICogUmVzcG9uc2Uuc2V0U3RhdHVzKFJlc3BvbnNlLk9LKTtcbiAqIFJlc3BvbnNlLmpzb24oeyBtZXNzYWdlOiBcIkhlbGxvLCB3b3JsZCFcIiB9KTtcbiAqIFxuICogLy8gU2VuZGluZyBhIHBsYWluIHRleHQgcmVzcG9uc2Ugd2l0aCBhIGN1c3RvbSBoZWFkZXJcbiAqIFJlc3BvbnNlLnNldEhlYWRlcihcIlgtQ3VzdG9tLUhlYWRlclwiLCBcIkN1c3RvbVZhbHVlXCIpO1xuICogUmVzcG9uc2UucHJpbnQoXCJUaGlzIGlzIGEgcGxhaW4gdGV4dCByZXNwb25zZS5cIik7XG4gKiBcbiAqIC8vIEFkZGluZyBhIGNvb2tpZSB0byB0aGUgcmVzcG9uc2VcbiAqIFJlc3BvbnNlLmFkZENvb2tpZSh7XG4gKiAgICAgbmFtZTogXCJzZXNzaW9uSWRcIixcbiAqICAgICB2YWx1ZTogXCJhYmMxMjNcIixcbiAqICAgICBhdHRyaWJ1dGVzOiB7XG4gKiAgICAgICAgIG1heEFnZTogXCIzNjAwXCIsXG4gKiAgICAgICAgIHBhdGg6IFwiL1wiXG4gKiAgICAgfVxuICogfSk7XG4gKiBgYGBcbiAqL1xuXG5pbXBvcnQgeyBPdXRwdXRTdHJlYW0gfSBmcm9tIFwiQGFlcm9raXQvc2RrL2lvL3N0cmVhbXNcIlxuXG5jb25zdCBIdHRwUmVzcG9uc2VGYWNhZGUgPSBKYXZhLnR5cGUoXCJvcmcuZWNsaXBzZS5kaXJpZ2libGUuY29tcG9uZW50cy5hcGkuaHR0cC5IdHRwUmVzcG9uc2VGYWNhZGVcIik7XG5jb25zdCBPdXRwdXRTdHJlYW1Xcml0ZXIgPSBKYXZhLnR5cGUoXCJqYXZhLmlvLk91dHB1dFN0cmVhbVdyaXRlclwiKTtcbmNvbnN0IFN0YW5kYXJkQ2hhcnNldHMgPSBKYXZhLnR5cGUoXCJqYXZhLm5pby5jaGFyc2V0LlN0YW5kYXJkQ2hhcnNldHNcIik7XG5cbi8qKlxuICogRGVmaW5lcyB0aGUgc3RydWN0dXJlIGZvciBhbiBIVFRQIGNvb2tpZSwgaW5jbHVkaW5nIGl0cyBuYW1lLCB2YWx1ZSwgYW5kIG9wdGlvbmFsIGF0dHJpYnV0ZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29va2llIHtcbiAgICAvKiogVGhlIG5hbWUgb2YgdGhlIGNvb2tpZS4gKi9cbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgLyoqIFRoZSB2YWx1ZSBvZiB0aGUgY29va2llLiAqL1xuICAgIHZhbHVlOiBzdHJpbmc7XG4gICAgLyoqIEtleS12YWx1ZSBtYXAgb2YgY29va2llIGF0dHJpYnV0ZXMgKGUuZy4sICdtYXhBZ2UnLCAncGF0aCcsICdkb21haW4nLCAnc2VjdXJlJywgJ2h0dHBPbmx5JykuICovXG4gICAgYXR0cmlidXRlczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbiB9XG5cbi8qKlxuICogVGhlIHN0YXRpYyBSZXNwb25zZSBjbGFzcyBwcm92aWRpbmcgc3RhbmRhcmRpemVkIEhUVFAgc3RhdHVzIGNvZGVzIGFuZCBtZXRob2RzXG4gKiBmb3IgY29uc3RydWN0aW5nIHRoZSBzZXJ2ZXIncyByZXNwb25zZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFJlc3BvbnNlIHtcblxuICAgIC8vIC0tLSBTdGFuZGFyZCBIVFRQIFN0YXR1cyBDb2RlIENvbnN0YW50cyAoSW5mb3JtYXRpb25hbCwgU3VjY2VzcywgUmVkaXJlY3Rpb24sIENsaWVudCBFcnJvciwgU2VydmVyIEVycm9yKSAtLS1cblxuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQUNDRVBURUQgPSAyMDI7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBCQURfR0FURVdBWSA9IDUwMjtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEJBRF9SRVFVRVNUID0gNDAwO1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQ09ORkxJQ1QgPSA0MDk7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBDT05USU5VRSA9IDEwMDtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IENSRUFURUQgPSAyMDE7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBFWFBFQ1RBVElPTl9GQUlMRUQgPSA0MTc7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBGT1JCSURERU4gPSA0MDM7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBGT1VORCA9IDMwMjtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEdBVEVXQVlfVElNRU9VVCA9IDUwNDtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEdPTkUgPSA0MTA7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRCA9IDUwNTtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IElOVEVSTkFMX1NFUlZFUl9FUlJPUiA9IDUwMDtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IExFTkdUSF9SRVFVSVJFRCA9IDQxMTtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE1FVEhPRF9OT1RfQUxMT1dFRCA9IDQwNTtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE1PVkVEX1BFUk1BTkVOVExZID0gMzAxO1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTU9WRURfVEVNUE9SQVJJTFkgPSAzMDI7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBNVUxUSVBMRV9DSE9JQ0VTID0gMzAwO1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTk9fQ09OVEVOVCA9IDIwNDtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OID0gMjAzO1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTk9UX0FDQ0VQVEFCTEUgPSA0MDY7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBOT1RfRk9VTkQgPSA0MDQ7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBOT1RfSU1QTEVNRU5URUQgPSA1MDE7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBOT1RfTU9ESUZJRUQgPSAzMDQ7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBPSyA9IDIwMDtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBBUlRJQUxfQ09OVEVOVCA9IDIwNjtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBBWU1FTlRfUkVRVUlSRUQgPSA0MDI7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBQUkVDT05ESVRJT05fRkFJTEVEID0gNDEyO1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUFJPWFlfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQgPSA0MDc7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBSRVFVRVNUX0VOVElUWV9UT09fTEFSR0UgPSA0MTM7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBSRVFVRVNUX1RJTUVPVVQgPSA0MDg7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBSRVFVRVNUX1VSSV9UT09fTE9ORyA9IDQxNDtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFJFUVVFU1RFRF9SQU5HRV9OT1RfU0FUSVNGSUFCTEUgPSA0MTY7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBSRVNFVF9DT05URU5UID0gMjA1O1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU0VFX09USEVSID0gMzAzO1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU0VSVklDRV9VTkFWQUlMQUJMRSA9IDUwMztcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFNXSVRDSElOR19QUk9UT0NPTFMgPSAxMDE7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBURU1QT1JBUllfUkVESVJFQ1QgPSAzMDc7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBVTkFVVEhPUklaRUQgPSA0MDE7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBVTlNVUFBPUlRFRF9NRURJQV9UWVBFID0gNDE1O1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVVNFX1BST1hZID0gMzA1O1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVU5QUk9DRVNTQUJMRV9DT05URU5UID0gNDIyO1xuXG4gICAgLyoqXG4gICAgICogTWFwcGluZyBiZXR3ZWVuIEhUVFAgcmVzcG9uc2UgY29kZXMgKHN0cmluZykgYW5kIHRoZWlyIGNvcnJlc3BvbmRpbmcgcmVhc29uLXBocmFzZXNcbiAgICAgKiBhcyBkZWZpbmVkIGluIFJGQyA3MjMxLCBzZWN0aW9uIDYuMS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEh0dHBDb2Rlc1JlYXNvbnMgPSB7XG4gICAgICAgIFwiMTAwXCI6IFwiQ29udGludWVcIiwgXCIxMDFcIjogXCJTd2l0Y2hpbmcgUHJvdG9jb2xzXCIsIFwiMjAwXCI6IFwiT0tcIiwgXCIyMDFcIjogXCJDcmVhdGVkXCIsXG4gICAgICAgIFwiMjAyXCI6IFwiQWNjZXB0ZWRcIiwgXCIyMDNcIjogXCJOb24tQXV0aG9yaXRhdGl2ZSBJbmZvcm1hdGlvblwiLCBcIjIwNFwiOiBcIk5vIENvbnRlbnRcIixcbiAgICAgICAgXCIyMDVcIjogXCJSZXNldCBDb250ZW50XCIsIFwiMjA2XCI6IFwiUGFydGlhbCBDb250ZW50XCIsIFwiMzAwXCI6IFwiTXVsdGlwbGUgQ2hvaWNlc1wiLFxuICAgICAgICBcIjMwMVwiOiBcIk1vdmVkIFBlcm1hbmVudGx5XCIsIFwiMzAyXCI6IFwiRm91bmRcIiwgXCIzMDNcIjogXCJTZWUgT3RoZXJcIiwgXCIzMDRcIjogXCJOb3QgTW9kaWZpZWRcIixcbiAgICAgICAgXCIzMDVcIjogXCJVc2UgUHJveHlcIiwgXCIzMDdcIjogXCJUZW1wb3JhcnkgUmVkaXJlY3RcIiwgXCI0MDBcIjogXCJCYWQgUmVxdWVzdFwiLFxuICAgICAgICBcIjQwMVwiOiBcIlVuYXV0aG9yaXplZFwiLCBcIjQwMlwiOiBcIlBheW1lbnQgUmVxdWlyZWRcIiwgXCI0MDNcIjogXCJGb3JiaWRkZW5cIixcbiAgICAgICAgXCI0MDRcIjogXCJOb3QgRm91bmRcIiwgXCI0MDVcIjogXCJNZXRob2QgTm90IEFsbG93ZWRcIiwgXCI0MDZcIjogXCJOb3QgQWNjZXB0YWJsZVwiLFxuICAgICAgICBcIjQwN1wiOiBcIlByb3h5IEF1dGhlbnRpY2F0aW9uIFJlcXVpcmVkXCIsIFwiNDA4XCI6IFwiUmVxdWVzdCBUaW1lb3V0XCIsIFwiNDA5XCI6IFwiQ29uZmxpY3RcIixcbiAgICAgICAgXCI0MTBcIjogXCJHb25lXCIsIFwiNDExXCI6IFwiTGVuZ3RoIFJlcXVpcmVkXCIsIFwiNDEyXCI6IFwiUHJlY29uZGl0aW9uIEZhaWxlZFwiLFxuICAgICAgICBcIjQxM1wiOiBcIlBheWxvYWQgVG9vIExhcmdlXCIsIFwiNDE0XCI6IFwiVVJJIFRvbyBMYXJnZVwiLCBcIjQxNVwiOiBcIlVuc3VwcG9ydGVkIE1lZGlhIFR5cGVcIixcbiAgICAgICAgXCI0MTZcIjogXCJSYW5nZSBOb3QgU2F0aXNmaWFibGVcIiwgXCI0MTdcIjogXCJFeHBlY3RhdGlvbiBGYWlsZWRcIiwgXCI0MjJcIjogXCJVbnByb2Nlc3NhYmxlIENvbnRlbnRcIixcbiAgICAgICAgXCI0MjZcIjogXCJVcGdyYWRlIFJlcXVpcmVkXCIsIFwiNTAwXCI6IFwiSW50ZXJuYWwgU2VydmVyIEVycm9yXCIsIFwiNTAxXCI6IFwiTm90IEltcGxlbWVudGVkXCIsXG4gICAgICAgIFwiNTAyXCI6IFwiQmFkIEdhdGV3YXlcIiwgXCI1MDNcIjogXCJTZXJ2aWNlIFVuYXZhaWxhYmxlXCIsIFwiNTA0XCI6IFwiR2F0ZXdheSBUaW1tZW91dFwiLFxuICAgICAgICBcIjUwNVwiOiBcIkhUVFAgVmVyc2lvbiBOb3QgU3VwcG9ydGVkXCIsXG5cbiAgICAgICAgLyoqXG4gICAgICAgICogVXRpbGl0eSBtZXRob2QgdGhhdCBhY2NlcHRzIGFuIEhUVFAgY29kZSBhbmQgcmV0dXJucyBpdHMgY29ycmVzcG9uZGluZyByZWFzb24tcGhyYXNlLlxuICAgICAgICAqIEBwYXJhbSBjb2RlIFRoZSBIVFRQIHN0YXR1cyBjb2RlIChudW1iZXIpLlxuICAgICAgICAqIEByZXR1cm5zIFRoZSByZWFzb24gcGhyYXNlIHN0cmluZy5cbiAgICAgICAgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBjb2RlIGlzIG5vdCBhIHZhbGlkIGludGVnZXIgaW4gdGhlIHJhbmdlIFsxMDAtNTA1XS5cbiAgICAgICAgKi9cbiAgICAgICAgZ2V0UmVhc29uOiAoY29kZTogbnVtYmVyKTogc3RyaW5nID0+IHtcbiAgICAgICAgICAgIGlmIChpc05hTihjb2RlKSB8fCBjb2RlIDwgMTAwIHx8IGNvZGUgPiA1MDUpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcignSWxsZWdhbCBhcmd1bWVudCBmb3IgY29kZVsnICsgY29kZSArICddLiBWYWxpZCBIVFRQIGNvZGVzIGFyZSBpbnRlZ2VyIG51bWJlcnMgaW4gdGhlIHJhbmdlIFsxMDAtNTA1XS4nKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIFJlc3BvbnNlLkh0dHBDb2Rlc1JlYXNvbnNbU3RyaW5nKGNvZGUpXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiB0aGUgcmVzcG9uc2UgZmFcdTAwRTdhZGUgaXMgY3VycmVudGx5IHZhbGlkIG9yIGNvbm5lY3RlZCB0byBhbiBhY3RpdmUgcmVxdWVzdCBjb250ZXh0LlxuICAgICAqIEByZXR1cm5zIFRydWUgaWYgdmFsaWQsIGZhbHNlIG90aGVyd2lzZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGlzVmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBIdHRwUmVzcG9uc2VGYWNhZGUuaXNWYWxpZCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNlcmlhbGl6ZXMgYSBKYXZhU2NyaXB0IG9iamVjdCB0byBKU09OLCBzZXRzIHRoZSBgQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uYCBoZWFkZXIsXG4gICAgICogYW5kIHdyaXRlcyB0aGUgSlNPTiBzdHJpbmcgdG8gdGhlIHJlc3BvbnNlIG91dHB1dCBzdHJlYW0uXG4gICAgICogQHBhcmFtIG9iaiBUaGUgSmF2YVNjcmlwdCBvYmplY3QgdG8gYmUgc2VyaWFsaXplZCBhbmQgc2VudC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGpzb24ob2JqOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgUmVzcG9uc2UuYWRkSGVhZGVyKFwiQ29udGVudC1UeXBlXCIsIFwiYXBwbGljYXRpb24vanNvblwiKVxuICAgICAgICBjb25zdCBvYmpKc29uID0gSlNPTi5zdHJpbmdpZnkob2JqKTtcbiAgICAgICAgUmVzcG9uc2UucHJpbnQob2JqSnNvbik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogV3JpdGVzIGEgc3RyaW5nIG9mIHRleHQgdG8gdGhlIHJlc3BvbnNlIGJvZHkgdXNpbmcgKipVVEYtOCoqIGVuY29kaW5nLlxuICAgICAqIE5vdGU6IFRoaXMgbWV0aG9kIGF1dG9tYXRpY2FsbHkgaGFuZGxlcyBmbHVzaGluZyB0aGUgb3V0cHV0IHN0cmVhbS5cbiAgICAgKiBAcGFyYW0gdGV4dCBUaGUgc3RyaW5nIGNvbnRlbnQgdG8gd3JpdGUuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBwcmludCh0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGV4dCA9ICh0ZXh0ICYmIHRleHQudG9TdHJpbmcoKSkgfHwgXCJcIjtcbiAgICAgICAgY29uc3Qgb3V0ID0gUmVzcG9uc2UuZ2V0T3V0cHV0U3RyZWFtKCkubmF0aXZlO1xuICAgICAgICAvLyBVc2UgSmF2YSBJL08gdG8gZW5zdXJlIGV4cGxpY2l0IFVURi04IGVuY29kaW5nXG4gICAgICAgIGNvbnN0IHdyaXRlciA9IG5ldyBPdXRwdXRTdHJlYW1Xcml0ZXIob3V0LCBTdGFuZGFyZENoYXJzZXRzLlVURl84KTtcbiAgICAgICAgd3JpdGVyLndyaXRlKHRleHQpO1xuICAgICAgICB3cml0ZXIuZmx1c2goKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBXcml0ZXMgYSBzdHJpbmcgb2YgdGV4dCBmb2xsb3dlZCBieSBhIG5ld2xpbmUgY2hhcmFjdGVyIChgXFxuYCkgdG8gdGhlIHJlc3BvbnNlIGJvZHlcbiAgICAgKiB1c2luZyAqKlVURi04KiogZW5jb2RpbmcuXG4gICAgICogQHBhcmFtIHRleHQgVGhlIHN0cmluZyBjb250ZW50IHRvIHdyaXRlLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgcHJpbnRsbih0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGV4dCA9ICh0ZXh0ICYmIHRleHQudG9TdHJpbmcoKSkgfHwgXCJcIjtcbiAgICAgICAgY29uc3Qgb3V0ID0gUmVzcG9uc2UuZ2V0T3V0cHV0U3RyZWFtKCkubmF0aXZlO1xuICAgICAgICBjb25zdCB3cml0ZXIgPSBuZXcgT3V0cHV0U3RyZWFtV3JpdGVyKG91dCwgU3RhbmRhcmRDaGFyc2V0cy5VVEZfOCk7XG4gICAgICAgIHdyaXRlci53cml0ZSh0ZXh0KTtcbiAgICAgICAgd3JpdGVyLndyaXRlKFwiXFxuXCIpO1xuICAgICAgICB3cml0ZXIuZmx1c2goKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBXcml0ZXMgYW4gYXJyYXkgb2YgYnl0ZXMgZGlyZWN0bHkgdG8gdGhlIHJlc3BvbnNlIG91dHB1dCBzdHJlYW0sIHR5cGljYWxseSB1c2VkIGZvciBiaW5hcnkgZGF0YS5cbiAgICAgKiBAcGFyYW0gYnl0ZXMgVGhlIGFycmF5IG9mIGJ5dGVzIHRvIHdyaXRlLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgd3JpdGUoYnl0ZXM6IGFueVtdKTogdm9pZCB7XG4gICAgICAgIGlmICghYnl0ZXMpIHtcbiAgICAgICAgICAgIGJ5dGVzID0gW107XG4gICAgICAgIH1cbiAgICAgICAgSHR0cFJlc3BvbnNlRmFjYWRlLndyaXRlKGJ5dGVzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgdGhlIHJlc3BvbnNlIGhlYWRlcnMgYW5kIHN0YXR1cyBoYXZlIGFscmVhZHkgYmVlbiBzZW50IHRvIHRoZSBjbGllbnQuXG4gICAgICogQHJldHVybnMgVHJ1ZSBpZiB0aGUgcmVzcG9uc2UgaXMgY29tbWl0dGVkLCBmYWxzZSBvdGhlcndpc2UuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBpc0NvbW1pdHRlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIEh0dHBSZXNwb25zZUZhY2FkZS5pc0NvbW1pdHRlZCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIHZhbHVlIG9mIHRoZSBgQ29udGVudC1UeXBlYCBoZWFkZXIuXG4gICAgICogQHBhcmFtIGNvbnRlbnRUeXBlIFRoZSBNSU1FIHR5cGUgc3RyaW5nIChlLmcuLCAndGV4dC9odG1sJywgJ2FwcGxpY2F0aW9uL3BkZicpLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgc2V0Q29udGVudFR5cGUoY29udGVudFR5cGU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBIdHRwUmVzcG9uc2VGYWNhZGUuc2V0Q29udGVudFR5cGUoY29udGVudFR5cGUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZvcmNlcyBhbnkgYnVmZmVyZWQgb3V0cHV0IHRvIGJlIHdyaXR0ZW4gdG8gdGhlIGNsaWVudC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGZsdXNoKCk6IHZvaWQge1xuICAgICAgICBIdHRwUmVzcG9uc2VGYWNhZGUuZmx1c2goKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDbG9zZXMgdGhlIHJlc3BvbnNlIG91dHB1dCBzdHJlYW0uXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgSHR0cFJlc3BvbnNlRmFjYWRlLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkcyBhIGNvb2tpZSB0byB0aGUgcmVzcG9uc2UuIFRoZSBjb29raWUgb2JqZWN0IGlzIHNlcmlhbGl6ZWQgdG8gSlNPTiBiZWZvcmUgYmVpbmcgcGFzc2VkXG4gICAgICogdG8gdGhlIHVuZGVybHlpbmcgSmF2YSBmYWNhZGUuXG4gICAgICogQHBhcmFtIGNvb2tpZSBUaGUgY29va2llIGRlZmluaXRpb24gb2JqZWN0LlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgYWRkQ29va2llKGNvb2tpZTogQ29va2llKTogdm9pZCB7XG4gICAgICAgIEh0dHBSZXNwb25zZUZhY2FkZS5hZGRDb29raWUoSlNPTi5zdHJpbmdpZnkoY29va2llKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGEgcmVzcG9uc2UgaGVhZGVyIHdpdGggdGhlIHNwZWNpZmllZCBuYW1lIGhhcyBhbHJlYWR5IGJlZW4gc2V0LlxuICAgICAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBoZWFkZXIuXG4gICAgICogQHJldHVybnMgVHJ1ZSBpZiB0aGUgaGVhZGVyIGV4aXN0cywgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgY29udGFpbnNIZWFkZXIobmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBIdHRwUmVzcG9uc2VGYWNhZGUuY29udGFpbnNIZWFkZXIobmFtZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRW5jb2RlcyBhIFVSTCBmb3IgdXNlIGluIHJlZGlyZWN0cyBvciBmb3JtcywgaW5jbHVkaW5nIHNlc3Npb24gaW5mb3JtYXRpb24gaWYgbmVjZXNzYXJ5LlxuICAgICAqIEBwYXJhbSB1cmwgVGhlIFVSTCB0byBlbmNvZGUuXG4gICAgICogQHJldHVybnMgVGhlIGVuY29kZWQgVVJMIHN0cmluZy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGVuY29kZVVSTCh1cmw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBIdHRwUmVzcG9uc2VGYWNhZGUuZW5jb2RlVVJMKHVybCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgY2hhcmFjdGVyIGVuY29kaW5nIHVzZWQgZm9yIHRoZSByZXNwb25zZSBib2R5LlxuICAgICAqIEByZXR1cm5zIFRoZSBjaGFyYWN0ZXIgZW5jb2Rpbmcgc3RyaW5nLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0Q2hhcmFjdGVyRW5jb2RpbmcoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEh0dHBSZXNwb25zZUZhY2FkZS5nZXRDaGFyYWN0ZXJFbmNvZGluZygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEVuY29kZXMgYSBVUkwgZm9yIHVzZSBpbiB0aGUgYExvY2F0aW9uYCBoZWFkZXIgb2YgYSByZWRpcmVjdCByZXNwb25zZS5cbiAgICAgKiBAcGFyYW0gdXJsIFRoZSByZWRpcmVjdCBVUkwgdG8gZW5jb2RlLlxuICAgICAqIEByZXR1cm5zIFRoZSBlbmNvZGVkIHJlZGlyZWN0IFVSTCBzdHJpbmcuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBlbmNvZGVSZWRpcmVjdFVSTCh1cmw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBIdHRwUmVzcG9uc2VGYWNhZGUuZW5jb2RlUmVkaXJlY3RVUkwodXJsKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBjdXJyZW50IGBDb250ZW50LVR5cGVgIGhlYWRlciB2YWx1ZS5cbiAgICAgKiBAcmV0dXJucyBUaGUgY29udGVudCB0eXBlIHN0cmluZy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldENvbnRlbnRUeXBlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBIdHRwUmVzcG9uc2VGYWNhZGUuZ2V0Q29udGVudFR5cGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZW5kcyBhbiBIVFRQIGVycm9yIHJlc3BvbnNlIHRvIHRoZSBjbGllbnQgd2l0aCB0aGUgc3BlY2lmaWVkIHN0YXR1cyBjb2RlIGFuZCBvcHRpb25hbCBtZXNzYWdlLlxuICAgICAqIFRoaXMgYnlwYXNzZXMgdGhlIG5vcm1hbCByZXNwb25zZSBib2R5IHdyaXRpbmcgcHJvY2Vzcy5cbiAgICAgKiBAcGFyYW0gc3RhdHVzIFRoZSBIVFRQIHN0YXR1cyBjb2RlIChlLmcuLCA0MDQsIDUwMCkuXG4gICAgICogQHBhcmFtIG1lc3NhZ2UgQW4gb3B0aW9uYWwgbWVzc2FnZSB0byBpbmNsdWRlIGluIHRoZSBlcnJvciByZXNwb25zZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHNlbmRFcnJvcihzdGF0dXM6IG51bWJlciwgbWVzc2FnZT86IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBIdHRwUmVzcG9uc2VGYWNhZGUuc2VuZEVycm9yKHN0YXR1cywgbWVzc2FnZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgY2hhcmFjdGVyIGVuY29kaW5nIHRvIGJlIHVzZWQgZm9yIHRoZSByZXNwb25zZSBib2R5IChlLmcuLCAnVVRGLTgnKS5cbiAgICAgKiBAcGFyYW0gY2hhcnNldCBUaGUgY2hhcmFjdGVyIHNldCBzdHJpbmcuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBzZXRDaGFyYWN0ZXJFbmNvZGluZyhjaGFyc2V0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgSHR0cFJlc3BvbnNlRmFjYWRlLnNldENoYXJhY3RlckVuY29kaW5nKGNoYXJzZXQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNlbmRzIGEgcmVkaXJlY3QgcmVzcG9uc2UgKHN0YXR1cyBjb2RlIDMwMiBieSBkZWZhdWx0KSB0byB0aGUgY2xpZW50LlxuICAgICAqIEBwYXJhbSBsb2NhdGlvbiBUaGUgbmV3IFVSTCB0byByZWRpcmVjdCB0aGUgY2xpZW50IHRvLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgc2VuZFJlZGlyZWN0KGxvY2F0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgSHR0cFJlc3BvbnNlRmFjYWRlLnNlbmRSZWRpcmVjdChsb2NhdGlvbik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgYENvbnRlbnQtTGVuZ3RoYCBoZWFkZXIgZm9yIHRoZSByZXNwb25zZS5cbiAgICAgKiBAcGFyYW0gbGVuZ3RoIFRoZSBzaXplIG9mIHRoZSByZXNwb25zZSBib2R5IGluIGJ5dGVzLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgc2V0Q29udGVudExlbmd0aChsZW5ndGg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBIdHRwUmVzcG9uc2VGYWNhZGUuc2V0Q29udGVudExlbmd0aChsZW5ndGgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgYSByZXNwb25zZSBoZWFkZXIgd2l0aCB0aGUgZ2l2ZW4gbmFtZSBhbmQgdmFsdWUuIElmIHRoZSBoZWFkZXIgYWxyZWFkeSBleGlzdHMsIGl0cyB2YWx1ZSBpcyBvdmVyd3JpdHRlbi5cbiAgICAgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgaGVhZGVyLlxuICAgICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgb2YgdGhlIGhlYWRlci5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHNldEhlYWRlcihuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgSHR0cFJlc3BvbnNlRmFjYWRlLnNldEhlYWRlcihuYW1lLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkcyBhIHJlc3BvbnNlIGhlYWRlciB3aXRoIHRoZSBnaXZlbiBuYW1lIGFuZCB2YWx1ZS4gSWYgdGhlIGhlYWRlciBhbHJlYWR5IGV4aXN0cywgYSBzZWNvbmQgaGVhZGVyIHdpdGggdGhlIHNhbWUgbmFtZSBpcyBhZGRlZC5cbiAgICAgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgaGVhZGVyLlxuICAgICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgb2YgdGhlIGhlYWRlci5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGFkZEhlYWRlcihuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgSHR0cFJlc3BvbnNlRmFjYWRlLmFkZEhlYWRlcihuYW1lLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgSFRUUCBzdGF0dXMgY29kZSBmb3IgdGhlIHJlc3BvbnNlLlxuICAgICAqIEBwYXJhbSBzdGF0dXMgVGhlIGludGVnZXIgc3RhdHVzIGNvZGUgKGUuZy4sIDIwMCwgNDA0KS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHNldFN0YXR1cyhzdGF0dXM6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBIdHRwUmVzcG9uc2VGYWNhZGUuc2V0U3RhdHVzKHN0YXR1cyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2xlYXJzIGFsbCBidWZmZXJzLCBzdGF0dXMgY29kZSwgYW5kIGhlYWRlcnMgZnJvbSB0aGUgcmVzcG9uc2UsIGFsbG93aW5nIGEgbmV3IHJlc3BvbnNlIHRvIGJlIGdlbmVyYXRlZC5cbiAgICAgKiBUaGlzIGlzIG9ubHkgcG9zc2libGUgaWYgdGhlIHJlc3BvbnNlIGhhcyBub3QgeWV0IGJlZW4gY29tbWl0dGVkLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgcmVzZXQoKTogdm9pZCB7XG4gICAgICAgIEh0dHBSZXNwb25zZUZhY2FkZS5yZXNldCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIHZhbHVlIG9mIGEgc3BlY2lmaWMgaGVhZGVyLiBJZiBtdWx0aXBsZSBoZWFkZXJzIHdpdGggdGhlIHNhbWUgbmFtZSBleGlzdCwgaXQgcmV0dXJucyB0aGUgZmlyc3Qgb25lLlxuICAgICAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBoZWFkZXIuXG4gICAgICogQHJldHVybnMgVGhlIGhlYWRlciB2YWx1ZSBzdHJpbmcuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRIZWFkZXIobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEh0dHBSZXNwb25zZUZhY2FkZS5nZXRIZWFkZXIobmFtZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgbG9jYWxlIGZvciB0aGUgcmVzcG9uc2UsIHdoaWNoIG1heSBhZmZlY3QgbGFuZ3VhZ2UgYW5kIGRhdGUvdGltZSBmb3JtYXR0aW5nLlxuICAgICAqIEBwYXJhbSBsYW5ndWFnZSBUaGUgbGFuZ3VhZ2UgY29kZSAoZS5nLiwgJ2VuJywgJ2ZyJykuXG4gICAgICogQHBhcmFtIGNvdW50cnkgVGhlIG9wdGlvbmFsIGNvdW50cnkgY29kZSAoZS5nLiwgJ1VTJywgJ0dCJykuXG4gICAgICogQHBhcmFtIHZhcmlhbnQgVGhlIG9wdGlvbmFsIHZhcmlhbnQgY29kZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHNldExvY2FsZShsYW5ndWFnZTogc3RyaW5nLCBjb3VudHJ5Pzogc3RyaW5nLCB2YXJpYW50Pzogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHJldHVybiBIdHRwUmVzcG9uc2VGYWNhZGUuc2V0TG9jYWxlKGxhbmd1YWdlLCBjb3VudHJ5LCB2YXJpYW50KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGFsbCBoZWFkZXIgdmFsdWVzIGZvciBhIHNwZWNpZmljIGhlYWRlciBuYW1lIGFzIGFuIGFycmF5IG9mIHN0cmluZ3MuXG4gICAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIGhlYWRlci5cbiAgICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBoZWFkZXIgdmFsdWVzLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0SGVhZGVycyhuYW1lOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKEh0dHBSZXNwb25zZUZhY2FkZS5nZXRIZWFkZXJzKG5hbWUpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBuYW1lcyBvZiBhbGwgaGVhZGVycyB0aGF0IGhhdmUgYmVlbiBzZXQgb24gdGhlIHJlc3BvbnNlLlxuICAgICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIGhlYWRlciBuYW1lcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldEhlYWRlck5hbWVzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoSHR0cFJlc3BvbnNlRmFjYWRlLmdldEhlYWRlck5hbWVzKCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGN1cnJlbnRseSBzZXQgbG9jYWxlIHN0cmluZyBmb3IgdGhlIHJlc3BvbnNlLlxuICAgICAqIEByZXR1cm5zIFRoZSBsb2NhbGUgc3RyaW5nLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0TG9jYWxlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBIdHRwUmVzcG9uc2VGYWNhZGUuZ2V0TG9jYWxlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgdW5kZXJseWluZyBvdXRwdXQgc3RyZWFtIG9iamVjdCwgd3JhcHBlZCBpbiB0aGUgU0RLJ3MgYE91dHB1dFN0cmVhbWAgY2xhc3MuXG4gICAgICogVGhpcyBpcyB1c2VmdWwgZm9yIHdyaXRpbmcgcmF3IG9yIGxhcmdlIGFtb3VudHMgb2YgZGF0YS5cbiAgICAgKiBAcmV0dXJucyBUaGUgb3V0cHV0IHN0cmVhbSBvYmplY3QuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRPdXRwdXRTdHJlYW0oKTogT3V0cHV0U3RyZWFtIHtcbiAgICAgICAgcmV0dXJuIG5ldyBPdXRwdXRTdHJlYW0oSHR0cFJlc3BvbnNlRmFjYWRlLmdldE91dHB1dFN0cmVhbSgpKTtcbiAgICB9XG59XG5cbi8vIEB0cy1pZ25vcmVcbmlmICh0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJykge1xuXHQvLyBAdHMtaWdub3JlXG5cdG1vZHVsZS5leHBvcnRzID0gUmVzcG9uc2U7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiQUEyQ0EsU0FBUyxvQkFBb0I7QUFFN0IsTUFBTSxxQkFBcUIsS0FBSyxLQUFLLDhEQUE4RDtBQUNuRyxNQUFNLHFCQUFxQixLQUFLLEtBQUss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
|
|
@@ -288,4 +288,4 @@ export {
|
|
|
288
288
|
HttpController,
|
|
289
289
|
service
|
|
290
290
|
};
|
|
291
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2h0dHAvcnMvcmVzb3VyY2UtaHR0cC1jb250cm9sbGVyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgeyBSZXNwb25zZSBhcyByZXNwb25zZSB9IGZyb20gXCIuLi9yZXNwb25zZVwiO1xuaW1wb3J0IHsgUmVxdWVzdCBhcyByZXF1ZXN0IH0gZnJvbSBcIi4uL3JlcXVlc3RcIjtcbmltcG9ydCB7IFJlc291cmNlTWFwcGluZ3MgfSBmcm9tIFwiLi9yZXNvdXJjZS1tYXBwaW5nc1wiO1xuaW1wb3J0IHsgTG9nZ2luZyB9IGZyb20gXCJAYWVyb2tpdC9zZGsvbG9nXCI7XG5cbi8vIERlY2xhcmF0aW9uIGZvciB0aGUgZXh0ZXJuYWwgZGlyaWdpYmxlUmVxdWlyZSBmdW5jdGlvbiBhbmQgaXRzIGRlcGVuZGVuY3lcbmRlY2xhcmUgZnVuY3Rpb24gZGlyaWdpYmxlUmVxdWlyZShtb2R1bGU6IHN0cmluZyk6IGFueTtcbmNvbnN0IHsgbWF0Y2ggfSA9IGRpcmlnaWJsZVJlcXVpcmUoXCJtb2R1bGVzL3NyYy9odHRwL3BhdGgtdG8tcmVnZXhwLzYuMi4xL2luZGV4LmpzXCIpO1xuXG5jb25zdCBsb2dnZXI6IGFueSA9IExvZ2dpbmcuZ2V0TG9nZ2VyKCdodHRwLnJzLmNvbnRyb2xsZXInKTtcblxuLyoqXG4gKiBJbnRlcmZhY2UgZm9yIHRoZSBjb250ZXh0IG9iamVjdCBwYXNzZWQgdG8gaGFuZGxlciBmdW5jdGlvbnMgKGJlZm9yZSwgc2VydmUsIGNhdGNoKS5cbiAqL1xuaW50ZXJmYWNlIFJlcXVlc3RDb250ZXh0IHtcbiAgICBwYXRoUGFyYW1ldGVyczogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbiAgICBxdWVyeVBhcmFtZXRlcnM6IHsgW2tleTogc3RyaW5nXTogYW55IH07XG4gICAgcmVzcG9uc2U6IGFueTtcbiAgICByZXM6IGFueTtcbiAgICByZXF1ZXN0OiBhbnk7XG4gICAgcmVxOiBhbnk7XG4gICAgLy8gQ29udGV4dCBwcm9wZXJ0aWVzIGZvciBlcnJvciBoYW5kbGluZyBtaWdodCBhbHNvIGJlIGF0dGFjaGVkIGhlcmVcbiAgICBzdXBwcmVzc1N0YWNrPzogYm9vbGVhbjtcbiAgICBodHRwRXJyb3JDb2RlPzogbnVtYmVyO1xuICAgIGVycm9yTWVzc2FnZT86IHN0cmluZztcbiAgICBlcnJvck5hbWU/OiBzdHJpbmc7XG4gICAgZXJyb3JDb2RlPzogYW55O1xufVxuXG5mdW5jdGlvbiBnZXRSZXF1ZXN0KCk6IGFueSB7XG4gICAgcmV0dXJuIHJlcXVlc3Q7XG59XG5mdW5jdGlvbiBnZXRSZXNwb25zZSgpOiBhbnkge1xuICAgIHJldHVybiByZXNwb25zZTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgc2VydmljZSAoSHR0cENvbnRyb2xsZXIpIGluc3RhbmNlLCBvcHRpb25hbGx5IGluaXRpYWxpemVkIHdpdGggb01hcHBpbmdzLlxuICpcbiAqIEBwYXJhbSBvQ29uZmlnIENvbmZpZ3VyYXRpb24gb2JqZWN0IG9yIGNvbmZpZ3VyYXRpb24gYnVpbGRlciB3aXRoIGNvbmZpZ3VyYXRpb24oKSBnZXR0ZXIgZnVuY3Rpb24uXG4gKiBAcmV0dXJucyBBIG5ldyBIdHRwQ29udHJvbGxlciBpbnN0YW5jZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNlcnZpY2Uob0NvbmZpZz86IGFueSk6IEh0dHBDb250cm9sbGVyIHtcbiAgICBsZXQgY29uZmlnOiBSZXNvdXJjZU1hcHBpbmdzIHwgYW55O1xuICAgIGlmIChvQ29uZmlnICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBvQ29uZmlnID09PSAnb2JqZWN0JyB8fCBvQ29uZmlnIGluc3RhbmNlb2YgUmVzb3VyY2VNYXBwaW5ncykge1xuICAgICAgICAgICAgY29uZmlnID0gb0NvbmZpZztcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV3IEh0dHBDb250cm9sbGVyKGNvbmZpZyk7XG59XG5cbi8qKlxuICogVGhlIG1haW4gY2xhc3MgZm9yIGhhbmRsaW5nIEhUVFAgcmVxdWVzdHMgYW5kIHJvdXRpbmcgdGhlbSB0byB0aGUgY29ycmVjdCByZXNvdXJjZSBoYW5kbGVycy5cbiAqL1xuZXhwb3J0IGNsYXNzIEh0dHBDb250cm9sbGVyIHtcblxuICAgIHJlc291cmNlOiBGdW5jdGlvbjtcbiAgICByZXNvdXJjZVBhdGg6IEZ1bmN0aW9uO1xuICAgIHJlc291cmNlTWFwcGluZ3M6IFJlc291cmNlTWFwcGluZ3M7XG5cbiAgICAvLyBJbmRleCBzaWduYXR1cmUgdG8gYWxsb3cgZHluYW1pYyBtZXRob2QgYXNzaWdubWVudCBpbiB0aGUgY29uc3RydWN0b3JcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG5cbiAgICAvKipcbiAgICAgKiBDb25zdHJ1Y3RvciBmdW5jdGlvbiBmb3IgSHR0cENvbnRyb2xsZXIgaW5zdGFuY2VzLlxuICAgICAqXG4gICAgICogQHBhcmFtIG9NYXBwaW5ncyBUaGUgbWFwcGluZ3MgY29uZmlndXJhdGlvbiBmb3IgdGhpcyBjb250cm9sbGVyLlxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKG9NYXBwaW5ncz86IFJlc291cmNlTWFwcGluZ3MgfCBhbnkpIHtcbiAgICAgICAgaWYgKG9NYXBwaW5ncyBpbnN0YW5jZW9mIFJlc291cmNlTWFwcGluZ3MpIHtcbiAgICAgICAgICAgIHRoaXMucmVzb3VyY2VNYXBwaW5ncyA9IG9NYXBwaW5ncztcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygb01hcHBpbmdzID09PSAnb2JqZWN0JyB8fCBvTWFwcGluZ3MgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5yZXNvdXJjZU1hcHBpbmdzID0gbmV3IFJlc291cmNlTWFwcGluZ3Mob01hcHBpbmdzLCB0aGlzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIERlZmF1bHQgaW5pdGlhbGl6YXRpb24gaWYgaW5wdXQgaXMgdW5leHBlY3RlZFxuICAgICAgICAgICAgdGhpcy5yZXNvdXJjZU1hcHBpbmdzID0gbmV3IFJlc291cmNlTWFwcGluZ3Moe30sIHRoaXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQWxpYXMgZm9yIHJlc291cmNlTWFwcGluZ3MucmVzb3VyY2VcbiAgICAgICAgdGhpcy5yZXNvdXJjZSA9IHRoaXMucmVzb3VyY2VQYXRoID0gdGhpcy5yZXNvdXJjZU1hcHBpbmdzLnJlc291cmNlUGF0aC5iaW5kKHRoaXMucmVzb3VyY2VNYXBwaW5ncyk7XG5cbiAgICAgICAgLy8gd2VhdmUtaW4gSFRUUCBtZXRob2QtYmFzZWQgZmFjdG9yeSBmdW5jdGlvbnMgLSBzaG9ydGN1dCBmb3Igc2VydmljZSgpLnJlc291cmNlKHNQYXRoKS5tZXRob2RcbiAgICAgICAgWydnZXQnLCAncG9zdCcsICdwdXQnLCAnZGVsZXRlJywgJ3JlbW92ZScsICdtZXRob2QnXS5mb3JFYWNoKChzTWV0aG9kTmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICB0aGlzW3NNZXRob2ROYW1lXSA9ICguLi5hbGxBcmd1bWVudHM6IGFueVtdKTogSHR0cENvbnRyb2xsZXIgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChhbGxBcmd1bWVudHMubGVuZ3RoIDwgMSlcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoJ0luc3VmZmljaWVudCBhcmd1bWVudHMgcHJvdmlkZWQgdG8gSHR0cENvbnRyb2xsZXIgbWV0aG9kICcgKyBzTWV0aG9kTmFtZSArICcuJyk7XG5cbiAgICAgICAgICAgICAgICAvLyBzUGF0aCBpcyBhbHdheXMgdGhlIGZpcnN0IGFyZ3VtZW50XG4gICAgICAgICAgICAgICAgbGV0IHNQYXRoID0gYWxsQXJndW1lbnRzWzBdO1xuICAgICAgICAgICAgICAgIGlmIChzUGF0aCA9PT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgICAgICAgICBzUGF0aCA9IFwiXCI7XG5cbiAgICAgICAgICAgICAgICAvLyBUaGUgbmV4dCBhcmd1bWVudHMgKHNWZXJiLCBhcnJDb25zdW1lcywgYXJyUHJvZHVjZXMpIGFyZSB1c2VkIGJ5IFJlc291cmNlTWFwcGluZ3MuZmluZC9yZXNvdXJjZVxuICAgICAgICAgICAgICAgIGNvbnN0IHNWZXJiID0gYWxsQXJndW1lbnRzWzFdO1xuICAgICAgICAgICAgICAgIGNvbnN0IGFyckNvbnN1bWVzID0gYWxsQXJndW1lbnRzWzJdO1xuICAgICAgICAgICAgICAgIGNvbnN0IGFyclByb2R1Y2VzID0gYWxsQXJndW1lbnRzWzNdO1xuXG4gICAgICAgICAgICAgICAgLy8gRmluZCBleGlzdGluZyByZXNvdXJjZSBvciBjcmVhdGUgYSBuZXcgb25lIGJhc2VkIG9uIHRoZSBwYXRoIChhbmQgb3RoZXIgb3B0aW9uYWwgY29uc3RyYWludHMpXG4gICAgICAgICAgICAgICAgY29uc3QgcmVzb3VyY2U6IGFueSA9IHRoaXMucmVzb3VyY2VNYXBwaW5ncy5maW5kKHNQYXRoLCBzVmVyYiwgYXJyQ29uc3VtZXMsIGFyclByb2R1Y2VzKSB8fCB0aGlzLnJlc291cmNlTWFwcGluZ3MucmVzb3VyY2Uoc1BhdGgpO1xuXG4gICAgICAgICAgICAgICAgLy8gUGFzcyBhbGwgYXJndW1lbnRzICpleGNlcHQqIHRoZSBzUGF0aCB0byB0aGUgY29ycmVzcG9uZGluZyBtZXRob2Qgb2YgdGhlIHJlc291cmNlXG4gICAgICAgICAgICAgICAgY29uc3QgcmVzb3VyY2VNZXRob2RBcmdzID0gYWxsQXJndW1lbnRzLnNsaWNlKDEpO1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIC8vIEV4ZWN1dGUgdGhlIG1ldGhvZCBvbiB0aGUgcmVzb3VyY2UgaW5zdGFuY2VcbiAgICAgICAgICAgICAgICByZXNvdXJjZVtzTWV0aG9kTmFtZV0uYXBwbHkocmVzb3VyY2UsIHJlc291cmNlTWV0aG9kQXJncyk7XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBbGlhcyBmb3IgZXhlY3V0ZS5cbiAgICAgKi9cbiAgICBsaXN0ZW4ocmVxdWVzdDogYW55LCByZXNwb25zZTogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuZXhlY3V0ZShyZXF1ZXN0LCByZXNwb25zZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRXhlY3V0ZXMgdGhlIHJlcXVlc3QgaGFuZGxpbmcgbG9naWMsIGZpbmRpbmcgdGhlIGJlc3QgbWF0Y2hpbmcgcmVzb3VyY2UgYW5kIGhhbmRsZXIuXG4gICAgICovXG4gICAgZXhlY3V0ZShyZXF1ZXN0PzogYW55LCByZXNwb25zZT86IGFueSk6IHZvaWQge1xuICAgICAgICByZXF1ZXN0ID0gcmVxdWVzdCB8fCBnZXRSZXF1ZXN0KCk7XG4gICAgICAgIGNvbnN0IHJlcXVlc3RQYXRoOiBzdHJpbmcgPSByZXF1ZXN0LmdldFJlc291cmNlUGF0aCgpO1xuICAgICAgICBjb25zdCBtZXRob2Q6IHN0cmluZyA9IHJlcXVlc3QuZ2V0TWV0aG9kKCkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgY29uc3QgX29Db25maWd1cmF0aW9uOiBhbnkgPSB0aGlzLnJlc291cmNlTWFwcGluZ3MuY29uZmlndXJhdGlvbigpO1xuXG4gICAgICAgIGNvbnN0IG1hdGNoZXM6IGFueVtdID0gbWF0Y2hSZXF1ZXN0VXJsKHJlcXVlc3RQYXRoLCBtZXRob2QsIF9vQ29uZmlndXJhdGlvbik7XG4gICAgICAgIGxldCByZXNvdXJjZUhhbmRsZXI6IGFueTtcblxuICAgICAgICBpZiAobWF0Y2hlcyAmJiBtYXRjaGVzWzBdKSB7XG4gICAgICAgICAgICBjb25zdCB2ZXJiSGFuZGxlcnM6IGFueVtdID0gX29Db25maWd1cmF0aW9uW21hdGNoZXNbMF0uZF1bbWV0aG9kXTtcbiAgICAgICAgICAgIGlmICh2ZXJiSGFuZGxlcnMpIHtcbiAgICAgICAgICAgICAgICByZXNvdXJjZUhhbmRsZXIgPSB2ZXJiSGFuZGxlcnMuZmlsdGVyKChoYW5kbGVyRGVmKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBtYXRjaE1lZGlhVHlwZShyZXF1ZXN0LCBoYW5kbGVyRGVmLnByb2R1Y2VzLCBoYW5kbGVyRGVmLmNvbnN1bWVzKTtcbiAgICAgICAgICAgICAgICB9KVswXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJlc3BvbnNlID0gcmVzcG9uc2UgfHwgZ2V0UmVzcG9uc2UoKTtcbiAgICAgICAgY29uc3QgcXVlcnlQYXJhbXM6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSByZXF1ZXN0LmdldFF1ZXJ5UGFyYW1ldGVyc01hcCgpIHx8IHt9O1xuICAgICAgICBjb25zdCBhY2NlcHRzSGVhZGVyOiBzdHJpbmdbXSA9IG5vcm1hbGl6ZU1lZGlhVHlwZUhlYWRlclZhbHVlKHJlcXVlc3QuZ2V0SGVhZGVyKCdBY2NlcHQnKSkgfHwgW107XG4gICAgICAgIGNvbnN0IGNvbnRlbnRUeXBlSGVhZGVyOiBzdHJpbmdbXSA9IG5vcm1hbGl6ZU1lZGlhVHlwZUhlYWRlclZhbHVlKHJlcXVlc3QuZ2V0SGVhZGVyKCdDb250ZW50LVR5cGUnKSkgfHwgW107XG4gICAgICAgIGNvbnN0IHJlc291cmNlUGF0aDogc3RyaW5nID0gcmVxdWVzdFBhdGg7XG5cbiAgICAgICAgaWYgKHJlc291cmNlSGFuZGxlcikge1xuICAgICAgICAgICAgY29uc3QgY3R4OiBSZXF1ZXN0Q29udGV4dCA9IHtcbiAgICAgICAgICAgICAgICBcInBhdGhQYXJhbWV0ZXJzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwicXVlcnlQYXJhbWV0ZXJzXCI6IHt9LFxuICAgICAgICAgICAgICAgIFwicmVzcG9uc2VcIjogcmVzcG9uc2UsXG4gICAgICAgICAgICAgICAgXCJyZXNcIjogcmVzcG9uc2UsXG4gICAgICAgICAgICAgICAgXCJyZXF1ZXN0XCI6IHJlcXVlc3QsXG4gICAgICAgICAgICAgICAgXCJyZXFcIjogcmVxdWVzdFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmIChtYXRjaGVzWzBdLnBhdGhQYXJhbXMpIHtcbiAgICAgICAgICAgICAgICBjdHgucGF0aFBhcmFtZXRlcnMgPSBtYXRjaGVzWzBdLnBhdGhQYXJhbXM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjdHgucXVlcnlQYXJhbWV0ZXJzID0gcXVlcnlQYXJhbXM7XG5cbiAgICAgICAgICAgIGNvbnN0IG5vb3AgPSBmdW5jdGlvbiAoKSB7IH07XG4gICAgICAgICAgICBsZXQgX2JlZm9yZTogRnVuY3Rpb24sIF9zZXJ2ZTogRnVuY3Rpb24sIF9jYXRjaDogRnVuY3Rpb24sIF9maW5hbGx5OiBGdW5jdGlvbjtcbiAgICAgICAgICAgIF9iZWZvcmUgPSByZXNvdXJjZUhhbmRsZXIuYmVmb3JlIHx8IG5vb3A7XG4gICAgICAgICAgICBfc2VydmUgPSByZXNvdXJjZUhhbmRsZXIuaGFuZGxlciB8fCByZXNvdXJjZUhhbmRsZXIuc2VydmUgfHwgbm9vcDtcbiAgICAgICAgICAgIF9jYXRjaCA9IHJlc291cmNlSGFuZGxlci5jYXRjaCB8fCBjYXRjaEVycm9ySGFuZGxlci5iaW5kKHRoaXMsIHtcbiAgICAgICAgICAgICAgICBwYXRoOiByZXNvdXJjZVBhdGgsXG4gICAgICAgICAgICAgICAgbWV0aG9kOiBtZXRob2QudG9VcHBlckNhc2UoKSxcbiAgICAgICAgICAgICAgICBjb250ZW50VHlwZTogY29udGVudFR5cGVIZWFkZXIuam9pbignLCcpLFxuICAgICAgICAgICAgICAgIGFjY2VwdHM6IGFjY2VwdHNIZWFkZXIuam9pbignLCcpXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIF9maW5hbGx5ID0gcmVzb3VyY2VIYW5kbGVyLmZpbmFsbHkgfHwgbm9vcDtcblxuICAgICAgICAgICAgY29uc3QgY2FsbGJhY2tBcmdzOiBhbnlbXSA9IFtjdHgsIHJlcXVlc3QsIHJlc3BvbnNlLCByZXNvdXJjZUhhbmRsZXIsIHRoaXNdO1xuXG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxvZ2dlci50cmFjZSgnQmVmb3JlIHNlcnZpbmcgcmVxdWVzdCBmb3IgUmVzb3VyY2Vbe31dLCBNZXRob2Rbe31dLCBDb250ZW50LVR5cGVbe31dLCBBY2NlcHRbe31dJywgcmVzb3VyY2VQYXRoLCBtZXRob2QudG9VcHBlckNhc2UoKSwgY29udGVudFR5cGVIZWFkZXIsIGFjY2VwdHNIZWFkZXIpO1xuICAgICAgICAgICAgICAgIF9iZWZvcmUuYXBwbHkodGhpcywgY2FsbGJhY2tBcmdzKTtcblxuICAgICAgICAgICAgICAgIGlmICghcmVzcG9uc2UuaXNDb21taXR0ZWQoKSkge1xuICAgICAgICAgICAgICAgICAgICBsb2dnZXIudHJhY2UoJ1NlcnZpbmcgcmVxdWVzdCBmb3IgUmVzb3VyY2Vbe31dLCBNZXRob2Rbe31dLCBDb250ZW50LVR5cGVbe31dLCBBY2NlcHRbe31dJywgcmVzb3VyY2VQYXRoLCBtZXRob2QudG9VcHBlckNhc2UoKSwgY29udGVudFR5cGVIZWFkZXIsIGFjY2VwdHNIZWFkZXIpO1xuICAgICAgICAgICAgICAgICAgICBfc2VydmUuYXBwbHkodGhpcywgY2FsbGJhY2tBcmdzKTtcbiAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLnRyYWNlKCdTZXJ2aW5nIHJlcXVlc3QgZm9yIFJlc291cmNlW3t9XSwgTWV0aG9kW3t9XSwgQ29udGVudC1UeXBlW3t9XSwgQWNjZXB0W3t9XSBmaW5pc2hlZCcsIHJlc291cmNlUGF0aCwgbWV0aG9kLnRvVXBwZXJDYXNlKCksIGNvbnRlbnRUeXBlSGVhZGVyLCBhY2NlcHRzSGVhZGVyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrQXJncy5zcGxpY2UoMSwgMCwgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgX2NhdGNoLmFwcGx5KHRoaXMsIGNhbGxiYWNrQXJncyk7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoX2NhdGNoRXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIGxvZ2dlci5lcnJvcignU2VydmluZyByZXF1ZXN0IGZvciBSZXNvdXJjZVt7fV0sIE1ldGhvZFt7fV0sIENvbnRlbnQtVHlwZVt7fV0sIEFjY2VwdFt7fV0gZXJyb3IgaGFuZGxlciB0aHJldyBlcnJvcicsIF9jYXRjaEVycik7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IF9jYXRjaEVycjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgICAgIEh0dHBDb250cm9sbGVyLnByb3RvdHlwZS5jbG9zZVJlc3BvbnNlLmNhbGwodGhpcyk7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgX2ZpbmFsbHkuYXBwbHkodGhpcywgW10pO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKF9maW5hbGx5RXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIGxvZ2dlci5lcnJvcignU2VydmluZyByZXF1ZXN0IGZvciBSZXNvdXJjZVt7fV0sIE1ldGhvZFt7fV0sIENvbnRlbnQtVHlwZVt7fV0sIEFjY2VwdFt7fV0gcG9zdCBoYW5kbGVyIHRocmV3IGVycm9yJywgX2ZpbmFsbHlFcnIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxvZ2dlci5lcnJvcignTm8gc3VpdGFibGUgcmVzb3VyY2UgaGFuZGxlciBmb3IgUmVzb3VyY2Vbe31dLCBNZXRob2Rbe31dLCBDb250ZW50LVR5cGVbe31dLCBBY2NlcHRbe31dIGZvdW5kJywgcmVzb3VyY2VQYXRoLCBtZXRob2QudG9VcHBlckNhc2UoKSwgY29udGVudFR5cGVIZWFkZXIsIGFjY2VwdHNIZWFkZXIpO1xuXHRcdFx0bG9nZ2VyLmVycm9yKCdSZWdpc3RlcmVkIHJlc291cmNlIGhhbmRsZXJzIGZvciBSZXNvdXJjZVt7fV0gYXJlIFt7fV0nLCByZXNvdXJjZVBhdGgsIEpTT04uc3RyaW5naWZ5KF9vQ29uZmlndXJhdGlvbikpO1xuICAgICAgICAgICAgdGhpcy5zZW5kRXJyb3IocmVzcG9uc2UuQkFEX1JFUVVFU1QsIHVuZGVmaW5lZCwgJ0JhZCBSZXF1ZXN0JywgJ05vIHN1aXRhYmxlIHByb2Nlc3NvciBmb3IgdGhpcyByZXF1ZXN0LicpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgUmVzb3VyY2VNYXBwaW5ncyBpbnN0YW5jZSBvZiB0aGlzIGNvbnRyb2xsZXIuXG4gICAgICovXG4gICAgbWFwcGluZ3MoKTogUmVzb3VyY2VNYXBwaW5ncyB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlc291cmNlTWFwcGluZ3M7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFNlbmRzIGFuIGVycm9yIHJlc3BvbnNlIHRvIHRoZSBjbGllbnQsIGZvcm1hdHRlZCBiYXNlZCBvbiB0aGUgYWNjZXB0ZWQgbWVkaWEgdHlwZS5cbiAgICAgKi9cbiAgICBzZW5kRXJyb3IoaHR0cEVycm9yQ29kZTogbnVtYmVyLCBhcHBsaWNhdGlvbkVycm9yQ29kZTogYW55LCBlcnJvck5hbWU6IHN0cmluZywgZXJyb3JEZXRhaWxzOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY2xpZW50QWNjZXB0TWVkaWFUeXBlczogc3RyaW5nW10gPSBub3JtYWxpemVNZWRpYVR5cGVIZWFkZXJWYWx1ZShyZXF1ZXN0LmdldEhlYWRlcignQWNjZXB0JykpIHx8IFsnYXBwbGljYXRpb24vanNvbiddO1xuICAgICAgICBjb25zdCBpc0h0bWw6IGJvb2xlYW4gPSBjbGllbnRBY2NlcHRNZWRpYVR5cGVzLnNvbWUoKGFjY2VwdE1lZGlhVHlwZSkgPT4gaXNNaW1lVHlwZUNvbXBhdGlibGUoJyovaHRtbCcsIGFjY2VwdE1lZGlhVHlwZSkpO1xuXG4gICAgICAgIHJlc3BvbnNlLnNldFN0YXR1cyhodHRwRXJyb3JDb2RlIHx8IHJlc3BvbnNlLklOVEVSTkFMX1NFUlZFUl9FUlJPUik7XG5cbiAgICAgICAgaWYgKGlzSHRtbCkge1xuICAgICAgICAgICAgY29uc3QgbWVzc2FnZTogc3RyaW5nID0gZXJyb3JOYW1lICsgKGFwcGxpY2F0aW9uRXJyb3JDb2RlICE9PSB1bmRlZmluZWQgPyAnWycgKyBhcHBsaWNhdGlvbkVycm9yQ29kZSArICddJyA6ICcnKSArIChlcnJvckRldGFpbHMgPyAnOiAnICsgZXJyb3JEZXRhaWxzIDogJycpO1xuICAgICAgICAgICAgcmVzcG9uc2Uuc2VuZEVycm9yKGh0dHBFcnJvckNvZGUgfHwgcmVzcG9uc2UuSU5URVJOQUxfU0VSVkVSX0VSUk9SLCBtZXNzYWdlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGJvZHkgPSB7XG4gICAgICAgICAgICAgICAgXCJjb2RlXCI6IGFwcGxpY2F0aW9uRXJyb3JDb2RlLFxuICAgICAgICAgICAgICAgIFwiZXJyb3JcIjogZXJyb3JOYW1lLFxuICAgICAgICAgICAgICAgIFwiZGV0YWlsc1wiOiBlcnJvckRldGFpbHNcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICByZXNwb25zZS5zZXRIZWFkZXIoXCJDb250ZW50LVR5cGVcIiwgXCJhcHBsaWNhdGlvbi9qc29uXCIpO1xuICAgICAgICAgICAgcmVzcG9uc2UucHJpbnQoSlNPTi5zdHJpbmdpZnkoYm9keSwgbnVsbCwgMikpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2xvc2VSZXNwb25zZSgpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBGbHVzaGVzIGFuZCBjbG9zZXMgdGhlIEhUVFAgcmVzcG9uc2Ugc3RyZWFtLlxuICAgICAqL1xuICAgIGNsb3NlUmVzcG9uc2UoKTogdm9pZCB7XG4gICAgICAgIHJlc3BvbnNlLmZsdXNoKCk7XG4gICAgICAgIHJlc3BvbnNlLmNsb3NlKCk7XG4gICAgfTtcbn1cblxuLyoqXG4gKiBDdXN0b20gc29ydCBmdW5jdGlvbiBmb3IgbWF0Y2hlZCByb3V0ZSBkZWZpbml0aW9ucywgcHJlZmVycmluZyBleGFjdCBtYXRjaGVzIG92ZXIgdGhvc2Ugd2l0aCBwbGFjZWhvbGRlcnMuXG4gKi9cbmZ1bmN0aW9uIG1hdGNoZWRSb3V0ZURlZmluaXRpb25zU29ydGVyKHA6IGFueSwgbjogYW55KTogbnVtYmVyIHtcbiAgICBwLncgPSBjYWxjdWxhdGVNYXRjaGVkUm91dGVXZWlnaHQocCk7XG4gICAgbi53ID0gY2FsY3VsYXRlTWF0Y2hlZFJvdXRlV2VpZ2h0KG4pO1xuXG4gICAgaWYgKG4udyA9PT0gcC53KSB7XG4gICAgICAgIC8vIFRoZSBvbmUgd2l0aCBsZXNzIHBsYWNlaG9sZGVycyB3aW5zXG4gICAgICAgIGNvbnN0IG0xID0gcC5kLm1hdGNoKC97KC4qPyl9L2cpO1xuICAgICAgICBjb25zdCBwbGFjZWhvbGRlcnNDb3VudDEgPSBtMSAhPT0gbnVsbCA/IG0xLmxlbmd0aCA6IDA7XG4gICAgICAgIGNvbnN0IG0yID0gbi5kLm1hdGNoKC97KC4qPyl9L2cpO1xuICAgICAgICBjb25zdCBwbGFjZWhvbGRlcnNDb3VudDIgPSBtMiAhPT0gbnVsbCA/IG0yLmxlbmd0aCA6IDA7XG4gICAgICAgIGlmIChwbGFjZWhvbGRlcnNDb3VudDEgPiBwbGFjZWhvbGRlcnNDb3VudDIpIHtcbiAgICAgICAgICAgIG4udyA9IG4udyArIDE7XG4gICAgICAgIH0gZWxzZSBpZiAocGxhY2Vob2xkZXJzQ291bnQxIDwgcGxhY2Vob2xkZXJzQ291bnQyKSB7XG4gICAgICAgICAgICBwLncgPSBwLncgKyAxO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBuLncgLSBwLnc7XG59XG5cbi8qKlxuICogQ2FsY3VsYXRlcyB0aGUgaW5pdGlhbCB3ZWlnaHQgb2YgYSBtYXRjaGVkIHJvdXRlIGRlZmluaXRpb24uXG4gKi9cbmZ1bmN0aW9uIGNhbGN1bGF0ZU1hdGNoZWRSb3V0ZVdlaWdodChtYXRjaGVkUm91dGU6IGFueSk6IG51bWJlciB7XG4gICAgcmV0dXJuIChtYXRjaGVkUm91dGUucGFyYW1zICYmIE9iamVjdC5rZXlzKG1hdGNoZWRSb3V0ZS5wYXJhbXMpLmxlbmd0aCA+IDApID8gMCA6IDE7IC8vIGFsd2F5cyBwcmVmZXIgZXhhY3Qgcm91dGUgZGVmaW5pdGlvbnMgLSBzZXQgd2VpZ2h0IHRvIDFcbn1cblxuLyoqXG4gKiBUcmFuc2Zvcm1zIHBhdGggcGFyYW1ldGVycyBkZWNsYXJlZCBpbiBicmFjZXMgKGUuZy4sICcvYXBpL3twYXRoUGFyYW19JykgdG8gcGF0aC10by1yZWdleHAgZm9ybWF0IChlLmcuLCAnL2FwaS86cGF0aFBhcmFtJykuXG4gKi9cbmZ1bmN0aW9uIHRyYW5zZm9ybVBhdGhQYXJhbXNEZWNsYXJlZEluQnJhY2VzKHBhdGhEZWZpbml0aW9uOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHBhdGhQYXJhbXNJbkJyYWNlc01hdGNoZXIgPSAvKHsoXFx3KlxcKj8pfSkvZzsgLy8gbWF0Y2hlcyBjYXNlcyBsaWtlICcvYXBpL3twYXRoUGFyYW19JyBvciAnL2FwaS97cGF0aFBhcmFtKn0nXG4gICAgcmV0dXJuIHBhdGhEZWZpbml0aW9uLnJlcGxhY2UocGF0aFBhcmFtc0luQnJhY2VzTWF0Y2hlciwgXCI6JDJcIik7IC8vIHRyYW5zZm9ybXMgbWF0Y2hlZCBjYXNlcyB0byAnL2FwaS86cGF0aFBhcmFtJyBvciAnL2FwaS86cGF0aFBhcmFtKidcbn1cblxuLyoqXG4gKiBGaW5kcyBhbGwgcm91dGVzIGluIHRoZSBjb25maWd1cmF0aW9uIHRoYXQgbWF0Y2ggdGhlIHJlcXVlc3QgcGF0aCBhbmQgbWV0aG9kLlxuICovXG5mdW5jdGlvbiBtYXRjaFJlcXVlc3RVcmwocmVxdWVzdFBhdGg6IHN0cmluZywgbWV0aG9kOiBzdHJpbmcsIGNmZzogYW55KTogYW55W10ge1xuICAgIHJldHVybiBPYmplY3QuZW50cmllcyhjZmcpXG4gICAgICAgIC5maWx0ZXIoKFtfLCBoYW5kbGVyc10pID0+IGhhbmRsZXJzICYmIChoYW5kbGVycyBhcyBhbnkpW21ldGhvZF0pXG4gICAgICAgIC5tYXAoKFtwYXRoLCBfXSkgPT4gcGF0aClcbiAgICAgICAgLnJlZHVjZSgobWF0Y2hlczogYW55W10sIHBhdGg6IHN0cmluZykgPT4gbWF0Y2hpbmdSb3V0ZURlZmluaXRpb25zUmVkdWNlcihtYXRjaGVzLCBwYXRoLCByZXF1ZXN0UGF0aCksIFtdKVxuICAgICAgICAuc29ydChtYXRjaGVkUm91dGVEZWZpbml0aW9uc1NvcnRlcik7XG59XG5cbi8qKlxuICogUmVkdWNlciBmdW5jdGlvbiB0byBhdHRlbXB0IG1hdGNoaW5nIGEgZGVmaW5lZCBwYXRoIGFnYWluc3QgdGhlIHJlcXVlc3QgcGF0aCB1c2luZyBwYXRoLXRvLXJlZ2V4cC5cbiAqL1xuZnVuY3Rpb24gbWF0Y2hpbmdSb3V0ZURlZmluaXRpb25zUmVkdWNlcihtYXRjaGVkRGVmaW5pdGlvbnM6IGFueVtdLCBkZWZpbmVkUGF0aDogc3RyaW5nLCByZXF1ZXN0UGF0aDogc3RyaW5nKTogYW55W10ge1xuICAgIC8vICdtYXRjaCcgZnJvbSBwYXRoLXRvLXJlZ2V4cCBpcyB1c2VkIGhlcmVcbiAgICBjb25zdCBwYXRoTWF0Y2hlciA9IG1hdGNoKHRyYW5zZm9ybVBhdGhQYXJhbXNEZWNsYXJlZEluQnJhY2VzKGRlZmluZWRQYXRoKSk7XG4gICAgY29uc3QgbWF0Y2hlZCA9IHBhdGhNYXRjaGVyKHJlcXVlc3RQYXRoKTtcblxuICAgIGlmIChtYXRjaGVkKSB7XG4gICAgICAgIC8vIEVuc3VyZSBwYXRoUGFyYW1zIGlzIGFuIG9iamVjdCBvZiBrZXkvdmFsdWUgcGFpcnNcbiAgICAgICAgY29uc3QgcGF0aFBhcmFtcyA9IG1hdGNoZWQucGFyYW1zO1xuXG4gICAgICAgIGNvbnN0IG1hdGNoZWREZWZpbml0aW9uID0ge1xuICAgICAgICAgICAgcDogcmVxdWVzdFBhdGgsXG4gICAgICAgICAgICBkOiBkZWZpbmVkUGF0aCxcbiAgICAgICAgICAgIHBhdGhQYXJhbXM6IHBhdGhQYXJhbXNcbiAgICAgICAgfTtcbiAgICAgICAgbWF0Y2hlZERlZmluaXRpb25zLnB1c2gobWF0Y2hlZERlZmluaXRpb24pO1xuICAgIH1cbiAgICByZXR1cm4gbWF0Y2hlZERlZmluaXRpb25zO1xufVxuXG4vKipcbiAqIE5vcm1hbGl6ZXMgYW4gSFRUUCBtZWRpYSB0eXBlIGhlYWRlciB2YWx1ZSAoZS5nLiwgXCJ0ZXh0L3BsYWluOyBxPTAuOSwgYXBwbGljYXRpb24vanNvblwiKS5cbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplTWVkaWFUeXBlSGVhZGVyVmFsdWUoc01lZGlhVHlwZTogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCk6IHN0cmluZ1tdIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoc01lZGlhVHlwZSA9PT0gdW5kZWZpbmVkIHx8IHNNZWRpYVR5cGUgPT09IG51bGwpXG4gICAgICAgIHJldHVybjtcbiAgICAvLyBjb252ZXJ0IHRvIGFycmF5IG9mIGluZGl2aWR1YWwgdHlwZXNcbiAgICBsZXQgYXJyTWVkaWFUeXBlID0gc01lZGlhVHlwZS5zcGxpdCgnLCcpO1xuICAgIGFyck1lZGlhVHlwZSA9IGFyck1lZGlhVHlwZS5tYXAoKG1pbWVUeXBlRW50cnkpID0+IHtcbiAgICAgICAgLy8gcmVtb3ZlIGVzY2FwaW5nLCByZW1vdmUgcXVhbGl0eSBvciBvdGhlciBhdHRyaWJ1dGVzIChlLmcuLCAnOyBxPTAuOScpXG4gICAgICAgIHJldHVybiBtaW1lVHlwZUVudHJ5LnJlcGxhY2UoJ1xcXFwnLCAnJykuc3BsaXQoJzsnKVswXS50cmltKCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGFyck1lZGlhVHlwZS5maWx0ZXIodHlwZSA9PiB0eXBlLmxlbmd0aCA+IDApO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBhIHNvdXJjZSBNSU1FIHR5cGUgaXMgY29tcGF0aWJsZSB3aXRoIGEgdGFyZ2V0IE1JTUUgdHlwZSwgc3VwcG9ydGluZyB3aWxkY2FyZHMgKCopLlxuICovXG5mdW5jdGlvbiBpc01pbWVUeXBlQ29tcGF0aWJsZShzb3VyY2U6IHN0cmluZywgdGFyZ2V0OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAoc291cmNlID09PSB0YXJnZXQpXG4gICAgICAgIHJldHVybiB0cnVlO1xuXG4gICAgY29uc3QgdGFyZ2V0TSA9IHRhcmdldC5zcGxpdCgnLycpO1xuICAgIGNvbnN0IHNvdXJjZU0gPSBzb3VyY2Uuc3BsaXQoJy8nKTtcblxuICAgIC8vIFRhcmdldCBpcyB3aWxkY2FyZCB0eXBlLCBTb3VyY2UgaGFzIGEgc3BlY2lmaWMgc3VidHlwZSAoZS5nLiwgdGFyZ2V0PSovanNvbiwgc291cmNlPWFwcGxpY2F0aW9uL2pzb24pXG4gICAgaWYgKHRhcmdldE1bMF0gPT09ICcqJyAmJiB0YXJnZXRNWzFdID09PSBzb3VyY2VNWzFdKVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAvLyBTb3VyY2UgaXMgd2lsZGNhcmQgdHlwZSwgVGFyZ2V0IGhhcyBhIHNwZWNpZmljIHN1YnR5cGUgKGUuZy4sIHNvdXJjZT0qL2pzb24sIHRhcmdldD1hcHBsaWNhdGlvbi9qc29uKVxuICAgIGlmIChzb3VyY2VNWzBdID09PSAnKicgJiYgdGFyZ2V0TVsxXSA9PT0gc291cmNlTVsxXSlcbiAgICAgICAgcmV0dXJuIHRydWU7XG5cbiAgICAvLyBUYXJnZXQgaXMgd2lsZGNhcmQgc3VidHlwZSwgU291cmNlIGhhcyBhIHNwZWNpZmljIHR5cGUgKGUuZy4sIHRhcmdldD1hcHBsaWNhdGlvbi8qLCBzb3VyY2U9YXBwbGljYXRpb24vanNvbilcbiAgICBpZiAodGFyZ2V0TVsxXSA9PT0gJyonICYmIHRhcmdldE1bMF0gPT09IHNvdXJjZU1bMF0pXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIC8vIFNvdXJjZSBpcyB3aWxkY2FyZCBzdWJ0eXBlLCBUYXJnZXQgaGFzIGEgc3BlY2lmaWMgdHlwZSAoZS5nLiwgc291cmNlPWFwcGxpY2F0aW9uLyosIHRhcmdldD1hcHBsaWNhdGlvbi9qc29uKVxuICAgIGlmIChzb3VyY2VNWzFdID09PSAnKicgJiYgdGFyZ2V0TVswXSA9PT0gc291cmNlTVswXSlcbiAgICAgICAgcmV0dXJuIHRydWU7XG5cbiAgICByZXR1cm4gZmFsc2U7XG59XG5cbi8qKlxuICogRGVmYXVsdCBlcnJvciBoYW5kbGVyIGZ1bmN0aW9uLlxuICovXG5jb25zdCBjYXRjaEVycm9ySGFuZGxlciA9IGZ1bmN0aW9uICh0aGlzOiBIdHRwQ29udHJvbGxlciwgbG9nY3R4OiBhbnksIGN0eDogUmVxdWVzdENvbnRleHQsIGVycjogYW55LCByZXF1ZXN0OiBhbnksIHJlc3BvbnNlOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAoY3R4LnN1cHByZXNzU3RhY2spIHtcbiAgICAgICAgY29uc3QgZGV0YWlsc01zZyA9IChjdHguZXJyb3JOYW1lIHx8IFwiXCIpICsgKGN0eC5lcnJvckNvZGUgPyBcIiBbXCIgKyBjdHguZXJyb3JDb2RlICsgXCJdXCIgOiBcIlwiKSArIChjdHguZXJyb3JNZXNzYWdlID8gXCI6IFwiICsgY3R4LmVycm9yTWVzc2FnZSA6IFwiXCIpO1xuICAgICAgICBsb2dnZXIuaW5mbygnU2VydmluZyByZXNvdXJjZVt7fV0sIFZlcmJbe31dLCBDb250ZW50LVR5cGVbe31dLCBBY2NlcHRbe31dIGZpbmlzaGVkIGluIGVycm9yLiB7fScsIGxvZ2N0eC5wYXRoLCBsb2djdHgubWV0aG9kLCBsb2djdHguY29udGVudFR5cGUsIGxvZ2N0eC5hY2NlcHRzLCBkZXRhaWxzTXNnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBsb2dnZXIuZXJyb3IoJ1NlcnZpbmcgcmVzb3VyY2Vbe31dLCBWZXJiW3t9XSwgQ29udGVudC1UeXBlW3t9XSwgQWNjZXB0W3t9XSBmaW5pc2hlZCBpbiBlcnJvcicsIGxvZ2N0eC5wYXRoLCBsb2djdHgubWV0aG9kLCBsb2djdHguY29udGVudFR5cGUsIGxvZ2N0eC5hY2NlcHRzLCBlcnIpO1xuICAgIH1cblxuICAgIGNvbnN0IGh0dHBFcnJvckNvZGUgPSBjdHguaHR0cEVycm9yQ29kZSB8fCByZXNwb25zZS5JTlRFUk5BTF9TRVJWRVJfRVJST1I7XG4gICAgY29uc3QgZXJyb3JNZXNzYWdlID0gY3R4LmVycm9yTWVzc2FnZSB8fCAoZXJyICYmIGVyci5tZXNzYWdlKTtcbiAgICBjb25zdCBlcnJvck5hbWUgPSBjdHguZXJyb3JOYW1lIHx8IChlcnIgJiYgZXJyLm5hbWUpO1xuICAgIGNvbnN0IGVycm9yQ29kZSA9IGN0eC5lcnJvckNvZGU7XG5cbiAgICB0aGlzLnNlbmRFcnJvcihodHRwRXJyb3JDb2RlLCBlcnJvckNvZGUsIGVycm9yTmFtZSwgZXJyb3JNZXNzYWdlKTtcbn07XG5cbi8qKlxuICogQ2hlY2tzIGlmIHRoZSByZXF1ZXN0IG1lZGlhIHR5cGVzIG1hdGNoIHRoZSByZXNvdXJjZSBoYW5kbGVyJ3MgY29uc3VtZXMgYW5kIHByb2R1Y2VzIGNvbnN0cmFpbnRzLlxuICovXG5jb25zdCBtYXRjaE1lZGlhVHlwZSA9IGZ1bmN0aW9uIChyZXF1ZXN0OiBhbnksIHByb2R1Y2VzTWVkaWFUeXBlczogc3RyaW5nW10sIGNvbnN1bWVzTWVkaWFUeXBlczogc3RyaW5nW10pOiBib29sZWFuIHtcbiAgICBsZXQgaXNQcm9kdWNlTWF0Y2hlZCA9IGZhbHNlO1xuICAgIGNvbnN0IGFjY2VwdHNNZWRpYVR5cGVzID0gbm9ybWFsaXplTWVkaWFUeXBlSGVhZGVyVmFsdWUocmVxdWVzdC5nZXRIZWFkZXIoJ0FjY2VwdCcpKTtcblxuICAgIC8vIDEuIENoZWNrIFByb2R1Y2VzIChBY2NlcHRzIGhlYWRlcilcbiAgICBpZiAoIWFjY2VwdHNNZWRpYVR5cGVzIHx8IGFjY2VwdHNNZWRpYVR5cGVzLmxlbmd0aCA9PT0gMCB8fCBhY2NlcHRzTWVkaWFUeXBlcy5pbmNsdWRlcygnKi8qJykpIHtcbiAgICAgICAgLy8gT3V0cHV0IG1lZGlhIHR5cGUgaXMgbm90IHJlc3RyaWN0ZWQgYnkgY2xpZW50IG9yIGNsaWVudCBhY2NlcHRzIGFueXRoaW5nXG4gICAgICAgIGlzUHJvZHVjZU1hdGNoZWQgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChwcm9kdWNlc01lZGlhVHlwZXMgJiYgcHJvZHVjZXNNZWRpYVR5cGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgbWF0Y2hlZFByb2R1Y2VzTUlNRSA9IGFjY2VwdHNNZWRpYVR5cGVzLmZpbHRlcigoYWNjZXB0c01lZGlhVHlwZSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBwcm9kdWNlc01lZGlhVHlwZXMuc29tZSgocHJvZHVjZXNNZWRpYVR5cGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGlzTWltZVR5cGVDb21wYXRpYmxlKGFjY2VwdHNNZWRpYVR5cGUsIHByb2R1Y2VzTWVkaWFUeXBlKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaXNQcm9kdWNlTWF0Y2hlZCA9IG1hdGNoZWRQcm9kdWNlc01JTUUgJiYgbWF0Y2hlZFByb2R1Y2VzTUlNRS5sZW5ndGggPiAwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gUmVzb3VyY2UgZG9lc24ndCBzcGVjaWZ5IHByb2R1Y2VzLCBzbyBpdCBtYXRjaGVzIGlmIHRoZSBjbGllbnQgYWNjZXB0cyBhbnl0aGluZyBvciBpZiBwcm9kdWNlcyBpcyBhbiBlbXB0eSBhcnJheVxuICAgICAgICAgICAgaXNQcm9kdWNlTWF0Y2hlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAyLiBDaGVjayBDb25zdW1lcyAoQ29udGVudC1UeXBlIGhlYWRlcilcbiAgICBsZXQgaXNDb25zdW1lTWF0Y2hlZCA9IGZhbHNlO1xuICAgIGNvbnN0IGNvbnRlbnRUeXBlTWVkaWFUeXBlcyA9IG5vcm1hbGl6ZU1lZGlhVHlwZUhlYWRlclZhbHVlKHJlcXVlc3QuZ2V0Q29udGVudFR5cGUoKSk7XG5cbiAgICBpZiAoIWNvbnN1bWVzTWVkaWFUeXBlcyB8fCBjb25zdW1lc01lZGlhVHlwZXMubGVuZ3RoID09PSAwIHx8IGNvbnN1bWVzTWVkaWFUeXBlcy5pbmNsdWRlcygnKi8qJykpIHtcbiAgICAgICAgLy8gSW5wdXQgbWVkaWEgdHlwZSBpcyBub3QgcmVzdHJpY3RlZCBieSByZXNvdXJjZSBvciByZXNvdXJjZSBhY2NlcHRzIGFueXRoaW5nXG4gICAgICAgIGlzQ29uc3VtZU1hdGNoZWQgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChjb250ZW50VHlwZU1lZGlhVHlwZXMgJiYgY29uc3VtZXNNZWRpYVR5cGVzICYmIGNvbnN1bWVzTWVkaWFUeXBlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoZWRDb25zdW1lc01JTUUgPSBjb250ZW50VHlwZU1lZGlhVHlwZXMuZmlsdGVyKChjb250ZW50VHlwZU1lZGlhVHlwZSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBjb25zdW1lc01lZGlhVHlwZXMuc29tZSgoY29uc3VtZXNNZWRpYVR5cGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGlzTWltZVR5cGVDb21wYXRpYmxlKGNvbnRlbnRUeXBlTWVkaWFUeXBlLCBjb25zdW1lc01lZGlhVHlwZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlzQ29uc3VtZU1hdGNoZWQgPSBtYXRjaGVkQ29uc3VtZXNNSU1FICYmIG1hdGNoZWRDb25zdW1lc01JTUUubGVuZ3RoID4gMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBpc1Byb2R1Y2VNYXRjaGVkICYmIGlzQ29uc3VtZU1hdGNoZWQ7XG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIkFBQUEsU0FBUyxZQUFZLGdCQUFnQjtBQUNyQyxTQUFTLFdBQVcsZUFBZTtBQUNuQyxTQUFTLHdCQUF3QjtBQUNqQyxTQUFTLGVBQWU7QUFJeEIsTUFBTSxFQUFFLE1BQU0sSUFBSSxpQkFBaUIsZ0RBQWdEO0FBRW5GLE1BQU0sU0FBYyxRQUFRLFVBQVUsb0JBQW9CO0FBb0IxRCxT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
|
|
291
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2h0dHAvcnMvcmVzb3VyY2UtaHR0cC1jb250cm9sbGVyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBtb2R1bGUgaHR0cC9ycy9jb250cm9sbGVyXG4gKiBAcGFja2FnZSBAYWVyb2tpdC9zZGsvaHR0cFxuICogQG5hbWUgSHR0cENvbnRyb2xsZXJcbiAqIFxuICogQG92ZXJ2aWV3XG4gKiBcbiAqIFRoaXMgbW9kdWxlIGRlZmluZXMgdGhlIGBIdHRwQ29udHJvbGxlcmAgY2xhc3MsIHdoaWNoIHNlcnZlcyBhcyB0aGUgbWFpbiBlbnRyeSBwb2ludCBmb3IgaGFuZGxpbmcgSFRUUCByZXF1ZXN0cyBpbiBhIFJFU1RmdWwgbWFubmVyLiBUaGUgYEh0dHBDb250cm9sbGVyYCBjbGFzcyBwcm92aWRlcyBtZXRob2RzIGZvciBkZWZpbmluZyByZXNvdXJjZSBwYXRocyBhbmQgSFRUUCBtZXRob2QgaGFuZGxlcnMgKEdFVCwgUE9TVCwgUFVULCBERUxFVEUsIGV0Yy4pIHVzaW5nIGEgZmx1ZW50IEFQSS4gSXQgYWxzbyBpbmNsdWRlcyBsb2dpYyBmb3IgbWF0Y2hpbmcgaW5jb21pbmcgcmVxdWVzdHMgdG8gdGhlIGFwcHJvcHJpYXRlIHJlc291cmNlIGhhbmRsZXJzIGJhc2VkIG9uIHRoZSByZXF1ZXN0IHBhdGgsIEhUVFAgbWV0aG9kLCBhbmQgbWVkaWEgdHlwZSBjb25zdHJhaW50cyAoY29uc3VtZXMvcHJvZHVjZXMpLiBUaGUgY29udHJvbGxlciBzdXBwb3J0cyBiZWZvcmUsIHNlcnZlLCBjYXRjaCwgYW5kIGZpbmFsbHkgaGFuZGxlciBmdW5jdGlvbnMgZm9yIGVhY2ggcmVzb3VyY2UgbWV0aG9kLCBhbGxvd2luZyBmb3IgZmxleGlibGUgcmVxdWVzdCBwcm9jZXNzaW5nIGFuZCBlcnJvciBoYW5kbGluZy4gQWRkaXRpb25hbGx5LCBpdCBpbmNsdWRlcyBmdW5jdGlvbmFsaXR5IGZvciBzZW5kaW5nIGVycm9yIHJlc3BvbnNlcyBmb3JtYXR0ZWQgYWNjb3JkaW5nIHRvIHRoZSBjbGllbnQncyBhY2NlcHRlZCBtZWRpYSB0eXBlcy5cbiAqIFxuICogIyMjIEtleSBGZWF0dXJlczpcbiAqIC0gRGVmaW5lIHJlc291cmNlIHBhdGhzIGFuZCBIVFRQIG1ldGhvZCBoYW5kbGVycyB1c2luZyBhIGZsdWVudCBBUEkuXG4gKiAtIE1hdGNoIGluY29taW5nIHJlcXVlc3RzIHRvIHJlc291cmNlIGhhbmRsZXJzIGJhc2VkIG9uIHBhdGgsIG1ldGhvZCwgYW5kIG1lZGlhIHR5cGUgY29uc3RyYWludHMuXG4gKiAtIFN1cHBvcnQgZm9yIGJlZm9yZSwgc2VydmUsIGNhdGNoLCBhbmQgZmluYWxseSBoYW5kbGVyIGZ1bmN0aW9ucyBmb3IgZWFjaCByZXNvdXJjZSBtZXRob2QuXG4gKiAtIEZsZXhpYmxlIGVycm9yIGhhbmRsaW5nIHdpdGggY3VzdG9taXphYmxlIGVycm9yIHJlc3BvbnNlcyBmb3JtYXR0ZWQgYWNjb3JkaW5nIHRvIGNsaWVudCBwcmVmZXJlbmNlcy5cbiAqIFxuICogIyMjIFVzZSBDYXNlczpcbiAqIC0gQnVpbGRpbmcgUkVTVGZ1bCBBUElzIHdpdGggY29tcGxleCByb3V0aW5nIGFuZCBtZWRpYSB0eXBlIGhhbmRsaW5nIHJlcXVpcmVtZW50cy5cbiAqIFxuICogIyMjIFVzYWdlIEV4YW1wbGU6XG4gKiBcbiAqIGBgYGphdmFzY3JpcHRcbiAqIGltcG9ydCB7IHNlcnZpY2UgfSBmcm9tICdAYWVyb2tpdC9zZGsvaHR0cCc7XG4gKiBcbiAqIGNvbnN0IGNvbnRyb2xsZXIgPSBzZXJ2aWNlKCk7XG4gKiBcbiAqIGNvbnRyb2xsZXIuZ2V0KCcvYXBpL3Jlc291cmNlJywgKGN0eCkgPT4ge1xuICogICAgIGN0eC5yZXNwb25zZS5wcmludCgnSGVsbG8sIFdvcmxkIScpO1xuICogfSk7XG4gKiBcbiAqIC8vIFN0YXJ0IGxpc3RlbmluZyBmb3IgcmVxdWVzdHMgKHRoaXMgd291bGQgdHlwaWNhbGx5IGJlIGRvbmUgYnkgdGhlIGZyYW1ld29yaylcbiAqIGNvbnRyb2xsZXIubGlzdGVuKCk7XG4gKiBgYGBcbiAqL1xuaW1wb3J0IHsgUmVzcG9uc2UgYXMgcmVzcG9uc2UgfSBmcm9tIFwiLi4vcmVzcG9uc2VcIjtcbmltcG9ydCB7IFJlcXVlc3QgYXMgcmVxdWVzdCB9IGZyb20gXCIuLi9yZXF1ZXN0XCI7XG5pbXBvcnQgeyBSZXNvdXJjZU1hcHBpbmdzIH0gZnJvbSBcIi4vcmVzb3VyY2UtbWFwcGluZ3NcIjtcbmltcG9ydCB7IExvZ2dpbmcgfSBmcm9tIFwiQGFlcm9raXQvc2RrL2xvZ1wiO1xuXG4vLyBEZWNsYXJhdGlvbiBmb3IgdGhlIGV4dGVybmFsIGRpcmlnaWJsZVJlcXVpcmUgZnVuY3Rpb24gYW5kIGl0cyBkZXBlbmRlbmN5XG5kZWNsYXJlIGZ1bmN0aW9uIGRpcmlnaWJsZVJlcXVpcmUobW9kdWxlOiBzdHJpbmcpOiBhbnk7XG5jb25zdCB7IG1hdGNoIH0gPSBkaXJpZ2libGVSZXF1aXJlKFwibW9kdWxlcy9zcmMvaHR0cC9wYXRoLXRvLXJlZ2V4cC82LjIuMS9pbmRleC5qc1wiKTtcblxuY29uc3QgbG9nZ2VyOiBhbnkgPSBMb2dnaW5nLmdldExvZ2dlcignaHR0cC5ycy5jb250cm9sbGVyJyk7XG5cbi8qKlxuICogSW50ZXJmYWNlIGZvciB0aGUgY29udGV4dCBvYmplY3QgcGFzc2VkIHRvIGhhbmRsZXIgZnVuY3Rpb25zIChiZWZvcmUsIHNlcnZlLCBjYXRjaCkuXG4gKi9cbmludGVyZmFjZSBSZXF1ZXN0Q29udGV4dCB7XG4gICAgcGF0aFBhcmFtZXRlcnM6IHsgW2tleTogc3RyaW5nXTogYW55IH07XG4gICAgcXVlcnlQYXJhbWV0ZXJzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xuICAgIHJlc3BvbnNlOiBhbnk7XG4gICAgcmVzOiBhbnk7XG4gICAgcmVxdWVzdDogYW55O1xuICAgIHJlcTogYW55O1xuICAgIC8vIENvbnRleHQgcHJvcGVydGllcyBmb3IgZXJyb3IgaGFuZGxpbmcgbWlnaHQgYWxzbyBiZSBhdHRhY2hlZCBoZXJlXG4gICAgc3VwcHJlc3NTdGFjaz86IGJvb2xlYW47XG4gICAgaHR0cEVycm9yQ29kZT86IG51bWJlcjtcbiAgICBlcnJvck1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgZXJyb3JOYW1lPzogc3RyaW5nO1xuICAgIGVycm9yQ29kZT86IGFueTtcbn1cblxuZnVuY3Rpb24gZ2V0UmVxdWVzdCgpOiBhbnkge1xuICAgIHJldHVybiByZXF1ZXN0O1xufVxuZnVuY3Rpb24gZ2V0UmVzcG9uc2UoKTogYW55IHtcbiAgICByZXR1cm4gcmVzcG9uc2U7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIHNlcnZpY2UgKEh0dHBDb250cm9sbGVyKSBpbnN0YW5jZSwgb3B0aW9uYWxseSBpbml0aWFsaXplZCB3aXRoIG9NYXBwaW5ncy5cbiAqXG4gKiBAcGFyYW0gb0NvbmZpZyBDb25maWd1cmF0aW9uIG9iamVjdCBvciBjb25maWd1cmF0aW9uIGJ1aWxkZXIgd2l0aCBjb25maWd1cmF0aW9uKCkgZ2V0dGVyIGZ1bmN0aW9uLlxuICogQHJldHVybnMgQSBuZXcgSHR0cENvbnRyb2xsZXIgaW5zdGFuY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXJ2aWNlKG9Db25maWc/OiBhbnkpOiBIdHRwQ29udHJvbGxlciB7XG4gICAgbGV0IGNvbmZpZzogUmVzb3VyY2VNYXBwaW5ncyB8IGFueTtcbiAgICBpZiAob0NvbmZpZyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmICh0eXBlb2Ygb0NvbmZpZyA9PT0gJ29iamVjdCcgfHwgb0NvbmZpZyBpbnN0YW5jZW9mIFJlc291cmNlTWFwcGluZ3MpIHtcbiAgICAgICAgICAgIGNvbmZpZyA9IG9Db25maWc7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5ldyBIdHRwQ29udHJvbGxlcihjb25maWcpO1xufVxuXG4vKipcbiAqIFRoZSBtYWluIGNsYXNzIGZvciBoYW5kbGluZyBIVFRQIHJlcXVlc3RzIGFuZCByb3V0aW5nIHRoZW0gdG8gdGhlIGNvcnJlY3QgcmVzb3VyY2UgaGFuZGxlcnMuXG4gKi9cbmV4cG9ydCBjbGFzcyBIdHRwQ29udHJvbGxlciB7XG5cbiAgICByZXNvdXJjZTogRnVuY3Rpb247XG4gICAgcmVzb3VyY2VQYXRoOiBGdW5jdGlvbjtcbiAgICByZXNvdXJjZU1hcHBpbmdzOiBSZXNvdXJjZU1hcHBpbmdzO1xuXG4gICAgLy8gSW5kZXggc2lnbmF0dXJlIHRvIGFsbG93IGR5bmFtaWMgbWV0aG9kIGFzc2lnbm1lbnQgaW4gdGhlIGNvbnN0cnVjdG9yXG4gICAgW2tleTogc3RyaW5nXTogYW55O1xuXG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0b3IgZnVuY3Rpb24gZm9yIEh0dHBDb250cm9sbGVyIGluc3RhbmNlcy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBvTWFwcGluZ3MgVGhlIG1hcHBpbmdzIGNvbmZpZ3VyYXRpb24gZm9yIHRoaXMgY29udHJvbGxlci5cbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihvTWFwcGluZ3M/OiBSZXNvdXJjZU1hcHBpbmdzIHwgYW55KSB7XG4gICAgICAgIGlmIChvTWFwcGluZ3MgaW5zdGFuY2VvZiBSZXNvdXJjZU1hcHBpbmdzKSB7XG4gICAgICAgICAgICB0aGlzLnJlc291cmNlTWFwcGluZ3MgPSBvTWFwcGluZ3M7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIG9NYXBwaW5ncyA9PT0gJ29iamVjdCcgfHwgb01hcHBpbmdzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMucmVzb3VyY2VNYXBwaW5ncyA9IG5ldyBSZXNvdXJjZU1hcHBpbmdzKG9NYXBwaW5ncywgdGhpcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBEZWZhdWx0IGluaXRpYWxpemF0aW9uIGlmIGlucHV0IGlzIHVuZXhwZWN0ZWRcbiAgICAgICAgICAgIHRoaXMucmVzb3VyY2VNYXBwaW5ncyA9IG5ldyBSZXNvdXJjZU1hcHBpbmdzKHt9LCB0aGlzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEFsaWFzIGZvciByZXNvdXJjZU1hcHBpbmdzLnJlc291cmNlXG4gICAgICAgIHRoaXMucmVzb3VyY2UgPSB0aGlzLnJlc291cmNlUGF0aCA9IHRoaXMucmVzb3VyY2VNYXBwaW5ncy5yZXNvdXJjZVBhdGguYmluZCh0aGlzLnJlc291cmNlTWFwcGluZ3MpO1xuXG4gICAgICAgIC8vIHdlYXZlLWluIEhUVFAgbWV0aG9kLWJhc2VkIGZhY3RvcnkgZnVuY3Rpb25zIC0gc2hvcnRjdXQgZm9yIHNlcnZpY2UoKS5yZXNvdXJjZShzUGF0aCkubWV0aG9kXG4gICAgICAgIFsnZ2V0JywgJ3Bvc3QnLCAncHV0JywgJ2RlbGV0ZScsICdyZW1vdmUnLCAnbWV0aG9kJ10uZm9yRWFjaCgoc01ldGhvZE5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgdGhpc1tzTWV0aG9kTmFtZV0gPSAoLi4uYWxsQXJndW1lbnRzOiBhbnlbXSk6IEh0dHBDb250cm9sbGVyID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoYWxsQXJndW1lbnRzLmxlbmd0aCA8IDEpXG4gICAgICAgICAgICAgICAgICAgIHRocm93IEVycm9yKCdJbnN1ZmZpY2llbnQgYXJndW1lbnRzIHByb3ZpZGVkIHRvIEh0dHBDb250cm9sbGVyIG1ldGhvZCAnICsgc01ldGhvZE5hbWUgKyAnLicpO1xuXG4gICAgICAgICAgICAgICAgLy8gc1BhdGggaXMgYWx3YXlzIHRoZSBmaXJzdCBhcmd1bWVudFxuICAgICAgICAgICAgICAgIGxldCBzUGF0aCA9IGFsbEFyZ3VtZW50c1swXTtcbiAgICAgICAgICAgICAgICBpZiAoc1BhdGggPT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgICAgICAgICAgc1BhdGggPSBcIlwiO1xuXG4gICAgICAgICAgICAgICAgLy8gVGhlIG5leHQgYXJndW1lbnRzIChzVmVyYiwgYXJyQ29uc3VtZXMsIGFyclByb2R1Y2VzKSBhcmUgdXNlZCBieSBSZXNvdXJjZU1hcHBpbmdzLmZpbmQvcmVzb3VyY2VcbiAgICAgICAgICAgICAgICBjb25zdCBzVmVyYiA9IGFsbEFyZ3VtZW50c1sxXTtcbiAgICAgICAgICAgICAgICBjb25zdCBhcnJDb25zdW1lcyA9IGFsbEFyZ3VtZW50c1syXTtcbiAgICAgICAgICAgICAgICBjb25zdCBhcnJQcm9kdWNlcyA9IGFsbEFyZ3VtZW50c1szXTtcblxuICAgICAgICAgICAgICAgIC8vIEZpbmQgZXhpc3RpbmcgcmVzb3VyY2Ugb3IgY3JlYXRlIGEgbmV3IG9uZSBiYXNlZCBvbiB0aGUgcGF0aCAoYW5kIG90aGVyIG9wdGlvbmFsIGNvbnN0cmFpbnRzKVxuICAgICAgICAgICAgICAgIGNvbnN0IHJlc291cmNlOiBhbnkgPSB0aGlzLnJlc291cmNlTWFwcGluZ3MuZmluZChzUGF0aCwgc1ZlcmIsIGFyckNvbnN1bWVzLCBhcnJQcm9kdWNlcykgfHwgdGhpcy5yZXNvdXJjZU1hcHBpbmdzLnJlc291cmNlKHNQYXRoKTtcblxuICAgICAgICAgICAgICAgIC8vIFBhc3MgYWxsIGFyZ3VtZW50cyAqZXhjZXB0KiB0aGUgc1BhdGggdG8gdGhlIGNvcnJlc3BvbmRpbmcgbWV0aG9kIG9mIHRoZSByZXNvdXJjZVxuICAgICAgICAgICAgICAgIGNvbnN0IHJlc291cmNlTWV0aG9kQXJncyA9IGFsbEFyZ3VtZW50cy5zbGljZSgxKTtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAvLyBFeGVjdXRlIHRoZSBtZXRob2Qgb24gdGhlIHJlc291cmNlIGluc3RhbmNlXG4gICAgICAgICAgICAgICAgcmVzb3VyY2Vbc01ldGhvZE5hbWVdLmFwcGx5KHJlc291cmNlLCByZXNvdXJjZU1ldGhvZEFyZ3MpO1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWxpYXMgZm9yIGV4ZWN1dGUuXG4gICAgICovXG4gICAgbGlzdGVuKHJlcXVlc3Q6IGFueSwgcmVzcG9uc2U6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLmV4ZWN1dGUocmVxdWVzdCwgcmVzcG9uc2UpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEV4ZWN1dGVzIHRoZSByZXF1ZXN0IGhhbmRsaW5nIGxvZ2ljLCBmaW5kaW5nIHRoZSBiZXN0IG1hdGNoaW5nIHJlc291cmNlIGFuZCBoYW5kbGVyLlxuICAgICAqL1xuICAgIGV4ZWN1dGUocmVxdWVzdD86IGFueSwgcmVzcG9uc2U/OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgcmVxdWVzdCA9IHJlcXVlc3QgfHwgZ2V0UmVxdWVzdCgpO1xuICAgICAgICBjb25zdCByZXF1ZXN0UGF0aDogc3RyaW5nID0gcmVxdWVzdC5nZXRSZXNvdXJjZVBhdGgoKTtcbiAgICAgICAgY29uc3QgbWV0aG9kOiBzdHJpbmcgPSByZXF1ZXN0LmdldE1ldGhvZCgpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGNvbnN0IF9vQ29uZmlndXJhdGlvbjogYW55ID0gdGhpcy5yZXNvdXJjZU1hcHBpbmdzLmNvbmZpZ3VyYXRpb24oKTtcblxuICAgICAgICBjb25zdCBtYXRjaGVzOiBhbnlbXSA9IG1hdGNoUmVxdWVzdFVybChyZXF1ZXN0UGF0aCwgbWV0aG9kLCBfb0NvbmZpZ3VyYXRpb24pO1xuICAgICAgICBsZXQgcmVzb3VyY2VIYW5kbGVyOiBhbnk7XG5cbiAgICAgICAgaWYgKG1hdGNoZXMgJiYgbWF0Y2hlc1swXSkge1xuICAgICAgICAgICAgY29uc3QgdmVyYkhhbmRsZXJzOiBhbnlbXSA9IF9vQ29uZmlndXJhdGlvblttYXRjaGVzWzBdLmRdW21ldGhvZF07XG4gICAgICAgICAgICBpZiAodmVyYkhhbmRsZXJzKSB7XG4gICAgICAgICAgICAgICAgcmVzb3VyY2VIYW5kbGVyID0gdmVyYkhhbmRsZXJzLmZpbHRlcigoaGFuZGxlckRlZikgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWF0Y2hNZWRpYVR5cGUocmVxdWVzdCwgaGFuZGxlckRlZi5wcm9kdWNlcywgaGFuZGxlckRlZi5jb25zdW1lcyk7XG4gICAgICAgICAgICAgICAgfSlbMF07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXNwb25zZSA9IHJlc3BvbnNlIHx8IGdldFJlc3BvbnNlKCk7XG4gICAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1zOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0gcmVxdWVzdC5nZXRRdWVyeVBhcmFtZXRlcnNNYXAoKSB8fCB7fTtcbiAgICAgICAgY29uc3QgYWNjZXB0c0hlYWRlcjogc3RyaW5nW10gPSBub3JtYWxpemVNZWRpYVR5cGVIZWFkZXJWYWx1ZShyZXF1ZXN0LmdldEhlYWRlcignQWNjZXB0JykpIHx8IFtdO1xuICAgICAgICBjb25zdCBjb250ZW50VHlwZUhlYWRlcjogc3RyaW5nW10gPSBub3JtYWxpemVNZWRpYVR5cGVIZWFkZXJWYWx1ZShyZXF1ZXN0LmdldEhlYWRlcignQ29udGVudC1UeXBlJykpIHx8IFtdO1xuICAgICAgICBjb25zdCByZXNvdXJjZVBhdGg6IHN0cmluZyA9IHJlcXVlc3RQYXRoO1xuXG4gICAgICAgIGlmIChyZXNvdXJjZUhhbmRsZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IGN0eDogUmVxdWVzdENvbnRleHQgPSB7XG4gICAgICAgICAgICAgICAgXCJwYXRoUGFyYW1ldGVyc1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcInF1ZXJ5UGFyYW1ldGVyc1wiOiB7fSxcbiAgICAgICAgICAgICAgICBcInJlc3BvbnNlXCI6IHJlc3BvbnNlLFxuICAgICAgICAgICAgICAgIFwicmVzXCI6IHJlc3BvbnNlLFxuICAgICAgICAgICAgICAgIFwicmVxdWVzdFwiOiByZXF1ZXN0LFxuICAgICAgICAgICAgICAgIFwicmVxXCI6IHJlcXVlc3RcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAobWF0Y2hlc1swXS5wYXRoUGFyYW1zKSB7XG4gICAgICAgICAgICAgICAgY3R4LnBhdGhQYXJhbWV0ZXJzID0gbWF0Y2hlc1swXS5wYXRoUGFyYW1zO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY3R4LnF1ZXJ5UGFyYW1ldGVycyA9IHF1ZXJ5UGFyYW1zO1xuXG4gICAgICAgICAgICBjb25zdCBub29wID0gZnVuY3Rpb24gKCkgeyB9O1xuICAgICAgICAgICAgbGV0IF9iZWZvcmU6IEZ1bmN0aW9uLCBfc2VydmU6IEZ1bmN0aW9uLCBfY2F0Y2g6IEZ1bmN0aW9uLCBfZmluYWxseTogRnVuY3Rpb247XG4gICAgICAgICAgICBfYmVmb3JlID0gcmVzb3VyY2VIYW5kbGVyLmJlZm9yZSB8fCBub29wO1xuICAgICAgICAgICAgX3NlcnZlID0gcmVzb3VyY2VIYW5kbGVyLmhhbmRsZXIgfHwgcmVzb3VyY2VIYW5kbGVyLnNlcnZlIHx8IG5vb3A7XG4gICAgICAgICAgICBfY2F0Y2ggPSByZXNvdXJjZUhhbmRsZXIuY2F0Y2ggfHwgY2F0Y2hFcnJvckhhbmRsZXIuYmluZCh0aGlzLCB7XG4gICAgICAgICAgICAgICAgcGF0aDogcmVzb3VyY2VQYXRoLFxuICAgICAgICAgICAgICAgIG1ldGhvZDogbWV0aG9kLnRvVXBwZXJDYXNlKCksXG4gICAgICAgICAgICAgICAgY29udGVudFR5cGU6IGNvbnRlbnRUeXBlSGVhZGVyLmpvaW4oJywnKSxcbiAgICAgICAgICAgICAgICBhY2NlcHRzOiBhY2NlcHRzSGVhZGVyLmpvaW4oJywnKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBfZmluYWxseSA9IHJlc291cmNlSGFuZGxlci5maW5hbGx5IHx8IG5vb3A7XG5cbiAgICAgICAgICAgIGNvbnN0IGNhbGxiYWNrQXJnczogYW55W10gPSBbY3R4LCByZXF1ZXN0LCByZXNwb25zZSwgcmVzb3VyY2VIYW5kbGVyLCB0aGlzXTtcblxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsb2dnZXIudHJhY2UoJ0JlZm9yZSBzZXJ2aW5nIHJlcXVlc3QgZm9yIFJlc291cmNlW3t9XSwgTWV0aG9kW3t9XSwgQ29udGVudC1UeXBlW3t9XSwgQWNjZXB0W3t9XScsIHJlc291cmNlUGF0aCwgbWV0aG9kLnRvVXBwZXJDYXNlKCksIGNvbnRlbnRUeXBlSGVhZGVyLCBhY2NlcHRzSGVhZGVyKTtcbiAgICAgICAgICAgICAgICBfYmVmb3JlLmFwcGx5KHRoaXMsIGNhbGxiYWNrQXJncyk7XG5cbiAgICAgICAgICAgICAgICBpZiAoIXJlc3BvbnNlLmlzQ29tbWl0dGVkKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLnRyYWNlKCdTZXJ2aW5nIHJlcXVlc3QgZm9yIFJlc291cmNlW3t9XSwgTWV0aG9kW3t9XSwgQ29udGVudC1UeXBlW3t9XSwgQWNjZXB0W3t9XScsIHJlc291cmNlUGF0aCwgbWV0aG9kLnRvVXBwZXJDYXNlKCksIGNvbnRlbnRUeXBlSGVhZGVyLCBhY2NlcHRzSGVhZGVyKTtcbiAgICAgICAgICAgICAgICAgICAgX3NlcnZlLmFwcGx5KHRoaXMsIGNhbGxiYWNrQXJncyk7XG4gICAgICAgICAgICAgICAgICAgIGxvZ2dlci50cmFjZSgnU2VydmluZyByZXF1ZXN0IGZvciBSZXNvdXJjZVt7fV0sIE1ldGhvZFt7fV0sIENvbnRlbnQtVHlwZVt7fV0sIEFjY2VwdFt7fV0gZmluaXNoZWQnLCByZXNvdXJjZVBhdGgsIG1ldGhvZC50b1VwcGVyQ2FzZSgpLCBjb250ZW50VHlwZUhlYWRlciwgYWNjZXB0c0hlYWRlcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBjYWxsYmFja0FyZ3Muc3BsaWNlKDEsIDAsIGVycik7XG4gICAgICAgICAgICAgICAgICAgIF9jYXRjaC5hcHBseSh0aGlzLCBjYWxsYmFja0FyZ3MpO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKF9jYXRjaEVycikge1xuICAgICAgICAgICAgICAgICAgICBsb2dnZXIuZXJyb3IoJ1NlcnZpbmcgcmVxdWVzdCBmb3IgUmVzb3VyY2Vbe31dLCBNZXRob2Rbe31dLCBDb250ZW50LVR5cGVbe31dLCBBY2NlcHRbe31dIGVycm9yIGhhbmRsZXIgdGhyZXcgZXJyb3InLCBfY2F0Y2hFcnIpO1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBfY2F0Y2hFcnI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgICBIdHRwQ29udHJvbGxlci5wcm90b3R5cGUuY2xvc2VSZXNwb25zZS5jYWxsKHRoaXMpO1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIF9maW5hbGx5LmFwcGx5KHRoaXMsIFtdKTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChfZmluYWxseUVycikge1xuICAgICAgICAgICAgICAgICAgICBsb2dnZXIuZXJyb3IoJ1NlcnZpbmcgcmVxdWVzdCBmb3IgUmVzb3VyY2Vbe31dLCBNZXRob2Rbe31dLCBDb250ZW50LVR5cGVbe31dLCBBY2NlcHRbe31dIHBvc3QgaGFuZGxlciB0aHJldyBlcnJvcicsIF9maW5hbGx5RXJyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsb2dnZXIuZXJyb3IoJ05vIHN1aXRhYmxlIHJlc291cmNlIGhhbmRsZXIgZm9yIFJlc291cmNlW3t9XSwgTWV0aG9kW3t9XSwgQ29udGVudC1UeXBlW3t9XSwgQWNjZXB0W3t9XSBmb3VuZCcsIHJlc291cmNlUGF0aCwgbWV0aG9kLnRvVXBwZXJDYXNlKCksIGNvbnRlbnRUeXBlSGVhZGVyLCBhY2NlcHRzSGVhZGVyKTtcblx0XHRcdGxvZ2dlci5lcnJvcignUmVnaXN0ZXJlZCByZXNvdXJjZSBoYW5kbGVycyBmb3IgUmVzb3VyY2Vbe31dIGFyZSBbe31dJywgcmVzb3VyY2VQYXRoLCBKU09OLnN0cmluZ2lmeShfb0NvbmZpZ3VyYXRpb24pKTtcbiAgICAgICAgICAgIHRoaXMuc2VuZEVycm9yKHJlc3BvbnNlLkJBRF9SRVFVRVNULCB1bmRlZmluZWQsICdCYWQgUmVxdWVzdCcsICdObyBzdWl0YWJsZSBwcm9jZXNzb3IgZm9yIHRoaXMgcmVxdWVzdC4nKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIFJlc291cmNlTWFwcGluZ3MgaW5zdGFuY2Ugb2YgdGhpcyBjb250cm9sbGVyLlxuICAgICAqL1xuICAgIG1hcHBpbmdzKCk6IFJlc291cmNlTWFwcGluZ3Mge1xuICAgICAgICByZXR1cm4gdGhpcy5yZXNvdXJjZU1hcHBpbmdzO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBTZW5kcyBhbiBlcnJvciByZXNwb25zZSB0byB0aGUgY2xpZW50LCBmb3JtYXR0ZWQgYmFzZWQgb24gdGhlIGFjY2VwdGVkIG1lZGlhIHR5cGUuXG4gICAgICovXG4gICAgc2VuZEVycm9yKGh0dHBFcnJvckNvZGU6IG51bWJlciwgYXBwbGljYXRpb25FcnJvckNvZGU6IGFueSwgZXJyb3JOYW1lOiBzdHJpbmcsIGVycm9yRGV0YWlsczogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNsaWVudEFjY2VwdE1lZGlhVHlwZXM6IHN0cmluZ1tdID0gbm9ybWFsaXplTWVkaWFUeXBlSGVhZGVyVmFsdWUocmVxdWVzdC5nZXRIZWFkZXIoJ0FjY2VwdCcpKSB8fCBbJ2FwcGxpY2F0aW9uL2pzb24nXTtcbiAgICAgICAgY29uc3QgaXNIdG1sOiBib29sZWFuID0gY2xpZW50QWNjZXB0TWVkaWFUeXBlcy5zb21lKChhY2NlcHRNZWRpYVR5cGUpID0+IGlzTWltZVR5cGVDb21wYXRpYmxlKCcqL2h0bWwnLCBhY2NlcHRNZWRpYVR5cGUpKTtcblxuICAgICAgICByZXNwb25zZS5zZXRTdGF0dXMoaHR0cEVycm9yQ29kZSB8fCByZXNwb25zZS5JTlRFUk5BTF9TRVJWRVJfRVJST1IpO1xuXG4gICAgICAgIGlmIChpc0h0bWwpIHtcbiAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2U6IHN0cmluZyA9IGVycm9yTmFtZSArIChhcHBsaWNhdGlvbkVycm9yQ29kZSAhPT0gdW5kZWZpbmVkID8gJ1snICsgYXBwbGljYXRpb25FcnJvckNvZGUgKyAnXScgOiAnJykgKyAoZXJyb3JEZXRhaWxzID8gJzogJyArIGVycm9yRGV0YWlscyA6ICcnKTtcbiAgICAgICAgICAgIHJlc3BvbnNlLnNlbmRFcnJvcihodHRwRXJyb3JDb2RlIHx8IHJlc3BvbnNlLklOVEVSTkFMX1NFUlZFUl9FUlJPUiwgbWVzc2FnZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBib2R5ID0ge1xuICAgICAgICAgICAgICAgIFwiY29kZVwiOiBhcHBsaWNhdGlvbkVycm9yQ29kZSxcbiAgICAgICAgICAgICAgICBcImVycm9yXCI6IGVycm9yTmFtZSxcbiAgICAgICAgICAgICAgICBcImRldGFpbHNcIjogZXJyb3JEZXRhaWxzXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmVzcG9uc2Uuc2V0SGVhZGVyKFwiQ29udGVudC1UeXBlXCIsIFwiYXBwbGljYXRpb24vanNvblwiKTtcbiAgICAgICAgICAgIHJlc3BvbnNlLnByaW50KEpTT04uc3RyaW5naWZ5KGJvZHksIG51bGwsIDIpKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNsb3NlUmVzcG9uc2UoKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogRmx1c2hlcyBhbmQgY2xvc2VzIHRoZSBIVFRQIHJlc3BvbnNlIHN0cmVhbS5cbiAgICAgKi9cbiAgICBjbG9zZVJlc3BvbnNlKCk6IHZvaWQge1xuICAgICAgICByZXNwb25zZS5mbHVzaCgpO1xuICAgICAgICByZXNwb25zZS5jbG9zZSgpO1xuICAgIH07XG59XG5cbi8qKlxuICogQ3VzdG9tIHNvcnQgZnVuY3Rpb24gZm9yIG1hdGNoZWQgcm91dGUgZGVmaW5pdGlvbnMsIHByZWZlcnJpbmcgZXhhY3QgbWF0Y2hlcyBvdmVyIHRob3NlIHdpdGggcGxhY2Vob2xkZXJzLlxuICovXG5mdW5jdGlvbiBtYXRjaGVkUm91dGVEZWZpbml0aW9uc1NvcnRlcihwOiBhbnksIG46IGFueSk6IG51bWJlciB7XG4gICAgcC53ID0gY2FsY3VsYXRlTWF0Y2hlZFJvdXRlV2VpZ2h0KHApO1xuICAgIG4udyA9IGNhbGN1bGF0ZU1hdGNoZWRSb3V0ZVdlaWdodChuKTtcblxuICAgIGlmIChuLncgPT09IHAudykge1xuICAgICAgICAvLyBUaGUgb25lIHdpdGggbGVzcyBwbGFjZWhvbGRlcnMgd2luc1xuICAgICAgICBjb25zdCBtMSA9IHAuZC5tYXRjaCgveyguKj8pfS9nKTtcbiAgICAgICAgY29uc3QgcGxhY2Vob2xkZXJzQ291bnQxID0gbTEgIT09IG51bGwgPyBtMS5sZW5ndGggOiAwO1xuICAgICAgICBjb25zdCBtMiA9IG4uZC5tYXRjaCgveyguKj8pfS9nKTtcbiAgICAgICAgY29uc3QgcGxhY2Vob2xkZXJzQ291bnQyID0gbTIgIT09IG51bGwgPyBtMi5sZW5ndGggOiAwO1xuICAgICAgICBpZiAocGxhY2Vob2xkZXJzQ291bnQxID4gcGxhY2Vob2xkZXJzQ291bnQyKSB7XG4gICAgICAgICAgICBuLncgPSBuLncgKyAxO1xuICAgICAgICB9IGVsc2UgaWYgKHBsYWNlaG9sZGVyc0NvdW50MSA8IHBsYWNlaG9sZGVyc0NvdW50Mikge1xuICAgICAgICAgICAgcC53ID0gcC53ICsgMTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbi53IC0gcC53O1xufVxuXG4vKipcbiAqIENhbGN1bGF0ZXMgdGhlIGluaXRpYWwgd2VpZ2h0IG9mIGEgbWF0Y2hlZCByb3V0ZSBkZWZpbml0aW9uLlxuICovXG5mdW5jdGlvbiBjYWxjdWxhdGVNYXRjaGVkUm91dGVXZWlnaHQobWF0Y2hlZFJvdXRlOiBhbnkpOiBudW1iZXIge1xuICAgIHJldHVybiAobWF0Y2hlZFJvdXRlLnBhcmFtcyAmJiBPYmplY3Qua2V5cyhtYXRjaGVkUm91dGUucGFyYW1zKS5sZW5ndGggPiAwKSA/IDAgOiAxOyAvLyBhbHdheXMgcHJlZmVyIGV4YWN0IHJvdXRlIGRlZmluaXRpb25zIC0gc2V0IHdlaWdodCB0byAxXG59XG5cbi8qKlxuICogVHJhbnNmb3JtcyBwYXRoIHBhcmFtZXRlcnMgZGVjbGFyZWQgaW4gYnJhY2VzIChlLmcuLCAnL2FwaS97cGF0aFBhcmFtfScpIHRvIHBhdGgtdG8tcmVnZXhwIGZvcm1hdCAoZS5nLiwgJy9hcGkvOnBhdGhQYXJhbScpLlxuICovXG5mdW5jdGlvbiB0cmFuc2Zvcm1QYXRoUGFyYW1zRGVjbGFyZWRJbkJyYWNlcyhwYXRoRGVmaW5pdGlvbjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBwYXRoUGFyYW1zSW5CcmFjZXNNYXRjaGVyID0gLyh7KFxcdypcXCo/KX0pL2c7IC8vIG1hdGNoZXMgY2FzZXMgbGlrZSAnL2FwaS97cGF0aFBhcmFtfScgb3IgJy9hcGkve3BhdGhQYXJhbSp9J1xuICAgIHJldHVybiBwYXRoRGVmaW5pdGlvbi5yZXBsYWNlKHBhdGhQYXJhbXNJbkJyYWNlc01hdGNoZXIsIFwiOiQyXCIpOyAvLyB0cmFuc2Zvcm1zIG1hdGNoZWQgY2FzZXMgdG8gJy9hcGkvOnBhdGhQYXJhbScgb3IgJy9hcGkvOnBhdGhQYXJhbSonXG59XG5cbi8qKlxuICogRmluZHMgYWxsIHJvdXRlcyBpbiB0aGUgY29uZmlndXJhdGlvbiB0aGF0IG1hdGNoIHRoZSByZXF1ZXN0IHBhdGggYW5kIG1ldGhvZC5cbiAqL1xuZnVuY3Rpb24gbWF0Y2hSZXF1ZXN0VXJsKHJlcXVlc3RQYXRoOiBzdHJpbmcsIG1ldGhvZDogc3RyaW5nLCBjZmc6IGFueSk6IGFueVtdIHtcbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMoY2ZnKVxuICAgICAgICAuZmlsdGVyKChbXywgaGFuZGxlcnNdKSA9PiBoYW5kbGVycyAmJiAoaGFuZGxlcnMgYXMgYW55KVttZXRob2RdKVxuICAgICAgICAubWFwKChbcGF0aCwgX10pID0+IHBhdGgpXG4gICAgICAgIC5yZWR1Y2UoKG1hdGNoZXM6IGFueVtdLCBwYXRoOiBzdHJpbmcpID0+IG1hdGNoaW5nUm91dGVEZWZpbml0aW9uc1JlZHVjZXIobWF0Y2hlcywgcGF0aCwgcmVxdWVzdFBhdGgpLCBbXSlcbiAgICAgICAgLnNvcnQobWF0Y2hlZFJvdXRlRGVmaW5pdGlvbnNTb3J0ZXIpO1xufVxuXG4vKipcbiAqIFJlZHVjZXIgZnVuY3Rpb24gdG8gYXR0ZW1wdCBtYXRjaGluZyBhIGRlZmluZWQgcGF0aCBhZ2FpbnN0IHRoZSByZXF1ZXN0IHBhdGggdXNpbmcgcGF0aC10by1yZWdleHAuXG4gKi9cbmZ1bmN0aW9uIG1hdGNoaW5nUm91dGVEZWZpbml0aW9uc1JlZHVjZXIobWF0Y2hlZERlZmluaXRpb25zOiBhbnlbXSwgZGVmaW5lZFBhdGg6IHN0cmluZywgcmVxdWVzdFBhdGg6IHN0cmluZyk6IGFueVtdIHtcbiAgICAvLyAnbWF0Y2gnIGZyb20gcGF0aC10by1yZWdleHAgaXMgdXNlZCBoZXJlXG4gICAgY29uc3QgcGF0aE1hdGNoZXIgPSBtYXRjaCh0cmFuc2Zvcm1QYXRoUGFyYW1zRGVjbGFyZWRJbkJyYWNlcyhkZWZpbmVkUGF0aCkpO1xuICAgIGNvbnN0IG1hdGNoZWQgPSBwYXRoTWF0Y2hlcihyZXF1ZXN0UGF0aCk7XG5cbiAgICBpZiAobWF0Y2hlZCkge1xuICAgICAgICAvLyBFbnN1cmUgcGF0aFBhcmFtcyBpcyBhbiBvYmplY3Qgb2Yga2V5L3ZhbHVlIHBhaXJzXG4gICAgICAgIGNvbnN0IHBhdGhQYXJhbXMgPSBtYXRjaGVkLnBhcmFtcztcblxuICAgICAgICBjb25zdCBtYXRjaGVkRGVmaW5pdGlvbiA9IHtcbiAgICAgICAgICAgIHA6IHJlcXVlc3RQYXRoLFxuICAgICAgICAgICAgZDogZGVmaW5lZFBhdGgsXG4gICAgICAgICAgICBwYXRoUGFyYW1zOiBwYXRoUGFyYW1zXG4gICAgICAgIH07XG4gICAgICAgIG1hdGNoZWREZWZpbml0aW9ucy5wdXNoKG1hdGNoZWREZWZpbml0aW9uKTtcbiAgICB9XG4gICAgcmV0dXJuIG1hdGNoZWREZWZpbml0aW9ucztcbn1cblxuLyoqXG4gKiBOb3JtYWxpemVzIGFuIEhUVFAgbWVkaWEgdHlwZSBoZWFkZXIgdmFsdWUgKGUuZy4sIFwidGV4dC9wbGFpbjsgcT0wLjksIGFwcGxpY2F0aW9uL2pzb25cIikuXG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZU1lZGlhVHlwZUhlYWRlclZhbHVlKHNNZWRpYVR5cGU6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwpOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHNNZWRpYVR5cGUgPT09IHVuZGVmaW5lZCB8fCBzTWVkaWFUeXBlID09PSBudWxsKVxuICAgICAgICByZXR1cm47XG4gICAgLy8gY29udmVydCB0byBhcnJheSBvZiBpbmRpdmlkdWFsIHR5cGVzXG4gICAgbGV0IGFyck1lZGlhVHlwZSA9IHNNZWRpYVR5cGUuc3BsaXQoJywnKTtcbiAgICBhcnJNZWRpYVR5cGUgPSBhcnJNZWRpYVR5cGUubWFwKChtaW1lVHlwZUVudHJ5KSA9PiB7XG4gICAgICAgIC8vIHJlbW92ZSBlc2NhcGluZywgcmVtb3ZlIHF1YWxpdHkgb3Igb3RoZXIgYXR0cmlidXRlcyAoZS5nLiwgJzsgcT0wLjknKVxuICAgICAgICByZXR1cm4gbWltZVR5cGVFbnRyeS5yZXBsYWNlKCdcXFxcJywgJycpLnNwbGl0KCc7JylbMF0udHJpbSgpO1xuICAgIH0pO1xuICAgIHJldHVybiBhcnJNZWRpYVR5cGUuZmlsdGVyKHR5cGUgPT4gdHlwZS5sZW5ndGggPiAwKTtcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgYSBzb3VyY2UgTUlNRSB0eXBlIGlzIGNvbXBhdGlibGUgd2l0aCBhIHRhcmdldCBNSU1FIHR5cGUsIHN1cHBvcnRpbmcgd2lsZGNhcmRzICgqKS5cbiAqL1xuZnVuY3Rpb24gaXNNaW1lVHlwZUNvbXBhdGlibGUoc291cmNlOiBzdHJpbmcsIHRhcmdldDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKHNvdXJjZSA9PT0gdGFyZ2V0KVxuICAgICAgICByZXR1cm4gdHJ1ZTtcblxuICAgIGNvbnN0IHRhcmdldE0gPSB0YXJnZXQuc3BsaXQoJy8nKTtcbiAgICBjb25zdCBzb3VyY2VNID0gc291cmNlLnNwbGl0KCcvJyk7XG5cbiAgICAvLyBUYXJnZXQgaXMgd2lsZGNhcmQgdHlwZSwgU291cmNlIGhhcyBhIHNwZWNpZmljIHN1YnR5cGUgKGUuZy4sIHRhcmdldD0qL2pzb24sIHNvdXJjZT1hcHBsaWNhdGlvbi9qc29uKVxuICAgIGlmICh0YXJnZXRNWzBdID09PSAnKicgJiYgdGFyZ2V0TVsxXSA9PT0gc291cmNlTVsxXSlcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgLy8gU291cmNlIGlzIHdpbGRjYXJkIHR5cGUsIFRhcmdldCBoYXMgYSBzcGVjaWZpYyBzdWJ0eXBlIChlLmcuLCBzb3VyY2U9Ki9qc29uLCB0YXJnZXQ9YXBwbGljYXRpb24vanNvbilcbiAgICBpZiAoc291cmNlTVswXSA9PT0gJyonICYmIHRhcmdldE1bMV0gPT09IHNvdXJjZU1bMV0pXG4gICAgICAgIHJldHVybiB0cnVlO1xuXG4gICAgLy8gVGFyZ2V0IGlzIHdpbGRjYXJkIHN1YnR5cGUsIFNvdXJjZSBoYXMgYSBzcGVjaWZpYyB0eXBlIChlLmcuLCB0YXJnZXQ9YXBwbGljYXRpb24vKiwgc291cmNlPWFwcGxpY2F0aW9uL2pzb24pXG4gICAgaWYgKHRhcmdldE1bMV0gPT09ICcqJyAmJiB0YXJnZXRNWzBdID09PSBzb3VyY2VNWzBdKVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAvLyBTb3VyY2UgaXMgd2lsZGNhcmQgc3VidHlwZSwgVGFyZ2V0IGhhcyBhIHNwZWNpZmljIHR5cGUgKGUuZy4sIHNvdXJjZT1hcHBsaWNhdGlvbi8qLCB0YXJnZXQ9YXBwbGljYXRpb24vanNvbilcbiAgICBpZiAoc291cmNlTVsxXSA9PT0gJyonICYmIHRhcmdldE1bMF0gPT09IHNvdXJjZU1bMF0pXG4gICAgICAgIHJldHVybiB0cnVlO1xuXG4gICAgcmV0dXJuIGZhbHNlO1xufVxuXG4vKipcbiAqIERlZmF1bHQgZXJyb3IgaGFuZGxlciBmdW5jdGlvbi5cbiAqL1xuY29uc3QgY2F0Y2hFcnJvckhhbmRsZXIgPSBmdW5jdGlvbiAodGhpczogSHR0cENvbnRyb2xsZXIsIGxvZ2N0eDogYW55LCBjdHg6IFJlcXVlc3RDb250ZXh0LCBlcnI6IGFueSwgcmVxdWVzdDogYW55LCByZXNwb25zZTogYW55KTogdm9pZCB7XG4gICAgaWYgKGN0eC5zdXBwcmVzc1N0YWNrKSB7XG4gICAgICAgIGNvbnN0IGRldGFpbHNNc2cgPSAoY3R4LmVycm9yTmFtZSB8fCBcIlwiKSArIChjdHguZXJyb3JDb2RlID8gXCIgW1wiICsgY3R4LmVycm9yQ29kZSArIFwiXVwiIDogXCJcIikgKyAoY3R4LmVycm9yTWVzc2FnZSA/IFwiOiBcIiArIGN0eC5lcnJvck1lc3NhZ2UgOiBcIlwiKTtcbiAgICAgICAgbG9nZ2VyLmluZm8oJ1NlcnZpbmcgcmVzb3VyY2Vbe31dLCBWZXJiW3t9XSwgQ29udGVudC1UeXBlW3t9XSwgQWNjZXB0W3t9XSBmaW5pc2hlZCBpbiBlcnJvci4ge30nLCBsb2djdHgucGF0aCwgbG9nY3R4Lm1ldGhvZCwgbG9nY3R4LmNvbnRlbnRUeXBlLCBsb2djdHguYWNjZXB0cywgZGV0YWlsc01zZyk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgbG9nZ2VyLmVycm9yKCdTZXJ2aW5nIHJlc291cmNlW3t9XSwgVmVyYlt7fV0sIENvbnRlbnQtVHlwZVt7fV0sIEFjY2VwdFt7fV0gZmluaXNoZWQgaW4gZXJyb3InLCBsb2djdHgucGF0aCwgbG9nY3R4Lm1ldGhvZCwgbG9nY3R4LmNvbnRlbnRUeXBlLCBsb2djdHguYWNjZXB0cywgZXJyKTtcbiAgICB9XG5cbiAgICBjb25zdCBodHRwRXJyb3JDb2RlID0gY3R4Lmh0dHBFcnJvckNvZGUgfHwgcmVzcG9uc2UuSU5URVJOQUxfU0VSVkVSX0VSUk9SO1xuICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGN0eC5lcnJvck1lc3NhZ2UgfHwgKGVyciAmJiBlcnIubWVzc2FnZSk7XG4gICAgY29uc3QgZXJyb3JOYW1lID0gY3R4LmVycm9yTmFtZSB8fCAoZXJyICYmIGVyci5uYW1lKTtcbiAgICBjb25zdCBlcnJvckNvZGUgPSBjdHguZXJyb3JDb2RlO1xuXG4gICAgdGhpcy5zZW5kRXJyb3IoaHR0cEVycm9yQ29kZSwgZXJyb3JDb2RlLCBlcnJvck5hbWUsIGVycm9yTWVzc2FnZSk7XG59O1xuXG4vKipcbiAqIENoZWNrcyBpZiB0aGUgcmVxdWVzdCBtZWRpYSB0eXBlcyBtYXRjaCB0aGUgcmVzb3VyY2UgaGFuZGxlcidzIGNvbnN1bWVzIGFuZCBwcm9kdWNlcyBjb25zdHJhaW50cy5cbiAqL1xuY29uc3QgbWF0Y2hNZWRpYVR5cGUgPSBmdW5jdGlvbiAocmVxdWVzdDogYW55LCBwcm9kdWNlc01lZGlhVHlwZXM6IHN0cmluZ1tdLCBjb25zdW1lc01lZGlhVHlwZXM6IHN0cmluZ1tdKTogYm9vbGVhbiB7XG4gICAgbGV0IGlzUHJvZHVjZU1hdGNoZWQgPSBmYWxzZTtcbiAgICBjb25zdCBhY2NlcHRzTWVkaWFUeXBlcyA9IG5vcm1hbGl6ZU1lZGlhVHlwZUhlYWRlclZhbHVlKHJlcXVlc3QuZ2V0SGVhZGVyKCdBY2NlcHQnKSk7XG5cbiAgICAvLyAxLiBDaGVjayBQcm9kdWNlcyAoQWNjZXB0cyBoZWFkZXIpXG4gICAgaWYgKCFhY2NlcHRzTWVkaWFUeXBlcyB8fCBhY2NlcHRzTWVkaWFUeXBlcy5sZW5ndGggPT09IDAgfHwgYWNjZXB0c01lZGlhVHlwZXMuaW5jbHVkZXMoJyovKicpKSB7XG4gICAgICAgIC8vIE91dHB1dCBtZWRpYSB0eXBlIGlzIG5vdCByZXN0cmljdGVkIGJ5IGNsaWVudCBvciBjbGllbnQgYWNjZXB0cyBhbnl0aGluZ1xuICAgICAgICBpc1Byb2R1Y2VNYXRjaGVkID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBpZiAocHJvZHVjZXNNZWRpYVR5cGVzICYmIHByb2R1Y2VzTWVkaWFUeXBlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoZWRQcm9kdWNlc01JTUUgPSBhY2NlcHRzTWVkaWFUeXBlcy5maWx0ZXIoKGFjY2VwdHNNZWRpYVR5cGUpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcHJvZHVjZXNNZWRpYVR5cGVzLnNvbWUoKHByb2R1Y2VzTWVkaWFUeXBlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBpc01pbWVUeXBlQ29tcGF0aWJsZShhY2NlcHRzTWVkaWFUeXBlLCBwcm9kdWNlc01lZGlhVHlwZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlzUHJvZHVjZU1hdGNoZWQgPSBtYXRjaGVkUHJvZHVjZXNNSU1FICYmIG1hdGNoZWRQcm9kdWNlc01JTUUubGVuZ3RoID4gMDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIFJlc291cmNlIGRvZXNuJ3Qgc3BlY2lmeSBwcm9kdWNlcywgc28gaXQgbWF0Y2hlcyBpZiB0aGUgY2xpZW50IGFjY2VwdHMgYW55dGhpbmcgb3IgaWYgcHJvZHVjZXMgaXMgYW4gZW1wdHkgYXJyYXlcbiAgICAgICAgICAgIGlzUHJvZHVjZU1hdGNoZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gMi4gQ2hlY2sgQ29uc3VtZXMgKENvbnRlbnQtVHlwZSBoZWFkZXIpXG4gICAgbGV0IGlzQ29uc3VtZU1hdGNoZWQgPSBmYWxzZTtcbiAgICBjb25zdCBjb250ZW50VHlwZU1lZGlhVHlwZXMgPSBub3JtYWxpemVNZWRpYVR5cGVIZWFkZXJWYWx1ZShyZXF1ZXN0LmdldENvbnRlbnRUeXBlKCkpO1xuXG4gICAgaWYgKCFjb25zdW1lc01lZGlhVHlwZXMgfHwgY29uc3VtZXNNZWRpYVR5cGVzLmxlbmd0aCA9PT0gMCB8fCBjb25zdW1lc01lZGlhVHlwZXMuaW5jbHVkZXMoJyovKicpKSB7XG4gICAgICAgIC8vIElucHV0IG1lZGlhIHR5cGUgaXMgbm90IHJlc3RyaWN0ZWQgYnkgcmVzb3VyY2Ugb3IgcmVzb3VyY2UgYWNjZXB0cyBhbnl0aGluZ1xuICAgICAgICBpc0NvbnN1bWVNYXRjaGVkID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoY29udGVudFR5cGVNZWRpYVR5cGVzICYmIGNvbnN1bWVzTWVkaWFUeXBlcyAmJiBjb25zdW1lc01lZGlhVHlwZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBtYXRjaGVkQ29uc3VtZXNNSU1FID0gY29udGVudFR5cGVNZWRpYVR5cGVzLmZpbHRlcigoY29udGVudFR5cGVNZWRpYVR5cGUpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY29uc3VtZXNNZWRpYVR5cGVzLnNvbWUoKGNvbnN1bWVzTWVkaWFUeXBlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBpc01pbWVUeXBlQ29tcGF0aWJsZShjb250ZW50VHlwZU1lZGlhVHlwZSwgY29uc3VtZXNNZWRpYVR5cGUpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpc0NvbnN1bWVNYXRjaGVkID0gbWF0Y2hlZENvbnN1bWVzTUlNRSAmJiBtYXRjaGVkQ29uc3VtZXNNSU1FLmxlbmd0aCA+IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gaXNQcm9kdWNlTWF0Y2hlZCAmJiBpc0NvbnN1bWVNYXRjaGVkO1xufTtcbiJdLAogICJtYXBwaW5ncyI6ICJBQWlDQSxTQUFTLFlBQVksZ0JBQWdCO0FBQ3JDLFNBQVMsV0FBVyxlQUFlO0FBQ25DLFNBQVMsd0JBQXdCO0FBQ2pDLFNBQVMsZUFBZTtBQUl4QixNQUFNLEVBQUUsTUFBTSxJQUFJLGlCQUFpQixnREFBZ0Q7QUFFbkYsTUFBTSxTQUFjLFFBQVEsVUFBVSxvQkFBb0I7QUFvQjFELFNBQVMsYUFBa0I7QUFDdkIsU0FBTztBQUNYO0FBQ0EsU0FBUyxjQUFtQjtB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
|
|
@@ -111,4 +111,4 @@ class ResourceMappings {
|
|
|
111
111
|
export {
|
|
112
112
|
ResourceMappings
|
|
113
113
|
};
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2h0dHAvcnMvcmVzb3VyY2UtbWFwcGluZ3MudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IFJlc291cmNlIH0gZnJvbSBcIi4vcmVzb3VyY2VcIjtcblxuLyoqXG4gKiBUaGUgUmVzb3VyY2VNYXBwaW5ncyBjbGFzcyBhYnN0cmFjdHMgdGhlIG1hcHBpbmdzIGJldHdlZW4gcmVzb3VyY2UgVVJMIHBhdGggdGVtcGxhdGVzXG4gKiBhbmQgdGhlaXIgY29ycmVzcG9uZGluZyByZXNvdXJjZSBoYW5kbGVyIHNwZWNpZmljYXRpb25zLiBJdCBhY3RzIGFzIHRoZSBjb25maWd1cmF0aW9uXG4gKiBzdG9yZSBmb3IgdGhlIEh0dHBDb250cm9sbGVyLlxuICovXG5leHBvcnQgY2xhc3MgUmVzb3VyY2VNYXBwaW5ncyB7XG4gICAgLy8gTWFwIG9mIHJlc291cmNlIHBhdGggKHN0cmluZykgdG8gdGhlIFJlc291cmNlIGluc3RhbmNlICh0eXBlZCBhcyBhbnkgZm9yIGZsZXhpYmlsaXR5KVxuICAgIHJlc291cmNlczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xuICAgIGNvbnRyb2xsZXI6IGFueTsgLy8gUmVwcmVzZW50cyB0aGUgSHR0cENvbnRyb2xsZXIgaW5zdGFuY2VcbiAgICBleGVjdXRlOiBhbnk7IC8vIEJvdW5kIGV4ZWN1dGUgZnVuY3Rpb24gZnJvbSB0aGUgSHR0cENvbnRyb2xsZXJcblxuICAgIC8qKlxuICAgICAqIENvbnN0cnVjdG9yIGZ1bmN0aW9uIGZvciBSZXNvdXJjZU1hcHBpbmdzIGluc3RhbmNlcy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBvQ29uZmlndXJhdGlvbiBDb25maWd1cmF0aW9uIG9iamVjdCBkZWZpbmluZyBpbml0aWFsIHJlc291cmNlIHBhdGhzIGFuZCB0aGVpciBoYW5kbGVycy5cbiAgICAgKiBAcGFyYW0gY29udHJvbGxlciBUaGUgSHR0cENvbnRyb2xsZXIgaW5zdGFuY2UsIGZvciB3aGljaCB0aGlzIFJlc291cmNlTWFwcGluZ3MgaGFuZGxlcyBjb25maWd1cmF0aW9uLlxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKG9Db25maWd1cmF0aW9uOiBhbnksIGNvbnRyb2xsZXI6IGFueSkge1xuICAgICAgICBpZiAob0NvbmZpZ3VyYXRpb24pIHtcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKG9Db25maWd1cmF0aW9uKS5mb3JFYWNoKChzUGF0aDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNvdXJjZXNbc1BhdGhdID0gdGhpcy5yZXNvdXJjZShzUGF0aCwgb0NvbmZpZ3VyYXRpb25bc1BhdGhdKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbGxlciA9IGNvbnRyb2xsZXI7XG4gICAgICAgICAgICB0aGlzLmV4ZWN1dGUgPSBjb250cm9sbGVyLmV4ZWN1dGUuYmluZChjb250cm9sbGVyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgb3IgcmV0cmlldmVzIGEgUmVzb3VyY2Ugb2JqZWN0IGNvcnJlc3BvbmRpbmcgdG8gdGhlIGdpdmVuIHBhdGguXG4gICAgICogVGhlIHNlY29uZCwgb3B0aW9uYWwgYXJndW1lbnQgY2FuIGJlIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgcmVzb3VyY2UuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc1BhdGggVGhlIFVSTCBwYXRoIHRlbXBsYXRlIGZvciB0aGUgcmVzb3VyY2UgKGUuZy4sIFwidXNlcnMve2lkfVwiKS5cbiAgICAgKiBAcGFyYW0gb0NvbmZpZ3VyYXRpb24gT3B0aW9uYWwgY29uZmlndXJhdGlvbiBvYmplY3QgZm9yIGluaXRpYWwgcmVzb3VyY2Ugc2V0dXAuXG4gICAgICogQHJldHVybnMgVGhlIGNyZWF0ZWQgb3IgZXhpc3RpbmcgUmVzb3VyY2UgaW5zdGFuY2UuXG4gICAgICovXG4gICAgcGF0aChzUGF0aDogc3RyaW5nLCBvQ29uZmlndXJhdGlvbj86IGFueSk6IFJlc291cmNlIHtcbiAgICAgICAgaWYgKHNQYXRoICE9PSBcIlwiICYmIHNQYXRoWzBdID09PSBcIi9cIikge1xuICAgICAgICAgICAgc1BhdGggPSBzUGF0aC5zdWJzdHJpbmcoMSk7IC8vIHRyYW5zZm9ybSBcIi90ZXN0XCIgaW50byBcInRlc3RcIlxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMucmVzb3VyY2VzW3NQYXRoXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAvLyBSZXNvdXJjZSBpcyB0aGUgY2xhc3MgaW1wb3J0ZWQgZnJvbSBcIi4vcmVzb3VyY2VcIlxuICAgICAgICAgICAgdGhpcy5yZXNvdXJjZXNbc1BhdGhdID0gbmV3IFJlc291cmNlKHNQYXRoLCBvQ29uZmlndXJhdGlvbiwgdGhpcy5jb250cm9sbGVyLCB0aGlzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLnJlc291cmNlc1tzUGF0aF07XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEFsaWFzIGZvciBwYXRoKCkuXG4gICAgICovXG4gICAgcmVzb3VyY2VQYXRoKHNQYXRoOiBzdHJpbmcsIG9Db25maWd1cmF0aW9uPzogYW55KTogUmVzb3VyY2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5wYXRoKHNQYXRoLCBvQ29uZmlndXJhdGlvbik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWxpYXMgZm9yIHBhdGgoKS5cbiAgICAgKi9cbiAgICByZXNvdXJjZShzUGF0aDogc3RyaW5nLCBvQ29uZmlndXJhdGlvbj86IGFueSk6IFJlc291cmNlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGF0aChzUGF0aCwgb0NvbmZpZ3VyYXRpb24pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGNvbXBpbGVkIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGZvciBhbGwgcmVzb3VyY2VzIG1hbmFnZWQgYnkgdGhpcyBSZXNvdXJjZU1hcHBpbmdzLlxuICAgICAqIFRoZSBjb25maWd1cmF0aW9uIGlzIHN0cnVjdHVyZWQgdG8gYmUgY29uc3VtZWQgYnkgdGhlIEh0dHBDb250cm9sbGVyJ3Mgcm91dGluZyBsb2dpYy5cbiAgICAgKi9cbiAgICBjb25maWd1cmF0aW9uKCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xuICAgICAgICBjb25zdCBfY2ZnOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge307XG4gICAgICAgIE9iamVjdC5rZXlzKHRoaXMucmVzb3VyY2VzKS5mb3JFYWNoKChzUGF0aDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAvLyBBc3N1bWluZyBlYWNoIFJlc291cmNlIG9iamVjdCBoYXMgYSBjb25maWd1cmF0aW9uKCkgbWV0aG9kXG4gICAgICAgICAgICBfY2ZnW3NQYXRoXSA9IHRoaXMucmVzb3VyY2VzW3NQYXRoXS5jb25maWd1cmF0aW9uKCk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gX2NmZztcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyBhbGwgYnV0IEdFVCByZXNvdXJjZSBoYW5kbGVycyBmcm9tIGFsbCBtYW5hZ2VkIHJlc291cmNlcywgbWFraW5nIHRoZW0gcmVhZC1vbmx5LlxuICAgICAqXG4gICAgICogQHJldHVybnMgVGhlIFJlc291cmNlTWFwcGluZ3MgaW5zdGFuY2UgZm9yIG1ldGhvZCBjaGFpbmluZy5cbiAgICAgKi9cbiAgICByZWFkb25seSgpOiB0aGlzIHtcbiAgICAgICAgT2JqZWN0LmtleXModGhpcy5yZXNvdXJjZXMpLmZvckVhY2goKHNQYXRoOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVzb3VyY2VzW3NQYXRoXS5yZWFkb25seSgpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIERpc2FibGVzIHJlc291cmNlIGhhbmRsaW5nIHNwZWNpZmljYXRpb25zIG1hdGNoaW5nIHRoZSBhcmd1bWVudHMsIGVmZmVjdGl2ZWx5IHJlbW92aW5nIHRoZW0gZnJvbSB0aGlzIEFQSS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzUGF0aCBUaGUgcGF0aCBvZiB0aGUgcmVzb3VyY2UuXG4gICAgICogQHBhcmFtIHNWZXJiIFRoZSBIVFRQIHZlcmIgKGUuZy4sICdnZXQnLCAncG9zdCcpLlxuICAgICAqIEBwYXJhbSBhcnJDb25zdW1lcyBBcnJheSBvZiBjb25zdW1lZCBtZWRpYSB0eXBlcy5cbiAgICAgKiBAcGFyYW0gYXJyUHJvZHVjZXMgQXJyYXkgb2YgcHJvZHVjZWQgbWVkaWEgdHlwZXMuXG4gICAgICogQHJldHVybnMgVGhlIFJlc291cmNlTWFwcGluZ3MgaW5zdGFuY2UgZm9yIG1ldGhvZCBjaGFpbmluZy5cbiAgICAgKi9cbiAgICBkaXNhYmxlKHNQYXRoOiBzdHJpbmcsIHNWZXJiOiBzdHJpbmcsIGFyckNvbnN1bWVzOiBzdHJpbmdbXSwgYXJyUHJvZHVjZXM6IHN0cmluZ1tdKTogdGhpcyB7XG4gICAgICAgIGNvbnN0IHJlc291cmNlID0gdGhpcy5yZXNvdXJjZXNbc1BhdGhdO1xuICAgICAgICAvLyBBc3N1bWluZyB0aGUgaW50ZW50aW9uIGlzIHRvIGZpbmQgdGhlIHNpbmdsZSBSZXNvdXJjZSBpbnN0YW5jZSBhbmQgY2FsbCBkaXNhYmxlIG9uIGl0XG4gICAgICAgIGlmIChyZXNvdXJjZSAmJiB0eXBlb2YgcmVzb3VyY2UuZGlzYWJsZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgIHJlc291cmNlLmRpc2FibGUoc1ZlcmIsIGFyckNvbnN1bWVzLCBhcnJQcm9kdWNlcyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFByb3ZpZGVzIGEgcmVmZXJlbmNlIHRvIGEgaGFuZGxlciBzcGVjaWZpY2F0aW9uIG1hdGNoaW5nIHRoZSBzdXBwbGllZCBhcmd1bWVudHMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc1BhdGggVGhlIHBhdGggb2YgdGhlIHJlc291cmNlLlxuICAgICAqIEBwYXJhbSBzVmVyYiBUaGUgSFRUUCB2ZXJiIChlLmcuLCAnZ2V0JywgJ3Bvc3QnKS5cbiAgICAgKiBAcGFyYW0gYXJyQ29uc3VtZXMgQXJyYXkgb2YgY29uc3VtZWQgbWVkaWEgdHlwZXMuXG4gICAgICogQHBhcmFtIGFyclByb2R1Y2VzIEFycmF5IG9mIHByb2R1Y2VkIG1lZGlhIHR5cGVzLlxuICAgICAqIEByZXR1cm5zIFRoZSBtYXRjaGluZyBSZXNvdXJjZSBoYW5kbGVyIHNwZWNpZmljYXRpb24gb3IgdW5kZWZpbmVkLlxuICAgICAqL1xuICAgIGZpbmQoc1BhdGg6IHN0cmluZywgc1ZlcmI6IHN0cmluZywgYXJyQ29uc3VtZXM6IHN0cmluZ1tdLCBhcnJQcm9kdWNlczogc3RyaW5nW10pOiBhbnkgfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAodGhpcy5yZXNvdXJjZXNbc1BhdGhdKSB7XG4gICAgICAgICAgICAvLyBBc3N1bWluZyBSZXNvdXJjZSBpbnN0YW5jZSBoYXMgYSBmaW5kIG1ldGhvZFxuICAgICAgICAgICAgY29uc3QgaGl0ID0gdGhpcy5yZXNvdXJjZXNbc1BhdGhdLmZpbmQoc1ZlcmIsIGFyckNvbnN1bWVzLCBhcnJQcm9kdWNlcyk7XG4gICAgICAgICAgICBpZiAoaGl0KVxuICAgICAgICAgICAgICAgIHJldHVybiBoaXQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuO1xuICAgIH07XG59Il0sCiAgIm1hcHBpbmdzIjogIkFBQUEsU0FBUyxnQkFBZ0I7QUFPbEIsTUFBTSxpQkFBaUI7QUFBQTtBQUFBLEVBRTFCLFlBQW9DLENBQUM7QUFBQSxFQUNyQztBQUFBO0FBQUEsRUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRQSxZQUFZLGdCQUFxQixZQUFpQjtBQUM5QyxRQUFJLGdCQUFnQjtBQUNoQixhQUFPLEtBQUssY0FBYyxFQUFFLFFBQVEsQ0FBQyxVQUFrQjtBQUNuRCxhQUFLLFVBQVUsS0FBSyxJQUFJLEtBQUssU0FBUyxPQUFPLGVBQWUsS0FBSyxDQUFDO0FBQUEsTUFDdEUsQ0FBQztBQUFBLElBQ0w7QUFFQSxRQUFJLFlBQVk7QUFDWixXQUFLLGFBQWE7QUFDbEIsV0FBSyxVQUFVLFdBQVcsUUFBUSxLQUFLLFVBQVU7QUFBQSxJQUNyRDtBQUFBLEVBQ0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFVQSxLQUFLLE9BQWUsZ0JBQWdDO0FBQ2hELFFBQUksVUFBVSxNQUFNLE1BQU0sQ0FBQyxNQUFNLEtBQUs7QUFDbEMsY0FBUSxNQUFNLFVBQVUsQ0FBQztBQUFBLElBQzdCO0FBRUEsUUFBSSxLQUFLLFVBQVUsS0FBSyxNQUFNLFFBQVc7QUFFckMsV0FBSyxVQUFVLEtBQUssSUFBSSxJQUFJLFNBQVMsT0FBTyxnQkFBZ0IsS0FBSyxZQUFZLElBQUk7QUFBQSxJQUNyRjtBQUVBLFdBQU8sS0FBSyxVQUFVLEtBQUs7QUFBQSxFQUMvQjtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS0EsYUFBYSxPQUFlLGdCQUFnQztBQUN4RCxXQUFPLEtBQUssS0FBSyxPQUFPLGNBQWM7QUFBQSxFQUMxQztBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS0EsU0FBUyxPQUFlLGdCQUFnQztBQUNwRCxXQUFPLEtBQUssS0FBSyxPQUFPLGNBQWM7QUFBQSxFQUMxQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFNQSxnQkFBd0M7QUFDcEMsVUFBTSxPQUErQixDQUFDO0FBQ3RDLFdBQU8sS0FBSyxLQUFLLFNBQVMsRUFBRSxRQUFRLENBQUMsVUFBa0I7QUFFbkQsV0FBSyxLQUFLLElBQUksS0FBSyxVQUFVLEtBQUssRUFBRSxjQUFjO0FBQUEsSUFDdEQsQ0FBQztBQUNELFdBQU87QUFBQSxFQUNYO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT0EsV0FBaUI7QUFDYixXQUFPLEtBQUssS0FBSyxTQUFTLEVBQUUsUUFBUSxDQUFDLFVBQWtCO0FBQ25ELFdBQUssVUFBVSxLQUFLLEVBQUUsU0FBUztBQUFBLElBQ25DLENBQUM7QUFDRCxXQUFPO0FBQUEsRUFDWDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBV0EsUUFBUSxPQUFlLE9BQWUsYUFBdUIsYUFBNkI7QUFDdEYsVUFBTSxXQUFXLEtBQUssVUFBVSxLQUFLO0FBRXJDLFFBQUksWUFBWSxPQUFPLFNBQVMsWUFBWSxZQUFZO0FBQ25ELGVBQVMsUUFBUSxPQUFPLGFBQWEsV0FBVztBQUFBLElBQ3JEO0FBQ0EsV0FBTztBQUFBLEVBQ1g7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVdBLEtBQUssT0FBZSxPQUFlLGFBQXVCLGFBQXdDO0FBQzlGLFFBQUksS0FBSyxVQUFVLEtBQUssR0FBRztBQUV2QixZQUFNLE1BQU0sS0FBSyxVQUFVLEtBQUssRUFBRSxLQUFLLE9BQU8sYUFBYSxXQUFXO0FBQ3RFLFVBQUk7QUFDQSxlQUFPO0FBQUEsSUFDZjtBQUNBO0FBQUEsRUFDSjtBQUNKOyIsCiAgIm5hbWVzIjogW10KfQo=
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2h0dHAvcnMvcmVzb3VyY2UtbWFwcGluZ3MudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQG1vZHVsZSBodHRwL3JzL21hcHBpbmdzXG4gKiBAcGFja2FnZSBAYWVyb2tpdC9zZGsvaHR0cFxuICogQG5hbWUgUmVzb3VyY2VNYXBwaW5nc1xuICogQG92ZXJ2aWV3XG4gKiBcbiAqIFRoZSBSZXNvdXJjZU1hcHBpbmdzIGNsYXNzIGlzIGEgY29yZSBjb21wb25lbnQgb2YgdGhlIEhUVFAgY29udHJvbGxlciBtb2R1bGUsIHJlc3BvbnNpYmxlIGZvciBtYW5hZ2luZyB0aGUgbWFwcGluZ3MgYmV0d2VlbiBVUkwgcGF0aCB0ZW1wbGF0ZXMgYW5kIHRoZWlyIGNvcnJlc3BvbmRpbmcgcmVzb3VyY2UgaGFuZGxlciBzcGVjaWZpY2F0aW9ucy4gSXQgc2VydmVzIGFzIHRoZSBjb25maWd1cmF0aW9uIHN0b3JlIGZvciB0aGUgSHR0cENvbnRyb2xsZXIsIGFsbG93aW5nIGRldmVsb3BlcnMgdG8gZGVmaW5lIGFuZCBtYW5hZ2UgdGhlaXIgQVBJIHJlc291cmNlcyBpbiBhIHN0cnVjdHVyZWQgbWFubmVyLlxuICogXG4gKiAjIyMgS2V5IEZlYXR1cmVzOlxuICogLSAqKlJlc291cmNlIE1hbmFnZW1lbnQqKjogQWxsb3dzIGRlZmluaW5nIHJlc291cmNlcyB3aXRoIHNwZWNpZmljIFVSTCBwYXRoIHRlbXBsYXRlcyBhbmQgdGhlaXIgYXNzb2NpYXRlZCBoYW5kbGVycy5cbiAqIFxuICogIyMjIFVzZSBDYXNlczpcbiAqIC0gKipBUEkgQ29uZmlndXJhdGlvbioqOiBEZXZlbG9wZXJzIGNhbiB1c2UgUmVzb3VyY2VNYXBwaW5ncyB0byBjb25maWd1cmUgdGhlaXIgQVBJIGVuZHBvaW50cywgc3BlY2lmeWluZyB0aGUgcGF0aHMgYW5kIHRoZSBsb2dpYyB0aGF0IHNob3VsZCBoYW5kbGUgcmVxdWVzdHMgdG8gdGhvc2UgcGF0aHMuXG4gKiBcbiAqICMjIyBFeGFtcGxlIFVzYWdlOlxuICogYGBgdHNcbiAqIGltcG9ydCB7IFJlc291cmNlTWFwcGluZ3MgfSBmcm9tIFwiQGFlcm9raXQvc2RrL2h0dHBcIjtcbiAqIFxuICogY29uc3QgcmVzb3VyY2VNYXBwaW5ncyA9IG5ldyBSZXNvdXJjZU1hcHBpbmdzKHtcbiAqICBcInVzZXJzL3tpZH1cIjoge1xuICogICBnZXQ6IChyZXEsIHJlcykgPT4geyAuLi4gfSxcbiAqICAgcG9zdDogKHJlcSwgcmVzKSA9PiB7IC4uLiB9XG4gKiB9LFxuICogXCJwcm9kdWN0cy97aWR9XCI6IHtcbiAqICBnZXQ6IChyZXEsIHJlcykgPT4geyAuLi4gfSxcbiAqICBwb3N0OiAocmVxLCByZXMpID0+IHsgLi4uIH1cbiAqIH1cbiAqIH0pO1xuICogYGBgIFxuICovXG5pbXBvcnQgeyBSZXNvdXJjZSB9IGZyb20gXCIuL3Jlc291cmNlXCI7XG5cbi8qKlxuICogVGhlIFJlc291cmNlTWFwcGluZ3MgY2xhc3MgYWJzdHJhY3RzIHRoZSBtYXBwaW5ncyBiZXR3ZWVuIHJlc291cmNlIFVSTCBwYXRoIHRlbXBsYXRlc1xuICogYW5kIHRoZWlyIGNvcnJlc3BvbmRpbmcgcmVzb3VyY2UgaGFuZGxlciBzcGVjaWZpY2F0aW9ucy4gSXQgYWN0cyBhcyB0aGUgY29uZmlndXJhdGlvblxuICogc3RvcmUgZm9yIHRoZSBIdHRwQ29udHJvbGxlci5cbiAqL1xuZXhwb3J0IGNsYXNzIFJlc291cmNlTWFwcGluZ3Mge1xuICAgIC8vIE1hcCBvZiByZXNvdXJjZSBwYXRoIChzdHJpbmcpIHRvIHRoZSBSZXNvdXJjZSBpbnN0YW5jZSAodHlwZWQgYXMgYW55IGZvciBmbGV4aWJpbGl0eSlcbiAgICByZXNvdXJjZXM6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7fTtcbiAgICBjb250cm9sbGVyOiBhbnk7IC8vIFJlcHJlc2VudHMgdGhlIEh0dHBDb250cm9sbGVyIGluc3RhbmNlXG4gICAgZXhlY3V0ZTogYW55OyAvLyBCb3VuZCBleGVjdXRlIGZ1bmN0aW9uIGZyb20gdGhlIEh0dHBDb250cm9sbGVyXG5cbiAgICAvKipcbiAgICAgKiBDb25zdHJ1Y3RvciBmdW5jdGlvbiBmb3IgUmVzb3VyY2VNYXBwaW5ncyBpbnN0YW5jZXMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb0NvbmZpZ3VyYXRpb24gQ29uZmlndXJhdGlvbiBvYmplY3QgZGVmaW5pbmcgaW5pdGlhbCByZXNvdXJjZSBwYXRocyBhbmQgdGhlaXIgaGFuZGxlcnMuXG4gICAgICogQHBhcmFtIGNvbnRyb2xsZXIgVGhlIEh0dHBDb250cm9sbGVyIGluc3RhbmNlLCBmb3Igd2hpY2ggdGhpcyBSZXNvdXJjZU1hcHBpbmdzIGhhbmRsZXMgY29uZmlndXJhdGlvbi5cbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihvQ29uZmlndXJhdGlvbjogYW55LCBjb250cm9sbGVyOiBhbnkpIHtcbiAgICAgICAgaWYgKG9Db25maWd1cmF0aW9uKSB7XG4gICAgICAgICAgICBPYmplY3Qua2V5cyhvQ29uZmlndXJhdGlvbikuZm9yRWFjaCgoc1BhdGg6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucmVzb3VyY2VzW3NQYXRoXSA9IHRoaXMucmVzb3VyY2Uoc1BhdGgsIG9Db25maWd1cmF0aW9uW3NQYXRoXSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjb250cm9sbGVyKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2xsZXIgPSBjb250cm9sbGVyO1xuICAgICAgICAgICAgdGhpcy5leGVjdXRlID0gY29udHJvbGxlci5leGVjdXRlLmJpbmQoY29udHJvbGxlcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIG9yIHJldHJpZXZlcyBhIFJlc291cmNlIG9iamVjdCBjb3JyZXNwb25kaW5nIHRvIHRoZSBnaXZlbiBwYXRoLlxuICAgICAqIFRoZSBzZWNvbmQsIG9wdGlvbmFsIGFyZ3VtZW50IGNhbiBiZSB1c2VkIHRvIGluaXRpYWxpemUgdGhlIHJlc291cmNlLlxuICAgICAqXG4gICAgICogQHBhcmFtIHNQYXRoIFRoZSBVUkwgcGF0aCB0ZW1wbGF0ZSBmb3IgdGhlIHJlc291cmNlIChlLmcuLCBcInVzZXJzL3tpZH1cIikuXG4gICAgICogQHBhcmFtIG9Db25maWd1cmF0aW9uIE9wdGlvbmFsIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGZvciBpbml0aWFsIHJlc291cmNlIHNldHVwLlxuICAgICAqIEByZXR1cm5zIFRoZSBjcmVhdGVkIG9yIGV4aXN0aW5nIFJlc291cmNlIGluc3RhbmNlLlxuICAgICAqL1xuICAgIHBhdGgoc1BhdGg6IHN0cmluZywgb0NvbmZpZ3VyYXRpb24/OiBhbnkpOiBSZXNvdXJjZSB7XG4gICAgICAgIGlmIChzUGF0aCAhPT0gXCJcIiAmJiBzUGF0aFswXSA9PT0gXCIvXCIpIHtcbiAgICAgICAgICAgIHNQYXRoID0gc1BhdGguc3Vic3RyaW5nKDEpOyAvLyB0cmFuc2Zvcm0gXCIvdGVzdFwiIGludG8gXCJ0ZXN0XCJcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnJlc291cmNlc1tzUGF0aF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgLy8gUmVzb3VyY2UgaXMgdGhlIGNsYXNzIGltcG9ydGVkIGZyb20gXCIuL3Jlc291cmNlXCJcbiAgICAgICAgICAgIHRoaXMucmVzb3VyY2VzW3NQYXRoXSA9IG5ldyBSZXNvdXJjZShzUGF0aCwgb0NvbmZpZ3VyYXRpb24sIHRoaXMuY29udHJvbGxlciwgdGhpcyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5yZXNvdXJjZXNbc1BhdGhdO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBBbGlhcyBmb3IgcGF0aCgpLlxuICAgICAqL1xuICAgIHJlc291cmNlUGF0aChzUGF0aDogc3RyaW5nLCBvQ29uZmlndXJhdGlvbj86IGFueSk6IFJlc291cmNlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGF0aChzUGF0aCwgb0NvbmZpZ3VyYXRpb24pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFsaWFzIGZvciBwYXRoKCkuXG4gICAgICovXG4gICAgcmVzb3VyY2Uoc1BhdGg6IHN0cmluZywgb0NvbmZpZ3VyYXRpb24/OiBhbnkpOiBSZXNvdXJjZSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBhdGgoc1BhdGgsIG9Db25maWd1cmF0aW9uKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBjb21waWxlZCBjb25maWd1cmF0aW9uIG9iamVjdCBmb3IgYWxsIHJlc291cmNlcyBtYW5hZ2VkIGJ5IHRoaXMgUmVzb3VyY2VNYXBwaW5ncy5cbiAgICAgKiBUaGUgY29uZmlndXJhdGlvbiBpcyBzdHJ1Y3R1cmVkIHRvIGJlIGNvbnN1bWVkIGJ5IHRoZSBIdHRwQ29udHJvbGxlcidzIHJvdXRpbmcgbG9naWMuXG4gICAgICovXG4gICAgY29uZmlndXJhdGlvbigpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHtcbiAgICAgICAgY29uc3QgX2NmZzogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xuICAgICAgICBPYmplY3Qua2V5cyh0aGlzLnJlc291cmNlcykuZm9yRWFjaCgoc1BhdGg6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgLy8gQXNzdW1pbmcgZWFjaCBSZXNvdXJjZSBvYmplY3QgaGFzIGEgY29uZmlndXJhdGlvbigpIG1ldGhvZFxuICAgICAgICAgICAgX2NmZ1tzUGF0aF0gPSB0aGlzLnJlc291cmNlc1tzUGF0aF0uY29uZmlndXJhdGlvbigpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIF9jZmc7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgYWxsIGJ1dCBHRVQgcmVzb3VyY2UgaGFuZGxlcnMgZnJvbSBhbGwgbWFuYWdlZCByZXNvdXJjZXMsIG1ha2luZyB0aGVtIHJlYWQtb25seS5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIFRoZSBSZXNvdXJjZU1hcHBpbmdzIGluc3RhbmNlIGZvciBtZXRob2QgY2hhaW5pbmcuXG4gICAgICovXG4gICAgcmVhZG9ubHkoKTogdGhpcyB7XG4gICAgICAgIE9iamVjdC5rZXlzKHRoaXMucmVzb3VyY2VzKS5mb3JFYWNoKChzUGF0aDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlc291cmNlc1tzUGF0aF0ucmVhZG9ubHkoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBEaXNhYmxlcyByZXNvdXJjZSBoYW5kbGluZyBzcGVjaWZpY2F0aW9ucyBtYXRjaGluZyB0aGUgYXJndW1lbnRzLCBlZmZlY3RpdmVseSByZW1vdmluZyB0aGVtIGZyb20gdGhpcyBBUEkuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc1BhdGggVGhlIHBhdGggb2YgdGhlIHJlc291cmNlLlxuICAgICAqIEBwYXJhbSBzVmVyYiBUaGUgSFRUUCB2ZXJiIChlLmcuLCAnZ2V0JywgJ3Bvc3QnKS5cbiAgICAgKiBAcGFyYW0gYXJyQ29uc3VtZXMgQXJyYXkgb2YgY29uc3VtZWQgbWVkaWEgdHlwZXMuXG4gICAgICogQHBhcmFtIGFyclByb2R1Y2VzIEFycmF5IG9mIHByb2R1Y2VkIG1lZGlhIHR5cGVzLlxuICAgICAqIEByZXR1cm5zIFRoZSBSZXNvdXJjZU1hcHBpbmdzIGluc3RhbmNlIGZvciBtZXRob2QgY2hhaW5pbmcuXG4gICAgICovXG4gICAgZGlzYWJsZShzUGF0aDogc3RyaW5nLCBzVmVyYjogc3RyaW5nLCBhcnJDb25zdW1lczogc3RyaW5nW10sIGFyclByb2R1Y2VzOiBzdHJpbmdbXSk6IHRoaXMge1xuICAgICAgICBjb25zdCByZXNvdXJjZSA9IHRoaXMucmVzb3VyY2VzW3NQYXRoXTtcbiAgICAgICAgLy8gQXNzdW1pbmcgdGhlIGludGVudGlvbiBpcyB0byBmaW5kIHRoZSBzaW5nbGUgUmVzb3VyY2UgaW5zdGFuY2UgYW5kIGNhbGwgZGlzYWJsZSBvbiBpdFxuICAgICAgICBpZiAocmVzb3VyY2UgJiYgdHlwZW9mIHJlc291cmNlLmRpc2FibGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICByZXNvdXJjZS5kaXNhYmxlKHNWZXJiLCBhcnJDb25zdW1lcywgYXJyUHJvZHVjZXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBQcm92aWRlcyBhIHJlZmVyZW5jZSB0byBhIGhhbmRsZXIgc3BlY2lmaWNhdGlvbiBtYXRjaGluZyB0aGUgc3VwcGxpZWQgYXJndW1lbnRzLlxuICAgICAqXG4gICAgICogQHBhcmFtIHNQYXRoIFRoZSBwYXRoIG9mIHRoZSByZXNvdXJjZS5cbiAgICAgKiBAcGFyYW0gc1ZlcmIgVGhlIEhUVFAgdmVyYiAoZS5nLiwgJ2dldCcsICdwb3N0JykuXG4gICAgICogQHBhcmFtIGFyckNvbnN1bWVzIEFycmF5IG9mIGNvbnN1bWVkIG1lZGlhIHR5cGVzLlxuICAgICAqIEBwYXJhbSBhcnJQcm9kdWNlcyBBcnJheSBvZiBwcm9kdWNlZCBtZWRpYSB0eXBlcy5cbiAgICAgKiBAcmV0dXJucyBUaGUgbWF0Y2hpbmcgUmVzb3VyY2UgaGFuZGxlciBzcGVjaWZpY2F0aW9uIG9yIHVuZGVmaW5lZC5cbiAgICAgKi9cbiAgICBmaW5kKHNQYXRoOiBzdHJpbmcsIHNWZXJiOiBzdHJpbmcsIGFyckNvbnN1bWVzOiBzdHJpbmdbXSwgYXJyUHJvZHVjZXM6IHN0cmluZ1tdKTogYW55IHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKHRoaXMucmVzb3VyY2VzW3NQYXRoXSkge1xuICAgICAgICAgICAgLy8gQXNzdW1pbmcgUmVzb3VyY2UgaW5zdGFuY2UgaGFzIGEgZmluZCBtZXRob2RcbiAgICAgICAgICAgIGNvbnN0IGhpdCA9IHRoaXMucmVzb3VyY2VzW3NQYXRoXS5maW5kKHNWZXJiLCBhcnJDb25zdW1lcywgYXJyUHJvZHVjZXMpO1xuICAgICAgICAgICAgaWYgKGhpdClcbiAgICAgICAgICAgICAgICByZXR1cm4gaGl0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICB9O1xufSJdLAogICJtYXBwaW5ncyI6ICJBQThCQSxTQUFTLGdCQUFnQjtBQU9sQixNQUFNLGlCQUFpQjtBQUFBO0FBQUEsRUFFMUIsWUFBb0MsQ0FBQztBQUFBLEVBQ3JDO0FBQUE7QUFBQSxFQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFBLFlBQVksZ0JBQXFCLFlBQWlCO0FBQzlDLFFBQUksZ0JBQWdCO0FBQ2hCLGFBQU8sS0FBSyxjQUFjLEVBQUUsUUFBUSxDQUFDLFVBQWtCO0FBQ25ELGFBQUssVUFBVSxLQUFLLElBQUksS0FBSyxTQUFTLE9BQU8sZUFBZSxLQUFLLENBQUM7QUFBQSxNQUN0RSxDQUFDO0FBQUEsSUFDTDtBQUVBLFFBQUksWUFBWTtBQUNaLFdBQUssYUFBYTtBQUNsQixXQUFLLFVBQVUsV0FBVyxRQUFRLEtBQUssVUFBVTtBQUFBLElBQ3JEO0FBQUEsRUFDSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVVBLEtBQUssT0FBZSxnQkFBZ0M7QUFDaEQsUUFBSSxVQUFVLE1BQU0sTUFBTSxDQUFDLE1BQU0sS0FBSztBQUNsQyxjQUFRLE1BQU0sVUFBVSxDQUFDO0FBQUEsSUFDN0I7QUFFQSxRQUFJLEtBQUssVUFBVSxLQUFLLE1BQU0sUUFBVztBQUVyQyxXQUFLLFVBQVUsS0FBSyxJQUFJLElBQUksU0FBUyxPQUFPLGdCQUFnQixLQUFLLFlBQVksSUFBSTtBQUFBLElBQ3JGO0FBRUEsV0FBTyxLQUFLLFVBQVUsS0FBSztBQUFBLEVBQy9CO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLQSxhQUFhLE9BQWUsZ0JBQWdDO0FBQ3hELFdBQU8sS0FBSyxLQUFLLE9BQU8sY0FBYztBQUFBLEVBQzFDO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLQSxTQUFTLE9BQWUsZ0JBQWdDO0FBQ3BELFdBQU8sS0FBSyxLQUFLLE9BQU8sY0FBYztBQUFBLEVBQzFDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU1BLGdCQUF3QztBQUNwQyxVQUFNLE9BQStCLENBQUM7QUFDdEMsV0FBTyxLQUFLLEtBQUssU0FBUyxFQUFFLFFBQVEsQ0FBQyxVQUFrQjtBQUVuRCxXQUFLLEtBQUssSUFBSSxLQUFLLFVBQVUsS0FBSyxFQUFFLGNBQWM7QUFBQSxJQUN0RCxDQUFDO0FBQ0QsV0FBTztBQUFBLEVBQ1g7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPQSxXQUFpQjtBQUNiLFdBQU8sS0FBSyxLQUFLLFNBQVMsRUFBRSxRQUFRLENBQUMsVUFBa0I7QUFDbkQsV0FBSyxVQUFVLEtBQUssRUFBRSxTQUFTO0FBQUEsSUFDbkMsQ0FBQztBQUNELFdBQU87QUFBQSxFQUNYO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFXQSxRQUFRLE9BQWUsT0FBZSxhQUF1QixhQUE2QjtBQUN0RixVQUFNLFdBQVcsS0FBSyxVQUFVLEtBQUs7QUFFckMsUUFBSSxZQUFZLE9BQU8sU0FBUyxZQUFZLFlBQVk7QUFDbkQsZUFBUyxRQUFRLE9BQU8sYUFBYSxXQUFXO0FBQUEsSUFDckQ7QUFDQSxXQUFPO0FBQUEsRUFDWDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBV0EsS0FBSyxPQUFlLE9BQWUsYUFBdUIsYUFBd0M7QUFDOUYsUUFBSSxLQUFLLFVBQVUsS0FBSyxHQUFHO0FBRXZCLFlBQU0sTUFBTSxLQUFLLFVBQVUsS0FBSyxFQUFFLEtBQUssT0FBTyxhQUFhLFdBQVc7QUFDdEUsVUFBSTtBQUNBLGVBQU87QUFBQSxJQUNmO0FBQ0E7QUFBQSxFQUNKO0FBQ0o7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
@@ -205,4 +205,4 @@ class ResourceMethod {
|
|
|
205
205
|
export {
|
|
206
206
|
ResourceMethod
|
|
207
207
|
};
|
|
208
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2h0dHAvcnMvcmVzb3VyY2UtbWV0aG9kLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgeyBoYW5kbGVyRnVuY3Rpb24gfSBmcm9tIFwiLi9yZXNvdXJjZS1jb21tb25cIjtcblxuLyoqXG4gKiBJbnRlcmZhY2UgZm9yIHRoZSBpbnRlcm5hbCBjb25maWd1cmF0aW9uIG9iamVjdCBvZiBhIFJlc291cmNlTWV0aG9kLlxuICovXG5pbnRlcmZhY2UgUmVzb3VyY2VNZXRob2RDb25maWcge1xuICAgIGNvbnN1bWVzPzogc3RyaW5nW107XG4gICAgcHJvZHVjZXM/OiBzdHJpbmdbXTtcbiAgICBiZWZvcmU/OiBGdW5jdGlvbjtcbiAgICBzZXJ2ZT86IEZ1bmN0aW9uOyAvLyBDb3VsZCBhbHNvIGJlIG5hbWVkICdoYW5kbGVyJ1xuICAgIGNhdGNoPzogRnVuY3Rpb247XG4gICAgZmluYWxseT86IEZ1bmN0aW9uO1xuICAgIC8vIEFkZCBvdGhlciByZWxldmFudCBjb25maWd1cmF0aW9uIHByb3BlcnRpZXMgYXMgdGhleSBiZWNvbWUga25vd25cbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbi8qKlxuICogQ29uc3RydWN0b3IgZnVuY3Rpb24gZm9yIFJlc291cmNlTWV0aG9kIGluc3RhbmNlcy5cbiAqIFRoaXMgY2xhc3MgaGFuZGxlcyB0aGUgZmx1ZW50IGNvbmZpZ3VyYXRpb24gZm9yIGEgc2luZ2xlIEhUVFAgbWV0aG9kIGhhbmRsZXIgKGUuZy4sIEdFVClcbiAqIGF0dGFjaGVkIHRvIGEgUmVzb3VyY2UuXG4gKiBcbiAqIC8qKlxuICogQ29uc3RydWN0b3IgZnVuY3Rpb24gZm9yIFJlc291cmNlTWV0aG9kIGluc3RhbmNlcy5cbiAqIEFsbCBwYXJhbWV0ZXJzIG9mIHRoZSBmdW5jdGlvbiBhcmUgb3B0aW9uYWwuXG4gKlxuICogUHJvdmlkaW5nIG9Db25maWd1cmF0aW9uIHdpbGwgaW5pdGlhbGl6ZSB0aGlzIGluc3RhbmNlIHdpdGggc29tZSBpbml0aWFsIGNvbmZpZ3VyYXRpb24gaW5zdGVhZCBvZiBzdGFydGluZ1xuICogZW50aXJlbHkgZnJvbSBzY3JhdGNoLiBOb3RlIHRoYXQgdGhlIGNvbmZpZ3VyYXRpb24gb2JqZWN0IHNjaGVtYSBtdXN0IGJlIGNvbXBsaWFudCB3aXRoIHRoZSBvbmUgcHJvZHVjZWQgYnlcbiAqIHRoZSBSZXNvdXJjZU1ldGhvZCBpdHNlbGYuIElmIHRoaXMgcGFyYW1ldGVyIGlzIG9taXRlZCwgc2V0dXAgd2lsbCBzdGFydCBmcm9tIHNjcmF0Y2guXG4gKlxuICogUHJvdmlzaW9uaW5nIGNvbnRyb2xsZXIsIHdpbGwgaW5qZWN0IGEgcmVmZXJlbmNlIHRvIHRoZSBleGVjdXRlIG1ldGhvZCBvZiB0aGUgY29udHJvbGxlciBzbyB0aGF0IGl0IGNhbiBiZVxuICogZmx1ZW50bHkgaW52b2tlZCBpbiB0aGUgc2NvcGUgb2YgdGhpcyBSZXNvdXJjZU1laHRvZCBpbnN0YW5jZSBhcyBwYXJ0IG9mIHRoZSBtZXRob2QgY2hhaW5pbmcgZmxvdy4gVGhlIGV4ZWN1dGVcbiAqIGZ1bmN0aW9uIHNjb3BlIGlzIGJvdW5kIHRvIHRoZSBjb250cm9sbGVyIGluc3RhbmNlIGZvciB0aGlzIFJlc291cmNlTWV0aG9kLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBqc1xuICogcnMuc2VydmljZSgpXG4gKiAgLnJlc291cmNlKCcnKVxuICogXHRcdC5nZXQoKVxuICogXHQuZXhlY3V0ZSgpO1xuICogYGBgXG4gKlxuICogUHJvdmlzaW9uaW5nIHJlc291cmNlLCB3aWxsIGluamVjdCBhIHJlZmVyZW5jZSBvdCB0aGUgSFRUUCBtZXRob2QgZnVuY3Rpb25zIG9mIHRoZSBSZXNvdXJjZSBjbGFzcyAoZ2V0LCBwb3N0LFxuICogcHV0LCBkZWxldGUsIHJlbW92ZSwgbWV0aG9kKSBzbyB0aGF0IHRoZXkgY2FuIGJlIGZsdWVudGx5IGludm9rZWQgaW4gdGhlIHNjb3BlIG9mIHRoaXMgUmVzb3VyY2VNZXRob2QgaW5zdGFuY2VcbiAqIGFzIHBhcnQgb2YgdGhlIG1ldGhvZCBjaGFpbmluZyBmbG93LiBUaGUgZnVuY3Rpb25zIGFyZSBib3VuZCB0byB0aGUgcmVzb3VyY2UgaW5zdGFuY2UgZm9yIHRoaXMgUmVzb3VyY2VNZXRob2QuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGpzXG4gKiBycy5zZXJ2aWNlKClcbiAqICAucmVzb3VyY2UoJycpXG4gKiBcdFx0LmdldChmdW5jdGlvbigpe30pXG4gKiBcdFx0LnBvc3QoZnVuY3Rpb24oKXt9KVxuICogXHRcdC5wdXQoZnVuY3Rpb24oKXt9KVxuICogXHRcdC5yZW1vdmUoZnVuY3Rpb24oKXt9KVxuICogLmV4ZWN1dGUoKTtcbiAqIGBgYFxuICpcbiAqIFByb3Zpc2lvbmluZyBtYXBwaW5ncywgd2lsbCBpbmplY3QgYSByZWZlcmVuY2Ugb3QgdGhlIHJlc291cmNlIG1ldGhvZCBvZiB0aGUgUmVzb3VyY2VNYXBwaW5ncyBjbGFzcyBzbyB0aGF0XG4gKiBpdCBjYW4gYmUgZmx1ZW50bHkgaW52b2tlZCBpbiB0aGUgc2NvcGUgb2YgdGhpcyBSZXNvdXJjZU1ldGhvZCBpbnN0YW5jZSBhcyBwYXJ0IG9mIHRoZSBtZXRob2QgY2hhaW5pbmcgZmxvdy5cbiAqIFRoZSBmdW5jdGlvbiBpcyBib3VuZCB0byB0aGUgbWFwcGluZ3MgaW5zdGFuY2UgZm9yIHRoaXMgUmVzb3VyY2VNZXRob2QuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGpzXG4gKiBycy5zZXJ2aWNlKClcbiAqICAucmVzb3VyY2UoJycpXG4gKiBcdFx0LmdldChmdW5jdGlvbigpe30pXG4gKiBcdC5yZXNvdXJjZSgne2lkfScpXG4gKiBcdFx0LmdldChmdW5jdGlvbigpe30pXG4gKiAuZXhlY3V0ZSgpO1xuICogYGBcbiAqIFxuICovXG5leHBvcnQgY2xhc3MgUmVzb3VyY2VNZXRob2Qge1xuICAgIGNmZzogUmVzb3VyY2VNZXRob2RDb25maWc7XG4gICAgX3Jlc291cmNlOiBhbnk7IC8vIFJlZmVyZW5jZSB0byB0aGUgcGFyZW50IFJlc291cmNlIGluc3RhbmNlXG4gICAgY29udHJvbGxlcjogYW55OyAvLyBSZWZlcmVuY2UgdG8gdGhlIEh0dHBDb250cm9sbGVyIGluc3RhbmNlXG5cbiAgICAvLyBGbHVlbnQgQVBJIGFsaWFzZXMvZGVsZWdhdGVzIGJvdW5kIHRvIFJlc291cmNlTWFwcGluZ3MvUmVzb3VyY2VcbiAgICByZXNvdXJjZTogRnVuY3Rpb247XG4gICAgcmVzb3VyY2VQYXRoOiBGdW5jdGlvbjtcbiAgICBwYXRoOiBGdW5jdGlvbjtcblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSBvQ29uZmlndXJhdGlvbiBJbml0aWFsIGNvbmZpZ3VyYXRpb24gb2JqZWN0LlxuICAgICAqIEBwYXJhbSBjb250cm9sbGVyIFRoZSBIdHRwQ29udHJvbGxlciBpbnN0YW5jZS5cbiAgICAgKiBAcGFyYW0gcmVzb3VyY2UgVGhlIHBhcmVudCBSZXNvdXJjZSBpbnN0YW5jZS5cbiAgICAgKiBAcGFyYW0gbWFwcGluZ3MgVGhlIHBhcmVudCBSZXNvdXJjZU1hcHBpbmdzIGluc3RhbmNlLlxuICAgICAqIEByZXR1cm5zIHtSZXNvdXJjZU1ldGhvZH1cbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihvQ29uZmlndXJhdGlvbjogYW55LCBjb250cm9sbGVyOiBhbnksIHJlc291cmNlOiBhbnksIG1hcHBpbmdzOiBhbnkpIHtcbiAgICAgICAgdGhpcy5jZmcgPSBvQ29uZmlndXJhdGlvbiB8fCB7fTtcbiAgICAgICAgdGhpcy5fcmVzb3VyY2UgPSByZXNvdXJjZTtcbiAgICAgICAgdGhpcy5jb250cm9sbGVyID0gY29udHJvbGxlcjtcblxuICAgICAgICBpZiAobWFwcGluZ3MpIHtcbiAgICAgICAgICAgIC8vIEJpbmQgdGhlIHJlc291cmNlL3BhdGggbWV0aG9kcyBmcm9tIFJlc291cmNlTWFwcGluZ3MgZm9yIG1ldGhvZCBjaGFpbmluZ1xuICAgICAgICAgICAgdGhpcy5yZXNvdXJjZSA9IG1hcHBpbmdzLnJlc291cmNlLmJpbmQobWFwcGluZ3MpO1xuICAgICAgICAgICAgdGhpcy5yZXNvdXJjZVBhdGggPSB0aGlzLnBhdGggPSB0aGlzLnJlc291cmNlOyAvLyBhbGlhc2VzXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZWxlZ2F0ZXMgdG8gdGhlIEh0dHBDb250cm9sbGVyJ3MgZXhlY3V0ZSBmdW5jdGlvbiB0byBwcm9jZXNzIHRoZSByZXF1ZXN0LlxuICAgICAqL1xuICAgIGV4ZWN1dGUoKTogdm9pZCB7XG4gICAgICAgIC8vIFVzZSBvcHRpb25hbCBjaGFpbmluZyBhcyBjb250cm9sbGVyIG1pZ2h0IG5vdCBiZSBhdmFpbGFibGUgaW4gYWxsIHNldHVwc1xuICAgICAgICB0aGlzLmNvbnRyb2xsZXI/LmV4ZWN1dGU/LiguLi5hcmd1bWVudHMpO1xuICAgIH1cblxuICAgIC8vIC0tLSBEZWxlZ2F0aW9uIHRvIFJlc291cmNlIEhUVFAgTWV0aG9kcyBmb3IgQ2hhaW5pbmcgLS0tXG5cbiAgICAvKipcbiAgICAgKiBEZWxlZ2F0ZXMgdG8gdGhlIHBhcmVudCBSZXNvdXJjZSdzICdnZXQnIG1ldGhvZC5cbiAgICAgKi9cbiAgICBnZXQoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc291cmNlPy5bXCJnZXRcIl0/LiguLi5hcmd1bWVudHMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlbGVnYXRlcyB0byB0aGUgcGFyZW50IFJlc291cmNlJ3MgJ3Bvc3QnIG1ldGhvZC5cbiAgICAgKi9cbiAgICBwb3N0KCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXNvdXJjZT8uW1wicG9zdFwiXT8uKC4uLmFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVsZWdhdGVzIHRvIHRoZSBwYXJlbnQgUmVzb3VyY2UncyAncHV0JyBtZXRob2QuXG4gICAgICovXG4gICAgcHV0KCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXNvdXJjZT8uW1wicHV0XCJdPy4oLi4uYXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZWxlZ2F0ZXMgdG8gdGhlIHBhcmVudCBSZXNvdXJjZSdzICdkZWxldGUnIG1ldGhvZC5cbiAgICAgKi9cbiAgICBkZWxldGUoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc291cmNlPy5bXCJkZWxldGVcIl0/LiguLi5hcmd1bWVudHMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlbGVnYXRlcyB0byB0aGUgcGFyZW50IFJlc291cmNlJ3MgJ3JlbW92ZScgbWV0aG9kLlxuICAgICAqL1xuICAgIHJlbW92ZSgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVzb3VyY2U/LltcInJlbW92ZVwiXT8uKC4uLmFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVsZWdhdGVzIHRvIHRoZSBwYXJlbnQgUmVzb3VyY2UncyAnbWV0aG9kJyBtZXRob2QuXG4gICAgICovXG4gICAgbWV0aG9kKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXNvdXJjZT8uW1wibWV0aG9kXCJdPy4oLi4uYXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBjb25maWd1cmF0aW9uIG9iamVjdCBmb3IgdGhpcyBSZXNvdXJjZU1ldGhvZCBpbnN0YW5jZS5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIFRoZSBjb25maWd1cmF0aW9uIG9iamVjdC5cbiAgICAgKi9cbiAgICBjb25maWd1cmF0aW9uKCk6IFJlc291cmNlTWV0aG9kQ29uZmlnIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2ZnO1xuICAgIH07XG5cbiAgICAvLyAtLS0gSGFuZGxlciBEZWZpbml0aW9uIE1ldGhvZHMgLS0tXG5cbiAgICAvKipcbiAgICAgKiBBcHBsaWVzIGEgY2FsbGJhY2sgZnVuY3Rpb24gZm9yIHRoZSAqKmJlZm9yZSoqIHBoYXNlIG9mIHByb2Nlc3NpbmcgYSBtYXRjaGVkIHJlc291cmNlIHJlcXVlc3QuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZkhhbmRsZXIgQ2FsbGJhY2sgZnVuY3Rpb24gZm9yIHRoZSBiZWZvcmUgcGhhc2UuXG4gICAgICogQHJldHVybnMgVGhlIFJlc291cmNlTWV0aG9kIGluc3RhbmNlIGZvciBtZXRob2QgY2hhaW5pbmcuXG4gICAgICovXG4gICAgYmVmb3JlKGZIYW5kbGVyOiBGdW5jdGlvbik6IFJlc291cmNlTWV0aG9kIHtcbiAgICAgICAgcmV0dXJuIGhhbmRsZXJGdW5jdGlvbih0aGlzLCB0aGlzLmNvbmZpZ3VyYXRpb24oKSwgJ2JlZm9yZScsIGZIYW5kbGVyKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQXBwbGllcyBhIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciBwcm9jZXNzaW5nIGEgbWF0Y2hlZCByZXNvdXJjZSByZXF1ZXN0ICgqKnNlcnZlKiogcGhhc2UpLlxuICAgICAqXG4gICAgICogQHBhcmFtIGZIYW5kbGVyIENhbGxiYWNrIGZ1bmN0aW9uIGZvciB0aGUgc2VydmUgcGhhc2UuXG4gICAgICogQHJldHVybnMgVGhlIFJlc291cmNlTWV0aG9kIGluc3RhbmNlIGZvciBtZXRob2QgY2hhaW5pbmcuXG4gICAgICovXG4gICAgc2VydmUoZkhhbmRsZXI6IEZ1bmN0aW9uKTogUmVzb3VyY2VNZXRob2Qge1xuICAgICAgICByZXR1cm4gaGFuZGxlckZ1bmN0aW9uKHRoaXMsIHRoaXMuY29uZmlndXJhdGlvbigpLCAnc2VydmUnLCBmSGFuZGxlcik7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEFwcGxpZXMgYSBjYWxsYmFjayBmdW5jdGlvbiBmb3IgdGhlICoqY2F0Y2gqKiBlcnJvcnMgcGhhc2Ugb2YgcHJvY2Vzc2luZyBhIG1hdGNoZWQgcmVzb3VyY2UgcmVxdWVzdC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBmSGFuZGxlciBDYWxsYmFjayBmdW5jdGlvbiBmb3IgdGhlIGNhdGNoIHBoYXNlLlxuICAgICAqIEByZXR1cm5zIFRoZSBSZXNvdXJjZU1ldGhvZCBpbnN0YW5jZSBmb3IgbWV0aG9kIGNoYWluaW5nLlxuICAgICAqL1xuICAgIGNhdGNoKGZIYW5kbGVyOiBGdW5jdGlvbik6IFJlc291cmNlTWV0aG9kIHtcbiAgICAgICAgcmV0dXJuIGhhbmRsZXJGdW5jdGlvbih0aGlzLCB0aGlzLmNvbmZpZ3VyYXRpb24oKSwgJ2NhdGNoJywgZkhhbmRsZXIpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBBcHBsaWVzIGEgY2FsbGJhY2sgZnVuY3Rpb24gZm9yIHRoZSAqKmZpbmFsbHkqKiBwaGFzZSBvZiBwcm9jZXNzaW5nIGEgbWF0Y2hlZCByZXNvdXJjZSByZXF1ZXN0LlxuICAgICAqXG4gICAgICogQHBhcmFtIGZIYW5kbGVyIENhbGxiYWNrIGZ1bmN0aW9uIGZvciB0aGUgZmluYWxseSBwaGFzZS5cbiAgICAgKiBAcmV0dXJucyBUaGUgUmVzb3VyY2VNZXRob2QgaW5zdGFuY2UgZm9yIG1ldGhvZCBjaGFpbmluZy5cbiAgICAgKi9cbiAgICBmaW5hbGx5KGZIYW5kbGVyOiBGdW5jdGlvbik6IFJlc291cmNlTWV0aG9kIHtcbiAgICAgICAgcmV0dXJuIGhhbmRsZXJGdW5jdGlvbih0aGlzLCB0aGlzLmNvbmZpZ3VyYXRpb24oKSwgJ2ZpbmFsbHknLCBmSGFuZGxlcik7XG4gICAgfTtcblxuICAgIC8vIC0tLSBNSU1FIFR5cGUgQ29uZmlndXJhdGlvbiBNZXRob2RzIC0tLVxuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyB0aGUgY29udGVudCBNSU1FIHR5cGUocyksIHdoaWNoIHRoaXMgUmVzb3VyY2VNZXRob2QgZXhwZWN0cyBhcyBpbnB1dCAoKipjb25zdW1lcyoqKS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBtaW1lVHlwZXMgU2V0cyB0aGUgbWltZSB0eXBlcyB0aGF0IHRoaXMgUmVzb3VyY2VNZXRob2QgaXMgY2FwYWJsZSB0byBjb25zdW1lLlxuICAgICAqIEByZXR1cm5zIFRoZSBSZXNvdXJjZU1ldGhvZCBpbnN0YW5jZSBmb3IgbWV0aG9kIGNoYWluaW5nLlxuICAgICAqL1xuICAgIGNvbnN1bWVzKG1pbWVUeXBlczogc3RyaW5nIHwgc3RyaW5nW10pOiBSZXNvdXJjZU1ldGhvZCB7XG4gICAgICAgIHJldHVybiB0aGlzLm1pbWVTZXR0aW5nKCdjb25zdW1lcycsIG1pbWVUeXBlcyk7XG4gICAgfTtcblxuICAgIC8qKlxuXHQgKiBEZWZpbmVzIHRoZSBIVFRQIHJlc3BvbnNlIHBheWxvYWQgTUlNRSB0eXBlKHMpLCB3aGljaCB0aGlzIFJlc291cmNlTWV0aG9kIHJlcXVlc3QgcHJvY2Vzc2luZyBmdW5jdGlvbiBvdXRwdXRzLCBpLmUuXG5cdCAqIHRob3NlIHRoYXQgaXQgJ3Byb2R1Y2VzJy4gQXQgcnVudGltZSwgdGhlIEFjY2VwdCByZXF1ZXN0IGhlYWRlciB3aWxsIGJlIG1hdGNoZWQgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCB0aGlzIHNldHRpbmdcblx0ICogdG8gZWxpY2l0IHJlcXVlc3QgcHJvY2Vzc2luZyBmdW5jdGlvbnMuXG5cdCAqIE5vdGUgdGhhdCB0aGUgbWF0Y2hpbmcgaXMgcGVyZm9ybWVkIGJ5IGNvbXBhdGliaWxpdHksIG5vdCBzdHJpY3QgZXF1YWxpdHksIGkuZS4gdGhlIE1JTUUgdHlwZSBmb3JtYXQgd2lsZGNhcmRzIGFyZVxuXHQgKiBjb25zaWRlcmVkIHRvby4gRm9yIGV4YW1wbGUsIGEgcmVxdWVzdCBBY2NlcHQgaGVhZGVyIFwiKlxcL2pzb25cIiB3aWxsIG1hdGNoIGEgcHJvZHVjZXMgc2V0dGluZyBcImFwcGxpY2F0aW9uXFwvanNvblwiLlxuXHQgKiBcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGpzXG4gICAgICogcnMuc2VydmljZSgpXG4gICAgICpcdC5yZXNvdXJjZShcIlwiKVxuICAgICAqIFx0XHQuZ2V0KGZ1bmN0aW9uKCl7fSlcbiAgICAgKiBcdFx0XHQucHJvZHVjZXMoW1wiYXBwbGljYXRpb25cXC9qc29uXCJdKVxuICAgICAqIC5leGVjdXRlKCk7XG4gICAgICogXHQuXG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBUYWtlIGNhcmUgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIHByb2R1Y2VzIGNvbnN0cmFpbnQgY29ycmVjdGx5IGRlc2NyaWJlcyB0aGUgcmVzcG9uc2UgY29udGVudHkgTUlNRSB0eXBlcyB0aGF0IHRoZSByZXF1ZXN0XG4gICAgICogcHJvY2Vzc2luZyBmdW5jdGlvbiBjYW4gcHJvZHVjZSBzbyB0aGF0IG9ubHkgY2xpZW50IHJlcXVlc3QgdGhhdCBjYW4gYWNjZXB0IHRoZW0gbGFuZCB0aGVyZS5cbiAgICAgKlxuICAgICAqIEEgbm90ZSBhYm91dCBtZXRob2QgYXJndW1lbnQgbXVsdGlwbGljaXR5IChzdHJpbmcgdnMgYXJyYXkgb2Ygc3RyaW5ncykuXG4gICAgICogT25lIG9mIHRoZSBhcmd1bWVudHMgb2YgdGhlIHByb2R1Y2UgbWV0aG9kIHdpbGwgdHJhbnNsYXRlIHRvIHRoZSByZXNwb25zZSBDb250ZW50LVR5cGUgcHJvcGVydHksIHdoaWNoIGlzIGtub3duIHRvIGJlIGFcbiAgICAgKiBzaW5nbGUgdmFsdWUgaGVhZGVyIGJ5IFtzcGVjaWZpY2F0aW9uXShodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzIzMSNzZWN0aW9uLTMuMS4xLjUpLiBUaGVyZSBhcmUgdHdvIHJlYXNvbnMgd2h5XG4gICAgICogdGhlIG1ldGhvZCBhY2NlcHRzIGFycmF5IGFuZCBub3QgYSBzaW5nbGUgdmFsdWUgb25seTpcbiAgICAgKlxuICAgICAqIDEuIE5vcm1hbGx5LCB3aGVuIG1hdGNoZWQsIGNvbnRlbnQgdHlwZXMgYXJlIGV2YWx1YXRlZCBmb3Igc2VtYW50aWMgY29tcGF0aWJpbGl0eSBhbmQgbm90IHN0cmljdCBlcXVhbGl0eSBvbiBib3RoIHNpZGVzXG4gICAgICogIC0gY2xpZW50IGFuZCBzZXJ2ZXIuIFByb3ZpZGluZyBhIHJhbmdlIG9mIGNvbXBhdGlibGUgTUlNRSB0eXBlcyBpbnN0ZWFkIG9mIHNpbmdsZSB2YWx1ZSwgaW5jcmVhc2VzIHRoZSByYW5nZSBvZiBhY2NlcHRhYmxlXG4gICAgICogcmVxdWVzdHMgZm9yIHByb2Nlc2luZywgd2hpbGUgcmVkdWNpbmcgdGhlIHN0cmljbmVzcyBvZiB0aGUgcmVxdWlyZW1lbnRzIG9uIHRoZSBjbGllbnQgbWFraW5nIHRoZSByZXF1ZXN0LiBGb3IgZXhhbXBsZSxcbiAgICAgKiBkZWNsYXJpbmcgW1widGV4dC9qc29uLFwiYXBwbGljYXRpb24vanNvblwiXSBhcyBwcm9kdWNlZCB0eXBlcyBtYWtlcyByZXF1ZXN0cyB3aXRoIGFueSBvZiB0aGVzZSBhY2NlcHQgaGVhZGVycyAob3IgYSBjb21iaW5hdGlvblxuICAgICAqIG9mIHRoZW0pIGFjY2VwdGFibGUgZm9yIHByb2Nlc3Npbmc6IFwiKlxcL2pzb25cIiwgXCJ0ZXh0L2pzb25cIiwgXCJhcHBsaWNhdGlvbi9qc29uXCIsIFwiKlxcLypcIi5cbiAgICAgKlxuICAgICAqIDIuIEFsdGhvdWdoIGluIG1vc3QgY2FzZXMgYSBoYW5kbGVyIGZ1bmN0aW9uIHdpbGwgcHJvZHVjZSBwYXlsb2FkIGluIHNpbmdsZSBmb3JtYXQgKG1lZGlhIHR5cGUpLCBpdCBpcyBxdWl0ZSBwb3NzaWJsZSB0b1xuICAgICAqIGRlc2dpbiBpdCBhbHNvIGFzIGEgY29udHJvbGxlciB0aGF0IHByb2R1Y2VzIGFsdGVybmF0aXZlIHBheWxvYWQgaW4gZGlmZmVyZW50IGZvcm1hdHMuIEluIHRoZXNlIGNhc2VzIHlvdSBuZWVkIHByb2R1Y2VzXG4gICAgICogdGhhdCBkZWNsYXJlcyBhbGwgc3VwcG9ydGVkIG1lZGlhIHR5cGVzIHNvIHRoYXQgdGhlIHJlcXVlc3Qgd2l0aCBhIHJlbGF4ZWQgQWNjZXB0IGhlYWRlciBtYXRjaGluZyBhbnkgb2YgdGhlbSBjYW4gbGFuZFxuICAgICAqIGluIHRoaXMgZnVuY3Rpb24uIFRoYXQgbWFrZXMgdGhlIHJvdXRpbmcgYSBiaXQgbGVzcyB0cmFuc3BhcmVudCBhbmQgZGVwZW5kZW50IG9uIHRoZSBjbGllbnQsIGJ1dCBtYXkgcHJvdmUgdmFsdWFibGUgZm9yXG4gICAgICogY2VydGlhbiBjYXNlcy5cbiAgICAgKlxuICAgICAqIEluIGFueSBjYXNlIGl0IGlzIHJlc3BvbnNpYmlsaXR5IG9mIHRoZSByZXF1ZXN0IHByb2Nlc3NpbmcgZnVuY3Rpb24gdG8gc2V0IHRoZSBjb3JyZWN0IENvbnRlbnQtVHlwZSBoZWFkZXIuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbWltZVR5cGVzIFNldHMgdGhlIG1pbWUgdHlwZShzKSB0aGF0IHRoaXMgUmVzb3VyY2VNZXRob2QgbWF5IHByb2R1Y2UuXG4gICAgICogQHJldHVybnMgVGhlIFJlc291cmNlTWV0aG9kIGluc3RhbmNlIGZvciBtZXRob2QgY2hhaW5pbmcuXG4gICAgICovXG4gICAgcHJvZHVjZXMobWltZVR5cGVzOiBzdHJpbmcgfCBzdHJpbmdbXSk6IFJlc291cmNlTWV0aG9kIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWltZVNldHRpbmcoJ3Byb2R1Y2VzJywgbWltZVR5cGVzKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQ29tbW1vbiBmdW5jdGlvbiBmb3IgaW5pdGlhbGl6bmcgdGhlICdjb25zdW1lcycgYW5kICdwcm9kdWNlcycgYXJyYXlzIGluIHRoZSBSZXNvdXJjZU1ldGhvZCBpbnN0YW5jZXMuXG4gICAgICogQmVmb3JlIGZpbmFsaXppbmcgdGhlIGNvbmZpZ3VyYXRpb24gc2V0dXAgdGhlIGZ1bmN0aW9uIHdpbGwgcmVtb3ZlIGR1cGxpY2F0ZXMgd2l0aCBleGFjdCBtYXRjaCBmaWx0ZXJpbmcuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbWltZVNldHRpbmdOYW1lIG11c3QgYmUgZWl0aGVyICdjb25zdW1lcycgb3IgJ3Byb2R1Y2VzJy5cbiAgICAgKiBAcGFyYW0gbWltZVR5cGVzIEFuIGFycmF5IG9mIHN0cmluZ3MgZm9ybWF0dGVkIGFzIG1pbWUgdHlwZXMgKHR5cGUvc3VidHlwZSkgb3IgYSBzaW5nbGUgc3RyaW5nLlxuICAgICAqIEByZXR1cm5zIFRoZSBSZXNvdXJjZU1ldGhvZCBpbnN0YW5jZSB0byB3aGljaCB0aGUgZnVuY3Rpb24gaXMgYm91bmQuXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIG1pbWVTZXR0aW5nKG1pbWVTZXR0aW5nTmFtZTogJ2NvbnN1bWVzJyB8ICdwcm9kdWNlcycsIG1pbWVUeXBlczogc3RyaW5nIHwgc3RyaW5nW10pOiBSZXNvdXJjZU1ldGhvZCB7XG5cbiAgICAgICAgbGV0IGFyck1pbWVUeXBlczogc3RyaW5nW107XG5cbiAgICAgICAgaWYgKHR5cGVvZiBtaW1lVHlwZXMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBhcnJNaW1lVHlwZXMgPSBbbWltZVR5cGVzXTtcbiAgICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KG1pbWVUeXBlcykpIHtcbiAgICAgICAgICAgIGFyck1pbWVUeXBlcyA9IG1pbWVUeXBlcztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBhcmd1bWVudDogJyArIG1pbWVTZXR0aW5nTmFtZSArICcgbWltZSB0eXBlIGFyZ3VtZW50IG11c3QgYmUgdmFsaWQgTUlNRSB0eXBlIHN0cmluZyBvciBhcnJheSBvZiBzdWNoIHN0cmluZ3MsIGJ1dCBpbnN0ZWFkIGlzICcgKyAodHlwZW9mIG1pbWVUeXBlcykpO1xuICAgICAgICB9XG5cbiAgICAgICAgYXJyTWltZVR5cGVzLmZvckVhY2goKG1pbWVUeXBlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBtdCA9IG1pbWVUeXBlLnNwbGl0KCcvJyk7XG4gICAgICAgICAgICBpZiAobXQubGVuZ3RoICE9PSAyIHx8ICFtdFswXSB8fCAhbXRbMV0pXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGFyZ3VtZW50LiBOb3QgYSB2YWxpZCBNSU1FIHR5cGUgZm9ybWF0IHR5cGUvc3VidHlwZTogJyArIG1pbWVUeXBlKTtcbiAgICAgICAgICAgIC8vIEJhc2ljIGZvcm1hdCBjaGVjayBpcyBzdWZmaWNpZW50XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICghdGhpcy5jZmdbbWltZVNldHRpbmdOYW1lXSkge1xuICAgICAgICAgICAgdGhpcy5jZmdbbWltZVNldHRpbmdOYW1lXSA9IFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRGVkdXBsaWNhdGUgZW50cmllcyBiZWZvcmUgY29uY2F0ZW5hdGlvblxuICAgICAgICBjb25zdCBleGlzdGluZ01pbWVzOiBzdHJpbmdbXSA9IHRoaXMuY2ZnW21pbWVTZXR0aW5nTmFtZV07XG4gICAgICAgIGNvbnN0IG5ld01pbWVUeXBlcyA9IGFyck1pbWVUeXBlcy5maWx0ZXIoKG1pbWVUeXBlKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gZXhpc3RpbmdNaW1lcy5pbmRleE9mKG1pbWVUeXBlKSA8IDA7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuY2ZnW21pbWVTZXR0aW5nTmFtZV0gPSBleGlzdGluZ01pbWVzLmNvbmNhdChuZXdNaW1lVHlwZXMpO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG59XG4iXSwKICAibWFwcGluZ3MiOiAiQUFBQSxTQUFTLHVCQUF1QjtBQXVFekIsTUFBTSxlQUFlO0FBQUEsRUFDeEI7QUFBQSxFQUNBO0FBQUE7QUFBQSxFQUNBO0FBQUE7QUFBQTtBQUFBLEVBR0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFTQSxZQUFZLGdCQUFxQixZQUFpQixVQUFlLFVBQWU7QUFDNUUsU0FBSyxNQUFNLGtCQUFrQixDQUFDO0FBQzlCLFNBQUssWUFBWTtBQUNqQixTQUFLLGFBQWE7QUFFbEIsUUFBSSxVQUFVO0FBRVYsV0FBSyxXQUFXLFNBQVMsU0FBUyxLQUFLLFFBQVE7QUFDL0MsV0FBSyxlQUFlLEtBQUssT0FBTyxLQUFLO0FBQUEsSUFDekM7QUFB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
|
|
208
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2h0dHAvcnMvcmVzb3VyY2UtbWV0aG9kLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBtb2R1bGUgaHR0cC9ycy9tZXRob2RcbiAqIEBwYWNrYWdlIEBhZXJva2l0L3Nkay9odHRwXG4gKiBAbmFtZSBSZXNvdXJjZU1ldGhvZFxuICogQG92ZXJ2aWV3XG4gKiBcbiAqIFRoZSBSZXNvdXJjZU1ldGhvZCBjbGFzcyBpcyBhIGNvcmUgY29tcG9uZW50IG9mIHRoZSBIVFRQIGNvbnRyb2xsZXIgbW9kdWxlLCByZXNwb25zaWJsZSBmb3IgbWFuYWdpbmcgdGhlIGNvbmZpZ3VyYXRpb24gb2YgaW5kaXZpZHVhbCBIVFRQIG1ldGhvZCBoYW5kbGVycyAoZS5nLiwgR0VULCBQT1NUKSBhdHRhY2hlZCB0byBhIFJlc291cmNlLiBJdCBwcm92aWRlcyBhIGZsdWVudCBBUEkgZm9yIGRlZmluaW5nIHRoZSBiZWhhdmlvciBvZiB0aGVzZSBoYW5kbGVycywgaW5jbHVkaW5nIHRoZWlyIHByb2Nlc3NpbmcgbG9naWMgYW5kIE1JTUUgdHlwZSBjb25zdHJhaW50cy5cbiAqIFxuICogIyMjIEtleSBGZWF0dXJlczpcbiAqIC0gKipGbHVlbnQgQVBJKio6IEFsbG93cyBkZXZlbG9wZXJzIHRvIGRlZmluZSBIVFRQIG1ldGhvZCBoYW5kbGVycyBpbiBhIGZsdWVudCBhbmQgaW50dWl0aXZlIG1hbm5lci5cbiAqIC0gKipIYW5kbGVyIENvbmZpZ3VyYXRpb24qKjogU3VwcG9ydHMgY29uZmlndXJhdGlvbiBvZiB2YXJpb3VzIHByb2Nlc3NpbmcgcGhhc2VzIChiZWZvcmUsIHNlcnZlLCBjYXRjaCwgZmluYWxseSkgZm9yIG1hdGNoZWQgcmVzb3VyY2UgcmVxdWVzdHMuXG4gKiAtICoqTUlNRSBUeXBlIE1hbmFnZW1lbnQqKjogUHJvdmlkZXMgbWV0aG9kcyB0byBzcGVjaWZ5IHRoZSBNSU1FIHR5cGVzIHRoYXQgdGhlIGhhbmRsZXIgY29uc3VtZXMgYW5kIHByb2R1Y2VzLlxuICogXG4gKiAjIyMgVXNlIENhc2VzOlxuICogLSAqKkFQSSBFbmRwb2ludCBEZWZpbml0aW9uKio6IERldmVsb3BlcnMgY2FuIHVzZSBSZXNvdXJjZU1ldGhvZCB0byBkZWZpbmUgdGhlIGJlaGF2aW9yIG9mIHNwZWNpZmljIEhUVFAgbWV0aG9kcyBmb3IgdGhlaXIgQVBJIGVuZHBvaW50cywgaW5jbHVkaW5nIHJlcXVlc3QgcHJvY2Vzc2luZyBsb2dpYyBhbmQgY29udGVudCB0eXBlIGhhbmRsaW5nLlxuICogXG4gKiAjIyMgRXhhbXBsZSBVc2FnZTpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBSZXNvdXJjZU1ldGhvZCB9IGZyb20gXCJAYWVyb2tpdC9zZGsvaHR0cFwiO1xuICogXG4gKiBjb25zdCByZXNvdXJjZU1ldGhvZCA9IG5ldyBSZXNvdXJjZU1ldGhvZCgpXG4gKiAgLmdldChmdW5jdGlvbihyZXEsIHJlcykge1xuICogICAgICAvLyBIYW5kbGVyIGxvZ2ljIGZvciBHRVQgcmVxdWVzdHNcbiAqICB9KVxuICogIC5wcm9kdWNlcyhcImFwcGxpY2F0aW9uL2pzb25cIilcbiAqICAuZXhlY3V0ZSgpO1xuICogYGBgXG4gKi9cbmltcG9ydCB7IGhhbmRsZXJGdW5jdGlvbiB9IGZyb20gXCIuL3Jlc291cmNlLWNvbW1vblwiO1xuXG4vKipcbiAqIEludGVyZmFjZSBmb3IgdGhlIGludGVybmFsIGNvbmZpZ3VyYXRpb24gb2JqZWN0IG9mIGEgUmVzb3VyY2VNZXRob2QuXG4gKi9cbmludGVyZmFjZSBSZXNvdXJjZU1ldGhvZENvbmZpZyB7XG4gICAgY29uc3VtZXM/OiBzdHJpbmdbXTtcbiAgICBwcm9kdWNlcz86IHN0cmluZ1tdO1xuICAgIGJlZm9yZT86IEZ1bmN0aW9uO1xuICAgIHNlcnZlPzogRnVuY3Rpb247IC8vIENvdWxkIGFsc28gYmUgbmFtZWQgJ2hhbmRsZXInXG4gICAgY2F0Y2g/OiBGdW5jdGlvbjtcbiAgICBmaW5hbGx5PzogRnVuY3Rpb247XG4gICAgLy8gQWRkIG90aGVyIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gcHJvcGVydGllcyBhcyB0aGV5IGJlY29tZSBrbm93blxuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuLyoqXG4gKiBDb25zdHJ1Y3RvciBmdW5jdGlvbiBmb3IgUmVzb3VyY2VNZXRob2QgaW5zdGFuY2VzLlxuICogVGhpcyBjbGFzcyBoYW5kbGVzIHRoZSBmbHVlbnQgY29uZmlndXJhdGlvbiBmb3IgYSBzaW5nbGUgSFRUUCBtZXRob2QgaGFuZGxlciAoZS5nLiwgR0VUKVxuICogYXR0YWNoZWQgdG8gYSBSZXNvdXJjZS5cbiAqIFxuICogLyoqXG4gKiBDb25zdHJ1Y3RvciBmdW5jdGlvbiBmb3IgUmVzb3VyY2VNZXRob2QgaW5zdGFuY2VzLlxuICogQWxsIHBhcmFtZXRlcnMgb2YgdGhlIGZ1bmN0aW9uIGFyZSBvcHRpb25hbC5cbiAqXG4gKiBQcm92aWRpbmcgb0NvbmZpZ3VyYXRpb24gd2lsbCBpbml0aWFsaXplIHRoaXMgaW5zdGFuY2Ugd2l0aCBzb21lIGluaXRpYWwgY29uZmlndXJhdGlvbiBpbnN0ZWFkIG9mIHN0YXJ0aW5nXG4gKiBlbnRpcmVseSBmcm9tIHNjcmF0Y2guIE5vdGUgdGhhdCB0aGUgY29uZmlndXJhdGlvbiBvYmplY3Qgc2NoZW1hIG11c3QgYmUgY29tcGxpYW50IHdpdGggdGhlIG9uZSBwcm9kdWNlZCBieVxuICogdGhlIFJlc291cmNlTWV0aG9kIGl0c2VsZi4gSWYgdGhpcyBwYXJhbWV0ZXIgaXMgb21pdGVkLCBzZXR1cCB3aWxsIHN0YXJ0IGZyb20gc2NyYXRjaC5cbiAqXG4gKiBQcm92aXNpb25pbmcgY29udHJvbGxlciwgd2lsbCBpbmplY3QgYSByZWZlcmVuY2UgdG8gdGhlIGV4ZWN1dGUgbWV0aG9kIG9mIHRoZSBjb250cm9sbGVyIHNvIHRoYXQgaXQgY2FuIGJlXG4gKiBmbHVlbnRseSBpbnZva2VkIGluIHRoZSBzY29wZSBvZiB0aGlzIFJlc291cmNlTWVodG9kIGluc3RhbmNlIGFzIHBhcnQgb2YgdGhlIG1ldGhvZCBjaGFpbmluZyBmbG93LiBUaGUgZXhlY3V0ZVxuICogZnVuY3Rpb24gc2NvcGUgaXMgYm91bmQgdG8gdGhlIGNvbnRyb2xsZXIgaW5zdGFuY2UgZm9yIHRoaXMgUmVzb3VyY2VNZXRob2QuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGpzXG4gKiBycy5zZXJ2aWNlKClcbiAqICAucmVzb3VyY2UoJycpXG4gKiBcdFx0LmdldCgpXG4gKiBcdC5leGVjdXRlKCk7XG4gKiBgYGBcbiAqXG4gKiBQcm92aXNpb25pbmcgcmVzb3VyY2UsIHdpbGwgaW5qZWN0IGEgcmVmZXJlbmNlIG90IHRoZSBIVFRQIG1ldGhvZCBmdW5jdGlvbnMgb2YgdGhlIFJlc291cmNlIGNsYXNzIChnZXQsIHBvc3QsXG4gKiBwdXQsIGRlbGV0ZSwgcmVtb3ZlLCBtZXRob2QpIHNvIHRoYXQgdGhleSBjYW4gYmUgZmx1ZW50bHkgaW52b2tlZCBpbiB0aGUgc2NvcGUgb2YgdGhpcyBSZXNvdXJjZU1ldGhvZCBpbnN0YW5jZVxuICogYXMgcGFydCBvZiB0aGUgbWV0aG9kIGNoYWluaW5nIGZsb3cuIFRoZSBmdW5jdGlvbnMgYXJlIGJvdW5kIHRvIHRoZSByZXNvdXJjZSBpbnN0YW5jZSBmb3IgdGhpcyBSZXNvdXJjZU1ldGhvZC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBganNcbiAqIHJzLnNlcnZpY2UoKVxuICogIC5yZXNvdXJjZSgnJylcbiAqIFx0XHQuZ2V0KGZ1bmN0aW9uKCl7fSlcbiAqIFx0XHQucG9zdChmdW5jdGlvbigpe30pXG4gKiBcdFx0LnB1dChmdW5jdGlvbigpe30pXG4gKiBcdFx0LnJlbW92ZShmdW5jdGlvbigpe30pXG4gKiAuZXhlY3V0ZSgpO1xuICogYGBgXG4gKlxuICogUHJvdmlzaW9uaW5nIG1hcHBpbmdzLCB3aWxsIGluamVjdCBhIHJlZmVyZW5jZSBvdCB0aGUgcmVzb3VyY2UgbWV0aG9kIG9mIHRoZSBSZXNvdXJjZU1hcHBpbmdzIGNsYXNzIHNvIHRoYXRcbiAqIGl0IGNhbiBiZSBmbHVlbnRseSBpbnZva2VkIGluIHRoZSBzY29wZSBvZiB0aGlzIFJlc291cmNlTWV0aG9kIGluc3RhbmNlIGFzIHBhcnQgb2YgdGhlIG1ldGhvZCBjaGFpbmluZyBmbG93LlxuICogVGhlIGZ1bmN0aW9uIGlzIGJvdW5kIHRvIHRoZSBtYXBwaW5ncyBpbnN0YW5jZSBmb3IgdGhpcyBSZXNvdXJjZU1ldGhvZC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBganNcbiAqIHJzLnNlcnZpY2UoKVxuICogIC5yZXNvdXJjZSgnJylcbiAqIFx0XHQuZ2V0KGZ1bmN0aW9uKCl7fSlcbiAqIFx0LnJlc291cmNlKCd7aWR9JylcbiAqIFx0XHQuZ2V0KGZ1bmN0aW9uKCl7fSlcbiAqIC5leGVjdXRlKCk7XG4gKiBgYFxuICogXG4gKi9cbmV4cG9ydCBjbGFzcyBSZXNvdXJjZU1ldGhvZCB7XG4gICAgY2ZnOiBSZXNvdXJjZU1ldGhvZENvbmZpZztcbiAgICBfcmVzb3VyY2U6IGFueTsgLy8gUmVmZXJlbmNlIHRvIHRoZSBwYXJlbnQgUmVzb3VyY2UgaW5zdGFuY2VcbiAgICBjb250cm9sbGVyOiBhbnk7IC8vIFJlZmVyZW5jZSB0byB0aGUgSHR0cENvbnRyb2xsZXIgaW5zdGFuY2VcblxuICAgIC8vIEZsdWVudCBBUEkgYWxpYXNlcy9kZWxlZ2F0ZXMgYm91bmQgdG8gUmVzb3VyY2VNYXBwaW5ncy9SZXNvdXJjZVxuICAgIHJlc291cmNlOiBGdW5jdGlvbjtcbiAgICByZXNvdXJjZVBhdGg6IEZ1bmN0aW9uO1xuICAgIHBhdGg6IEZ1bmN0aW9uO1xuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIG9Db25maWd1cmF0aW9uIEluaXRpYWwgY29uZmlndXJhdGlvbiBvYmplY3QuXG4gICAgICogQHBhcmFtIGNvbnRyb2xsZXIgVGhlIEh0dHBDb250cm9sbGVyIGluc3RhbmNlLlxuICAgICAqIEBwYXJhbSByZXNvdXJjZSBUaGUgcGFyZW50IFJlc291cmNlIGluc3RhbmNlLlxuICAgICAqIEBwYXJhbSBtYXBwaW5ncyBUaGUgcGFyZW50IFJlc291cmNlTWFwcGluZ3MgaW5zdGFuY2UuXG4gICAgICogQHJldHVybnMge1Jlc291cmNlTWV0aG9kfVxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKG9Db25maWd1cmF0aW9uOiBhbnksIGNvbnRyb2xsZXI6IGFueSwgcmVzb3VyY2U6IGFueSwgbWFwcGluZ3M6IGFueSkge1xuICAgICAgICB0aGlzLmNmZyA9IG9Db25maWd1cmF0aW9uIHx8IHt9O1xuICAgICAgICB0aGlzLl9yZXNvdXJjZSA9IHJlc291cmNlO1xuICAgICAgICB0aGlzLmNvbnRyb2xsZXIgPSBjb250cm9sbGVyO1xuXG4gICAgICAgIGlmIChtYXBwaW5ncykge1xuICAgICAgICAgICAgLy8gQmluZCB0aGUgcmVzb3VyY2UvcGF0aCBtZXRob2RzIGZyb20gUmVzb3VyY2VNYXBwaW5ncyBmb3IgbWV0aG9kIGNoYWluaW5nXG4gICAgICAgICAgICB0aGlzLnJlc291cmNlID0gbWFwcGluZ3MucmVzb3VyY2UuYmluZChtYXBwaW5ncyk7XG4gICAgICAgICAgICB0aGlzLnJlc291cmNlUGF0aCA9IHRoaXMucGF0aCA9IHRoaXMucmVzb3VyY2U7IC8vIGFsaWFzZXNcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlbGVnYXRlcyB0byB0aGUgSHR0cENvbnRyb2xsZXIncyBleGVjdXRlIGZ1bmN0aW9uIHRvIHByb2Nlc3MgdGhlIHJlcXVlc3QuXG4gICAgICovXG4gICAgZXhlY3V0ZSgpOiB2b2lkIHtcbiAgICAgICAgLy8gVXNlIG9wdGlvbmFsIGNoYWluaW5nIGFzIGNvbnRyb2xsZXIgbWlnaHQgbm90IGJlIGF2YWlsYWJsZSBpbiBhbGwgc2V0dXBzXG4gICAgICAgIHRoaXMuY29udHJvbGxlcj8uZXhlY3V0ZT8uKC4uLmFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgLy8gLS0tIERlbGVnYXRpb24gdG8gUmVzb3VyY2UgSFRUUCBNZXRob2RzIGZvciBDaGFpbmluZyAtLS1cblxuICAgIC8qKlxuICAgICAqIERlbGVnYXRlcyB0byB0aGUgcGFyZW50IFJlc291cmNlJ3MgJ2dldCcgbWV0aG9kLlxuICAgICAqL1xuICAgIGdldCgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVzb3VyY2U/LltcImdldFwiXT8uKC4uLmFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVsZWdhdGVzIHRvIHRoZSBwYXJlbnQgUmVzb3VyY2UncyAncG9zdCcgbWV0aG9kLlxuICAgICAqL1xuICAgIHBvc3QoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc291cmNlPy5bXCJwb3N0XCJdPy4oLi4uYXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZWxlZ2F0ZXMgdG8gdGhlIHBhcmVudCBSZXNvdXJjZSdzICdwdXQnIG1ldGhvZC5cbiAgICAgKi9cbiAgICBwdXQoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc291cmNlPy5bXCJwdXRcIl0/LiguLi5hcmd1bWVudHMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlbGVnYXRlcyB0byB0aGUgcGFyZW50IFJlc291cmNlJ3MgJ2RlbGV0ZScgbWV0aG9kLlxuICAgICAqL1xuICAgIGRlbGV0ZSgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVzb3VyY2U/LltcImRlbGV0ZVwiXT8uKC4uLmFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVsZWdhdGVzIHRvIHRoZSBwYXJlbnQgUmVzb3VyY2UncyAncmVtb3ZlJyBtZXRob2QuXG4gICAgICovXG4gICAgcmVtb3ZlKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXNvdXJjZT8uW1wicmVtb3ZlXCJdPy4oLi4uYXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZWxlZ2F0ZXMgdG8gdGhlIHBhcmVudCBSZXNvdXJjZSdzICdtZXRob2QnIG1ldGhvZC5cbiAgICAgKi9cbiAgICBtZXRob2QoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc291cmNlPy5bXCJtZXRob2RcIl0/LiguLi5hcmd1bWVudHMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGZvciB0aGlzIFJlc291cmNlTWV0aG9kIGluc3RhbmNlLlxuICAgICAqXG4gICAgICogQHJldHVybnMgVGhlIGNvbmZpZ3VyYXRpb24gb2JqZWN0LlxuICAgICAqL1xuICAgIGNvbmZpZ3VyYXRpb24oKTogUmVzb3VyY2VNZXRob2RDb25maWcge1xuICAgICAgICByZXR1cm4gdGhpcy5jZmc7XG4gICAgfTtcblxuICAgIC8vIC0tLSBIYW5kbGVyIERlZmluaXRpb24gTWV0aG9kcyAtLS1cblxuICAgIC8qKlxuICAgICAqIEFwcGxpZXMgYSBjYWxsYmFjayBmdW5jdGlvbiBmb3IgdGhlICoqYmVmb3JlKiogcGhhc2Ugb2YgcHJvY2Vzc2luZyBhIG1hdGNoZWQgcmVzb3VyY2UgcmVxdWVzdC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBmSGFuZGxlciBDYWxsYmFjayBmdW5jdGlvbiBmb3IgdGhlIGJlZm9yZSBwaGFzZS5cbiAgICAgKiBAcmV0dXJucyBUaGUgUmVzb3VyY2VNZXRob2QgaW5zdGFuY2UgZm9yIG1ldGhvZCBjaGFpbmluZy5cbiAgICAgKi9cbiAgICBiZWZvcmUoZkhhbmRsZXI6IEZ1bmN0aW9uKTogUmVzb3VyY2VNZXRob2Qge1xuICAgICAgICByZXR1cm4gaGFuZGxlckZ1bmN0aW9uKHRoaXMsIHRoaXMuY29uZmlndXJhdGlvbigpLCAnYmVmb3JlJywgZkhhbmRsZXIpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBBcHBsaWVzIGEgY2FsbGJhY2sgZnVuY3Rpb24gZm9yIHByb2Nlc3NpbmcgYSBtYXRjaGVkIHJlc291cmNlIHJlcXVlc3QgKCoqc2VydmUqKiBwaGFzZSkuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZkhhbmRsZXIgQ2FsbGJhY2sgZnVuY3Rpb24gZm9yIHRoZSBzZXJ2ZSBwaGFzZS5cbiAgICAgKiBAcmV0dXJucyBUaGUgUmVzb3VyY2VNZXRob2QgaW5zdGFuY2UgZm9yIG1ldGhvZCBjaGFpbmluZy5cbiAgICAgKi9cbiAgICBzZXJ2ZShmSGFuZGxlcjogRnVuY3Rpb24pOiBSZXNvdXJjZU1ldGhvZCB7XG4gICAgICAgIHJldHVybiBoYW5kbGVyRnVuY3Rpb24odGhpcywgdGhpcy5jb25maWd1cmF0aW9uKCksICdzZXJ2ZScsIGZIYW5kbGVyKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQXBwbGllcyBhIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciB0aGUgKipjYXRjaCoqIGVycm9ycyBwaGFzZSBvZiBwcm9jZXNzaW5nIGEgbWF0Y2hlZCByZXNvdXJjZSByZXF1ZXN0LlxuICAgICAqXG4gICAgICogQHBhcmFtIGZIYW5kbGVyIENhbGxiYWNrIGZ1bmN0aW9uIGZvciB0aGUgY2F0Y2ggcGhhc2UuXG4gICAgICogQHJldHVybnMgVGhlIFJlc291cmNlTWV0aG9kIGluc3RhbmNlIGZvciBtZXRob2QgY2hhaW5pbmcuXG4gICAgICovXG4gICAgY2F0Y2goZkhhbmRsZXI6IEZ1bmN0aW9uKTogUmVzb3VyY2VNZXRob2Qge1xuICAgICAgICByZXR1cm4gaGFuZGxlckZ1bmN0aW9uKHRoaXMsIHRoaXMuY29uZmlndXJhdGlvbigpLCAnY2F0Y2gnLCBmSGFuZGxlcik7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEFwcGxpZXMgYSBjYWxsYmFjayBmdW5jdGlvbiBmb3IgdGhlICoqZmluYWxseSoqIHBoYXNlIG9mIHByb2Nlc3NpbmcgYSBtYXRjaGVkIHJlc291cmNlIHJlcXVlc3QuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZkhhbmRsZXIgQ2FsbGJhY2sgZnVuY3Rpb24gZm9yIHRoZSBmaW5hbGx5IHBoYXNlLlxuICAgICAqIEByZXR1cm5zIFRoZSBSZXNvdXJjZU1ldGhvZCBpbnN0YW5jZSBmb3IgbWV0aG9kIGNoYWluaW5nLlxuICAgICAqL1xuICAgIGZpbmFsbHkoZkhhbmRsZXI6IEZ1bmN0aW9uKTogUmVzb3VyY2VNZXRob2Qge1xuICAgICAgICByZXR1cm4gaGFuZGxlckZ1bmN0aW9uKHRoaXMsIHRoaXMuY29uZmlndXJhdGlvbigpLCAnZmluYWxseScsIGZIYW5kbGVyKTtcbiAgICB9O1xuXG4gICAgLy8gLS0tIE1JTUUgVHlwZSBDb25maWd1cmF0aW9uIE1ldGhvZHMgLS0tXG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIHRoZSBjb250ZW50IE1JTUUgdHlwZShzKSwgd2hpY2ggdGhpcyBSZXNvdXJjZU1ldGhvZCBleHBlY3RzIGFzIGlucHV0ICgqKmNvbnN1bWVzKiopLlxuICAgICAqXG4gICAgICogQHBhcmFtIG1pbWVUeXBlcyBTZXRzIHRoZSBtaW1lIHR5cGVzIHRoYXQgdGhpcyBSZXNvdXJjZU1ldGhvZCBpcyBjYXBhYmxlIHRvIGNvbnN1bWUuXG4gICAgICogQHJldHVybnMgVGhlIFJlc291cmNlTWV0aG9kIGluc3RhbmNlIGZvciBtZXRob2QgY2hhaW5pbmcuXG4gICAgICovXG4gICAgY29uc3VtZXMobWltZVR5cGVzOiBzdHJpbmcgfCBzdHJpbmdbXSk6IFJlc291cmNlTWV0aG9kIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWltZVNldHRpbmcoJ2NvbnN1bWVzJywgbWltZVR5cGVzKTtcbiAgICB9O1xuXG4gICAgLyoqXG5cdCAqIERlZmluZXMgdGhlIEhUVFAgcmVzcG9uc2UgcGF5bG9hZCBNSU1FIHR5cGUocyksIHdoaWNoIHRoaXMgUmVzb3VyY2VNZXRob2QgcmVxdWVzdCBwcm9jZXNzaW5nIGZ1bmN0aW9uIG91dHB1dHMsIGkuZS5cblx0ICogdGhvc2UgdGhhdCBpdCAncHJvZHVjZXMnLiBBdCBydW50aW1lLCB0aGUgQWNjZXB0IHJlcXVlc3QgaGVhZGVyIHdpbGwgYmUgbWF0Y2hlZCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIHRoaXMgc2V0dGluZ1xuXHQgKiB0byBlbGljaXQgcmVxdWVzdCBwcm9jZXNzaW5nIGZ1bmN0aW9ucy5cblx0ICogTm90ZSB0aGF0IHRoZSBtYXRjaGluZyBpcyBwZXJmb3JtZWQgYnkgY29tcGF0aWJpbGl0eSwgbm90IHN0cmljdCBlcXVhbGl0eSwgaS5lLiB0aGUgTUlNRSB0eXBlIGZvcm1hdCB3aWxkY2FyZHMgYXJlXG5cdCAqIGNvbnNpZGVyZWQgdG9vLiBGb3IgZXhhbXBsZSwgYSByZXF1ZXN0IEFjY2VwdCBoZWFkZXIgXCIqXFwvanNvblwiIHdpbGwgbWF0Y2ggYSBwcm9kdWNlcyBzZXR0aW5nIFwiYXBwbGljYXRpb25cXC9qc29uXCIuXG5cdCAqIFxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBganNcbiAgICAgKiBycy5zZXJ2aWNlKClcbiAgICAgKlx0LnJlc291cmNlKFwiXCIpXG4gICAgICogXHRcdC5nZXQoZnVuY3Rpb24oKXt9KVxuICAgICAqIFx0XHRcdC5wcm9kdWNlcyhbXCJhcHBsaWNhdGlvblxcL2pzb25cIl0pXG4gICAgICogLmV4ZWN1dGUoKTtcbiAgICAgKiBcdC5cbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIFRha2UgY2FyZSB0byBtYWtlIHN1cmUgdGhhdCB0aGUgcHJvZHVjZXMgY29uc3RyYWludCBjb3JyZWN0bHkgZGVzY3JpYmVzIHRoZSByZXNwb25zZSBjb250ZW50eSBNSU1FIHR5cGVzIHRoYXQgdGhlIHJlcXVlc3RcbiAgICAgKiBwcm9jZXNzaW5nIGZ1bmN0aW9uIGNhbiBwcm9kdWNlIHNvIHRoYXQgb25seSBjbGllbnQgcmVxdWVzdCB0aGF0IGNhbiBhY2NlcHQgdGhlbSBsYW5kIHRoZXJlLlxuICAgICAqXG4gICAgICogQSBub3RlIGFib3V0IG1ldGhvZCBhcmd1bWVudCBtdWx0aXBsaWNpdHkgKHN0cmluZyB2cyBhcnJheSBvZiBzdHJpbmdzKS5cbiAgICAgKiBPbmUgb2YgdGhlIGFyZ3VtZW50cyBvZiB0aGUgcHJvZHVjZSBtZXRob2Qgd2lsbCB0cmFuc2xhdGUgdG8gdGhlIHJlc3BvbnNlIENvbnRlbnQtVHlwZSBwcm9wZXJ0eSwgd2hpY2ggaXMga25vd24gdG8gYmUgYVxuICAgICAqIHNpbmdsZSB2YWx1ZSBoZWFkZXIgYnkgW3NwZWNpZmljYXRpb25dKGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MjMxI3NlY3Rpb24tMy4xLjEuNSkuIFRoZXJlIGFyZSB0d28gcmVhc29ucyB3aHlcbiAgICAgKiB0aGUgbWV0aG9kIGFjY2VwdHMgYXJyYXkgYW5kIG5vdCBhIHNpbmdsZSB2YWx1ZSBvbmx5OlxuICAgICAqXG4gICAgICogMS4gTm9ybWFsbHksIHdoZW4gbWF0Y2hlZCwgY29udGVudCB0eXBlcyBhcmUgZXZhbHVhdGVkIGZvciBzZW1hbnRpYyBjb21wYXRpYmlsaXR5IGFuZCBub3Qgc3RyaWN0IGVxdWFsaXR5IG9uIGJvdGggc2lkZXNcbiAgICAgKiAgLSBjbGllbnQgYW5kIHNlcnZlci4gUHJvdmlkaW5nIGEgcmFuZ2Ugb2YgY29tcGF0aWJsZSBNSU1FIHR5cGVzIGluc3RlYWQgb2Ygc2luZ2xlIHZhbHVlLCBpbmNyZWFzZXMgdGhlIHJhbmdlIG9mIGFjY2VwdGFibGVcbiAgICAgKiByZXF1ZXN0cyBmb3IgcHJvY2VzaW5nLCB3aGlsZSByZWR1Y2luZyB0aGUgc3RyaWNuZXNzIG9mIHRoZSByZXF1aXJlbWVudHMgb24gdGhlIGNsaWVudCBtYWtpbmcgdGhlIHJlcXVlc3QuIEZvciBleGFtcGxlLFxuICAgICAqIGRlY2xhcmluZyBbXCJ0ZXh0L2pzb24sXCJhcHBsaWNhdGlvbi9qc29uXCJdIGFzIHByb2R1Y2VkIHR5cGVzIG1ha2VzIHJlcXVlc3RzIHdpdGggYW55IG9mIHRoZXNlIGFjY2VwdCBoZWFkZXJzIChvciBhIGNvbWJpbmF0aW9uXG4gICAgICogb2YgdGhlbSkgYWNjZXB0YWJsZSBmb3IgcHJvY2Vzc2luZzogXCIqXFwvanNvblwiLCBcInRleHQvanNvblwiLCBcImFwcGxpY2F0aW9uL2pzb25cIiwgXCIqXFwvKlwiLlxuICAgICAqXG4gICAgICogMi4gQWx0aG91Z2ggaW4gbW9zdCBjYXNlcyBhIGhhbmRsZXIgZnVuY3Rpb24gd2lsbCBwcm9kdWNlIHBheWxvYWQgaW4gc2luZ2xlIGZvcm1hdCAobWVkaWEgdHlwZSksIGl0IGlzIHF1aXRlIHBvc3NpYmxlIHRvXG4gICAgICogZGVzZ2luIGl0IGFsc28gYXMgYSBjb250cm9sbGVyIHRoYXQgcHJvZHVjZXMgYWx0ZXJuYXRpdmUgcGF5bG9hZCBpbiBkaWZmZXJlbnQgZm9ybWF0cy4gSW4gdGhlc2UgY2FzZXMgeW91IG5lZWQgcHJvZHVjZXNcbiAgICAgKiB0aGF0IGRlY2xhcmVzIGFsbCBzdXBwb3J0ZWQgbWVkaWEgdHlwZXMgc28gdGhhdCB0aGUgcmVxdWVzdCB3aXRoIGEgcmVsYXhlZCBBY2NlcHQgaGVhZGVyIG1hdGNoaW5nIGFueSBvZiB0aGVtIGNhbiBsYW5kXG4gICAgICogaW4gdGhpcyBmdW5jdGlvbi4gVGhhdCBtYWtlcyB0aGUgcm91dGluZyBhIGJpdCBsZXNzIHRyYW5zcGFyZW50IGFuZCBkZXBlbmRlbnQgb24gdGhlIGNsaWVudCwgYnV0IG1heSBwcm92ZSB2YWx1YWJsZSBmb3JcbiAgICAgKiBjZXJ0aWFuIGNhc2VzLlxuICAgICAqXG4gICAgICogSW4gYW55IGNhc2UgaXQgaXMgcmVzcG9uc2liaWxpdHkgb2YgdGhlIHJlcXVlc3QgcHJvY2Vzc2luZyBmdW5jdGlvbiB0byBzZXQgdGhlIGNvcnJlY3QgQ29udGVudC1UeXBlIGhlYWRlci5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBtaW1lVHlwZXMgU2V0cyB0aGUgbWltZSB0eXBlKHMpIHRoYXQgdGhpcyBSZXNvdXJjZU1ldGhvZCBtYXkgcHJvZHVjZS5cbiAgICAgKiBAcmV0dXJucyBUaGUgUmVzb3VyY2VNZXRob2QgaW5zdGFuY2UgZm9yIG1ldGhvZCBjaGFpbmluZy5cbiAgICAgKi9cbiAgICBwcm9kdWNlcyhtaW1lVHlwZXM6IHN0cmluZyB8IHN0cmluZ1tdKTogUmVzb3VyY2VNZXRob2Qge1xuICAgICAgICByZXR1cm4gdGhpcy5taW1lU2V0dGluZygncHJvZHVjZXMnLCBtaW1lVHlwZXMpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBDb21tbW9uIGZ1bmN0aW9uIGZvciBpbml0aWFsaXpuZyB0aGUgJ2NvbnN1bWVzJyBhbmQgJ3Byb2R1Y2VzJyBhcnJheXMgaW4gdGhlIFJlc291cmNlTWV0aG9kIGluc3RhbmNlcy5cbiAgICAgKiBCZWZvcmUgZmluYWxpemluZyB0aGUgY29uZmlndXJhdGlvbiBzZXR1cCB0aGUgZnVuY3Rpb24gd2lsbCByZW1vdmUgZHVwbGljYXRlcyB3aXRoIGV4YWN0IG1hdGNoIGZpbHRlcmluZy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBtaW1lU2V0dGluZ05hbWUgbXVzdCBiZSBlaXRoZXIgJ2NvbnN1bWVzJyBvciAncHJvZHVjZXMnLlxuICAgICAqIEBwYXJhbSBtaW1lVHlwZXMgQW4gYXJyYXkgb2Ygc3RyaW5ncyBmb3JtYXR0ZWQgYXMgbWltZSB0eXBlcyAodHlwZS9zdWJ0eXBlKSBvciBhIHNpbmdsZSBzdHJpbmcuXG4gICAgICogQHJldHVybnMgVGhlIFJlc291cmNlTWV0aG9kIGluc3RhbmNlIHRvIHdoaWNoIHRoZSBmdW5jdGlvbiBpcyBib3VuZC5cbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgbWltZVNldHRpbmcobWltZVNldHRpbmdOYW1lOiAnY29uc3VtZXMnIHwgJ3Byb2R1Y2VzJywgbWltZVR5cGVzOiBzdHJpbmcgfCBzdHJpbmdbXSk6IFJlc291cmNlTWV0aG9kIHtcblxuICAgICAgICBsZXQgYXJyTWltZVR5cGVzOiBzdHJpbmdbXTtcblxuICAgICAgICBpZiAodHlwZW9mIG1pbWVUeXBlcyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGFyck1pbWVUeXBlcyA9IFttaW1lVHlwZXNdO1xuICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkobWltZVR5cGVzKSkge1xuICAgICAgICAgICAgYXJyTWltZVR5cGVzID0gbWltZVR5cGVzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGFyZ3VtZW50OiAnICsgbWltZVNldHRpbmdOYW1lICsgJyBtaW1lIHR5cGUgYXJndW1lbnQgbXVzdCBiZSB2YWxpZCBNSU1FIHR5cGUgc3RyaW5nIG9yIGFycmF5IG9mIHN1Y2ggc3RyaW5ncywgYnV0IGluc3RlYWQgaXMgJyArICh0eXBlb2YgbWltZVR5cGVzKSk7XG4gICAgICAgIH1cblxuICAgICAgICBhcnJNaW1lVHlwZXMuZm9yRWFjaCgobWltZVR5cGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG10ID0gbWltZVR5cGUuc3BsaXQoJy8nKTtcbiAgICAgICAgICAgIGlmIChtdC5sZW5ndGggIT09IDIgfHwgIW10WzBdIHx8ICFtdFsxXSlcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgYXJndW1lbnQuIE5vdCBhIHZhbGlkIE1JTUUgdHlwZSBmb3JtYXQgdHlwZS9zdWJ0eXBlOiAnICsgbWltZVR5cGUpO1xuICAgICAgICAgICAgLy8gQmFzaWMgZm9ybWF0IGNoZWNrIGlzIHN1ZmZpY2llbnRcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKCF0aGlzLmNmZ1ttaW1lU2V0dGluZ05hbWVdKSB7XG4gICAgICAgICAgICB0aGlzLmNmZ1ttaW1lU2V0dGluZ05hbWVdID0gW107XG4gICAgICAgIH1cblxuICAgICAgICAvLyBEZWR1cGxpY2F0ZSBlbnRyaWVzIGJlZm9yZSBjb25jYXRlbmF0aW9uXG4gICAgICAgIGNvbnN0IGV4aXN0aW5nTWltZXM6IHN0cmluZ1tdID0gdGhpcy5jZmdbbWltZVNldHRpbmdOYW1lXTtcbiAgICAgICAgY29uc3QgbmV3TWltZVR5cGVzID0gYXJyTWltZVR5cGVzLmZpbHRlcigobWltZVR5cGUpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBleGlzdGluZ01pbWVzLmluZGV4T2YobWltZVR5cGUpIDwgMDtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5jZmdbbWltZVNldHRpbmdOYW1lXSA9IGV4aXN0aW5nTWltZXMuY29uY2F0KG5ld01pbWVUeXBlcyk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICJBQTRCQSxTQUFTLHVCQUF1QjtBQXVFekIsTUFBTSxlQUFlO0FBQUEsRUFDeEI7QUFBQSxFQUNBO0FBQUE7QUFBQSxFQUNBO0FBQUE7QUFBQTtBQUFBLEVBR0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFTQSxZQUFZLGdCQUFxQixZQUFpQixVQUFlLFVBQWU7QUFDNUUsU0FBSyxNQUFNLGtCQUFrQixDQUFDO0FBQzlCLFNBQUssWUFBWTtBQUNqQixTQUFLLGFBQWE7QUFFbEIsUUFBSSxVQUFVO0FBRVYsV0FBSyxXQUFXLFNBQVMsU0FBUyxLQUFLLFFBQVE7QUFDL0MsV0FBSyxlQUFlLEtBQUssT0FBTyxLQUFLO0FBQUEsSUFDekM7QUFBQSxFQUNKO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLQSxVQUFnQjtBQUVaLFNBQUssWUFBWSxVQUFVLEdBQUcsU0FBUztBQUFBLEVBQzNDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9BLE1BQVc7QUFDUCxXQUFPLEtBQUssWUFBWSxLQUFLLElBQUksR0FBRyxTQUFTO0FBQUEsRUFDakQ7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtBLE9BQVk7QUFDUixXQUFPLEtBQUssWUFBWSxNQUFNLElBQUksR0FBRyxTQUFTO0FBQUEsRUFDbEQ7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtBLE1BQVc7QUFDUCxXQUFPLEtBQUssWUFBWSxLQUFLLElBQUksR0FBRyxTQUFTO0FBQUEsRUFDakQ7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtBLFNBQWM7QUFDVixXQUFPLEtBQUssWUFBWSxRQUFRLElBQUksR0FBRyxTQUFTO0FBQUEsRUFDcEQ7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtBLFNBQWM7QUFD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
|
|
@@ -220,4 +220,4 @@ class Resource {
|
|
|
220
220
|
export {
|
|
221
221
|
Resource
|
|
222
222
|
};
|
|
223
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2h0dHAvcnMvcmVzb3VyY2UudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IGhhbmRsZXJGdW5jdGlvbiB9IGZyb20gXCIuL3Jlc291cmNlLWNvbW1vblwiO1xuaW1wb3J0IHsgUmVzb3VyY2VNZXRob2QgfSBmcm9tIFwiLi9yZXNvdXJjZS1tZXRob2RcIjtcblxuLyoqXG4gKiBDb21wYXJlcyB0d28gYXJyYXlzIGZvciBlcXVhbGl0eSBieSBpbnNwZWN0aW5nIGlmIHRoZXkgYXJlIGFycmF5cywgcmVmZXIgdG8gdGhlIHNhbWUgaW5zdGFuY2UsXG4gKiBoYXZlIHNhbWUgbGVuZ3RoIGFuZCBjb250YWluIGVxdWFsIGNvbXBvbmVudHMgaW4gdGhlIHNhbWUgb3JkZXIuXG4gKlxuICogQHBhcmFtIHNvdXJjZSBUaGUgc291cmNlIGFycmF5IHRvIGNvbXBhcmUgdG8uXG4gKiBAcGFyYW0gdGFyZ2V0IFRoZSB0YXJnZXQgYXJyYXkgdG8gY29tcGFyZSB3aXRoLlxuICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgYXJyYXlzIGFyZSBlcXVhbCwgZmFsc2Ugb3RoZXJ3aXNlLlxuICovXG5mdW5jdGlvbiBhcnJheUVxdWFscyhzb3VyY2U6IGFueVtdIHwgdW5kZWZpbmVkLCB0YXJnZXQ6IGFueVtdIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG5cdGlmIChzb3VyY2UgPT09IHRhcmdldClcblx0XHRyZXR1cm4gdHJ1ZTtcblx0aWYgKCFBcnJheS5pc0FycmF5KHNvdXJjZSkgfHwgIUFycmF5LmlzQXJyYXkodGFyZ2V0KSlcblx0XHRyZXR1cm4gZmFsc2U7XG5cdGlmIChzb3VyY2UgIT09IHVuZGVmaW5lZCAmJiB0YXJnZXQgPT09IHVuZGVmaW5lZCB8fCBzb3VyY2UgPT09IHVuZGVmaW5lZCAmJiB0YXJnZXQgIT09IHVuZGVmaW5lZClcblx0XHRyZXR1cm4gZmFsc2U7XG5cdGlmIChzb3VyY2UubGVuZ3RoICE9PSB0YXJnZXQubGVuZ3RoKVxuXHRcdHJldHVybiBmYWxzZTtcblx0Zm9yIChsZXQgaSA9IDA7IGkgPCBzb3VyY2UubGVuZ3RoOyBpKyspIHtcblx0XHRpZiAoc291cmNlW2ldICE9PSB0YXJnZXRbaV0pXG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblx0cmV0dXJuIHRydWU7XG59XG5cbi8qKlxuICogQ29uc3RydWN0cyBhIG5ldyBSZXNvdXJjZSBpbnN0YW5jZSwgaW5pdGlhbGl6ZWQgd2l0aCB0aGUgc3VwcGxpZWQgcGF0aCBwYXJhbWV0ZXIgYW5kIG9wdGlvbmFsbHkgd2l0aCB0aGUgc2Vjb25kLCBjb25maWd1cmF0aW9uIG9iamVjdCBwYXJhbWV0ZXIuXG4gKi9cbmV4cG9ydCBjbGFzcyBSZXNvdXJjZSB7XG4gICAgLyoqIFRoZSBVUkwgcGF0aCBmb3IgdGhpcyByZXNvdXJjZS4gKi9cblx0c1BhdGg6IHN0cmluZztcbiAgICAvKiogVGhlIHJlc291cmNlIGNvbmZpZ3VyYXRpb24gbWFwcGluZyBtZXRob2RzIHRvIGhhbmRsZXIgc3BlY2lmaWNhdGlvbnMuICovXG5cdGNmZzogYW55O1xuICAgIC8qKiBUaGUgb3B0aW9uYWwgY29udHJvbGxlciBpbnN0YW5jZS4gKi9cblx0Y29udHJvbGxlcjogYW55O1xuICAgIC8qKiBCb3VuZCBleGVjdXRlIGZ1bmN0aW9uIGZyb20gdGhlIGNvbnRyb2xsZXIuICovXG5cdGV4ZWN1dGU6IEZ1bmN0aW9uIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBBZGRpdGlvbmFsIG1hcHBpbmdzIG9iamVjdC4gKi9cblx0bWFwcGluZ3M6IGFueTtcblxuXHQvKipcbiAgICAgKiBAcGFyYW0gc1BhdGggVGhlIGJhc2UgVVJMIHBhdGggZm9yIHRoZSByZXNvdXJjZS5cbiAgICAgKiBAcGFyYW0gb0NvbmZpZ3VyYXRpb24gT3B0aW9uYWwgY29uZmlndXJhdGlvbiBvYmplY3QgKG1hcCBvZiBtZXRob2QgaGFuZGxlcnMpLlxuICAgICAqIEBwYXJhbSBjb250cm9sbGVyIE9wdGlvbmFsIGNvbnRyb2xsZXIgaW5zdGFuY2UgY29udGFpbmluZyBhbiBleGVjdXRlIG1ldGhvZC5cbiAgICAgKiBAcGFyYW0gbWFwcGluZ3MgT3B0aW9uYWwgb2JqZWN0IGZvciByZXNvdXJjZSBtYXBwaW5ncy5cbiAgICAgKi9cblx0Y29uc3RydWN0b3Ioc1BhdGg6IHN0cmluZywgb0NvbmZpZ3VyYXRpb24/OiBhbnksIGNvbnRyb2xsZXI/OiBhbnksIG1hcHBpbmdzPzogYW55KSB7XG5cdFx0dGhpcy5zUGF0aCA9IHNQYXRoO1xuXHRcdHRoaXMuY2ZnID0gb0NvbmZpZ3VyYXRpb24gfHwge307XG5cblx0XHRpZiAoY29udHJvbGxlcikge1xuXHRcdFx0dGhpcy5jb250cm9sbGVyID0gY29udHJvbGxlcjtcblx0XHRcdC8vIEJpbmQgdGhlIGNvbnRyb2xsZXIncyBleGVjdXRlIGZ1bmN0aW9uXG5cdFx0XHR0aGlzLmV4ZWN1dGUgPSBjb250cm9sbGVyLmV4ZWN1dGUuYmluZChjb250cm9sbGVyKTtcblx0XHR9XG5cdFx0aWYgKG1hcHBpbmdzKSB7XG5cdFx0XHR0aGlzLm1hcHBpbmdzID0gbWFwcGluZ3M7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG4gICAgICogU2V0cyB0aGUgVVJMIHBhdGggZm9yIHRoaXMgcmVzb3VyY2UsIG92ZXJyaWRpbmcgdGhlIG9uZSBzcGVjaWZpZWQgdXBvbiBpdHMgY29uc3RydWN0aW9uLFxuICAgICAqIGlmIGEgcGF0aCBzdHJpbmcgaXMgcHJvdmlkZWQgYXMgYXJndW1lbnQgb3QgdGhlIG1ldGhvZCAoaS5lLiBhY3RzIGFzIHNldHRlciksXG4gICAgICogb3IgcmV0dXJucyB0aGUgcGF0aCBzZXQgZm9yIHRoaXMgcmVzb3VyY2UsIGlmIHRoZSBtZXRob2QgaXMgaW52b2tlZCB3aXRob3V0IGFyZ3VtZW50cyAoaS5lLiBhY3RzIGFzIGdldHRlcikuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc1BhdGggVGhlIHBhdGggcHJvcGVydHkgdG8gYmUgc2V0IGZvciB0aGlzIHJlc291cmNlLlxuICAgICAqIEByZXR1cm5zIFRoZSByZXNvdXJjZSBpbnN0YW5jZSBmb3IgbWV0aG9kIGNoYWluaW5nIChzZXR0ZXIgbW9kZSksIG9yIHRoZSBwYXRoIHNldCBmb3IgdGhpcyByZXNvdXJjZSAoZ2V0dGVyIG1vZGUpLlxuICAgICAqL1xuXHRwYXRoKHNQYXRoPzogc3RyaW5nKTogUmVzb3VyY2UgfCBzdHJpbmcge1xuXHRcdGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKVxuXHRcdFx0cmV0dXJuIHRoaXMuc1BhdGg7XG5cdFx0dGhpcy5zUGF0aCA9IHNQYXRoITtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdC8qKlxuXHQgKiBDcmVhdGVzIGEgbmV3IEhUVFAgbWV0aG9kIGhhbmRsaW5nIHNwZWNpZmljYXRpb24uXG5cdCAqXG5cdCAqIEBwYXJhbSBzSHR0cE1ldGhvZCBUaGUgSFRUUCBtZXRob2QgKG1ldGhvZCkgKGUuZy4sIFwiR0VUXCIpLlxuXHQgKiBAcGFyYW0gb0NvbmZpZ3VyYXRpb24gVGhlIGhhbmRsZXIgc3BlY2lmaWNhdGlvbihzKSBmb3IgdGhpcyBIVFRQIG1ldGhvZC4gQ2FuIGJlIGEgc2luZ2xlIG9iamVjdCBvciBhcnJheS5cblx0ICogQHJldHVybnMgVGhlIFJlc291cmNlTWV0aG9kIGluc3RhbmNlLCBvciBhbiBhcnJheSBvZiBSZXNvdXJjZU1ldGhvZCBpbnN0YW5jZXMuXG5cdCAqL1xuXHRtZXRob2Qoc0h0dHBNZXRob2Q6IHN0cmluZywgb0NvbmZpZ3VyYXRpb24/OiBhbnkgfCBhbnlbXSk6IFJlc291cmNlTWV0aG9kIHwgUmVzb3VyY2VNZXRob2RbXSB7XG5cdFx0aWYgKHNIdHRwTWV0aG9kID09PSB1bmRlZmluZWQpXG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ0lsbGVnYWwgc0h0dHBNZXRob2QgYXJndW1lbnQ6ICcgKyBzSHR0cE1ldGhvZCk7XG5cblx0XHRjb25zdCBtZXRob2QgPSBzSHR0cE1ldGhvZC50b0xvd2VyQ2FzZSgpO1xuXG5cdFx0aWYgKCF0aGlzLmNmZ1ttZXRob2RdKVxuXHRcdFx0dGhpcy5jZmdbbWV0aG9kXSA9IFtdO1xuXG5cdFx0bGV0IGFyckNvbmZpZzogYW55W10gPSBvQ29uZmlndXJhdGlvbiB8fCB7fTtcblx0XHRpZiAoIUFycmF5LmlzQXJyYXkoYXJyQ29uZmlnKSkge1xuXHRcdFx0YXJyQ29uZmlnID0gW2FyckNvbmZpZ107XG5cdFx0fVxuXG5cdFx0Y29uc3QgaGFuZGxlcnM6IFJlc291cmNlTWV0aG9kW10gPSBbXTtcblxuXHRcdGFyckNvbmZpZy5mb3JFYWNoKChoYW5kbGVyU3BlYykgPT4ge1xuXHRcdFx0Ly8gVHlwZSBjYXN0aW5nIHRvIGhhbmRsZSBvYmplY3QgcHJvcGVydHkgYWNjZXNzIGZvciBjb25zdW1lcy9wcm9kdWNlc1xuXHRcdFx0Y29uc3QgY29uc3VtZXMgPSAoaGFuZGxlclNwZWMgYXMgeyBjb25zdW1lcz86IHN0cmluZ1tdIH0pLmNvbnN1bWVzO1xuXHRcdFx0Y29uc3QgcHJvZHVjZXMgPSAoaGFuZGxlclNwZWMgYXMgeyBwcm9kdWNlcz86IHN0cmluZ1tdIH0pLnByb2R1Y2VzO1xuXG5cdFx0XHRjb25zdCBfaCA9IHRoaXMuZmluZChzSHR0cE1ldGhvZCwgY29uc3VtZXMsIHByb2R1Y2VzKTtcblx0XHRcdGlmICghX2gpIHtcblx0XHRcdFx0Ly8gY3JlYXRlIG5ld1xuXHRcdFx0XHR0aGlzLmNmZ1ttZXRob2RdLnB1c2goaGFuZGxlclNwZWMpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Ly8gdXBkYXRlIGV4aXN0aW5nIHNwZWMgaW4gY2ZnXG5cdFx0XHRcdGNvbnN0IGV4aXN0aW5nU3BlYyA9IHRoaXMuY2ZnW21ldGhvZF0uZmluZChcbiAgICAgICAgICAgICAgICAgICAgKHNwZWM6IGFueSkgPT4gYXJyYXlFcXVhbHMoc3BlYy5jb25zdW1lcywgY29uc3VtZXMpICYmIGFycmF5RXF1YWxzKHNwZWMucHJvZHVjZXMsIHByb2R1Y2VzKVxuICAgICAgICAgICAgICAgICk7XG5cdFx0XHRcdGlmIChleGlzdGluZ1NwZWMpIHtcblx0XHRcdFx0XHRmb3IgKGNvbnN0IHByb3BOYW1lIGluIGhhbmRsZXJTcGVjKSB7XG5cdFx0XHRcdFx0XHRpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGhhbmRsZXJTcGVjLCBwcm9wTmFtZSkpIHtcblx0XHRcdFx0XHRcdFx0ZXhpc3RpbmdTcGVjW3Byb3BOYW1lXSA9IGhhbmRsZXJTcGVjW3Byb3BOYW1lXTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuICAgICAgICAgICAgLy8gQ3JlYXRlIGEgbmV3IFJlc291cmNlTWV0aG9kIGluc3RhbmNlIGZvciB0aGUgKHBvdGVudGlhbGx5IHVwZGF0ZWQpIHNwZWNcbiAgICAgICAgICAgIGNvbnN0IGZpbmFsSGFuZGxlclNwZWMgPSB0aGlzLmNmZ1ttZXRob2RdLmZpbmQoXG4gICAgICAgICAgICAgICAgKHNwZWM6IGFueSkgPT4gYXJyYXlFcXVhbHMoc3BlYy5jb25zdW1lcywgY29uc3VtZXMpICYmIGFycmF5RXF1YWxzKHNwZWMucHJvZHVjZXMsIHByb2R1Y2VzKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgaWYgKGZpbmFsSGFuZGxlclNwZWMpIHtcbiAgICAgICAgICAgICAgICBoYW5kbGVycy5wdXNoKG5ldyBSZXNvdXJjZU1ldGhvZChmaW5hbEhhbmRsZXJTcGVjLCB0aGlzLmNvbnRyb2xsZXIsIHRoaXMsIHRoaXMubWFwcGluZ3MpKTtcbiAgICAgICAgICAgIH1cblx0XHR9KTtcblxuXHRcdHJldHVybiBoYW5kbGVycy5sZW5ndGggPiAxID8gaGFuZGxlcnMgOiBoYW5kbGVyc1swXTtcblx0fTtcblxuXHQvKipcbiAgICAgKiBJbnRlcm5hbCB1dGlsaXR5IG1ldGhvZCB0byBoYW5kbGUgdGhlIGxvZ2ljIGZvciBIVFRQIHZlcmIgc2hvcnRjdXQgbWV0aG9kcyAoZ2V0LCBwb3N0LCBldGMuKS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzTWV0aG9kTmFtZSBUaGUgSFRUUCBtZXRob2QgbmFtZSAoZS5nLiwgJ2dldCcpLlxuICAgICAqIEBwYXJhbSBhcmdzIFRoZSBhcmd1bWVudHMgcGFzc2VkIHRvIHRoZSBzaG9ydGN1dCBtZXRob2QuXG4gICAgICogQHJldHVybnMgVGhlIFJlc291cmNlTWV0aG9kIGluc3RhbmNlIG9yIGFuIGFycmF5IG9mIGluc3RhbmNlcy5cbiAgICAgKi9cblx0cHJpdmF0ZSBidWlsZE1ldGhvZChzTWV0aG9kTmFtZTogc3RyaW5nLCAuLi5hcmdzOiAoRnVuY3Rpb24gfCBhbnkpW10pOiBSZXNvdXJjZU1ldGhvZCB8IFJlc291cmNlTWV0aG9kW10ge1xuXHRcdGlmIChhcmdzLmxlbmd0aCA+IDApIHtcblx0XHRcdGlmICh0eXBlb2YgYXJnc1swXSA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0XHQvLyAuZ2V0KGZ1bmN0aW9uKSAtPiAubWV0aG9kKCdnZXQnKS5zZXJ2ZShmdW5jdGlvbilcbiAgICAgICAgICAgICAgICAvLyBOb3RlOiBXZSBuZWVkIHRvIGNhc3QgdGhlIHJlc3VsdCBvZiBtZXRob2QoKSB0byBhY2Nlc3Mgc2VydmUoKSBhcyBpdCByZXR1cm5zIGEgUmVzb3VyY2VNZXRob2QuXG5cdFx0XHRcdHJldHVybiAodGhpcy5tZXRob2Qoc01ldGhvZE5hbWUpIGFzIFJlc291cmNlTWV0aG9kKS5zZXJ2ZShhcmdzWzBdKTtcblx0XHRcdH0gZWxzZSBpZiAodHlwZW9mIGFyZ3NbMF0gPT09ICdvYmplY3QnICYmIGFyZ3NbMF0gIT09IG51bGwpIHtcblx0XHRcdFx0Ly8gLmdldCh7Y29uZmlnfSkgLT4gLm1ldGhvZCgnZ2V0Jywge2NvbmZpZ30pXG5cdFx0XHRcdHJldHVybiB0aGlzLm1ldGhvZChzTWV0aG9kTmFtZSwgYXJnc1swXSk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgYXJndW1lbnQ6IFJlc291cmNlLiR7c01ldGhvZE5hbWV9IG1ldGhvZCBmaXJzdCBhcmd1bWVudCBtdXN0IGJlIHZhbGlkIGphdmFzY3JpcHQgZnVuY3Rpb24gb3IgY29uZmlndXJhdGlvbiBvYmplY3QsIGJ1dCBpbnN0ZWFkIGlzICR7dHlwZW9mIGFyZ3NbMF19ICR7YXJnc1swXX1gKTtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gLmdldCgpIC0+IC5tZXRob2QoJ2dldCcpXG5cdFx0XHRyZXR1cm4gdGhpcy5tZXRob2Qoc01ldGhvZE5hbWUpIGFzIFJlc291cmNlTWV0aG9kO1xuXHRcdH1cblx0fTtcblxuXHQvKipcblx0ICogQ3JlYXRlcyBhIGhhbmRsaW5nIHNwZWNpZmljYXRpb24gZm9yIHRoZSBIVFRQIG1ldGhvZCBcIkdFVFwiLlxuXHQgKiBAcGFyYW0gZlNlcnZlQ2J8b0NvbmZpZ3VyYXRpb24gU2VydmUgZnVuY3Rpb24gY2FsbGJhY2sgb3IgY29uZmlndXJhdGlvbiBvYmplY3QgdG8gaW5pdGlhbGl6ZSB0aGUgbWV0aG9kLlxuXHQgKiBAcmV0dXJucyBUaGUgUmVzb3VyY2VNZXRob2QgaW5zdGFuY2Ugb3IgYXJyYXkuXG5cdCAqL1xuXHRnZXQoZlNlcnZlQ2I6IEZ1bmN0aW9uKTogUmVzb3VyY2VNZXRob2Q7XG4gICAgZ2V0KG9Db25maWd1cmF0aW9uOiBhbnkpOiBSZXNvdXJjZU1ldGhvZCB8IFJlc291cmNlTWV0aG9kW107XG4gICAgZ2V0KCk6IFJlc291cmNlTWV0aG9kO1xuXHRnZXQoKTogUmVzb3VyY2VNZXRob2QgfCBSZXNvdXJjZU1ldGhvZFtdIHtcblx0XHRyZXR1cm4gdGhpcy5idWlsZE1ldGhvZCgnZ2V0JywgLi4uYXJndW1lbnRzKTtcblx0fTtcblxuXHQvKipcblx0ICogQ3JlYXRlcyBhIGhhbmRsaW5nIHNwZWNpZmljYXRpb24gZm9yIHRoZSBIVFRQIG1ldGhvZCBcIlBPU1RcIi5cblx0ICogQHBhcmFtIGZTZXJ2ZUNifG9Db25maWd1cmF0aW9uIFNlcnZlIGZ1bmN0aW9uIGNhbGxiYWNrIG9yIGNvbmZpZ3VyYXRpb24gb2JqZWN0IHRvIGluaXRpYWxpemUgdGhlIG1ldGhvZC5cblx0ICogQHJldHVybnMgVGhlIFJlc291cmNlTWV0aG9kIGluc3RhbmNlIG9yIGFycmF5LlxuXHQgKi9cblx0cG9zdChmU2VydmVDYjogRnVuY3Rpb24pOiBSZXNvdXJjZU1ldGhvZDtcbiAgICBwb3N0KG9Db25maWd1cmF0aW9uOiBhbnkpOiBSZXNvdXJjZU1ldGhvZCB8IFJlc291cmNlTWV0aG9kW107XG4gICAgcG9zdCgpOiBSZXNvdXJjZU1ldGhvZDtcblx0cG9zdCgpOiBSZXNvdXJjZU1ldGhvZCB8IFJlc291cmNlTWV0aG9kW10ge1xuXHRcdHJldHVybiB0aGlzLmJ1aWxkTWV0aG9kKCdwb3N0JywgLi4uYXJndW1lbnRzKTtcblx0fTtcblxuXHQvKipcblx0ICogQ3JlYXRlcyBhIGhhbmRsaW5nIHNwZWNpZmljYXRpb24gZm9yIHRoZSBIVFRQIG1ldGhvZCBcIlBVVFwiLlxuXHQgKiBAcGFyYW0gZlNlcnZlQ2J8b0NvbmZpZ3VyYXRpb24gU2VydmUgZnVuY3Rpb24gY2FsbGJhY2sgb3IgY29uZmlndXJhdGlvbiBvYmplY3QgdG8gaW5pdGlhbGl6ZSB0aGUgbWV0aG9kLlxuXHQgKiBAcmV0dXJucyBUaGUgUmVzb3VyY2VNZXRob2QgaW5zdGFuY2Ugb3IgYXJyYXkuXG5cdCAqL1xuXHRwdXQoZlNlcnZlQ2I6IEZ1bmN0aW9uKTogUmVzb3VyY2VNZXRob2Q7XG4gICAgcHV0KG9Db25maWd1cmF0aW9uOiBhbnkpOiBSZXNvdXJjZU1ldGhvZCB8IFJlc291cmNlTWV0aG9kW107XG4gICAgcHV0KCk6IFJlc291cmNlTWV0aG9kO1xuXHRwdXQoKTogUmVzb3VyY2VNZXRob2QgfCBSZXNvdXJjZU1ldGhvZFtdIHtcblx0XHRyZXR1cm4gdGhpcy5idWlsZE1ldGhvZCgncHV0JywgLi4uYXJndW1lbnRzKTtcblx0fTtcblxuXHQvKipcblx0ICogQ3JlYXRlcyBhIGhhbmRsaW5nIHNwZWNpZmljYXRpb24gZm9yIHRoZSBIVFRQIG1ldGhvZCBcIkRFTEVURVwiLlxuXHQgKiBAcGFyYW0gZlNlcnZlQ2J8b0NvbmZpZ3VyYXRpb24gU2VydmUgZnVuY3Rpb24gY2FsbGJhY2sgb3IgY29uZmlndXJhdGlvbiBvYmplY3QgdG8gaW5pdGlhbGl6ZSB0aGUgbWV0aG9kLlxuXHQgKiBAcmV0dXJucyBUaGUgUmVzb3VyY2VNZXRob2QgaW5zdGFuY2Ugb3IgYXJyYXkuXG5cdCAqL1xuXHRkZWxldGUoZlNlcnZlQ2I6IEZ1bmN0aW9uKTogUmVzb3VyY2VNZXRob2Q7XG4gICAgZGVsZXRlKG9Db25maWd1cmF0aW9uOiBhbnkpOiBSZXNvdXJjZU1ldGhvZCB8IFJlc291cmNlTWV0aG9kW107XG4gICAgZGVsZXRlKCk6IFJlc291cmNlTWV0aG9kO1xuXHRkZWxldGUoKTogUmVzb3VyY2VNZXRob2QgfCBSZXNvdXJjZU1ldGhvZFtdIHtcblx0XHRyZXR1cm4gdGhpcy5idWlsZE1ldGhvZCgnZGVsZXRlJywgLi4uYXJndW1lbnRzKTtcblx0fTtcblxuICAgIC8qKlxuXHQgKiBDcmVhdGVzIGEgaGFuZGxpbmcgc3BlY2lmaWNhdGlvbiBmb3IgdGhlIEhUVFAgbWV0aG9kIFwiREVMRVRFXCIgKGFsaWFzIGZvciBkZWxldGUoKSkuXG5cdCAqIEBwYXJhbSBmU2VydmVDYnxvQ29uZmlndXJhdGlvbiBTZXJ2ZSBmdW5jdGlvbiBjYWxsYmFjayBvciBjb25maWd1cmF0aW9uIG9iamVjdCB0byBpbml0aWFsaXplIHRoZSBtZXRob2QuXG5cdCAqIEByZXR1cm5zIFRoZSBSZXNvdXJjZU1ldGhvZCBpbnN0YW5jZSBvciBhcnJheS5cblx0ICovXG4gICAgcmVtb3ZlKGZTZXJ2ZUNiOiBGdW5jdGlvbik6IFJlc291cmNlTWV0aG9kO1xuICAgIHJlbW92ZShvQ29uZmlndXJhdGlvbjogYW55KTogUmVzb3VyY2VNZXRob2QgfCBSZXNvdXJjZU1ldGhvZFtdO1xuICAgIHJlbW92ZSgpOiBSZXNvdXJjZU1ldGhvZDtcblx0cmVtb3ZlKCk6IFJlc291cmNlTWV0aG9kIHwgUmVzb3VyY2VNZXRob2RbXSB7XG5cdFx0cmV0dXJuIHRoaXMuYnVpbGRNZXRob2QoJ2RlbGV0ZScsIC4uLmFyZ3VtZW50cyk7XG5cdH1cblxuXHQvKipcblx0ICogRmluZHMgYSBSZXNvdXJjZU1ldGhvZCB3aXRoIHRoZSBnaXZlbiBjb25zdHJhaW50cy5cblx0ICpcblx0ICogQHBhcmFtIHNWZXJiIFRoZSBuYW1lIG9mIHRoZSBtZXRob2QgcHJvcGVydHkgb2YgdGhlIFJlc291cmNlTWV0aG9kIGluIHNlYXJjaCAoZS5nLiwgXCJHRVRcIikuXG5cdCAqIEBwYXJhbSBhcnJDb25zdW1lc01pbWVUeXBlU3RyaW5ncyBUaGUgY29uc3VtZXMgY29uc3RyYWludCBwcm9wZXJ0eSBvZiB0aGUgUmVzb3VyY2VNZXRob2QgaW4gc2VhcmNoLlxuXHQgKiBAcGFyYW0gYXJyUHJvZHVjZXNNaW1lVHlwZVN0cmluZ3MgVGhlIHByb2R1Y2VzIGNvbnN0cmFpbnQgcHJvcGVydHkgb2YgdGhlIFJlc291cmNlTWV0aG9kIGluIHNlYXJjaC5cblx0ICogQHJldHVybnMgVGhlIGZvdW5kIFJlc291cmNlTWV0aG9kIGluc3RhbmNlLCBvciB1bmRlZmluZWQgaWYgbm90IGZvdW5kLlxuXHQgKi9cblx0ZmluZChzVmVyYjogc3RyaW5nLCBhcnJDb25zdW1lc01pbWVUeXBlU3RyaW5ncz86IHN0cmluZ1tdLCBhcnJQcm9kdWNlc01pbWVUeXBlU3RyaW5ncz86IHN0cmluZ1tdKTogUmVzb3VyY2VNZXRob2QgfCB1bmRlZmluZWQge1xuXHRcdGxldCBoaXQ6IFJlc291cmNlTWV0aG9kIHwgdW5kZWZpbmVkO1xuXHRcdGNvbnN0IHNWZXJiTG93ZXIgPSBzVmVyYi50b0xvd2VyQ2FzZSgpO1xuXG5cdFx0T2JqZWN0LmtleXModGhpcy5jZmcpXG4gICAgICAgICAgICAuZmlsdGVyKChzVmVyYk5hbWUpID0+IHNWZXJiTmFtZSA9PT0gc1ZlcmJMb3dlcilcbiAgICAgICAgICAgIC5mb3JFYWNoKChzVmVyYk5hbWUpID0+IHtcblx0XHRcdCAgICB0aGlzLmNmZ1tzVmVyYk5hbWVdLmZvckVhY2goKHZlcmJIYW5kbGVyU3BlYzogYW55KSA9PiB7XG5cdFx0XHRcdCAgICBpZiAoYXJyYXlFcXVhbHModmVyYkhhbmRsZXJTcGVjLmNvbnN1bWVzLCBhcnJDb25zdW1lc01pbWVUeXBlU3RyaW5ncykgJiYgYXJyYXlFcXVhbHModmVyYkhhbmRsZXJTcGVjLnByb2R1Y2VzLCBhcnJQcm9kdWNlc01pbWVUeXBlU3RyaW5ncykpIHtcblx0XHRcdFx0XHQgICAgaGl0ID0gbmV3IFJlc291cmNlTWV0aG9kKHZlcmJIYW5kbGVyU3BlYywgdGhpcy5jb250cm9sbGVyLCB0aGlzLCB0aGlzLm1hcHBpbmdzKTtcblx0XHRcdFx0XHQgICAgcmV0dXJuO1xuXHRcdFx0XHQgICAgfVxuXHRcdFx0ICAgIH0pO1xuXHRcdFx0ICAgIGlmIChoaXQpXG5cdFx0XHRcdCAgICByZXR1cm47XG5cdFx0fSk7XG5cdFx0cmV0dXJuIGhpdDtcblx0fTtcblxuXHQvKipcblx0ICogUmV0dXJucyB0aGUgY29uZmlndXJhdGlvbiBvZiB0aGlzIHJlc291cmNlLlxuXHQgKlxuXHQgKiBAcmV0dXJucyBUaGUgcmVzb3VyY2UgY29uZmlndXJhdGlvbiBvYmplY3QuXG5cdCAqL1xuXHRjb25maWd1cmF0aW9uKCk6IGFueSB7XG5cdFx0cmV0dXJuIHRoaXMuY2ZnO1xuXHR9O1xuXG5cdC8qKlxuXHQgKiBJbnN0cnVjdHMgcmVkaXJlY3Rpb24gb2YgdGhlIHJlcXVlc3QgYmFzZSBkb24gdGhlIHBhcmFtZXRlci4gSWYgaXQgaXMgYSBzdGlybmcgcmVwcmVzZW50aW5nIFVSSSwgdGhlIHJlcXVlc3Qgd2lsbCBiZVxuXHQgKiByZWRpcmVjdGVkIHRvIHRoaXMgVVJJIGZvciBhbnkgbWV0aG9kLiBJZiBpdCdzIGEgZnVuY3Rpb24gaXQgd2lsbCBiZSBpbnZva2VkIGFuZCBlcHhlY3RlZCB0byByZXR1cm4gYSBVUkkgc3RyaW5nIHRvIHJlZGlyZWN0IHRvLlxuXHQgKlxuXHQgKiBAcGFyYW0gZlJlZGlyZWN0b3IgVGhlIGZ1bmN0aW9uIG9yIHN0cmluZyBVUkkgdG8gcmVkaXJlY3QgdG8uXG4gICAgICogQHJldHVybnMgVGhlIHJlc291cmNlIGluc3RhbmNlIGZvciBtZXRob2QgY2hhaW5pbmcuXG5cdCAqL1xuXHRyZWRpcmVjdChmUmVkaXJlY3Rvcjogc3RyaW5nIHwgRnVuY3Rpb24pOiBSZXNvdXJjZSB7XG5cdFx0aWYgKHR5cGVvZiBmUmVkaXJlY3RvciA9PT0gJ3N0cmluZycpIHtcblx0XHRcdGNvbnN0IHJlZGlyZWN0VXJpID0gZlJlZGlyZWN0b3I7XG5cdFx0XHRmUmVkaXJlY3RvciA9IGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0cmV0dXJuIHJlZGlyZWN0VXJpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHQvLyBUaGUgaW1wb3J0ZWQgaGFuZGxlckZ1bmN0aW9uIGlzIHVzZWQgaGVyZVxuXHRcdHJldHVybiBoYW5kbGVyRnVuY3Rpb24odGhpcywgdGhpcy5jb25maWd1cmF0aW9uKCksICdyZWRpcmVjdCcsIGZSZWRpcmVjdG9yKTtcblx0fTtcblxuXHQvKipcblx0ICogRGlzYWJsZXMgdGhlIFJlc291cmNlTWV0aG9kcyB0aGF0IG1hdGNoIHRoZSBnaXZlbiBjb25zdHJhaW50c1xuICAgICAqXG4gICAgICogQHBhcmFtIHNWZXJiIFRoZSBIVFRQIHZlcmIgKGUuZy4sIFwiR0VUXCIpLlxuXHQgKiBAcGFyYW0gYXJyQ29uc3VtZXNUeXBlU3RyaW5ncyBUaGUgY29uc3VtZXMgY29uc3RyYWludCBwcm9wZXJ0eSBvZiB0aGUgUmVzb3VyY2VNZXRob2QgaW4gc2VhcmNoLlxuXHQgKiBAcGFyYW0gYXJyUHJvZHVjZXNUeXBlU3RyaW5ncyBUaGUgcHJvZHVjZXMgY29uc3RyYWludCBwcm9wZXJ0eSBvZiB0aGUgUmVzb3VyY2VNZXRob2QgaW4gc2VhcmNoLlxuICAgICAqIEByZXR1cm5zIFRoZSByZXNvdXJjZSBpbnN0YW5jZSBmb3IgbWV0aG9kIGNoYWluaW5nLlxuXHQgKi9cblx0ZGlzYWJsZShzVmVyYj86IHN0cmluZywgYXJyQ29uc3VtZXNUeXBlU3RyaW5ncz86IHN0cmluZ1tdLCBhcnJQcm9kdWNlc1R5cGVTdHJpbmdzPzogc3RyaW5nW10pOiBSZXNvdXJjZSB7XG5cdFx0T2JqZWN0LmtleXModGhpcy5jZmcpXG4gICAgICAgICAgICAuZmlsdGVyKChzVmVyYk5hbWUpID0+IHNWZXJiID09PSB1bmRlZmluZWQgfHwgKHNWZXJiICYmIHNWZXJiLnRvTG93ZXJDYXNlKCkgPT09IHNWZXJiTmFtZSkpXG4gICAgICAgICAgICAuZm9yRWFjaCgoc1ZlcmJOYW1lKSA9PiB7XG5cdFx0XHQgICAgLy8gVXNlIGEgcmV2ZXJzZSBsb29wIGZvciBzYWZlIHNwbGljaW5nXG5cdFx0XHQgICAgZm9yIChsZXQgaSA9IHRoaXMuY2ZnW3NWZXJiTmFtZV0ubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmVyYkhhbmRsZXJTcGVjID0gdGhpcy5jZmdbc1ZlcmJOYW1lXVtpXTtcblx0XHRcdFx0ICAgIGlmIChhcnJheUVxdWFscyh2ZXJiSGFuZGxlclNwZWMuY29uc3VtZXMsIGFyckNvbnN1bWVzVHlwZVN0cmluZ3MpICYmIGFycmF5RXF1YWxzKHZlcmJIYW5kbGVyU3BlYy5wcm9kdWNlcywgYXJyUHJvZHVjZXNUeXBlU3RyaW5ncykpIHtcblx0XHRcdFx0XHQgICAgdGhpcy5jZmdbc1ZlcmJOYW1lXS5zcGxpY2UoaSwgMSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cdFx0fSk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH07XG5cblx0LyoqXG5cdCAqIERpc2FibGVzIGFsbCBidXQgJ3JlYWQnIEhUVFAgbWV0aG9kcyBpbiB0aGlzIHJlc291cmNlIChHRVQsIEhFQUQsIFRSQUNFKS5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIFRoZSByZXNvdXJjZSBpbnN0YW5jZSBmb3IgbWV0aG9kIGNoYWluaW5nLlxuXHQgKi9cblx0cmVhZG9ubHkoKTogUmVzb3VyY2Uge1xuXHRcdE9iamVjdC5rZXlzKHRoaXMuY2ZnKS5mb3JFYWNoKChtZXRob2QpID0+IHtcblx0XHRcdGlmICghWydnZXQnLCAnaGVhZCcsICd0cmFjZSddLmluY2x1ZGVzKG1ldGhvZCkpIHtcblx0XHRcdFx0ZGVsZXRlIHRoaXMuY2ZnW21ldGhvZF07XG4gICAgICAgICAgICB9XG5cdFx0fSk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH07XG59Il0sCiAgIm1hcHBpbmdzIjogIkFBQUEsU0FBUyx1QkFBdUI7QUFDaEMsU0FBUyxzQkFBc0I7QUFVL0IsU0FBUyxZQUFZLFFBQTJCLFFBQW9DO0FBQ25GLE1BQUksV0FBVztBQUNkLFdBQU87QUFDUixNQUFJLENBQUMsTUFBTSxRQUFRLE1BQU0sS0FBSyxDQUFDLE1BQU0sUUFBUSxNQUFNO0FBQ2xELFdBQU87QUFDUixNQUFJLFdBQVcsVUFBYSxXQUFXLFVBQWEsV0FBVyxVQUFhLFdBQVc7QUFDdEYsV0FBTztBQUNSLE1BQUksT0FBTyxXQUFXLE9BQU87QUFDNUIsV0FBTztBQUNSLFdBQVMsSUFBSSxHQUFHLElBQUksT0FBTyxRQUFRLEtBQUs7QUFDdkMsUUFBSSxPQUFPLENBQUMsTUFBTSxPQUFPLENBQUM7QUFDekIsYUFBTztBQUFBLEVBQ1Q7QUFDQSxTQUFPO0FBQ1I7QUFLTyxNQUFNLFNBQVM7QUFBQTtBQUFBLEVBRXJCO0FBQUE7QUFBQSxFQUVBO0FBQUE7QUFBQSxFQUVBO0FBQUE7QUFBQSxFQUVBO0FBQUE7QUFBQSxFQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRQSxZQUFZLE9BQWUsZ0JBQXNCLFlBQWtCLFVBQWdCO0FBQ2xGLFNBQUssUUFBUTtBQUNiLFNBQUssTUFBTSxrQkFBa0IsQ0FBQztBQUU5QixRQUFJLFlBQVk7QUFDZixXQUFLLGFBQWE7QUFFbEIsV0FBSyxVQUFVLFdBQVcsUUFBUSxLQUFLLFVBQVU7QUFBQSxJQUNsRDtBQUNBLFFBQUksVUFBVTtBQUNiLFdBQUssV0FBVztBQUFBLElBQ2pCO0FBQUEsRUFDRDtB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
|
|
223
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2h0dHAvcnMvcmVzb3VyY2UudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQG1vZHVsZSBodHRwL3JzL3Jlc291cmNlXG4gKiBAcGFja2FnZSBAYWVyb2tpdC9zZGsvaHR0cFxuICogQG5hbWUgUmVzb3VyY2VcbiAqIEBvdmVydmlld1xuICogXG4gKiBUaGUgUmVzb3VyY2UgY2xhc3MgaXMgYSBmdW5kYW1lbnRhbCBjb21wb25lbnQgb2YgdGhlIEhUVFAgY29udHJvbGxlciBtb2R1bGUsIHJlcHJlc2VudGluZyBhbiBpbmRpdmlkdWFsIEFQSSByZXNvdXJjZS4gSXQgZW5jYXBzdWxhdGVzIHRoZSBVUkwgcGF0aCBhbmQgdGhlIGFzc29jaWF0ZWQgaGFuZGxlciBzcGVjaWZpY2F0aW9ucyBmb3IgdmFyaW91cyBIVFRQIG1ldGhvZHMgKEdFVCwgUE9TVCwgZXRjLikgdGhhdCBkZWZpbmUgaG93IHJlcXVlc3RzIHRvIHRoYXQgcmVzb3VyY2Ugc2hvdWxkIGJlIHByb2Nlc3NlZC4gVGhlIFJlc291cmNlIGNsYXNzIHByb3ZpZGVzIGEgc3RydWN0dXJlZCB3YXkgdG8gZGVmaW5lIGFuZCBtYW5hZ2UgQVBJIGVuZHBvaW50cywgYWxsb3dpbmcgZGV2ZWxvcGVycyB0byBjb25maWd1cmUgdGhlaXIgQVBJIHJlc291cmNlcyB3aXRoIHNwZWNpZmljIHBhdGhzIGFuZCBoYW5kbGluZyBsb2dpYy5cbiAqIFxuICogIyMjIEtleSBGZWF0dXJlczpcbiAqIC0gKipSZXNvdXJjZSBSZXByZXNlbnRhdGlvbioqOiBSZXByZXNlbnRzIGFuIEFQSSByZXNvdXJjZSB3aXRoIGEgc3BlY2lmaWMgVVJMIHBhdGggYW5kIGFzc29jaWF0ZWQgaGFuZGxlcnMgZm9yIGRpZmZlcmVudCBIVFRQIG1ldGhvZHMuXG4gKiAtICoqTWV0aG9kIENvbmZpZ3VyYXRpb24qKjogQWxsb3dzIGRlZmluaW5nIGhhbmRsZXJzIGZvciB2YXJpb3VzIEhUVFAgbWV0aG9kcyAoR0VULCBQT1NULCBQVVQsIERFTEVURSkgd2l0aCBzcGVjaWZpYyBjb25maWd1cmF0aW9ucy5cbiAqIC0gKipSZWRpcmVjdGlvbiBhbmQgRGlzYWJsaW5nKio6IFByb3ZpZGVzIGZ1bmN0aW9uYWxpdHkgdG8gcmVkaXJlY3QgcmVxdWVzdHMgb3IgZGlzYWJsZSBjZXJ0YWluIG1ldGhvZCBoYW5kbGVycyBiYXNlZCBvbiBjb25zdHJhaW50cy5cbiAqIFxuICogIyMjIFVzZSBDYXNlczpcbiAqIC0gKipBUEkgRW5kcG9pbnQgRGVmaW5pdGlvbioqOiBEZXZlbG9wZXJzIGNhbiB1c2UgdGhlIFJlc291cmNlIGNsYXNzIHRvIGRlZmluZSBBUEkgZW5kcG9pbnRzIHdpdGggc3BlY2lmaWMgcGF0aHMgYW5kIGhhbmRsaW5nIGxvZ2ljIGZvciBkaWZmZXJlbnQgSFRUUCBtZXRob2RzLlxuICogLSAqKkR5bmFtaWMgUmVzb3VyY2UgTWFuYWdlbWVudCoqOiBUaGUgUmVzb3VyY2UgY2xhc3MgYWxsb3dzIGZvciBkeW5hbWljIGNvbmZpZ3VyYXRpb24gb2YgcmVzb3VyY2VzLCBlbmFibGluZyBmZWF0dXJlcyBsaWtlIHJlZGlyZWN0aW9uIGFuZCBzZWxlY3RpdmUgZGlzYWJsaW5nIG9mIG1ldGhvZCBoYW5kbGVycy5cbiAqIFxuICogIyMjIEV4YW1wbGUgVXNhZ2U6XG4gKiBgYGB0c1xuICogaW1wb3J0IHsgUmVzb3VyY2UgfSBmcm9tIFwiQGFlcm9raXQvc2RrL2h0dHBcIjtcbiAqIFxuICogY29uc3QgdXNlclJlc291cmNlID0gbmV3IFJlc291cmNlKFwidXNlcnMve2lkfVwiKVxuICogICAuZ2V0KChyZXEsIHJlcykgPT4geyAuLi4gfSlcbiAqICAucG9zdCgocmVxLCByZXMpID0+IHsgLi4uIH0pXG4gKiAgIC5yZWRpcmVjdChcIi9uZXctdXNlcnMve2lkfVwiKVxuICogICAuZGlzYWJsZShcInBvc3RcIik7XG4gKiBgYGBcbiAqL1xuaW1wb3J0IHsgaGFuZGxlckZ1bmN0aW9uIH0gZnJvbSBcIi4vcmVzb3VyY2UtY29tbW9uXCI7XG5pbXBvcnQgeyBSZXNvdXJjZU1ldGhvZCB9IGZyb20gXCIuL3Jlc291cmNlLW1ldGhvZFwiO1xuXG4vKipcbiAqIENvbXBhcmVzIHR3byBhcnJheXMgZm9yIGVxdWFsaXR5IGJ5IGluc3BlY3RpbmcgaWYgdGhleSBhcmUgYXJyYXlzLCByZWZlciB0byB0aGUgc2FtZSBpbnN0YW5jZSxcbiAqIGhhdmUgc2FtZSBsZW5ndGggYW5kIGNvbnRhaW4gZXF1YWwgY29tcG9uZW50cyBpbiB0aGUgc2FtZSBvcmRlci5cbiAqXG4gKiBAcGFyYW0gc291cmNlIFRoZSBzb3VyY2UgYXJyYXkgdG8gY29tcGFyZSB0by5cbiAqIEBwYXJhbSB0YXJnZXQgVGhlIHRhcmdldCBhcnJheSB0byBjb21wYXJlIHdpdGguXG4gKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBhcnJheXMgYXJlIGVxdWFsLCBmYWxzZSBvdGhlcndpc2UuXG4gKi9cbmZ1bmN0aW9uIGFycmF5RXF1YWxzKHNvdXJjZTogYW55W10gfCB1bmRlZmluZWQsIHRhcmdldDogYW55W10gfCB1bmRlZmluZWQpOiBib29sZWFuIHtcblx0aWYgKHNvdXJjZSA9PT0gdGFyZ2V0KVxuXHRcdHJldHVybiB0cnVlO1xuXHRpZiAoIUFycmF5LmlzQXJyYXkoc291cmNlKSB8fCAhQXJyYXkuaXNBcnJheSh0YXJnZXQpKVxuXHRcdHJldHVybiBmYWxzZTtcblx0aWYgKHNvdXJjZSAhPT0gdW5kZWZpbmVkICYmIHRhcmdldCA9PT0gdW5kZWZpbmVkIHx8IHNvdXJjZSA9PT0gdW5kZWZpbmVkICYmIHRhcmdldCAhPT0gdW5kZWZpbmVkKVxuXHRcdHJldHVybiBmYWxzZTtcblx0aWYgKHNvdXJjZS5sZW5ndGggIT09IHRhcmdldC5sZW5ndGgpXG5cdFx0cmV0dXJuIGZhbHNlO1xuXHRmb3IgKGxldCBpID0gMDsgaSA8IHNvdXJjZS5sZW5ndGg7IGkrKykge1xuXHRcdGlmIChzb3VyY2VbaV0gIT09IHRhcmdldFtpXSlcblx0XHRcdHJldHVybiBmYWxzZTtcblx0fVxuXHRyZXR1cm4gdHJ1ZTtcbn1cblxuLyoqXG4gKiBDb25zdHJ1Y3RzIGEgbmV3IFJlc291cmNlIGluc3RhbmNlLCBpbml0aWFsaXplZCB3aXRoIHRoZSBzdXBwbGllZCBwYXRoIHBhcmFtZXRlciBhbmQgb3B0aW9uYWxseSB3aXRoIHRoZSBzZWNvbmQsIGNvbmZpZ3VyYXRpb24gb2JqZWN0IHBhcmFtZXRlci5cbiAqL1xuZXhwb3J0IGNsYXNzIFJlc291cmNlIHtcbiAgICAvKiogVGhlIFVSTCBwYXRoIGZvciB0aGlzIHJlc291cmNlLiAqL1xuXHRzUGF0aDogc3RyaW5nO1xuICAgIC8qKiBUaGUgcmVzb3VyY2UgY29uZmlndXJhdGlvbiBtYXBwaW5nIG1ldGhvZHMgdG8gaGFuZGxlciBzcGVjaWZpY2F0aW9ucy4gKi9cblx0Y2ZnOiBhbnk7XG4gICAgLyoqIFRoZSBvcHRpb25hbCBjb250cm9sbGVyIGluc3RhbmNlLiAqL1xuXHRjb250cm9sbGVyOiBhbnk7XG4gICAgLyoqIEJvdW5kIGV4ZWN1dGUgZnVuY3Rpb24gZnJvbSB0aGUgY29udHJvbGxlci4gKi9cblx0ZXhlY3V0ZTogRnVuY3Rpb24gfCB1bmRlZmluZWQ7XG4gICAgLyoqIEFkZGl0aW9uYWwgbWFwcGluZ3Mgb2JqZWN0LiAqL1xuXHRtYXBwaW5nczogYW55O1xuXG5cdC8qKlxuICAgICAqIEBwYXJhbSBzUGF0aCBUaGUgYmFzZSBVUkwgcGF0aCBmb3IgdGhlIHJlc291cmNlLlxuICAgICAqIEBwYXJhbSBvQ29uZmlndXJhdGlvbiBPcHRpb25hbCBjb25maWd1cmF0aW9uIG9iamVjdCAobWFwIG9mIG1ldGhvZCBoYW5kbGVycykuXG4gICAgICogQHBhcmFtIGNvbnRyb2xsZXIgT3B0aW9uYWwgY29udHJvbGxlciBpbnN0YW5jZSBjb250YWluaW5nIGFuIGV4ZWN1dGUgbWV0aG9kLlxuICAgICAqIEBwYXJhbSBtYXBwaW5ncyBPcHRpb25hbCBvYmplY3QgZm9yIHJlc291cmNlIG1hcHBpbmdzLlxuICAgICAqL1xuXHRjb25zdHJ1Y3RvcihzUGF0aDogc3RyaW5nLCBvQ29uZmlndXJhdGlvbj86IGFueSwgY29udHJvbGxlcj86IGFueSwgbWFwcGluZ3M/OiBhbnkpIHtcblx0XHR0aGlzLnNQYXRoID0gc1BhdGg7XG5cdFx0dGhpcy5jZmcgPSBvQ29uZmlndXJhdGlvbiB8fCB7fTtcblxuXHRcdGlmIChjb250cm9sbGVyKSB7XG5cdFx0XHR0aGlzLmNvbnRyb2xsZXIgPSBjb250cm9sbGVyO1xuXHRcdFx0Ly8gQmluZCB0aGUgY29udHJvbGxlcidzIGV4ZWN1dGUgZnVuY3Rpb25cblx0XHRcdHRoaXMuZXhlY3V0ZSA9IGNvbnRyb2xsZXIuZXhlY3V0ZS5iaW5kKGNvbnRyb2xsZXIpO1xuXHRcdH1cblx0XHRpZiAobWFwcGluZ3MpIHtcblx0XHRcdHRoaXMubWFwcGluZ3MgPSBtYXBwaW5ncztcblx0XHR9XG5cdH1cblxuXHQvKipcbiAgICAgKiBTZXRzIHRoZSBVUkwgcGF0aCBmb3IgdGhpcyByZXNvdXJjZSwgb3ZlcnJpZGluZyB0aGUgb25lIHNwZWNpZmllZCB1cG9uIGl0cyBjb25zdHJ1Y3Rpb24sXG4gICAgICogaWYgYSBwYXRoIHN0cmluZyBpcyBwcm92aWRlZCBhcyBhcmd1bWVudCBvdCB0aGUgbWV0aG9kIChpLmUuIGFjdHMgYXMgc2V0dGVyKSxcbiAgICAgKiBvciByZXR1cm5zIHRoZSBwYXRoIHNldCBmb3IgdGhpcyByZXNvdXJjZSwgaWYgdGhlIG1ldGhvZCBpcyBpbnZva2VkIHdpdGhvdXQgYXJndW1lbnRzIChpLmUuIGFjdHMgYXMgZ2V0dGVyKS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzUGF0aCBUaGUgcGF0aCBwcm9wZXJ0eSB0byBiZSBzZXQgZm9yIHRoaXMgcmVzb3VyY2UuXG4gICAgICogQHJldHVybnMgVGhlIHJlc291cmNlIGluc3RhbmNlIGZvciBtZXRob2QgY2hhaW5pbmcgKHNldHRlciBtb2RlKSwgb3IgdGhlIHBhdGggc2V0IGZvciB0aGlzIHJlc291cmNlIChnZXR0ZXIgbW9kZSkuXG4gICAgICovXG5cdHBhdGgoc1BhdGg/OiBzdHJpbmcpOiBSZXNvdXJjZSB8IHN0cmluZyB7XG5cdFx0aWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApXG5cdFx0XHRyZXR1cm4gdGhpcy5zUGF0aDtcblx0XHR0aGlzLnNQYXRoID0gc1BhdGghO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0LyoqXG5cdCAqIENyZWF0ZXMgYSBuZXcgSFRUUCBtZXRob2QgaGFuZGxpbmcgc3BlY2lmaWNhdGlvbi5cblx0ICpcblx0ICogQHBhcmFtIHNIdHRwTWV0aG9kIFRoZSBIVFRQIG1ldGhvZCAobWV0aG9kKSAoZS5nLiwgXCJHRVRcIikuXG5cdCAqIEBwYXJhbSBvQ29uZmlndXJhdGlvbiBUaGUgaGFuZGxlciBzcGVjaWZpY2F0aW9uKHMpIGZvciB0aGlzIEhUVFAgbWV0aG9kLiBDYW4gYmUgYSBzaW5nbGUgb2JqZWN0IG9yIGFycmF5LlxuXHQgKiBAcmV0dXJucyBUaGUgUmVzb3VyY2VNZXRob2QgaW5zdGFuY2UsIG9yIGFuIGFycmF5IG9mIFJlc291cmNlTWV0aG9kIGluc3RhbmNlcy5cblx0ICovXG5cdG1ldGhvZChzSHR0cE1ldGhvZDogc3RyaW5nLCBvQ29uZmlndXJhdGlvbj86IGFueSB8IGFueVtdKTogUmVzb3VyY2VNZXRob2QgfCBSZXNvdXJjZU1ldGhvZFtdIHtcblx0XHRpZiAoc0h0dHBNZXRob2QgPT09IHVuZGVmaW5lZClcblx0XHRcdHRocm93IG5ldyBFcnJvcignSWxsZWdhbCBzSHR0cE1ldGhvZCBhcmd1bWVudDogJyArIHNIdHRwTWV0aG9kKTtcblxuXHRcdGNvbnN0IG1ldGhvZCA9IHNIdHRwTWV0aG9kLnRvTG93ZXJDYXNlKCk7XG5cblx0XHRpZiAoIXRoaXMuY2ZnW21ldGhvZF0pXG5cdFx0XHR0aGlzLmNmZ1ttZXRob2RdID0gW107XG5cblx0XHRsZXQgYXJyQ29uZmlnOiBhbnlbXSA9IG9Db25maWd1cmF0aW9uIHx8IHt9O1xuXHRcdGlmICghQXJyYXkuaXNBcnJheShhcnJDb25maWcpKSB7XG5cdFx0XHRhcnJDb25maWcgPSBbYXJyQ29uZmlnXTtcblx0XHR9XG5cblx0XHRjb25zdCBoYW5kbGVyczogUmVzb3VyY2VNZXRob2RbXSA9IFtdO1xuXG5cdFx0YXJyQ29uZmlnLmZvckVhY2goKGhhbmRsZXJTcGVjKSA9PiB7XG5cdFx0XHQvLyBUeXBlIGNhc3RpbmcgdG8gaGFuZGxlIG9iamVjdCBwcm9wZXJ0eSBhY2Nlc3MgZm9yIGNvbnN1bWVzL3Byb2R1Y2VzXG5cdFx0XHRjb25zdCBjb25zdW1lcyA9IChoYW5kbGVyU3BlYyBhcyB7IGNvbnN1bWVzPzogc3RyaW5nW10gfSkuY29uc3VtZXM7XG5cdFx0XHRjb25zdCBwcm9kdWNlcyA9IChoYW5kbGVyU3BlYyBhcyB7IHByb2R1Y2VzPzogc3RyaW5nW10gfSkucHJvZHVjZXM7XG5cblx0XHRcdGNvbnN0IF9oID0gdGhpcy5maW5kKHNIdHRwTWV0aG9kLCBjb25zdW1lcywgcHJvZHVjZXMpO1xuXHRcdFx0aWYgKCFfaCkge1xuXHRcdFx0XHQvLyBjcmVhdGUgbmV3XG5cdFx0XHRcdHRoaXMuY2ZnW21ldGhvZF0ucHVzaChoYW5kbGVyU3BlYyk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHQvLyB1cGRhdGUgZXhpc3Rpbmcgc3BlYyBpbiBjZmdcblx0XHRcdFx0Y29uc3QgZXhpc3RpbmdTcGVjID0gdGhpcy5jZmdbbWV0aG9kXS5maW5kKFxuICAgICAgICAgICAgICAgICAgICAoc3BlYzogYW55KSA9PiBhcnJheUVxdWFscyhzcGVjLmNvbnN1bWVzLCBjb25zdW1lcykgJiYgYXJyYXlFcXVhbHMoc3BlYy5wcm9kdWNlcywgcHJvZHVjZXMpXG4gICAgICAgICAgICAgICAgKTtcblx0XHRcdFx0aWYgKGV4aXN0aW5nU3BlYykge1xuXHRcdFx0XHRcdGZvciAoY29uc3QgcHJvcE5hbWUgaW4gaGFuZGxlclNwZWMpIHtcblx0XHRcdFx0XHRcdGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaGFuZGxlclNwZWMsIHByb3BOYW1lKSkge1xuXHRcdFx0XHRcdFx0XHRleGlzdGluZ1NwZWNbcHJvcE5hbWVdID0gaGFuZGxlclNwZWNbcHJvcE5hbWVdO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXG4gICAgICAgICAgICAvLyBDcmVhdGUgYSBuZXcgUmVzb3VyY2VNZXRob2QgaW5zdGFuY2UgZm9yIHRoZSAocG90ZW50aWFsbHkgdXBkYXRlZCkgc3BlY1xuICAgICAgICAgICAgY29uc3QgZmluYWxIYW5kbGVyU3BlYyA9IHRoaXMuY2ZnW21ldGhvZF0uZmluZChcbiAgICAgICAgICAgICAgICAoc3BlYzogYW55KSA9PiBhcnJheUVxdWFscyhzcGVjLmNvbnN1bWVzLCBjb25zdW1lcykgJiYgYXJyYXlFcXVhbHMoc3BlYy5wcm9kdWNlcywgcHJvZHVjZXMpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBpZiAoZmluYWxIYW5kbGVyU3BlYykge1xuICAgICAgICAgICAgICAgIGhhbmRsZXJzLnB1c2gobmV3IFJlc291cmNlTWV0aG9kKGZpbmFsSGFuZGxlclNwZWMsIHRoaXMuY29udHJvbGxlciwgdGhpcywgdGhpcy5tYXBwaW5ncykpO1xuICAgICAgICAgICAgfVxuXHRcdH0pO1xuXG5cdFx0cmV0dXJuIGhhbmRsZXJzLmxlbmd0aCA+IDEgPyBoYW5kbGVycyA6IGhhbmRsZXJzWzBdO1xuXHR9O1xuXG5cdC8qKlxuICAgICAqIEludGVybmFsIHV0aWxpdHkgbWV0aG9kIHRvIGhhbmRsZSB0aGUgbG9naWMgZm9yIEhUVFAgdmVyYiBzaG9ydGN1dCBtZXRob2RzIChnZXQsIHBvc3QsIGV0Yy4pLlxuICAgICAqXG4gICAgICogQHBhcmFtIHNNZXRob2ROYW1lIFRoZSBIVFRQIG1ldGhvZCBuYW1lIChlLmcuLCAnZ2V0JykuXG4gICAgICogQHBhcmFtIGFyZ3MgVGhlIGFyZ3VtZW50cyBwYXNzZWQgdG8gdGhlIHNob3J0Y3V0IG1ldGhvZC5cbiAgICAgKiBAcmV0dXJucyBUaGUgUmVzb3VyY2VNZXRob2QgaW5zdGFuY2Ugb3IgYW4gYXJyYXkgb2YgaW5zdGFuY2VzLlxuICAgICAqL1xuXHRwcml2YXRlIGJ1aWxkTWV0aG9kKHNNZXRob2ROYW1lOiBzdHJpbmcsIC4uLmFyZ3M6IChGdW5jdGlvbiB8IGFueSlbXSk6IFJlc291cmNlTWV0aG9kIHwgUmVzb3VyY2VNZXRob2RbXSB7XG5cdFx0aWYgKGFyZ3MubGVuZ3RoID4gMCkge1xuXHRcdFx0aWYgKHR5cGVvZiBhcmdzWzBdID09PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHRcdC8vIC5nZXQoZnVuY3Rpb24pIC0+IC5tZXRob2QoJ2dldCcpLnNlcnZlKGZ1bmN0aW9uKVxuICAgICAgICAgICAgICAgIC8vIE5vdGU6IFdlIG5lZWQgdG8gY2FzdCB0aGUgcmVzdWx0IG9mIG1ldGhvZCgpIHRvIGFjY2VzcyBzZXJ2ZSgpIGFzIGl0IHJldHVybnMgYSBSZXNvdXJjZU1ldGhvZC5cblx0XHRcdFx0cmV0dXJuICh0aGlzLm1ldGhvZChzTWV0aG9kTmFtZSkgYXMgUmVzb3VyY2VNZXRob2QpLnNlcnZlKGFyZ3NbMF0pO1xuXHRcdFx0fSBlbHNlIGlmICh0eXBlb2YgYXJnc1swXSA9PT0gJ29iamVjdCcgJiYgYXJnc1swXSAhPT0gbnVsbCkge1xuXHRcdFx0XHQvLyAuZ2V0KHtjb25maWd9KSAtPiAubWV0aG9kKCdnZXQnLCB7Y29uZmlnfSlcblx0XHRcdFx0cmV0dXJuIHRoaXMubWV0aG9kKHNNZXRob2ROYW1lLCBhcmdzWzBdKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBhcmd1bWVudDogUmVzb3VyY2UuJHtzTWV0aG9kTmFtZX0gbWV0aG9kIGZpcnN0IGFyZ3VtZW50IG11c3QgYmUgdmFsaWQgamF2YXNjcmlwdCBmdW5jdGlvbiBvciBjb25maWd1cmF0aW9uIG9iamVjdCwgYnV0IGluc3RlYWQgaXMgJHt0eXBlb2YgYXJnc1swXX0gJHthcmdzWzBdfWApO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyAuZ2V0KCkgLT4gLm1ldGhvZCgnZ2V0Jylcblx0XHRcdHJldHVybiB0aGlzLm1ldGhvZChzTWV0aG9kTmFtZSkgYXMgUmVzb3VyY2VNZXRob2Q7XG5cdFx0fVxuXHR9O1xuXG5cdC8qKlxuXHQgKiBDcmVhdGVzIGEgaGFuZGxpbmcgc3BlY2lmaWNhdGlvbiBmb3IgdGhlIEhUVFAgbWV0aG9kIFwiR0VUXCIuXG5cdCAqIEBwYXJhbSBmU2VydmVDYnxvQ29uZmlndXJhdGlvbiBTZXJ2ZSBmdW5jdGlvbiBjYWxsYmFjayBvciBjb25maWd1cmF0aW9uIG9iamVjdCB0byBpbml0aWFsaXplIHRoZSBtZXRob2QuXG5cdCAqIEByZXR1cm5zIFRoZSBSZXNvdXJjZU1ldGhvZCBpbnN0YW5jZSBvciBhcnJheS5cblx0ICovXG5cdGdldChmU2VydmVDYjogRnVuY3Rpb24pOiBSZXNvdXJjZU1ldGhvZDtcbiAgICBnZXQob0NvbmZpZ3VyYXRpb246IGFueSk6IFJlc291cmNlTWV0aG9kIHwgUmVzb3VyY2VNZXRob2RbXTtcbiAgICBnZXQoKTogUmVzb3VyY2VNZXRob2Q7XG5cdGdldCgpOiBSZXNvdXJjZU1ldGhvZCB8IFJlc291cmNlTWV0aG9kW10ge1xuXHRcdHJldHVybiB0aGlzLmJ1aWxkTWV0aG9kKCdnZXQnLCAuLi5hcmd1bWVudHMpO1xuXHR9O1xuXG5cdC8qKlxuXHQgKiBDcmVhdGVzIGEgaGFuZGxpbmcgc3BlY2lmaWNhdGlvbiBmb3IgdGhlIEhUVFAgbWV0aG9kIFwiUE9TVFwiLlxuXHQgKiBAcGFyYW0gZlNlcnZlQ2J8b0NvbmZpZ3VyYXRpb24gU2VydmUgZnVuY3Rpb24gY2FsbGJhY2sgb3IgY29uZmlndXJhdGlvbiBvYmplY3QgdG8gaW5pdGlhbGl6ZSB0aGUgbWV0aG9kLlxuXHQgKiBAcmV0dXJucyBUaGUgUmVzb3VyY2VNZXRob2QgaW5zdGFuY2Ugb3IgYXJyYXkuXG5cdCAqL1xuXHRwb3N0KGZTZXJ2ZUNiOiBGdW5jdGlvbik6IFJlc291cmNlTWV0aG9kO1xuICAgIHBvc3Qob0NvbmZpZ3VyYXRpb246IGFueSk6IFJlc291cmNlTWV0aG9kIHwgUmVzb3VyY2VNZXRob2RbXTtcbiAgICBwb3N0KCk6IFJlc291cmNlTWV0aG9kO1xuXHRwb3N0KCk6IFJlc291cmNlTWV0aG9kIHwgUmVzb3VyY2VNZXRob2RbXSB7XG5cdFx0cmV0dXJuIHRoaXMuYnVpbGRNZXRob2QoJ3Bvc3QnLCAuLi5hcmd1bWVudHMpO1xuXHR9O1xuXG5cdC8qKlxuXHQgKiBDcmVhdGVzIGEgaGFuZGxpbmcgc3BlY2lmaWNhdGlvbiBmb3IgdGhlIEhUVFAgbWV0aG9kIFwiUFVUXCIuXG5cdCAqIEBwYXJhbSBmU2VydmVDYnxvQ29uZmlndXJhdGlvbiBTZXJ2ZSBmdW5jdGlvbiBjYWxsYmFjayBvciBjb25maWd1cmF0aW9uIG9iamVjdCB0byBpbml0aWFsaXplIHRoZSBtZXRob2QuXG5cdCAqIEByZXR1cm5zIFRoZSBSZXNvdXJjZU1ldGhvZCBpbnN0YW5jZSBvciBhcnJheS5cblx0ICovXG5cdHB1dChmU2VydmVDYjogRnVuY3Rpb24pOiBSZXNvdXJjZU1ldGhvZDtcbiAgICBwdXQob0NvbmZpZ3VyYXRpb246IGFueSk6IFJlc291cmNlTWV0aG9kIHwgUmVzb3VyY2VNZXRob2RbXTtcbiAgICBwdXQoKTogUmVzb3VyY2VNZXRob2Q7XG5cdHB1dCgpOiBSZXNvdXJjZU1ldGhvZCB8IFJlc291cmNlTWV0aG9kW10ge1xuXHRcdHJldHVybiB0aGlzLmJ1aWxkTWV0aG9kKCdwdXQnLCAuLi5hcmd1bWVudHMpO1xuXHR9O1xuXG5cdC8qKlxuXHQgKiBDcmVhdGVzIGEgaGFuZGxpbmcgc3BlY2lmaWNhdGlvbiBmb3IgdGhlIEhUVFAgbWV0aG9kIFwiREVMRVRFXCIuXG5cdCAqIEBwYXJhbSBmU2VydmVDYnxvQ29uZmlndXJhdGlvbiBTZXJ2ZSBmdW5jdGlvbiBjYWxsYmFjayBvciBjb25maWd1cmF0aW9uIG9iamVjdCB0byBpbml0aWFsaXplIHRoZSBtZXRob2QuXG5cdCAqIEByZXR1cm5zIFRoZSBSZXNvdXJjZU1ldGhvZCBpbnN0YW5jZSBvciBhcnJheS5cblx0ICovXG5cdGRlbGV0ZShmU2VydmVDYjogRnVuY3Rpb24pOiBSZXNvdXJjZU1ldGhvZDtcbiAgICBkZWxldGUob0NvbmZpZ3VyYXRpb246IGFueSk6IFJlc291cmNlTWV0aG9kIHwgUmVzb3VyY2VNZXRob2RbXTtcbiAgICBkZWxldGUoKTogUmVzb3VyY2VNZXRob2Q7XG5cdGRlbGV0ZSgpOiBSZXNvdXJjZU1ldGhvZCB8IFJlc291cmNlTWV0aG9kW10ge1xuXHRcdHJldHVybiB0aGlzLmJ1aWxkTWV0aG9kKCdkZWxldGUnLCAuLi5hcmd1bWVudHMpO1xuXHR9O1xuXG4gICAgLyoqXG5cdCAqIENyZWF0ZXMgYSBoYW5kbGluZyBzcGVjaWZpY2F0aW9uIGZvciB0aGUgSFRUUCBtZXRob2QgXCJERUxFVEVcIiAoYWxpYXMgZm9yIGRlbGV0ZSgpKS5cblx0ICogQHBhcmFtIGZTZXJ2ZUNifG9Db25maWd1cmF0aW9uIFNlcnZlIGZ1bmN0aW9uIGNhbGxiYWNrIG9yIGNvbmZpZ3VyYXRpb24gb2JqZWN0IHRvIGluaXRpYWxpemUgdGhlIG1ldGhvZC5cblx0ICogQHJldHVybnMgVGhlIFJlc291cmNlTWV0aG9kIGluc3RhbmNlIG9yIGFycmF5LlxuXHQgKi9cbiAgICByZW1vdmUoZlNlcnZlQ2I6IEZ1bmN0aW9uKTogUmVzb3VyY2VNZXRob2Q7XG4gICAgcmVtb3ZlKG9Db25maWd1cmF0aW9uOiBhbnkpOiBSZXNvdXJjZU1ldGhvZCB8IFJlc291cmNlTWV0aG9kW107XG4gICAgcmVtb3ZlKCk6IFJlc291cmNlTWV0aG9kO1xuXHRyZW1vdmUoKTogUmVzb3VyY2VNZXRob2QgfCBSZXNvdXJjZU1ldGhvZFtdIHtcblx0XHRyZXR1cm4gdGhpcy5idWlsZE1ldGhvZCgnZGVsZXRlJywgLi4uYXJndW1lbnRzKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBGaW5kcyBhIFJlc291cmNlTWV0aG9kIHdpdGggdGhlIGdpdmVuIGNvbnN0cmFpbnRzLlxuXHQgKlxuXHQgKiBAcGFyYW0gc1ZlcmIgVGhlIG5hbWUgb2YgdGhlIG1ldGhvZCBwcm9wZXJ0eSBvZiB0aGUgUmVzb3VyY2VNZXRob2QgaW4gc2VhcmNoIChlLmcuLCBcIkdFVFwiKS5cblx0ICogQHBhcmFtIGFyckNvbnN1bWVzTWltZVR5cGVTdHJpbmdzIFRoZSBjb25zdW1lcyBjb25zdHJhaW50IHByb3BlcnR5IG9mIHRoZSBSZXNvdXJjZU1ldGhvZCBpbiBzZWFyY2guXG5cdCAqIEBwYXJhbSBhcnJQcm9kdWNlc01pbWVUeXBlU3RyaW5ncyBUaGUgcHJvZHVjZXMgY29uc3RyYWludCBwcm9wZXJ0eSBvZiB0aGUgUmVzb3VyY2VNZXRob2QgaW4gc2VhcmNoLlxuXHQgKiBAcmV0dXJucyBUaGUgZm91bmQgUmVzb3VyY2VNZXRob2QgaW5zdGFuY2UsIG9yIHVuZGVmaW5lZCBpZiBub3QgZm91bmQuXG5cdCAqL1xuXHRmaW5kKHNWZXJiOiBzdHJpbmcsIGFyckNvbnN1bWVzTWltZVR5cGVTdHJpbmdzPzogc3RyaW5nW10sIGFyclByb2R1Y2VzTWltZVR5cGVTdHJpbmdzPzogc3RyaW5nW10pOiBSZXNvdXJjZU1ldGhvZCB8IHVuZGVmaW5lZCB7XG5cdFx0bGV0IGhpdDogUmVzb3VyY2VNZXRob2QgfCB1bmRlZmluZWQ7XG5cdFx0Y29uc3Qgc1ZlcmJMb3dlciA9IHNWZXJiLnRvTG93ZXJDYXNlKCk7XG5cblx0XHRPYmplY3Qua2V5cyh0aGlzLmNmZylcbiAgICAgICAgICAgIC5maWx0ZXIoKHNWZXJiTmFtZSkgPT4gc1ZlcmJOYW1lID09PSBzVmVyYkxvd2VyKVxuICAgICAgICAgICAgLmZvckVhY2goKHNWZXJiTmFtZSkgPT4ge1xuXHRcdFx0ICAgIHRoaXMuY2ZnW3NWZXJiTmFtZV0uZm9yRWFjaCgodmVyYkhhbmRsZXJTcGVjOiBhbnkpID0+IHtcblx0XHRcdFx0ICAgIGlmIChhcnJheUVxdWFscyh2ZXJiSGFuZGxlclNwZWMuY29uc3VtZXMsIGFyckNvbnN1bWVzTWltZVR5cGVTdHJpbmdzKSAmJiBhcnJheUVxdWFscyh2ZXJiSGFuZGxlclNwZWMucHJvZHVjZXMsIGFyclByb2R1Y2VzTWltZVR5cGVTdHJpbmdzKSkge1xuXHRcdFx0XHRcdCAgICBoaXQgPSBuZXcgUmVzb3VyY2VNZXRob2QodmVyYkhhbmRsZXJTcGVjLCB0aGlzLmNvbnRyb2xsZXIsIHRoaXMsIHRoaXMubWFwcGluZ3MpO1xuXHRcdFx0XHRcdCAgICByZXR1cm47XG5cdFx0XHRcdCAgICB9XG5cdFx0XHQgICAgfSk7XG5cdFx0XHQgICAgaWYgKGhpdClcblx0XHRcdFx0ICAgIHJldHVybjtcblx0XHR9KTtcblx0XHRyZXR1cm4gaGl0O1xuXHR9O1xuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBjb25maWd1cmF0aW9uIG9mIHRoaXMgcmVzb3VyY2UuXG5cdCAqXG5cdCAqIEByZXR1cm5zIFRoZSByZXNvdXJjZSBjb25maWd1cmF0aW9uIG9iamVjdC5cblx0ICovXG5cdGNvbmZpZ3VyYXRpb24oKTogYW55IHtcblx0XHRyZXR1cm4gdGhpcy5jZmc7XG5cdH07XG5cblx0LyoqXG5cdCAqIEluc3RydWN0cyByZWRpcmVjdGlvbiBvZiB0aGUgcmVxdWVzdCBiYXNlIGRvbiB0aGUgcGFyYW1ldGVyLiBJZiBpdCBpcyBhIHN0aXJuZyByZXByZXNlbnRpbmcgVVJJLCB0aGUgcmVxdWVzdCB3aWxsIGJlXG5cdCAqIHJlZGlyZWN0ZWQgdG8gdGhpcyBVUkkgZm9yIGFueSBtZXRob2QuIElmIGl0J3MgYSBmdW5jdGlvbiBpdCB3aWxsIGJlIGludm9rZWQgYW5kIGVweGVjdGVkIHRvIHJldHVybiBhIFVSSSBzdHJpbmcgdG8gcmVkaXJlY3QgdG8uXG5cdCAqXG5cdCAqIEBwYXJhbSBmUmVkaXJlY3RvciBUaGUgZnVuY3Rpb24gb3Igc3RyaW5nIFVSSSB0byByZWRpcmVjdCB0by5cbiAgICAgKiBAcmV0dXJucyBUaGUgcmVzb3VyY2UgaW5zdGFuY2UgZm9yIG1ldGhvZCBjaGFpbmluZy5cblx0ICovXG5cdHJlZGlyZWN0KGZSZWRpcmVjdG9yOiBzdHJpbmcgfCBGdW5jdGlvbik6IFJlc291cmNlIHtcblx0XHRpZiAodHlwZW9mIGZSZWRpcmVjdG9yID09PSAnc3RyaW5nJykge1xuXHRcdFx0Y29uc3QgcmVkaXJlY3RVcmkgPSBmUmVkaXJlY3Rvcjtcblx0XHRcdGZSZWRpcmVjdG9yID0gZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRyZXR1cm4gcmVkaXJlY3RVcmk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdC8vIFRoZSBpbXBvcnRlZCBoYW5kbGVyRnVuY3Rpb24gaXMgdXNlZCBoZXJlXG5cdFx0cmV0dXJuIGhhbmRsZXJGdW5jdGlvbih0aGlzLCB0aGlzLmNvbmZpZ3VyYXRpb24oKSwgJ3JlZGlyZWN0JywgZlJlZGlyZWN0b3IpO1xuXHR9O1xuXG5cdC8qKlxuXHQgKiBEaXNhYmxlcyB0aGUgUmVzb3VyY2VNZXRob2RzIHRoYXQgbWF0Y2ggdGhlIGdpdmVuIGNvbnN0cmFpbnRzXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc1ZlcmIgVGhlIEhUVFAgdmVyYiAoZS5nLiwgXCJHRVRcIikuXG5cdCAqIEBwYXJhbSBhcnJDb25zdW1lc1R5cGVTdHJpbmdzIFRoZSBjb25zdW1lcyBjb25zdHJhaW50IHByb3BlcnR5IG9mIHRoZSBSZXNvdXJjZU1ldGhvZCBpbiBzZWFyY2guXG5cdCAqIEBwYXJhbSBhcnJQcm9kdWNlc1R5cGVTdHJpbmdzIFRoZSBwcm9kdWNlcyBjb25zdHJhaW50IHByb3BlcnR5IG9mIHRoZSBSZXNvdXJjZU1ldGhvZCBpbiBzZWFyY2guXG4gICAgICogQHJldHVybnMgVGhlIHJlc291cmNlIGluc3RhbmNlIGZvciBtZXRob2QgY2hhaW5pbmcuXG5cdCAqL1xuXHRkaXNhYmxlKHNWZXJiPzogc3RyaW5nLCBhcnJDb25zdW1lc1R5cGVTdHJpbmdzPzogc3RyaW5nW10sIGFyclByb2R1Y2VzVHlwZVN0cmluZ3M/OiBzdHJpbmdbXSk6IFJlc291cmNlIHtcblx0XHRPYmplY3Qua2V5cyh0aGlzLmNmZylcbiAgICAgICAgICAgIC5maWx0ZXIoKHNWZXJiTmFtZSkgPT4gc1ZlcmIgPT09IHVuZGVmaW5lZCB8fCAoc1ZlcmIgJiYgc1ZlcmIudG9Mb3dlckNhc2UoKSA9PT0gc1ZlcmJOYW1lKSlcbiAgICAgICAgICAgIC5mb3JFYWNoKChzVmVyYk5hbWUpID0+IHtcblx0XHRcdCAgICAvLyBVc2UgYSByZXZlcnNlIGxvb3AgZm9yIHNhZmUgc3BsaWNpbmdcblx0XHRcdCAgICBmb3IgKGxldCBpID0gdGhpcy5jZmdbc1ZlcmJOYW1lXS5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2ZXJiSGFuZGxlclNwZWMgPSB0aGlzLmNmZ1tzVmVyYk5hbWVdW2ldO1xuXHRcdFx0XHQgICAgaWYgKGFycmF5RXF1YWxzKHZlcmJIYW5kbGVyU3BlYy5jb25zdW1lcywgYXJyQ29uc3VtZXNUeXBlU3RyaW5ncykgJiYgYXJyYXlFcXVhbHModmVyYkhhbmRsZXJTcGVjLnByb2R1Y2VzLCBhcnJQcm9kdWNlc1R5cGVTdHJpbmdzKSkge1xuXHRcdFx0XHRcdCAgICB0aGlzLmNmZ1tzVmVyYk5hbWVdLnNwbGljZShpLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblx0XHR9KTtcblx0XHRyZXR1cm4gdGhpcztcblx0fTtcblxuXHQvKipcblx0ICogRGlzYWJsZXMgYWxsIGJ1dCAncmVhZCcgSFRUUCBtZXRob2RzIGluIHRoaXMgcmVzb3VyY2UgKEdFVCwgSEVBRCwgVFJBQ0UpLlxuICAgICAqXG4gICAgICogQHJldHVybnMgVGhlIHJlc291cmNlIGluc3RhbmNlIGZvciBtZXRob2QgY2hhaW5pbmcuXG5cdCAqL1xuXHRyZWFkb25seSgpOiBSZXNvdXJjZSB7XG5cdFx0T2JqZWN0LmtleXModGhpcy5jZmcpLmZvckVhY2goKG1ldGhvZCkgPT4ge1xuXHRcdFx0aWYgKCFbJ2dldCcsICdoZWFkJywgJ3RyYWNlJ10uaW5jbHVkZXMobWV0aG9kKSkge1xuXHRcdFx0XHRkZWxldGUgdGhpcy5jZmdbbWV0aG9kXTtcbiAgICAgICAgICAgIH1cblx0XHR9KTtcblx0XHRyZXR1cm4gdGhpcztcblx0fTtcbn0iXSwKICAibWFwcGluZ3MiOiAiQUE0QkEsU0FBUyx1QkFBdUI7QUFDaEMsU0FBUyxzQkFBc0I7QUFVL0IsU0FBUyxZQUFZLFFBQTJCLFFBQW9DO0FBQ25GLE1BQUksV0FBVztBQUNkLFdBQU87QUFDUixNQUFJLENBQUMsTUFBTSxRQUFRLE1BQU0sS0FBSyxDQUFDLE1BQU0sUUFBUSxNQUFNO0FBQ2xELFdBQU87QUFDUixNQUFJLFdBQVcsVUFBYSxXQUFXLFVBQWEsV0FBVyxVQUFhLFdBQVc7QUFDdEYsV0FBTztBQUNSLE1BQUksT0FBTyxXQUFXLE9BQU87QUFDNUIsV0FBTztBQUNSLFdBQVMsSUFBSSxHQUFHLElBQUksT0FBTyxRQUFRLEtBQUs7QUFDdkMsUUFBSSxPQUFPLENBQUMsTUFBTSxPQUFPLENBQUM7QUFDekIsYUFBTztBQUFBLEVBQ1Q7QUFDQSxTQUFPO0FBQ1I7QUFLTyxNQUFNLFNBQVM7QUFBQTtBQUFBLEVBRXJCO0FBQUE7QUFBQSxFQUVBO0FBQUE7QUFBQSxFQUVBO0FBQUE7QUFBQSxFQUVBO0FBQUE7QUFBQSxFQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRQSxZQUFZLE9BQWUsZ0JBQXNCLFlBQWtCLFVBQWdCO0FBQ2xGLFNBQUssUUFBUTtBQUNiLFNBQUssTUFBTSxrQkFBa0IsQ0FBQztBQUU5QixRQUFJLFlBQVk7QUFDZixXQUFLLGFBQWE7QUFFbEIsV0FBSyxVQUFVLFdBQVcsUUFBUSxLQUFLLFVBQVU7QUFBQSxJQUNsRDtBQUNBLFFBQUksVUFBVTtBQUNiLFdBQUssV0FBVztBQUFBLElBQ2pCO0FBQUEsRUFDRDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVVBLEtBQUssT0FBbUM7QUFDdkMsUUFBSSxVQUFVLFdBQVc7QUFDeEIsYUFBTyxLQUFLO0FBQ2IsU0FBSyxRQUFRO0FBQ2Is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
|
package/dist/esm/http/rs.mjs
CHANGED
|
@@ -9,4 +9,4 @@ export {
|
|
|
9
9
|
ResourceMethod,
|
|
10
10
|
service
|
|
11
11
|
};
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2h0dHAvcnMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQG1vZHVsZSBodHRwL3JzXG4gKiBAcGFja2FnZSBAYWVyb2tpdC9zZGsvaHR0cFxuICogQG5hbWUgUmVzdFNlcnZpY2VcbiAqIEBvdmVydmlld1xuICpcbiAqIFRoaXMgbW9kdWxlIHByb3ZpZGVzIFJFU1Qgc2VydmljZSB1dGlsaXRpZXMgZm9yIHRoZSBBZXJva2l0IFNESy5cbiAqIEl0IGluY2x1ZGVzIGRlY29yYXRvcnMgYW5kIGNsYXNzZXMgZm9yIGJ1aWxkaW5nIEhUVFAgY29udHJvbGxlcnMsXG4gKiBkZWZpbmluZyByZXNvdXJjZSBtZXRob2RzLCBhbmQgbWFuYWdpbmcgUkVTVGZ1bCBlbmRwb2ludHMuXG4gKlxuICogVGhlIG1haW4gY29tcG9uZW50cyBvZiB0aGlzIG1vZHVsZSBhcmU6XG4gKiAtIHNlcnZpY2U6IFNlcnZpY2UgZGVjb3JhdG9yIGZvciBIVFRQIHNlcnZpY2VzLlxuICogLSBIdHRwQ29udHJvbGxlcjogQmFzZSBjbGFzcyBmb3IgSFRUUCBjb250cm9sbGVycy5cbiAqIC0gUmVzb3VyY2VNZXRob2Q6IEVudW0gb3IgZGVjb3JhdG9yIGZvciBIVFRQIG1ldGhvZHMgKEdFVCwgUE9TVCwgZXRjLikuXG4gKiAtIFJlc291cmNlTWFwcGluZ3M6IFV0aWxpdGllcyBmb3IgbWFwcGluZyByZXNvdXJjZXMgdG8gZW5kcG9pbnRzLlxuICogLSBSZXNvdXJjZTogRGVjb3JhdG9yIGZvciBkZWZpbmluZyBSRVNUIHJlc291cmNlcy5cbiAqIFxuICogIyMjIEV4YW1wbGUgVXNhZ2U6XG4gKiBgYGB0c1xuICogaW1wb3J0IHsgQ29udHJvbGxlciwgR2V0LCBQb3N0LCBEb2N1bWVudGF0aW9uIH0gZnJvbSBcIkBhZXJva2l0L3Nkay9odHRwXCI7XG4gKiBcbiAqIEBDb250cm9sbGVyXG4gKiBARG9jdW1lbnRhdGlvbihcIlVzZXJDb250cm9sbGVyIGhhbmRsZXMgdXNlci1yZWxhdGVkIG9wZXJhdGlvbnMuXCIpXG4gKiBjbGFzcyBVc2VyQ29udHJvbGxlciB7XG4gKiAgICAgQEdldChcIi91c2Vycy97aWR9XCIpXG4gKiAgICAgQERvY3VtZW50YXRpb24oXCJSZXRyaWV2ZXMgYSB1c2VyIGJ5IElELlwiKVxuICogICAgIGdldFVzZXJCeUlkKGlkOiBzdHJpbmcpIHtcbiAqICAgICAgICAgLy8gTG9naWMgdG8gcmV0cmlldmUgdXNlciBieSBJRFxuICogICAgIH1cbiAqIFxuICogICAgIEBQb3N0KFwiL3VzZXJzXCIpXG4gKiAgICAgQERvY3VtZW50YXRpb24oXCJDcmVhdGVzIGEgbmV3IHVzZXIuXCIpXG4gKiAgICAgY3JlYXRlVXNlcih1c2VyRGF0YTogYW55KSB7XG4gKiAgICAgICAgIC8vIExvZ2ljIHRvIGNyZWF0ZSBhIG5ldyB1c2VyXG4gKiAgICAgfVxuICogfVxuICogYGBgXG4gKi9cbmV4cG9ydCB7IHNlcnZpY2UsIEh0dHBDb250cm9sbGVyIH0gZnJvbSBcIi4vcnMvcmVzb3VyY2UtaHR0cC1jb250cm9sbGVyXCI7XG5leHBvcnQgeyBSZXNvdXJjZU1ldGhvZCB9IGZyb20gXCIuL3JzL3Jlc291cmNlLW1ldGhvZFwiO1xuZXhwb3J0IHsgUmVzb3VyY2VNYXBwaW5ncyB9IGZyb20gXCIuL3JzL3Jlc291cmNlLW1hcHBpbmdzXCI7XG5leHBvcnQgeyBSZXNvdXJjZSB9IGZyb20gXCIuL3JzL3Jlc291cmNlXCI7Il0sCiAgIm1hcHBpbmdzIjogIkFBc0NBLFNBQVMsU0FBUyxzQkFBc0I7QUFDeEMsU0FBUyxzQkFBc0I7QUFDL0IsU0FBUyx3QkFBd0I7QUFDakMsU0FBUyxnQkFBZ0I7IiwKICAibmFtZXMiOiBbXQp9Cg==
|