@aerokit/sdk 12.44.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/LICENSE +277 -0
- package/README.md +170 -0
- package/dist/cjs/bpm/deployer.js +57 -0
- package/dist/cjs/bpm/index.js +35 -0
- package/dist/cjs/bpm/process.js +636 -0
- package/dist/cjs/bpm/tasks.js +973 -0
- package/dist/cjs/bpm/values.js +82 -0
- package/dist/cjs/cache/cache.js +64 -0
- package/dist/cjs/cache/index.js +26 -0
- package/dist/cjs/cms/cmis.js +689 -0
- package/dist/cjs/cms/index.js +26 -0
- package/dist/cjs/component/decorators.js +126 -0
- package/dist/cjs/component/index.js +36 -0
- package/dist/cjs/core/configurations.js +110 -0
- package/dist/cjs/core/context.js +47 -0
- package/dist/cjs/core/env.js +45 -0
- package/dist/cjs/core/globals.js +54 -0
- package/dist/cjs/core/index.js +35 -0
- package/dist/cjs/db/dao.js +795 -0
- package/dist/cjs/db/database.js +904 -0
- package/dist/cjs/db/decorators.js +167 -0
- package/dist/cjs/db/index.js +72 -0
- package/dist/cjs/db/insert.js +51 -0
- package/dist/cjs/db/orm.js +245 -0
- package/dist/cjs/db/ormstatements.js +243 -0
- package/dist/cjs/db/procedure.js +112 -0
- package/dist/cjs/db/query.js +57 -0
- package/dist/cjs/db/repository.js +148 -0
- package/dist/cjs/db/sequence.js +59 -0
- package/dist/cjs/db/sql.js +516 -0
- package/dist/cjs/db/store.js +172 -0
- package/dist/cjs/db/translator.js +100 -0
- package/dist/cjs/db/update.js +43 -0
- package/dist/cjs/etcd/client.js +174 -0
- package/dist/cjs/etcd/index.js +26 -0
- package/dist/cjs/extensions/decorators.js +40 -0
- package/dist/cjs/extensions/extensions.js +108 -0
- package/dist/cjs/extensions/index.js +39 -0
- package/dist/cjs/git/client.js +277 -0
- package/dist/cjs/git/index.js +26 -0
- package/dist/cjs/http/client-async.js +224 -0
- package/dist/cjs/http/client.js +145 -0
- package/dist/cjs/http/decorators.js +76 -0
- package/dist/cjs/http/errors/ForbiddenError.js +41 -0
- package/dist/cjs/http/errors/ValidationError.js +41 -0
- package/dist/cjs/http/errors.js +26 -0
- package/dist/cjs/http/index.js +59 -0
- package/dist/cjs/http/request.js +281 -0
- package/dist/cjs/http/response.js +452 -0
- package/dist/cjs/http/rs/resource-common.js +32 -0
- package/dist/cjs/http/rs/resource-http-controller.js +306 -0
- package/dist/cjs/http/rs/resource-mappings.js +130 -0
- package/dist/cjs/http/rs/resource-method.js +218 -0
- package/dist/cjs/http/rs/resource.js +232 -0
- package/dist/cjs/http/rs.js +31 -0
- package/dist/cjs/http/session.js +124 -0
- package/dist/cjs/http/upload.js +144 -0
- package/dist/cjs/http/utils.js +106 -0
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/indexing/index.js +29 -0
- package/dist/cjs/indexing/searcher.js +70 -0
- package/dist/cjs/indexing/writer.js +45 -0
- package/dist/cjs/integrations/index.js +26 -0
- package/dist/cjs/integrations/integrations.js +55 -0
- package/dist/cjs/io/bytes.js +101 -0
- package/dist/cjs/io/files.js +344 -0
- package/dist/cjs/io/image.js +43 -0
- package/dist/cjs/io/index.js +38 -0
- package/dist/cjs/io/streams.js +243 -0
- package/dist/cjs/io/zip.js +251 -0
- package/dist/cjs/job/decorators.js +40 -0
- package/dist/cjs/job/index.js +39 -0
- package/dist/cjs/job/scheduler.js +347 -0
- package/dist/cjs/junit/index.js +18 -0
- package/dist/cjs/junit/junit.js +67 -0
- package/dist/cjs/kafka/consumer.js +70 -0
- package/dist/cjs/kafka/index.js +29 -0
- package/dist/cjs/kafka/producer.js +70 -0
- package/dist/cjs/log/index.js +26 -0
- package/dist/cjs/log/logging.js +174 -0
- package/dist/cjs/mail/client.js +153 -0
- package/dist/cjs/mail/index.js +26 -0
- package/dist/cjs/messaging/consumer.js +83 -0
- package/dist/cjs/messaging/decorators.js +40 -0
- package/dist/cjs/messaging/index.js +42 -0
- package/dist/cjs/messaging/producer.js +81 -0
- package/dist/cjs/mongodb/client.js +627 -0
- package/dist/cjs/mongodb/dao.js +390 -0
- package/dist/cjs/mongodb/index.js +36 -0
- package/dist/cjs/net/decorators.js +40 -0
- package/dist/cjs/net/index.js +42 -0
- package/dist/cjs/net/soap.js +228 -0
- package/dist/cjs/net/websockets.js +151 -0
- package/dist/cjs/net/wrappers/onClose.js +2 -0
- package/dist/cjs/net/wrappers/onError.js +2 -0
- package/dist/cjs/net/wrappers/onMessage.js +2 -0
- package/dist/cjs/net/wrappers/onOpen.js +2 -0
- package/dist/cjs/pdf/index.js +26 -0
- package/dist/cjs/pdf/pdf.js +160 -0
- package/dist/cjs/platform/command.js +47 -0
- package/dist/cjs/platform/engines.js +70 -0
- package/dist/cjs/platform/index.js +47 -0
- package/dist/cjs/platform/lifecycle.js +49 -0
- package/dist/cjs/platform/os.js +51 -0
- package/dist/cjs/platform/problems.js +127 -0
- package/dist/cjs/platform/registry.js +319 -0
- package/dist/cjs/platform/repository.js +498 -0
- package/dist/cjs/platform/workspace.js +574 -0
- package/dist/cjs/qldb/index.js +26 -0
- package/dist/cjs/qldb/qldb.js +24 -0
- package/dist/cjs/rabbitmq/consumer.js +50 -0
- package/dist/cjs/rabbitmq/index.js +29 -0
- package/dist/cjs/rabbitmq/producer.js +38 -0
- package/dist/cjs/redis/client.js +190 -0
- package/dist/cjs/redis/index.js +26 -0
- package/dist/cjs/security/decorators.js +48 -0
- package/dist/cjs/security/index.js +40 -0
- package/dist/cjs/security/oauth.js +75 -0
- package/dist/cjs/security/user.js +88 -0
- package/dist/cjs/template/engines.js +139 -0
- package/dist/cjs/template/index.js +26 -0
- package/dist/cjs/utils/alphanumeric.js +107 -0
- package/dist/cjs/utils/base64.js +104 -0
- package/dist/cjs/utils/converter.js +78 -0
- package/dist/cjs/utils/digest.js +167 -0
- package/dist/cjs/utils/escape.js +160 -0
- package/dist/cjs/utils/hex.js +104 -0
- package/dist/cjs/utils/index.js +68 -0
- package/dist/cjs/utils/jsonpath.js +489 -0
- package/dist/cjs/utils/qrcode.js +41 -0
- package/dist/cjs/utils/url.js +82 -0
- package/dist/cjs/utils/utf8.js +61 -0
- package/dist/cjs/utils/uuid.js +48 -0
- package/dist/cjs/utils/xml.js +57 -0
- package/dist/dts/bpm/deployer.d.ts +29 -0
- package/dist/dts/bpm/index.d.ts +8 -0
- package/dist/dts/bpm/process.d.ts +433 -0
- package/dist/dts/bpm/tasks.d.ts +2022 -0
- package/dist/dts/bpm/values.d.ts +38 -0
- package/dist/dts/cache/cache.d.ts +30 -0
- package/dist/dts/cache/index.d.ts +2 -0
- package/dist/dts/cms/cmis.d.ts +413 -0
- package/dist/dts/cms/index.d.ts +2 -0
- package/dist/dts/component/decorators.d.ts +52 -0
- package/dist/dts/component/index.d.ts +2 -0
- package/dist/dts/core/configurations.d.ts +65 -0
- package/dist/dts/core/context.d.ts +19 -0
- package/dist/dts/core/env.d.ts +23 -0
- package/dist/dts/core/globals.d.ts +30 -0
- package/dist/dts/core/index.d.ts +8 -0
- package/dist/dts/db/dao.d.ts +8 -0
- package/dist/dts/db/database.d.ts +507 -0
- package/dist/dts/db/decorators.d.ts +89 -0
- package/dist/dts/db/index.d.ts +25 -0
- package/dist/dts/db/insert.d.ts +32 -0
- package/dist/dts/db/orm.d.ts +44 -0
- package/dist/dts/db/ormstatements.d.ts +4 -0
- package/dist/dts/db/procedure.d.ts +25 -0
- package/dist/dts/db/query.d.ts +48 -0
- package/dist/dts/db/repository.d.ts +64 -0
- package/dist/dts/db/sequence.d.ts +34 -0
- package/dist/dts/db/sql.d.ts +267 -0
- package/dist/dts/db/store.d.ts +138 -0
- package/dist/dts/db/translator.d.ts +26 -0
- package/dist/dts/db/update.d.ts +21 -0
- package/dist/dts/etcd/client.d.ts +92 -0
- package/dist/dts/etcd/index.d.ts +2 -0
- package/dist/dts/extensions/decorators.d.ts +11 -0
- package/dist/dts/extensions/extensions.d.ts +41 -0
- package/dist/dts/extensions/index.d.ts +4 -0
- package/dist/dts/git/client.d.ts +478 -0
- package/dist/dts/git/index.d.ts +2 -0
- package/dist/dts/http/client-async.d.ts +158 -0
- package/dist/dts/http/client.d.ts +180 -0
- package/dist/dts/http/decorators.d.ts +11 -0
- package/dist/dts/http/errors/ForbiddenError.d.ts +20 -0
- package/dist/dts/http/errors/ValidationError.d.ts +20 -0
- package/dist/dts/http/errors.d.ts +2 -0
- package/dist/dts/http/index.d.ts +16 -0
- package/dist/dts/http/request.d.ts +158 -0
- package/dist/dts/http/response.d.ts +281 -0
- package/dist/dts/http/rs/resource-common.d.ts +11 -0
- package/dist/dts/http/rs/resource-http-controller.d.ts +43 -0
- package/dist/dts/http/rs/resource-mappings.d.ts +70 -0
- package/dist/dts/http/rs/resource-method.d.ts +206 -0
- package/dist/dts/http/rs/resource.d.ts +126 -0
- package/dist/dts/http/rs.d.ts +4 -0
- package/dist/dts/http/session.d.ts +81 -0
- package/dist/dts/http/upload.d.ts +100 -0
- package/dist/dts/http/utils.d.ts +54 -0
- package/dist/dts/index.d.ts +0 -0
- package/dist/dts/indexing/index.d.ts +4 -0
- package/dist/dts/indexing/searcher.d.ts +47 -0
- package/dist/dts/indexing/writer.d.ts +22 -0
- package/dist/dts/integrations/index.d.ts +2 -0
- package/dist/dts/integrations/integrations.d.ts +118 -0
- package/dist/dts/io/bytes.d.ts +56 -0
- package/dist/dts/io/files.d.ts +261 -0
- package/dist/dts/io/image.d.ts +22 -0
- package/dist/dts/io/index.d.ts +10 -0
- package/dist/dts/io/streams.d.ts +172 -0
- package/dist/dts/io/zip.d.ts +178 -0
- package/dist/dts/job/decorators.d.ts +11 -0
- package/dist/dts/job/index.d.ts +4 -0
- package/dist/dts/job/scheduler.d.ts +250 -0
- package/dist/dts/junit/index.d.ts +1 -0
- package/dist/dts/junit/junit.d.ts +50 -0
- package/dist/dts/kafka/consumer.d.ts +48 -0
- package/dist/dts/kafka/index.d.ts +4 -0
- package/dist/dts/kafka/producer.d.ts +50 -0
- package/dist/dts/log/index.d.ts +2 -0
- package/dist/dts/log/logging.d.ts +102 -0
- package/dist/dts/mail/client.d.ts +90 -0
- package/dist/dts/mail/index.d.ts +2 -0
- package/dist/dts/messaging/consumer.d.ts +61 -0
- package/dist/dts/messaging/decorators.d.ts +11 -0
- package/dist/dts/messaging/index.d.ts +6 -0
- package/dist/dts/messaging/producer.d.ts +59 -0
- package/dist/dts/mongodb/client.d.ts +367 -0
- package/dist/dts/mongodb/dao.d.ts +24 -0
- package/dist/dts/mongodb/index.d.ts +2 -0
- package/dist/dts/net/decorators.d.ts +11 -0
- package/dist/dts/net/index.d.ts +6 -0
- package/dist/dts/net/soap.d.ts +115 -0
- package/dist/dts/net/websockets.d.ts +100 -0
- package/dist/dts/net/wrappers/onClose.d.ts +0 -0
- package/dist/dts/net/wrappers/onError.d.ts +0 -0
- package/dist/dts/net/wrappers/onMessage.d.ts +0 -0
- package/dist/dts/net/wrappers/onOpen.d.ts +0 -0
- package/dist/dts/pdf/index.d.ts +2 -0
- package/dist/dts/pdf/pdf.d.ts +72 -0
- package/dist/dts/platform/command.d.ts +41 -0
- package/dist/dts/platform/engines.d.ts +35 -0
- package/dist/dts/platform/index.d.ts +16 -0
- package/dist/dts/platform/lifecycle.d.ts +22 -0
- package/dist/dts/platform/os.d.ts +23 -0
- package/dist/dts/platform/problems.d.ts +114 -0
- package/dist/dts/platform/registry.d.ts +227 -0
- package/dist/dts/platform/repository.d.ts +354 -0
- package/dist/dts/platform/workspace.d.ts +421 -0
- package/dist/dts/qldb/index.d.ts +2 -0
- package/dist/dts/qldb/qldb.d.ts +1 -0
- package/dist/dts/rabbitmq/consumer.d.ts +25 -0
- package/dist/dts/rabbitmq/index.d.ts +4 -0
- package/dist/dts/rabbitmq/producer.d.ts +15 -0
- package/dist/dts/redis/client.d.ts +134 -0
- package/dist/dts/redis/index.d.ts +2 -0
- package/dist/dts/security/decorators.d.ts +4 -0
- package/dist/dts/security/index.d.ts +5 -0
- package/dist/dts/security/oauth.d.ts +39 -0
- package/dist/dts/security/user.d.ts +51 -0
- package/dist/dts/template/engines.d.ts +98 -0
- package/dist/dts/template/index.d.ts +2 -0
- package/dist/dts/utils/alphanumeric.d.ts +39 -0
- package/dist/dts/utils/base64.d.ts +48 -0
- package/dist/dts/utils/converter.d.ts +44 -0
- package/dist/dts/utils/digest.d.ts +50 -0
- package/dist/dts/utils/escape.d.ts +110 -0
- package/dist/dts/utils/hex.d.ts +48 -0
- package/dist/dts/utils/index.d.ts +23 -0
- package/dist/dts/utils/jsonpath.d.ts +22 -0
- package/dist/dts/utils/qrcode.d.ts +16 -0
- package/dist/dts/utils/url.d.ts +50 -0
- package/dist/dts/utils/utf8.d.ts +33 -0
- package/dist/dts/utils/uuid.d.ts +21 -0
- package/dist/dts/utils/xml.d.ts +22 -0
- package/dist/esm/bpm/deployer.mjs +38 -0
- package/dist/esm/bpm/index.mjs +15 -0
- package/dist/esm/bpm/process.mjs +617 -0
- package/dist/esm/bpm/tasks.mjs +954 -0
- package/dist/esm/bpm/values.mjs +63 -0
- package/dist/esm/cache/cache.mjs +45 -0
- package/dist/esm/cache/index.mjs +6 -0
- package/dist/esm/cms/cmis.mjs +660 -0
- package/dist/esm/cms/index.mjs +6 -0
- package/dist/esm/component/decorators.mjs +107 -0
- package/dist/esm/component/index.mjs +6 -0
- package/dist/esm/core/configurations.mjs +91 -0
- package/dist/esm/core/context.mjs +28 -0
- package/dist/esm/core/env.mjs +26 -0
- package/dist/esm/core/globals.mjs +35 -0
- package/dist/esm/core/index.mjs +15 -0
- package/dist/esm/db/dao.mjs +775 -0
- package/dist/esm/db/database.mjs +885 -0
- package/dist/esm/db/decorators.mjs +148 -0
- package/dist/esm/db/index.mjs +42 -0
- package/dist/esm/db/insert.mjs +32 -0
- package/dist/esm/db/orm.mjs +225 -0
- package/dist/esm/db/ormstatements.mjs +223 -0
- package/dist/esm/db/procedure.mjs +93 -0
- package/dist/esm/db/query.mjs +38 -0
- package/dist/esm/db/repository.mjs +129 -0
- package/dist/esm/db/sequence.mjs +40 -0
- package/dist/esm/db/sql.mjs +497 -0
- package/dist/esm/db/store.mjs +153 -0
- package/dist/esm/db/translator.mjs +81 -0
- package/dist/esm/db/update.mjs +24 -0
- package/dist/esm/etcd/client.mjs +155 -0
- package/dist/esm/etcd/index.mjs +6 -0
- package/dist/esm/extensions/decorators.mjs +21 -0
- package/dist/esm/extensions/extensions.mjs +89 -0
- package/dist/esm/extensions/index.mjs +9 -0
- package/dist/esm/git/client.mjs +258 -0
- package/dist/esm/git/index.mjs +6 -0
- package/dist/esm/http/client-async.mjs +205 -0
- package/dist/esm/http/client.mjs +126 -0
- package/dist/esm/http/decorators.mjs +47 -0
- package/dist/esm/http/errors/ForbiddenError.mjs +22 -0
- package/dist/esm/http/errors/ValidationError.mjs +22 -0
- package/dist/esm/http/errors.mjs +7 -0
- package/dist/esm/http/index.mjs +29 -0
- package/dist/esm/http/request.mjs +262 -0
- package/dist/esm/http/response.mjs +433 -0
- package/dist/esm/http/rs/resource-common.mjs +13 -0
- package/dist/esm/http/rs/resource-http-controller.mjs +287 -0
- package/dist/esm/http/rs/resource-mappings.mjs +111 -0
- package/dist/esm/http/rs/resource-method.mjs +199 -0
- package/dist/esm/http/rs/resource.mjs +213 -0
- package/dist/esm/http/rs.mjs +12 -0
- package/dist/esm/http/session.mjs +105 -0
- package/dist/esm/http/upload.mjs +125 -0
- package/dist/esm/http/utils.mjs +87 -0
- package/dist/esm/index.mjs +1 -0
- package/dist/esm/indexing/index.mjs +9 -0
- package/dist/esm/indexing/searcher.mjs +51 -0
- package/dist/esm/indexing/writer.mjs +26 -0
- package/dist/esm/integrations/index.mjs +6 -0
- package/dist/esm/integrations/integrations.mjs +36 -0
- package/dist/esm/io/bytes.mjs +82 -0
- package/dist/esm/io/files.mjs +325 -0
- package/dist/esm/io/image.mjs +24 -0
- package/dist/esm/io/index.mjs +18 -0
- package/dist/esm/io/streams.mjs +224 -0
- package/dist/esm/io/zip.mjs +232 -0
- package/dist/esm/job/decorators.mjs +21 -0
- package/dist/esm/job/index.mjs +9 -0
- package/dist/esm/job/scheduler.mjs +328 -0
- package/dist/esm/junit/index.mjs +2 -0
- package/dist/esm/junit/junit.mjs +48 -0
- package/dist/esm/kafka/consumer.mjs +51 -0
- package/dist/esm/kafka/index.mjs +9 -0
- package/dist/esm/kafka/producer.mjs +51 -0
- package/dist/esm/log/index.mjs +6 -0
- package/dist/esm/log/logging.mjs +155 -0
- package/dist/esm/mail/client.mjs +134 -0
- package/dist/esm/mail/index.mjs +6 -0
- package/dist/esm/messaging/consumer.mjs +64 -0
- package/dist/esm/messaging/decorators.mjs +21 -0
- package/dist/esm/messaging/index.mjs +12 -0
- package/dist/esm/messaging/producer.mjs +62 -0
- package/dist/esm/mongodb/client.mjs +608 -0
- package/dist/esm/mongodb/dao.mjs +360 -0
- package/dist/esm/mongodb/index.mjs +7 -0
- package/dist/esm/net/decorators.mjs +21 -0
- package/dist/esm/net/index.mjs +12 -0
- package/dist/esm/net/soap.mjs +209 -0
- package/dist/esm/net/websockets.mjs +132 -0
- package/dist/esm/net/wrappers/onClose.mjs +2 -0
- package/dist/esm/net/wrappers/onError.mjs +2 -0
- package/dist/esm/net/wrappers/onMessage.mjs +2 -0
- package/dist/esm/net/wrappers/onOpen.mjs +2 -0
- package/dist/esm/pdf/index.mjs +6 -0
- package/dist/esm/pdf/pdf.mjs +141 -0
- package/dist/esm/platform/command.mjs +28 -0
- package/dist/esm/platform/engines.mjs +51 -0
- package/dist/esm/platform/index.mjs +27 -0
- package/dist/esm/platform/lifecycle.mjs +30 -0
- package/dist/esm/platform/os.mjs +32 -0
- package/dist/esm/platform/problems.mjs +108 -0
- package/dist/esm/platform/registry.mjs +300 -0
- package/dist/esm/platform/repository.mjs +479 -0
- package/dist/esm/platform/workspace.mjs +555 -0
- package/dist/esm/qldb/index.mjs +6 -0
- package/dist/esm/qldb/qldb.mjs +5 -0
- package/dist/esm/rabbitmq/consumer.mjs +31 -0
- package/dist/esm/rabbitmq/index.mjs +9 -0
- package/dist/esm/rabbitmq/producer.mjs +19 -0
- package/dist/esm/redis/client.mjs +171 -0
- package/dist/esm/redis/index.mjs +6 -0
- package/dist/esm/security/decorators.mjs +29 -0
- package/dist/esm/security/index.mjs +10 -0
- package/dist/esm/security/oauth.mjs +56 -0
- package/dist/esm/security/user.mjs +69 -0
- package/dist/esm/template/engines.mjs +120 -0
- package/dist/esm/template/index.mjs +6 -0
- package/dist/esm/utils/alphanumeric.mjs +88 -0
- package/dist/esm/utils/base64.mjs +85 -0
- package/dist/esm/utils/converter.mjs +59 -0
- package/dist/esm/utils/digest.mjs +148 -0
- package/dist/esm/utils/escape.mjs +141 -0
- package/dist/esm/utils/hex.mjs +85 -0
- package/dist/esm/utils/index.mjs +38 -0
- package/dist/esm/utils/jsonpath.mjs +470 -0
- package/dist/esm/utils/qrcode.mjs +22 -0
- package/dist/esm/utils/url.mjs +63 -0
- package/dist/esm/utils/utf8.mjs +42 -0
- package/dist/esm/utils/uuid.mjs +29 -0
- package/dist/esm/utils/xml.mjs +38 -0
- package/package.json +58 -0
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
const GitFacade = Java.type("org.eclipse.dirigible.components.api.git.GitFacade");
|
|
2
|
+
class Client {
|
|
3
|
+
/**
|
|
4
|
+
* Initializes a new Git repository for a project, performs an initial commit, and pushes.
|
|
5
|
+
*
|
|
6
|
+
* @param user The username of the committer.
|
|
7
|
+
* @param email The email address of the committer.
|
|
8
|
+
* @param workspaceName The name of the workspace.
|
|
9
|
+
* @param projectName The name of the project.
|
|
10
|
+
* @param repositoryName The name of the repository (where to put the git folder).
|
|
11
|
+
* @param commitMessage The initial commit message.
|
|
12
|
+
*/
|
|
13
|
+
static initRepository(user, email, workspaceName, projectName, repositoryName, commitMessage) {
|
|
14
|
+
GitFacade.initRepository(user, email, workspaceName, projectName, repositoryName, commitMessage);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Performs a commit in the specified repository.
|
|
18
|
+
*
|
|
19
|
+
* @param user The username of the committer.
|
|
20
|
+
* @param email The email address of the committer.
|
|
21
|
+
* @param workspaceName The name of the workspace.
|
|
22
|
+
* @param repositoryName The name of the repository.
|
|
23
|
+
* @param commitMessage The commit message.
|
|
24
|
+
* @param all If true, automatically stages modified and deleted files before committing.
|
|
25
|
+
*/
|
|
26
|
+
static commit(user, email, workspaceName, repositoryName, commitMessage, all) {
|
|
27
|
+
GitFacade.commit(user, email, workspaceName, repositoryName, commitMessage, all);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Retrieves a list of all Git repositories (projects) within the specified workspace.
|
|
31
|
+
*
|
|
32
|
+
* @param workspaceName The name of the workspace.
|
|
33
|
+
* @returns An array of {@link ProjectDescriptor} objects.
|
|
34
|
+
*/
|
|
35
|
+
static getGitRepositories(workspaceName) {
|
|
36
|
+
return GitFacade.getGitRepositories(workspaceName);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Retrieves the commit history for the specified repository or a specific file path within it.
|
|
40
|
+
*
|
|
41
|
+
* @param repositoryName The name of the repository.
|
|
42
|
+
* @param workspaceName The name of the workspace.
|
|
43
|
+
* @param path The file path for history, or null/empty string for full repository history.
|
|
44
|
+
* @returns An array of {@link GitCommitInfo} objects.
|
|
45
|
+
*/
|
|
46
|
+
static getHistory(repositoryName, workspaceName, path) {
|
|
47
|
+
return GitFacade.getHistory(repositoryName, workspaceName, path);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Deletes the specified Git repository.
|
|
51
|
+
*
|
|
52
|
+
* @param workspaceName The name of the workspace.
|
|
53
|
+
* @param repositoryName The name of the repository to delete.
|
|
54
|
+
*/
|
|
55
|
+
static deleteRepository(workspaceName, repositoryName) {
|
|
56
|
+
return GitFacade.deleteRepository(workspaceName, repositoryName);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Clones a remote repository into the local workspace.
|
|
60
|
+
*
|
|
61
|
+
* @param workspaceName The name of the workspace.
|
|
62
|
+
* @param repositoryUri The URI of the remote repository.
|
|
63
|
+
* @param username The username for authentication.
|
|
64
|
+
* @param password The password for authentication.
|
|
65
|
+
* @param branch The specific branch to checkout after cloning.
|
|
66
|
+
* @returns A GitConnector instance for interacting directly with the cloned repository.
|
|
67
|
+
*/
|
|
68
|
+
static cloneRepository(workspaceName, repositoryUri, username, password, branch) {
|
|
69
|
+
return GitFacade.cloneRepository(workspaceName, repositoryUri, username, password, branch);
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Pulls changes from the remote repository and attempts to merge them into the current branch.
|
|
73
|
+
*
|
|
74
|
+
* @param workspaceName The name of the workspace.
|
|
75
|
+
* @param repositoryName The name of the repository.
|
|
76
|
+
* @param username The username for authentication.
|
|
77
|
+
* @param password The password for authentication.
|
|
78
|
+
*/
|
|
79
|
+
static pull(workspaceName, repositoryName, username, password) {
|
|
80
|
+
GitFacade.pull(workspaceName, repositoryName, username, password);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Pushes the local commits to the remote repository.
|
|
84
|
+
*
|
|
85
|
+
* @param workspaceName The name of the workspace.
|
|
86
|
+
* @param repositoryName The name of the repository.
|
|
87
|
+
* @param username The username for authentication.
|
|
88
|
+
* @param password The password for authentication.
|
|
89
|
+
*/
|
|
90
|
+
static push(workspaceName, repositoryName, username, password) {
|
|
91
|
+
GitFacade.push(workspaceName, repositoryName, username, password);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Checks out a specific branch, commit, or tag in the repository.
|
|
95
|
+
*
|
|
96
|
+
* @param workspaceName The name of the workspace.
|
|
97
|
+
* @param repositoryName The name of the repository.
|
|
98
|
+
* @param branch The branch or tree-ish object to check out.
|
|
99
|
+
*/
|
|
100
|
+
static checkout(workspaceName, repositoryName, branch) {
|
|
101
|
+
GitFacade.checkout(workspaceName, repositoryName, branch);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Creates a new branch starting from a specified point (e.g., HEAD, a commit hash, or another branch).
|
|
105
|
+
*
|
|
106
|
+
* @param workspaceName The name of the workspace.
|
|
107
|
+
* @param repositoryName The name of the repository.
|
|
108
|
+
* @param branch The name of the new branch to create.
|
|
109
|
+
* @param startingPoint The tree-ish object to start the new branch from.
|
|
110
|
+
*/
|
|
111
|
+
static createBranch(workspaceName, repositoryName, branch, startingPoint) {
|
|
112
|
+
GitFacade.createBranch(workspaceName, repositoryName, branch, startingPoint);
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Deletes a local branch.
|
|
116
|
+
*
|
|
117
|
+
* @param workspaceName The name of the workspace.
|
|
118
|
+
* @param repositoryName The name of the repository.
|
|
119
|
+
* @param branch The name of the branch to delete.
|
|
120
|
+
*/
|
|
121
|
+
static deleteBranch(workspaceName, repositoryName, branch) {
|
|
122
|
+
GitFacade.deleteBranch(workspaceName, repositoryName, branch);
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Renames a local branch.
|
|
126
|
+
*
|
|
127
|
+
* @param workspaceName The name of the workspace.
|
|
128
|
+
* @param repositoryName The name of the repository.
|
|
129
|
+
* @param oldName The current name of the branch.
|
|
130
|
+
* @param newName The new name for the branch.
|
|
131
|
+
*/
|
|
132
|
+
static renameBranch(workspaceName, repositoryName, oldName, newName) {
|
|
133
|
+
GitFacade.renameBranch(workspaceName, repositoryName, oldName, newName);
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Creates a new remote branch on the Git server.
|
|
137
|
+
*
|
|
138
|
+
* @param workspaceName The name of the workspace.
|
|
139
|
+
* @param repositoryName The name of the repository.
|
|
140
|
+
* @param branch The name of the remote branch to create.
|
|
141
|
+
* @param startingPoint The tree-ish object to start the new remote branch from.
|
|
142
|
+
* @param username The username for authentication.
|
|
143
|
+
* @param password The password for authentication.
|
|
144
|
+
*/
|
|
145
|
+
static createRemoteBranch(workspaceName, repositoryName, branch, startingPoint, username, password) {
|
|
146
|
+
GitFacade.createRemoteBranch(workspaceName, repositoryName, branch, startingPoint, username, password);
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Deletes a remote branch on the Git server.
|
|
150
|
+
*
|
|
151
|
+
* @param workspaceName The name of the workspace.
|
|
152
|
+
* @param repositoryName The name of the repository.
|
|
153
|
+
* @param branch The name of the remote branch to delete.
|
|
154
|
+
* @param username The username for authentication.
|
|
155
|
+
* @param password The password for authentication.
|
|
156
|
+
*/
|
|
157
|
+
static deleteRemoteBranch(workspaceName, repositoryName, branch, username, password) {
|
|
158
|
+
GitFacade.deleteRemoteBranch(workspaceName, repositoryName, branch, username, password);
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Resets the repository, discarding all uncommitted changes in the working directory and index.
|
|
162
|
+
*
|
|
163
|
+
* @param workspaceName The name of the workspace.
|
|
164
|
+
* @param repositoryName The name of the repository.
|
|
165
|
+
*/
|
|
166
|
+
static hardReset(workspaceName, repositoryName) {
|
|
167
|
+
GitFacade.hardReset(workspaceName, repositoryName);
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Reapplies commits from the specified branch onto the current branch.
|
|
171
|
+
*
|
|
172
|
+
* @param workspaceName The name of the workspace.
|
|
173
|
+
* @param repositoryName The name of the repository.
|
|
174
|
+
* @param branch The branch to rebase.
|
|
175
|
+
*/
|
|
176
|
+
static rebase(workspaceName, repositoryName, branch) {
|
|
177
|
+
GitFacade.rebase(workspaceName, repositoryName, branch);
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Retrieves the current status of the repository (staged, unstaged, untracked files).
|
|
181
|
+
*
|
|
182
|
+
* @param workspaceName The name of the workspace.
|
|
183
|
+
* @param repositoryName The name of the repository.
|
|
184
|
+
* @returns A string representation of the repository status.
|
|
185
|
+
*/
|
|
186
|
+
static status(workspaceName, repositoryName) {
|
|
187
|
+
return GitFacade.status(workspaceName, repositoryName);
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Retrieves the name of the currently active branch.
|
|
191
|
+
*
|
|
192
|
+
* @param workspaceName The name of the workspace.
|
|
193
|
+
* @param repositoryName The name of the repository.
|
|
194
|
+
* @returns The name of the current branch.
|
|
195
|
+
*/
|
|
196
|
+
static getBranch(workspaceName, repositoryName) {
|
|
197
|
+
return GitFacade.getBranch(workspaceName, repositoryName);
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Retrieves a list of all local branches in the repository.
|
|
201
|
+
*
|
|
202
|
+
* @param workspaceName The name of the workspace.
|
|
203
|
+
* @param repositoryName The name of the repository.
|
|
204
|
+
* @returns An array of {@link GitBranch} objects representing local branches.
|
|
205
|
+
*/
|
|
206
|
+
static getLocalBranches(workspaceName, repositoryName) {
|
|
207
|
+
return GitFacade.getLocalBranches(workspaceName, repositoryName);
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Retrieves a list of all remote branches configured for the repository.
|
|
211
|
+
*
|
|
212
|
+
* @param workspaceName The name of the workspace.
|
|
213
|
+
* @param repositoryName The name of the repository.
|
|
214
|
+
* @returns An array of {@link GitBranch} objects representing remote branches.
|
|
215
|
+
*/
|
|
216
|
+
static getRemoteBranches(workspaceName, repositoryName) {
|
|
217
|
+
return GitFacade.getRemoteBranches(workspaceName, repositoryName);
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Retrieves a list of all unstaged files (changes not yet added to the index).
|
|
221
|
+
*
|
|
222
|
+
* @param workspaceName The name of the workspace.
|
|
223
|
+
* @param repositoryName The name of the repository.
|
|
224
|
+
* @returns An array of {@link GitChangedFile} objects.
|
|
225
|
+
*/
|
|
226
|
+
static getUnstagedChanges(workspaceName, repositoryName) {
|
|
227
|
+
return GitFacade.getUnstagedChanges(workspaceName, repositoryName);
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Retrieves a list of all staged files (changes added to the index, ready for commit).
|
|
231
|
+
*
|
|
232
|
+
* @param workspaceName The name of the workspace.
|
|
233
|
+
* @param repositoryName The name of the repository.
|
|
234
|
+
* @returns An array of {@link GitChangedFile} objects.
|
|
235
|
+
*/
|
|
236
|
+
static getStagedChanges(workspaceName, repositoryName) {
|
|
237
|
+
return GitFacade.getStagedChanges(workspaceName, repositoryName);
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Retrieves the content of a file at a specific revision (commit, branch, or tag).
|
|
241
|
+
*
|
|
242
|
+
* @param workspaceName The name of the workspace.
|
|
243
|
+
* @param repositoryName The name of the repository.
|
|
244
|
+
* @param filePath The path to the file.
|
|
245
|
+
* @param revStr The revision string (e.g., commit hash or branch name).
|
|
246
|
+
* @returns The content of the file as a string.
|
|
247
|
+
*/
|
|
248
|
+
static getFileContent(workspaceName, repositoryName, filePath, revStr) {
|
|
249
|
+
return GitFacade.getFileContent(workspaceName, repositoryName, filePath, revStr);
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
if (typeof module !== "undefined") {
|
|
253
|
+
module.exports = Client;
|
|
254
|
+
}
|
|
255
|
+
export {
|
|
256
|
+
Client
|
|
257
|
+
};
|
|
258
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2dpdC9jbGllbnQudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IEdpdEZhY2FkZSA9IEphdmEudHlwZShcIm9yZy5lY2xpcHNlLmRpcmlnaWJsZS5jb21wb25lbnRzLmFwaS5naXQuR2l0RmFjYWRlXCIpO1xuXG4vKipcbiAqIERlc2NyaWJlcyBhIGZpbGUgd2l0aGluIHRoZSB3b3Jrc3BhY2UsIHBvdGVudGlhbGx5IHdpdGggR2l0IHN0YXR1cyBpbmZvcm1hdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaWxlRGVzY3JpcHRvciB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHBhdGg6IHN0cmluZztcbiAgICBjb250ZW50VHlwZTogc3RyaW5nO1xuICAgIHN0YXR1czogc3RyaW5nO1xufVxuXG4vKipcbiAqIERlc2NyaWJlcyBhIGZvbGRlciB3aXRoaW4gdGhlIHdvcmtzcGFjZSwgcG90ZW50aWFsbHkgd2l0aCBHaXQgc3RhdHVzIGluZm9ybWF0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZvbGRlckRlc2NyaXB0b3Ige1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgc3RhdHVzOiBzdHJpbmc7XG4gICAgZm9sZGVyczogRm9sZGVyRGVzY3JpcHRvcltdO1xuICAgIGZpbGVzOiBGaWxlRGVzY3JpcHRvcltdO1xufVxuXG4vKipcbiAqIERlc2NyaWJlcyBhIEdpdC1tYW5hZ2VkIHByb2plY3QvcmVwb3NpdG9yeSBpbiB0aGUgd29ya3NwYWNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb2plY3REZXNjcmlwdG9yIHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIGdpdDogYm9vbGVhbjtcbiAgICBnaXROYW1lOiBzdHJpbmc7XG4gICAgZm9sZGVyczogRm9sZGVyRGVzY3JpcHRvcltdO1xuICAgIGZpbGVzOiBGaWxlRGVzY3JpcHRvcltdO1xufVxuXG4vKipcbiAqIERlc2NyaWJlcyBhIHNpbmdsZSBHaXQgY29tbWl0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdpdENvbW1pdEluZm8ge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgYXV0aG9yOiBzdHJpbmc7XG4gICAgZW1haWxBZGRyZXNzOiBzdHJpbmc7XG4gICAgZGF0ZVRpbWU6IHN0cmluZztcbiAgICBtZXNzYWdlOiBzdHJpbmc7XG59XG5cblxuLyoqXG4gKiBEZXNjcmliZXMgYSBHaXQgYnJhbmNoIChsb2NhbCBvciByZW1vdGUpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdpdEJyYW5jaCB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHJlbW90ZTogYm9vbGVhbjtcbiAgICBjdXJyZW50OiBib29sZWFuO1xuICAgIGNvbW1pdE9iamVjdElkOiBzdHJpbmc7XG4gICAgY29tbWl0U2hvcnRJZDogc3RyaW5nO1xuICAgIGNvbW1pdERhdGU6IHN0cmluZztcbiAgICBjb21taXRNZXNzYWdlOiBzdHJpbmc7XG4gICAgY29tbWl0QXV0aG9yOiBzdHJpbmc7XG59XG5cbi8qKlxuICogRGVzY3JpYmVzIGEgZmlsZSB0aGF0IGhhcyBiZWVuIGNoYW5nZWQgKHN0YWdlZCBvciB1bnN0YWdlZCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2l0Q2hhbmdlZEZpbGUge1xuICAgIHBhdGg6IHN0cmluZztcbiAgICB0eXBlOiBudW1iZXI7XG59XG5cbi8qKlxuKiBUaGUgSUdpdENvbm5lY3RvciBwcm92aWRlcyB0aGUgc2ltcGxpZmllZCBtZXRob2RzIGZvciBjb21tdW5pY2F0aW5nIHdpdGggYSBHaXQgU0NNIHNlcnZlci5cbiogVGhpcyBpbnRlcmZhY2UgaXMgcHJpbWFyaWx5IGltcGxlbWVudGVkIGJ5IHRoZSBvYmplY3QgcmV0dXJuZWQgZnJvbSB0aGUgbmF0aXZlIEphdmEgZmFjYWRlLlxuKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2l0Q29ubmVjdG9yIHtcblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIG9yaWdpbiB1cmxzLlxuICAgICAqXG4gICAgICogQHJldHVybnMgQW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGZldGNoIGFuZCBwdXNoIFVSTHMuXG4gICAgICovXG4gICAgZ2V0T3JpZ2luVXJscygpOiB7IGZldGNoVXJsOiBzdHJpbmc7IHB1c2hVcmw6IHN0cmluZzsgfTtcblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGZldGNoIHVybC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBmZXRjaFVybCBUaGUgbmV3IGZldGNoIFVSTC5cbiAgICAgKiBAdGhyb3dzIFVSSVN5bnRheEV4Y2VwdGlvbiwgR2l0QVBJRXhjZXB0aW9uXG4gICAgICovXG4gICAgc2V0RmV0Y2hVcmwoZmV0Y2hVcmw6IHN0cmluZyk6IHZvaWRcblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIHB1c2ggdXJsLlxuICAgICAqXG4gICAgICogQHBhcmFtIHB1c2hVcmwgVGhlIG5ldyBwdXNoIFVSTC5cbiAgICAgKiBAdGhyb3dzIFVSSVN5bnRheEV4Y2VwdGlvbiwgR2l0QVBJRXhjZXB0aW9uXG4gICAgICovXG4gICAgc2V0UHVzaFVybChwdXNoVXJsOiBzdHJpbmcpOiB2b2lkXG5cbiAgICAvKipcbiAgICAgKiBBZGRzIGZpbGUocykgdG8gdGhlIHN0YWdpbmcgaW5kZXguXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZmlsZVBhdHRlcm4gRmlsZSB0byBhZGQgY29udGVudCBmcm9tLiBFeGFtcGxlOiBcIi5cIiBpbmNsdWRlcyBhbGwgZmlsZXMuXG4gICAgICogQHRocm93cyBJT0V4Y2VwdGlvbiwgTm9GaWxlcGF0dGVybkV4Y2VwdGlvbiwgR2l0QVBJRXhjZXB0aW9uXG4gICAgICovXG4gICAgYWRkKGZpbGVQYXR0ZXJuOiBzdHJpbmcpOiB2b2lkXG5cbiAgICAvKipcbiAgICAgKiBBZGRzIGRlbGV0ZWQgZmlsZShzKSB0byB0aGUgc3RhZ2luZyBpbmRleC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBmaWxlUGF0dGVybiBGaWxlIHRvIGFkZCBjb250ZW50IGZyb20uIEV4YW1wbGU6IFwiLlwiIGluY2x1ZGVzIGFsbCBmaWxlcy5cbiAgICAgKiBAdGhyb3dzIElPRXhjZXB0aW9uLCBOb0ZpbGVwYXR0ZXJuRXhjZXB0aW9uLCBHaXRBUElFeGNlcHRpb25cbiAgICAgKi9cbiAgICBhZGREZWxldGVkKGZpbGVQYXR0ZXJuOiBzdHJpbmcpOiB2b2lkXG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgZnJvbSB0aGUgaW5kZXguXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcGF0aCBUaGUgcGF0aCB0byBiZSByZW1vdmVkLlxuICAgICAqIEB0aHJvd3MgSU9FeGNlcHRpb24sIE5vRmlsZXBhdHRlcm5FeGNlcHRpb24sIEdpdEFQSUV4Y2VwdGlvblxuICAgICAqL1xuICAgIHJlbW92ZShwYXRoOiBzdHJpbmcpOiB2b2lkXG5cbiAgICAvKipcbiAgICAgKiBSZXZlcnQgdG8gaGVhZCByZXZpc2lvbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYXRoIFRoZSBwYXRoIHRvIGJlIHJldmVydGVkLlxuICAgICAqIEB0aHJvd3MgSU9FeGNlcHRpb24sIE5vRmlsZXBhdHRlcm5FeGNlcHRpb24sIEdpdEFQSUV4Y2VwdGlvblxuICAgICAqL1xuICAgIHJldmVydChwYXRoOiBzdHJpbmcpOiB2b2lkXG5cblxuICAgIC8qKlxuICAgICAqIEFkZHMgY2hhbmdlcyB0byB0aGUgc3RhZ2luZyBpbmRleCwgdGhlbiBwZXJmb3JtcyBhIGNvbW1pdC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBtZXNzYWdlIFRoZSBjb21taXQgbWVzc2FnZS5cbiAgICAgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgY29tbWl0dGVyLlxuICAgICAqIEBwYXJhbSBlbWFpbCBUaGUgZW1haWwgb2YgdGhlIGNvbW1pdHRlci5cbiAgICAgKiBAcGFyYW0gYWxsIElmIHRydWUsIGF1dG9tYXRpY2FsbHkgc3RhZ2VzIG1vZGlmaWVkIGFuZCBkZWxldGVkIGZpbGVzLlxuICAgICAqIEB0aHJvd3MgVmFyaW91cyBHaXQgZXhjZXB0aW9uc1xuICAgICAqL1xuICAgIGNvbW1pdChtZXNzYWdlOiBzdHJpbmcsIG5hbWU6IHN0cmluZywgZW1haWw6IHN0cmluZywgYWxsOiBib29sZWFuKTogdm9pZDtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgbmV3IGJyYW5jaCBmcm9tIGEgcGFydGljdWxhciBzdGFydCBwb2ludC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBuYW1lIFRoZSBuZXcgYnJhbmNoIG5hbWUuXG4gICAgICogQHBhcmFtIHN0YXJ0UG9pbnQgVmFsaWQgdHJlZS1pc2ggb2JqZWN0IChlLmcuLCBcIm1hc3RlclwiLCBcIkhFQURcIiwgY29tbWl0IGhhc2gpLlxuICAgICAqIEB0aHJvd3MgUmVmQWxyZWFkeUV4aXN0c0V4Y2VwdGlvbiwgR2l0QVBJRXhjZXB0aW9uXG4gICAgICovXG4gICAgY3JlYXRlQnJhbmNoKG5hbWU6IHN0cmluZywgc3RhcnRQb2ludDogc3RyaW5nKTogdm9pZFxuXG4gICAgLyoqXG4gICAgICogRGVsZXRlcyB0aGUgYnJhbmNoLlxuICAgICAqXG4gICAgICogQHBhcmFtIG5hbWUgVGhlIGJyYW5jaCBuYW1lIHRvIGRlbGV0ZS5cbiAgICAgKiBAdGhyb3dzIFJlZkFscmVhZHlFeGlzdHNFeGNlcHRpb24sIEdpdEFQSUV4Y2VwdGlvblxuICAgICAqL1xuICAgIGRlbGV0ZUJyYW5jaChuYW1lOiBzdHJpbmcpOiB2b2lkXG5cbiAgICAvKipcbiAgICAgKiBSZW5hbWVzIHRoZSBicmFuY2guXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb2xkTmFtZSBUaGUgb2xkIGJyYW5jaCBuYW1lLlxuICAgICAqIEBwYXJhbSBuZXdOYW1lIFRoZSBuZXcgYnJhbmNoIG5hbWUuXG4gICAgICogQHRocm93cyBSZWZBbHJlYWR5RXhpc3RzRXhjZXB0aW9uLCBHaXRBUElFeGNlcHRpb25cbiAgICAgKi9cbiAgICByZW5hbWVCcmFuY2gob2xkTmFtZTogc3RyaW5nLCBuZXdOYW1lOiBzdHJpbmcpOiB2b2lkXG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIG5ldyByZW1vdGUgYnJhbmNoIGZyb20gYSBwYXJ0aWN1bGFyIHN0YXJ0IHBvaW50LlxuICAgICAqXG4gICAgICogQHBhcmFtIG5hbWUgVGhlIGJyYW5jaCBuYW1lLlxuICAgICAqIEBwYXJhbSBzdGFydFBvaW50IFZhbGlkIHRyZWUtaXNoIG9iamVjdC5cbiAgICAgKiBAcGFyYW0gdXNlcm5hbWUgVXNlcm5hbWUgZm9yIHRoZSByZW1vdGUgcmVwb3NpdG9yeS5cbiAgICAgKiBAcGFyYW0gcGFzc3dvcmQgUGFzc3dvcmQgZm9yIHRoZSByZW1vdGUgcmVwb3NpdG9yeS5cbiAgICAgKiBAdGhyb3dzIFJlZkFscmVhZHlFeGlzdHNFeGNlcHRpb24sIEdpdEFQSUV4Y2VwdGlvblxuICAgICAqL1xuICAgIGNyZWF0ZVJlbW90ZUJyYW5jaChuYW1lOiBzdHJpbmcsIHN0YXJ0UG9pbnQ6IHN0cmluZywgdXNlcm5hbWU6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZyk6IHZvaWRcblxuICAgIC8qKlxuICAgICAqIERlbGV0ZXMgdGhlIHJlbW90ZSBicmFuY2guXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgcmVtb3RlIGJyYW5jaCB0byBkZWxldGUuXG4gICAgICogQHBhcmFtIHVzZXJuYW1lIFVzZXJuYW1lIGZvciB0aGUgcmVtb3RlIHJlcG9zaXRvcnkuXG4gICAgICogQHBhcmFtIHBhc3N3b3JkIFBhc3N3b3JkIGZvciB0aGUgcmVtb3RlIHJlcG9zaXRvcnkuXG4gICAgICogQHRocm93cyBSZWZBbHJlYWR5RXhpc3RzRXhjZXB0aW9uLCBHaXRBUElFeGNlcHRpb25cbiAgICAgKi9cbiAgICBkZWxldGVSZW1vdGVCcmFuY2gobmFtZTogc3RyaW5nLCB1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKTogdm9pZFxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tvdXQgdG8gYSB2YWxpZCB0cmVlLWlzaCBvYmplY3QgKGUuZy4sIGJyYW5jaCBuYW1lLCBjb21taXQgaGFzaCkuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbmFtZSBUaGUgdHJlZS1pc2ggb2JqZWN0LlxuICAgICAqIEByZXR1cm5zIFRoZSBKR2l0IFJlZiBvYmplY3QuXG4gICAgICogQHRocm93cyBSZWZBbHJlYWR5RXhpc3RzRXhjZXB0aW9uLCBHaXRBUElFeGNlcHRpb25cbiAgICAgKi9cbiAgICBjaGVja291dChuYW1lOiBzdHJpbmcpOiBhbnlcblxuICAgIC8qKlxuICAgICAqIEhhcmQgcmVzZXQgdGhlIHJlcG9zaXRvcnkuIFJlc2V0cyB3b3JraW5nIGRpcmVjdG9yeSBhbmQgc3RhZ2luZyBpbmRleCB0byBtYXRjaCB0aGUgR2l0IHJlcG9zaXRvcnkgSEVBRC5cbiAgICAgKlxuICAgICAqIEB0aHJvd3MgQ2hlY2tvdXRDb25mbGljdEV4Y2VwdGlvbiwgR2l0QVBJRXhjZXB0aW9uXG4gICAgICovXG4gICAgaGFyZFJlc2V0KCk6IHZvaWRcblxuICAgIC8qKlxuICAgICAqIEZldGNoZXMgZnJvbSBhIHJlbW90ZSByZXBvc2l0b3J5IGFuZCB0cmllcyB0byBtZXJnZSBpbnRvIHRoZSBjdXJyZW50IGJyYW5jaCAoUHVsbCkuXG4gICAgICpcbiAgICAgKiBAdGhyb3dzIFZhcmlvdXMgR2l0IGV4Y2VwdGlvbnNcbiAgICAgKi9cbiAgICBwdWxsKCk6IHZvaWRcblxuICAgIC8qKlxuICAgICAqIEZldGNoZXMgZnJvbSBhIHJlbW90ZSByZXBvc2l0b3J5IGFuZCB0cmllcyB0byBtZXJnZSBpbnRvIHRoZSBjdXJyZW50IGJyYW5jaCAoUHVsbCkuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdXNlcm5hbWUgVXNlcm5hbWUgZm9yIHRoZSByZW1vdGUgcmVwb3NpdG9yeS5cbiAgICAgKiBAcGFyYW0gcGFzc3dvcmQgUGFzc3dvcmQgZm9yIHRoZSByZW1vdGUgcmVwb3NpdG9yeS5cbiAgICAgKiBAdGhyb3dzIFZhcmlvdXMgR2l0IGV4Y2VwdGlvbnNcbiAgICAgKi9cbiAgICBwdWxsKHVzZXJuYW1lOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpOiB2b2lkXG5cbiAgICAvKipcbiAgICAgKiBQdXNoZXMgdGhlIGNvbW1pdHRlZCBjaGFuZ2VzIHRvIHRoZSByZW1vdGUgcmVwb3NpdG9yeS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB1c2VybmFtZSBVc2VybmFtZSBmb3IgdGhlIHJlbW90ZSByZXBvc2l0b3J5LlxuICAgICAqIEBwYXJhbSBwYXNzd29yZCBQYXNzd29yZCBmb3IgdGhlIHJlbW90ZSByZXBvc2l0b3J5LlxuICAgICAqIEB0aHJvd3MgSW52YWxpZFJlbW90ZUV4Y2VwdGlvbiwgVHJhbnNwb3J0RXhjZXB0aW9uLCBHaXRBUElFeGNlcHRpb25cbiAgICAgKi9cbiAgICBwdXNoKHVzZXJuYW1lOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpOiB2b2lkXG5cbiAgICAvKipcbiAgICAgKiBUcmllcyB0byByZWJhc2UgdGhlIHNlbGVjdGVkIGJyYW5jaCBvbiB0b3Agb2YgdGhlIGN1cnJlbnQgb25lLlxuICAgICAqXG4gICAgICogQHBhcmFtIG5hbWUgVGhlIGJyYW5jaCB0byByZWJhc2UuXG4gICAgICogQHRocm93cyBOb0hlYWRFeGNlcHRpb24sIFdyb25nUmVwb3NpdG9yeVN0YXRlRXhjZXB0aW9uLCBHaXRBUElFeGNlcHRpb25cbiAgICAgKi9cbiAgICByZWJhc2UobmFtZTogc3RyaW5nKTogdm9pZFxuXG4gICAgLyoqXG4gICAgICogR2V0IHRoZSBjdXJyZW50IHN0YXR1cyBvZiB0aGUgR2l0IHJlcG9zaXRvcnkuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBUaGUgSkdpdCBTdGF0dXMgb2JqZWN0LlxuICAgICAqIEB0aHJvd3MgTm9Xb3JrVHJlZUV4Y2VwdGlvbiwgR2l0QVBJRXhjZXB0aW9uXG4gICAgICovXG4gICAgc3RhdHVzKCk6IGFueVxuXG4gICAgLyoqXG4gICAgICogR2V0IHRoZSBuYW1lIG9mIHRoZSBjdXJyZW50IGJyYW5jaCBvZiB0aGUgR2l0IHJlcG9zaXRvcnkuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBUaGUgYnJhbmNoIG5hbWUgYXMgYSBzdHJpbmcuXG4gICAgICogQHRocm93cyBJT0V4Y2VwdGlvblxuICAgICAqL1xuICAgIGdldEJyYW5jaCgpOiBzdHJpbmdcblxuICAgIC8qKlxuICAgICAqIExpc3QgYWxsIHRoZSBsb2NhbCBicmFuY2hlcyBpbmZvLlxuICAgICAqXG4gICAgICogQHJldHVybnMgQSBsaXN0IG9mIGxvY2FsIHtAbGluayBHaXRCcmFuY2h9IG9iamVjdHMuXG4gICAgICogQHRocm93cyBHaXRDb25uZWN0b3JFeGNlcHRpb25cbiAgICAgKi9cbiAgICBnZXRMb2NhbEJyYW5jaGVzKCk6IEdpdEJyYW5jaFtdXG5cbiAgICAvKipcbiAgICAgKiBMaXN0IGFsbCB0aGUgcmVtb3RlIGJyYW5jaGVzIGluZm8uXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBBIGxpc3Qgb2YgcmVtb3RlIHtAbGluayBHaXRCcmFuY2h9IG9iamVjdHMuXG4gICAgICogQHRocm93cyBHaXRDb25uZWN0b3JFeGNlcHRpb25cbiAgICAgKi9cbiAgICBnZXRSZW1vdGVCcmFuY2hlcygpOiBHaXRCcmFuY2hbXVxuXG5cbiAgICAvKipcbiAgICAgKiBHZXQgdGhlIGxpc3Qgb2YgdGhlIHVuc3RhZ2VkIGZpbGVzLlxuICAgICAqXG4gICAgICogQHJldHVybnMgQSBsaXN0IG9mIHtAbGluayBHaXRDaGFuZ2VkRmlsZX0gb2JqZWN0cy5cbiAgICAgKiBAdGhyb3dzIEdpdENvbm5lY3RvckV4Y2VwdGlvblxuICAgICAqL1xuICAgIGdldFVuc3RhZ2VkQ2hhbmdlcygpOiBHaXRDaGFuZ2VkRmlsZVtdXG5cbiAgICAvKipcbiAgICAgKiBHZXQgdGhlIGxpc3Qgb2YgdGhlIHN0YWdlZCBmaWxlcy5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIEEgbGlzdCBvZiB7QGxpbmsgR2l0Q2hhbmdlZEZpbGV9IG9iamVjdHMuXG4gICAgICogQHRocm93cyBHaXRDb25uZWN0b3JFeGNlcHRpb25cbiAgICAgKi9cbiAgICBnZXRTdGFnZWRDaGFuZ2VzKCk6IEdpdENoYW5nZWRGaWxlW11cblxuICAgIC8qKlxuICAgICAqIEdldCBmaWxlIGNvbnRlbnQgZnJvbSB0aGUgSEVBRC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYXRoIFRoZSBmaWxlIHBhdGguXG4gICAgICogQHBhcmFtIHJldlN0ciBUaGUgcmV2aXNpb24gc3RyaW5nIChlLmcuLCBjb21taXQgaGFzaCwgYnJhbmNoIG5hbWUpLlxuICAgICAqIEByZXR1cm5zIFRoZSBjb250ZW50IG9mIHRoZSBmaWxlIGFzIGEgc3RyaW5nLlxuICAgICAqIEB0aHJvd3MgR2l0Q29ubmVjdG9yRXhjZXB0aW9uXG4gICAgICovXG4gICAgZ2V0RmlsZUNvbnRlbnQocGF0aDogc3RyaW5nLCByZXZTdHI6IHN0cmluZyk6IHN0cmluZ1xuXG4gICAgLyoqXG4gICAgICogR2V0IGhpc3Rvcnkgb2YgdGhlIHJlcG9zaXRvcnkgb3IgYSBzcGVjaWZpYyBmaWxlLlxuICAgICAqXG4gICAgICogQHBhcmFtIHBhdGggVGhlIGZpbGUgcGF0aCBvciBudWxsIHRvIGdldCB0aGUgZW50aXJlIHJlcG9zaXRvcnkgaGlzdG9yeS5cbiAgICAgKiBAcmV0dXJucyBBIGxpc3Qgb2Yge0BsaW5rIEdpdENvbW1pdEluZm99IG9iamVjdHMuXG4gICAgICogQHRocm93cyBHaXRDb25uZWN0b3JFeGNlcHRpb25cbiAgICAgKi9cbiAgICBnZXRIaXN0b3J5KHBhdGg6IHN0cmluZyk6IEdpdENvbW1pdEluZm9bXVxufVxuXG4vKipcbiAqIFN0YXRpYyBjbGllbnQgZmFjYWRlIGZvciB3b3Jrc3BhY2UtbGV2ZWwgR2l0IG9wZXJhdGlvbnMsIGFic3RyYWN0aW5nIHRoZSBuYXRpdmUgR2l0RmFjYWRlLlxuICovXG5leHBvcnQgY2xhc3MgQ2xpZW50IHtcblxuICAgIC8qKlxuICAgICAqIEluaXRpYWxpemVzIGEgbmV3IEdpdCByZXBvc2l0b3J5IGZvciBhIHByb2plY3QsIHBlcmZvcm1zIGFuIGluaXRpYWwgY29tbWl0LCBhbmQgcHVzaGVzLlxuICAgICAqXG4gICAgICogQHBhcmFtIHVzZXIgVGhlIHVzZXJuYW1lIG9mIHRoZSBjb21taXR0ZXIuXG4gICAgICogQHBhcmFtIGVtYWlsIFRoZSBlbWFpbCBhZGRyZXNzIG9mIHRoZSBjb21taXR0ZXIuXG4gICAgICogQHBhcmFtIHdvcmtzcGFjZU5hbWUgVGhlIG5hbWUgb2YgdGhlIHdvcmtzcGFjZS5cbiAgICAgKiBAcGFyYW0gcHJvamVjdE5hbWUgVGhlIG5hbWUgb2YgdGhlIHByb2plY3QuXG4gICAgICogQHBhcmFtIHJlcG9zaXRvcnlOYW1lIFRoZSBuYW1lIG9mIHRoZSByZXBvc2l0b3J5ICh3aGVyZSB0byBwdXQgdGhlIGdpdCBmb2xkZXIpLlxuICAgICAqIEBwYXJhbSBjb21taXRNZXNzYWdlIFRoZSBpbml0aWFsIGNvbW1pdCBtZXNzYWdlLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgaW5pdFJlcG9zaXRvcnkodXNlcjogc3RyaW5nLCBlbWFpbDogc3RyaW5nLCB3b3Jrc3BhY2VOYW1lOiBzdHJpbmcsIHByb2plY3ROYW1lOiBzdHJpbmcsIHJlcG9zaXRvcnlOYW1lOiBzdHJpbmcsIGNvbW1pdE1lc3NhZ2U6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBHaXRGYWNhZGUuaW5pdFJlcG9zaXRvcnkodXNlciwgZW1haWwsIHdvcmtzcGFjZU5hbWUsIHByb2plY3ROYW1lLCByZXBvc2l0b3J5TmFtZSwgY29tbWl0TWVzc2FnZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGVyZm9ybXMgYSBjb21taXQgaW4gdGhlIHNwZWNpZmllZCByZXBvc2l0b3J5LlxuICAgICAqXG4gICAgICogQHBhcmFtIHVzZXIgVGhlIHVzZXJuYW1lIG9mIHRoZSBjb21taXR0ZXIuXG4gICAgICogQHBhcmFtIGVtYWlsIFRoZSBlbWFpbCBhZGRyZXNzIG9mIHRoZSBjb21taXR0ZXIuXG4gICAgICogQHBhcmFtIHdvcmtzcGFjZU5hbWUgVGhlIG5hbWUgb2YgdGhlIHdvcmtzcGFjZS5cbiAgICAgKiBAcGFyYW0gcmVwb3NpdG9yeU5hbWUgVGhlIG5hbWUgb2YgdGhlIHJlcG9zaXRvcnkuXG4gICAgICogQHBhcmFtIGNvbW1pdE1lc3NhZ2UgVGhlIGNvbW1pdCBtZXNzYWdlLlxuICAgICAqIEBwYXJhbSBhbGwgSWYgdHJ1ZSwgYXV0b21hdGljYWxseSBzdGFnZXMgbW9kaWZpZWQgYW5kIGRlbGV0ZWQgZmlsZXMgYmVmb3JlIGNvbW1pdHRpbmcuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBjb21taXQodXNlcjogc3RyaW5nLCBlbWFpbDogc3RyaW5nLCB3b3Jrc3BhY2VOYW1lOiBzdHJpbmcsIHJlcG9zaXRvcnlOYW1lOiBzdHJpbmcsIGNvbW1pdE1lc3NhZ2U6IHN0cmluZywgYWxsOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIEdpdEZhY2FkZS5jb21taXQodXNlciwgZW1haWwsIHdvcmtzcGFjZU5hbWUsIHJlcG9zaXRvcnlOYW1lLCBjb21taXRNZXNzYWdlLCBhbGwpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHJpZXZlcyBhIGxpc3Qgb2YgYWxsIEdpdCByZXBvc2l0b3JpZXMgKHByb2plY3RzKSB3aXRoaW4gdGhlIHNwZWNpZmllZCB3b3Jrc3BhY2UuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gd29ya3NwYWNlTmFtZSBUaGUgbmFtZSBvZiB0aGUgd29ya3NwYWNlLlxuICAgICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHtAbGluayBQcm9qZWN0RGVzY3JpcHRvcn0gb2JqZWN0cy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldEdpdFJlcG9zaXRvcmllcyh3b3Jrc3BhY2VOYW1lOiBzdHJpbmcpOiBQcm9qZWN0RGVzY3JpcHRvcltdIHtcbiAgICAgICAgcmV0dXJuIEdpdEZhY2FkZS5nZXRHaXRSZXBvc2l0b3JpZXMod29ya3NwYWNlTmFtZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0cmlldmVzIHRoZSBjb21taXQgaGlzdG9yeSBmb3IgdGhlIHNwZWNpZmllZCByZXBvc2l0b3J5IG9yIGEgc3BlY2lmaWMgZmlsZSBwYXRoIHdpdGhpbiBpdC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSByZXBvc2l0b3J5TmFtZSBUaGUgbmFtZSBvZiB0aGUgcmVwb3NpdG9yeS5cbiAgICAgKiBAcGFyYW0gd29ya3NwYWNlTmFtZSBUaGUgbmFtZSBvZiB0aGUgd29ya3NwYWNlLlxuICAgICAqIEBwYXJhbSBwYXRoIFRoZSBmaWxlIHBhdGggZm9yIGhpc3RvcnksIG9yIG51bGwvZW1wdHkgc3RyaW5nIGZvciBmdWxsIHJlcG9zaXRvcnkgaGlzdG9yeS5cbiAgICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiB7QGxpbmsgR2l0Q29tbWl0SW5mb30gb2JqZWN0cy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldEhpc3RvcnkocmVwb3NpdG9yeU5hbWU6IHN0cmluZywgd29ya3NwYWNlTmFtZTogc3RyaW5nLCBwYXRoOiBzdHJpbmcpOiBHaXRDb21taXRJbmZvW10ge1xuICAgICAgICByZXR1cm4gR2l0RmFjYWRlLmdldEhpc3RvcnkocmVwb3NpdG9yeU5hbWUsIHdvcmtzcGFjZU5hbWUsIHBhdGgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlbGV0ZXMgdGhlIHNwZWNpZmllZCBHaXQgcmVwb3NpdG9yeS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB3b3Jrc3BhY2VOYW1lIFRoZSBuYW1lIG9mIHRoZSB3b3Jrc3BhY2UuXG4gICAgICogQHBhcmFtIHJlcG9zaXRvcnlOYW1lIFRoZSBuYW1lIG9mIHRoZSByZXBvc2l0b3J5IHRvIGRlbGV0ZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGRlbGV0ZVJlcG9zaXRvcnkod29ya3NwYWNlTmFtZTogc3RyaW5nLCByZXBvc2l0b3J5TmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHJldHVybiBHaXRGYWNhZGUuZGVsZXRlUmVwb3NpdG9yeSh3b3Jrc3BhY2VOYW1lLCByZXBvc2l0b3J5TmFtZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2xvbmVzIGEgcmVtb3RlIHJlcG9zaXRvcnkgaW50byB0aGUgbG9jYWwgd29ya3NwYWNlLlxuICAgICAqXG4gICAgICogQHBhcmFtIHdvcmtzcGFjZU5hbWUgVGhlIG5hbWUgb2YgdGhlIHdvcmtzcGFjZS5cbiAgICAgKiBAcGFyYW0gcmVwb3NpdG9yeVVyaSBUaGUgVVJJIG9mIHRoZSByZW1vdGUgcmVwb3NpdG9yeS5cbiAgICAgKiBAcGFyYW0gdXNlcm5hbWUgVGhlIHVzZXJuYW1lIGZvciBhdXRoZW50aWNhdGlvbi5cbiAgICAgKiBAcGFyYW0gcGFzc3dvcmQgVGhlIHBhc3N3b3JkIGZvciBhdXRoZW50aWNhdGlvbi5cbiAgICAgKiBAcGFyYW0gYnJhbmNoIFRoZSBzcGVjaWZpYyBicmFuY2ggdG8gY2hlY2tvdXQgYWZ0ZXIgY2xvbmluZy5cbiAgICAgKiBAcmV0dXJucyBBIEdpdENvbm5lY3RvciBpbnN0YW5jZSBmb3IgaW50ZXJhY3RpbmcgZGlyZWN0bHkgd2l0aCB0aGUgY2xvbmVkIHJlcG9zaXRvcnkuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBjbG9uZVJlcG9zaXRvcnkod29ya3NwYWNlTmFtZTogc3RyaW5nLCByZXBvc2l0b3J5VXJpOiBzdHJpbmcsIHVzZXJuYW1lOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcsIGJyYW5jaDogc3RyaW5nKTogR2l0Q29ubmVjdG9yIHtcbiAgICAgICAgLy8gVGhlIG5hdGl2ZSBHaXRGYWNhZGUgcmV0dXJucyBhIEphdmEgb2JqZWN0IGltcGxlbWVudGluZyBHaXRDb25uZWN0b3JcbiAgICAgICAgcmV0dXJuIEdpdEZhY2FkZS5jbG9uZVJlcG9zaXRvcnkod29ya3NwYWNlTmFtZSwgcmVwb3NpdG9yeVVyaSwgdXNlcm5hbWUsIHBhc3N3b3JkLCBicmFuY2gpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1bGxzIGNoYW5nZXMgZnJvbSB0aGUgcmVtb3RlIHJlcG9zaXRvcnkgYW5kIGF0dGVtcHRzIHRvIG1lcmdlIHRoZW0gaW50byB0aGUgY3VycmVudCBicmFuY2guXG4gICAgICpcbiAgICAgKiBAcGFyYW0gd29ya3NwYWNlTmFtZSBUaGUgbmFtZSBvZiB0aGUgd29ya3NwYWNlLlxuICAgICAqIEBwYXJhbSByZXBvc2l0b3J5TmFtZSBUaGUgbmFtZSBvZiB0aGUgcmVwb3NpdG9yeS5cbiAgICAgKiBAcGFyYW0gdXNlcm5hbWUgVGhlIHVzZXJuYW1lIGZvciBhdXRoZW50aWNhdGlvbi5cbiAgICAgKiBAcGFyYW0gcGFzc3dvcmQgVGhlIHBhc3N3b3JkIGZvciBhdXRoZW50aWNhdGlvbi5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHB1bGwod29ya3NwYWNlTmFtZTogc3RyaW5nLCByZXBvc2l0b3J5TmFtZTogc3RyaW5nLCB1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIEdpdEZhY2FkZS5wdWxsKHdvcmtzcGFjZU5hbWUsIHJlcG9zaXRvcnlOYW1lLCB1c2VybmFtZSwgcGFzc3dvcmQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFB1c2hlcyB0aGUgbG9jYWwgY29tbWl0cyB0byB0aGUgcmVtb3RlIHJlcG9zaXRvcnkuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gd29ya3NwYWNlTmFtZSBUaGUgbmFtZSBvZiB0aGUgd29ya3NwYWNlLlxuICAgICAqIEBwYXJhbSByZXBvc2l0b3J5TmFtZSBUaGUgbmFtZSBvZiB0aGUgcmVwb3NpdG9yeS5cbiAgICAgKiBAcGFyYW0gdXNlcm5hbWUgVGhlIHVzZXJuYW1lIGZvciBhdXRoZW50aWNhdGlvbi5cbiAgICAgKiBAcGFyYW0gcGFzc3dvcmQgVGhlIHBhc3N3b3JkIGZvciBhdXRoZW50aWNhdGlvbi5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHB1c2god29ya3NwYWNlTmFtZTogc3RyaW5nLCByZXBvc2l0b3J5TmFtZTogc3RyaW5nLCB1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIEdpdEZhY2FkZS5wdXNoKHdvcmtzcGFjZU5hbWUsIHJlcG9zaXRvcnlOYW1lLCB1c2VybmFtZSwgcGFzc3dvcmQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBvdXQgYSBzcGVjaWZpYyBicmFuY2gsIGNvbW1pdCwgb3IgdGFnIGluIHRoZSByZXBvc2l0b3J5LlxuICAgICAqXG4gICAgICogQHBhcmFtIHdvcmtzcGFjZU5hbWUgVGhlIG5hbWUgb2YgdGhlIHdvcmtzcGFjZS5cbiAgICAgKiBAcGFyYW0gcmVwb3NpdG9yeU5hbWUgVGhlIG5hbWUgb2YgdGhlIHJlcG9zaXRvcnkuXG4gICAgICogQHBhcmFtIGJyYW5jaCBUaGUgYnJhbmNoIG9yIHRyZWUtaXNoIG9iamVjdCB0byBjaGVjayBvdXQuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBjaGVja291dCh3b3Jrc3BhY2VOYW1lOiBzdHJpbmcsIHJlcG9zaXRvcnlOYW1lOiBzdHJpbmcsIGJyYW5jaDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIEdpdEZhY2FkZS5jaGVja291dCh3b3Jrc3BhY2VOYW1lLCByZXBvc2l0b3J5TmFtZSwgYnJhbmNoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgbmV3IGJyYW5jaCBzdGFydGluZyBmcm9tIGEgc3BlY2lmaWVkIHBvaW50IChlLmcuLCBIRUFELCBhIGNvbW1pdCBoYXNoLCBvciBhbm90aGVyIGJyYW5jaCkuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gd29ya3NwYWNlTmFtZSBUaGUgbmFtZSBvZiB0aGUgd29ya3NwYWNlLlxuICAgICAqIEBwYXJhbSByZXBvc2l0b3J5TmFtZSBUaGUgbmFtZSBvZiB0aGUgcmVwb3NpdG9yeS5cbiAgICAgKiBAcGFyYW0gYnJhbmNoIFRoZSBuYW1lIG9mIHRoZSBuZXcgYnJhbmNoIHRvIGNyZWF0ZS5cbiAgICAgKiBAcGFyYW0gc3RhcnRpbmdQb2ludCBUaGUgdHJlZS1pc2ggb2JqZWN0IHRvIHN0YXJ0IHRoZSBuZXcgYnJhbmNoIGZyb20uXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGVCcmFuY2god29ya3NwYWNlTmFtZTogc3RyaW5nLCByZXBvc2l0b3J5TmFtZTogc3RyaW5nLCBicmFuY2g6IHN0cmluZywgc3RhcnRpbmdQb2ludDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIEdpdEZhY2FkZS5jcmVhdGVCcmFuY2god29ya3NwYWNlTmFtZSwgcmVwb3NpdG9yeU5hbWUsIGJyYW5jaCwgc3RhcnRpbmdQb2ludCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVsZXRlcyBhIGxvY2FsIGJyYW5jaC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB3b3Jrc3BhY2VOYW1lIFRoZSBuYW1lIG9mIHRoZSB3b3Jrc3BhY2UuXG4gICAgICogQHBhcmFtIHJlcG9zaXRvcnlOYW1lIFRoZSBuYW1lIG9mIHRoZSByZXBvc2l0b3J5LlxuICAgICAqIEBwYXJhbSBicmFuY2ggVGhlIG5hbWUgb2YgdGhlIGJyYW5jaCB0byBkZWxldGUuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBkZWxldGVCcmFuY2god29ya3NwYWNlTmFtZTogc3RyaW5nLCByZXBvc2l0b3J5TmFtZTogc3RyaW5nLCBicmFuY2g6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBHaXRGYWNhZGUuZGVsZXRlQnJhbmNoKHdvcmtzcGFjZU5hbWUsIHJlcG9zaXRvcnlOYW1lLCBicmFuY2gpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbmFtZXMgYSBsb2NhbCBicmFuY2guXG4gICAgICpcbiAgICAgKiBAcGFyYW0gd29ya3NwYWNlTmFtZSBUaGUgbmFtZSBvZiB0aGUgd29ya3NwYWNlLlxuICAgICAqIEBwYXJhbSByZXBvc2l0b3J5TmFtZSBUaGUgbmFtZSBvZiB0aGUgcmVwb3NpdG9yeS5cbiAgICAgKiBAcGFyYW0gb2xkTmFtZSBUaGUgY3VycmVudCBuYW1lIG9mIHRoZSBicmFuY2guXG4gICAgICogQHBhcmFtIG5ld05hbWUgVGhlIG5ldyBuYW1lIGZvciB0aGUgYnJhbmNoLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgcmVuYW1lQnJhbmNoKHdvcmtzcGFjZU5hbWU6IHN0cmluZywgcmVwb3NpdG9yeU5hbWU6IHN0cmluZywgb2xkTmFtZTogc3RyaW5nLCBuZXdOYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgR2l0RmFjYWRlLnJlbmFtZUJyYW5jaCh3b3Jrc3BhY2VOYW1lLCByZXBvc2l0b3J5TmFtZSwgb2xkTmFtZSwgbmV3TmFtZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIG5ldyByZW1vdGUgYnJhbmNoIG9uIHRoZSBHaXQgc2VydmVyLlxuICAgICAqXG4gICAgICogQHBhcmFtIHdvcmtzcGFjZU5hbWUgVGhlIG5hbWUgb2YgdGhlIHdvcmtzcGFjZS5cbiAgICAgKiBAcGFyYW0gcmVwb3NpdG9yeU5hbWUgVGhlIG5hbWUgb2YgdGhlIHJlcG9zaXRvcnkuXG4gICAgICogQHBhcmFtIGJyYW5jaCBUaGUgbmFtZSBvZiB0aGUgcmVtb3RlIGJyYW5jaCB0byBjcmVhdGUuXG4gICAgICogQHBhcmFtIHN0YXJ0aW5nUG9pbnQgVGhlIHRyZWUtaXNoIG9iamVjdCB0byBzdGFydCB0aGUgbmV3IHJlbW90ZSBicmFuY2ggZnJvbS5cbiAgICAgKiBAcGFyYW0gdXNlcm5hbWUgVGhlIHVzZXJuYW1lIGZvciBhdXRoZW50aWNhdGlvbi5cbiAgICAgKiBAcGFyYW0gcGFzc3dvcmQgVGhlIHBhc3N3b3JkIGZvciBhdXRoZW50aWNhdGlvbi5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGNyZWF0ZVJlbW90ZUJyYW5jaCh3b3Jrc3BhY2VOYW1lOiBzdHJpbmcsIHJlcG9zaXRvcnlOYW1lOiBzdHJpbmcsIGJyYW5jaDogc3RyaW5nLCBzdGFydGluZ1BvaW50OiBzdHJpbmcsIHVzZXJuYW1lOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgR2l0RmFjYWRlLmNyZWF0ZVJlbW90ZUJyYW5jaCh3b3Jrc3BhY2VOYW1lLCByZXBvc2l0b3J5TmFtZSwgYnJhbmNoLCBzdGFydGluZ1BvaW50LCB1c2VybmFtZSwgcGFzc3dvcmQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlbGV0ZXMgYSByZW1vdGUgYnJhbmNoIG9uIHRoZSBHaXQgc2VydmVyLlxuICAgICAqXG4gICAgICogQHBhcmFtIHdvcmtzcGFjZU5hbWUgVGhlIG5hbWUgb2YgdGhlIHdvcmtzcGFjZS5cbiAgICAgKiBAcGFyYW0gcmVwb3NpdG9yeU5hbWUgVGhlIG5hbWUgb2YgdGhlIHJlcG9zaXRvcnkuXG4gICAgICogQHBhcmFtIGJyYW5jaCBUaGUgbmFtZSBvZiB0aGUgcmVtb3RlIGJyYW5jaCB0byBkZWxldGUuXG4gICAgICogQHBhcmFtIHVzZXJuYW1lIFRoZSB1c2VybmFtZSBmb3IgYXV0aGVudGljYXRpb24uXG4gICAgICogQHBhcmFtIHBhc3N3b3JkIFRoZSBwYXNzd29yZCBmb3IgYXV0aGVudGljYXRpb24uXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBkZWxldGVSZW1vdGVCcmFuY2god29ya3NwYWNlTmFtZTogc3RyaW5nLCByZXBvc2l0b3J5TmFtZTogc3RyaW5nLCBicmFuY2g6IHN0cmluZywgdXNlcm5hbWU6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBHaXRGYWNhZGUuZGVsZXRlUmVtb3RlQnJhbmNoKHdvcmtzcGFjZU5hbWUsIHJlcG9zaXRvcnlOYW1lLCBicmFuY2gsIHVzZXJuYW1lLCBwYXNzd29yZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVzZXRzIHRoZSByZXBvc2l0b3J5LCBkaXNjYXJkaW5nIGFsbCB1bmNvbW1pdHRlZCBjaGFuZ2VzIGluIHRoZSB3b3JraW5nIGRpcmVjdG9yeSBhbmQgaW5kZXguXG4gICAgICpcbiAgICAgKiBAcGFyYW0gd29ya3NwYWNlTmFtZSBUaGUgbmFtZSBvZiB0aGUgd29ya3NwYWNlLlxuICAgICAqIEBwYXJhbSByZXBvc2l0b3J5TmFtZSBUaGUgbmFtZSBvZiB0aGUgcmVwb3NpdG9yeS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGhhcmRSZXNldCh3b3Jrc3BhY2VOYW1lOiBzdHJpbmcsIHJlcG9zaXRvcnlOYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgR2l0RmFjYWRlLmhhcmRSZXNldCh3b3Jrc3BhY2VOYW1lLCByZXBvc2l0b3J5TmFtZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVhcHBsaWVzIGNvbW1pdHMgZnJvbSB0aGUgc3BlY2lmaWVkIGJyYW5jaCBvbnRvIHRoZSBjdXJyZW50IGJyYW5jaC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB3b3Jrc3BhY2VOYW1lIFRoZSBuYW1lIG9mIHRoZSB3b3Jrc3BhY2UuXG4gICAgICogQHBhcmFtIHJlcG9zaXRvcnlOYW1lIFRoZSBuYW1lIG9mIHRoZSByZXBvc2l0b3J5LlxuICAgICAqIEBwYXJhbSBicmFuY2ggVGhlIGJyYW5jaCB0byByZWJhc2UuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyByZWJhc2Uod29ya3NwYWNlTmFtZTogc3RyaW5nLCByZXBvc2l0b3J5TmFtZTogc3RyaW5nLCBicmFuY2g6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBHaXRGYWNhZGUucmViYXNlKHdvcmtzcGFjZU5hbWUsIHJlcG9zaXRvcnlOYW1lLCBicmFuY2gpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHJpZXZlcyB0aGUgY3VycmVudCBzdGF0dXMgb2YgdGhlIHJlcG9zaXRvcnkgKHN0YWdlZCwgdW5zdGFnZWQsIHVudHJhY2tlZCBmaWxlcykuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gd29ya3NwYWNlTmFtZSBUaGUgbmFtZSBvZiB0aGUgd29ya3NwYWNlLlxuICAgICAqIEBwYXJhbSByZXBvc2l0b3J5TmFtZSBUaGUgbmFtZSBvZiB0aGUgcmVwb3NpdG9yeS5cbiAgICAgKiBAcmV0dXJucyBBIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgcmVwb3NpdG9yeSBzdGF0dXMuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBzdGF0dXMod29ya3NwYWNlTmFtZTogc3RyaW5nLCByZXBvc2l0b3J5TmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEdpdEZhY2FkZS5zdGF0dXMod29ya3NwYWNlTmFtZSwgcmVwb3NpdG9yeU5hbWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHJpZXZlcyB0aGUgbmFtZSBvZiB0aGUgY3VycmVudGx5IGFjdGl2ZSBicmFuY2guXG4gICAgICpcbiAgICAgKiBAcGFyYW0gd29ya3NwYWNlTmFtZSBUaGUgbmFtZSBvZiB0aGUgd29ya3NwYWNlLlxuICAgICAqIEBwYXJhbSByZXBvc2l0b3J5TmFtZSBUaGUgbmFtZSBvZiB0aGUgcmVwb3NpdG9yeS5cbiAgICAgKiBAcmV0dXJucyBUaGUgbmFtZSBvZiB0aGUgY3VycmVudCBicmFuY2guXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRCcmFuY2god29ya3NwYWNlTmFtZTogc3RyaW5nLCByZXBvc2l0b3J5TmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEdpdEZhY2FkZS5nZXRCcmFuY2god29ya3NwYWNlTmFtZSwgcmVwb3NpdG9yeU5hbWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHJpZXZlcyBhIGxpc3Qgb2YgYWxsIGxvY2FsIGJyYW5jaGVzIGluIHRoZSByZXBvc2l0b3J5LlxuICAgICAqXG4gICAgICogQHBhcmFtIHdvcmtzcGFjZU5hbWUgVGhlIG5hbWUgb2YgdGhlIHdvcmtzcGFjZS5cbiAgICAgKiBAcGFyYW0gcmVwb3NpdG9yeU5hbWUgVGhlIG5hbWUgb2YgdGhlIHJlcG9zaXRvcnkuXG4gICAgICogQHJldHVybnMgQW4gYXJyYXkgb2Yge0BsaW5rIEdpdEJyYW5jaH0gb2JqZWN0cyByZXByZXNlbnRpbmcgbG9jYWwgYnJhbmNoZXMuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRMb2NhbEJyYW5jaGVzKHdvcmtzcGFjZU5hbWU6IHN0cmluZywgcmVwb3NpdG9yeU5hbWU6IHN0cmluZyk6IEdpdEJyYW5jaFtdIHtcbiAgICAgICAgcmV0dXJuIEdpdEZhY2FkZS5nZXRMb2NhbEJyYW5jaGVzKHdvcmtzcGFjZU5hbWUsIHJlcG9zaXRvcnlOYW1lKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXRyaWV2ZXMgYSBsaXN0IG9mIGFsbCByZW1vdGUgYnJhbmNoZXMgY29uZmlndXJlZCBmb3IgdGhlIHJlcG9zaXRvcnkuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gd29ya3NwYWNlTmFtZSBUaGUgbmFtZSBvZiB0aGUgd29ya3NwYWNlLlxuICAgICAqIEBwYXJhbSByZXBvc2l0b3J5TmFtZSBUaGUgbmFtZSBvZiB0aGUgcmVwb3NpdG9yeS5cbiAgICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiB7QGxpbmsgR2l0QnJhbmNofSBvYmplY3RzIHJlcHJlc2VudGluZyByZW1vdGUgYnJhbmNoZXMuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBnZXRSZW1vdGVCcmFuY2hlcyh3b3Jrc3BhY2VOYW1lOiBzdHJpbmcsIHJlcG9zaXRvcnlOYW1lOiBzdHJpbmcpOiBHaXRCcmFuY2hbXSB7XG4gICAgICAgIHJldHVybiBHaXRGYWNhZGUuZ2V0UmVtb3RlQnJhbmNoZXMod29ya3NwYWNlTmFtZSwgcmVwb3NpdG9yeU5hbWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHJpZXZlcyBhIGxpc3Qgb2YgYWxsIHVuc3RhZ2VkIGZpbGVzIChjaGFuZ2VzIG5vdCB5ZXQgYWRkZWQgdG8gdGhlIGluZGV4KS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB3b3Jrc3BhY2VOYW1lIFRoZSBuYW1lIG9mIHRoZSB3b3Jrc3BhY2UuXG4gICAgICogQHBhcmFtIHJlcG9zaXRvcnlOYW1lIFRoZSBuYW1lIG9mIHRoZSByZXBvc2l0b3J5LlxuICAgICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHtAbGluayBHaXRDaGFuZ2VkRmlsZX0gb2JqZWN0cy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldFVuc3RhZ2VkQ2hhbmdlcyh3b3Jrc3BhY2VOYW1lOiBzdHJpbmcsIHJlcG9zaXRvcnlOYW1lOiBzdHJpbmcpOiBHaXRDaGFuZ2VkRmlsZVtdIHtcbiAgICAgICAgcmV0dXJuIEdpdEZhY2FkZS5nZXRVbnN0YWdlZENoYW5nZXMod29ya3NwYWNlTmFtZSwgcmVwb3NpdG9yeU5hbWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHJpZXZlcyBhIGxpc3Qgb2YgYWxsIHN0YWdlZCBmaWxlcyAoY2hhbmdlcyBhZGRlZCB0byB0aGUgaW5kZXgsIHJlYWR5IGZvciBjb21taXQpLlxuICAgICAqXG4gICAgICogQHBhcmFtIHdvcmtzcGFjZU5hbWUgVGhlIG5hbWUgb2YgdGhlIHdvcmtzcGFjZS5cbiAgICAgKiBAcGFyYW0gcmVwb3NpdG9yeU5hbWUgVGhlIG5hbWUgb2YgdGhlIHJlcG9zaXRvcnkuXG4gICAgICogQHJldHVybnMgQW4gYXJyYXkgb2Yge0BsaW5rIEdpdENoYW5nZWRGaWxlfSBvYmplY3RzLlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0U3RhZ2VkQ2hhbmdlcyh3b3Jrc3BhY2VOYW1lOiBzdHJpbmcsIHJlcG9zaXRvcnlOYW1lOiBzdHJpbmcpOiBHaXRDaGFuZ2VkRmlsZVtdIHtcbiAgICAgICAgLy8gQ29ycmVjdGVkIHJldHVybiB0eXBlIHRvIGFycmF5IG9mIEdpdENoYW5nZWRGaWxlXG4gICAgICAgIHJldHVybiBHaXRGYWNhZGUuZ2V0U3RhZ2VkQ2hhbmdlcyh3b3Jrc3BhY2VOYW1lLCByZXBvc2l0b3J5TmFtZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0cmlldmVzIHRoZSBjb250ZW50IG9mIGEgZmlsZSBhdCBhIHNwZWNpZmljIHJldmlzaW9uIChjb21taXQsIGJyYW5jaCwgb3IgdGFnKS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB3b3Jrc3BhY2VOYW1lIFRoZSBuYW1lIG9mIHRoZSB3b3Jrc3BhY2UuXG4gICAgICogQHBhcmFtIHJlcG9zaXRvcnlOYW1lIFRoZSBuYW1lIG9mIHRoZSByZXBvc2l0b3J5LlxuICAgICAqIEBwYXJhbSBmaWxlUGF0aCBUaGUgcGF0aCB0byB0aGUgZmlsZS5cbiAgICAgKiBAcGFyYW0gcmV2U3RyIFRoZSByZXZpc2lvbiBzdHJpbmcgKGUuZy4sIGNvbW1pdCBoYXNoIG9yIGJyYW5jaCBuYW1lKS5cbiAgICAgKiBAcmV0dXJucyBUaGUgY29udGVudCBvZiB0aGUgZmlsZSBhcyBhIHN0cmluZy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldEZpbGVDb250ZW50KHdvcmtzcGFjZU5hbWU6IHN0cmluZywgcmVwb3NpdG9yeU5hbWU6IHN0cmluZywgZmlsZVBhdGg6IHN0cmluZywgcmV2U3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gR2l0RmFjYWRlLmdldEZpbGVDb250ZW50KHdvcmtzcGFjZU5hbWUsIHJlcG9zaXRvcnlOYW1lLCBmaWxlUGF0aCwgcmV2U3RyKTtcbiAgICB9XG59XG5cblxuLy8gQHRzLWlnbm9yZVxuaWYgKHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnKSB7XG5cdC8vIEB0cy1pZ25vcmVcblx0bW9kdWxlLmV4cG9ydHMgPSBDbGllbnQ7XG59Il0sCiAgIm1hcHBpbmdzIjogIkFBQUEsTUFBTSxZQUFZLEtBQUssS0FBSyxvREFBb0Q7QUFzVHpFLE1BQU0sT0FBTztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFZaEIsT0FBYyxlQUFlLE1BQWMsT0FBZSxlQUF1QixhQUFxQixnQkFBd0IsZUFBNkI7QUFDdkosY0FBVSxl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
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from "./client";
|
|
2
|
+
import { Client } from "./client";
|
|
3
|
+
export {
|
|
4
|
+
Client as client
|
|
5
|
+
};
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2dpdC9pbmRleC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiZXhwb3J0ICogZnJvbSBcIi4vY2xpZW50XCI7XG5leHBvcnQgeyBDbGllbnQgYXMgY2xpZW50IH0gZnJvbSBcIi4vY2xpZW50XCI7XG4iXSwKICAibWFwcGluZ3MiOiAiQUFBQSxjQUFjO0FBQ2QsU0FBbUIsY0FBYzsiLAogICJuYW1lcyI6IFtdCn0K
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
const HttpClientAsyncFacade = Java.type("org.eclipse.dirigible.components.api.http.HttpClientAsyncFacade");
|
|
2
|
+
const SpringBeanProvider = Java.type("org.eclipse.dirigible.components.spring.SpringBeanProvider");
|
|
3
|
+
const httpClient = SpringBeanProvider.getBean(HttpClientAsyncFacade.class);
|
|
4
|
+
class HttpAsyncClient {
|
|
5
|
+
/**
|
|
6
|
+
* Executes an asynchronous HTTP GET request.
|
|
7
|
+
* @param url The target URL.
|
|
8
|
+
* @param config The callback configuration object.
|
|
9
|
+
* @param options Request configuration options (e.g., headers, body, params).
|
|
10
|
+
*/
|
|
11
|
+
getAsync(url, config, options) {
|
|
12
|
+
const newUrl = buildUrl(url, options);
|
|
13
|
+
const callback = createHttpResponseCallback(
|
|
14
|
+
httpClient,
|
|
15
|
+
config.success,
|
|
16
|
+
config.error,
|
|
17
|
+
config.cancel
|
|
18
|
+
);
|
|
19
|
+
if (options) {
|
|
20
|
+
httpClient.getAsync(newUrl, JSON.stringify(options), callback);
|
|
21
|
+
} else {
|
|
22
|
+
httpClient.getAsync(newUrl, JSON.stringify({}), callback);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Executes an asynchronous HTTP POST request.
|
|
27
|
+
* @param url The target URL.
|
|
28
|
+
* @param config The callback configuration object.
|
|
29
|
+
* @param options Request configuration options.
|
|
30
|
+
*/
|
|
31
|
+
postAsync(url, config, options) {
|
|
32
|
+
const newUrl = buildUrl(url, options);
|
|
33
|
+
const callback = createHttpResponseCallback(
|
|
34
|
+
httpClient,
|
|
35
|
+
config.success,
|
|
36
|
+
config.error,
|
|
37
|
+
config.cancel
|
|
38
|
+
);
|
|
39
|
+
if (options) {
|
|
40
|
+
httpClient.postAsync(newUrl, JSON.stringify(options), callback);
|
|
41
|
+
} else {
|
|
42
|
+
httpClient.postAsync(newUrl, JSON.stringify({}), callback);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Executes an asynchronous HTTP PUT request.
|
|
47
|
+
* @param url The target URL.
|
|
48
|
+
* @param config The callback configuration object.
|
|
49
|
+
* @param options Request configuration options.
|
|
50
|
+
*/
|
|
51
|
+
putAsync(url, config, options) {
|
|
52
|
+
const newUrl = buildUrl(url, options);
|
|
53
|
+
const callback = createHttpResponseCallback(
|
|
54
|
+
httpClient,
|
|
55
|
+
config.success,
|
|
56
|
+
config.error,
|
|
57
|
+
config.cancel
|
|
58
|
+
);
|
|
59
|
+
if (options) {
|
|
60
|
+
httpClient.putAsync(newUrl, JSON.stringify(options), callback);
|
|
61
|
+
} else {
|
|
62
|
+
httpClient.putAsync(newUrl, JSON.stringify({}), callback);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Executes an asynchronous HTTP PATCH request.
|
|
67
|
+
* @param url The target URL.
|
|
68
|
+
* @param config The callback configuration object.
|
|
69
|
+
* @param options Request configuration options.
|
|
70
|
+
*/
|
|
71
|
+
patchAsync(url, config, options) {
|
|
72
|
+
const newUrl = buildUrl(url, options);
|
|
73
|
+
const callback = createHttpResponseCallback(
|
|
74
|
+
httpClient,
|
|
75
|
+
config.success,
|
|
76
|
+
config.error,
|
|
77
|
+
config.cancel
|
|
78
|
+
);
|
|
79
|
+
if (options) {
|
|
80
|
+
httpClient.patchAsync(newUrl, JSON.stringify(options), callback);
|
|
81
|
+
} else {
|
|
82
|
+
httpClient.patchAsync(newUrl, JSON.stringify({}), callback);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Executes an asynchronous HTTP DELETE request.
|
|
87
|
+
* @param url The target URL.
|
|
88
|
+
* @param config The callback configuration object.
|
|
89
|
+
* @param options Request configuration options.
|
|
90
|
+
*/
|
|
91
|
+
deleteAsync(url, config, options) {
|
|
92
|
+
const newUrl = buildUrl(url, options);
|
|
93
|
+
const callback = createHttpResponseCallback(
|
|
94
|
+
httpClient,
|
|
95
|
+
config.success,
|
|
96
|
+
config.error,
|
|
97
|
+
config.cancel
|
|
98
|
+
);
|
|
99
|
+
if (options) {
|
|
100
|
+
httpClient.deleteAsync(newUrl, JSON.stringify(options), callback);
|
|
101
|
+
} else {
|
|
102
|
+
httpClient.deleteAsync(newUrl, JSON.stringify({}), callback);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Executes an asynchronous HTTP HEAD request.
|
|
107
|
+
* @param url The target URL.
|
|
108
|
+
* @param config The callback configuration object.
|
|
109
|
+
* @param options Request configuration options.
|
|
110
|
+
*/
|
|
111
|
+
headAsync(url, config, options) {
|
|
112
|
+
const newUrl = buildUrl(url, options);
|
|
113
|
+
const callback = createHttpResponseCallback(
|
|
114
|
+
httpClient,
|
|
115
|
+
config.success,
|
|
116
|
+
config.error,
|
|
117
|
+
config.cancel
|
|
118
|
+
);
|
|
119
|
+
if (options) {
|
|
120
|
+
httpClient.headAsync(newUrl, JSON.stringify(options), callback);
|
|
121
|
+
} else {
|
|
122
|
+
httpClient.headAsync(newUrl, JSON.stringify({}), callback);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Executes an asynchronous HTTP TRACE request.
|
|
127
|
+
* @param url The target URL.
|
|
128
|
+
* @param config The callback configuration object.
|
|
129
|
+
* @param options Request configuration options.
|
|
130
|
+
*/
|
|
131
|
+
traceAsync(url, config, options) {
|
|
132
|
+
const newUrl = buildUrl(url, options);
|
|
133
|
+
const callback = createHttpResponseCallback(
|
|
134
|
+
httpClient,
|
|
135
|
+
config.success,
|
|
136
|
+
config.error,
|
|
137
|
+
config.cancel
|
|
138
|
+
);
|
|
139
|
+
if (options) {
|
|
140
|
+
httpClient.traceAsync(newUrl, JSON.stringify(options), callback);
|
|
141
|
+
} else {
|
|
142
|
+
httpClient.traceAsync(newUrl, JSON.stringify({}), callback);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Initiates the execution of queued asynchronous requests (depending on the underlying Java client's threading model).
|
|
147
|
+
*/
|
|
148
|
+
execute() {
|
|
149
|
+
httpClient.execute();
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
function getInstance() {
|
|
153
|
+
return new HttpAsyncClient();
|
|
154
|
+
}
|
|
155
|
+
;
|
|
156
|
+
function createHttpResponseCallback(httpClient2, successCallback, errorCallback, cancelCallback) {
|
|
157
|
+
return httpClient2.createCallback(
|
|
158
|
+
createSuccessCallback(successCallback),
|
|
159
|
+
createErrorCallback(errorCallback),
|
|
160
|
+
createCancelCallback(cancelCallback)
|
|
161
|
+
);
|
|
162
|
+
}
|
|
163
|
+
function createSuccessCallback(callback) {
|
|
164
|
+
return "(function(httpResponse, isBinary, context) {\nvar response = {};\nresponse.statusCode = httpResponse.getStatusLine().getStatusCode();\nresponse.statusMessage = httpResponse.getStatusLine().getReasonPhrase();\nresponse.protocol = httpResponse.getProtocolVersion();\nresponse.binary = isBinary;\nvar headers = httpResponse.getAllHeaders();\nresponse.headers = [];\nfor (var i = 0; i < headers.length; i ++) {\n response.headers.push({\n name: headers[i].getName(),\n value: headers[i].getValue()\n });\n}\nvar entity = httpResponse.getEntity();\nif (entity) {\n var inputStream = entity.getContent();\n if (isBinary) {\n // Uses Java IOUtils to read binary data\n response.data = org.apache.commons.io.IOUtils.toByteArray(inputStream);\n } else {\n // Uses Java IOUtils to read text data\n response.text = org.apache.commons.io.IOUtils.toString(inputStream);\n }\n}\n(" + callback + ")(response, JSON.parse(context));\n})(__context.get('response'), __context.get('httpClientRequestOptions').isBinary(), __context.get('httpClientRequestOptions').getContext());\n";
|
|
165
|
+
}
|
|
166
|
+
function createErrorCallback(callback) {
|
|
167
|
+
if (callback) {
|
|
168
|
+
return "(" + callback + ")(__context.get('exception'))";
|
|
169
|
+
}
|
|
170
|
+
return void 0;
|
|
171
|
+
}
|
|
172
|
+
function createCancelCallback(callback) {
|
|
173
|
+
if (callback) {
|
|
174
|
+
return "(" + callback + ")()";
|
|
175
|
+
}
|
|
176
|
+
return void 0;
|
|
177
|
+
}
|
|
178
|
+
function buildUrl(url, options) {
|
|
179
|
+
if (options === void 0 || options === null || options.params === void 0 || options.params === null || options.params.length === 0) {
|
|
180
|
+
return url;
|
|
181
|
+
}
|
|
182
|
+
let newUrl = url;
|
|
183
|
+
for (let i = 0; i < options.params.length; i++) {
|
|
184
|
+
const param = options.params[i];
|
|
185
|
+
if (i === 0) {
|
|
186
|
+
if (newUrl.includes("?")) {
|
|
187
|
+
newUrl += "&";
|
|
188
|
+
} else {
|
|
189
|
+
newUrl += "?";
|
|
190
|
+
}
|
|
191
|
+
newUrl += param.name + "=" + param.value;
|
|
192
|
+
} else {
|
|
193
|
+
newUrl += "&" + param.name + "=" + param.value;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
return newUrl;
|
|
197
|
+
}
|
|
198
|
+
if (typeof module !== "undefined") {
|
|
199
|
+
module.exports = { HttpAsyncClient, getInstance };
|
|
200
|
+
}
|
|
201
|
+
export {
|
|
202
|
+
HttpAsyncClient,
|
|
203
|
+
getInstance
|
|
204
|
+
};
|
|
205
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2h0dHAvY2xpZW50LWFzeW5jLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIFByb3ZpZGVzIGEgSmF2YVNjcmlwdC9UeXBlU2NyaXB0IHdyYXBwZXIgKEZhY2FkZSkgZm9yIG1ha2luZyBhc3luY2hyb25vdXMgSFRUUCByZXF1ZXN0cy5cbiAqXG4gKi9cblxuLy8gLS0tIFNoYXJlZCBJbnRlcmZhY2VzIChmb3IgZG9jdW1lbnRhdGlvbiBjbGFyaXR5KSAtLS1cblxuLyoqIERlZmluZXMgYSBzaW5nbGUgSFRUUCBoZWFkZXIsIHVzZWQgZm9yIGJvdGggcmVxdWVzdCBhbmQgcmVzcG9uc2UuICovXG5leHBvcnQgaW50ZXJmYWNlIEh0dHBDbGllbnRIZWFkZXIge1xuICAgIC8qKiBUaGUgbmFtZSBvZiB0aGUgaGVhZGVyIChlLmcuLCAnQ29udGVudC1UeXBlJywgJ0F1dGhvcml6YXRpb24nKS4gKi9cbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgLyoqIFRoZSB2YWx1ZSBvZiB0aGUgaGVhZGVyLiAqL1xuICAgIHZhbHVlOiBzdHJpbmc7XG59XG5cbi8qKiBEZWZpbmVzIGEgcXVlcnkgcGFyYW1ldGVyIHRoYXQgd2lsbCBiZSBhcHBlbmRlZCB0byB0aGUgVVJMLiAqL1xuZXhwb3J0IGludGVyZmFjZSBIdHRwQ2xpZW50UGFyYW0ge1xuICAgIC8qKiBUaGUgbmFtZSBvZiB0aGUgVVJMIHF1ZXJ5IHBhcmFtZXRlciAoZS5nLiwgJ2lkJykuICovXG4gICAgbmFtZTogc3RyaW5nO1xuICAgIC8qKiBUaGUgdmFsdWUgb2YgdGhlIFVSTCBxdWVyeSBwYXJhbWV0ZXIuICovXG4gICAgdmFsdWU6IHN0cmluZztcbn1cblxuLyoqIERlZmluZXMgYSBmaWxlIHRvIGJlIGluY2x1ZGVkIGluIGEgbXVsdGktcGFydCBmb3JtIGRhdGEgcmVxdWVzdC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cENsaWVudEZpbGUge1xuICAgIC8qKiBUaGUgZm9ybSBmaWVsZCBuYW1lIGZvciB0aGUgZmlsZS4gKi9cbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgLyoqIFRoZSBmaWxlIHBhdGggb3IgY29udGVudC4gKi9cbiAgICB2YWx1ZTogc3RyaW5nO1xufVxuXG4vKiogQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBhbiBIVFRQIHJlcXVlc3QsIG1pcnJvcmluZyB0aGUgY2FwYWJpbGl0aWVzIG9mIHRoZSB1bmRlcmx5aW5nIEphdmEgY2xpZW50LiAqL1xuZXhwb3J0IGludGVyZmFjZSBIdHRwQ2xpZW50UmVxdWVzdE9wdGlvbnMge1xuICAgIGV4cGVjdENvbnRpbnVlRW5hYmxlZD86IGJvb2xlYW47XG4gICAgcHJveHlIb3N0Pzogc3RyaW5nO1xuICAgIHByb3h5UG9ydD86IG51bWJlcjtcbiAgICBjb29raWVTcGVjPzogc3RyaW5nO1xuICAgIHJlZGlyZWN0c0VuYWJsZWQ/OiBib29sZWFuO1xuICAgIHJlbGF0aXZlUmVkaXJlY3RzQWxsb3dlZD86IGJvb2xlYW47XG4gICAgY2lyY3VsYXJSZWRpcmVjdHNBbGxvd2VkPzogYm9vbGVhbjtcbiAgICBtYXhSZWRpcmVjdHM/OiBudW1iZXI7XG4gICAgYXV0aGVudGljYXRpb25FbmFibGVkPzogYm9vbGVhbjtcbiAgICB0YXJnZXRQcmVmZXJyZWRBdXRoU2NoZW1lcz86IHN0cmluZ1tdO1xuICAgIHByb3h5UHJlZmVycmVkQXV0aFNjaGVtZXM/OiBzdHJpbmdbXTtcbiAgICBjb25uZWN0aW9uUmVxdWVzdFRpbWVvdXQ/OiBudW1iZXI7XG4gICAgY29ubmVjdFRpbWVvdXQ/OiBudW1iZXI7XG4gICAgc29ja2V0VGltZW91dD86IG51bWJlcjtcbiAgICBjb250ZW50Q29tcHJlc3Npb25FbmFibGVkPzogYm9vbGVhbjtcbiAgICBzc2xUcnVzdEFsbEVuYWJsZWQ/OiBib29sZWFuO1xuICAgIGRhdGE/OiBhbnlbXTtcbiAgICB0ZXh0Pzogc3RyaW5nO1xuICAgIGZpbGVzPzogSHR0cENsaWVudEZpbGVbXTtcbiAgICBjaGFyYWN0ZXJFbmNvZGluZz86IHN0cmluZztcbiAgICBjaGFyYWN0ZXJFbmNvZGluZ0VuYWJsZWQ/OiBib29sZWFuO1xuICAgIGNvbnRlbnRUeXBlPzogc3RyaW5nO1xuICAgIGhlYWRlcnM/OiBIdHRwQ2xpZW50SGVhZGVyW107XG4gICAgcGFyYW1zPzogSHR0cENsaWVudFBhcmFtW107XG4gICAgYmluYXJ5PzogYm9vbGVhbjtcbiAgICBjb250ZXh0PzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbn1cblxuLyoqIFRoZSBzdHJ1Y3R1cmUgb2YgdGhlIHJlc3BvbnNlIHJldHVybmVkIGJ5IHRoZSBIdHRwQ2xpZW50IG1ldGhvZHMuICovXG5leHBvcnQgaW50ZXJmYWNlIEh0dHBDbGllbnRSZXNwb25zZSB7XG4gICAgLyoqIFRoZSBIVFRQIHN0YXR1cyBjb2RlIChlLmcuLCAyMDAsIDQwNCwgNTAwKS4gKi9cbiAgICBzdGF0dXNDb2RlOiBudW1iZXI7XG4gICAgLyoqIFRoZSBzdGF0dXMgbWVzc2FnZSByZXR1cm5lZCBieSB0aGUgc2VydmVyIChlLmcuLCAnT0snLCAnTm90IEZvdW5kJykuICovXG4gICAgc3RhdHVzTWVzc2FnZTogc3RyaW5nO1xuICAgIC8qKiBSZXNwb25zZSBib2R5IGNvbnRlbnQgYXMgYW4gYXJyYXkgb2YgYnl0ZXMgKGlmIHJlcXVlc3RlZCBhcyBiaW5hcnkpLiAqL1xuICAgIGRhdGE6IGFueVtdO1xuICAgIC8qKiBSZXNwb25zZSBib2R5IGNvbnRlbnQgYXMgYSBkZWNvZGVkIHN0cmluZy4gKi9cbiAgICB0ZXh0OiBzdHJpbmc7XG4gICAgLyoqIFRoZSBwcm90b2NvbCB1c2VkIChlLmcuLCAnSFRUUC8xLjEnKS4gKi9cbiAgICBwcm90b2NvbDogc3RyaW5nO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIHJlc3BvbnNlIHdhcyBwcm9jZXNzZWQgYXMgYmluYXJ5IGRhdGEuICovXG4gICAgYmluYXJ5OiBib29sZWFuO1xuICAgIC8qKiBBcnJheSBvZiBhbGwgaGVhZGVycyByZWNlaXZlZCBpbiB0aGUgcmVzcG9uc2UuICovXG4gICAgaGVhZGVyczogSHR0cENsaWVudEhlYWRlcltdXG59XG5cbi8vIC0tLSBBc3luY2hyb25vdXMgQ2xpZW50IEludGVyZmFjZXMgLS0tXG5cbi8qKlxuICogRGVmaW5lcyB0aGUgY2FsbGJhY2sgc3RydWN0dXJlIGZvciBhc3luY2hyb25vdXMgcmVxdWVzdHMuXG4gKiBOb3RlOiBDYWxsYmFja3MgYXJlIHByb3ZpZGVkIGFzIHN0cmluZ3MgY29udGFpbmluZyBleGVjdXRhYmxlIEphdmFTY3JpcHQgY29kZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIdHRwQ2xpZW50QXN5bmNDb25maWcge1xuICAgIC8qKlxuICAgICAqIE1hbmRhdG9yeSBzdWNjZXNzIGNhbGxiYWNrIGFzIGEgKipzdHJpbmcgb2YgSmF2YVNjcmlwdCBjb2RlKiouXG4gICAgICogSXQgd2lsbCBiZSBleGVjdXRlZCB3aXRoIHNpZ25hdHVyZTogYChyZXNwb25zZTogSHR0cENsaWVudFJlc3BvbnNlLCBjb250ZXh0OiB7IFtrZXk6IHN0cmluZ106IGFueSB9KSA9PiB2b2lkYFxuICAgICAqL1xuICAgIHN1Y2Nlc3M6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbCBlcnJvciBjYWxsYmFjayBhcyBhICoqc3RyaW5nIG9mIEphdmFTY3JpcHQgY29kZSoqLlxuICAgICAqIEl0IHdpbGwgYmUgZXhlY3V0ZWQgd2l0aCBzaWduYXR1cmU6IGAoZXhjZXB0aW9uOiBhbnkpID0+IHZvaWRgXG4gICAgICovXG4gICAgZXJyb3I/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWwgY2FuY2VsIGNhbGxiYWNrIGFzIGEgKipzdHJpbmcgb2YgSmF2YVNjcmlwdCBjb2RlKiouXG4gICAgICogSXQgd2lsbCBiZSBleGVjdXRlZCB3aXRoIHNpZ25hdHVyZTogYCgpID0+IHZvaWRgXG4gICAgICovXG4gICAgY2FuY2VsPzogc3RyaW5nO1xufVxuXG5cbi8vIC0tLSBKYXZhIFR5cGUgSW1wb3J0cyAoQ3J1Y2lhbCBmb3IgSlZNIGludGVncmF0aW9uKSAtLS1cblxuLyoqIEltcG9ydHMgdGhlIG5hdGl2ZSBKYXZhIGNsYXNzIHJlc3BvbnNpYmxlIGZvciBhc3luY2hyb25vdXMgSFRUUCBleGVjdXRpb24uICovXG5jb25zdCBIdHRwQ2xpZW50QXN5bmNGYWNhZGUgPSBKYXZhLnR5cGUoXCJvcmcuZWNsaXBzZS5kaXJpZ2libGUuY29tcG9uZW50cy5hcGkuaHR0cC5IdHRwQ2xpZW50QXN5bmNGYWNhZGVcIik7XG5cbi8qKiBJbXBvcnRzIHRoZSBuYXRpdmUgSmF2YSBjbGFzcyBmb3IgcmV0cmlldmluZyBTcHJpbmctbWFuYWdlZCBiZWFucy4gKi9cbmNvbnN0IFNwcmluZ0JlYW5Qcm92aWRlciA9IEphdmEudHlwZShcIm9yZy5lY2xpcHNlLmRpcmlnaWJsZS5jb21wb25lbnRzLnNwcmluZy5TcHJpbmdCZWFuUHJvdmlkZXJcIik7XG5cbi8qKiBSZXRyaWV2ZXMgdGhlIHNpbmdsZXRvbiBpbnN0YW5jZSBvZiB0aGUgYXN5bmNocm9ub3VzIEhUVFAgY2xpZW50IGZyb20gdGhlIFNwcmluZyBjb250ZXh0LiAqL1xuY29uc3QgaHR0cENsaWVudCA9IFNwcmluZ0JlYW5Qcm92aWRlci5nZXRCZWFuKEh0dHBDbGllbnRBc3luY0ZhY2FkZS5jbGFzcyk7XG5cblxuLyoqXG4gKiBUaGUgYXN5bmNocm9ub3VzIEhUVFAgY2xpZW50IGNsYXNzLiBBbGwgcmVxdWVzdCBtZXRob2RzIHJldHVybiBpbW1lZGlhdGVseVxuICogYW5kIGV4ZWN1dGUgY2FsbGJhY2tzIHVwb24gY29tcGxldGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIEh0dHBBc3luY0NsaWVudCB7XG5cbiAgICAvKipcbiAgICAgKiBFeGVjdXRlcyBhbiBhc3luY2hyb25vdXMgSFRUUCBHRVQgcmVxdWVzdC5cbiAgICAgKiBAcGFyYW0gdXJsIFRoZSB0YXJnZXQgVVJMLlxuICAgICAqIEBwYXJhbSBjb25maWcgVGhlIGNhbGxiYWNrIGNvbmZpZ3VyYXRpb24gb2JqZWN0LlxuICAgICAqIEBwYXJhbSBvcHRpb25zIFJlcXVlc3QgY29uZmlndXJhdGlvbiBvcHRpb25zIChlLmcuLCBoZWFkZXJzLCBib2R5LCBwYXJhbXMpLlxuICAgICAqL1xuXHRnZXRBc3luYyh1cmw6IHN0cmluZywgY29uZmlnOiBIdHRwQ2xpZW50QXN5bmNDb25maWcsIG9wdGlvbnM/OiBIdHRwQ2xpZW50UmVxdWVzdE9wdGlvbnMpOiB2b2lkIHtcblx0XHRjb25zdCBuZXdVcmwgPSBidWlsZFVybCh1cmwsIG9wdGlvbnMpO1xuXHRcdGNvbnN0IGNhbGxiYWNrID0gY3JlYXRlSHR0cFJlc3BvbnNlQ2FsbGJhY2soXG5cdFx0XHRodHRwQ2xpZW50LFxuXHRcdFx0Y29uZmlnLnN1Y2Nlc3MsXG5cdFx0XHRjb25maWcuZXJyb3IsXG5cdFx0XHRjb25maWcuY2FuY2VsXG5cdFx0KTtcblx0XHRpZiAob3B0aW9ucykge1xuXHRcdFx0aHR0cENsaWVudC5nZXRBc3luYyhuZXdVcmwsIEpTT04uc3RyaW5naWZ5KG9wdGlvbnMpLCBjYWxsYmFjayk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGh0dHBDbGllbnQuZ2V0QXN5bmMobmV3VXJsLCBKU09OLnN0cmluZ2lmeSh7fSksIGNhbGxiYWNrKTtcblx0XHR9XG5cdH07XG5cbiAgICAvKipcbiAgICAgKiBFeGVjdXRlcyBhbiBhc3luY2hyb25vdXMgSFRUUCBQT1NUIHJlcXVlc3QuXG4gICAgICogQHBhcmFtIHVybCBUaGUgdGFyZ2V0IFVSTC5cbiAgICAgKiBAcGFyYW0gY29uZmlnIFRoZSBjYWxsYmFjayBjb25maWd1cmF0aW9uIG9iamVjdC5cbiAgICAgKiBAcGFyYW0gb3B0aW9ucyBSZXF1ZXN0IGNvbmZpZ3VyYXRpb24gb3B0aW9ucy5cbiAgICAgKi9cblx0cG9zdEFzeW5jKHVybDogc3RyaW5nLCBjb25maWc6IEh0dHBDbGllbnRBc3luY0NvbmZpZywgb3B0aW9ucz86IEh0dHBDbGllbnRSZXF1ZXN0T3B0aW9ucyk6IHZvaWQge1xuXHRcdGNvbnN0IG5ld1VybCA9IGJ1aWxkVXJsKHVybCwgb3B0aW9ucyk7XG5cdFx0Y29uc3QgY2FsbGJhY2sgPSBjcmVhdGVIdHRwUmVzcG9uc2VDYWxsYmFjayhcblx0XHRcdGh0dHBDbGllbnQsXG5cdFx0XHRjb25maWcuc3VjY2Vzcyxcblx0XHRcdGNvbmZpZy5lcnJvcixcblx0XHRcdGNvbmZpZy5jYW5jZWxcblx0XHQpO1xuXHRcdGlmIChvcHRpb25zKSB7XG5cdFx0XHRodHRwQ2xpZW50LnBvc3RBc3luYyhuZXdVcmwsIEpTT04uc3RyaW5naWZ5KG9wdGlvbnMpLCBjYWxsYmFjayk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGh0dHBDbGllbnQucG9zdEFzeW5jKG5ld1VybCwgSlNPTi5zdHJpbmdpZnkoe30pLCBjYWxsYmFjayk7XG5cdFx0fVxuXHR9O1xuXG4gICAgLyoqXG4gICAgICogRXhlY3V0ZXMgYW4gYXN5bmNocm9ub3VzIEhUVFAgUFVUIHJlcXVlc3QuXG4gICAgICogQHBhcmFtIHVybCBUaGUgdGFyZ2V0IFVSTC5cbiAgICAgKiBAcGFyYW0gY29uZmlnIFRoZSBjYWxsYmFjayBjb25maWd1cmF0aW9uIG9iamVjdC5cbiAgICAgKiBAcGFyYW0gb3B0aW9ucyBSZXF1ZXN0IGNvbmZpZ3VyYXRpb24gb3B0aW9ucy5cbiAgICAgKi9cblx0cHV0QXN5bmModXJsOiBzdHJpbmcsIGNvbmZpZzogSHR0cENsaWVudEFzeW5jQ29uZmlnLCBvcHRpb25zPzogSHR0cENsaWVudFJlcXVlc3RPcHRpb25zKTogdm9pZCB7XG5cdFx0Y29uc3QgbmV3VXJsID0gYnVpbGRVcmwodXJsLCBvcHRpb25zKTtcblx0XHRjb25zdCBjYWxsYmFjayA9IGNyZWF0ZUh0dHBSZXNwb25zZUNhbGxiYWNrKFxuXHRcdFx0aHR0cENsaWVudCxcblx0XHRcdGNvbmZpZy5zdWNjZXNzLFxuXHRcdFx0Y29uZmlnLmVycm9yLFxuXHRcdFx0Y29uZmlnLmNhbmNlbFxuXHRcdCk7XG5cdFx0aWYgKG9wdGlvbnMpIHtcblx0XHRcdGh0dHBDbGllbnQucHV0QXN5bmMobmV3VXJsLCBKU09OLnN0cmluZ2lmeShvcHRpb25zKSwgY2FsbGJhY2spO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRodHRwQ2xpZW50LnB1dEFzeW5jKG5ld1VybCwgSlNPTi5zdHJpbmdpZnkoe30pLCBjYWxsYmFjayk7XG5cdFx0fVxuXHR9O1xuXG4gICAgLyoqXG4gICAgICogRXhlY3V0ZXMgYW4gYXN5bmNocm9ub3VzIEhUVFAgUEFUQ0ggcmVxdWVzdC5cbiAgICAgKiBAcGFyYW0gdXJsIFRoZSB0YXJnZXQgVVJMLlxuICAgICAqIEBwYXJhbSBjb25maWcgVGhlIGNhbGxiYWNrIGNvbmZpZ3VyYXRpb24gb2JqZWN0LlxuICAgICAqIEBwYXJhbSBvcHRpb25zIFJlcXVlc3QgY29uZmlndXJhdGlvbiBvcHRpb25zLlxuICAgICAqL1xuXHRwYXRjaEFzeW5jKHVybDogc3RyaW5nLCBjb25maWc6IEh0dHBDbGllbnRBc3luY0NvbmZpZywgb3B0aW9ucz86IEh0dHBDbGllbnRSZXF1ZXN0T3B0aW9ucyk6IHZvaWQge1xuXHRcdGNvbnN0IG5ld1VybCA9IGJ1aWxkVXJsKHVybCwgb3B0aW9ucyk7XG5cdFx0Y29uc3QgY2FsbGJhY2sgPSBjcmVhdGVIdHRwUmVzcG9uc2VDYWxsYmFjayhcblx0XHRcdGh0dHBDbGllbnQsXG5cdFx0XHRjb25maWcuc3VjY2Vzcyxcblx0XHRcdGNvbmZpZy5lcnJvcixcblx0XHRcdGNvbmZpZy5jYW5jZWxcblx0XHQpO1xuXHRcdGlmIChvcHRpb25zKSB7XG5cdFx0XHRodHRwQ2xpZW50LnBhdGNoQXN5bmMobmV3VXJsLCBKU09OLnN0cmluZ2lmeShvcHRpb25zKSwgY2FsbGJhY2spO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRodHRwQ2xpZW50LnBhdGNoQXN5bmMobmV3VXJsLCBKU09OLnN0cmluZ2lmeSh7fSksIGNhbGxiYWNrKTtcblx0XHR9XG5cdH07XG5cbiAgICAvKipcbiAgICAgKiBFeGVjdXRlcyBhbiBhc3luY2hyb25vdXMgSFRUUCBERUxFVEUgcmVxdWVzdC5cbiAgICAgKiBAcGFyYW0gdXJsIFRoZSB0YXJnZXQgVVJMLlxuICAgICAqIEBwYXJhbSBjb25maWcgVGhlIGNhbGxiYWNrIGNvbmZpZ3VyYXRpb24gb2JqZWN0LlxuICAgICAqIEBwYXJhbSBvcHRpb25zIFJlcXVlc3QgY29uZmlndXJhdGlvbiBvcHRpb25zLlxuICAgICAqL1xuXHRkZWxldGVBc3luYyh1cmw6IHN0cmluZywgY29uZmlnOiBIdHRwQ2xpZW50QXN5bmNDb25maWcsIG9wdGlvbnM/OiBIdHRwQ2xpZW50UmVxdWVzdE9wdGlvbnMpOiB2b2lkIHtcblx0XHRjb25zdCBuZXdVcmwgPSBidWlsZFVybCh1cmwsIG9wdGlvbnMpO1xuXHRcdGNvbnN0IGNhbGxiYWNrID0gY3JlYXRlSHR0cFJlc3BvbnNlQ2FsbGJhY2soXG5cdFx0XHRodHRwQ2xpZW50LFxuXHRcdFx0Y29uZmlnLnN1Y2Nlc3MsXG5cdFx0XHRjb25maWcuZXJyb3IsXG5cdFx0XHRjb25maWcuY2FuY2VsXG5cdFx0KTtcblx0XHRpZiAob3B0aW9ucykge1xuXHRcdFx0aHR0cENsaWVudC5kZWxldGVBc3luYyhuZXdVcmwsIEpTT04uc3RyaW5naWZ5KG9wdGlvbnMpLCBjYWxsYmFjayk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGh0dHBDbGllbnQuZGVsZXRlQXN5bmMobmV3VXJsLCBKU09OLnN0cmluZ2lmeSh7fSksIGNhbGxiYWNrKTtcblx0XHR9XG5cdH07XG5cbiAgICAvKipcbiAgICAgKiBFeGVjdXRlcyBhbiBhc3luY2hyb25vdXMgSFRUUCBIRUFEIHJlcXVlc3QuXG4gICAgICogQHBhcmFtIHVybCBUaGUgdGFyZ2V0IFVSTC5cbiAgICAgKiBAcGFyYW0gY29uZmlnIFRoZSBjYWxsYmFjayBjb25maWd1cmF0aW9uIG9iamVjdC5cbiAgICAgKiBAcGFyYW0gb3B0aW9ucyBSZXF1ZXN0IGNvbmZpZ3VyYXRpb24gb3B0aW9ucy5cbiAgICAgKi9cblx0aGVhZEFzeW5jKHVybDogc3RyaW5nLCBjb25maWc6IEh0dHBDbGllbnRBc3luY0NvbmZpZywgb3B0aW9ucz86IEh0dHBDbGllbnRSZXF1ZXN0T3B0aW9ucyk6IHZvaWQge1xuXHRcdGNvbnN0IG5ld1VybCA9IGJ1aWxkVXJsKHVybCwgb3B0aW9ucyk7XG5cdFx0Y29uc3QgY2FsbGJhY2sgPSBjcmVhdGVIdHRwUmVzcG9uc2VDYWxsYmFjayhcblx0XHRcdGh0dHBDbGllbnQsXG5cdFx0XHRjb25maWcuc3VjY2Vzcyxcblx0XHRcdGNvbmZpZy5lcnJvcixcblx0XHRcdGNvbmZpZy5jYW5jZWxcblx0XHQpO1xuXHRcdGlmIChvcHRpb25zKSB7XG5cdFx0XHRodHRwQ2xpZW50LmhlYWRBc3luYyhuZXdVcmwsIEpTT04uc3RyaW5naWZ5KG9wdGlvbnMpLCBjYWxsYmFjayk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGh0dHBDbGllbnQuaGVhZEFzeW5jKG5ld1VybCwgSlNPTi5zdHJpbmdpZnkoe30pLCBjYWxsYmFjayk7XG5cdFx0fVxuXHR9O1xuXG4gICAgLyoqXG4gICAgICogRXhlY3V0ZXMgYW4gYXN5bmNocm9ub3VzIEhUVFAgVFJBQ0UgcmVxdWVzdC5cbiAgICAgKiBAcGFyYW0gdXJsIFRoZSB0YXJnZXQgVVJMLlxuICAgICAqIEBwYXJhbSBjb25maWcgVGhlIGNhbGxiYWNrIGNvbmZpZ3VyYXRpb24gb2JqZWN0LlxuICAgICAqIEBwYXJhbSBvcHRpb25zIFJlcXVlc3QgY29uZmlndXJhdGlvbiBvcHRpb25zLlxuICAgICAqL1xuXHR0cmFjZUFzeW5jKHVybDogc3RyaW5nLCBjb25maWc6IEh0dHBDbGllbnRBc3luY0NvbmZpZywgb3B0aW9ucz86IEh0dHBDbGllbnRSZXF1ZXN0T3B0aW9ucyk6IHZvaWQge1xuXHRcdGNvbnN0IG5ld1VybCA9IGJ1aWxkVXJsKHVybCwgb3B0aW9ucyk7XG5cdFx0Y29uc3QgY2FsbGJhY2sgPSBjcmVhdGVIdHRwUmVzcG9uc2VDYWxsYmFjayhcblx0XHRcdGh0dHBDbGllbnQsXG5cdFx0XHRjb25maWcuc3VjY2Vzcyxcblx0XHRcdGNvbmZpZy5lcnJvcixcblx0XHRcdGNvbmZpZy5jYW5jZWxcblx0XHQpO1xuXHRcdGlmIChvcHRpb25zKSB7XG5cdFx0XHRodHRwQ2xpZW50LnRyYWNlQXN5bmMobmV3VXJsLCBKU09OLnN0cmluZ2lmeShvcHRpb25zKSwgY2FsbGJhY2spO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRodHRwQ2xpZW50LnRyYWNlQXN5bmMobmV3VXJsLCBKU09OLnN0cmluZ2lmeSh7fSksIGNhbGxiYWNrKTtcblx0XHR9XG5cdH07XG5cbiAgICAvKipcbiAgICAgKiBJbml0aWF0ZXMgdGhlIGV4ZWN1dGlvbiBvZiBxdWV1ZWQgYXN5bmNocm9ub3VzIHJlcXVlc3RzIChkZXBlbmRpbmcgb24gdGhlIHVuZGVybHlpbmcgSmF2YSBjbGllbnQncyB0aHJlYWRpbmcgbW9kZWwpLlxuICAgICAqL1xuXHRleGVjdXRlKCk6IHZvaWQge1xuXHRcdGh0dHBDbGllbnQuZXhlY3V0ZSgpO1xuXHR9O1xufVxuXG4vKipcbiAqIEZhY3RvcnkgZnVuY3Rpb24gdG8gcmV0cmlldmUgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIGFzeW5jaHJvbm91cyBjbGllbnQuXG4gKiBAcmV0dXJucyBBIG5ldyBpbnN0YW5jZSBvZiBIdHRwQXN5bmNDbGllbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnN0YW5jZSgpOiBIdHRwQXN5bmNDbGllbnQge1xuXHRyZXR1cm4gbmV3IEh0dHBBc3luY0NsaWVudCgpO1xufTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgbmF0aXZlIEphdmEgY2FsbGJhY2sgb2JqZWN0IHRoYXQgd3JhcHMgdGhlIEphdmFTY3JpcHQgc3VjY2VzcywgZXJyb3IsIGFuZCBjYW5jZWwgY2FsbGJhY2tzLlxuICogVGhpcyBmdW5jdGlvbiB1c2VzIHRoZSB1bmRlcmx5aW5nIEphdmEgSFRUUCBjbGllbnQgaW5zdGFuY2UgdG8gZ2VuZXJhdGUgdGhlIGZpbmFsIGNhbGxiYWNrIG9iamVjdC5cbiAqIEBwYXJhbSBodHRwQ2xpZW50IFRoZSBKYXZhIEh0dHBDbGllbnRBc3luY0ZhY2FkZSBpbnN0YW5jZS5cbiAqIEBwYXJhbSBzdWNjZXNzQ2FsbGJhY2sgSlMgY29kZSBzdHJpbmcgZm9yIHN1Y2Nlc3MuXG4gKiBAcGFyYW0gZXJyb3JDYWxsYmFjayBKUyBjb2RlIHN0cmluZyBmb3IgZXJyb3IuXG4gKiBAcGFyYW0gY2FuY2VsQ2FsbGJhY2sgSlMgY29kZSBzdHJpbmcgZm9yIGNhbmNlbC5cbiAqIEByZXR1cm5zIEEgSmF2YSBjYWxsYmFjayBvYmplY3QuXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUh0dHBSZXNwb25zZUNhbGxiYWNrKGh0dHBDbGllbnQ6IGFueSwgc3VjY2Vzc0NhbGxiYWNrOiBzdHJpbmcsIGVycm9yQ2FsbGJhY2s/OiBzdHJpbmcsIGNhbmNlbENhbGxiYWNrPzogc3RyaW5nKTogYW55IHtcblx0cmV0dXJuIGh0dHBDbGllbnQuY3JlYXRlQ2FsbGJhY2soXG5cdFx0Y3JlYXRlU3VjY2Vzc0NhbGxiYWNrKHN1Y2Nlc3NDYWxsYmFjayksXG5cdFx0Y3JlYXRlRXJyb3JDYWxsYmFjayhlcnJvckNhbGxiYWNrKSxcblx0XHRjcmVhdGVDYW5jZWxDYWxsYmFjayhjYW5jZWxDYWxsYmFjaylcblx0KTtcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZXMgdGhlIHJhdyBKYXZhU2NyaXB0IHN0cmluZyB0aGF0IHdpbGwgYmUgZXhlY3V0ZWQgaW4gdGhlIEpWTSBlbnZpcm9ubWVudCB1cG9uIHN1Y2Nlc3NmdWwgcmVxdWVzdCBjb21wbGV0aW9uLlxuICogVGhpcyBzdHJpbmcgaGFuZGxlcyBwYXJzaW5nIHRoZSBKYXZhIEhUVFAgcmVzcG9uc2Ugb2JqZWN0IGFuZCBleGVjdXRpbmcgdGhlIHVzZXIncyBkZWZpbmVkIGNhbGxiYWNrIGZ1bmN0aW9uLlxuICogQHBhcmFtIGNhbGxiYWNrIFRoZSB1c2VyLXByb3ZpZGVkIHN1Y2Nlc3MgY2FsbGJhY2sgZnVuY3Rpb24gY29kZSBzdHJpbmcuXG4gKiBAcmV0dXJucyBUaGUgY29tcGxleCBKYXZhU2NyaXB0IHN0cmluZyBmb3IgdGhlIHN1Y2Nlc3MgaGFuZGxlci5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlU3VjY2Vzc0NhbGxiYWNrKGNhbGxiYWNrOiBzdHJpbmcpOiBzdHJpbmcge1xuXHQvLyBOb3RlOiBUaGlzIHN0cmluZyB1c2VzIEphdmEgdXRpbGl0eSBjbGFzc2VzIChvcmcuYXBhY2hlLmNvbW1vbnMuaW8uSU9VdGlscykgYW5kIGNvbnRleHQgdmFyaWFibGVzIFxuICAgIC8vIChfX2NvbnRleHQpIHRoYXQgYXJlIGF2YWlsYWJsZSBpbiB0aGUgc3BlY2lmaWMgSlZNIGVudmlyb25tZW50LlxuICAgIFxuICAgIC8vIFRoZSBzdHJ1Y3R1cmUgbWFwcyB0aGUgSmF2YSBIVFRQIFJlc3BvbnNlIG9iamVjdCBpbnRvIHRoZSBzdGFuZGFyZCBIdHRwQ2xpZW50UmVzcG9uc2UgaW50ZXJmYWNlLlxuXHRyZXR1cm4gXCIoZnVuY3Rpb24oaHR0cFJlc3BvbnNlLCBpc0JpbmFyeSwgY29udGV4dCkge1xcblwiXG5cdFx0KyBcInZhciByZXNwb25zZSA9IHt9O1xcblwiXG5cdFx0KyBcInJlc3BvbnNlLnN0YXR1c0NvZGUgPSBodHRwUmVzcG9uc2UuZ2V0U3RhdHVzTGluZSgpLmdldFN0YXR1c0NvZGUoKTtcXG5cIlxuXHRcdCsgXCJyZXNwb25zZS5zdGF0dXNNZXNzYWdlID0gaHR0cFJlc3BvbnNlLmdldFN0YXR1c0xpbmUoKS5nZXRSZWFzb25QaHJhc2UoKTtcXG5cIlxuXHRcdCsgXCJyZXNwb25zZS5wcm90b2NvbCA9IGh0dHBSZXNwb25zZS5nZXRQcm90b2NvbFZlcnNpb24oKTtcXG5cIlxuXHRcdCsgXCJyZXNwb25zZS5iaW5hcnkgPSBpc0JpbmFyeTtcXG5cIlxuXG5cdFx0KyBcInZhciBoZWFkZXJzID0gaHR0cFJlc3BvbnNlLmdldEFsbEhlYWRlcnMoKTtcXG5cIlxuXHRcdCsgXCJyZXNwb25zZS5oZWFkZXJzID0gW107XFxuXCJcblx0XHQrIFwiZm9yICh2YXIgaSA9IDA7IGkgPCBoZWFkZXJzLmxlbmd0aDsgaSArKykge1xcblwiXG5cdFx0KyBcIiAgICByZXNwb25zZS5oZWFkZXJzLnB1c2goe1xcblwiXG5cdFx0KyBcIiAgICAgICAgbmFtZTogaGVhZGVyc1tpXS5nZXROYW1lKCksXFxuXCJcblx0XHQrIFwiICAgICAgICB2YWx1ZTogaGVhZGVyc1tpXS5nZXRWYWx1ZSgpXFxuXCJcblx0XHQrIFwiICAgIH0pO1xcblwiXG5cdFx0KyBcIn1cXG5cIlxuXG5cdFx0KyBcInZhciBlbnRpdHkgPSBodHRwUmVzcG9uc2UuZ2V0RW50aXR5KCk7XFxuXCJcblx0XHQrIFwiaWYgKGVudGl0eSkge1xcblwiXG5cdFx0KyBcIiAgICB2YXIgaW5wdXRTdHJlYW0gPSBlbnRpdHkuZ2V0Q29udGVudCgpO1xcblwiXG5cdFx0KyBcIiAgICBpZiAoaXNCaW5hcnkpIHtcXG5cIlxuXHRcdCsgXCIgICAgICAgIC8vIFVzZXMgSmF2YSBJT1V0aWxzIHRvIHJlYWQgYmluYXJ5IGRhdGFcXG5cIlxuXHRcdCsgXCIgICAgICAgIHJlc3BvbnNlLmRhdGEgPSBvcmcuYXBhY2hlLmNvbW1vbnMuaW8uSU9VdGlscy50b0J5dGVBcnJheShpbnB1dFN0cmVhbSk7XFxuXCJcblx0XHQrIFwiICAgIH0gZWxzZSB7XFxuXCJcblx0XHQrIFwiICAgICAgICAvLyBVc2VzIEphdmEgSU9VdGlscyB0byByZWFkIHRleHQgZGF0YVxcblwiXG5cdFx0KyBcIiAgICAgICAgcmVzcG9uc2UudGV4dCA9IG9yZy5hcGFjaGUuY29tbW9ucy5pby5JT1V0aWxzLnRvU3RyaW5nKGlucHV0U3RyZWFtKTtcXG5cIlxuXHRcdCsgXCIgICAgfVxcblwiXG5cdFx0KyBcIn1cXG5cIlxuXG5cdFx0KyBcIihcIiArIGNhbGxiYWNrICsgXCIpKHJlc3BvbnNlLCBKU09OLnBhcnNlKGNvbnRleHQpKTtcXG5cIlxuXHRcdCsgXCJ9KShfX2NvbnRleHQuZ2V0KCdyZXNwb25zZScpLCBfX2NvbnRleHQuZ2V0KCdodHRwQ2xpZW50UmVxdWVzdE9wdGlvbnMnKS5pc0JpbmFyeSgpLCBfX2NvbnRleHQuZ2V0KCdodHRwQ2xpZW50UmVxdWVzdE9wdGlvbnMnKS5nZXRDb250ZXh0KCkpO1xcblwiO1xufVxuXG4vKipcbiAqIEdlbmVyYXRlcyB0aGUgcmF3IEphdmFTY3JpcHQgc3RyaW5nIGZvciB0aGUgZXJyb3IgY2FsbGJhY2suXG4gKiBAcGFyYW0gY2FsbGJhY2sgVGhlIHVzZXItcHJvdmlkZWQgZXJyb3IgY2FsbGJhY2sgZnVuY3Rpb24gY29kZSBzdHJpbmcuXG4gKiBAcmV0dXJucyBUaGUgSmF2YVNjcmlwdCBzdHJpbmcgZm9yIHRoZSBlcnJvciBoYW5kbGVyLCBvciB1bmRlZmluZWQuXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUVycm9yQ2FsbGJhY2soY2FsbGJhY2s/OiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuXHRpZiAoY2FsbGJhY2spIHtcblx0XHRyZXR1cm4gXCIoXCIgKyBjYWxsYmFjayArIFwiKShfX2NvbnRleHQuZ2V0KCdleGNlcHRpb24nKSlcIjtcblx0fVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogR2VuZXJhdGVzIHRoZSByYXcgSmF2YVNjcmlwdCBzdHJpbmcgZm9yIHRoZSBjYW5jZWwgY2FsbGJhY2suXG4gKiBAcGFyYW0gY2FsbGJhY2sgVGhlIHVzZXItcHJvdmlkZWQgY2FuY2VsIGNhbGxiYWNrIGZ1bmN0aW9uIGNvZGUgc3RyaW5nLlxuICogQHJldHVybnMgVGhlIEphdmFTY3JpcHQgc3RyaW5nIGZvciB0aGUgY2FuY2VsIGhhbmRsZXIsIG9yIHVuZGVmaW5lZC5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlQ2FuY2VsQ2FsbGJhY2soY2FsbGJhY2s/OiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuXHRpZiAoY2FsbGJhY2spIHtcblx0XHRyZXR1cm4gXCIoXCIgKyBjYWxsYmFjayArIFwiKSgpXCI7XG5cdH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEJ1aWxkcyB0aGUgZmluYWwgVVJMIGJ5IGFwcGVuZGluZyBhbGwgcXVlcnkgcGFyYW1ldGVycyBkZWZpbmVkIGluIG9wdGlvbnMucGFyYW1zLlxuICogVGhlIHBhcmFtZXRlcnMgYXJlIG5vdCByZW1vdmVkIGZyb20gdGhlIG9wdGlvbnMgb2JqZWN0IGFzIHRoZXkgYXJlIGZvciB0aGUgc3luY2hyb25vdXMgY2xpZW50LFxuICogc2luY2UgdGhlIG9wdGlvbnMgYXJlIHBhc3NlZCBhcyBKU09OIHN0cmluZyB0byB0aGUgZmFjYWRlIGFueXdheS5cbiAqIEBwYXJhbSB1cmwgVGhlIGJhc2UgVVJMLlxuICogQHBhcmFtIG9wdGlvbnMgVGhlIHJlcXVlc3Qgb3B0aW9ucyB3aGljaCBtYXkgY29udGFpbiBgcGFyYW1zYC5cbiAqIEByZXR1cm5zIFRoZSBVUkwgd2l0aCBhcHBlbmRlZCBxdWVyeSBwYXJhbWV0ZXJzLlxuICovXG5mdW5jdGlvbiBidWlsZFVybCh1cmw6IHN0cmluZywgb3B0aW9ucz86IEh0dHBDbGllbnRSZXF1ZXN0T3B0aW9ucyk6IHN0cmluZyB7XG5cdGlmIChvcHRpb25zID09PSB1bmRlZmluZWQgfHwgb3B0aW9ucyA9PT0gbnVsbCB8fCBvcHRpb25zLnBhcmFtcyA9PT0gdW5kZWZpbmVkIHx8IG9wdGlvbnMucGFyYW1zID09PSBudWxsIHx8IG9wdGlvbnMucGFyYW1zLmxlbmd0aCA9PT0gMCkge1xuXHRcdHJldHVybiB1cmw7XG5cdH1cblx0bGV0IG5ld1VybCA9IHVybDtcblx0Zm9yIChsZXQgaSA9IDA7IGkgPCBvcHRpb25zLnBhcmFtcy5sZW5ndGg7IGkgKyspIHtcbiAgICAgICAgY29uc3QgcGFyYW0gPSBvcHRpb25zLnBhcmFtc1tpXTtcblx0XHRpZiAoaSA9PT0gMCkge1xuICAgICAgICAgICAgLy8gQ2hlY2sgaWYgVVJMIGFscmVhZHkgY29udGFpbnMgJz8nIGFuZCB1c2UgJyYnIGlmIHNvIChpbXByb3ZlcyByb2J1c3RuZXNzKVxuICAgICAgICAgICAgaWYgKG5ld1VybC5pbmNsdWRlcygnPycpKSB7XG4gICAgICAgICAgICAgICAgbmV3VXJsICs9ICcmJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbmV3VXJsICs9ICc/JztcbiAgICAgICAgICAgIH1cblx0XHRcdG5ld1VybCArPSBwYXJhbS5uYW1lICsgJz0nICsgcGFyYW0udmFsdWU7XG5cdFx0fSBlbHNlIHtcblx0XHRcdG5ld1VybCArPSAnJicgKyBwYXJhbS5uYW1lICsgJz0nICsgcGFyYW0udmFsdWU7XG5cdFx0fVxuXHR9XG5cdHJldHVybiBuZXdVcmw7XG59XG5cbi8vIEB0cy1pZ25vcmVcbmlmICh0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJykge1xuXHQvLyBAdHMtaWdub3JlXG5cdG1vZHVsZS5leHBvcnRzID0geyBIdHRwQXN5bmNDbGllbnQsIGdldEluc3RhbmNlIH07XG59Il0sCiAgIm1hcHBpbmdzIjogIkFBMkdBLE1BQU0sd0JBQXdCLEtBQUssS0FBSyxpRUFBaUU7QUFHekcsTUFBTSxxQkFBcUIsS0FBSyxLQUFLLDREQUE0RDtBQUdqRyxNQUFNLGFBQWEsbUJBQW1CLFFBQVEsc0JBQXNCLEtBQUs7QUFPbEUsTUFBTSxnQkFBZ0I7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVE1QixTQUFTLEtBQWEsUUFBK0IsU0FBMEM7QUFDOUYsVUFBTSxTQUFTLFNBQVMsS0FBSyxPQUFPO0FBQ3BDLFVBQU0sV0FBVztBQUFBLE1BQ2hCO0FBQUEsTUFDQSxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxPQUFPO0FBQUEsSUFDUjtBQUNBLFFBQUksU0FBUztBQUNaLGlCQUFXLFNBQVMsUUFBUSxLQUFLLFVBQVUsT0FBTyxHQUFHLFFBQVE7QUFBQSxJQUM5RCxPQUFPO0FBQ04saUJBQVcsU0FBUyxRQUFRLEtBQUssVUFBVSxDQUFDLENBQUMsR0FBRyxRQUFRO0FBQUEsSUFDekQ7QUFBQSxFQUNEO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFB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USxLQUFLLFVBQVUsT0FBTyxHQUFHLFFBQVE7QUFBQSxJQUNoRSxPQUFPO0FBQ04saUJBQVcsV0FBVyxRQUFRLEtBQUssVUFBVSxDQUFDLENBQUMsR0FBRyxRQUFRO0FBQUEsSUFDM0Q7QUFBQSxFQUNEO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLQSxVQUFnQjtBQUNmLGVBQVcsUUFBUTtBQUFBLEVBQ3BCO0FBQ0Q7QUFNTyxTQUFTLGNBQStCO0FBQzlDLFNBQU8sSUFBSSxnQkFBZ0I7QUFDNUI7QUFBQztBQVdELFNBQVMsMkJBQTJCQSxhQUFpQixpQkFBeUIsZUFBd0IsZ0JBQThCO0FBQ25JLFNBQU9BLFlBQVc7QUFBQSxJQUNqQixzQkFBc0IsZUFBZTtBQUFBLElBQ3JDLG9CQUFvQixhQUFhO0FBQUEsSUFDakMscUJBQXFCLGNBQWM7QUFBQSxFQUNwQztBQUNEO0FBUUEsU0FBUyxzQkFBc0IsVUFBMEI7QUFLeEQsU0FBTyxtNkJBNEJFLFdBQVc7QUFFckI7QUFPQSxTQUFTLG9CQUFvQixVQUF1QztBQUNuRSxNQUFJLFVBQVU7QUFDYixXQUFPLE1BQU0sV0FBVztBQUFBLEVBQ3pCO0FBQ0csU0FBTztBQUNYO0FBT0EsU0FBUyxxQkFBcUIsVUFBdUM7QUFDcEUsTUFBSSxVQUFVO0FBQ2IsV0FBTyxNQUFNLFdBQVc7QUFBQSxFQUN6QjtBQUNHLFNBQU87QUFDWDtBQVVBLFNBQVMsU0FBUyxLQUFhLFNBQTRDO0FBQzFFLE1BQUksWUFBWSxVQUFhLFlBQVksUUFBUSxRQUFRLFdBQVcsVUFBYSxRQUFRLFdBQVcsUUFBUSxRQUFRLE9BQU8sV0FBVyxHQUFHO0FBQ3hJLFdBQU87QUFBQSxFQUNSO0FBQ0EsTUFBSSxTQUFTO0FBQ2IsV0FBUyxJQUFJLEdBQUcsSUFBSSxRQUFRLE9BQU8sUUFBUSxLQUFNO0FBQzFDLFVBQU0sUUFBUSxRQUFRLE9BQU8sQ0FBQztBQUNwQyxRQUFJLE1BQU0sR0FBRztBQUVILFVBQUksT0FBTyxTQUFTLEdBQUcsR0FBRztBQUN0QixrQkFBVTtBQUFBLE1BQ2QsT0FBTztBQUNILGtCQUFVO0FBQUEsTUFDZDtBQUNULGdCQUFVLE1BQU0sT0FBTyxNQUFNLE1BQU07QUFBQSxJQUNwQyxPQUFPO0FBQ04sZ0JBQVUsTUFBTSxNQUFNLE9BQU8sTUFBTSxNQUFNO0FBQUEsSUFDMUM7QUFBQSxFQUNEO0FBQ0EsU0FBTztBQUNSO0FBR0EsSUFBSSxPQUFPLFdBQVcsYUFBYTtBQUVsQyxTQUFPLFVBQVUsRUFBRSxpQkFBaUIsWUFBWTtBQUNqRDsiLAogICJuYW1lcyI6IFsiaHR0cENsaWVudCJdCn0K
|