parse-server 6.4.0 → 6.5.0-alpha.2
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/README.md +8 -6
- package/lib/AccountLockout.js +1 -1
- package/lib/Adapters/AdapterLoader.js +1 -1
- package/lib/Adapters/Analytics/AnalyticsAdapter.js +1 -1
- package/lib/Adapters/Auth/AuthAdapter.js +1 -1
- package/lib/Adapters/Auth/OAuth1Client.js +1 -1
- package/lib/Adapters/Auth/apple.js +1 -1
- package/lib/Adapters/Auth/facebook.js +1 -1
- package/lib/Adapters/Auth/gcenter.js +1 -1
- package/lib/Adapters/Auth/github.js +1 -1
- package/lib/Adapters/Auth/google.js +1 -1
- package/lib/Adapters/Auth/gpgames.js +1 -1
- package/lib/Adapters/Auth/httpsRequest.js +1 -1
- package/lib/Adapters/Auth/index.js +1 -1
- package/lib/Adapters/Auth/instagram.js +1 -1
- package/lib/Adapters/Auth/janraincapture.js +1 -1
- package/lib/Adapters/Auth/janrainengage.js +1 -1
- package/lib/Adapters/Auth/keycloak.js +1 -1
- package/lib/Adapters/Auth/ldap.js +1 -1
- package/lib/Adapters/Auth/line.js +1 -1
- package/lib/Adapters/Auth/linkedin.js +1 -1
- package/lib/Adapters/Auth/meetup.js +1 -1
- package/lib/Adapters/Auth/mfa.js +1 -1
- package/lib/Adapters/Auth/microsoft.js +1 -1
- package/lib/Adapters/Auth/oauth2.js +1 -1
- package/lib/Adapters/Auth/phantauth.js +1 -1
- package/lib/Adapters/Auth/qq.js +1 -1
- package/lib/Adapters/Auth/spotify.js +1 -1
- package/lib/Adapters/Auth/twitter.js +1 -1
- package/lib/Adapters/Auth/vkontakte.js +1 -1
- package/lib/Adapters/Auth/wechat.js +1 -1
- package/lib/Adapters/Auth/weibo.js +1 -1
- package/lib/Adapters/Cache/CacheAdapter.js +1 -1
- package/lib/Adapters/Cache/InMemoryCache.js +1 -1
- package/lib/Adapters/Cache/InMemoryCacheAdapter.js +1 -1
- package/lib/Adapters/Cache/LRUCache.js +1 -1
- package/lib/Adapters/Cache/NullCacheAdapter.js +1 -1
- package/lib/Adapters/Cache/RedisCacheAdapter.js +1 -1
- package/lib/Adapters/Cache/SchemaCache.js +1 -1
- package/lib/Adapters/Email/MailAdapter.js +1 -1
- package/lib/Adapters/Files/FilesAdapter.js +1 -1
- package/lib/Adapters/Files/GridFSBucketAdapter.js +1 -1
- package/lib/Adapters/Files/GridStoreAdapter.js +1 -1
- package/lib/Adapters/Logger/LoggerAdapter.js +1 -1
- package/lib/Adapters/Logger/WinstonLogger.js +1 -1
- package/lib/Adapters/Logger/WinstonLoggerAdapter.js +1 -1
- package/lib/Adapters/MessageQueue/EventEmitterMQ.js +1 -1
- package/lib/Adapters/PubSub/EventEmitterPubSub.js +1 -1
- package/lib/Adapters/PubSub/PubSubAdapter.js +6 -1
- package/lib/Adapters/PubSub/RedisPubSub.js +1 -1
- package/lib/Adapters/Push/PushAdapter.js +1 -1
- package/lib/Adapters/Storage/Mongo/MongoCollection.js +1 -1
- package/lib/Adapters/Storage/Mongo/MongoSchemaCollection.js +1 -1
- package/lib/Adapters/Storage/Mongo/MongoStorageAdapter.js +3 -2
- package/lib/Adapters/Storage/Mongo/MongoTransform.js +10 -1
- package/lib/Adapters/Storage/Postgres/PostgresClient.js +1 -1
- package/lib/Adapters/Storage/Postgres/PostgresConfigParser.js +1 -1
- package/lib/Adapters/Storage/Postgres/PostgresStorageAdapter.js +4 -2
- package/lib/Adapters/Storage/Postgres/sql/index.js +1 -1
- package/lib/Adapters/WebSocketServer/WSAdapter.js +1 -1
- package/lib/Adapters/WebSocketServer/WSSAdapter.js +1 -1
- package/lib/Auth.js +1 -1
- package/lib/ClientSDK.js +1 -1
- package/lib/Config.js +1 -1
- package/lib/Controllers/AdaptableController.js +1 -1
- package/lib/Controllers/AnalyticsController.js +1 -1
- package/lib/Controllers/CacheController.js +1 -1
- package/lib/Controllers/DatabaseController.js +40 -12
- package/lib/Controllers/FilesController.js +1 -1
- package/lib/Controllers/HooksController.js +1 -1
- package/lib/Controllers/LiveQueryController.js +1 -1
- package/lib/Controllers/LoggerController.js +1 -1
- package/lib/Controllers/ParseGraphQLController.js +1 -1
- package/lib/Controllers/PushController.js +1 -1
- package/lib/Controllers/SchemaController.js +4 -1
- package/lib/Controllers/UserController.js +1 -1
- package/lib/Controllers/index.js +3 -2
- package/lib/Deprecator/Deprecator.js +1 -1
- package/lib/GraphQL/ParseGraphQLSchema.js +1 -1
- package/lib/GraphQL/ParseGraphQLServer.js +1 -1
- package/lib/GraphQL/helpers/objectsMutations.js +1 -1
- package/lib/GraphQL/helpers/objectsQueries.js +1 -1
- package/lib/GraphQL/loaders/defaultGraphQLMutations.js +1 -1
- package/lib/GraphQL/loaders/defaultGraphQLQueries.js +1 -1
- package/lib/GraphQL/loaders/defaultGraphQLTypes.js +1 -1
- package/lib/GraphQL/loaders/defaultRelaySchema.js +1 -1
- package/lib/GraphQL/loaders/filesMutations.js +1 -1
- package/lib/GraphQL/loaders/functionsMutations.js +1 -1
- package/lib/GraphQL/loaders/parseClassMutations.js +1 -1
- package/lib/GraphQL/loaders/parseClassQueries.js +1 -1
- package/lib/GraphQL/loaders/parseClassTypes.js +2 -2
- package/lib/GraphQL/loaders/schemaDirectives.js +1 -1
- package/lib/GraphQL/loaders/schemaMutations.js +1 -1
- package/lib/GraphQL/loaders/schemaQueries.js +1 -1
- package/lib/GraphQL/loaders/schemaTypes.js +1 -1
- package/lib/GraphQL/loaders/usersMutations.js +1 -1
- package/lib/GraphQL/loaders/usersQueries.js +1 -1
- package/lib/GraphQL/parseGraphQLUtils.js +1 -1
- package/lib/GraphQL/transformers/className.js +1 -1
- package/lib/GraphQL/transformers/constraintType.js +1 -1
- package/lib/GraphQL/transformers/inputType.js +1 -1
- package/lib/GraphQL/transformers/mutation.js +1 -1
- package/lib/GraphQL/transformers/outputType.js +1 -1
- package/lib/GraphQL/transformers/query.js +1 -1
- package/lib/GraphQL/transformers/schemaFields.js +1 -1
- package/lib/KeyPromiseQueue.js +1 -1
- package/lib/LiveQuery/Client.js +1 -1
- package/lib/LiveQuery/Id.js +1 -1
- package/lib/LiveQuery/ParseCloudCodePublisher.js +1 -1
- package/lib/LiveQuery/ParseLiveQueryServer.js +1 -1
- package/lib/LiveQuery/ParsePubSub.js +1 -1
- package/lib/LiveQuery/ParseWebSocketServer.js +1 -1
- package/lib/LiveQuery/QueryTools.js +1 -1
- package/lib/LiveQuery/RequestSchema.js +1 -1
- package/lib/LiveQuery/SessionTokenCache.js +1 -1
- package/lib/LiveQuery/Subscription.js +1 -1
- package/lib/LiveQuery/equalObjects.js +1 -1
- package/lib/Options/Definitions.js +22 -4
- package/lib/Options/docs.js +7 -4
- package/lib/Options/index.js +1 -1
- package/lib/Options/parsers.js +1 -1
- package/lib/Page.js +1 -1
- package/lib/ParseMessageQueue.js +1 -1
- package/lib/ParseServer.js +3 -1
- package/lib/ParseServerRESTController.js +1 -1
- package/lib/PromiseRouter.js +1 -1
- package/lib/Push/PushQueue.js +1 -1
- package/lib/Push/PushWorker.js +1 -1
- package/lib/Push/utils.js +1 -1
- package/lib/RestQuery.js +13 -8
- package/lib/RestWrite.js +21 -3
- package/lib/Routers/AggregateRouter.js +1 -1
- package/lib/Routers/AnalyticsRouter.js +1 -1
- package/lib/Routers/AudiencesRouter.js +1 -1
- package/lib/Routers/ClassesRouter.js +1 -1
- package/lib/Routers/CloudCodeRouter.js +1 -1
- package/lib/Routers/FeaturesRouter.js +1 -1
- package/lib/Routers/FilesRouter.js +2 -2
- package/lib/Routers/FunctionsRouter.js +1 -1
- package/lib/Routers/GlobalConfigRouter.js +1 -1
- package/lib/Routers/GraphQLRouter.js +1 -1
- package/lib/Routers/HooksRouter.js +1 -1
- package/lib/Routers/IAPValidationRouter.js +1 -1
- package/lib/Routers/InstallationsRouter.js +1 -1
- package/lib/Routers/LogsRouter.js +1 -1
- package/lib/Routers/PagesRouter.js +1 -1
- package/lib/Routers/PublicAPIRouter.js +1 -1
- package/lib/Routers/PurgeRouter.js +1 -1
- package/lib/Routers/PushRouter.js +1 -1
- package/lib/Routers/RolesRouter.js +1 -1
- package/lib/Routers/SchemasRouter.js +1 -1
- package/lib/Routers/SecurityRouter.js +1 -1
- package/lib/Routers/SessionsRouter.js +1 -1
- package/lib/Routers/UsersRouter.js +4 -4
- package/lib/SchemaMigrations/DefinedSchemas.js +1 -1
- package/lib/SchemaMigrations/Migrations.js +1 -1
- package/lib/Security/Check.js +1 -1
- package/lib/Security/CheckGroup.js +1 -1
- package/lib/Security/CheckGroups/CheckGroupDatabase.js +1 -1
- package/lib/Security/CheckGroups/CheckGroupServerConfig.js +1 -1
- package/lib/Security/CheckGroups/CheckGroups.js +1 -1
- package/lib/Security/CheckRunner.js +1 -1
- package/lib/SharedRest.js +1 -1
- package/lib/StatusHandler.js +1 -1
- package/lib/TestUtils.js +1 -1
- package/lib/Utils.js +1 -1
- package/lib/batch.js +1 -1
- package/lib/cache.js +1 -1
- package/lib/cli/definitions/parse-live-query-server.js +1 -1
- package/lib/cli/definitions/parse-server.js +1 -1
- package/lib/cli/parse-live-query-server.js +1 -1
- package/lib/cli/parse-server.js +1 -1
- package/lib/cli/utils/commander.js +1 -1
- package/lib/cli/utils/runner.js +1 -1
- package/lib/cloud-code/Parse.Cloud.js +1 -1
- package/lib/cryptoUtils.js +1 -1
- package/lib/defaults.js +1 -1
- package/lib/deprecated.js +1 -1
- package/lib/index.js +1 -1
- package/lib/logger.js +1 -1
- package/lib/middlewares.js +43 -4
- package/lib/password.js +1 -1
- package/lib/request.js +1 -1
- package/lib/requiredParameter.js +1 -1
- package/lib/rest.js +1 -1
- package/lib/triggers.js +3 -3
- package/lib/vendor/mongodbUrl.js +1 -1
- package/package.json +3 -4
|
@@ -369,4 +369,4 @@ class DefinedSchemas {
|
|
|
369
369
|
}
|
|
370
370
|
}
|
|
371
371
|
exports.DefinedSchemas = DefinedSchemas;
|
|
372
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQYXJzZSIsInJlcXVpcmUiLCJEZWZpbmVkU2NoZW1hcyIsImNvbnN0cnVjdG9yIiwic2NoZW1hT3B0aW9ucyIsImNvbmZpZyIsImxvY2FsU2NoZW1hcyIsIkNvbmZpZyIsImdldCIsImFwcElkIiwiZGVmaW5pdGlvbnMiLCJBcnJheSIsImlzQXJyYXkiLCJyZXRyaWVzIiwibWF4UmV0cmllcyIsInNhdmVTY2hlbWFUb0RCIiwic2NoZW1hIiwicGF5bG9hZCIsImNsYXNzTmFtZSIsImZpZWxkcyIsIl9maWVsZHMiLCJpbmRleGVzIiwiX2luZGV4ZXMiLCJjbGFzc0xldmVsUGVybWlzc2lvbnMiLCJfY2xwIiwiaW50ZXJuYWxDcmVhdGVTY2hlbWEiLCJyZXNldFNjaGVtYU9wcyIsInVwZGF0ZVNjaGVtYVRvREIiLCJpbnRlcm5hbFVwZGF0ZVNjaGVtYSIsImV4ZWN1dGUiLCJsb2dnZXIiLCJpbmZvIiwiYmVmb3JlTWlncmF0aW9uIiwiUHJvbWlzZSIsInJlc29sdmUiLCJleGVjdXRlTWlncmF0aW9ucyIsImFmdGVyTWlncmF0aW9uIiwiZSIsImVycm9yIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiZXhpdCIsInRpbWVvdXQiLCJzZXRUaW1lb3V0IiwiY3JlYXRlRGVsZXRlU2Vzc2lvbiIsInNjaGVtYUNvbnRyb2xsZXIiLCJkYXRhYmFzZSIsImxvYWRTY2hlbWEiLCJhbGxDbG91ZFNjaGVtYXMiLCJnZXRBbGxDbGFzc2VzIiwiY2xlYXJUaW1lb3V0IiwiYWxsIiwibWFwIiwibG9jYWxTY2hlbWEiLCJzYXZlT3JVcGRhdGUiLCJjaGVja0Zvck1pc3NpbmdTY2hlbWFzIiwiZW5mb3JjZUNMUEZvck5vblByb3ZpZGVkQ2xhc3MiLCJ3YWl0Iiwic3RyaWN0IiwiY2xvdWRTY2hlbWFzIiwicyIsIm1pc3NpbmdTY2hlbWFzIiwiZmlsdGVyIiwiYyIsImluY2x1ZGVzIiwic3lzdGVtQ2xhc3NlcyIsIlNldCIsInNpemUiLCJsZW5ndGgiLCJqb2luIiwid2FybiIsInRpbWUiLCJub25Qcm92aWRlZENsYXNzZXMiLCJjbG91ZFNjaGVtYSIsInNvbWUiLCJwYXJzZVNjaGVtYSIsIlNjaGVtYSIsImhhbmRsZUNMUCIsInJlc3BvbnNlIiwicmVzdCIsImNyZWF0ZSIsIkF1dGgiLCJtYXN0ZXIiLCJkZWwiLCJvYmplY3RJZCIsImZpbmQiLCJzYyIsInVwZGF0ZVNjaGVtYSIsInNhdmVTY2hlbWEiLCJuZXdMb2NhbFNjaGVtYSIsIk9iamVjdCIsImtleXMiLCJmaWVsZE5hbWUiLCJpc1Byb3RlY3RlZEZpZWxkcyIsImZvckVhY2giLCJmaWVsZCIsImhhbmRsZUZpZWxkcyIsImluZGV4TmFtZSIsImlzUHJvdGVjdGVkSW5kZXgiLCJhZGRJbmRleCIsImZpZWxkc1RvRGVsZXRlIiwiZmllbGRzVG9SZWNyZWF0ZSIsImZpZWxkc1dpdGhDaGFuZ2VkUGFyYW1zIiwicHVzaCIsImxvY2FsRmllbGQiLCJwYXJhbXNBcmVFcXVhbHMiLCJ0eXBlIiwidGFyZ2V0Q2xhc3MiLCJmcm9tIiwidG8iLCJkZWxldGVFeHRyYUZpZWxkcyIsImRlbGV0ZUZpZWxkIiwicmVjcmVhdGVNb2RpZmllZEZpZWxkcyIsImZpZWxkSW5mbyIsImluZGV4ZXNUb0FkZCIsImRlbGV0ZUluZGV4IiwiaW5kZXgiLCJkZWJ1ZyIsIm8iLCJjbHAiLCJhZGRGaWVsZCIsInNldENMUCIsImRlZmF1bHRDb2x1bW5zIiwiX0RlZmF1bHQiLCJpbmRleE9mIiwib2JqQSIsIm9iakIiLCJrZXlzQSIsImtleXNCIiwiZXZlcnkiLCJrIiwiYWRkUmVsYXRpb24iLCJhZGRQb2ludGVyIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL1NjaGVtYU1pZ3JhdGlvbnMvRGVmaW5lZFNjaGVtYXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQGZsb3dcbi8vIEBmbG93LWRpc2FibGUtbmV4dCBDYW5ub3QgcmVzb2x2ZSBtb2R1bGUgYHBhcnNlL25vZGVgLlxuY29uc3QgUGFyc2UgPSByZXF1aXJlKCdwYXJzZS9ub2RlJyk7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuLi9sb2dnZXInO1xuaW1wb3J0IENvbmZpZyBmcm9tICcuLi9Db25maWcnO1xuaW1wb3J0IHsgaW50ZXJuYWxDcmVhdGVTY2hlbWEsIGludGVybmFsVXBkYXRlU2NoZW1hIH0gZnJvbSAnLi4vUm91dGVycy9TY2hlbWFzUm91dGVyJztcbmltcG9ydCB7IGRlZmF1bHRDb2x1bW5zLCBzeXN0ZW1DbGFzc2VzIH0gZnJvbSAnLi4vQ29udHJvbGxlcnMvU2NoZW1hQ29udHJvbGxlcic7XG5pbXBvcnQgeyBQYXJzZVNlcnZlck9wdGlvbnMgfSBmcm9tICcuLi9PcHRpb25zJztcbmltcG9ydCAqIGFzIE1pZ3JhdGlvbnMgZnJvbSAnLi9NaWdyYXRpb25zJztcbmltcG9ydCBBdXRoIGZyb20gJy4uL0F1dGgnO1xuaW1wb3J0IHJlc3QgZnJvbSAnLi4vcmVzdCc7XG5cbmV4cG9ydCBjbGFzcyBEZWZpbmVkU2NoZW1hcyB7XG4gIGNvbmZpZzogUGFyc2VTZXJ2ZXJPcHRpb25zO1xuICBzY2hlbWFPcHRpb25zOiBNaWdyYXRpb25zLlNjaGVtYU9wdGlvbnM7XG4gIGxvY2FsU2NoZW1hczogTWlncmF0aW9ucy5KU09OU2NoZW1hW107XG4gIHJldHJpZXM6IG51bWJlcjtcbiAgbWF4UmV0cmllczogbnVtYmVyO1xuICBhbGxDbG91ZFNjaGVtYXM6IFBhcnNlLlNjaGVtYVtdO1xuXG4gIGNvbnN0cnVjdG9yKHNjaGVtYU9wdGlvbnM6IE1pZ3JhdGlvbnMuU2NoZW1hT3B0aW9ucywgY29uZmlnOiBQYXJzZVNlcnZlck9wdGlvbnMpIHtcbiAgICB0aGlzLmxvY2FsU2NoZW1hcyA9IFtdO1xuICAgIHRoaXMuY29uZmlnID0gQ29uZmlnLmdldChjb25maWcuYXBwSWQpO1xuICAgIHRoaXMuc2NoZW1hT3B0aW9ucyA9IHNjaGVtYU9wdGlvbnM7XG4gICAgaWYgKHNjaGVtYU9wdGlvbnMgJiYgc2NoZW1hT3B0aW9ucy5kZWZpbml0aW9ucykge1xuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHNjaGVtYU9wdGlvbnMuZGVmaW5pdGlvbnMpKSB7XG4gICAgICAgIHRocm93IGBcInNjaGVtYS5kZWZpbml0aW9uc1wiIG11c3QgYmUgYW4gYXJyYXkgb2Ygc2NoZW1hc2A7XG4gICAgICB9XG5cbiAgICAgIHRoaXMubG9jYWxTY2hlbWFzID0gc2NoZW1hT3B0aW9ucy5kZWZpbml0aW9ucztcbiAgICB9XG5cbiAgICB0aGlzLnJldHJpZXMgPSAwO1xuICAgIHRoaXMubWF4UmV0cmllcyA9IDM7XG4gIH1cblxuICBhc3luYyBzYXZlU2NoZW1hVG9EQihzY2hlbWE6IFBhcnNlLlNjaGVtYSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgICBjbGFzc05hbWU6IHNjaGVtYS5jbGFzc05hbWUsXG4gICAgICBmaWVsZHM6IHNjaGVtYS5fZmllbGRzLFxuICAgICAgaW5kZXhlczogc2NoZW1hLl9pbmRleGVzLFxuICAgICAgY2xhc3NMZXZlbFBlcm1pc3Npb25zOiBzY2hlbWEuX2NscCxcbiAgICB9O1xuICAgIGF3YWl0IGludGVybmFsQ3JlYXRlU2NoZW1hKHNjaGVtYS5jbGFzc05hbWUsIHBheWxvYWQsIHRoaXMuY29uZmlnKTtcbiAgICB0aGlzLnJlc2V0U2NoZW1hT3BzKHNjaGVtYSk7XG4gIH1cblxuICByZXNldFNjaGVtYU9wcyhzY2hlbWE6IFBhcnNlLlNjaGVtYSkge1xuICAgIC8vIFJlc2V0IG9wcyBsaWtlIFNES1xuICAgIHNjaGVtYS5fZmllbGRzID0ge307XG4gICAgc2NoZW1hLl9pbmRleGVzID0ge307XG4gIH1cblxuICAvLyBTaW11bGF0ZSB1cGRhdGUgbGlrZSB0aGUgU0RLXG4gIC8vIFdlIGNhbm5vdCB1c2UgU0RLIHNpbmNlIHJvdXRlcyBhcmUgZGlzYWJsZWRcbiAgYXN5bmMgdXBkYXRlU2NoZW1hVG9EQihzY2hlbWE6IFBhcnNlLlNjaGVtYSkge1xuICAgIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgICBjbGFzc05hbWU6IHNjaGVtYS5jbGFzc05hbWUsXG4gICAgICBmaWVsZHM6IHNjaGVtYS5fZmllbGRzLFxuICAgICAgaW5kZXhlczogc2NoZW1hLl9pbmRleGVzLFxuICAgICAgY2xhc3NMZXZlbFBlcm1pc3Npb25zOiBzY2hlbWEuX2NscCxcbiAgICB9O1xuICAgIGF3YWl0IGludGVybmFsVXBkYXRlU2NoZW1hKHNjaGVtYS5jbGFzc05hbWUsIHBheWxvYWQsIHRoaXMuY29uZmlnKTtcbiAgICB0aGlzLnJlc2V0U2NoZW1hT3BzKHNjaGVtYSk7XG4gIH1cblxuICBhc3luYyBleGVjdXRlKCkge1xuICAgIHRyeSB7XG4gICAgICBsb2dnZXIuaW5mbygnUnVubmluZyBNaWdyYXRpb25zJyk7XG4gICAgICBpZiAodGhpcy5zY2hlbWFPcHRpb25zICYmIHRoaXMuc2NoZW1hT3B0aW9ucy5iZWZvcmVNaWdyYXRpb24pIHtcbiAgICAgICAgYXdhaXQgUHJvbWlzZS5yZXNvbHZlKHRoaXMuc2NoZW1hT3B0aW9ucy5iZWZvcmVNaWdyYXRpb24oKSk7XG4gICAgICB9XG5cbiAgICAgIGF3YWl0IHRoaXMuZXhlY3V0ZU1pZ3JhdGlvbnMoKTtcblxuICAgICAgaWYgKHRoaXMuc2NoZW1hT3B0aW9ucyAmJiB0aGlzLnNjaGVtYU9wdGlvbnMuYWZ0ZXJNaWdyYXRpb24pIHtcbiAgICAgICAgYXdhaXQgUHJvbWlzZS5yZXNvbHZlKHRoaXMuc2NoZW1hT3B0aW9ucy5hZnRlck1pZ3JhdGlvbigpKTtcbiAgICAgIH1cblxuICAgICAgbG9nZ2VyLmluZm8oJ1J1bm5pbmcgTWlncmF0aW9ucyBDb21wbGV0ZWQnKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBsb2dnZXIuZXJyb3IoYEZhaWxlZCB0byBydW4gbWlncmF0aW9uczogJHtlfWApO1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHByb2Nlc3MuZXhpdCgxKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBleGVjdXRlTWlncmF0aW9ucygpIHtcbiAgICBsZXQgdGltZW91dCA9IG51bGw7XG4gICAgdHJ5IHtcbiAgICAgIC8vIFNldCB1cCBhIHRpbWUgb3V0IGluIHByb2R1Y3Rpb25cbiAgICAgIC8vIGlmIHdlIGZhaWwgdG8gZ2V0IHNjaGVtYVxuICAgICAgLy8gcG0yIG9yIEs4cyBhbmQgbWFueSBvdGhlciBwcm9jZXNzIG1hbmFnZXJzIHdpbGwgdHJ5IHRvIHJlc3RhcnQgdGhlIHByb2Nlc3NcbiAgICAgIC8vIGFmdGVyIHRoZSBleGl0XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICB0aW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgbG9nZ2VyLmVycm9yKCdUaW1lb3V0IG9jY3VycmVkIGR1cmluZyBleGVjdXRpb24gb2YgbWlncmF0aW9ucy4gRXhpdGluZy4uLicpO1xuICAgICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICAgICAgfSwgMjAwMDApO1xuICAgICAgfVxuXG4gICAgICBhd2FpdCB0aGlzLmNyZWF0ZURlbGV0ZVNlc3Npb24oKTtcbiAgICAgIC8vIEBmbG93LWRpc2FibGUtbmV4dC1saW5lXG4gICAgICBjb25zdCBzY2hlbWFDb250cm9sbGVyID0gYXdhaXQgdGhpcy5jb25maWcuZGF0YWJhc2UubG9hZFNjaGVtYSgpO1xuICAgICAgdGhpcy5hbGxDbG91ZFNjaGVtYXMgPSBhd2FpdCBzY2hlbWFDb250cm9sbGVyLmdldEFsbENsYXNzZXMoKTtcbiAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KTtcbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKHRoaXMubG9jYWxTY2hlbWFzLm1hcChhc3luYyBsb2NhbFNjaGVtYSA9PiB0aGlzLnNhdmVPclVwZGF0ZShsb2NhbFNjaGVtYSkpKTtcblxuICAgICAgdGhpcy5jaGVja0Zvck1pc3NpbmdTY2hlbWFzKCk7XG4gICAgICBhd2FpdCB0aGlzLmVuZm9yY2VDTFBGb3JOb25Qcm92aWRlZENsYXNzKCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKHRpbWVvdXQpIGNsZWFyVGltZW91dCh0aW1lb3V0KTtcbiAgICAgIGlmICh0aGlzLnJldHJpZXMgPCB0aGlzLm1heFJldHJpZXMpIHtcbiAgICAgICAgdGhpcy5yZXRyaWVzKys7XG4gICAgICAgIC8vIGZpcnN0IHJldHJ5IDFzZWMsIDJzZWMsIDNzZWMgdG90YWwgNnNlYyByZXRyeSBzZXF1ZW5jZVxuICAgICAgICAvLyByZXRyeSB3aWxsIG9ubHkgaGFwcGVuIGluIGNhc2Ugb2YgZGVwbG95aW5nIG11bHRpIHBhcnNlIHNlcnZlciBpbnN0YW5jZVxuICAgICAgICAvLyBhdCB0aGUgc2FtZSB0aW1lLiBNb2Rlcm4gc3lzdGVtcyBsaWtlIGs4IGF2b2lkIHRoaXMgYnkgZG9pbmcgcm9sbGluZyB1cGRhdGVzXG4gICAgICAgIGF3YWl0IHRoaXMud2FpdCgxMDAwICogdGhpcy5yZXRyaWVzKTtcbiAgICAgICAgYXdhaXQgdGhpcy5leGVjdXRlTWlncmF0aW9ucygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbG9nZ2VyLmVycm9yKGBGYWlsZWQgdG8gcnVuIG1pZ3JhdGlvbnM6ICR7ZX1gKTtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHByb2Nlc3MuZXhpdCgxKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjaGVja0Zvck1pc3NpbmdTY2hlbWFzKCkge1xuICAgIGlmICh0aGlzLnNjaGVtYU9wdGlvbnMuc3RyaWN0ICE9PSB0cnVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY2xvdWRTY2hlbWFzID0gdGhpcy5hbGxDbG91ZFNjaGVtYXMubWFwKHMgPT4gcy5jbGFzc05hbWUpO1xuICAgIGNvbnN0IGxvY2FsU2NoZW1hcyA9IHRoaXMubG9jYWxTY2hlbWFzLm1hcChzID0+IHMuY2xhc3NOYW1lKTtcbiAgICBjb25zdCBtaXNzaW5nU2NoZW1hcyA9IGNsb3VkU2NoZW1hcy5maWx0ZXIoXG4gICAgICBjID0+ICFsb2NhbFNjaGVtYXMuaW5jbHVkZXMoYykgJiYgIXN5c3RlbUNsYXNzZXMuaW5jbHVkZXMoYylcbiAgICApO1xuXG4gICAgaWYgKG5ldyBTZXQobG9jYWxTY2hlbWFzKS5zaXplICE9PSBsb2NhbFNjaGVtYXMubGVuZ3RoKSB7XG4gICAgICBsb2dnZXIuZXJyb3IoXG4gICAgICAgIGBUaGUgbGlzdCBvZiBzY2hlbWFzIHByb3ZpZGVkIGNvbnRhaW5zIGR1cGxpY2F0ZWQgXCJjbGFzc05hbWVcIiAgXCIke2xvY2FsU2NoZW1hcy5qb2luKFxuICAgICAgICAgICdcIixcIidcbiAgICAgICAgKX1cImBcbiAgICAgICk7XG4gICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2NoZW1hT3B0aW9ucy5zdHJpY3QgJiYgbWlzc2luZ1NjaGVtYXMubGVuZ3RoKSB7XG4gICAgICBsb2dnZXIud2FybihcbiAgICAgICAgYFRoZSBmb2xsb3dpbmcgc2NoZW1hcyBhcmUgY3VycmVudGx5IHByZXNlbnQgaW4gdGhlIGRhdGFiYXNlLCBidXQgbm90IGV4cGxpY2l0bHkgZGVmaW5lZCBpbiBhIHNjaGVtYTogXCIke21pc3NpbmdTY2hlbWFzLmpvaW4oXG4gICAgICAgICAgJ1wiLCBcIidcbiAgICAgICAgKX1cImBcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVxdWlyZWQgZm9yIHRlc3RpbmcgcHVycG9zZVxuICB3YWl0KHRpbWU6IG51bWJlcikge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPihyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgdGltZSkpO1xuICB9XG5cbiAgYXN5bmMgZW5mb3JjZUNMUEZvck5vblByb3ZpZGVkQ2xhc3MoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3Qgbm9uUHJvdmlkZWRDbGFzc2VzID0gdGhpcy5hbGxDbG91ZFNjaGVtYXMuZmlsdGVyKFxuICAgICAgY2xvdWRTY2hlbWEgPT5cbiAgICAgICAgIXRoaXMubG9jYWxTY2hlbWFzLnNvbWUobG9jYWxTY2hlbWEgPT4gbG9jYWxTY2hlbWEuY2xhc3NOYW1lID09PSBjbG91ZFNjaGVtYS5jbGFzc05hbWUpXG4gICAgKTtcbiAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIG5vblByb3ZpZGVkQ2xhc3Nlcy5tYXAoYXN5bmMgc2NoZW1hID0+IHtcbiAgICAgICAgY29uc3QgcGFyc2VTY2hlbWEgPSBuZXcgUGFyc2UuU2NoZW1hKHNjaGVtYS5jbGFzc05hbWUpO1xuICAgICAgICB0aGlzLmhhbmRsZUNMUChzY2hlbWEsIHBhcnNlU2NoZW1hKTtcbiAgICAgICAgYXdhaXQgdGhpcy51cGRhdGVTY2hlbWFUb0RCKHBhcnNlU2NoZW1hKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8vIENyZWF0ZSBhIGZha2Ugc2Vzc2lvbiBzaW5jZSBQYXJzZSBkbyBub3QgY3JlYXRlIHRoZSBfU2Vzc2lvbiB1bnRpbFxuICAvLyBhIHNlc3Npb24gaXMgY3JlYXRlZFxuICBhc3luYyBjcmVhdGVEZWxldGVTZXNzaW9uKCkge1xuICAgIGNvbnN0IHsgcmVzcG9uc2UgfSA9IGF3YWl0IHJlc3QuY3JlYXRlKHRoaXMuY29uZmlnLCBBdXRoLm1hc3Rlcih0aGlzLmNvbmZpZyksICdfU2Vzc2lvbicsIHt9KTtcbiAgICBhd2FpdCByZXN0LmRlbCh0aGlzLmNvbmZpZywgQXV0aC5tYXN0ZXIodGhpcy5jb25maWcpLCAnX1Nlc3Npb24nLCByZXNwb25zZS5vYmplY3RJZCk7XG4gIH1cblxuICBhc3luYyBzYXZlT3JVcGRhdGUobG9jYWxTY2hlbWE6IE1pZ3JhdGlvbnMuSlNPTlNjaGVtYSkge1xuICAgIGNvbnN0IGNsb3VkU2NoZW1hID0gdGhpcy5hbGxDbG91ZFNjaGVtYXMuZmluZChzYyA9PiBzYy5jbGFzc05hbWUgPT09IGxvY2FsU2NoZW1hLmNsYXNzTmFtZSk7XG4gICAgaWYgKGNsb3VkU2NoZW1hKSB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCB0aGlzLnVwZGF0ZVNjaGVtYShsb2NhbFNjaGVtYSwgY2xvdWRTY2hlbWEpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICB0aHJvdyBgRXJyb3IgZHVyaW5nIHVwZGF0ZSBvZiBzY2hlbWEgZm9yIHR5cGUgJHtjbG91ZFNjaGVtYS5jbGFzc05hbWV9OiAke2V9YDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgdGhpcy5zYXZlU2NoZW1hKGxvY2FsU2NoZW1hKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhyb3cgYEVycm9yIHdoaWxlIHNhdmluZyBTY2hlbWEgZm9yIHR5cGUgJHtsb2NhbFNjaGVtYS5jbGFzc05hbWV9OiAke2V9YDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBhc3luYyBzYXZlU2NoZW1hKGxvY2FsU2NoZW1hOiBNaWdyYXRpb25zLkpTT05TY2hlbWEpIHtcbiAgICBjb25zdCBuZXdMb2NhbFNjaGVtYSA9IG5ldyBQYXJzZS5TY2hlbWEobG9jYWxTY2hlbWEuY2xhc3NOYW1lKTtcbiAgICBpZiAobG9jYWxTY2hlbWEuZmllbGRzKSB7XG4gICAgICAvLyBIYW5kbGUgZmllbGRzXG4gICAgICBPYmplY3Qua2V5cyhsb2NhbFNjaGVtYS5maWVsZHMpXG4gICAgICAgIC5maWx0ZXIoZmllbGROYW1lID0+ICF0aGlzLmlzUHJvdGVjdGVkRmllbGRzKGxvY2FsU2NoZW1hLmNsYXNzTmFtZSwgZmllbGROYW1lKSlcbiAgICAgICAgLmZvckVhY2goZmllbGROYW1lID0+IHtcbiAgICAgICAgICBpZiAobG9jYWxTY2hlbWEuZmllbGRzKSB7XG4gICAgICAgICAgICBjb25zdCBmaWVsZCA9IGxvY2FsU2NoZW1hLmZpZWxkc1tmaWVsZE5hbWVdO1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVGaWVsZHMobmV3TG9jYWxTY2hlbWEsIGZpZWxkTmFtZSwgZmllbGQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8vIEhhbmRsZSBpbmRleGVzXG4gICAgaWYgKGxvY2FsU2NoZW1hLmluZGV4ZXMpIHtcbiAgICAgIE9iamVjdC5rZXlzKGxvY2FsU2NoZW1hLmluZGV4ZXMpLmZvckVhY2goaW5kZXhOYW1lID0+IHtcbiAgICAgICAgaWYgKGxvY2FsU2NoZW1hLmluZGV4ZXMgJiYgIXRoaXMuaXNQcm90ZWN0ZWRJbmRleChsb2NhbFNjaGVtYS5jbGFzc05hbWUsIGluZGV4TmFtZSkpIHtcbiAgICAgICAgICBuZXdMb2NhbFNjaGVtYS5hZGRJbmRleChpbmRleE5hbWUsIGxvY2FsU2NoZW1hLmluZGV4ZXNbaW5kZXhOYW1lXSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMuaGFuZGxlQ0xQKGxvY2FsU2NoZW1hLCBuZXdMb2NhbFNjaGVtYSk7XG5cbiAgICByZXR1cm4gYXdhaXQgdGhpcy5zYXZlU2NoZW1hVG9EQihuZXdMb2NhbFNjaGVtYSk7XG4gIH1cblxuICBhc3luYyB1cGRhdGVTY2hlbWEobG9jYWxTY2hlbWE6IE1pZ3JhdGlvbnMuSlNPTlNjaGVtYSwgY2xvdWRTY2hlbWE6IFBhcnNlLlNjaGVtYSkge1xuICAgIGNvbnN0IG5ld0xvY2FsU2NoZW1hID0gbmV3IFBhcnNlLlNjaGVtYShsb2NhbFNjaGVtYS5jbGFzc05hbWUpO1xuXG4gICAgLy8gSGFuZGxlIGZpZWxkc1xuICAgIC8vIENoZWNrIGFkZGl0aW9uXG4gICAgaWYgKGxvY2FsU2NoZW1hLmZpZWxkcykge1xuICAgICAgT2JqZWN0LmtleXMobG9jYWxTY2hlbWEuZmllbGRzKVxuICAgICAgICAuZmlsdGVyKGZpZWxkTmFtZSA9PiAhdGhpcy5pc1Byb3RlY3RlZEZpZWxkcyhsb2NhbFNjaGVtYS5jbGFzc05hbWUsIGZpZWxkTmFtZSkpXG4gICAgICAgIC5mb3JFYWNoKGZpZWxkTmFtZSA9PiB7XG4gICAgICAgICAgLy8gQGZsb3ctZGlzYWJsZS1uZXh0XG4gICAgICAgICAgY29uc3QgZmllbGQgPSBsb2NhbFNjaGVtYS5maWVsZHNbZmllbGROYW1lXTtcbiAgICAgICAgICBpZiAoIWNsb3VkU2NoZW1hLmZpZWxkc1tmaWVsZE5hbWVdKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUZpZWxkcyhuZXdMb2NhbFNjaGVtYSwgZmllbGROYW1lLCBmaWVsZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCBmaWVsZHNUb0RlbGV0ZTogc3RyaW5nW10gPSBbXTtcbiAgICBjb25zdCBmaWVsZHNUb1JlY3JlYXRlOiB7XG4gICAgICBmaWVsZE5hbWU6IHN0cmluZyxcbiAgICAgIGZyb206IHsgdHlwZTogc3RyaW5nLCB0YXJnZXRDbGFzcz86IHN0cmluZyB9LFxuICAgICAgdG86IHsgdHlwZTogc3RyaW5nLCB0YXJnZXRDbGFzcz86IHN0cmluZyB9LFxuICAgIH1bXSA9IFtdO1xuICAgIGNvbnN0IGZpZWxkc1dpdGhDaGFuZ2VkUGFyYW1zOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgLy8gQ2hlY2sgZGVsZXRpb25cbiAgICBPYmplY3Qua2V5cyhjbG91ZFNjaGVtYS5maWVsZHMpXG4gICAgICAuZmlsdGVyKGZpZWxkTmFtZSA9PiAhdGhpcy5pc1Byb3RlY3RlZEZpZWxkcyhsb2NhbFNjaGVtYS5jbGFzc05hbWUsIGZpZWxkTmFtZSkpXG4gICAgICAuZm9yRWFjaChmaWVsZE5hbWUgPT4ge1xuICAgICAgICBjb25zdCBmaWVsZCA9IGNsb3VkU2NoZW1hLmZpZWxkc1tmaWVsZE5hbWVdO1xuICAgICAgICBpZiAoIWxvY2FsU2NoZW1hLmZpZWxkcyB8fCAhbG9jYWxTY2hlbWEuZmllbGRzW2ZpZWxkTmFtZV0pIHtcbiAgICAgICAgICBmaWVsZHNUb0RlbGV0ZS5wdXNoKGZpZWxkTmFtZSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbG9jYWxGaWVsZCA9IGxvY2FsU2NoZW1hLmZpZWxkc1tmaWVsZE5hbWVdO1xuICAgICAgICAvLyBDaGVjayBpZiBmaWVsZCBoYXMgYSBjaGFuZ2VkIHR5cGVcbiAgICAgICAgaWYgKFxuICAgICAgICAgICF0aGlzLnBhcmFtc0FyZUVxdWFscyhcbiAgICAgICAgICAgIHsgdHlwZTogZmllbGQudHlwZSwgdGFyZ2V0Q2xhc3M6IGZpZWxkLnRhcmdldENsYXNzIH0sXG4gICAgICAgICAgICB7IHR5cGU6IGxvY2FsRmllbGQudHlwZSwgdGFyZ2V0Q2xhc3M6IGxvY2FsRmllbGQudGFyZ2V0Q2xhc3MgfVxuICAgICAgICAgIClcbiAgICAgICAgKSB7XG4gICAgICAgICAgZmllbGRzVG9SZWNyZWF0ZS5wdXNoKHtcbiAgICAgICAgICAgIGZpZWxkTmFtZSxcbiAgICAgICAgICAgIGZyb206IHsgdHlwZTogZmllbGQudHlwZSwgdGFyZ2V0Q2xhc3M6IGZpZWxkLnRhcmdldENsYXNzIH0sXG4gICAgICAgICAgICB0bzogeyB0eXBlOiBsb2NhbEZpZWxkLnR5cGUsIHRhcmdldENsYXNzOiBsb2NhbEZpZWxkLnRhcmdldENsYXNzIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgc29tZXRoaW5nIGNoYW5nZWQgb3RoZXIgdGhhbiB0aGUgdHlwZSAobGlrZSByZXF1aXJlZCwgZGVmYXVsdFZhbHVlKVxuICAgICAgICBpZiAoIXRoaXMucGFyYW1zQXJlRXF1YWxzKGZpZWxkLCBsb2NhbEZpZWxkKSkge1xuICAgICAgICAgIGZpZWxkc1dpdGhDaGFuZ2VkUGFyYW1zLnB1c2goZmllbGROYW1lKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICBpZiAodGhpcy5zY2hlbWFPcHRpb25zLmRlbGV0ZUV4dHJhRmllbGRzID09PSB0cnVlKSB7XG4gICAgICBmaWVsZHNUb0RlbGV0ZS5mb3JFYWNoKGZpZWxkTmFtZSA9PiB7XG4gICAgICAgIG5ld0xvY2FsU2NoZW1hLmRlbGV0ZUZpZWxkKGZpZWxkTmFtZSk7XG4gICAgICB9KTtcblxuICAgICAgLy8gRGVsZXRlIGZpZWxkcyBmcm9tIHRoZSBzY2hlbWEgdGhlbiBhcHBseSBjaGFuZ2VzXG4gICAgICBhd2FpdCB0aGlzLnVwZGF0ZVNjaGVtYVRvREIobmV3TG9jYWxTY2hlbWEpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zY2hlbWFPcHRpb25zLnN0cmljdCA9PT0gdHJ1ZSAmJiBmaWVsZHNUb0RlbGV0ZS5sZW5ndGgpIHtcbiAgICAgIGxvZ2dlci53YXJuKFxuICAgICAgICBgVGhlIGZvbGxvd2luZyBmaWVsZHMgZXhpc3QgaW4gdGhlIGRhdGFiYXNlIGZvciBcIiR7XG4gICAgICAgICAgbG9jYWxTY2hlbWEuY2xhc3NOYW1lXG4gICAgICAgIH1cIiwgYnV0IGFyZSBtaXNzaW5nIGluIHRoZSBzY2hlbWEgOiBcIiR7ZmllbGRzVG9EZWxldGUuam9pbignXCIgLFwiJyl9XCJgXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnNjaGVtYU9wdGlvbnMucmVjcmVhdGVNb2RpZmllZEZpZWxkcyA9PT0gdHJ1ZSkge1xuICAgICAgZmllbGRzVG9SZWNyZWF0ZS5mb3JFYWNoKGZpZWxkID0+IHtcbiAgICAgICAgbmV3TG9jYWxTY2hlbWEuZGVsZXRlRmllbGQoZmllbGQuZmllbGROYW1lKTtcbiAgICAgIH0pO1xuXG4gICAgICAvLyBEZWxldGUgZmllbGRzIGZyb20gdGhlIHNjaGVtYSB0aGVuIGFwcGx5IGNoYW5nZXNcbiAgICAgIGF3YWl0IHRoaXMudXBkYXRlU2NoZW1hVG9EQihuZXdMb2NhbFNjaGVtYSk7XG5cbiAgICAgIGZpZWxkc1RvUmVjcmVhdGUuZm9yRWFjaChmaWVsZEluZm8gPT4ge1xuICAgICAgICBpZiAobG9jYWxTY2hlbWEuZmllbGRzKSB7XG4gICAgICAgICAgY29uc3QgZmllbGQgPSBsb2NhbFNjaGVtYS5maWVsZHNbZmllbGRJbmZvLmZpZWxkTmFtZV07XG4gICAgICAgICAgdGhpcy5oYW5kbGVGaWVsZHMobmV3TG9jYWxTY2hlbWEsIGZpZWxkSW5mby5maWVsZE5hbWUsIGZpZWxkKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnNjaGVtYU9wdGlvbnMuc3RyaWN0ID09PSB0cnVlICYmIGZpZWxkc1RvUmVjcmVhdGUubGVuZ3RoKSB7XG4gICAgICBmaWVsZHNUb1JlY3JlYXRlLmZvckVhY2goZmllbGQgPT4ge1xuICAgICAgICBjb25zdCBmcm9tID1cbiAgICAgICAgICBmaWVsZC5mcm9tLnR5cGUgKyAoZmllbGQuZnJvbS50YXJnZXRDbGFzcyA/IGAgKCR7ZmllbGQuZnJvbS50YXJnZXRDbGFzc30pYCA6ICcnKTtcbiAgICAgICAgY29uc3QgdG8gPSBmaWVsZC50by50eXBlICsgKGZpZWxkLnRvLnRhcmdldENsYXNzID8gYCAoJHtmaWVsZC50by50YXJnZXRDbGFzc30pYCA6ICcnKTtcblxuICAgICAgICBsb2dnZXIud2FybihcbiAgICAgICAgICBgVGhlIGZpZWxkIFwiJHtmaWVsZC5maWVsZE5hbWV9XCIgdHlwZSBkaWZmZXIgYmV0d2VlbiB0aGUgc2NoZW1hIGFuZCB0aGUgZGF0YWJhc2UgZm9yIFwiJHtsb2NhbFNjaGVtYS5jbGFzc05hbWV9XCI7IFNjaGVtYSBpcyBkZWZpbmVkIGFzIFwiJHt0b31cIiBhbmQgY3VycmVudCBkYXRhYmFzZSB0eXBlIGlzIFwiJHtmcm9tfVwiYFxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgZmllbGRzV2l0aENoYW5nZWRQYXJhbXMuZm9yRWFjaChmaWVsZE5hbWUgPT4ge1xuICAgICAgaWYgKGxvY2FsU2NoZW1hLmZpZWxkcykge1xuICAgICAgICBjb25zdCBmaWVsZCA9IGxvY2FsU2NoZW1hLmZpZWxkc1tmaWVsZE5hbWVdO1xuICAgICAgICB0aGlzLmhhbmRsZUZpZWxkcyhuZXdMb2NhbFNjaGVtYSwgZmllbGROYW1lLCBmaWVsZCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBIYW5kbGUgSW5kZXhlc1xuICAgIC8vIENoZWNrIGFkZGl0aW9uXG4gICAgaWYgKGxvY2FsU2NoZW1hLmluZGV4ZXMpIHtcbiAgICAgIE9iamVjdC5rZXlzKGxvY2FsU2NoZW1hLmluZGV4ZXMpLmZvckVhY2goaW5kZXhOYW1lID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICghY2xvdWRTY2hlbWEuaW5kZXhlcyB8fCAhY2xvdWRTY2hlbWEuaW5kZXhlc1tpbmRleE5hbWVdKSAmJlxuICAgICAgICAgICF0aGlzLmlzUHJvdGVjdGVkSW5kZXgobG9jYWxTY2hlbWEuY2xhc3NOYW1lLCBpbmRleE5hbWUpXG4gICAgICAgICkge1xuICAgICAgICAgIGlmIChsb2NhbFNjaGVtYS5pbmRleGVzKSB7XG4gICAgICAgICAgICBuZXdMb2NhbFNjaGVtYS5hZGRJbmRleChpbmRleE5hbWUsIGxvY2FsU2NoZW1hLmluZGV4ZXNbaW5kZXhOYW1lXSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCBpbmRleGVzVG9BZGQgPSBbXTtcblxuICAgIC8vIENoZWNrIGRlbGV0aW9uXG4gICAgaWYgKGNsb3VkU2NoZW1hLmluZGV4ZXMpIHtcbiAgICAgIE9iamVjdC5rZXlzKGNsb3VkU2NoZW1hLmluZGV4ZXMpLmZvckVhY2goaW5kZXhOYW1lID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmlzUHJvdGVjdGVkSW5kZXgobG9jYWxTY2hlbWEuY2xhc3NOYW1lLCBpbmRleE5hbWUpKSB7XG4gICAgICAgICAgaWYgKCFsb2NhbFNjaGVtYS5pbmRleGVzIHx8ICFsb2NhbFNjaGVtYS5pbmRleGVzW2luZGV4TmFtZV0pIHtcbiAgICAgICAgICAgIG5ld0xvY2FsU2NoZW1hLmRlbGV0ZUluZGV4KGluZGV4TmFtZSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgICF0aGlzLnBhcmFtc0FyZUVxdWFscyhsb2NhbFNjaGVtYS5pbmRleGVzW2luZGV4TmFtZV0sIGNsb3VkU2NoZW1hLmluZGV4ZXNbaW5kZXhOYW1lXSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIG5ld0xvY2FsU2NoZW1hLmRlbGV0ZUluZGV4KGluZGV4TmFtZSk7XG4gICAgICAgICAgICBpZiAobG9jYWxTY2hlbWEuaW5kZXhlcykge1xuICAgICAgICAgICAgICBpbmRleGVzVG9BZGQucHVzaCh7XG4gICAgICAgICAgICAgICAgaW5kZXhOYW1lLFxuICAgICAgICAgICAgICAgIGluZGV4OiBsb2NhbFNjaGVtYS5pbmRleGVzW2luZGV4TmFtZV0sXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5oYW5kbGVDTFAobG9jYWxTY2hlbWEsIG5ld0xvY2FsU2NoZW1hLCBjbG91ZFNjaGVtYSk7XG4gICAgLy8gQXBwbHkgY2hhbmdlc1xuICAgIGF3YWl0IHRoaXMudXBkYXRlU2NoZW1hVG9EQihuZXdMb2NhbFNjaGVtYSk7XG4gICAgLy8gQXBwbHkgbmV3L2NoYW5nZWQgaW5kZXhlc1xuICAgIGlmIChpbmRleGVzVG9BZGQubGVuZ3RoKSB7XG4gICAgICBsb2dnZXIuZGVidWcoXG4gICAgICAgIGBVcGRhdGluZyBpbmRleGVzIGZvciBcIiR7bmV3TG9jYWxTY2hlbWEuY2xhc3NOYW1lfVwiIDogICR7aW5kZXhlc1RvQWRkLmpvaW4oJyAsJyl9YFxuICAgICAgKTtcbiAgICAgIGluZGV4ZXNUb0FkZC5mb3JFYWNoKG8gPT4gbmV3TG9jYWxTY2hlbWEuYWRkSW5kZXgoby5pbmRleE5hbWUsIG8uaW5kZXgpKTtcbiAgICAgIGF3YWl0IHRoaXMudXBkYXRlU2NoZW1hVG9EQihuZXdMb2NhbFNjaGVtYSk7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlQ0xQKFxuICAgIGxvY2FsU2NoZW1hOiBNaWdyYXRpb25zLkpTT05TY2hlbWEsXG4gICAgbmV3TG9jYWxTY2hlbWE6IFBhcnNlLlNjaGVtYSxcbiAgICBjbG91ZFNjaGVtYTogUGFyc2UuU2NoZW1hXG4gICkge1xuICAgIGlmICghbG9jYWxTY2hlbWEuY2xhc3NMZXZlbFBlcm1pc3Npb25zICYmICFjbG91ZFNjaGVtYSkge1xuICAgICAgbG9nZ2VyLndhcm4oYGNsYXNzTGV2ZWxQZXJtaXNzaW9ucyBub3QgcHJvdmlkZWQgZm9yICR7bG9jYWxTY2hlbWEuY2xhc3NOYW1lfS5gKTtcbiAgICB9XG4gICAgLy8gVXNlIHNwcmVhZCB0byBhdm9pZCByZWFkIG9ubHkgaXNzdWUgKGVuY291bnRlcmVkIGJ5IE1vdW1vdWxzIHVzaW5nIGRpcmVjdEFjY2VzcylcbiAgICBjb25zdCBjbHAgPSAoeyAuLi5sb2NhbFNjaGVtYS5jbGFzc0xldmVsUGVybWlzc2lvbnMgfSB8fCB7fTogUGFyc2UuQ0xQLlBlcm1pc3Npb25zTWFwKTtcbiAgICAvLyBUbyBhdm9pZCBpbmNvbnNpc3RlbmN5IHdlIG5lZWQgdG8gcmVtb3ZlIGFsbCByaWdodHMgb24gYWRkRmllbGRcbiAgICBjbHAuYWRkRmllbGQgPSB7fTtcbiAgICBuZXdMb2NhbFNjaGVtYS5zZXRDTFAoY2xwKTtcbiAgfVxuXG4gIGlzUHJvdGVjdGVkRmllbGRzKGNsYXNzTmFtZTogc3RyaW5nLCBmaWVsZE5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiAoXG4gICAgICAhIWRlZmF1bHRDb2x1bW5zLl9EZWZhdWx0W2ZpZWxkTmFtZV0gfHxcbiAgICAgICEhKGRlZmF1bHRDb2x1bW5zW2NsYXNzTmFtZV0gJiYgZGVmYXVsdENvbHVtbnNbY2xhc3NOYW1lXVtmaWVsZE5hbWVdKVxuICAgICk7XG4gIH1cblxuICBpc1Byb3RlY3RlZEluZGV4KGNsYXNzTmFtZTogc3RyaW5nLCBpbmRleE5hbWU6IHN0cmluZykge1xuICAgIGNvbnN0IGluZGV4ZXMgPSBbJ19pZF8nXTtcbiAgICBzd2l0Y2ggKGNsYXNzTmFtZSkge1xuICAgICAgY2FzZSAnX1VzZXInOlxuICAgICAgICBpbmRleGVzLnB1c2goXG4gICAgICAgICAgJ2Nhc2VfaW5zZW5zaXRpdmVfdXNlcm5hbWUnLFxuICAgICAgICAgICdjYXNlX2luc2Vuc2l0aXZlX2VtYWlsJyxcbiAgICAgICAgICAndXNlcm5hbWVfMScsXG4gICAgICAgICAgJ2VtYWlsXzEnXG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnX1JvbGUnOlxuICAgICAgICBpbmRleGVzLnB1c2goJ25hbWVfMScpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnX0lkZW1wb3RlbmN5JzpcbiAgICAgICAgaW5kZXhlcy5wdXNoKCdyZXFJZF8xJyk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHJldHVybiBpbmRleGVzLmluZGV4T2YoaW5kZXhOYW1lKSAhPT0gLTE7XG4gIH1cblxuICBwYXJhbXNBcmVFcXVhbHM8VDogeyBba2V5OiBzdHJpbmddOiBhbnkgfT4ob2JqQTogVCwgb2JqQjogVCkge1xuICAgIGNvbnN0IGtleXNBOiBzdHJpbmdbXSA9IE9iamVjdC5rZXlzKG9iakEpO1xuICAgIGNvbnN0IGtleXNCOiBzdHJpbmdbXSA9IE9iamVjdC5rZXlzKG9iakIpO1xuXG4gICAgLy8gQ2hlY2sga2V5IG5hbWVcbiAgICBpZiAoa2V5c0EubGVuZ3RoICE9PSBrZXlzQi5sZW5ndGgpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4ga2V5c0EuZXZlcnkoayA9PiBvYmpBW2tdID09PSBvYmpCW2tdKTtcbiAgfVxuXG4gIGhhbmRsZUZpZWxkcyhuZXdMb2NhbFNjaGVtYTogUGFyc2UuU2NoZW1hLCBmaWVsZE5hbWU6IHN0cmluZywgZmllbGQ6IE1pZ3JhdGlvbnMuRmllbGRUeXBlKSB7XG4gICAgaWYgKGZpZWxkLnR5cGUgPT09ICdSZWxhdGlvbicpIHtcbiAgICAgIG5ld0xvY2FsU2NoZW1hLmFkZFJlbGF0aW9uKGZpZWxkTmFtZSwgZmllbGQudGFyZ2V0Q2xhc3MpO1xuICAgIH0gZWxzZSBpZiAoZmllbGQudHlwZSA9PT0gJ1BvaW50ZXInKSB7XG4gICAgICBuZXdMb2NhbFNjaGVtYS5hZGRQb2ludGVyKGZpZWxkTmFtZSwgZmllbGQudGFyZ2V0Q2xhc3MsIGZpZWxkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbmV3TG9jYWxTY2hlbWEuYWRkRmllbGQoZmllbGROYW1lLCBmaWVsZC50eXBlLCBmaWVsZCk7XG4gICAgfVxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBMkI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVQzQjtBQUNBLE1BQU1BLEtBQUssR0FBR0MsT0FBTyxDQUFDLFlBQVksQ0FBQztBQVU1QixNQUFNQyxjQUFjLENBQUM7RUFRMUJDLFdBQVcsQ0FBQ0MsYUFBdUMsRUFBRUMsTUFBMEIsRUFBRTtJQUMvRSxJQUFJLENBQUNDLFlBQVksR0FBRyxFQUFFO0lBQ3RCLElBQUksQ0FBQ0QsTUFBTSxHQUFHRSxlQUFNLENBQUNDLEdBQUcsQ0FBQ0gsTUFBTSxDQUFDSSxLQUFLLENBQUM7SUFDdEMsSUFBSSxDQUFDTCxhQUFhLEdBQUdBLGFBQWE7SUFDbEMsSUFBSUEsYUFBYSxJQUFJQSxhQUFhLENBQUNNLFdBQVcsRUFBRTtNQUM5QyxJQUFJLENBQUNDLEtBQUssQ0FBQ0MsT0FBTyxDQUFDUixhQUFhLENBQUNNLFdBQVcsQ0FBQyxFQUFFO1FBQzdDLE1BQU8sa0RBQWlEO01BQzFEO01BRUEsSUFBSSxDQUFDSixZQUFZLEdBQUdGLGFBQWEsQ0FBQ00sV0FBVztJQUMvQztJQUVBLElBQUksQ0FBQ0csT0FBTyxHQUFHLENBQUM7SUFDaEIsSUFBSSxDQUFDQyxVQUFVLEdBQUcsQ0FBQztFQUNyQjtFQUVBLE1BQU1DLGNBQWMsQ0FBQ0MsTUFBb0IsRUFBaUI7SUFDeEQsTUFBTUMsT0FBTyxHQUFHO01BQ2RDLFNBQVMsRUFBRUYsTUFBTSxDQUFDRSxTQUFTO01BQzNCQyxNQUFNLEVBQUVILE1BQU0sQ0FBQ0ksT0FBTztNQUN0QkMsT0FBTyxFQUFFTCxNQUFNLENBQUNNLFFBQVE7TUFDeEJDLHFCQUFxQixFQUFFUCxNQUFNLENBQUNRO0lBQ2hDLENBQUM7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
|
|
372
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9nZ2VyIiwicmVxdWlyZSIsIl9Db25maWciLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX1NjaGVtYXNSb3V0ZXIiLCJfU2NoZW1hQ29udHJvbGxlciIsIl9PcHRpb25zIiwiTWlncmF0aW9ucyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX0F1dGgiLCJfcmVzdCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJvd25LZXlzIiwib2JqZWN0IiwiZW51bWVyYWJsZU9ubHkiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwic3ltYm9scyIsImZpbHRlciIsInN5bSIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwidGFyZ2V0IiwiaSIsImFyZ3VtZW50cyIsImxlbmd0aCIsInNvdXJjZSIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsInZhbHVlIiwiX3RvUHJvcGVydHlLZXkiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImFyZyIsIl90b1ByaW1pdGl2ZSIsIlN0cmluZyIsImlucHV0IiwiaGludCIsInByaW0iLCJTeW1ib2wiLCJ0b1ByaW1pdGl2ZSIsInVuZGVmaW5lZCIsInJlcyIsIlR5cGVFcnJvciIsIk51bWJlciIsIlBhcnNlIiwiRGVmaW5lZFNjaGVtYXMiLCJjb25zdHJ1Y3RvciIsInNjaGVtYU9wdGlvbnMiLCJjb25maWciLCJsb2NhbFNjaGVtYXMiLCJDb25maWciLCJhcHBJZCIsImRlZmluaXRpb25zIiwiQXJyYXkiLCJpc0FycmF5IiwicmV0cmllcyIsIm1heFJldHJpZXMiLCJzYXZlU2NoZW1hVG9EQiIsInNjaGVtYSIsInBheWxvYWQiLCJjbGFzc05hbWUiLCJmaWVsZHMiLCJfZmllbGRzIiwiaW5kZXhlcyIsIl9pbmRleGVzIiwiY2xhc3NMZXZlbFBlcm1pc3Npb25zIiwiX2NscCIsImludGVybmFsQ3JlYXRlU2NoZW1hIiwicmVzZXRTY2hlbWFPcHMiLCJ1cGRhdGVTY2hlbWFUb0RCIiwiaW50ZXJuYWxVcGRhdGVTY2hlbWEiLCJleGVjdXRlIiwibG9nZ2VyIiwiaW5mbyIsImJlZm9yZU1pZ3JhdGlvbiIsIlByb21pc2UiLCJyZXNvbHZlIiwiZXhlY3V0ZU1pZ3JhdGlvbnMiLCJhZnRlck1pZ3JhdGlvbiIsImUiLCJlcnJvciIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImV4aXQiLCJ0aW1lb3V0Iiwic2V0VGltZW91dCIsImNyZWF0ZURlbGV0ZVNlc3Npb24iLCJzY2hlbWFDb250cm9sbGVyIiwiZGF0YWJhc2UiLCJsb2FkU2NoZW1hIiwiYWxsQ2xvdWRTY2hlbWFzIiwiZ2V0QWxsQ2xhc3NlcyIsImNsZWFyVGltZW91dCIsImFsbCIsIm1hcCIsImxvY2FsU2NoZW1hIiwic2F2ZU9yVXBkYXRlIiwiY2hlY2tGb3JNaXNzaW5nU2NoZW1hcyIsImVuZm9yY2VDTFBGb3JOb25Qcm92aWRlZENsYXNzIiwid2FpdCIsInN0cmljdCIsImNsb3VkU2NoZW1hcyIsInMiLCJtaXNzaW5nU2NoZW1hcyIsImMiLCJpbmNsdWRlcyIsInN5c3RlbUNsYXNzZXMiLCJTZXQiLCJzaXplIiwiam9pbiIsIndhcm4iLCJ0aW1lIiwibm9uUHJvdmlkZWRDbGFzc2VzIiwiY2xvdWRTY2hlbWEiLCJzb21lIiwicGFyc2VTY2hlbWEiLCJTY2hlbWEiLCJoYW5kbGVDTFAiLCJyZXNwb25zZSIsInJlc3QiLCJjcmVhdGUiLCJBdXRoIiwibWFzdGVyIiwiZGVsIiwib2JqZWN0SWQiLCJmaW5kIiwic2MiLCJ1cGRhdGVTY2hlbWEiLCJzYXZlU2NoZW1hIiwibmV3TG9jYWxTY2hlbWEiLCJmaWVsZE5hbWUiLCJpc1Byb3RlY3RlZEZpZWxkcyIsImZpZWxkIiwiaGFuZGxlRmllbGRzIiwiaW5kZXhOYW1lIiwiaXNQcm90ZWN0ZWRJbmRleCIsImFkZEluZGV4IiwiZmllbGRzVG9EZWxldGUiLCJmaWVsZHNUb1JlY3JlYXRlIiwiZmllbGRzV2l0aENoYW5nZWRQYXJhbXMiLCJsb2NhbEZpZWxkIiwicGFyYW1zQXJlRXF1YWxzIiwidHlwZSIsInRhcmdldENsYXNzIiwiZnJvbSIsInRvIiwiZGVsZXRlRXh0cmFGaWVsZHMiLCJkZWxldGVGaWVsZCIsInJlY3JlYXRlTW9kaWZpZWRGaWVsZHMiLCJmaWVsZEluZm8iLCJpbmRleGVzVG9BZGQiLCJkZWxldGVJbmRleCIsImluZGV4IiwiZGVidWciLCJvIiwiY2xwIiwiYWRkRmllbGQiLCJzZXRDTFAiLCJkZWZhdWx0Q29sdW1ucyIsIl9EZWZhdWx0IiwiaW5kZXhPZiIsIm9iakEiLCJvYmpCIiwia2V5c0EiLCJrZXlzQiIsImV2ZXJ5IiwiayIsImFkZFJlbGF0aW9uIiwiYWRkUG9pbnRlciIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvU2NoZW1hTWlncmF0aW9ucy9EZWZpbmVkU2NoZW1hcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAZmxvd1xuLy8gQGZsb3ctZGlzYWJsZS1uZXh0IENhbm5vdCByZXNvbHZlIG1vZHVsZSBgcGFyc2Uvbm9kZWAuXG5jb25zdCBQYXJzZSA9IHJlcXVpcmUoJ3BhcnNlL25vZGUnKTtcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gJy4uL2xvZ2dlcic7XG5pbXBvcnQgQ29uZmlnIGZyb20gJy4uL0NvbmZpZyc7XG5pbXBvcnQgeyBpbnRlcm5hbENyZWF0ZVNjaGVtYSwgaW50ZXJuYWxVcGRhdGVTY2hlbWEgfSBmcm9tICcuLi9Sb3V0ZXJzL1NjaGVtYXNSb3V0ZXInO1xuaW1wb3J0IHsgZGVmYXVsdENvbHVtbnMsIHN5c3RlbUNsYXNzZXMgfSBmcm9tICcuLi9Db250cm9sbGVycy9TY2hlbWFDb250cm9sbGVyJztcbmltcG9ydCB7IFBhcnNlU2VydmVyT3B0aW9ucyB9IGZyb20gJy4uL09wdGlvbnMnO1xuaW1wb3J0ICogYXMgTWlncmF0aW9ucyBmcm9tICcuL01pZ3JhdGlvbnMnO1xuaW1wb3J0IEF1dGggZnJvbSAnLi4vQXV0aCc7XG5pbXBvcnQgcmVzdCBmcm9tICcuLi9yZXN0JztcblxuZXhwb3J0IGNsYXNzIERlZmluZWRTY2hlbWFzIHtcbiAgY29uZmlnOiBQYXJzZVNlcnZlck9wdGlvbnM7XG4gIHNjaGVtYU9wdGlvbnM6IE1pZ3JhdGlvbnMuU2NoZW1hT3B0aW9ucztcbiAgbG9jYWxTY2hlbWFzOiBNaWdyYXRpb25zLkpTT05TY2hlbWFbXTtcbiAgcmV0cmllczogbnVtYmVyO1xuICBtYXhSZXRyaWVzOiBudW1iZXI7XG4gIGFsbENsb3VkU2NoZW1hczogUGFyc2UuU2NoZW1hW107XG5cbiAgY29uc3RydWN0b3Ioc2NoZW1hT3B0aW9uczogTWlncmF0aW9ucy5TY2hlbWFPcHRpb25zLCBjb25maWc6IFBhcnNlU2VydmVyT3B0aW9ucykge1xuICAgIHRoaXMubG9jYWxTY2hlbWFzID0gW107XG4gICAgdGhpcy5jb25maWcgPSBDb25maWcuZ2V0KGNvbmZpZy5hcHBJZCk7XG4gICAgdGhpcy5zY2hlbWFPcHRpb25zID0gc2NoZW1hT3B0aW9ucztcbiAgICBpZiAoc2NoZW1hT3B0aW9ucyAmJiBzY2hlbWFPcHRpb25zLmRlZmluaXRpb25zKSB7XG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkoc2NoZW1hT3B0aW9ucy5kZWZpbml0aW9ucykpIHtcbiAgICAgICAgdGhyb3cgYFwic2NoZW1hLmRlZmluaXRpb25zXCIgbXVzdCBiZSBhbiBhcnJheSBvZiBzY2hlbWFzYDtcbiAgICAgIH1cblxuICAgICAgdGhpcy5sb2NhbFNjaGVtYXMgPSBzY2hlbWFPcHRpb25zLmRlZmluaXRpb25zO1xuICAgIH1cblxuICAgIHRoaXMucmV0cmllcyA9IDA7XG4gICAgdGhpcy5tYXhSZXRyaWVzID0gMztcbiAgfVxuXG4gIGFzeW5jIHNhdmVTY2hlbWFUb0RCKHNjaGVtYTogUGFyc2UuU2NoZW1hKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICAgIGNsYXNzTmFtZTogc2NoZW1hLmNsYXNzTmFtZSxcbiAgICAgIGZpZWxkczogc2NoZW1hLl9maWVsZHMsXG4gICAgICBpbmRleGVzOiBzY2hlbWEuX2luZGV4ZXMsXG4gICAgICBjbGFzc0xldmVsUGVybWlzc2lvbnM6IHNjaGVtYS5fY2xwLFxuICAgIH07XG4gICAgYXdhaXQgaW50ZXJuYWxDcmVhdGVTY2hlbWEoc2NoZW1hLmNsYXNzTmFtZSwgcGF5bG9hZCwgdGhpcy5jb25maWcpO1xuICAgIHRoaXMucmVzZXRTY2hlbWFPcHMoc2NoZW1hKTtcbiAgfVxuXG4gIHJlc2V0U2NoZW1hT3BzKHNjaGVtYTogUGFyc2UuU2NoZW1hKSB7XG4gICAgLy8gUmVzZXQgb3BzIGxpa2UgU0RLXG4gICAgc2NoZW1hLl9maWVsZHMgPSB7fTtcbiAgICBzY2hlbWEuX2luZGV4ZXMgPSB7fTtcbiAgfVxuXG4gIC8vIFNpbXVsYXRlIHVwZGF0ZSBsaWtlIHRoZSBTREtcbiAgLy8gV2UgY2Fubm90IHVzZSBTREsgc2luY2Ugcm91dGVzIGFyZSBkaXNhYmxlZFxuICBhc3luYyB1cGRhdGVTY2hlbWFUb0RCKHNjaGVtYTogUGFyc2UuU2NoZW1hKSB7XG4gICAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICAgIGNsYXNzTmFtZTogc2NoZW1hLmNsYXNzTmFtZSxcbiAgICAgIGZpZWxkczogc2NoZW1hLl9maWVsZHMsXG4gICAgICBpbmRleGVzOiBzY2hlbWEuX2luZGV4ZXMsXG4gICAgICBjbGFzc0xldmVsUGVybWlzc2lvbnM6IHNjaGVtYS5fY2xwLFxuICAgIH07XG4gICAgYXdhaXQgaW50ZXJuYWxVcGRhdGVTY2hlbWEoc2NoZW1hLmNsYXNzTmFtZSwgcGF5bG9hZCwgdGhpcy5jb25maWcpO1xuICAgIHRoaXMucmVzZXRTY2hlbWFPcHMoc2NoZW1hKTtcbiAgfVxuXG4gIGFzeW5jIGV4ZWN1dGUoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGxvZ2dlci5pbmZvKCdSdW5uaW5nIE1pZ3JhdGlvbnMnKTtcbiAgICAgIGlmICh0aGlzLnNjaGVtYU9wdGlvbnMgJiYgdGhpcy5zY2hlbWFPcHRpb25zLmJlZm9yZU1pZ3JhdGlvbikge1xuICAgICAgICBhd2FpdCBQcm9taXNlLnJlc29sdmUodGhpcy5zY2hlbWFPcHRpb25zLmJlZm9yZU1pZ3JhdGlvbigpKTtcbiAgICAgIH1cblxuICAgICAgYXdhaXQgdGhpcy5leGVjdXRlTWlncmF0aW9ucygpO1xuXG4gICAgICBpZiAodGhpcy5zY2hlbWFPcHRpb25zICYmIHRoaXMuc2NoZW1hT3B0aW9ucy5hZnRlck1pZ3JhdGlvbikge1xuICAgICAgICBhd2FpdCBQcm9taXNlLnJlc29sdmUodGhpcy5zY2hlbWFPcHRpb25zLmFmdGVyTWlncmF0aW9uKCkpO1xuICAgICAgfVxuXG4gICAgICBsb2dnZXIuaW5mbygnUnVubmluZyBNaWdyYXRpb25zIENvbXBsZXRlZCcpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGxvZ2dlci5lcnJvcihgRmFpbGVkIHRvIHJ1biBtaWdyYXRpb25zOiAke2V9YCk7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykgcHJvY2Vzcy5leGl0KDEpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGV4ZWN1dGVNaWdyYXRpb25zKCkge1xuICAgIGxldCB0aW1lb3V0ID0gbnVsbDtcbiAgICB0cnkge1xuICAgICAgLy8gU2V0IHVwIGEgdGltZSBvdXQgaW4gcHJvZHVjdGlvblxuICAgICAgLy8gaWYgd2UgZmFpbCB0byBnZXQgc2NoZW1hXG4gICAgICAvLyBwbTIgb3IgSzhzIGFuZCBtYW55IG90aGVyIHByb2Nlc3MgbWFuYWdlcnMgd2lsbCB0cnkgdG8gcmVzdGFydCB0aGUgcHJvY2Vzc1xuICAgICAgLy8gYWZ0ZXIgdGhlIGV4aXRcbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIHRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBsb2dnZXIuZXJyb3IoJ1RpbWVvdXQgb2NjdXJyZWQgZHVyaW5nIGV4ZWN1dGlvbiBvZiBtaWdyYXRpb25zLiBFeGl0aW5nLi4uJyk7XG4gICAgICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgICAgICB9LCAyMDAwMCk7XG4gICAgICB9XG5cbiAgICAgIGF3YWl0IHRoaXMuY3JlYXRlRGVsZXRlU2Vzc2lvbigpO1xuICAgICAgLy8gQGZsb3ctZGlzYWJsZS1uZXh0LWxpbmVcbiAgICAgIGNvbnN0IHNjaGVtYUNvbnRyb2xsZXIgPSBhd2FpdCB0aGlzLmNvbmZpZy5kYXRhYmFzZS5sb2FkU2NoZW1hKCk7XG4gICAgICB0aGlzLmFsbENsb3VkU2NoZW1hcyA9IGF3YWl0IHNjaGVtYUNvbnRyb2xsZXIuZ2V0QWxsQ2xhc3NlcygpO1xuICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xuICAgICAgYXdhaXQgUHJvbWlzZS5hbGwodGhpcy5sb2NhbFNjaGVtYXMubWFwKGFzeW5jIGxvY2FsU2NoZW1hID0+IHRoaXMuc2F2ZU9yVXBkYXRlKGxvY2FsU2NoZW1hKSkpO1xuXG4gICAgICB0aGlzLmNoZWNrRm9yTWlzc2luZ1NjaGVtYXMoKTtcbiAgICAgIGF3YWl0IHRoaXMuZW5mb3JjZUNMUEZvck5vblByb3ZpZGVkQ2xhc3MoKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBpZiAodGltZW91dCkgY2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xuICAgICAgaWYgKHRoaXMucmV0cmllcyA8IHRoaXMubWF4UmV0cmllcykge1xuICAgICAgICB0aGlzLnJldHJpZXMrKztcbiAgICAgICAgLy8gZmlyc3QgcmV0cnkgMXNlYywgMnNlYywgM3NlYyB0b3RhbCA2c2VjIHJldHJ5IHNlcXVlbmNlXG4gICAgICAgIC8vIHJldHJ5IHdpbGwgb25seSBoYXBwZW4gaW4gY2FzZSBvZiBkZXBsb3lpbmcgbXVsdGkgcGFyc2Ugc2VydmVyIGluc3RhbmNlXG4gICAgICAgIC8vIGF0IHRoZSBzYW1lIHRpbWUuIE1vZGVybiBzeXN0ZW1zIGxpa2UgazggYXZvaWQgdGhpcyBieSBkb2luZyByb2xsaW5nIHVwZGF0ZXNcbiAgICAgICAgYXdhaXQgdGhpcy53YWl0KDEwMDAgKiB0aGlzLnJldHJpZXMpO1xuICAgICAgICBhd2FpdCB0aGlzLmV4ZWN1dGVNaWdyYXRpb25zKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsb2dnZXIuZXJyb3IoYEZhaWxlZCB0byBydW4gbWlncmF0aW9uczogJHtlfWApO1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykgcHJvY2Vzcy5leGl0KDEpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNoZWNrRm9yTWlzc2luZ1NjaGVtYXMoKSB7XG4gICAgaWYgKHRoaXMuc2NoZW1hT3B0aW9ucy5zdHJpY3QgIT09IHRydWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjbG91ZFNjaGVtYXMgPSB0aGlzLmFsbENsb3VkU2NoZW1hcy5tYXAocyA9PiBzLmNsYXNzTmFtZSk7XG4gICAgY29uc3QgbG9jYWxTY2hlbWFzID0gdGhpcy5sb2NhbFNjaGVtYXMubWFwKHMgPT4gcy5jbGFzc05hbWUpO1xuICAgIGNvbnN0IG1pc3NpbmdTY2hlbWFzID0gY2xvdWRTY2hlbWFzLmZpbHRlcihcbiAgICAgIGMgPT4gIWxvY2FsU2NoZW1hcy5pbmNsdWRlcyhjKSAmJiAhc3lzdGVtQ2xhc3Nlcy5pbmNsdWRlcyhjKVxuICAgICk7XG5cbiAgICBpZiAobmV3IFNldChsb2NhbFNjaGVtYXMpLnNpemUgIT09IGxvY2FsU2NoZW1hcy5sZW5ndGgpIHtcbiAgICAgIGxvZ2dlci5lcnJvcihcbiAgICAgICAgYFRoZSBsaXN0IG9mIHNjaGVtYXMgcHJvdmlkZWQgY29udGFpbnMgZHVwbGljYXRlZCBcImNsYXNzTmFtZVwiICBcIiR7bG9jYWxTY2hlbWFzLmpvaW4oXG4gICAgICAgICAgJ1wiLFwiJ1xuICAgICAgICApfVwiYFxuICAgICAgKTtcbiAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zY2hlbWFPcHRpb25zLnN0cmljdCAmJiBtaXNzaW5nU2NoZW1hcy5sZW5ndGgpIHtcbiAgICAgIGxvZ2dlci53YXJuKFxuICAgICAgICBgVGhlIGZvbGxvd2luZyBzY2hlbWFzIGFyZSBjdXJyZW50bHkgcHJlc2VudCBpbiB0aGUgZGF0YWJhc2UsIGJ1dCBub3QgZXhwbGljaXRseSBkZWZpbmVkIGluIGEgc2NoZW1hOiBcIiR7bWlzc2luZ1NjaGVtYXMuam9pbihcbiAgICAgICAgICAnXCIsIFwiJ1xuICAgICAgICApfVwiYFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvLyBSZXF1aXJlZCBmb3IgdGVzdGluZyBwdXJwb3NlXG4gIHdhaXQodGltZTogbnVtYmVyKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCB0aW1lKSk7XG4gIH1cblxuICBhc3luYyBlbmZvcmNlQ0xQRm9yTm9uUHJvdmlkZWRDbGFzcygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBub25Qcm92aWRlZENsYXNzZXMgPSB0aGlzLmFsbENsb3VkU2NoZW1hcy5maWx0ZXIoXG4gICAgICBjbG91ZFNjaGVtYSA9PlxuICAgICAgICAhdGhpcy5sb2NhbFNjaGVtYXMuc29tZShsb2NhbFNjaGVtYSA9PiBsb2NhbFNjaGVtYS5jbGFzc05hbWUgPT09IGNsb3VkU2NoZW1hLmNsYXNzTmFtZSlcbiAgICApO1xuICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgbm9uUHJvdmlkZWRDbGFzc2VzLm1hcChhc3luYyBzY2hlbWEgPT4ge1xuICAgICAgICBjb25zdCBwYXJzZVNjaGVtYSA9IG5ldyBQYXJzZS5TY2hlbWEoc2NoZW1hLmNsYXNzTmFtZSk7XG4gICAgICAgIHRoaXMuaGFuZGxlQ0xQKHNjaGVtYSwgcGFyc2VTY2hlbWEpO1xuICAgICAgICBhd2FpdCB0aGlzLnVwZGF0ZVNjaGVtYVRvREIocGFyc2VTY2hlbWEpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLy8gQ3JlYXRlIGEgZmFrZSBzZXNzaW9uIHNpbmNlIFBhcnNlIGRvIG5vdCBjcmVhdGUgdGhlIF9TZXNzaW9uIHVudGlsXG4gIC8vIGEgc2Vzc2lvbiBpcyBjcmVhdGVkXG4gIGFzeW5jIGNyZWF0ZURlbGV0ZVNlc3Npb24oKSB7XG4gICAgY29uc3QgeyByZXNwb25zZSB9ID0gYXdhaXQgcmVzdC5jcmVhdGUodGhpcy5jb25maWcsIEF1dGgubWFzdGVyKHRoaXMuY29uZmlnKSwgJ19TZXNzaW9uJywge30pO1xuICAgIGF3YWl0IHJlc3QuZGVsKHRoaXMuY29uZmlnLCBBdXRoLm1hc3Rlcih0aGlzLmNvbmZpZyksICdfU2Vzc2lvbicsIHJlc3BvbnNlLm9iamVjdElkKTtcbiAgfVxuXG4gIGFzeW5jIHNhdmVPclVwZGF0ZShsb2NhbFNjaGVtYTogTWlncmF0aW9ucy5KU09OU2NoZW1hKSB7XG4gICAgY29uc3QgY2xvdWRTY2hlbWEgPSB0aGlzLmFsbENsb3VkU2NoZW1hcy5maW5kKHNjID0+IHNjLmNsYXNzTmFtZSA9PT0gbG9jYWxTY2hlbWEuY2xhc3NOYW1lKTtcbiAgICBpZiAoY2xvdWRTY2hlbWEpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHRoaXMudXBkYXRlU2NoZW1hKGxvY2FsU2NoZW1hLCBjbG91ZFNjaGVtYSk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHRocm93IGBFcnJvciBkdXJpbmcgdXBkYXRlIG9mIHNjaGVtYSBmb3IgdHlwZSAke2Nsb3VkU2NoZW1hLmNsYXNzTmFtZX06ICR7ZX1gO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCB0aGlzLnNhdmVTY2hlbWEobG9jYWxTY2hlbWEpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICB0aHJvdyBgRXJyb3Igd2hpbGUgc2F2aW5nIFNjaGVtYSBmb3IgdHlwZSAke2xvY2FsU2NoZW1hLmNsYXNzTmFtZX06ICR7ZX1gO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHNhdmVTY2hlbWEobG9jYWxTY2hlbWE6IE1pZ3JhdGlvbnMuSlNPTlNjaGVtYSkge1xuICAgIGNvbnN0IG5ld0xvY2FsU2NoZW1hID0gbmV3IFBhcnNlLlNjaGVtYShsb2NhbFNjaGVtYS5jbGFzc05hbWUpO1xuICAgIGlmIChsb2NhbFNjaGVtYS5maWVsZHMpIHtcbiAgICAgIC8vIEhhbmRsZSBmaWVsZHNcbiAgICAgIE9iamVjdC5rZXlzKGxvY2FsU2NoZW1hLmZpZWxkcylcbiAgICAgICAgLmZpbHRlcihmaWVsZE5hbWUgPT4gIXRoaXMuaXNQcm90ZWN0ZWRGaWVsZHMobG9jYWxTY2hlbWEuY2xhc3NOYW1lLCBmaWVsZE5hbWUpKVxuICAgICAgICAuZm9yRWFjaChmaWVsZE5hbWUgPT4ge1xuICAgICAgICAgIGlmIChsb2NhbFNjaGVtYS5maWVsZHMpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpZWxkID0gbG9jYWxTY2hlbWEuZmllbGRzW2ZpZWxkTmFtZV07XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUZpZWxkcyhuZXdMb2NhbFNjaGVtYSwgZmllbGROYW1lLCBmaWVsZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgLy8gSGFuZGxlIGluZGV4ZXNcbiAgICBpZiAobG9jYWxTY2hlbWEuaW5kZXhlcykge1xuICAgICAgT2JqZWN0LmtleXMobG9jYWxTY2hlbWEuaW5kZXhlcykuZm9yRWFjaChpbmRleE5hbWUgPT4ge1xuICAgICAgICBpZiAobG9jYWxTY2hlbWEuaW5kZXhlcyAmJiAhdGhpcy5pc1Byb3RlY3RlZEluZGV4KGxvY2FsU2NoZW1hLmNsYXNzTmFtZSwgaW5kZXhOYW1lKSkge1xuICAgICAgICAgIG5ld0xvY2FsU2NoZW1hLmFkZEluZGV4KGluZGV4TmFtZSwgbG9jYWxTY2hlbWEuaW5kZXhlc1tpbmRleE5hbWVdKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5oYW5kbGVDTFAobG9jYWxTY2hlbWEsIG5ld0xvY2FsU2NoZW1hKTtcblxuICAgIHJldHVybiBhd2FpdCB0aGlzLnNhdmVTY2hlbWFUb0RCKG5ld0xvY2FsU2NoZW1hKTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZVNjaGVtYShsb2NhbFNjaGVtYTogTWlncmF0aW9ucy5KU09OU2NoZW1hLCBjbG91ZFNjaGVtYTogUGFyc2UuU2NoZW1hKSB7XG4gICAgY29uc3QgbmV3TG9jYWxTY2hlbWEgPSBuZXcgUGFyc2UuU2NoZW1hKGxvY2FsU2NoZW1hLmNsYXNzTmFtZSk7XG5cbiAgICAvLyBIYW5kbGUgZmllbGRzXG4gICAgLy8gQ2hlY2sgYWRkaXRpb25cbiAgICBpZiAobG9jYWxTY2hlbWEuZmllbGRzKSB7XG4gICAgICBPYmplY3Qua2V5cyhsb2NhbFNjaGVtYS5maWVsZHMpXG4gICAgICAgIC5maWx0ZXIoZmllbGROYW1lID0+ICF0aGlzLmlzUHJvdGVjdGVkRmllbGRzKGxvY2FsU2NoZW1hLmNsYXNzTmFtZSwgZmllbGROYW1lKSlcbiAgICAgICAgLmZvckVhY2goZmllbGROYW1lID0+IHtcbiAgICAgICAgICAvLyBAZmxvdy1kaXNhYmxlLW5leHRcbiAgICAgICAgICBjb25zdCBmaWVsZCA9IGxvY2FsU2NoZW1hLmZpZWxkc1tmaWVsZE5hbWVdO1xuICAgICAgICAgIGlmICghY2xvdWRTY2hlbWEuZmllbGRzW2ZpZWxkTmFtZV0pIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlRmllbGRzKG5ld0xvY2FsU2NoZW1hLCBmaWVsZE5hbWUsIGZpZWxkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IGZpZWxkc1RvRGVsZXRlOiBzdHJpbmdbXSA9IFtdO1xuICAgIGNvbnN0IGZpZWxkc1RvUmVjcmVhdGU6IHtcbiAgICAgIGZpZWxkTmFtZTogc3RyaW5nLFxuICAgICAgZnJvbTogeyB0eXBlOiBzdHJpbmcsIHRhcmdldENsYXNzPzogc3RyaW5nIH0sXG4gICAgICB0bzogeyB0eXBlOiBzdHJpbmcsIHRhcmdldENsYXNzPzogc3RyaW5nIH0sXG4gICAgfVtdID0gW107XG4gICAgY29uc3QgZmllbGRzV2l0aENoYW5nZWRQYXJhbXM6IHN0cmluZ1tdID0gW107XG5cbiAgICAvLyBDaGVjayBkZWxldGlvblxuICAgIE9iamVjdC5rZXlzKGNsb3VkU2NoZW1hLmZpZWxkcylcbiAgICAgIC5maWx0ZXIoZmllbGROYW1lID0+ICF0aGlzLmlzUHJvdGVjdGVkRmllbGRzKGxvY2FsU2NoZW1hLmNsYXNzTmFtZSwgZmllbGROYW1lKSlcbiAgICAgIC5mb3JFYWNoKGZpZWxkTmFtZSA9PiB7XG4gICAgICAgIGNvbnN0IGZpZWxkID0gY2xvdWRTY2hlbWEuZmllbGRzW2ZpZWxkTmFtZV07XG4gICAgICAgIGlmICghbG9jYWxTY2hlbWEuZmllbGRzIHx8ICFsb2NhbFNjaGVtYS5maWVsZHNbZmllbGROYW1lXSkge1xuICAgICAgICAgIGZpZWxkc1RvRGVsZXRlLnB1c2goZmllbGROYW1lKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBsb2NhbEZpZWxkID0gbG9jYWxTY2hlbWEuZmllbGRzW2ZpZWxkTmFtZV07XG4gICAgICAgIC8vIENoZWNrIGlmIGZpZWxkIGhhcyBhIGNoYW5nZWQgdHlwZVxuICAgICAgICBpZiAoXG4gICAgICAgICAgIXRoaXMucGFyYW1zQXJlRXF1YWxzKFxuICAgICAgICAgICAgeyB0eXBlOiBmaWVsZC50eXBlLCB0YXJnZXRDbGFzczogZmllbGQudGFyZ2V0Q2xhc3MgfSxcbiAgICAgICAgICAgIHsgdHlwZTogbG9jYWxGaWVsZC50eXBlLCB0YXJnZXRDbGFzczogbG9jYWxGaWVsZC50YXJnZXRDbGFzcyB9XG4gICAgICAgICAgKVxuICAgICAgICApIHtcbiAgICAgICAgICBmaWVsZHNUb1JlY3JlYXRlLnB1c2goe1xuICAgICAgICAgICAgZmllbGROYW1lLFxuICAgICAgICAgICAgZnJvbTogeyB0eXBlOiBmaWVsZC50eXBlLCB0YXJnZXRDbGFzczogZmllbGQudGFyZ2V0Q2xhc3MgfSxcbiAgICAgICAgICAgIHRvOiB7IHR5cGU6IGxvY2FsRmllbGQudHlwZSwgdGFyZ2V0Q2xhc3M6IGxvY2FsRmllbGQudGFyZ2V0Q2xhc3MgfSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDaGVjayBpZiBzb21ldGhpbmcgY2hhbmdlZCBvdGhlciB0aGFuIHRoZSB0eXBlIChsaWtlIHJlcXVpcmVkLCBkZWZhdWx0VmFsdWUpXG4gICAgICAgIGlmICghdGhpcy5wYXJhbXNBcmVFcXVhbHMoZmllbGQsIGxvY2FsRmllbGQpKSB7XG4gICAgICAgICAgZmllbGRzV2l0aENoYW5nZWRQYXJhbXMucHVzaChmaWVsZE5hbWUpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIGlmICh0aGlzLnNjaGVtYU9wdGlvbnMuZGVsZXRlRXh0cmFGaWVsZHMgPT09IHRydWUpIHtcbiAgICAgIGZpZWxkc1RvRGVsZXRlLmZvckVhY2goZmllbGROYW1lID0+IHtcbiAgICAgICAgbmV3TG9jYWxTY2hlbWEuZGVsZXRlRmllbGQoZmllbGROYW1lKTtcbiAgICAgIH0pO1xuXG4gICAgICAvLyBEZWxldGUgZmllbGRzIGZyb20gdGhlIHNjaGVtYSB0aGVuIGFwcGx5IGNoYW5nZXNcbiAgICAgIGF3YWl0IHRoaXMudXBkYXRlU2NoZW1hVG9EQihuZXdMb2NhbFNjaGVtYSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnNjaGVtYU9wdGlvbnMuc3RyaWN0ID09PSB0cnVlICYmIGZpZWxkc1RvRGVsZXRlLmxlbmd0aCkge1xuICAgICAgbG9nZ2VyLndhcm4oXG4gICAgICAgIGBUaGUgZm9sbG93aW5nIGZpZWxkcyBleGlzdCBpbiB0aGUgZGF0YWJhc2UgZm9yIFwiJHtcbiAgICAgICAgICBsb2NhbFNjaGVtYS5jbGFzc05hbWVcbiAgICAgICAgfVwiLCBidXQgYXJlIG1pc3NpbmcgaW4gdGhlIHNjaGVtYSA6IFwiJHtmaWVsZHNUb0RlbGV0ZS5qb2luKCdcIiAsXCInKX1cImBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2NoZW1hT3B0aW9ucy5yZWNyZWF0ZU1vZGlmaWVkRmllbGRzID09PSB0cnVlKSB7XG4gICAgICBmaWVsZHNUb1JlY3JlYXRlLmZvckVhY2goZmllbGQgPT4ge1xuICAgICAgICBuZXdMb2NhbFNjaGVtYS5kZWxldGVGaWVsZChmaWVsZC5maWVsZE5hbWUpO1xuICAgICAgfSk7XG5cbiAgICAgIC8vIERlbGV0ZSBmaWVsZHMgZnJvbSB0aGUgc2NoZW1hIHRoZW4gYXBwbHkgY2hhbmdlc1xuICAgICAgYXdhaXQgdGhpcy51cGRhdGVTY2hlbWFUb0RCKG5ld0xvY2FsU2NoZW1hKTtcblxuICAgICAgZmllbGRzVG9SZWNyZWF0ZS5mb3JFYWNoKGZpZWxkSW5mbyA9PiB7XG4gICAgICAgIGlmIChsb2NhbFNjaGVtYS5maWVsZHMpIHtcbiAgICAgICAgICBjb25zdCBmaWVsZCA9IGxvY2FsU2NoZW1hLmZpZWxkc1tmaWVsZEluZm8uZmllbGROYW1lXTtcbiAgICAgICAgICB0aGlzLmhhbmRsZUZpZWxkcyhuZXdMb2NhbFNjaGVtYSwgZmllbGRJbmZvLmZpZWxkTmFtZSwgZmllbGQpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2NoZW1hT3B0aW9ucy5zdHJpY3QgPT09IHRydWUgJiYgZmllbGRzVG9SZWNyZWF0ZS5sZW5ndGgpIHtcbiAgICAgIGZpZWxkc1RvUmVjcmVhdGUuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICAgIGNvbnN0IGZyb20gPVxuICAgICAgICAgIGZpZWxkLmZyb20udHlwZSArIChmaWVsZC5mcm9tLnRhcmdldENsYXNzID8gYCAoJHtmaWVsZC5mcm9tLnRhcmdldENsYXNzfSlgIDogJycpO1xuICAgICAgICBjb25zdCB0byA9IGZpZWxkLnRvLnR5cGUgKyAoZmllbGQudG8udGFyZ2V0Q2xhc3MgPyBgICgke2ZpZWxkLnRvLnRhcmdldENsYXNzfSlgIDogJycpO1xuXG4gICAgICAgIGxvZ2dlci53YXJuKFxuICAgICAgICAgIGBUaGUgZmllbGQgXCIke2ZpZWxkLmZpZWxkTmFtZX1cIiB0eXBlIGRpZmZlciBiZXR3ZWVuIHRoZSBzY2hlbWEgYW5kIHRoZSBkYXRhYmFzZSBmb3IgXCIke2xvY2FsU2NoZW1hLmNsYXNzTmFtZX1cIjsgU2NoZW1hIGlzIGRlZmluZWQgYXMgXCIke3RvfVwiIGFuZCBjdXJyZW50IGRhdGFiYXNlIHR5cGUgaXMgXCIke2Zyb219XCJgXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBmaWVsZHNXaXRoQ2hhbmdlZFBhcmFtcy5mb3JFYWNoKGZpZWxkTmFtZSA9PiB7XG4gICAgICBpZiAobG9jYWxTY2hlbWEuZmllbGRzKSB7XG4gICAgICAgIGNvbnN0IGZpZWxkID0gbG9jYWxTY2hlbWEuZmllbGRzW2ZpZWxkTmFtZV07XG4gICAgICAgIHRoaXMuaGFuZGxlRmllbGRzKG5ld0xvY2FsU2NoZW1hLCBmaWVsZE5hbWUsIGZpZWxkKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIEhhbmRsZSBJbmRleGVzXG4gICAgLy8gQ2hlY2sgYWRkaXRpb25cbiAgICBpZiAobG9jYWxTY2hlbWEuaW5kZXhlcykge1xuICAgICAgT2JqZWN0LmtleXMobG9jYWxTY2hlbWEuaW5kZXhlcykuZm9yRWFjaChpbmRleE5hbWUgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgKCFjbG91ZFNjaGVtYS5pbmRleGVzIHx8ICFjbG91ZFNjaGVtYS5pbmRleGVzW2luZGV4TmFtZV0pICYmXG4gICAgICAgICAgIXRoaXMuaXNQcm90ZWN0ZWRJbmRleChsb2NhbFNjaGVtYS5jbGFzc05hbWUsIGluZGV4TmFtZSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgaWYgKGxvY2FsU2NoZW1hLmluZGV4ZXMpIHtcbiAgICAgICAgICAgIG5ld0xvY2FsU2NoZW1hLmFkZEluZGV4KGluZGV4TmFtZSwgbG9jYWxTY2hlbWEuaW5kZXhlc1tpbmRleE5hbWVdKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IGluZGV4ZXNUb0FkZCA9IFtdO1xuXG4gICAgLy8gQ2hlY2sgZGVsZXRpb25cbiAgICBpZiAoY2xvdWRTY2hlbWEuaW5kZXhlcykge1xuICAgICAgT2JqZWN0LmtleXMoY2xvdWRTY2hlbWEuaW5kZXhlcykuZm9yRWFjaChpbmRleE5hbWUgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuaXNQcm90ZWN0ZWRJbmRleChsb2NhbFNjaGVtYS5jbGFzc05hbWUsIGluZGV4TmFtZSkpIHtcbiAgICAgICAgICBpZiAoIWxvY2FsU2NoZW1hLmluZGV4ZXMgfHwgIWxvY2FsU2NoZW1hLmluZGV4ZXNbaW5kZXhOYW1lXSkge1xuICAgICAgICAgICAgbmV3TG9jYWxTY2hlbWEuZGVsZXRlSW5kZXgoaW5kZXhOYW1lKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgIXRoaXMucGFyYW1zQXJlRXF1YWxzKGxvY2FsU2NoZW1hLmluZGV4ZXNbaW5kZXhOYW1lXSwgY2xvdWRTY2hlbWEuaW5kZXhlc1tpbmRleE5hbWVdKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgbmV3TG9jYWxTY2hlbWEuZGVsZXRlSW5kZXgoaW5kZXhOYW1lKTtcbiAgICAgICAgICAgIGlmIChsb2NhbFNjaGVtYS5pbmRleGVzKSB7XG4gICAgICAgICAgICAgIGluZGV4ZXNUb0FkZC5wdXNoKHtcbiAgICAgICAgICAgICAgICBpbmRleE5hbWUsXG4gICAgICAgICAgICAgICAgaW5kZXg6IGxvY2FsU2NoZW1hLmluZGV4ZXNbaW5kZXhOYW1lXSxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLmhhbmRsZUNMUChsb2NhbFNjaGVtYSwgbmV3TG9jYWxTY2hlbWEsIGNsb3VkU2NoZW1hKTtcbiAgICAvLyBBcHBseSBjaGFuZ2VzXG4gICAgYXdhaXQgdGhpcy51cGRhdGVTY2hlbWFUb0RCKG5ld0xvY2FsU2NoZW1hKTtcbiAgICAvLyBBcHBseSBuZXcvY2hhbmdlZCBpbmRleGVzXG4gICAgaWYgKGluZGV4ZXNUb0FkZC5sZW5ndGgpIHtcbiAgICAgIGxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgYFVwZGF0aW5nIGluZGV4ZXMgZm9yIFwiJHtuZXdMb2NhbFNjaGVtYS5jbGFzc05hbWV9XCIgOiAgJHtpbmRleGVzVG9BZGQuam9pbignICwnKX1gXG4gICAgICApO1xuICAgICAgaW5kZXhlc1RvQWRkLmZvckVhY2gobyA9PiBuZXdMb2NhbFNjaGVtYS5hZGRJbmRleChvLmluZGV4TmFtZSwgby5pbmRleCkpO1xuICAgICAgYXdhaXQgdGhpcy51cGRhdGVTY2hlbWFUb0RCKG5ld0xvY2FsU2NoZW1hKTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVDTFAoXG4gICAgbG9jYWxTY2hlbWE6IE1pZ3JhdGlvbnMuSlNPTlNjaGVtYSxcbiAgICBuZXdMb2NhbFNjaGVtYTogUGFyc2UuU2NoZW1hLFxuICAgIGNsb3VkU2NoZW1hOiBQYXJzZS5TY2hlbWFcbiAgKSB7XG4gICAgaWYgKCFsb2NhbFNjaGVtYS5jbGFzc0xldmVsUGVybWlzc2lvbnMgJiYgIWNsb3VkU2NoZW1hKSB7XG4gICAgICBsb2dnZXIud2FybihgY2xhc3NMZXZlbFBlcm1pc3Npb25zIG5vdCBwcm92aWRlZCBmb3IgJHtsb2NhbFNjaGVtYS5jbGFzc05hbWV9LmApO1xuICAgIH1cbiAgICAvLyBVc2Ugc3ByZWFkIHRvIGF2b2lkIHJlYWQgb25seSBpc3N1ZSAoZW5jb3VudGVyZWQgYnkgTW91bW91bHMgdXNpbmcgZGlyZWN0QWNjZXNzKVxuICAgIGNvbnN0IGNscCA9ICh7IC4uLmxvY2FsU2NoZW1hLmNsYXNzTGV2ZWxQZXJtaXNzaW9ucyB9IHx8IHt9OiBQYXJzZS5DTFAuUGVybWlzc2lvbnNNYXApO1xuICAgIC8vIFRvIGF2b2lkIGluY29uc2lzdGVuY3kgd2UgbmVlZCB0byByZW1vdmUgYWxsIHJpZ2h0cyBvbiBhZGRGaWVsZFxuICAgIGNscC5hZGRGaWVsZCA9IHt9O1xuICAgIG5ld0xvY2FsU2NoZW1hLnNldENMUChjbHApO1xuICB9XG5cbiAgaXNQcm90ZWN0ZWRGaWVsZHMoY2xhc3NOYW1lOiBzdHJpbmcsIGZpZWxkTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIChcbiAgICAgICEhZGVmYXVsdENvbHVtbnMuX0RlZmF1bHRbZmllbGROYW1lXSB8fFxuICAgICAgISEoZGVmYXVsdENvbHVtbnNbY2xhc3NOYW1lXSAmJiBkZWZhdWx0Q29sdW1uc1tjbGFzc05hbWVdW2ZpZWxkTmFtZV0pXG4gICAgKTtcbiAgfVxuXG4gIGlzUHJvdGVjdGVkSW5kZXgoY2xhc3NOYW1lOiBzdHJpbmcsIGluZGV4TmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3QgaW5kZXhlcyA9IFsnX2lkXyddO1xuICAgIHN3aXRjaCAoY2xhc3NOYW1lKSB7XG4gICAgICBjYXNlICdfVXNlcic6XG4gICAgICAgIGluZGV4ZXMucHVzaChcbiAgICAgICAgICAnY2FzZV9pbnNlbnNpdGl2ZV91c2VybmFtZScsXG4gICAgICAgICAgJ2Nhc2VfaW5zZW5zaXRpdmVfZW1haWwnLFxuICAgICAgICAgICd1c2VybmFtZV8xJyxcbiAgICAgICAgICAnZW1haWxfMSdcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdfUm9sZSc6XG4gICAgICAgIGluZGV4ZXMucHVzaCgnbmFtZV8xJyk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdfSWRlbXBvdGVuY3knOlxuICAgICAgICBpbmRleGVzLnB1c2goJ3JlcUlkXzEnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgcmV0dXJuIGluZGV4ZXMuaW5kZXhPZihpbmRleE5hbWUpICE9PSAtMTtcbiAgfVxuXG4gIHBhcmFtc0FyZUVxdWFsczxUOiB7IFtrZXk6IHN0cmluZ106IGFueSB9PihvYmpBOiBULCBvYmpCOiBUKSB7XG4gICAgY29uc3Qga2V5c0E6IHN0cmluZ1tdID0gT2JqZWN0LmtleXMob2JqQSk7XG4gICAgY29uc3Qga2V5c0I6IHN0cmluZ1tdID0gT2JqZWN0LmtleXMob2JqQik7XG5cbiAgICAvLyBDaGVjayBrZXkgbmFtZVxuICAgIGlmIChrZXlzQS5sZW5ndGggIT09IGtleXNCLmxlbmd0aCkgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiBrZXlzQS5ldmVyeShrID0+IG9iakFba10gPT09IG9iakJba10pO1xuICB9XG5cbiAgaGFuZGxlRmllbGRzKG5ld0xvY2FsU2NoZW1hOiBQYXJzZS5TY2hlbWEsIGZpZWxkTmFtZTogc3RyaW5nLCBmaWVsZDogTWlncmF0aW9ucy5GaWVsZFR5cGUpIHtcbiAgICBpZiAoZmllbGQudHlwZSA9PT0gJ1JlbGF0aW9uJykge1xuICAgICAgbmV3TG9jYWxTY2hlbWEuYWRkUmVsYXRpb24oZmllbGROYW1lLCBmaWVsZC50YXJnZXRDbGFzcyk7XG4gICAgfSBlbHNlIGlmIChmaWVsZC50eXBlID09PSAnUG9pbnRlcicpIHtcbiAgICAgIG5ld0xvY2FsU2NoZW1hLmFkZFBvaW50ZXIoZmllbGROYW1lLCBmaWVsZC50YXJnZXRDbGFzcywgZmllbGQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXdMb2NhbFNjaGVtYS5hZGRGaWVsZChmaWVsZE5hbWUsIGZpZWxkLnR5cGUsIGZpZWxkKTtcbiAgICB9XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBR0EsSUFBQUEsT0FBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsY0FBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksaUJBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLFFBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLFVBQUEsR0FBQUMsdUJBQUEsQ0FBQVAsT0FBQTtBQUNBLElBQUFRLEtBQUEsR0FBQU4sc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFTLEtBQUEsR0FBQVAsc0JBQUEsQ0FBQUYsT0FBQTtBQUEyQixTQUFBVSx5QkFBQUMsV0FBQSxlQUFBQyxPQUFBLGtDQUFBQyxpQkFBQSxPQUFBRCxPQUFBLFFBQUFFLGdCQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEsQ0FBQUMsV0FBQSxXQUFBQSxXQUFBLEdBQUFHLGdCQUFBLEdBQUFELGlCQUFBLEtBQUFGLFdBQUE7QUFBQSxTQUFBSix3QkFBQVEsR0FBQSxFQUFBSixXQUFBLFNBQUFBLFdBQUEsSUFBQUksR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsV0FBQUQsR0FBQSxRQUFBQSxHQUFBLG9CQUFBQSxHQUFBLHdCQUFBQSxHQUFBLDRCQUFBRSxPQUFBLEVBQUFGLEdBQUEsVUFBQUcsS0FBQSxHQUFBUix3QkFBQSxDQUFBQyxXQUFBLE9BQUFPLEtBQUEsSUFBQUEsS0FBQSxDQUFBQyxHQUFBLENBQUFKLEdBQUEsWUFBQUcsS0FBQSxDQUFBRSxHQUFBLENBQUFMLEdBQUEsU0FBQU0sTUFBQSxXQUFBQyxxQkFBQSxHQUFBQyxNQUFBLENBQUFDLGNBQUEsSUFBQUQsTUFBQSxDQUFBRSx3QkFBQSxXQUFBQyxHQUFBLElBQUFYLEdBQUEsUUFBQVcsR0FBQSxrQkFBQUgsTUFBQSxDQUFBSSxTQUFBLENBQUFDLGNBQUEsQ0FBQUMsSUFBQSxDQUFBZCxHQUFBLEVBQUFXLEdBQUEsU0FBQUksSUFBQSxHQUFBUixxQkFBQSxHQUFBQyxNQUFBLENBQUFFLHdCQUFBLENBQUFWLEdBQUEsRUFBQVcsR0FBQSxjQUFBSSxJQUFBLEtBQUFBLElBQUEsQ0FBQVYsR0FBQSxJQUFBVSxJQUFBLENBQUFDLEdBQUEsS0FBQVIsTUFBQSxDQUFBQyxjQUFBLENBQUFILE1BQUEsRUFBQUssR0FBQSxFQUFBSSxJQUFBLFlBQUFULE1BQUEsQ0FBQUssR0FBQSxJQUFBWCxHQUFBLENBQUFXLEdBQUEsU0FBQUwsTUFBQSxDQUFBSixPQUFBLEdBQUFGLEdBQUEsTUFBQUcsS0FBQSxJQUFBQSxLQUFBLENBQUFhLEdBQUEsQ0FBQWhCLEdBQUEsRUFBQU0sTUFBQSxZQUFBQSxNQUFBO0FBQUEsU0FBQW5CLHVCQUFBYSxHQUFBLFdBQUFBLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLEdBQUFELEdBQUEsS0FBQUUsT0FBQSxFQUFBRixHQUFBO0FBQUEsU0FBQWlCLFFBQUFDLE1BQUEsRUFBQUMsY0FBQSxRQUFBQyxJQUFBLEdBQUFaLE1BQUEsQ0FBQVksSUFBQSxDQUFBRixNQUFBLE9BQUFWLE1BQUEsQ0FBQWEscUJBQUEsUUFBQUMsT0FBQSxHQUFBZCxNQUFBLENBQUFhLHFCQUFBLENBQUFILE1BQUEsR0FBQUMsY0FBQSxLQUFBRyxPQUFBLEdBQUFBLE9BQUEsQ0FBQUMsTUFBQSxXQUFBQyxHQUFBLFdBQUFoQixNQUFBLENBQUFFLHdCQUFBLENBQUFRLE1BQUEsRUFBQU0sR0FBQSxFQUFBQyxVQUFBLE9BQUFMLElBQUEsQ0FBQU0sSUFBQSxDQUFBQyxLQUFBLENBQUFQLElBQUEsRUFBQUUsT0FBQSxZQUFBRixJQUFBO0FBQUEsU0FBQVEsY0FBQUMsTUFBQSxhQUFBQyxDQUFBLE1BQUFBLENBQUEsR0FBQUMsU0FBQSxDQUFBQyxNQUFBLEVBQUFGLENBQUEsVUFBQUcsTUFBQSxXQUFBRixTQUFBLENBQUFELENBQUEsSUFBQUMsU0FBQSxDQUFBRCxDQUFBLFFBQUFBLENBQUEsT0FBQWIsT0FBQSxDQUFBVCxNQUFBLENBQUF5QixNQUFBLE9BQUFDLE9BQUEsV0FBQXZCLEdBQUEsSUFBQXdCLGVBQUEsQ0FBQU4sTUFBQSxFQUFBbEIsR0FBQSxFQUFBc0IsTUFBQSxDQUFBdEIsR0FBQSxTQUFBSCxNQUFBLENBQUE0Qix5QkFBQSxHQUFBNUIsTUFBQSxDQUFBNkIsZ0JBQUEsQ0FBQVIsTUFBQSxFQUFBckIsTUFBQSxDQUFBNEIseUJBQUEsQ0FBQUgsTUFBQSxLQUFBaEIsT0FBQSxDQUFBVCxNQUFBLENBQUF5QixNQUFBLEdBQUFDLE9BQUEsV0FBQXZCLEdBQUEsSUFBQUgsTUFBQSxDQUFBQyxjQUFBLENBQUFvQixNQUFBLEVBQUFsQixHQUFBLEVBQUFILE1BQUEsQ0FBQUUsd0JBQUEsQ0FBQXVCLE1BQUEsRUFBQXRCLEdBQUEsaUJBQUFrQixNQUFBO0FBQUEsU0FBQU0sZ0JBQUFuQyxHQUFBLEVBQUFXLEdBQUEsRUFBQTJCLEtBQUEsSUFBQTNCLEdBQUEsR0FBQTRCLGNBQUEsQ0FBQTVCLEdBQUEsT0FBQUEsR0FBQSxJQUFBWCxHQUFBLElBQUFRLE1BQUEsQ0FBQUMsY0FBQSxDQUFBVCxHQUFBLEVBQUFXLEdBQUEsSUFBQTJCLEtBQUEsRUFBQUEsS0FBQSxFQUFBYixVQUFBLFFBQUFlLFlBQUEsUUFBQUMsUUFBQSxvQkFBQXpDLEdBQUEsQ0FBQVcsR0FBQSxJQUFBMkIsS0FBQSxXQUFBdEMsR0FBQTtBQUFBLFNBQUF1QyxlQUFBRyxHQUFBLFFBQUEvQixHQUFBLEdBQUFnQyxZQUFBLENBQUFELEdBQUEsMkJBQUEvQixHQUFBLGdCQUFBQSxHQUFBLEdBQUFpQyxNQUFBLENBQUFqQyxHQUFBO0FBQUEsU0FBQWdDLGFBQUFFLEtBQUEsRUFBQUMsSUFBQSxlQUFBRCxLQUFBLGlCQUFBQSxLQUFBLGtCQUFBQSxLQUFBLE1BQUFFLElBQUEsR0FBQUYsS0FBQSxDQUFBRyxNQUFBLENBQUFDLFdBQUEsT0FBQUYsSUFBQSxLQUFBRyxTQUFBLFFBQUFDLEdBQUEsR0FBQUosSUFBQSxDQUFBakMsSUFBQSxDQUFBK0IsS0FBQSxFQUFBQyxJQUFBLDJCQUFBSyxHQUFBLHNCQUFBQSxHQUFBLFlBQUFDLFNBQUEsNERBQUFOLElBQUEsZ0JBQUFGLE1BQUEsR0FBQVMsTUFBQSxFQUFBUixLQUFBO0FBVDNCO0FBQ0EsTUFBTVMsS0FBSyxHQUFHckUsT0FBTyxDQUFDLFlBQVksQ0FBQztBQVU1QixNQUFNc0UsY0FBYyxDQUFDO0VBUTFCQyxXQUFXQSxDQUFDQyxhQUF1QyxFQUFFQyxNQUEwQixFQUFFO0lBQy9FLElBQUksQ0FBQ0MsWUFBWSxHQUFHLEVBQUU7SUFDdEIsSUFBSSxDQUFDRCxNQUFNLEdBQUdFLGVBQU0sQ0FBQ3ZELEdBQUcsQ0FBQ3FELE1BQU0sQ0FBQ0csS0FBSyxDQUFDO0lBQ3RDLElBQUksQ0FBQ0osYUFBYSxHQUFHQSxhQUFhO0lBQ2xDLElBQUlBLGFBQWEsSUFBSUEsYUFBYSxDQUFDSyxXQUFXLEVBQUU7TUFDOUMsSUFBSSxDQUFDQyxLQUFLLENBQUNDLE9BQU8sQ0FBQ1AsYUFBYSxDQUFDSyxXQUFXLENBQUMsRUFBRTtRQUM3QyxNQUFPLGtEQUFpRDtNQUMxRDtNQUVBLElBQUksQ0FBQ0gsWUFBWSxHQUFHRixhQUFhLENBQUNLLFdBQVc7SUFDL0M7SUFFQSxJQUFJLENBQUNHLE9BQU8sR0FBRyxDQUFDO0lBQ2hCLElBQUksQ0FBQ0MsVUFBVSxHQUFHLENBQUM7RUFDckI7RUFFQSxNQUFNQyxjQUFjQSxDQUFDQyxNQUFvQixFQUFpQjtJQUN4RCxNQUFNQyxPQUFPLEdBQUc7TUFDZEMsU0FBUyxFQUFFRixNQUFNLENBQUNFLFNBQVM7TUFDM0JDLE1BQU0sRUFBRUgsTUFBTSxDQUFDSSxPQUFPO01BQ3RCQyxPQUFPLEVBQUVMLE1BQU0sQ0FBQ00sUUFBUTtNQUN4QkMscUJBQXFCLEVBQUVQLE1BQU0sQ0FBQ1E7SUFDaEMsQ0FBQztJQUNELE1BQU0sSUFBQUMsbUNBQW9CLEVBQUNULE1BQU0sQ0FBQ0UsU0FBUyxFQUFFRCxPQUFPLEVBQUUsSUFBSSxDQUFDWCxNQUFNLENBQUM7SUFDbEUsSUFBSSxDQUFDb0IsY0FBYyxDQUFDVixNQUFNLENBQUM7RUFDN0I7RUFFQVUsY0FBY0EsQ0FBQ1YsTUFBb0IsRUFBRTtJQUNuQztJQUNBQSxNQUFNLENBQUNJLE9BQU8sR0FBRyxDQUFDLENBQUM7SUFDbkJKLE1BQU0sQ0FBQ00sUUFBUSxHQUFHLENBQUMsQ0FBQztFQUN0Qjs7RUFFQTtFQUNBO0VBQ0EsTUFBTUssZ0JBQWdCQSxDQUFDWCxNQUFvQixFQUFFO0lBQzNDLE1BQU1DLE9BQU8sR0FBRztNQUNkQyxTQUFTLEVBQUVGLE1BQU0sQ0FBQ0UsU0FBUztNQUMzQkMsTUFBTSxFQUFFSCxNQUFNLENBQUNJLE9BQU87TUFDdEJDLE9BQU8sRUFBRUwsTUFBTSxDQUFDTSxRQUFRO01BQ3hCQyxxQkFBcUIsRUFBRVAsTUFBTSxDQUFDUTtJQUNoQyxDQUFDO0lBQ0QsTUFBTSxJQUFBSSxtQ0FBb0IsRUFBQ1osTUFBTSxDQUFDRSxTQUFTLEVBQUVELE9BQU8sRUFBRSxJQUFJLENBQUNYLE1BQU0sQ0FBQztJQUNsRSxJQUFJLENBQUNvQixjQUFjLENBQUNWLE1BQU0sQ0FBQztFQUM3QjtFQUVBLE1BQU1hLE9BQU9BLENBQUEsRUFBRztJQUNkLElBQUk7TUFDRkMsY0FBTSxDQUFDQyxJQUFJLENBQUMsb0JBQW9CLENBQUM7TUFDakMsSUFBSSxJQUFJLENBQUMxQixhQUFhLElBQUksSUFBSSxDQUFDQSxhQUFhLENBQUMyQixlQUFlLEVBQUU7UUFDNUQsTUFBTUMsT0FBTyxDQUFDQyxPQUFPLENBQUMsSUFBSSxDQUFDN0IsYUFBYSxDQUFDMkIsZUFBZSxDQUFDLENBQUMsQ0FBQztNQUM3RDtNQUVBLE1BQU0sSUFBSSxDQUFDRyxpQkFBaUIsQ0FBQyxDQUFDO01BRTlCLElBQUksSUFBSSxDQUFDOUIsYUFBYSxJQUFJLElBQUksQ0FBQ0EsYUFBYSxDQUFDK0IsY0FBYyxFQUFFO1FBQzNELE1BQU1ILE9BQU8sQ0FBQ0MsT0FBTyxDQUFDLElBQUksQ0FBQzdCLGFBQWEsQ0FBQytCLGNBQWMsQ0FBQyxDQUFDLENBQUM7TUFDNUQ7TUFFQU4sY0FBTSxDQUFDQyxJQUFJLENBQUMsOEJBQThCLENBQUM7SUFDN0MsQ0FBQyxDQUFDLE9BQU9NLENBQUMsRUFBRTtNQUNWUCxjQUFNLENBQUNRLEtBQUssQ0FBRSw2QkFBNEJELENBQUUsRUFBQyxDQUFDO01BQzlDLElBQUlFLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDQyxRQUFRLEtBQUssWUFBWSxFQUFFRixPQUFPLENBQUNHLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDNUQ7RUFDRjtFQUVBLE1BQU1QLGlCQUFpQkEsQ0FBQSxFQUFHO0lBQ3hCLElBQUlRLE9BQU8sR0FBRyxJQUFJO0lBQ2xCLElBQUk7TUFDRjtNQUNBO01BQ0E7TUFDQTtNQUNBLElBQUlKLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDQyxRQUFRLEtBQUssWUFBWSxFQUFFO1FBQ3pDRSxPQUFPLEdBQUdDLFVBQVUsQ0FBQyxNQUFNO1VBQ3pCZCxjQUFNLENBQUNRLEtBQUssQ0FBQyw2REFBNkQsQ0FBQztVQUMzRUMsT0FBTyxDQUFDRyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2pCLENBQUMsRUFBRSxLQUFLLENBQUM7TUFDWDtNQUVBLE1BQU0sSUFBSSxDQUFDRyxtQkFBbUIsQ0FBQyxDQUFDO01BQ2hDO01BQ0EsTUFBTUMsZ0JBQWdCLEdBQUcsTUFBTSxJQUFJLENBQUN4QyxNQUFNLENBQUN5QyxRQUFRLENBQUNDLFVBQVUsQ0FBQyxDQUFDO01BQ2hFLElBQUksQ0FBQ0MsZUFBZSxHQUFHLE1BQU1ILGdCQUFnQixDQUFDSSxhQUFhLENBQUMsQ0FBQztNQUM3REMsWUFBWSxDQUFDUixPQUFPLENBQUM7TUFDckIsTUFBTVYsT0FBTyxDQUFDbUIsR0FBRyxDQUFDLElBQUksQ0FBQzdDLFlBQVksQ0FBQzhDLEdBQUcsQ0FBQyxNQUFNQyxXQUFXLElBQUksSUFBSSxDQUFDQyxZQUFZLENBQUNELFdBQVcsQ0FBQyxDQUFDLENBQUM7TUFFN0YsSUFBSSxDQUFDRSxzQkFBc0IsQ0FBQyxDQUFDO01BQzdCLE1BQU0sSUFBSSxDQUFDQyw2QkFBNkIsQ0FBQyxDQUFDO0lBQzVDLENBQUMsQ0FBQyxPQUFPcEIsQ0FBQyxFQUFFO01BQ1YsSUFBSU0sT0FBTyxFQUFFUSxZQUFZLENBQUNSLE9BQU8sQ0FBQztNQUNsQyxJQUFJLElBQUksQ0FBQzlCLE9BQU8sR0FBRyxJQUFJLENBQUNDLFVBQVUsRUFBRTtRQUNsQyxJQUFJLENBQUNELE9BQU8sRUFBRTtRQUNkO1FBQ0E7UUFDQTtRQUNBLE1BQU0sSUFBSSxDQUFDNkMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM3QyxPQUFPLENBQUM7UUFDcEMsTUFBTSxJQUFJLENBQUNzQixpQkFBaUIsQ0FBQyxDQUFDO01BQ2hDLENBQUMsTUFBTTtRQUNMTCxjQUFNLENBQUNRLEtBQUssQ0FBRSw2QkFBNEJELENBQUUsRUFBQyxDQUFDO1FBQzlDLElBQUlFLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDQyxRQUFRLEtBQUssWUFBWSxFQUFFRixPQUFPLENBQUNHLElBQUksQ0FBQyxDQUFDLENBQUM7TUFDNUQ7SUFDRjtFQUNGO0VBRUFjLHNCQUFzQkEsQ0FBQSxFQUFHO0lBQ3ZCLElBQUksSUFBSSxDQUFDbkQsYUFBYSxDQUFDc0QsTUFBTSxLQUFLLElBQUksRUFBRTtNQUN0QztJQUNGO0lBRUEsTUFBTUMsWUFBWSxHQUFHLElBQUksQ0FBQ1gsZUFBZSxDQUFDSSxHQUFHLENBQUNRLENBQUMsSUFBSUEsQ0FBQyxDQUFDM0MsU0FBUyxDQUFDO0lBQy9ELE1BQU1YLFlBQVksR0FBRyxJQUFJLENBQUNBLFlBQVksQ0FBQzhDLEdBQUcsQ0FBQ1EsQ0FBQyxJQUFJQSxDQUFDLENBQUMzQyxTQUFTLENBQUM7SUFDNUQsTUFBTTRDLGNBQWMsR0FBR0YsWUFBWSxDQUFDekYsTUFBTSxDQUN4QzRGLENBQUMsSUFBSSxDQUFDeEQsWUFBWSxDQUFDeUQsUUFBUSxDQUFDRCxDQUFDLENBQUMsSUFBSSxDQUFDRSwrQkFBYSxDQUFDRCxRQUFRLENBQUNELENBQUMsQ0FDN0QsQ0FBQztJQUVELElBQUksSUFBSUcsR0FBRyxDQUFDM0QsWUFBWSxDQUFDLENBQUM0RCxJQUFJLEtBQUs1RCxZQUFZLENBQUMzQixNQUFNLEVBQUU7TUFDdERrRCxjQUFNLENBQUNRLEtBQUssQ0FDVCxrRUFBaUUvQixZQUFZLENBQUM2RCxJQUFJLENBQ2pGLEtBQ0YsQ0FBRSxHQUNKLENBQUM7TUFDRDdCLE9BQU8sQ0FBQ0csSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNqQjtJQUVBLElBQUksSUFBSSxDQUFDckMsYUFBYSxDQUFDc0QsTUFBTSxJQUFJRyxjQUFjLENBQUNsRixNQUFNLEVBQUU7TUFDdERrRCxjQUFNLENBQUN1QyxJQUFJLENBQ1IseUdBQXdHUCxjQUFjLENBQUNNLElBQUksQ0FDMUgsTUFDRixDQUFFLEdBQ0osQ0FBQztJQUNIO0VBQ0Y7O0VBRUE7RUFDQVYsSUFBSUEsQ0FBQ1ksSUFBWSxFQUFFO0lBQ2pCLE9BQU8sSUFBSXJDLE9BQU8sQ0FBT0MsT0FBTyxJQUFJVSxVQUFVLENBQUNWLE9BQU8sRUFBRW9DLElBQUksQ0FBQyxDQUFDO0VBQ2hFO0VBRUEsTUFBTWIsNkJBQTZCQSxDQUFBLEVBQWtCO0lBQ25ELE1BQU1jLGtCQUFrQixHQUFHLElBQUksQ0FBQ3RCLGVBQWUsQ0FBQzlFLE1BQU0sQ0FDcERxRyxXQUFXLElBQ1QsQ0FBQyxJQUFJLENBQUNqRSxZQUFZLENBQUNrRSxJQUFJLENBQUNuQixXQUFXLElBQUlBLFdBQVcsQ0FBQ3BDLFNBQVMsS0FBS3NELFdBQVcsQ0FBQ3RELFNBQVMsQ0FDMUYsQ0FBQztJQUNELE1BQU1lLE9BQU8sQ0FBQ21CLEdBQUcsQ0FDZm1CLGtCQUFrQixDQUFDbEIsR0FBRyxDQUFDLE1BQU1yQyxNQUFNLElBQUk7TUFDckMsTUFBTTBELFdBQVcsR0FBRyxJQUFJeEUsS0FBSyxDQUFDeUUsTUFBTSxDQUFDM0QsTUFBTSxDQUFDRSxTQUFTLENBQUM7TUFDdEQsSUFBSSxDQUFDMEQsU0FBUyxDQUFDNUQsTUFBTSxFQUFFMEQsV0FBVyxDQUFDO01BQ25DLE1BQU0sSUFBSSxDQUFDL0MsZ0JBQWdCLENBQUMrQyxXQUFXLENBQUM7SUFDMUMsQ0FBQyxDQUNILENBQUM7RUFDSDs7RUFFQTtFQUNBO0VBQ0EsTUFBTTdCLG1CQUFtQkEsQ0FBQSxFQUFHO0lBQzFCLE1BQU07TUFBRWdDO0lBQVMsQ0FBQyxHQUFHLE1BQU1DLGFBQUksQ0FBQ0MsTUFBTSxDQUFDLElBQUksQ0FBQ3pFLE1BQU0sRUFBRTBFLGFBQUksQ0FBQ0MsTUFBTSxDQUFDLElBQUksQ0FBQzNFLE1BQU0sQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM3RixNQUFNd0UsYUFBSSxDQUFDSSxHQUFHLENBQUMsSUFBSSxDQUFDNUUsTUFBTSxFQUFFMEUsYUFBSSxDQUFDQyxNQUFNLENBQUMsSUFBSSxDQUFDM0UsTUFBTSxDQUFDLEVBQUUsVUFBVSxFQUFFdUUsUUFBUSxDQUFDTSxRQUFRLENBQUM7RUFDdEY7RUFFQSxNQUFNNUIsWUFBWUEsQ0FBQ0QsV0FBa0MsRUFBRTtJQUNyRCxNQUFNa0IsV0FBVyxHQUFHLElBQUksQ0FBQ3ZCLGVBQWUsQ0FBQ21DLElBQUksQ0FBQ0MsRUFBRSxJQUFJQSxFQUFFLENBQUNuRSxTQUFTLEtBQUtvQyxXQUFXLENBQUNwQyxTQUFTLENBQUM7SUFDM0YsSUFBSXNELFdBQVcsRUFBRTtNQUNmLElBQUk7UUFDRixNQUFNLElBQUksQ0FBQ2MsWUFBWSxDQUFDaEMsV0FBVyxFQUFFa0IsV0FBVyxDQUFDO01BQ25ELENBQUMsQ0FBQyxPQUFPbkMsQ0FBQyxFQUFFO1FBQ1YsTUFBTywwQ0FBeUNtQyxXQUFXLENBQUN0RCxTQUFVLEtBQUltQixDQUFFLEVBQUM7TUFDL0U7SUFDRixDQUFDLE1BQU07TUFDTCxJQUFJO1FBQ0YsTUFBTSxJQUFJLENBQUNrRCxVQUFVLENBQUNqQyxXQUFXLENBQUM7TUFDcEMsQ0FBQyxDQUFDLE9BQU9qQixDQUFDLEVBQUU7UUFDVixNQUFPLHNDQUFxQ2lCLFdBQVcsQ0FBQ3BDLFNBQVUsS0FBSW1CLENBQUUsRUFBQztNQUMzRTtJQUNGO0VBQ0Y7RUFFQSxNQUFNa0QsVUFBVUEsQ0FBQ2pDLFdBQWtDLEVBQUU7SUFDbkQsTUFBTWtDLGNBQWMsR0FBRyxJQUFJdEYsS0FBSyxDQUFDeUUsTUFBTSxDQUFDckIsV0FBVyxDQUFDcEMsU0FBUyxDQUFDO0lBQzlELElBQUlvQyxXQUFXLENBQUNuQyxNQUFNLEVBQUU7TUFDdEI7TUFDQS9ELE1BQU0sQ0FBQ1ksSUFBSSxDQUFDc0YsV0FBVyxDQUFDbkMsTUFBTSxDQUFDLENBQzVCaEQsTUFBTSxDQUFDc0gsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDQyxpQkFBaUIsQ0FBQ3BDLFdBQVcsQ0FBQ3BDLFNBQVMsRUFBRXVFLFNBQVMsQ0FBQyxDQUFDLENBQzlFM0csT0FBTyxDQUFDMkcsU0FBUyxJQUFJO1FBQ3BCLElBQUluQyxXQUFXLENBQUNuQyxNQUFNLEVBQUU7VUFDdEIsTUFBTXdFLEtBQUssR0FBR3JDLFdBQVcsQ0FBQ25DLE1BQU0sQ0FBQ3NFLFNBQVMsQ0FBQztVQUMzQyxJQUFJLENBQUNHLFlBQVksQ0FBQ0osY0FBYyxFQUFFQyxTQUFTLEVBQUVFLEtBQUssQ0FBQztRQUNyRDtNQUNGLENBQUMsQ0FBQztJQUNOO0lBQ0E7SUFDQSxJQUFJckMsV0FBVyxDQUFDakMsT0FBTyxFQUFFO01BQ3ZCakUsTUFBTSxDQUFDWSxJQUFJLENBQUNzRixXQUFXLENBQUNqQyxPQUFPLENBQUMsQ0FBQ3ZDLE9BQU8sQ0FBQytHLFNBQVMsSUFBSTtRQUNwRCxJQUFJdkMsV0FBVyxDQUFDakMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDeUUsZ0JBQWdCLENBQUN4QyxXQUFXLENBQUNwQyxTQUFTLEVBQUUyRSxTQUFTLENBQUMsRUFBRTtVQUNuRkwsY0FBYyxDQUFDTyxRQUFRLENBQUNGLFNBQVMsRUFBRXZDLFdBQVcsQ0FBQ2pDLE9BQU8sQ0FBQ3dFLFNBQVMsQ0FBQyxDQUFDO1FBQ3BFO01BQ0YsQ0FBQyxDQUFDO0lBQ0o7SUFFQSxJQUFJLENBQUNqQixTQUFTLENBQUN0QixXQUFXLEVBQUVrQyxjQUFjLENBQUM7SUFFM0MsT0FBTyxNQUFNLElBQUksQ0FBQ3pFLGNBQWMsQ0FBQ3lFLGNBQWMsQ0FBQztFQUNsRDtFQUVBLE1BQU1GLFlBQVlBLENBQUNoQyxXQUFrQyxFQUFFa0IsV0FBeUIsRUFBRTtJQUNoRixNQUFNZ0IsY0FBYyxHQUFHLElBQUl0RixLQUFLLENBQUN5RSxNQUFNLENBQUNyQixXQUFXLENBQUNwQyxTQUFTLENBQUM7O0lBRTlEO0lBQ0E7SUFDQSxJQUFJb0MsV0FBVyxDQUFDbkMsTUFBTSxFQUFFO01BQ3RCL0QsTUFBTSxDQUFDWSxJQUFJLENBQUNzRixXQUFXLENBQUNuQyxNQUFNLENBQUMsQ0FDNUJoRCxNQUFNLENBQUNzSCxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUNDLGlCQUFpQixDQUFDcEMsV0FBVyxDQUFDcEMsU0FBUyxFQUFFdUUsU0FBUyxDQUFDLENBQUMsQ0FDOUUzRyxPQUFPLENBQUMyRyxTQUFTLElBQUk7UUFDcEI7UUFDQSxNQUFNRSxLQUFLLEdBQUdyQyxXQUFXLENBQUNuQyxNQUFNLENBQUNzRSxTQUFTLENBQUM7UUFDM0MsSUFBSSxDQUFDakIsV0FBVyxDQUFDckQsTUFBTSxDQUFDc0UsU0FBUyxDQUFDLEVBQUU7VUFDbEMsSUFBSSxDQUFDRyxZQUFZLENBQUNKLGNBQWMsRUFBRUMsU0FBUyxFQUFFRSxLQUFLLENBQUM7UUFDckQ7TUFDRixDQUFDLENBQUM7SUFDTjtJQUVBLE1BQU1LLGNBQXdCLEdBQUcsRUFBRTtJQUNuQyxNQUFNQyxnQkFJSCxHQUFHLEVBQUU7SUFDUixNQUFNQyx1QkFBaUMsR0FBRyxFQUFFOztJQUU1QztJQUNBOUksTUFBTSxDQUFDWSxJQUFJLENBQUN3RyxXQUFXLENBQUNyRCxNQUFNLENBQUMsQ0FDNUJoRCxNQUFNLENBQUNzSCxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUNDLGlCQUFpQixDQUFDcEMsV0FBVyxDQUFDcEMsU0FBUyxFQUFFdUUsU0FBUyxDQUFDLENBQUMsQ0FDOUUzRyxPQUFPLENBQUMyRyxTQUFTLElBQUk7TUFDcEIsTUFBTUUsS0FBSyxHQUFHbkIsV0FBVyxDQUFDckQsTUFBTSxDQUFDc0UsU0FBUyxDQUFDO01BQzNDLElBQUksQ0FBQ25DLFdBQVcsQ0FBQ25DLE1BQU0sSUFBSSxDQUFDbUMsV0FBVyxDQUFDbkMsTUFBTSxDQUFDc0UsU0FBUyxDQUFDLEVBQUU7UUFDekRPLGNBQWMsQ0FBQzFILElBQUksQ0FBQ21ILFNBQVMsQ0FBQztRQUM5QjtNQUNGO01BRUEsTUFBTVUsVUFBVSxHQUFHN0MsV0FBVyxDQUFDbkMsTUFBTSxDQUFDc0UsU0FBUyxDQUFDO01BQ2hEO01BQ0EsSUFDRSxDQUFDLElBQUksQ0FBQ1csZUFBZSxDQUNuQjtRQUFFQyxJQUFJLEVBQUVWLEtBQUssQ0FBQ1UsSUFBSTtRQUFFQyxXQUFXLEVBQUVYLEtBQUssQ0FBQ1c7TUFBWSxDQUFDLEVBQ3BEO1FBQUVELElBQUksRUFBRUYsVUFBVSxDQUFDRSxJQUFJO1FBQUVDLFdBQVcsRUFBRUgsVUFBVSxDQUFDRztNQUFZLENBQy9ELENBQUMsRUFDRDtRQUNBTCxnQkFBZ0IsQ0FBQzNILElBQUksQ0FBQztVQUNwQm1ILFNBQVM7VUFDVGMsSUFBSSxFQUFFO1lBQUVGLElBQUksRUFBRVYsS0FBSyxDQUFDVSxJQUFJO1lBQUVDLFdBQVcsRUFBRVgsS0FBSyxDQUFDVztVQUFZLENBQUM7VUFDMURFLEVBQUUsRUFBRTtZQUFFSCxJQUFJLEVBQUVGLFVBQVUsQ0FBQ0UsSUFBSTtZQUFFQyxXQUFXLEVBQUVILFVBQVUsQ0FBQ0c7VUFBWTtRQUNuRSxDQUFDLENBQUM7UUFDRjtNQUNGOztNQUVBO01BQ0EsSUFBSSxDQUFDLElBQUksQ0FBQ0YsZUFBZSxDQUFDVCxLQUFLLEVBQUVRLFVBQVUsQ0FBQyxFQUFFO1FBQzVDRCx1QkFBdUIsQ0FBQzVILElBQUksQ0FBQ21ILFNBQVMsQ0FBQztNQUN6QztJQUNGLENBQUMsQ0FBQztJQUVKLElBQUksSUFBSSxDQUFDcEYsYUFBYSxDQUFDb0csaUJBQWlCLEtBQUssSUFBSSxFQUFFO01BQ2pEVCxjQUFjLENBQUNsSCxPQUFPLENBQUMyRyxTQUFTLElBQUk7UUFDbENELGNBQWMsQ0FBQ2tCLFdBQVcsQ0FBQ2pCLFNBQVMsQ0FBQztNQUN2QyxDQUFDLENBQUM7O01BRUY7TUFDQSxNQUFNLElBQUksQ0FBQzlELGdCQUFnQixDQUFDNkQsY0FBYyxDQUFDO0lBQzdDLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQ25GLGFBQWEsQ0FBQ3NELE1BQU0sS0FBSyxJQUFJLElBQUlxQyxjQUFjLENBQUNwSCxNQUFNLEVBQUU7TUFDdEVrRCxjQUFNLENBQUN1QyxJQUFJLENBQ1IsbURBQ0NmLFdBQVcsQ0FBQ3BDLFNBQ2IsdUNBQXNDOEUsY0FBYyxDQUFDNUIsSUFBSSxDQUFDLE1BQU0sQ0FBRSxHQUNyRSxDQUFDO0lBQ0g7SUFFQSxJQUFJLElBQUksQ0FBQy9ELGFBQWEsQ0FBQ3NHLHNCQUFzQixLQUFLLElBQUksRUFBRTtNQUN0RFYsZ0JBQWdCLENBQUNuSCxPQUFPLENBQUM2RyxLQUFLLElBQUk7UUFDaENILGNBQWMsQ0FBQ2tCLFdBQVcsQ0FBQ2YsS0FBSyxDQUFDRixTQUFTLENBQUM7TUFDN0MsQ0FBQyxDQUFDOztNQUVGO01BQ0EsTUFBTSxJQUFJLENBQUM5RCxnQkFBZ0IsQ0FBQzZELGNBQWMsQ0FBQztNQUUzQ1MsZ0JBQWdCLENBQUNuSCxPQUFPLENBQUM4SCxTQUFTLElBQUk7UUFDcEMsSUFBSXRELFdBQVcsQ0FBQ25DLE1BQU0sRUFBRTtVQUN0QixNQUFNd0UsS0FBSyxHQUFHckMsV0FBVyxDQUFDbkMsTUFBTSxDQUFDeUYsU0FBUyxDQUFDbkIsU0FBUyxDQUFDO1VBQ3JELElBQUksQ0FBQ0csWUFBWSxDQUFDSixjQUFjLEVBQUVvQixTQUFTLENBQUNuQixTQUFTLEVBQUVFLEtBQUssQ0FBQztRQUMvRDtNQUNGLENBQUMsQ0FBQztJQUNKLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQ3RGLGFBQWEsQ0FBQ3NELE1BQU0sS0FBSyxJQUFJLElBQUlzQyxnQkFBZ0IsQ0FBQ3JILE1BQU0sRUFBRTtNQUN4RXFILGdCQUFnQixDQUFDbkgsT0FBTyxDQUFDNkcsS0FBSyxJQUFJO1FBQ2hDLE1BQU1ZLElBQUksR0FDUlosS0FBSyxDQUFDWSxJQUFJLENBQUNGLElBQUksSUFBSVYsS0FBSyxDQUFDWSxJQUFJLENBQUNELFdBQVcsR0FBSSxLQUFJWCxLQUFLLENBQUNZLElBQUksQ0FBQ0QsV0FBWSxHQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ2xGLE1BQU1FLEVBQUUsR0FBR2IsS0FBSyxDQUFDYSxFQUFFLENBQUNILElBQUksSUFBSVYsS0FBSyxDQUFDYSxFQUFFLENBQUNGLFdBQVcsR0FBSSxLQUFJWCxLQUFLLENBQUNhLEVBQUUsQ0FBQ0YsV0FBWSxHQUFFLEdBQUcsRUFBRSxDQUFDO1FBRXJGeEUsY0FBTSxDQUFDdUMsSUFBSSxDQUNSLGNBQWFzQixLQUFLLENBQUNGLFNBQVUsMERBQXlEbkMsV0FBVyxDQUFDcEMsU0FBVSw0QkFBMkJzRixFQUFHLG1DQUFrQ0QsSUFBSyxHQUNwTCxDQUFDO01BQ0gsQ0FBQyxDQUFDO0lBQ0o7SUFFQUwsdUJBQXVCLENBQUNwSCxPQUFPLENBQUMyRyxTQUFTLElBQUk7TUFDM0MsSUFBSW5DLFdBQVcsQ0FBQ25DLE1BQU0sRUFBRTtRQUN0QixNQUFNd0UsS0FBSyxHQUFHckMsV0FBVyxDQUFDbkMsTUFBTSxDQUFDc0UsU0FBUyxDQUFDO1FBQzNDLElBQUksQ0FBQ0csWUFBWSxDQUFDSixjQUFjLEVBQUVDLFNBQVMsRUFBRUUsS0FBSyxDQUFDO01BQ3JEO0lBQ0YsQ0FBQyxDQUFDOztJQUVGO0lBQ0E7SUFDQSxJQUFJckMsV0FBVyxDQUFDakMsT0FBTyxFQUFFO01BQ3ZCakUsTUFBTSxDQUFDWSxJQUFJLENBQUNzRixXQUFXLENBQUNqQyxPQUFPLENBQUMsQ0FBQ3ZDLE9BQU8sQ0FBQytHLFNBQVMsSUFBSTtRQUNwRCxJQUNFLENBQUMsQ0FBQ3JCLFdBQVcsQ0FBQ25ELE9BQU8sSUFBSSxDQUFDbUQsV0FBVyxDQUFDbkQsT0FBTyxDQUFDd0UsU0FBUyxDQUFDLEtBQ3hELENBQUMsSUFBSSxDQUFDQyxnQkFBZ0IsQ0FBQ3hDLFdBQVcsQ0FBQ3BDLFNBQVMsRUFBRTJFLFNBQVMsQ0FBQyxFQUN4RDtVQUNBLElBQUl2QyxXQUFXLENBQUNqQyxPQUFPLEVBQUU7WUFDdkJtRSxjQUFjLENBQUNPLFFBQVEsQ0FBQ0YsU0FBUyxFQUFFdkMsV0FBVyxDQUFDakMsT0FBTyxDQUFDd0UsU0FBUyxDQUFDLENBQUM7VUFDcEU7UUFDRjtNQUNGLENBQUMsQ0FBQztJQUNKO0lBRUEsTUFBTWdCLFlBQVksR0FBRyxFQUFFOztJQUV2QjtJQUNBLElBQUlyQyxXQUFXLENBQUNuRCxPQUFPLEVBQUU7TUFDdkJqRSxNQUFNLENBQUNZLElBQUksQ0FBQ3dHLFdBQVcsQ0FBQ25ELE9BQU8sQ0FBQyxDQUFDdkMsT0FBTyxDQUFDK0csU0FBUyxJQUFJO1FBQ3BELElBQUksQ0FBQyxJQUFJLENBQUNDLGdCQUFnQixDQUFDeEMsV0FBVyxDQUFDcEMsU0FBUyxFQUFFMkUsU0FBUyxDQUFDLEVBQUU7VUFDNUQsSUFBSSxDQUFDdkMsV0FBVyxDQUFDakMsT0FBTyxJQUFJLENBQUNpQyxXQUFXLENBQUNqQyxPQUFPLENBQUN3RSxTQUFTLENBQUMsRUFBRTtZQUMzREwsY0FBYyxDQUFDc0IsV0FBVyxDQUFDakIsU0FBUyxDQUFDO1VBQ3ZDLENBQUMsTUFBTSxJQUNMLENBQUMsSUFBSSxDQUFDTyxlQUFlLENBQUM5QyxXQUFXLENBQUNqQyxPQUFPLENBQUN3RSxTQUFTLENBQUMsRUFBRXJCLFdBQVcsQ0FBQ25ELE9BQU8sQ0FBQ3dFLFNBQVMsQ0FBQyxDQUFDLEVBQ3JGO1lBQ0FMLGNBQWMsQ0FBQ3NCLFdBQVcsQ0FBQ2pCLFNBQVMsQ0FBQztZQUNyQyxJQUFJdkMsV0FBVyxDQUFDakMsT0FBTyxFQUFFO2NBQ3ZCd0YsWUFBWSxDQUFDdkksSUFBSSxDQUFDO2dCQUNoQnVILFNBQVM7Z0JBQ1RrQixLQUFLLEVBQUV6RCxXQUFXLENBQUNqQyxPQUFPLENBQUN3RSxTQUFTO2NBQ3RDLENBQUMsQ0FBQztZQUNKO1VBQ0Y7UUFDRjtNQUNGLENBQUMsQ0FBQztJQUNKO0lBRUEsSUFBSSxDQUFDakIsU0FBUyxDQUFDdEIsV0FBVyxFQUFFa0MsY0FBYyxFQUFFaEIsV0FBVyxDQUFDO0lBQ3hEO0lBQ0EsTUFBTSxJQUFJLENBQUM3QyxnQkFBZ0IsQ0FBQzZELGNBQWMsQ0FBQztJQUMzQztJQUNBLElBQUlxQixZQUFZLENBQUNqSSxNQUFNLEVBQUU7TUFDdkJrRCxjQUFNLENBQUNrRixLQUFLLENBQ1QseUJBQXdCeEIsY0FBYyxDQUFDdEUsU0FBVSxRQUFPMkYsWUFBWSxDQUFDekMsSUFBSSxDQUFDLElBQUksQ0FBRSxFQUNuRixDQUFDO01BQ0R5QyxZQUFZLENBQUMvSCxPQUFPLENBQUNtSSxDQUFDLElBQUl6QixjQUFjLENBQUNPLFFBQVEsQ0FBQ2tCLENBQUMsQ0FBQ3BCLFNBQVMsRUFBRW9CLENBQUMsQ0FBQ0YsS0FBSyxDQUFDLENBQUM7TUFDeEUsTUFBTSxJQUFJLENBQUNwRixnQkFBZ0IsQ0FBQzZELGNBQWMsQ0FBQztJQUM3QztFQUNGO0VBRUFaLFNBQVNBLENBQ1B0QixXQUFrQyxFQUNsQ2tDLGNBQTRCLEVBQzVCaEIsV0FBeUIsRUFDekI7SUFDQSxJQUFJLENBQUNsQixXQUFXLENBQUMvQixxQkFBcUIsSUFBSSxDQUFDaUQsV0FBVyxFQUFFO01BQ3REMUMsY0FBTSxDQUFDdUMsSUFBSSxDQUFFLDBDQUF5Q2YsV0FBVyxDQUFDcEMsU0FBVSxHQUFFLENBQUM7SUFDakY7SUFDQTtJQUNBLE1BQU1nRyxHQUFHLEdBQUkxSSxhQUFBLEtBQUs4RSxXQUFXLENBQUMvQixxQkFBcUIsS0FBTSxDQUFDLENBQTRCO0lBQ3RGO0lBQ0EyRixHQUFHLENBQUNDLFFBQVEsR0FBRyxDQUFDLENBQUM7SUFDakIzQixjQUFjLENBQUM0QixNQUFNLENBQUNGLEdBQUcsQ0FBQztFQUM1QjtFQUVBeEIsaUJBQWlCQSxDQUFDeEUsU0FBaUIsRUFBRXVFLFNBQWlCLEVBQUU7SUFDdEQsT0FDRSxDQUFDLENBQUM0QixnQ0FBYyxDQUFDQyxRQUFRLENBQUM3QixTQUFTLENBQUMsSUFDcEMsQ0FBQyxFQUFFNEIsZ0NBQWMsQ0FBQ25HLFNBQVMsQ0FBQyxJQUFJbUcsZ0NBQWMsQ0FBQ25HLFNBQVMsQ0FBQyxDQUFDdUUsU0FBUyxDQUFDLENBQUM7RUFFekU7RUFFQUssZ0JBQWdCQSxDQUFDNUUsU0FBaUIsRUFBRTJFLFNBQWlCLEVBQUU7SUFDckQsTUFBTXhFLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQztJQUN4QixRQUFRSCxTQUFTO01BQ2YsS0FBSyxPQUFPO1FBQ1ZHLE9BQU8sQ0FBQy9DLElBQUksQ0FDViwyQkFBMkIsRUFDM0Isd0JBQXdCLEVBQ3hCLFlBQVksRUFDWixTQUNGLENBQUM7UUFDRDtNQUNGLEtBQUssT0FBTztRQUNWK0MsT0FBTyxDQUFDL0MsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUN0QjtNQUVGLEtBQUssY0FBYztRQUNqQitDLE9BQU8sQ0FBQy9DLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDdkI7SUFDSjtJQUVBLE9BQU8rQyxPQUFPLENBQUNrRyxPQUFPLENBQUMxQixTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7RUFDMUM7RUFFQU8sZUFBZUEsQ0FBNEJvQixJQUFPLEVBQUVDLElBQU8sRUFBRTtJQUMzRCxNQUFNQyxLQUFlLEdBQUd0SyxNQUFNLENBQUNZLElBQUksQ0FBQ3dKLElBQUksQ0FBQztJQUN6QyxNQUFNRyxLQUFlLEdBQUd2SyxNQUFNLENBQUNZLElBQUksQ0FBQ3lKLElBQUksQ0FBQzs7SUFFekM7SUFDQSxJQUFJQyxLQUFLLENBQUM5SSxNQUFNLEtBQUsrSSxLQUFLLENBQUMvSSxNQUFNLEVBQUUsT0FBTyxLQUFLO0lBQy9DLE9BQU84SSxLQUFLLENBQUNFLEtBQUssQ0FBQ0MsQ0FBQyxJQUFJTCxJQUFJLENBQUNLLENBQUMsQ0FBQyxLQUFLSixJQUFJLENBQUNJLENBQUMsQ0FBQyxDQUFDO0VBQzlDO0VBRUFqQyxZQUFZQSxDQUFDSixjQUE0QixFQUFFQyxTQUFpQixFQUFFRSxLQUEyQixFQUFFO0lBQ3pGLElBQUlBLEtBQUssQ0FBQ1UsSUFBSSxLQUFLLFVBQVUsRUFBRTtNQUM3QmIsY0FBYyxDQUFDc0MsV0FBVyxDQUFDckMsU0FBUyxFQUFFRSxLQUFLLENBQUNXLFdBQVcsQ0FBQztJQUMxRCxDQUFDLE1BQU0sSUFBSVgsS0FBSyxDQUFDVSxJQUFJLEtBQUssU0FBUyxFQUFFO01BQ25DYixjQUFjLENBQUN1QyxVQUFVLENBQUN0QyxTQUFTLEVBQUVFLEtBQUssQ0FBQ1csV0FBVyxFQUFFWCxLQUFLLENBQUM7SUFDaEUsQ0FBQyxNQUFNO01BQ0xILGNBQWMsQ0FBQzJCLFFBQVEsQ0FBQzFCLFNBQVMsRUFBRUUsS0FBSyxDQUFDVSxJQUFJLEVBQUVWLEtBQUssQ0FBQztJQUN2RDtFQUNGO0FBQ0Y7QUFBQ3FDLE9BQUEsQ0FBQTdILGNBQUEsR0FBQUEsY0FBQSJ9
|
|
@@ -27,4 +27,4 @@ function makeSchema(className, schema) {
|
|
|
27
27
|
schema.className = className;
|
|
28
28
|
return schema;
|
|
29
29
|
}
|
|
30
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDTFAiLCJhbGxvdyIsInBlcm1zIiwib3V0IiwicGVybSIsIm9wcyIsIk9iamVjdCIsImVudHJpZXMiLCJvcCIsImV4cG9ydHMiLCJtYWtlU2NoZW1hIiwiY2xhc3NOYW1lIiwic2NoZW1hIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL1NjaGVtYU1pZ3JhdGlvbnMvTWlncmF0aW9ucy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAZmxvd1xuXG5leHBvcnQgaW50ZXJmYWNlIFNjaGVtYU9wdGlvbnMge1xuICBkZWZpbml0aW9uczogSlNPTlNjaGVtYVtdO1xuICBzdHJpY3Q6ID9ib29sZWFuO1xuICBkZWxldGVFeHRyYUZpZWxkczogP2Jvb2xlYW47XG4gIHJlY3JlYXRlTW9kaWZpZWRGaWVsZHM6ID9ib29sZWFuO1xuICBsb2NrU2NoZW1hczogP2Jvb2xlYW47XG4gIGJlZm9yZU1pZ3JhdGlvbjogPygpID0+IHZvaWQgfCBQcm9taXNlPHZvaWQ+O1xuICBhZnRlck1pZ3JhdGlvbjogPygpID0+IHZvaWQgfCBQcm9taXNlPHZvaWQ+O1xufVxuXG5leHBvcnQgdHlwZSBGaWVsZFZhbHVlVHlwZSA9XG4gIHwgJ1N0cmluZydcbiAgfCAnQm9vbGVhbidcbiAgfCAnRmlsZSdcbiAgfCAnTnVtYmVyJ1xuICB8ICdSZWxhdGlvbidcbiAgfCAnUG9pbnRlcidcbiAgfCAnRGF0ZSdcbiAgfCAnR2VvUG9pbnQnXG4gIHwgJ1BvbHlnb24nXG4gIHwgJ0FycmF5J1xuICB8ICdPYmplY3QnXG4gIHwgJ0FDTCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmllbGRUeXBlIHtcbiAgdHlwZTogRmllbGRWYWx1ZVR5cGU7XG4gIHJlcXVpcmVkPzogYm9vbGVhbjtcbiAgZGVmYXVsdFZhbHVlPzogbWl4ZWQ7XG4gIHRhcmdldENsYXNzPzogc3RyaW5nO1xufVxuXG50eXBlIENsYXNzTmFtZVR5cGUgPSAnX1VzZXInIHwgJ19Sb2xlJyB8IHN0cmluZztcblxuZXhwb3J0IGludGVyZmFjZSBQcm90ZWN0ZWRGaWVsZHNJbnRlcmZhY2Uge1xuICBba2V5OiBzdHJpbmddOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbmRleEludGVyZmFjZSB7XG4gIFtrZXk6IHN0cmluZ106IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbmRleGVzSW50ZXJmYWNlIHtcbiAgW2tleTogc3RyaW5nXTogSW5kZXhJbnRlcmZhY2U7XG59XG5cbmV4cG9ydCB0eXBlIENMUE9wZXJhdGlvbiA9ICdmaW5kJyB8ICdjb3VudCcgfCAnZ2V0JyB8ICd1cGRhdGUnIHwgJ2NyZWF0ZScgfCAnZGVsZXRlJztcbi8vIEBUeXBlc2NyaXB0IDQuMSsgLy8gdHlwZSBDTFBQZXJtaXNzaW9uID0gJ3JlcXVpcmVzQXV0aGVudGljYXRpb24nIHwgJyonIHwgIGB1c2VyOiR7c3RyaW5nfWAgfCBgcm9sZToke3N0cmluZ31gXG5cbnR5cGUgQ0xQVmFsdWUgPSB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfTtcbnR5cGUgQ0xQRGF0YSA9IHsgW2tleTogc3RyaW5nXTogQ0xQT3BlcmF0aW9uW10gfTtcbnR5cGUgQ0xQSW50ZXJmYWNlID0geyBba2V5OiBzdHJpbmddOiBDTFBWYWx1ZSB9O1xuXG5leHBvcnQgaW50ZXJmYWNlIEpTT05TY2hlbWEge1xuICBjbGFzc05hbWU6IENsYXNzTmFtZVR5cGU7XG4gIGZpZWxkcz86IHsgW2tleTogc3RyaW5nXTogRmllbGRUeXBlIH07XG4gIGluZGV4ZXM/OiBJbmRleGVzSW50ZXJmYWNlO1xuICBjbGFzc0xldmVsUGVybWlzc2lvbnM/OiB7XG4gICAgZmluZD86IENMUFZhbHVlLFxuICAgIGNvdW50PzogQ0xQVmFsdWUsXG4gICAgZ2V0PzogQ0xQVmFsdWUsXG4gICAgdXBkYXRlPzogQ0xQVmFsdWUsXG4gICAgY3JlYXRlPzogQ0xQVmFsdWUsXG4gICAgZGVsZXRlPzogQ0xQVmFsdWUsXG4gICAgYWRkRmllbGQ/OiBDTFBWYWx1ZSxcbiAgICBwcm90ZWN0ZWRGaWVsZHM/OiBQcm90ZWN0ZWRGaWVsZHNJbnRlcmZhY2UsXG4gIH07XG59XG5cbmV4cG9ydCBjbGFzcyBDTFAge1xuICBzdGF0aWMgYWxsb3cocGVybXM6IHsgW2tleTogc3RyaW5nXTogQ0xQRGF0YSB9KTogQ0xQSW50ZXJmYWNlIHtcbiAgICBjb25zdCBvdXQgPSB7fTtcblxuICAgIGZvciAoY29uc3QgW3Blcm0sIG9wc10gb2YgT2JqZWN0LmVudHJpZXMocGVybXMpKSB7XG4gICAgICAvLyBAZmxvdy1kaXNhYmxlLW5leHQgUHJvcGVydHkgYEBAaXRlcmF0b3JgIGlzIG1pc3NpbmcgaW4gbWl4ZWQgWzFdIGJ1dCBleGlzdHMgaW4gYCRJdGVyYWJsZWAgWzJdLlxuICAgICAgZm9yIChjb25zdCBvcCBvZiBvcHMpIHtcbiAgICAgICAgb3V0W29wXSA9IG91dFtvcF0gfHwge307XG4gICAgICAgIG91dFtvcF1bcGVybV0gPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBvdXQ7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VTY2hlbWEoY2xhc3NOYW1lOiBDbGFzc05hbWVUeXBlLCBzY2hlbWE6IEpTT05TY2hlbWEpOiBKU09OU2NoZW1hIHtcbiAgLy8gVGhpcyBmdW5jdGlvbiBzb2x2ZSB0d28gdGhpbmdzOlxuICAvLyAxLiBJdCBwcm92aWRlcyBhdXRvLWNvbXBsZXRpb24gdG8gdGhlIHVzZXJzIHdobyBhcmUgaW1wbGVtZW50aW5nIHNjaGVtYXNcbiAgLy8gMi4gSXQgYWxsb3dzIGZvcndhcmQtY29tcGF0aWJsZSBwb2ludCBpbiBvcmRlciB0byBhbGxvdyBmdXR1cmUgY2hhbmdlcyB0byB0aGUgaW50ZXJuYWwgc3RydWN0dXJlIG9mIEpTT05TY2hlbWEgd2l0aG91dCBhZmZlY3RpbmcgYWxsIHRoZSB1c2Vyc1xuICBzY2hlbWEuY2xhc3NOYW1lID0gY2xhc3NOYW1lO1xuXG4gIHJldHVybiBzY2hlbWE7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFnREE7QUFzQk8sTUFBTUEsR0FBRyxDQUFDO0VBQ2YsT0FBT0MsS0FBS0EsQ0FBQ0MsS0FBaUMsRUFBZ0I7SUFDNUQsTUFBTUMsR0FBRyxHQUFHLENBQUMsQ0FBQztJQUVkLEtBQUssTUFBTSxDQUFDQyxJQUFJLEVBQUVDLEdBQUcsQ0FBQyxJQUFJQyxNQUFNLENBQUNDLE9BQU8sQ0FBQ0wsS0FBSyxDQUFDLEVBQUU7TUFDL0M7TUFDQSxLQUFLLE1BQU1NLEVBQUUsSUFBSUgsR0FBRyxFQUFFO1FBQ3BCRixHQUFHLENBQUNLLEVBQUUsQ0FBQyxHQUFHTCxHQUFHLENBQUNLLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2QkwsR0FBRyxDQUFDSyxFQUFFLENBQUMsQ0FBQ0osSUFBSSxDQUFDLEdBQUcsSUFBSTtNQUN0QjtJQUNGO0lBRUEsT0FBT0QsR0FBRztFQUNaO0FBQ0Y7QUFBQ00sT0FBQSxDQUFBVCxHQUFBLEdBQUFBLEdBQUE7QUFFTSxTQUFTVSxVQUFVQSxDQUFDQyxTQUF3QixFQUFFQyxNQUFrQixFQUFjO0VBQ25GO0VBQ0E7RUFDQTtFQUNBQSxNQUFNLENBQUNELFNBQVMsR0FBR0EsU0FBUztFQUU1QixPQUFPQyxNQUFNO0FBQ2YifQ==
|
package/lib/Security/Check.js
CHANGED
|
@@ -107,4 +107,4 @@ module.exports = {
|
|
|
107
107
|
Check,
|
|
108
108
|
CheckState
|
|
109
109
|
};
|
|
110
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
110
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfVXRpbHMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9sb2Rhc2giLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIkNoZWNrIiwiY29uc3RydWN0b3IiLCJwYXJhbXMiLCJfdmFsaWRhdGVQYXJhbXMiLCJ0aXRsZSIsIndhcm5pbmciLCJzb2x1dGlvbiIsImNoZWNrIiwiX2NoZWNrU3RhdGUiLCJDaGVja1N0YXRlIiwibm9uZSIsImVycm9yIiwiY2hlY2tTdGF0ZSIsInJ1biIsIlByb21pc2UiLCJzdWNjZXNzIiwiZSIsInN0YXRlRmFpbEVycm9yIiwiZmFpbCIsIlV0aWxzIiwidmFsaWRhdGVQYXJhbXMiLCJncm91cCIsInQiLCJ2IiwiaXNTdHJpbmciLCJpc0Z1bmN0aW9uIiwiT2JqZWN0IiwiZnJlZXplIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwibW9kdWxlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL1NlY3VyaXR5L0NoZWNrLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBTZWN1cml0eUNoZWNrXG4gKi9cblxuaW1wb3J0IFV0aWxzIGZyb20gJy4uL1V0aWxzJztcbmltcG9ydCB7IGlzRnVuY3Rpb24sIGlzU3RyaW5nIH0gZnJvbSAnbG9kYXNoJztcblxuLyoqXG4gKiBBIHNlY3VyaXR5IGNoZWNrLlxuICogQGNsYXNzXG4gKi9cbmNsYXNzIENoZWNrIHtcbiAgLyoqXG4gICAqIENvbnN0cnVjdHMgYSBuZXcgc2VjdXJpdHkgY2hlY2suXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBwYXJhbXMgVGhlIHBhcmFtZXRlcnMuXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBwYXJhbXMudGl0bGUgVGhlIHRpdGxlLlxuICAgKiBAcGFyYW0ge1N0cmluZ30gcGFyYW1zLndhcm5pbmcgVGhlIHdhcm5pbmcgbWVzc2FnZSBpZiB0aGUgY2hlY2sgZmFpbHMuXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBwYXJhbXMuc29sdXRpb24gVGhlIHNvbHV0aW9uIHRvIGZpeCB0aGUgY2hlY2suXG4gICAqIEBwYXJhbSB7UHJvbWlzZX0gcGFyYW1zLmNoZWNrIFRoZSBjaGVjayBhcyBzeW5jaHJvbm91cyBvciBhc3luY2hyb25vdXMgZnVuY3Rpb24uXG4gICAqL1xuICBjb25zdHJ1Y3RvcihwYXJhbXMpIHtcbiAgICB0aGlzLl92YWxpZGF0ZVBhcmFtcyhwYXJhbXMpO1xuICAgIGNvbnN0IHsgdGl0bGUsIHdhcm5pbmcsIHNvbHV0aW9uLCBjaGVjayB9ID0gcGFyYW1zO1xuXG4gICAgdGhpcy50aXRsZSA9IHRpdGxlO1xuICAgIHRoaXMud2FybmluZyA9IHdhcm5pbmc7XG4gICAgdGhpcy5zb2x1dGlvbiA9IHNvbHV0aW9uO1xuICAgIHRoaXMuY2hlY2sgPSBjaGVjaztcblxuICAgIC8vIFNldCBkZWZhdWx0IHByb3BlcnRpZXNcbiAgICB0aGlzLl9jaGVja1N0YXRlID0gQ2hlY2tTdGF0ZS5ub25lO1xuICAgIHRoaXMuZXJyb3I7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgY3VycmVudCBjaGVjayBzdGF0ZS5cbiAgICogQHJldHVybiB7Q2hlY2tTdGF0ZX0gVGhlIGNoZWNrIHN0YXRlLlxuICAgKi9cbiAgY2hlY2tTdGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fY2hlY2tTdGF0ZTtcbiAgfVxuXG4gIGFzeW5jIHJ1bigpIHtcbiAgICAvLyBHZXQgY2hlY2sgYXMgc3luY2hyb25vdXMgb3IgYXN5bmNocm9ub3VzIGZ1bmN0aW9uXG4gICAgY29uc3QgY2hlY2sgPSB0aGlzLmNoZWNrIGluc3RhbmNlb2YgUHJvbWlzZSA/IGF3YWl0IHRoaXMuY2hlY2sgOiB0aGlzLmNoZWNrO1xuXG4gICAgLy8gUnVuIGNoZWNrXG4gICAgdHJ5IHtcbiAgICAgIGNoZWNrKCk7XG4gICAgICB0aGlzLl9jaGVja1N0YXRlID0gQ2hlY2tTdGF0ZS5zdWNjZXNzO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMuc3RhdGVGYWlsRXJyb3IgPSBlO1xuICAgICAgdGhpcy5fY2hlY2tTdGF0ZSA9IENoZWNrU3RhdGUuZmFpbDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIHRoZSBjb25zdHJ1Y3RvciBwYXJhbWV0ZXJzLlxuICAgKiBAcGFyYW0ge09iamVjdH0gcGFyYW1zIFRoZSBwYXJhbWV0ZXJzIHRvIHZhbGlkYXRlLlxuICAgKi9cbiAgX3ZhbGlkYXRlUGFyYW1zKHBhcmFtcykge1xuICAgIFV0aWxzLnZhbGlkYXRlUGFyYW1zKHBhcmFtcywge1xuICAgICAgZ3JvdXA6IHsgdDogJ3N0cmluZycsIHY6IGlzU3RyaW5nIH0sXG4gICAgICB0aXRsZTogeyB0OiAnc3RyaW5nJywgdjogaXNTdHJpbmcgfSxcbiAgICAgIHdhcm5pbmc6IHsgdDogJ3N0cmluZycsIHY6IGlzU3RyaW5nIH0sXG4gICAgICBzb2x1dGlvbjogeyB0OiAnc3RyaW5nJywgdjogaXNTdHJpbmcgfSxcbiAgICAgIGNoZWNrOiB7IHQ6ICdmdW5jdGlvbicsIHY6IGlzRnVuY3Rpb24gfSxcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIFRoZSBjaGVjayBzdGF0ZS5cbiAqL1xuY29uc3QgQ2hlY2tTdGF0ZSA9IE9iamVjdC5mcmVlemUoe1xuICBub25lOiAnbm9uZScsXG4gIGZhaWw6ICdmYWlsJyxcbiAgc3VjY2VzczogJ3N1Y2Nlc3MnLFxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IENoZWNrO1xubW9kdWxlLmV4cG9ydHMgPSB7XG4gIENoZWNrLFxuICBDaGVja1N0YXRlLFxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBSUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRCxPQUFBO0FBQThDLFNBQUFELHVCQUFBRyxHQUFBLFdBQUFBLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLEdBQUFELEdBQUEsS0FBQUUsT0FBQSxFQUFBRixHQUFBO0FBTDlDO0FBQ0E7QUFDQTs7QUFLQTtBQUNB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
|
|
@@ -41,4 +41,4 @@ class CheckGroup {
|
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
43
|
module.exports = CheckGroup;
|
|
44
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDaGVja0dyb3VwIiwiY29uc3RydWN0b3IiLCJfbmFtZSIsInNldE5hbWUiLCJfY2hlY2tzIiwic2V0Q2hlY2tzIiwibmFtZSIsImNoZWNrcyIsInJ1biIsImNoZWNrIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TZWN1cml0eS9DaGVja0dyb3VwLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQSBncm91cCBvZiBzZWN1cml0eSBjaGVja3MuXG4gKiBAaW50ZXJmYWNlXG4gKiBAbWVtYmVyb2YgbW9kdWxlOlNlY3VyaXR5Q2hlY2tcbiAqL1xuY2xhc3MgQ2hlY2tHcm91cCB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuX25hbWUgPSB0aGlzLnNldE5hbWUoKTtcbiAgICB0aGlzLl9jaGVja3MgPSB0aGlzLnNldENoZWNrcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBzZWN1cml0eSBjaGVjayBncm91cCBuYW1lOyB0byBiZSBvdmVycmlkZGVuIGJ5IGNoaWxkIGNsYXNzLlxuICAgKi9cbiAgc2V0TmFtZSgpIHtcbiAgICB0aHJvdyBgQ2hlY2sgZ3JvdXAgaGFzIG5vIG5hbWUuYDtcbiAgfVxuICBuYW1lKCkge1xuICAgIHJldHVybiB0aGlzLl9uYW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBzZWN1cml0eSBjaGVja3M7IHRvIGJlIG92ZXJyaWRkZW4gYnkgY2hpbGQgY2xhc3MuXG4gICAqL1xuICBzZXRDaGVja3MoKSB7XG4gICAgdGhyb3cgYENoZWNrIGdyb3VwIGhhcyBubyBjaGVja3MuYDtcbiAgfVxuICBjaGVja3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NoZWNrcztcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGFsbCBjaGVja3MuXG4gICAqL1xuICBhc3luYyBydW4oKSB7XG4gICAgZm9yIChjb25zdCBjaGVjayBvZiB0aGlzLl9jaGVja3MpIHtcbiAgICAgIGNoZWNrLnJ1bigpO1xuICAgIH1cbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IENoZWNrR3JvdXA7XG4iXSwibWFwcGluZ3MiOiI7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU1BLFVBQVUsQ0FBQztFQUNmQyxXQUFXQSxDQUFBLEVBQUc7SUFDWixJQUFJLENBQUNDLEtBQUssR0FBRyxJQUFJLENBQUNDLE9BQU8sQ0FBQyxDQUFDO0lBQzNCLElBQUksQ0FBQ0MsT0FBTyxHQUFHLElBQUksQ0FBQ0MsU0FBUyxDQUFDLENBQUM7RUFDakM7O0VBRUE7QUFDRjtBQUNBO0VBQ0VGLE9BQU9BLENBQUEsRUFBRztJQUNSLE1BQU8sMEJBQXlCO0VBQ2xDO0VBQ0FHLElBQUlBLENBQUEsRUFBRztJQUNMLE9BQU8sSUFBSSxDQUFDSixLQUFLO0VBQ25COztFQUVBO0FBQ0Y7QUFDQTtFQUNFRyxTQUFTQSxDQUFBLEVBQUc7SUFDVixNQUFPLDRCQUEyQjtFQUNwQztFQUNBRSxNQUFNQSxDQUFBLEVBQUc7SUFDUCxPQUFPLElBQUksQ0FBQ0gsT0FBTztFQUNyQjs7RUFFQTtBQUNGO0FBQ0E7RUFDRSxNQUFNSSxHQUFHQSxDQUFBLEVBQUc7SUFDVixLQUFLLE1BQU1DLEtBQUssSUFBSSxJQUFJLENBQUNMLE9BQU8sRUFBRTtNQUNoQ0ssS0FBSyxDQUFDRCxHQUFHLENBQUMsQ0FBQztJQUNiO0VBQ0Y7QUFDRjtBQUVBRSxNQUFNLENBQUNDLE9BQU8sR0FBR1gsVUFBVSJ9
|
|
@@ -41,4 +41,4 @@ class CheckGroupDatabase extends _CheckGroup.default {
|
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
43
|
module.exports = CheckGroupDatabase;
|
|
44
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfQ2hlY2siLCJyZXF1aXJlIiwiX0NoZWNrR3JvdXAiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX0NvbmZpZyIsIl9ub2RlIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJDaGVja0dyb3VwRGF0YWJhc2UiLCJDaGVja0dyb3VwIiwic2V0TmFtZSIsInNldENoZWNrcyIsImNvbmZpZyIsIkNvbmZpZyIsImdldCIsIlBhcnNlIiwiYXBwbGljYXRpb25JZCIsImRhdGFiYXNlQWRhcHRlciIsImRhdGFiYXNlIiwiYWRhcHRlciIsImRhdGFiYXNlVXJsIiwiX3VyaSIsIkNoZWNrIiwidGl0bGUiLCJ3YXJuaW5nIiwic29sdXRpb24iLCJjaGVjayIsInBhc3N3b3JkIiwibWF0Y2giLCJoYXNVcHBlckNhc2UiLCJ0ZXN0IiwiaGFzTG93ZXJDYXNlIiwiaGFzTnVtYmVycyIsImhhc05vbkFscGhhc051bWVyaWNzIiwibGVuZ3RoIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9TZWN1cml0eS9DaGVja0dyb3Vwcy9DaGVja0dyb3VwRGF0YWJhc2UuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hlY2sgfSBmcm9tICcuLi9DaGVjayc7XG5pbXBvcnQgQ2hlY2tHcm91cCBmcm9tICcuLi9DaGVja0dyb3VwJztcbmltcG9ydCBDb25maWcgZnJvbSAnLi4vLi4vQ29uZmlnJztcbmltcG9ydCBQYXJzZSBmcm9tICdwYXJzZS9ub2RlJztcblxuLyoqXG4gKiBUaGUgc2VjdXJpdHkgY2hlY2tzIGdyb3VwIGZvciBQYXJzZSBTZXJ2ZXIgY29uZmlndXJhdGlvbi5cbiAqIENoZWNrcyBjb21tb24gUGFyc2UgU2VydmVyIHBhcmFtZXRlcnMgc3VjaCBhcyBhY2Nlc3Mga2V5c1xuICogQG1lbWJlcm9mIG1vZHVsZTpTZWN1cml0eUNoZWNrXG4gKi9cbmNsYXNzIENoZWNrR3JvdXBEYXRhYmFzZSBleHRlbmRzIENoZWNrR3JvdXAge1xuICBzZXROYW1lKCkge1xuICAgIHJldHVybiAnRGF0YWJhc2UnO1xuICB9XG4gIHNldENoZWNrcygpIHtcbiAgICBjb25zdCBjb25maWcgPSBDb25maWcuZ2V0KFBhcnNlLmFwcGxpY2F0aW9uSWQpO1xuICAgIGNvbnN0IGRhdGFiYXNlQWRhcHRlciA9IGNvbmZpZy5kYXRhYmFzZS5hZGFwdGVyO1xuICAgIGNvbnN0IGRhdGFiYXNlVXJsID0gZGF0YWJhc2VBZGFwdGVyLl91cmk7XG4gICAgcmV0dXJuIFtcbiAgICAgIG5ldyBDaGVjayh7XG4gICAgICAgIHRpdGxlOiAnU2VjdXJlIGRhdGFiYXNlIHBhc3N3b3JkJyxcbiAgICAgICAgd2FybmluZzogJ1RoZSBkYXRhYmFzZSBwYXNzd29yZCBpcyBpbnNlY3VyZSBhbmQgdnVsbmVyYWJsZSB0byBicnV0ZSBmb3JjZSBhdHRhY2tzLicsXG4gICAgICAgIHNvbHV0aW9uOlxuICAgICAgICAgICdDaG9vc2UgYSBsb25nZXIgYW5kL29yIG1vcmUgY29tcGxleCBwYXNzd29yZCB3aXRoIGEgY29tYmluYXRpb24gb2YgdXBwZXItIGFuZCBsb3dlcmNhc2UgY2hhcmFjdGVycywgbnVtYmVycyBhbmQgc3BlY2lhbCBjaGFyYWN0ZXJzLicsXG4gICAgICAgIGNoZWNrOiAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgcGFzc3dvcmQgPSBkYXRhYmFzZVVybC5tYXRjaCgvXFwvXFwvXFxTKzooXFxTKylALylbMV07XG4gICAgICAgICAgY29uc3QgaGFzVXBwZXJDYXNlID0gL1tBLVpdLy50ZXN0KHBhc3N3b3JkKTtcbiAgICAgICAgICBjb25zdCBoYXNMb3dlckNhc2UgPSAvW2Etel0vLnRlc3QocGFzc3dvcmQpO1xuICAgICAgICAgIGNvbnN0IGhhc051bWJlcnMgPSAvXFxkLy50ZXN0KHBhc3N3b3JkKTtcbiAgICAgICAgICBjb25zdCBoYXNOb25BbHBoYXNOdW1lcmljcyA9IC9cXFcvLnRlc3QocGFzc3dvcmQpO1xuICAgICAgICAgIC8vIEVuc3VyZSBsZW5ndGhcbiAgICAgICAgICBpZiAocGFzc3dvcmQubGVuZ3RoIDwgMTQpIHtcbiAgICAgICAgICAgIHRocm93IDE7XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIEVuc3VyZSBhdCBsZWFzdCAzIG91dCBvZiA0IHJlcXVpcmVtZW50cyBwYXNzZWRcbiAgICAgICAgICBpZiAoaGFzVXBwZXJDYXNlICsgaGFzTG93ZXJDYXNlICsgaGFzTnVtYmVycyArIGhhc05vbkFscGhhc051bWVyaWNzIDwgMykge1xuICAgICAgICAgICAgdGhyb3cgMTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICBdO1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gQ2hlY2tHcm91cERhdGFiYXNlO1xuIl0sIm1hcHBpbmdzIjoiOztBQUFBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLFdBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLE9BQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFJLEtBQUEsR0FBQUYsc0JBQUEsQ0FBQUYsT0FBQTtBQUErQixTQUFBRSx1QkFBQUcsR0FBQSxXQUFBQSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxHQUFBRCxHQUFBLEtBQUFFLE9BQUEsRUFBQUYsR0FBQTtBQUUvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTUcsa0JBQWtCLFNBQVNDLG1CQUFVLENBQUM7RUFDMUNDLE9BQU9BLENBQUEsRUFBRztJQUNSLE9BQU8sVUFBVTtFQUNuQjtFQUNBQyxTQUFTQSxDQUFBLEVBQUc7SUFDVixNQUFNQyxNQUFNLEdBQUdDLGVBQU0sQ0FBQ0MsR0FBRyxDQUFDQyxhQUFLLENBQUNDLGFBQWEsQ0FBQztJQUM5QyxNQUFNQyxlQUFlLEdBQUdMLE1BQU0sQ0FBQ00sUUFBUSxDQUFDQyxPQUFPO0lBQy9DLE1BQU1DLFdBQVcsR0FBR0gsZUFBZSxDQUFDSSxJQUFJO0lBQ3hDLE9BQU8sQ0FDTCxJQUFJQyxZQUFLLENBQUM7TUFDUkMsS0FBSyxFQUFFLDBCQUEwQjtNQUNqQ0MsT0FBTyxFQUFFLDBFQUEwRTtNQUNuRkMsUUFBUSxFQUNOLHFJQUFxSTtNQUN2SUMsS0FBSyxFQUFFQSxDQUFBLEtBQU07UUFDWCxNQUFNQyxRQUFRLEdBQUdQLFdBQVcsQ0FBQ1EsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELE1BQU1DLFlBQVksR0FBRyxPQUFPLENBQUNDLElBQUksQ0FBQ0gsUUFBUSxDQUFDO1FBQzNDLE1BQU1JLFlBQVksR0FBRyxPQUFPLENBQUNELElBQUksQ0FBQ0gsUUFBUSxDQUFDO1FBQzNDLE1BQU1LLFVBQVUsR0FBRyxJQUFJLENBQUNGLElBQUksQ0FBQ0gsUUFBUSxDQUFDO1FBQ3RDLE1BQU1NLG9CQUFvQixHQUFHLElBQUksQ0FBQ0gsSUFBSSxDQUFDSCxRQUFRLENBQUM7UUFDaEQ7UUFDQSxJQUFJQSxRQUFRLENBQUNPLE1BQU0sR0FBRyxFQUFFLEVBQUU7VUFDeEIsTUFBTSxDQUFDO1FBQ1Q7UUFDQTtRQUNBLElBQUlMLFlBQVksR0FBR0UsWUFBWSxHQUFHQyxVQUFVLEdBQUdDLG9CQUFvQixHQUFHLENBQUMsRUFBRTtVQUN2RSxNQUFNLENBQUM7UUFDVDtNQUNGO0lBQ0YsQ0FBQyxDQUFDLENBQ0g7RUFDSDtBQUNGO0FBRUFFLE1BQU0sQ0FBQ0MsT0FBTyxHQUFHNUIsa0JBQWtCIn0=
|
|
@@ -66,4 +66,4 @@ class CheckGroupServerConfig extends _CheckGroup.default {
|
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
68
|
module.exports = CheckGroupServerConfig;
|
|
69
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfQ2hlY2siLCJyZXF1aXJlIiwiX0NoZWNrR3JvdXAiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX0NvbmZpZyIsIl9ub2RlIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJDaGVja0dyb3VwU2VydmVyQ29uZmlnIiwiQ2hlY2tHcm91cCIsInNldE5hbWUiLCJzZXRDaGVja3MiLCJjb25maWciLCJDb25maWciLCJnZXQiLCJQYXJzZSIsImFwcGxpY2F0aW9uSWQiLCJDaGVjayIsInRpdGxlIiwid2FybmluZyIsInNvbHV0aW9uIiwiY2hlY2siLCJtYXN0ZXJLZXkiLCJoYXNVcHBlckNhc2UiLCJ0ZXN0IiwiaGFzTG93ZXJDYXNlIiwiaGFzTnVtYmVycyIsImhhc05vbkFscGhhc051bWVyaWNzIiwibGVuZ3RoIiwic2VjdXJpdHkiLCJlbmFibGVDaGVja0xvZyIsImFsbG93Q2xpZW50Q2xhc3NDcmVhdGlvbiIsImVuZm9yY2VQcml2YXRlVXNlcnMiLCJtb2R1bGUiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL1NlY3VyaXR5L0NoZWNrR3JvdXBzL0NoZWNrR3JvdXBTZXJ2ZXJDb25maWcuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hlY2sgfSBmcm9tICcuLi9DaGVjayc7XG5pbXBvcnQgQ2hlY2tHcm91cCBmcm9tICcuLi9DaGVja0dyb3VwJztcbmltcG9ydCBDb25maWcgZnJvbSAnLi4vLi4vQ29uZmlnJztcbmltcG9ydCBQYXJzZSBmcm9tICdwYXJzZS9ub2RlJztcblxuLyoqXG4gKiBUaGUgc2VjdXJpdHkgY2hlY2tzIGdyb3VwIGZvciBQYXJzZSBTZXJ2ZXIgY29uZmlndXJhdGlvbi5cbiAqIENoZWNrcyBjb21tb24gUGFyc2UgU2VydmVyIHBhcmFtZXRlcnMgc3VjaCBhcyBhY2Nlc3Mga2V5cy5cbiAqIEBtZW1iZXJvZiBtb2R1bGU6U2VjdXJpdHlDaGVja1xuICovXG5jbGFzcyBDaGVja0dyb3VwU2VydmVyQ29uZmlnIGV4dGVuZHMgQ2hlY2tHcm91cCB7XG4gIHNldE5hbWUoKSB7XG4gICAgcmV0dXJuICdQYXJzZSBTZXJ2ZXIgQ29uZmlndXJhdGlvbic7XG4gIH1cbiAgc2V0Q2hlY2tzKCkge1xuICAgIGNvbnN0IGNvbmZpZyA9IENvbmZpZy5nZXQoUGFyc2UuYXBwbGljYXRpb25JZCk7XG4gICAgcmV0dXJuIFtcbiAgICAgIG5ldyBDaGVjayh7XG4gICAgICAgIHRpdGxlOiAnU2VjdXJlIG1hc3RlciBrZXknLFxuICAgICAgICB3YXJuaW5nOiAnVGhlIFBhcnNlIFNlcnZlciBtYXN0ZXIga2V5IGlzIGluc2VjdXJlIGFuZCB2dWxuZXJhYmxlIHRvIGJydXRlIGZvcmNlIGF0dGFja3MuJyxcbiAgICAgICAgc29sdXRpb246XG4gICAgICAgICAgJ0Nob29zZSBhIGxvbmdlciBhbmQvb3IgbW9yZSBjb21wbGV4IG1hc3RlciBrZXkgd2l0aCBhIGNvbWJpbmF0aW9uIG9mIHVwcGVyLSBhbmQgbG93ZXJjYXNlIGNoYXJhY3RlcnMsIG51bWJlcnMgYW5kIHNwZWNpYWwgY2hhcmFjdGVycy4nLFxuICAgICAgICBjaGVjazogKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IG1hc3RlcktleSA9IGNvbmZpZy5tYXN0ZXJLZXk7XG4gICAgICAgICAgY29uc3QgaGFzVXBwZXJDYXNlID0gL1tBLVpdLy50ZXN0KG1hc3RlcktleSk7XG4gICAgICAgICAgY29uc3QgaGFzTG93ZXJDYXNlID0gL1thLXpdLy50ZXN0KG1hc3RlcktleSk7XG4gICAgICAgICAgY29uc3QgaGFzTnVtYmVycyA9IC9cXGQvLnRlc3QobWFzdGVyS2V5KTtcbiAgICAgICAgICBjb25zdCBoYXNOb25BbHBoYXNOdW1lcmljcyA9IC9cXFcvLnRlc3QobWFzdGVyS2V5KTtcbiAgICAgICAgICAvLyBFbnN1cmUgbGVuZ3RoXG4gICAgICAgICAgaWYgKG1hc3RlcktleS5sZW5ndGggPCAxNCkge1xuICAgICAgICAgICAgdGhyb3cgMTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gRW5zdXJlIGF0IGxlYXN0IDMgb3V0IG9mIDQgcmVxdWlyZW1lbnRzIHBhc3NlZFxuICAgICAgICAgIGlmIChoYXNVcHBlckNhc2UgKyBoYXNMb3dlckNhc2UgKyBoYXNOdW1iZXJzICsgaGFzTm9uQWxwaGFzTnVtZXJpY3MgPCAzKSB7XG4gICAgICAgICAgICB0aHJvdyAxO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICAgbmV3IENoZWNrKHtcbiAgICAgICAgdGl0bGU6ICdTZWN1cml0eSBsb2cgZGlzYWJsZWQnLFxuICAgICAgICB3YXJuaW5nOlxuICAgICAgICAgICdTZWN1cml0eSBjaGVja3MgaW4gbG9ncyBtYXkgZXhwb3NlIHZ1bG5lcmFiaWxpdGllcyB0byBhbnlvbmUgd2l0aCBhY2Nlc3MgdG8gbG9ncy4nLFxuICAgICAgICBzb2x1dGlvbjogXCJDaGFuZ2UgUGFyc2UgU2VydmVyIGNvbmZpZ3VyYXRpb24gdG8gJ3NlY3VyaXR5LmVuYWJsZUNoZWNrTG9nOiBmYWxzZScuXCIsXG4gICAgICAgIGNoZWNrOiAoKSA9PiB7XG4gICAgICAgICAgaWYgKGNvbmZpZy5zZWN1cml0eSAmJiBjb25maWcuc2VjdXJpdHkuZW5hYmxlQ2hlY2tMb2cpIHtcbiAgICAgICAgICAgIHRocm93IDE7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgICBuZXcgQ2hlY2soe1xuICAgICAgICB0aXRsZTogJ0NsaWVudCBjbGFzcyBjcmVhdGlvbiBkaXNhYmxlZCcsXG4gICAgICAgIHdhcm5pbmc6XG4gICAgICAgICAgJ0F0dGFja2VycyBhcmUgYWxsb3dlZCB0byBjcmVhdGUgbmV3IGNsYXNzZXMgd2l0aG91dCByZXN0cmljdGlvbiBhbmQgZmxvb2QgdGhlIGRhdGFiYXNlLicsXG4gICAgICAgIHNvbHV0aW9uOiBcIkNoYW5nZSBQYXJzZSBTZXJ2ZXIgY29uZmlndXJhdGlvbiB0byAnYWxsb3dDbGllbnRDbGFzc0NyZWF0aW9uOiBmYWxzZScuXCIsXG4gICAgICAgIGNoZWNrOiAoKSA9PiB7XG4gICAgICAgICAgaWYgKGNvbmZpZy5hbGxvd0NsaWVudENsYXNzQ3JlYXRpb24gfHwgY29uZmlnLmFsbG93Q2xpZW50Q2xhc3NDcmVhdGlvbiA9PSBudWxsKSB7XG4gICAgICAgICAgICB0aHJvdyAxO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICAgbmV3IENoZWNrKHtcbiAgICAgICAgdGl0bGU6ICdVc2VycyBhcmUgY3JlYXRlZCB3aXRob3V0IHB1YmxpYyBhY2Nlc3MnLFxuICAgICAgICB3YXJuaW5nOlxuICAgICAgICAgICdVc2VycyB3aXRoIHB1YmxpYyByZWFkIGFjY2VzcyBhcmUgZXhwb3NlZCB0byBhbnlvbmUgd2hvIGtub3dzIHRoZWlyIG9iamVjdCBJRHMsIG9yIHRvIGFueW9uZSB3aG8gY2FuIHF1ZXJ5IHRoZSBQYXJzZS5Vc2VyIGNsYXNzLicsXG4gICAgICAgIHNvbHV0aW9uOiBcIkNoYW5nZSBQYXJzZSBTZXJ2ZXIgY29uZmlndXJhdGlvbiB0byAnZW5mb3JjZVByaXZhdGVVc2VyczogdHJ1ZScuXCIsXG4gICAgICAgIGNoZWNrOiAoKSA9PiB7XG4gICAgICAgICAgaWYgKCFjb25maWcuZW5mb3JjZVByaXZhdGVVc2Vycykge1xuICAgICAgICAgICAgdGhyb3cgMTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICBdO1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gQ2hlY2tHcm91cFNlcnZlckNvbmZpZztcbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxXQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxPQUFBLEdBQUFELHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBSSxLQUFBLEdBQUFGLHNCQUFBLENBQUFGLE9BQUE7QUFBK0IsU0FBQUUsdUJBQUFHLEdBQUEsV0FBQUEsR0FB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
|
|
@@ -18,4 +18,4 @@ Object.defineProperty(exports, "CheckGroupServerConfig", {
|
|
|
18
18
|
var _CheckGroupDatabase = _interopRequireDefault(require("./CheckGroupDatabase"));
|
|
19
19
|
var _CheckGroupServerConfig = _interopRequireDefault(require("./CheckGroupServerConfig"));
|
|
20
20
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfQ2hlY2tHcm91cERhdGFiYXNlIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfQ2hlY2tHcm91cFNlcnZlckNvbmZpZyIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL1NlY3VyaXR5L0NoZWNrR3JvdXBzL0NoZWNrR3JvdXBzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1lbWJlcm9mIG1vZHVsZTpTZWN1cml0eUNoZWNrXG4gKi9cblxuLyoqXG4gKiBUaGUgbGlzdCBvZiBzZWN1cml0eSBjaGVjayBncm91cHMuXG4gKi9cbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2hlY2tHcm91cERhdGFiYXNlIH0gZnJvbSAnLi9DaGVja0dyb3VwRGF0YWJhc2UnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDaGVja0dyb3VwU2VydmVyQ29uZmlnIH0gZnJvbSAnLi9DaGVja0dyb3VwU2VydmVyQ29uZmlnJztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPQSxJQUFBQSxtQkFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsdUJBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUE2RSxTQUFBRCx1QkFBQUcsR0FBQSxXQUFBQSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxHQUFBRCxHQUFBLEtBQUFFLE9BQUEsRUFBQUYsR0FBQSJ9
|
|
@@ -211,4 +211,4 @@ class CheckRunner {
|
|
|
211
211
|
}
|
|
212
212
|
}
|
|
213
213
|
module.exports = CheckRunner;
|
|
214
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDaGVja1J1bm5lciIsImNvbnN0cnVjdG9yIiwiY29uZmlnIiwiX3ZhbGlkYXRlUGFyYW1zIiwiZW5hYmxlQ2hlY2siLCJlbmFibGVDaGVja0xvZyIsImNoZWNrR3JvdXBzIiwiQ2hlY2tHcm91cHMiLCJydW4iLCJ2ZXJzaW9uIiwiZ3JvdXBzIiwiT2JqZWN0IiwidmFsdWVzIiwiZmlsdGVyIiwiYyIsIm1hcCIsIkNoZWNrR3JvdXAiLCJmb3JFYWNoIiwiZ3JvdXAiLCJyZXBvcnQiLCJfZ2VuZXJhdGVSZXBvcnQiLCJfbG9nUmVwb3J0Iiwic3RhdGUiLCJDaGVja1N0YXRlIiwic3VjY2VzcyIsImdyb3VwUmVwb3J0IiwibmFtZSIsImNoZWNrcyIsImNoZWNrIiwiY2hlY2tSZXBvcnQiLCJ0aXRsZSIsImNoZWNrU3RhdGUiLCJmYWlsIiwid2FybmluZyIsInNvbHV0aW9uIiwicHVzaCIsImxvZyIsInMiLCJsb2dnZXIiLCJpbmZvIiwid2FybiIsImluZGVudCIsIm91dHB1dCIsImNoZWNrc0NvdW50IiwiZmFpbGVkQ2hlY2tzQ291bnQiLCJza2lwcGVkQ2hlY2tDb3VudCIsIl9nZXRMb2dJY29uRm9yU3RhdGUiLCJub25lIiwicGFyYW1zIiwiVXRpbHMiLCJ2YWxpZGF0ZVBhcmFtcyIsInQiLCJ2IiwiaXNCb29sZWFuIiwibyIsImlzQXJyYXkiLCJtb2R1bGUiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL1NlY3VyaXR5L0NoZWNrUnVubmVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBVdGlscyBmcm9tICcuLi9VdGlscyc7XG5pbXBvcnQgeyBDaGVja1N0YXRlIH0gZnJvbSAnLi9DaGVjayc7XG5pbXBvcnQgKiBhcyBDaGVja0dyb3VwcyBmcm9tICcuL0NoZWNrR3JvdXBzL0NoZWNrR3JvdXBzJztcbmltcG9ydCBsb2dnZXIgZnJvbSAnLi4vbG9nZ2VyJztcbmltcG9ydCB7IGlzQXJyYXksIGlzQm9vbGVhbiB9IGZyb20gJ2xvZGFzaCc7XG5cbi8qKlxuICogVGhlIHNlY3VyaXR5IGNoZWNrIHJ1bm5lci5cbiAqIEBtZW1iZXJvZiBtb2R1bGU6U2VjdXJpdHlDaGVja1xuICovXG5jbGFzcyBDaGVja1J1bm5lciB7XG4gIC8qKlxuICAgKiBUaGUgc2VjdXJpdHkgY2hlY2sgcnVubmVyLlxuICAgKiBAcGFyYW0ge09iamVjdH0gW2NvbmZpZ10gVGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucy5cbiAgICogQHBhcmFtIHtCb29sZWFufSBbY29uZmlnLmVuYWJsZUNoZWNrPWZhbHNlXSBJcyB0cnVlIGlmIFBhcnNlIFNlcnZlciBzaG91bGQgcmVwb3J0IHdlYWsgc2VjdXJpdHkgc2V0dGluZ3MuXG4gICAqIEBwYXJhbSB7Qm9vbGVhbn0gW2NvbmZpZy5lbmFibGVDaGVja0xvZz1mYWxzZV0gSXMgdHJ1ZSBpZiB0aGUgc2VjdXJpdHkgY2hlY2sgcmVwb3J0IHNob3VsZCBiZSB3cml0dGVuIHRvIGxvZ3MuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBbY29uZmlnLmNoZWNrR3JvdXBzXSBUaGUgY2hlY2sgZ3JvdXBzIHRvIHJ1bi4gRGVmYXVsdCBhcmUgdGhlIGdyb3VwcyBkZWZpbmVkIGluIGAuL0NoZWNrR3JvdXBzL0NoZWNrR3JvdXBzLmpzYC5cbiAgICovXG4gIGNvbnN0cnVjdG9yKGNvbmZpZyA9IHt9KSB7XG4gICAgdGhpcy5fdmFsaWRhdGVQYXJhbXMoY29uZmlnKTtcbiAgICBjb25zdCB7IGVuYWJsZUNoZWNrID0gZmFsc2UsIGVuYWJsZUNoZWNrTG9nID0gZmFsc2UsIGNoZWNrR3JvdXBzID0gQ2hlY2tHcm91cHMgfSA9IGNvbmZpZztcbiAgICB0aGlzLmVuYWJsZUNoZWNrID0gZW5hYmxlQ2hlY2s7XG4gICAgdGhpcy5lbmFibGVDaGVja0xvZyA9IGVuYWJsZUNoZWNrTG9nO1xuICAgIHRoaXMuY2hlY2tHcm91cHMgPSBjaGVja0dyb3VwcztcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGFsbCBzZWN1cml0eSBjaGVja3MgYW5kIHJldHVybnMgdGhlIHJlc3VsdHMuXG4gICAqIEBwYXJhbXNcbiAgICogQHJldHVybnMge09iamVjdH0gVGhlIHNlY3VyaXR5IGNoZWNrIHJlcG9ydC5cbiAgICovXG4gIGFzeW5jIHJ1bih7IHZlcnNpb24gPSAnMS4wLjAnIH0gPSB7fSkge1xuICAgIC8vIEluc3RhbnRpYXRlIGNoZWNrIGdyb3Vwc1xuICAgIGNvbnN0IGdyb3VwcyA9IE9iamVjdC52YWx1ZXModGhpcy5jaGVja0dyb3VwcylcbiAgICAgIC5maWx0ZXIoYyA9PiB0eXBlb2YgYyA9PT0gJ2Z1bmN0aW9uJylcbiAgICAgIC5tYXAoQ2hlY2tHcm91cCA9PiBuZXcgQ2hlY2tHcm91cCgpKTtcblxuICAgIC8vIFJ1biBjaGVja3NcbiAgICBncm91cHMuZm9yRWFjaChncm91cCA9PiBncm91cC5ydW4oKSk7XG5cbiAgICAvLyBHZW5lcmF0ZSBKU09OIHJlcG9ydFxuICAgIGNvbnN0IHJlcG9ydCA9IHRoaXMuX2dlbmVyYXRlUmVwb3J0KHsgZ3JvdXBzLCB2ZXJzaW9uIH0pO1xuXG4gICAgLy8gSWYgcmVwb3J0IHNob3VsZCBiZSB3cml0dGVuIHRvIGxvZ3NcbiAgICBpZiAodGhpcy5lbmFibGVDaGVja0xvZykge1xuICAgICAgdGhpcy5fbG9nUmVwb3J0KHJlcG9ydCk7XG4gICAgfVxuICAgIHJldHVybiByZXBvcnQ7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGVzIGEgc2VjdXJpdHkgY2hlY2sgcmVwb3J0IGluIEpTT04gZm9ybWF0IHdpdGggc2NoZW1hOlxuICAgKiBgYGBcbiAgICoge1xuICAgKiAgICByZXBvcnQ6IHtcbiAgICogICAgICB2ZXJzaW9uOiBcIjEuMC4wXCIsIC8vIFRoZSByZXBvcnQgdmVyc2lvbiwgZGVmaW5lcyB0aGUgc2NoZW1hXG4gICAqICAgICAgc3RhdGU6IFwiZmFpbFwiICAgICAvLyBUaGUgZGlzanVuY3RpdmUgaW5kaWNhdG9yIG9mIGZhaWxlZCBjaGVja3MgaW4gYWxsIGdyb3Vwcy5cbiAgICogICAgICBncm91cHM6IFsgICAgICAgICAvLyBUaGUgY2hlY2sgZ3JvdXBzXG4gICAqICAgICAgICB7XG4gICAqICAgICAgICAgIG5hbWU6IFwiSG91c2VcIiwgICAgICAgICAgICAvLyBUaGUgZ3JvdXAgbmFtZVxuICAgKiAgICAgICAgICBzdGF0ZTogXCJmYWlsXCIgICAgICAgICAgICAgLy8gVGhlIGRpc2p1bmN0aXZlIGluZGljYXRvciBvZiBmYWlsZWQgY2hlY2tzIGluIHRoaXMgZ3JvdXAuXG4gICAqICAgICAgICAgIGNoZWNrczogWyAgICAgICAgICAgICAgICAgLy8gVGhlIGNoZWNrc1xuICAgKiAgICAgICAgICAgIHRpdGxlOiBcIkRvb3IgbG9ja2VkXCIsICAgLy8gVGhlIGNoZWNrIHRpdGxlXG4gICAqICAgICAgICAgICAgc3RhdGU6IFwiZmFpbFwiICAgICAgICAgICAvLyBUaGUgY2hlY2sgc3RhdGVcbiAgICogICAgICAgICAgICB3YXJuaW5nOiBcIkFueW9uZSBjYW4gZW50ZXIgeW91ciBob3VzZS5cIiAgIC8vIFRoZSB3YXJuaW5nLlxuICAgKiAgICAgICAgICAgIHNvbHV0aW9uOiBcIkxvY2sgeW91ciBkb29yLlwiICAgICAgICAgICAgICAgLy8gVGhlIHNvbHV0aW9uLlxuICAgKiAgICAgICAgICBdXG4gICAqICAgICAgICB9LFxuICAgKiAgICAgICAgLi4uXG4gICAqICAgICAgXVxuICAgKiAgICB9XG4gICAqIH1cbiAgICogYGBgXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBwYXJhbXMgVGhlIHBhcmFtZXRlcnMuXG4gICAqIEBwYXJhbSB7QXJyYXk8Q2hlY2tHcm91cD59IHBhcmFtcy5ncm91cHMgVGhlIGNoZWNrIGdyb3Vwcy5cbiAgICogQHBhcmFtIHtTdHJpbmd9IHBhcmFtcy52ZXJzaW9uOiBUaGUgcmVwb3J0IHNjaGVtYSB2ZXJzaW9uLlxuICAgKiBAcmV0dXJucyB7T2JqZWN0fSBUaGUgcmVwb3J0LlxuICAgKi9cbiAgX2dlbmVyYXRlUmVwb3J0KHsgZ3JvdXBzLCB2ZXJzaW9uIH0pIHtcbiAgICAvLyBDcmVhdGUgcmVwb3J0IHRlbXBsYXRlXG4gICAgY29uc3QgcmVwb3J0ID0ge1xuICAgICAgcmVwb3J0OiB7XG4gICAgICAgIHZlcnNpb24sXG4gICAgICAgIHN0YXRlOiBDaGVja1N0YXRlLnN1Y2Nlc3MsXG4gICAgICAgIGdyb3VwczogW10sXG4gICAgICB9LFxuICAgIH07XG5cbiAgICAvLyBJZGVudGlmeSByZXBvcnQgdmVyc2lvblxuICAgIHN3aXRjaCAodmVyc2lvbikge1xuICAgICAgY2FzZSAnMS4wLjAnOlxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgLy8gRm9yIGVhY2ggY2hlY2sgZ3JvdXBcbiAgICAgICAgZm9yIChjb25zdCBncm91cCBvZiBncm91cHMpIHtcbiAgICAgICAgICAvLyBDcmVhdGUgZ3JvdXAgcmVwb3J0XG4gICAgICAgICAgY29uc3QgZ3JvdXBSZXBvcnQgPSB7XG4gICAgICAgICAgICBuYW1lOiBncm91cC5uYW1lKCksXG4gICAgICAgICAgICBzdGF0ZTogQ2hlY2tTdGF0ZS5zdWNjZXNzLFxuICAgICAgICAgICAgY2hlY2tzOiBbXSxcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgLy8gQ3JlYXRlIGNoZWNrIHJlcG9ydHNcbiAgICAgICAgICBncm91cFJlcG9ydC5jaGVja3MgPSBncm91cC5jaGVja3MoKS5tYXAoY2hlY2sgPT4ge1xuICAgICAgICAgICAgY29uc3QgY2hlY2tSZXBvcnQgPSB7XG4gICAgICAgICAgICAgIHRpdGxlOiBjaGVjay50aXRsZSxcbiAgICAgICAgICAgICAgc3RhdGU6IGNoZWNrLmNoZWNrU3RhdGUoKSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAoY2hlY2suY2hlY2tTdGF0ZSgpID09IENoZWNrU3RhdGUuZmFpbCkge1xuICAgICAgICAgICAgICBjaGVja1JlcG9ydC53YXJuaW5nID0gY2hlY2sud2FybmluZztcbiAgICAgICAgICAgICAgY2hlY2tSZXBvcnQuc29sdXRpb24gPSBjaGVjay5zb2x1dGlvbjtcbiAgICAgICAgICAgICAgcmVwb3J0LnJlcG9ydC5zdGF0ZSA9IENoZWNrU3RhdGUuZmFpbDtcbiAgICAgICAgICAgICAgZ3JvdXBSZXBvcnQuc3RhdGUgPSBDaGVja1N0YXRlLmZhaWw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gY2hlY2tSZXBvcnQ7XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICByZXBvcnQucmVwb3J0Lmdyb3Vwcy5wdXNoKGdyb3VwUmVwb3J0KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVwb3J0O1xuICB9XG5cbiAgLyoqXG4gICAqIExvZ3MgdGhlIHNlY3VyaXR5IGNoZWNrIHJlcG9ydC5cbiAgICogQHBhcmFtIHtPYmplY3R9IHJlcG9ydCBUaGUgcmVwb3J0IHRvIGxvZy5cbiAgICovXG4gIF9sb2dSZXBvcnQocmVwb3J0KSB7XG4gICAgLy8gRGV0ZXJtaW5lIGxvZyBsZXZlbCBkZXBlbmRpbmcgb24gd2hldGhlciBhbnkgY2hlY2sgZmFpbGVkXG4gICAgY29uc3QgbG9nID1cbiAgICAgIHJlcG9ydC5yZXBvcnQuc3RhdGUgPT0gQ2hlY2tTdGF0ZS5zdWNjZXNzID8gcyA9PiBsb2dnZXIuaW5mbyhzKSA6IHMgPT4gbG9nZ2VyLndhcm4ocyk7XG5cbiAgICAvLyBEZWNsYXJlIG91dHB1dFxuICAgIGNvbnN0IGluZGVudCA9ICcgICAnO1xuICAgIGxldCBvdXRwdXQgPSAnJztcbiAgICBsZXQgY2hlY2tzQ291bnQgPSAwO1xuICAgIGxldCBmYWlsZWRDaGVja3NDb3VudCA9IDA7XG4gICAgbGV0IHNraXBwZWRDaGVja0NvdW50ID0gMDtcblxuICAgIC8vIFRyYXZlcnNlIGFsbCBncm91cHMgYW5kIGNoZWNrcyBmb3IgY29tcG9zZSBvdXRwdXRcbiAgICBmb3IgKGNvbnN0IGdyb3VwIG9mIHJlcG9ydC5yZXBvcnQuZ3JvdXBzKSB7XG4gICAgICBvdXRwdXQgKz0gYFxcbi0gJHtncm91cC5uYW1lfWA7XG5cbiAgICAgIGZvciAoY29uc3QgY2hlY2sgb2YgZ3JvdXAuY2hlY2tzKSB7XG4gICAgICAgIGNoZWNrc0NvdW50Kys7XG4gICAgICAgIG91dHB1dCArPSBgXFxuJHtpbmRlbnR9JHt0aGlzLl9nZXRMb2dJY29uRm9yU3RhdGUoY2hlY2suc3RhdGUpfSAke2NoZWNrLnRpdGxlfWA7XG5cbiAgICAgICAgaWYgKGNoZWNrLnN0YXRlID09IENoZWNrU3RhdGUuZmFpbCkge1xuICAgICAgICAgIGZhaWxlZENoZWNrc0NvdW50Kys7XG4gICAgICAgICAgb3V0cHV0ICs9IGBcXG4ke2luZGVudH0ke2luZGVudH1XYXJuaW5nOiAke2NoZWNrLndhcm5pbmd9YDtcbiAgICAgICAgICBvdXRwdXQgKz0gYCAke2NoZWNrLnNvbHV0aW9ufWA7XG4gICAgICAgIH0gZWxzZSBpZiAoY2hlY2suc3RhdGUgPT0gQ2hlY2tTdGF0ZS5ub25lKSB7XG4gICAgICAgICAgc2tpcHBlZENoZWNrQ291bnQrKztcbiAgICAgICAgICBvdXRwdXQgKz0gYFxcbiR7aW5kZW50fSR7aW5kZW50fVRlc3QgZGlkIG5vdCBleGVjdXRlLCB0aGlzIGlzIGxpa2VseSBhbiBpbnRlcm5hbCBzZXJ2ZXIgaXNzdWUsIHBsZWFzZSByZXBvcnQuYDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIG91dHB1dCA9XG4gICAgICBgXFxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNgICtcbiAgICAgIGBcXG4jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2AgK1xuICAgICAgYFxcbiMgICBQYXJzZSBTZXJ2ZXIgU2VjdXJpdHkgQ2hlY2sgICAjYCArXG4gICAgICBgXFxuIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNgICtcbiAgICAgIGBcXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI2AgK1xuICAgICAgYFxcbmAgK1xuICAgICAgYFxcbiR7XG4gICAgICAgIGZhaWxlZENoZWNrc0NvdW50ID4gMCA/ICdXYXJuaW5nOiAnIDogJydcbiAgICAgIH0ke2ZhaWxlZENoZWNrc0NvdW50fSB3ZWFrIHNlY3VyaXR5IHNldHRpbmcocykgZm91bmQke2ZhaWxlZENoZWNrc0NvdW50ID4gMCA/ICchJyA6ICcnfWAgK1xuICAgICAgYFxcbiR7Y2hlY2tzQ291bnR9IGNoZWNrKHMpIGV4ZWN1dGVkYCArXG4gICAgICBgXFxuJHtza2lwcGVkQ2hlY2tDb3VudH0gY2hlY2socykgc2tpcHBlZGAgK1xuICAgICAgYFxcbmAgK1xuICAgICAgYCR7b3V0cHV0fWA7XG5cbiAgICAvLyBXcml0ZSBsb2dcbiAgICBsb2cob3V0cHV0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIGljb24gZm9yIHVzZSBpbiB0aGUgcmVwb3J0IGxvZyBvdXRwdXQuXG4gICAqIEBwYXJhbSB7Q2hlY2tTdGF0ZX0gc3RhdGUgVGhlIGNoZWNrIHN0YXRlLlxuICAgKiBAcmV0dXJucyB7U3RyaW5nfSBUaGUgaWNvbi5cbiAgICovXG4gIF9nZXRMb2dJY29uRm9yU3RhdGUoc3RhdGUpIHtcbiAgICBzd2l0Y2ggKHN0YXRlKSB7XG4gICAgICBjYXNlIENoZWNrU3RhdGUuc3VjY2VzczpcbiAgICAgICAgcmV0dXJuICfinIUnO1xuICAgICAgY2FzZSBDaGVja1N0YXRlLmZhaWw6XG4gICAgICAgIHJldHVybiAn4p2MJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAn4oS577iPJztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIHRoZSBjb25zdHJ1Y3RvciBwYXJhbWV0ZXJzLlxuICAgKiBAcGFyYW0ge09iamVjdH0gcGFyYW1zIFRoZSBwYXJhbWV0ZXJzIHRvIHZhbGlkYXRlLlxuICAgKi9cbiAgX3ZhbGlkYXRlUGFyYW1zKHBhcmFtcykge1xuICAgIFV0aWxzLnZhbGlkYXRlUGFyYW1zKHBhcmFtcywge1xuICAgICAgZW5hYmxlQ2hlY2s6IHsgdDogJ2Jvb2xlYW4nLCB2OiBpc0Jvb2xlYW4sIG86IHRydWUgfSxcbiAgICAgIGVuYWJsZUNoZWNrTG9nOiB7IHQ6ICdib29sZWFuJywgdjogaXNCb29sZWFuLCBvOiB0cnVlIH0sXG4gICAgICBjaGVja0dyb3VwczogeyB0OiAnYXJyYXknLCB2OiBpc0FycmF5LCBvOiB0cnVlIH0sXG4gICAgfSk7XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBDaGVja1J1bm5lcjtcbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQTRDO0FBQUE7QUFBQTtBQUU1QztBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU1BLFdBQVcsQ0FBQztFQUNoQjtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNFQyxXQUFXLENBQUNDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRTtJQUN2QixJQUFJLENBQUNDLGVBQWUsQ0FBQ0QsTUFBTSxDQUFDO0lBQzVCLE1BQU07TUFBRUUsV0FBVyxHQUFHLEtBQUs7TUFBRUMsY0FBYyxHQUFHLEtBQUs7TUFBRUMsV0FBVyxHQUFHQztJQUFZLENBQUMsR0FBR0wsTUFBTTtJQUN6RixJQUFJLENBQUNFLFdBQVcsR0FBR0EsV0FBVztJQUM5QixJQUFJLENBQUNDLGNBQWMsR0FBR0EsY0FBYztJQUNwQyxJQUFJLENBQUNDLFdBQVcsR0FBR0EsV0FBVztFQUNoQzs7RUFFQTtBQUNGO0FBQ0E7QUFDQTtBQUNBO0VBQ0UsTUFBTUUsR0FBRyxDQUFDO0lBQUVDLE9BQU8sR0FBRztFQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtJQUNwQztJQUNBLE1BQU1DLE1BQU0sR0FBR0MsTUFBTSxDQUFDQyxNQUFNLENBQUMsSUFBSSxDQUFDTixXQUFXLENBQUMsQ0FDM0NPLE1BQU0sQ0FBQ0MsQ0FBQyxJQUFJLE9BQU9BLENBQUMsS0FBSyxVQUFVLENBQUMsQ0FDcENDLEdBQUcsQ0FBQ0MsVUFBVSxJQUFJLElBQUlBLFVBQVUsRUFBRSxDQUFDOztJQUV0QztJQUNBTixNQUFNLENBQUNPLE9BQU8sQ0FBQ0MsS0FBSyxJQUFJ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
|
|
214
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfVXRpbHMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9DaGVjayIsIkNoZWNrR3JvdXBzIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfbG9nZ2VyIiwiX2xvZGFzaCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJDaGVja1J1bm5lciIsImNvbnN0cnVjdG9yIiwiY29uZmlnIiwiX3ZhbGlkYXRlUGFyYW1zIiwiZW5hYmxlQ2hlY2siLCJlbmFibGVDaGVja0xvZyIsImNoZWNrR3JvdXBzIiwicnVuIiwidmVyc2lvbiIsImdyb3VwcyIsInZhbHVlcyIsImZpbHRlciIsImMiLCJtYXAiLCJDaGVja0dyb3VwIiwiZm9yRWFjaCIsImdyb3VwIiwicmVwb3J0IiwiX2dlbmVyYXRlUmVwb3J0IiwiX2xvZ1JlcG9ydCIsInN0YXRlIiwiQ2hlY2tTdGF0ZSIsInN1Y2Nlc3MiLCJncm91cFJlcG9ydCIsIm5hbWUiLCJjaGVja3MiLCJjaGVjayIsImNoZWNrUmVwb3J0IiwidGl0bGUiLCJjaGVja1N0YXRlIiwiZmFpbCIsIndhcm5pbmciLCJzb2x1dGlvbiIsInB1c2giLCJsb2ciLCJzIiwibG9nZ2VyIiwiaW5mbyIsIndhcm4iLCJpbmRlbnQiLCJvdXRwdXQiLCJjaGVja3NDb3VudCIsImZhaWxlZENoZWNrc0NvdW50Iiwic2tpcHBlZENoZWNrQ291bnQiLCJfZ2V0TG9nSWNvbkZvclN0YXRlIiwibm9uZSIsInBhcmFtcyIsIlV0aWxzIiwidmFsaWRhdGVQYXJhbXMiLCJ0IiwidiIsImlzQm9vbGVhbiIsIm8iLCJpc0FycmF5IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TZWN1cml0eS9DaGVja1J1bm5lci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVXRpbHMgZnJvbSAnLi4vVXRpbHMnO1xuaW1wb3J0IHsgQ2hlY2tTdGF0ZSB9IGZyb20gJy4vQ2hlY2snO1xuaW1wb3J0ICogYXMgQ2hlY2tHcm91cHMgZnJvbSAnLi9DaGVja0dyb3Vwcy9DaGVja0dyb3Vwcyc7XG5pbXBvcnQgbG9nZ2VyIGZyb20gJy4uL2xvZ2dlcic7XG5pbXBvcnQgeyBpc0FycmF5LCBpc0Jvb2xlYW4gfSBmcm9tICdsb2Rhc2gnO1xuXG4vKipcbiAqIFRoZSBzZWN1cml0eSBjaGVjayBydW5uZXIuXG4gKiBAbWVtYmVyb2YgbW9kdWxlOlNlY3VyaXR5Q2hlY2tcbiAqL1xuY2xhc3MgQ2hlY2tSdW5uZXIge1xuICAvKipcbiAgICogVGhlIHNlY3VyaXR5IGNoZWNrIHJ1bm5lci5cbiAgICogQHBhcmFtIHtPYmplY3R9IFtjb25maWddIFRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMuXG4gICAqIEBwYXJhbSB7Qm9vbGVhbn0gW2NvbmZpZy5lbmFibGVDaGVjaz1mYWxzZV0gSXMgdHJ1ZSBpZiBQYXJzZSBTZXJ2ZXIgc2hvdWxkIHJlcG9ydCB3ZWFrIHNlY3VyaXR5IHNldHRpbmdzLlxuICAgKiBAcGFyYW0ge0Jvb2xlYW59IFtjb25maWcuZW5hYmxlQ2hlY2tMb2c9ZmFsc2VdIElzIHRydWUgaWYgdGhlIHNlY3VyaXR5IGNoZWNrIHJlcG9ydCBzaG91bGQgYmUgd3JpdHRlbiB0byBsb2dzLlxuICAgKiBAcGFyYW0ge09iamVjdH0gW2NvbmZpZy5jaGVja0dyb3Vwc10gVGhlIGNoZWNrIGdyb3VwcyB0byBydW4uIERlZmF1bHQgYXJlIHRoZSBncm91cHMgZGVmaW5lZCBpbiBgLi9DaGVja0dyb3Vwcy9DaGVja0dyb3Vwcy5qc2AuXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihjb25maWcgPSB7fSkge1xuICAgIHRoaXMuX3ZhbGlkYXRlUGFyYW1zKGNvbmZpZyk7XG4gICAgY29uc3QgeyBlbmFibGVDaGVjayA9IGZhbHNlLCBlbmFibGVDaGVja0xvZyA9IGZhbHNlLCBjaGVja0dyb3VwcyA9IENoZWNrR3JvdXBzIH0gPSBjb25maWc7XG4gICAgdGhpcy5lbmFibGVDaGVjayA9IGVuYWJsZUNoZWNrO1xuICAgIHRoaXMuZW5hYmxlQ2hlY2tMb2cgPSBlbmFibGVDaGVja0xvZztcbiAgICB0aGlzLmNoZWNrR3JvdXBzID0gY2hlY2tHcm91cHM7XG4gIH1cblxuICAvKipcbiAgICogUnVucyBhbGwgc2VjdXJpdHkgY2hlY2tzIGFuZCByZXR1cm5zIHRoZSByZXN1bHRzLlxuICAgKiBAcGFyYW1zXG4gICAqIEByZXR1cm5zIHtPYmplY3R9IFRoZSBzZWN1cml0eSBjaGVjayByZXBvcnQuXG4gICAqL1xuICBhc3luYyBydW4oeyB2ZXJzaW9uID0gJzEuMC4wJyB9ID0ge30pIHtcbiAgICAvLyBJbnN0YW50aWF0ZSBjaGVjayBncm91cHNcbiAgICBjb25zdCBncm91cHMgPSBPYmplY3QudmFsdWVzKHRoaXMuY2hlY2tHcm91cHMpXG4gICAgICAuZmlsdGVyKGMgPT4gdHlwZW9mIGMgPT09ICdmdW5jdGlvbicpXG4gICAgICAubWFwKENoZWNrR3JvdXAgPT4gbmV3IENoZWNrR3JvdXAoKSk7XG5cbiAgICAvLyBSdW4gY2hlY2tzXG4gICAgZ3JvdXBzLmZvckVhY2goZ3JvdXAgPT4gZ3JvdXAucnVuKCkpO1xuXG4gICAgLy8gR2VuZXJhdGUgSlNPTiByZXBvcnRcbiAgICBjb25zdCByZXBvcnQgPSB0aGlzLl9nZW5lcmF0ZVJlcG9ydCh7IGdyb3VwcywgdmVyc2lvbiB9KTtcblxuICAgIC8vIElmIHJlcG9ydCBzaG91bGQgYmUgd3JpdHRlbiB0byBsb2dzXG4gICAgaWYgKHRoaXMuZW5hYmxlQ2hlY2tMb2cpIHtcbiAgICAgIHRoaXMuX2xvZ1JlcG9ydChyZXBvcnQpO1xuICAgIH1cbiAgICByZXR1cm4gcmVwb3J0O1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlcyBhIHNlY3VyaXR5IGNoZWNrIHJlcG9ydCBpbiBKU09OIGZvcm1hdCB3aXRoIHNjaGVtYTpcbiAgICogYGBgXG4gICAqIHtcbiAgICogICAgcmVwb3J0OiB7XG4gICAqICAgICAgdmVyc2lvbjogXCIxLjAuMFwiLCAvLyBUaGUgcmVwb3J0IHZlcnNpb24sIGRlZmluZXMgdGhlIHNjaGVtYVxuICAgKiAgICAgIHN0YXRlOiBcImZhaWxcIiAgICAgLy8gVGhlIGRpc2p1bmN0aXZlIGluZGljYXRvciBvZiBmYWlsZWQgY2hlY2tzIGluIGFsbCBncm91cHMuXG4gICAqICAgICAgZ3JvdXBzOiBbICAgICAgICAgLy8gVGhlIGNoZWNrIGdyb3Vwc1xuICAgKiAgICAgICAge1xuICAgKiAgICAgICAgICBuYW1lOiBcIkhvdXNlXCIsICAgICAgICAgICAgLy8gVGhlIGdyb3VwIG5hbWVcbiAgICogICAgICAgICAgc3RhdGU6IFwiZmFpbFwiICAgICAgICAgICAgIC8vIFRoZSBkaXNqdW5jdGl2ZSBpbmRpY2F0b3Igb2YgZmFpbGVkIGNoZWNrcyBpbiB0aGlzIGdyb3VwLlxuICAgKiAgICAgICAgICBjaGVja3M6IFsgICAgICAgICAgICAgICAgIC8vIFRoZSBjaGVja3NcbiAgICogICAgICAgICAgICB0aXRsZTogXCJEb29yIGxvY2tlZFwiLCAgIC8vIFRoZSBjaGVjayB0aXRsZVxuICAgKiAgICAgICAgICAgIHN0YXRlOiBcImZhaWxcIiAgICAgICAgICAgLy8gVGhlIGNoZWNrIHN0YXRlXG4gICAqICAgICAgICAgICAgd2FybmluZzogXCJBbnlvbmUgY2FuIGVudGVyIHlvdXIgaG91c2UuXCIgICAvLyBUaGUgd2FybmluZy5cbiAgICogICAgICAgICAgICBzb2x1dGlvbjogXCJMb2NrIHlvdXIgZG9vci5cIiAgICAgICAgICAgICAgIC8vIFRoZSBzb2x1dGlvbi5cbiAgICogICAgICAgICAgXVxuICAgKiAgICAgICAgfSxcbiAgICogICAgICAgIC4uLlxuICAgKiAgICAgIF1cbiAgICogICAgfVxuICAgKiB9XG4gICAqIGBgYFxuICAgKiBAcGFyYW0ge09iamVjdH0gcGFyYW1zIFRoZSBwYXJhbWV0ZXJzLlxuICAgKiBAcGFyYW0ge0FycmF5PENoZWNrR3JvdXA+fSBwYXJhbXMuZ3JvdXBzIFRoZSBjaGVjayBncm91cHMuXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBwYXJhbXMudmVyc2lvbjogVGhlIHJlcG9ydCBzY2hlbWEgdmVyc2lvbi5cbiAgICogQHJldHVybnMge09iamVjdH0gVGhlIHJlcG9ydC5cbiAgICovXG4gIF9nZW5lcmF0ZVJlcG9ydCh7IGdyb3VwcywgdmVyc2lvbiB9KSB7XG4gICAgLy8gQ3JlYXRlIHJlcG9ydCB0ZW1wbGF0ZVxuICAgIGNvbnN0IHJlcG9ydCA9IHtcbiAgICAgIHJlcG9ydDoge1xuICAgICAgICB2ZXJzaW9uLFxuICAgICAgICBzdGF0ZTogQ2hlY2tTdGF0ZS5zdWNjZXNzLFxuICAgICAgICBncm91cHM6IFtdLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgLy8gSWRlbnRpZnkgcmVwb3J0IHZlcnNpb25cbiAgICBzd2l0Y2ggKHZlcnNpb24pIHtcbiAgICAgIGNhc2UgJzEuMC4wJzpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIC8vIEZvciBlYWNoIGNoZWNrIGdyb3VwXG4gICAgICAgIGZvciAoY29uc3QgZ3JvdXAgb2YgZ3JvdXBzKSB7XG4gICAgICAgICAgLy8gQ3JlYXRlIGdyb3VwIHJlcG9ydFxuICAgICAgICAgIGNvbnN0IGdyb3VwUmVwb3J0ID0ge1xuICAgICAgICAgICAgbmFtZTogZ3JvdXAubmFtZSgpLFxuICAgICAgICAgICAgc3RhdGU6IENoZWNrU3RhdGUuc3VjY2VzcyxcbiAgICAgICAgICAgIGNoZWNrczogW10sXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIC8vIENyZWF0ZSBjaGVjayByZXBvcnRzXG4gICAgICAgICAgZ3JvdXBSZXBvcnQuY2hlY2tzID0gZ3JvdXAuY2hlY2tzKCkubWFwKGNoZWNrID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNoZWNrUmVwb3J0ID0ge1xuICAgICAgICAgICAgICB0aXRsZTogY2hlY2sudGl0bGUsXG4gICAgICAgICAgICAgIHN0YXRlOiBjaGVjay5jaGVja1N0YXRlKCksXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKGNoZWNrLmNoZWNrU3RhdGUoKSA9PSBDaGVja1N0YXRlLmZhaWwpIHtcbiAgICAgICAgICAgICAgY2hlY2tSZXBvcnQud2FybmluZyA9IGNoZWNrLndhcm5pbmc7XG4gICAgICAgICAgICAgIGNoZWNrUmVwb3J0LnNvbHV0aW9uID0gY2hlY2suc29sdXRpb247XG4gICAgICAgICAgICAgIHJlcG9ydC5yZXBvcnQuc3RhdGUgPSBDaGVja1N0YXRlLmZhaWw7XG4gICAgICAgICAgICAgIGdyb3VwUmVwb3J0LnN0YXRlID0gQ2hlY2tTdGF0ZS5mYWlsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGNoZWNrUmVwb3J0O1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgcmVwb3J0LnJlcG9ydC5ncm91cHMucHVzaChncm91cFJlcG9ydCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlcG9ydDtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2dzIHRoZSBzZWN1cml0eSBjaGVjayByZXBvcnQuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSByZXBvcnQgVGhlIHJlcG9ydCB0byBsb2cuXG4gICAqL1xuICBfbG9nUmVwb3J0KHJlcG9ydCkge1xuICAgIC8vIERldGVybWluZSBsb2cgbGV2ZWwgZGVwZW5kaW5nIG9uIHdoZXRoZXIgYW55IGNoZWNrIGZhaWxlZFxuICAgIGNvbnN0IGxvZyA9XG4gICAgICByZXBvcnQucmVwb3J0LnN0YXRlID09IENoZWNrU3RhdGUuc3VjY2VzcyA/IHMgPT4gbG9nZ2VyLmluZm8ocykgOiBzID0+IGxvZ2dlci53YXJuKHMpO1xuXG4gICAgLy8gRGVjbGFyZSBvdXRwdXRcbiAgICBjb25zdCBpbmRlbnQgPSAnICAgJztcbiAgICBsZXQgb3V0cHV0ID0gJyc7XG4gICAgbGV0IGNoZWNrc0NvdW50ID0gMDtcbiAgICBsZXQgZmFpbGVkQ2hlY2tzQ291bnQgPSAwO1xuICAgIGxldCBza2lwcGVkQ2hlY2tDb3VudCA9IDA7XG5cbiAgICAvLyBUcmF2ZXJzZSBhbGwgZ3JvdXBzIGFuZCBjaGVja3MgZm9yIGNvbXBvc2Ugb3V0cHV0XG4gICAgZm9yIChjb25zdCBncm91cCBvZiByZXBvcnQucmVwb3J0Lmdyb3Vwcykge1xuICAgICAgb3V0cHV0ICs9IGBcXG4tICR7Z3JvdXAubmFtZX1gO1xuXG4gICAgICBmb3IgKGNvbnN0IGNoZWNrIG9mIGdyb3VwLmNoZWNrcykge1xuICAgICAgICBjaGVja3NDb3VudCsrO1xuICAgICAgICBvdXRwdXQgKz0gYFxcbiR7aW5kZW50fSR7dGhpcy5fZ2V0TG9nSWNvbkZvclN0YXRlKGNoZWNrLnN0YXRlKX0gJHtjaGVjay50aXRsZX1gO1xuXG4gICAgICAgIGlmIChjaGVjay5zdGF0ZSA9PSBDaGVja1N0YXRlLmZhaWwpIHtcbiAgICAgICAgICBmYWlsZWRDaGVja3NDb3VudCsrO1xuICAgICAgICAgIG91dHB1dCArPSBgXFxuJHtpbmRlbnR9JHtpbmRlbnR9V2FybmluZzogJHtjaGVjay53YXJuaW5nfWA7XG4gICAgICAgICAgb3V0cHV0ICs9IGAgJHtjaGVjay5zb2x1dGlvbn1gO1xuICAgICAgICB9IGVsc2UgaWYgKGNoZWNrLnN0YXRlID09IENoZWNrU3RhdGUubm9uZSkge1xuICAgICAgICAgIHNraXBwZWRDaGVja0NvdW50Kys7XG4gICAgICAgICAgb3V0cHV0ICs9IGBcXG4ke2luZGVudH0ke2luZGVudH1UZXN0IGRpZCBub3QgZXhlY3V0ZSwgdGhpcyBpcyBsaWtlbHkgYW4gaW50ZXJuYWwgc2VydmVyIGlzc3VlLCBwbGVhc2UgcmVwb3J0LmA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBvdXRwdXQgPVxuICAgICAgYFxcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjYCArXG4gICAgICBgXFxuIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNgICtcbiAgICAgIGBcXG4jICAgUGFyc2UgU2VydmVyIFNlY3VyaXR5IENoZWNrICAgI2AgK1xuICAgICAgYFxcbiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjYCArXG4gICAgICBgXFxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNgICtcbiAgICAgIGBcXG5gICtcbiAgICAgIGBcXG4ke1xuICAgICAgICBmYWlsZWRDaGVja3NDb3VudCA+IDAgPyAnV2FybmluZzogJyA6ICcnXG4gICAgICB9JHtmYWlsZWRDaGVja3NDb3VudH0gd2VhayBzZWN1cml0eSBzZXR0aW5nKHMpIGZvdW5kJHtmYWlsZWRDaGVja3NDb3VudCA+IDAgPyAnIScgOiAnJ31gICtcbiAgICAgIGBcXG4ke2NoZWNrc0NvdW50fSBjaGVjayhzKSBleGVjdXRlZGAgK1xuICAgICAgYFxcbiR7c2tpcHBlZENoZWNrQ291bnR9IGNoZWNrKHMpIHNraXBwZWRgICtcbiAgICAgIGBcXG5gICtcbiAgICAgIGAke291dHB1dH1gO1xuXG4gICAgLy8gV3JpdGUgbG9nXG4gICAgbG9nKG91dHB1dCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBpY29uIGZvciB1c2UgaW4gdGhlIHJlcG9ydCBsb2cgb3V0cHV0LlxuICAgKiBAcGFyYW0ge0NoZWNrU3RhdGV9IHN0YXRlIFRoZSBjaGVjayBzdGF0ZS5cbiAgICogQHJldHVybnMge1N0cmluZ30gVGhlIGljb24uXG4gICAqL1xuICBfZ2V0TG9nSWNvbkZvclN0YXRlKHN0YXRlKSB7XG4gICAgc3dpdGNoIChzdGF0ZSkge1xuICAgICAgY2FzZSBDaGVja1N0YXRlLnN1Y2Nlc3M6XG4gICAgICAgIHJldHVybiAn4pyFJztcbiAgICAgIGNhc2UgQ2hlY2tTdGF0ZS5mYWlsOlxuICAgICAgICByZXR1cm4gJ+KdjCc7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJ+KEue+4jyc7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyB0aGUgY29uc3RydWN0b3IgcGFyYW1ldGVycy5cbiAgICogQHBhcmFtIHtPYmplY3R9IHBhcmFtcyBUaGUgcGFyYW1ldGVycyB0byB2YWxpZGF0ZS5cbiAgICovXG4gIF92YWxpZGF0ZVBhcmFtcyhwYXJhbXMpIHtcbiAgICBVdGlscy52YWxpZGF0ZVBhcmFtcyhwYXJhbXMsIHtcbiAgICAgIGVuYWJsZUNoZWNrOiB7IHQ6ICdib29sZWFuJywgdjogaXNCb29sZWFuLCBvOiB0cnVlIH0sXG4gICAgICBlbmFibGVDaGVja0xvZzogeyB0OiAnYm9vbGVhbicsIHY6IGlzQm9vbGVhbiwgbzogdHJ1ZSB9LFxuICAgICAgY2hlY2tHcm91cHM6IHsgdDogJ2FycmF5JywgdjogaXNBcnJheSwgbzogdHJ1ZSB9LFxuICAgIH0pO1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gQ2hlY2tSdW5uZXI7XG4iXSwibWFwcGluZ3MiOiI7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsV0FBQSxHQUFBQyx1QkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUksT0FBQSxHQUFBTCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUssT0FBQSxHQUFBTCxPQUFBO0FBQTRDLFNBQUFNLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSxDQUFBQyxXQUFBLFdBQUFBLFdBQUEsR0FBQUcsZ0JBQUEsR0FBQUQsaUJBQUEsS0FBQUYsV0FBQTtBQUFBLFNB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
|
package/lib/SharedRest.js
CHANGED
|
@@ -25,4 +25,4 @@ function enforceRoleSecurity(method, className, auth) {
|
|
|
25
25
|
module.exports = {
|
|
26
26
|
enforceRoleSecurity
|
|
27
27
|
};
|
|
28
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjbGFzc2VzV2l0aE1hc3Rlck9ubHlBY2Nlc3MiLCJlbmZvcmNlUm9sZVNlY3VyaXR5IiwibWV0aG9kIiwiY2xhc3NOYW1lIiwiYXV0aCIsImlzTWFzdGVyIiwiaXNNYWludGVuYW5jZSIsImVycm9yIiwiUGFyc2UiLCJFcnJvciIsIk9QRVJBVElPTl9GT1JCSURERU4iLCJpbmRleE9mIiwiaXNSZWFkT25seSIsIm1vZHVsZSIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi9zcmMvU2hhcmVkUmVzdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBjbGFzc2VzV2l0aE1hc3Rlck9ubHlBY2Nlc3MgPSBbXG4gICdfSm9iU3RhdHVzJyxcbiAgJ19QdXNoU3RhdHVzJyxcbiAgJ19Ib29rcycsXG4gICdfR2xvYmFsQ29uZmlnJyxcbiAgJ19Kb2JTY2hlZHVsZScsXG4gICdfSWRlbXBvdGVuY3knLFxuXTtcbi8vIERpc2FsbG93aW5nIGFjY2VzcyB0byB0aGUgX1JvbGUgY29sbGVjdGlvbiBleGNlcHQgYnkgbWFzdGVyIGtleVxuZnVuY3Rpb24gZW5mb3JjZVJvbGVTZWN1cml0eShtZXRob2QsIGNsYXNzTmFtZSwgYXV0aCkge1xuICBpZiAoY2xhc3NOYW1lID09PSAnX0luc3RhbGxhdGlvbicgJiYgIWF1dGguaXNNYXN0ZXIgJiYgIWF1dGguaXNNYWludGVuYW5jZSkge1xuICAgIGlmIChtZXRob2QgPT09ICdkZWxldGUnIHx8IG1ldGhvZCA9PT0gJ2ZpbmQnKSB7XG4gICAgICBjb25zdCBlcnJvciA9IGBDbGllbnRzIGFyZW4ndCBhbGxvd2VkIHRvIHBlcmZvcm0gdGhlICR7bWV0aG9kfSBvcGVyYXRpb24gb24gdGhlIGluc3RhbGxhdGlvbiBjb2xsZWN0aW9uLmA7XG4gICAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuT1BFUkFUSU9OX0ZPUkJJRERFTiwgZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIC8vYWxsIHZvbGF0aWxlQ2xhc3NlcyBhcmUgbWFzdGVyS2V5IG9ubHlcbiAgaWYgKFxuICAgIGNsYXNzZXNXaXRoTWFzdGVyT25seUFjY2Vzcy5pbmRleE9mKGNsYXNzTmFtZSkgPj0gMCAmJlxuICAgICFhdXRoLmlzTWFzdGVyICYmXG4gICAgIWF1dGguaXNNYWludGVuYW5jZVxuICApIHtcbiAgICBjb25zdCBlcnJvciA9IGBDbGllbnRzIGFyZW4ndCBhbGxvd2VkIHRvIHBlcmZvcm0gdGhlICR7bWV0aG9kfSBvcGVyYXRpb24gb24gdGhlICR7Y2xhc3NOYW1lfSBjb2xsZWN0aW9uLmA7XG4gICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLk9QRVJBVElPTl9GT1JCSURERU4sIGVycm9yKTtcbiAgfVxuXG4gIC8vIHJlYWRPbmx5IG1hc3RlcktleSBpcyBub3QgYWxsb3dlZFxuICBpZiAoYXV0aC5pc1JlYWRPbmx5ICYmIChtZXRob2QgPT09ICdkZWxldGUnIHx8IG1ldGhvZCA9PT0gJ2NyZWF0ZScgfHwgbWV0aG9kID09PSAndXBkYXRlJykpIHtcbiAgICBjb25zdCBlcnJvciA9IGByZWFkLW9ubHkgbWFzdGVyS2V5IGlzbid0IGFsbG93ZWQgdG8gcGVyZm9ybSB0aGUgJHttZXRob2R9IG9wZXJhdGlvbi5gO1xuICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5PUEVSQVRJT05fRk9SQklEREVOLCBlcnJvcik7XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIGVuZm9yY2VSb2xlU2VjdXJpdHksXG59O1xuIl0sIm1hcHBpbmdzIjoiOztBQUFBLE1BQU1BLDJCQUEyQixHQUFHLENBQ2xDLFlBQVksRUFDWixhQUFhLEVBQ2IsUUFBUSxFQUNSLGVBQWUsRUFDZixjQUFjLEVBQ2QsY0FBYyxDQUNmO0FBQ0Q7QUFDQSxTQUFTQyxtQkFBbUJBLENBQUNDLE1BQU0sRUFBRUMsU0FBUyxFQUFFQyxJQUFJLEVBQUU7RUFDcEQsSUFBSUQsU0FBUyxLQUFLLGVBQWUsSUFBSSxDQUFDQyxJQUFJLENBQUNDLFFBQVEsSUFBSSxDQUFDRCxJQUFJLENBQUNFLGFBQWEsRUFBRTtJQUMxRSxJQUFJSixNQUFNLEtBQUssUUFBUSxJQUFJQSxNQUFNLEtBQUssTUFBTSxFQUFFO01BQzVDLE1BQU1LLEtBQUssR0FBSSx5Q0FBd0NMLE1BQU8sNENBQTJDO01BQ3pHLE1BQU0sSUFBSU0sS0FBSyxDQUFDQyxLQUFLLENBQUNELEtBQUssQ0FBQ0MsS0FBSyxDQUFDQyxtQkFBbUIsRUFBRUgsS0FBSyxDQUFDO0lBQy9EO0VBQ0Y7O0VBRUE7RUFDQSxJQUNFUCwyQkFBMkIsQ0FBQ1csT0FBTyxDQUFDUixTQUFTLENBQUMsSUFBSSxDQUFDLElBQ25ELENBQUNDLElBQUksQ0FBQ0MsUUFBUSxJQUNkLENBQUNELElBQUksQ0FBQ0UsYUFBYSxFQUNuQjtJQUNBLE1BQU1DLEtBQUssR0FBSSx5Q0FBd0NMLE1BQU8scUJBQW9CQyxTQUFVLGNBQWE7SUFDekcsTUFBTSxJQUFJSyxLQUFLLENBQUNDLEtBQUssQ0FBQ0QsS0FBSyxDQUFDQyxLQUFLLENBQUNDLG1CQUFtQixFQUFFSCxLQUFLLENBQUM7RUFDL0Q7O0VBRUE7RUFDQSxJQUFJSCxJQUFJLENBQUNRLFVBQVUsS0FBS1YsTUFBTSxLQUFLLFFBQVEsSUFBSUEsTUFBTSxLQUFLLFFBQVEsSUFBSUEsTUFBTSxLQUFLLFFBQVEsQ0FBQyxFQUFFO0lBQzFGLE1BQU1LLEtBQUssR0FBSSxvREFBbURMLE1BQU8sYUFBWTtJQUNyRixNQUFNLElBQUlNLEtBQUssQ0FBQ0MsS0FBSyxDQUFDRCxLQUFLLENBQUNDLEtBQUssQ0FBQ0MsbUJBQW1CLEVBQUVILEtBQUssQ0FBQztFQUMvRDtBQUNGO0FBRUFNLE1BQU0sQ0FBQ0MsT0FBTyxHQUFHO0VBQ2ZiO0FBQ0YsQ0FBQyJ9
|
package/lib/StatusHandler.js
CHANGED
|
@@ -317,4 +317,4 @@ function pushStatusHandler(config, existingObjectId) {
|
|
|
317
317
|
});
|
|
318
318
|
return Object.freeze(rval);
|
|
319
319
|
}
|
|
320
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQVVNIX1NUQVRVU19DT0xMRUNUSU9OIiwiSk9CX1NUQVRVU19DT0xMRUNUSU9OIiwicHVzaFByb21pc2VRdWV1ZSIsIktleVByb21pc2VRdWV1ZSIsImpvYlByb21pc2VRdWV1ZSIsImluY3JlbWVudE9wIiwib2JqZWN0Iiwia2V5IiwiYW1vdW50IiwiX19vcCIsImZsYXR0ZW4iLCJhcnJheSIsImZsYXR0ZW5lZCIsImkiLCJsZW5ndGgiLCJBcnJheSIsImlzQXJyYXkiLCJjb25jYXQiLCJwdXNoIiwic3RhdHVzSGFuZGxlciIsImNsYXNzTmFtZSIsImRhdGFiYXNlIiwiY3JlYXRlIiwidGhlbiIsIlByb21pc2UiLCJyZXNvbHZlIiwidXBkYXRlIiwid2hlcmUiLCJlbnF1ZXVlIiwib2JqZWN0SWQiLCJPYmplY3QiLCJmcmVlemUiLCJyZXN0U3RhdHVzSGFuZGxlciIsImNvbmZpZyIsImF1dGgiLCJBdXRoIiwibWFzdGVyIiwicmVzdCIsInJlc3BvbnNlIiwiam9iU3RhdHVzSGFuZGxlciIsImpvYlN0YXR1cyIsIm5ld09iamVjdElkIiwib2JqZWN0SWRTaXplIiwiaGFuZGxlciIsInNldFJ1bm5pbmciLCJqb2JOYW1lIiwicGFyYW1zIiwibm93IiwiRGF0ZSIsInN0YXR1cyIsInNvdXJjZSIsImNyZWF0ZWRBdCIsIkFDTCIsInNldE1lc3NhZ2UiLCJtZXNzYWdlIiwic2V0U3VjY2VlZGVkIiwic2V0RmluYWxTdGF0dXMiLCJzZXRGYWlsZWQiLCJ1bmRlZmluZWQiLCJmaW5pc2hlZEF0IiwiRXJyb3IiLCJwdXNoU3RhdHVzSGFuZGxlciIsImV4aXN0aW5nT2JqZWN0SWQiLCJwdXNoU3RhdHVzIiwic2V0SW5pdGlhbCIsImJvZHkiLCJvcHRpb25zIiwicHVzaFRpbWUiLCJ0b0lTT1N0cmluZyIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImhhc1B1c2hTY2hlZHVsZWRTdXBwb3J0IiwicHVzaF90aW1lIiwibG9nZ2VyIiwid2FybiIsImRhdGEiLCJwYXlsb2FkU3RyaW5nIiwiSlNPTiIsInN0cmluZ2lmeSIsInB1c2hIYXNoIiwiYWxlcnQiLCJtZDVIYXNoIiwicXVlcnkiLCJwYXlsb2FkIiwidGl0bGUiLCJleHBpcnkiLCJleHBpcmF0aW9uX3RpbWUiLCJleHBpcmF0aW9uX2ludGVydmFsIiwibnVtU2VudCIsInJlc3VsdCIsImJhdGNoZXMiLCJ2ZXJib3NlIiwiY291bnQiLCJ0cmFja1NlbnQiLCJyZXN1bHRzIiwiVVRDT2Zmc2V0IiwiY2xlYW51cEluc3RhbGxhdGlvbnMiLCJwcm9jZXNzIiwiZW52IiwiUEFSU0VfU0VSVkVSX0NMRUFOVVBfSU5WQUxJRF9JTlNUQUxMQVRJT05TIiwibnVtRmFpbGVkIiwiZGV2aWNlc1RvUmVtb3ZlIiwicmVkdWNlIiwibWVtbyIsImRldmljZSIsImRldmljZVR5cGUiLCJ0cmFuc21pdHRlZCIsIm9mZnNldEtleSIsImVycm9yIiwiZGV2aWNlVG9rZW4iLCJ0b2tlbiIsImZvckVhY2giLCJpbmZvIiwiJGluIiwiYWNsIiwibWFueSIsInJlcyIsImNvbXBsZXRlIiwiZmFpbCIsImVyciIsImVycm9yTWVzc2FnZSIsInJ2YWwiLCJkZWZpbmVQcm9wZXJ0eSIsImdldCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9TdGF0dXNIYW5kbGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1kNUhhc2gsIG5ld09iamVjdElkIH0gZnJvbSAnLi9jcnlwdG9VdGlscyc7XG5pbXBvcnQgeyBLZXlQcm9taXNlUXVldWUgfSBmcm9tICcuL0tleVByb21pc2VRdWV1ZSc7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuL2xvZ2dlcic7XG5pbXBvcnQgcmVzdCBmcm9tICcuL3Jlc3QnO1xuaW1wb3J0IEF1dGggZnJvbSAnLi9BdXRoJztcblxuY29uc3QgUFVTSF9TVEFUVVNfQ09MTEVDVElPTiA9ICdfUHVzaFN0YXR1cyc7XG5jb25zdCBKT0JfU1RBVFVTX0NPTExFQ1RJT04gPSAnX0pvYlN0YXR1cyc7XG5cbmNvbnN0IHB1c2hQcm9taXNlUXVldWUgPSBuZXcgS2V5UHJvbWlzZVF1ZXVlKCk7XG5jb25zdCBqb2JQcm9taXNlUXVldWUgPSBuZXcgS2V5UHJvbWlzZVF1ZXVlKCk7XG5cbmNvbnN0IGluY3JlbWVudE9wID0gZnVuY3Rpb24gKG9iamVjdCA9IHt9LCBrZXksIGFtb3VudCA9IDEpIHtcbiAgaWYgKCFvYmplY3Rba2V5XSkge1xuICAgIG9iamVjdFtrZXldID0geyBfX29wOiAnSW5jcmVtZW50JywgYW1vdW50OiBhbW91bnQgfTtcbiAgfSBlbHNlIHtcbiAgICBvYmplY3Rba2V5XS5hbW91bnQgKz0gYW1vdW50O1xuICB9XG4gIHJldHVybiBvYmplY3Rba2V5XTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBmbGF0dGVuKGFycmF5KSB7XG4gIHZhciBmbGF0dGVuZWQgPSBbXTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7IGkrKykge1xuICAgIGlmIChBcnJheS5pc0FycmF5KGFycmF5W2ldKSkge1xuICAgICAgZmxhdHRlbmVkID0gZmxhdHRlbmVkLmNvbmNhdChmbGF0dGVuKGFycmF5W2ldKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZsYXR0ZW5lZC5wdXNoKGFycmF5W2ldKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZsYXR0ZW5lZDtcbn1cblxuZnVuY3Rpb24gc3RhdHVzSGFuZGxlcihjbGFzc05hbWUsIGRhdGFiYXNlKSB7XG4gIGZ1bmN0aW9uIGNyZWF0ZShvYmplY3QpIHtcbiAgICByZXR1cm4gZGF0YWJhc2UuY3JlYXRlKGNsYXNzTmFtZSwgb2JqZWN0KS50aGVuKCgpID0+IHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUob2JqZWN0KTtcbiAgICB9KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHVwZGF0ZSh3aGVyZSwgb2JqZWN0KSB7XG4gICAgcmV0dXJuIGpvYlByb21pc2VRdWV1ZS5lbnF1ZXVlKHdoZXJlLm9iamVjdElkLCAoKSA9PiBkYXRhYmFzZS51cGRhdGUoY2xhc3NOYW1lLCB3aGVyZSwgb2JqZWN0KSk7XG4gIH1cblxuICByZXR1cm4gT2JqZWN0LmZyZWV6ZSh7XG4gICAgY3JlYXRlLFxuICAgIHVwZGF0ZSxcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHJlc3RTdGF0dXNIYW5kbGVyKGNsYXNzTmFtZSwgY29uZmlnKSB7XG4gIGNvbnN0IGF1dGggPSBBdXRoLm1hc3Rlcihjb25maWcpO1xuICBmdW5jdGlvbiBjcmVhdGUob2JqZWN0KSB7XG4gICAgcmV0dXJuIHJlc3QuY3JlYXRlKGNvbmZpZywgYXV0aCwgY2xhc3NOYW1lLCBvYmplY3QpLnRoZW4oKHsgcmVzcG9uc2UgfSkgPT4ge1xuICAgICAgcmV0dXJuIHsgLi4ub2JqZWN0LCAuLi5yZXNwb25zZSB9O1xuICAgIH0pO1xuICB9XG5cbiAgZnVuY3Rpb24gdXBkYXRlKHdoZXJlLCBvYmplY3QpIHtcbiAgICByZXR1cm4gcHVzaFByb21pc2VRdWV1ZS5lbnF1ZXVlKHdoZXJlLm9iamVjdElkLCAoKSA9PlxuICAgICAgcmVzdFxuICAgICAgICAudXBkYXRlKGNvbmZpZywgYXV0aCwgY2xhc3NOYW1lLCB7IG9iamVjdElkOiB3aGVyZS5vYmplY3RJZCB9LCBvYmplY3QpXG4gICAgICAgIC50aGVuKCh7IHJlc3BvbnNlIH0pID0+IHtcbiAgICAgICAgICByZXR1cm4geyAuLi5vYmplY3QsIC4uLnJlc3BvbnNlIH07XG4gICAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBPYmplY3QuZnJlZXplKHtcbiAgICBjcmVhdGUsXG4gICAgdXBkYXRlLFxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGpvYlN0YXR1c0hhbmRsZXIoY29uZmlnKSB7XG4gIGxldCBqb2JTdGF0dXM7XG4gIGNvbnN0IG9iamVjdElkID0gbmV3T2JqZWN0SWQoY29uZmlnLm9iamVjdElkU2l6ZSk7XG4gIGNvbnN0IGRhdGFiYXNlID0gY29uZmlnLmRhdGFiYXNlO1xuICBjb25zdCBoYW5kbGVyID0gc3RhdHVzSGFuZGxlcihKT0JfU1RBVFVTX0NPTExFQ1RJT04sIGRhdGFiYXNlKTtcbiAgY29uc3Qgc2V0UnVubmluZyA9IGZ1bmN0aW9uIChqb2JOYW1lLCBwYXJhbXMpIHtcbiAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICAgIGpvYlN0YXR1cyA9IHtcbiAgICAgIG9iamVjdElkLFxuICAgICAgam9iTmFtZSxcbiAgICAgIHBhcmFtcyxcbiAgICAgIHN0YXR1czogJ3J1bm5pbmcnLFxuICAgICAgc291cmNlOiAnYXBpJyxcbiAgICAgIGNyZWF0ZWRBdDogbm93LFxuICAgICAgLy8gbG9ja2Rvd24hXG4gICAgICBBQ0w6IHt9LFxuICAgIH07XG5cbiAgICByZXR1cm4gaGFuZGxlci5jcmVhdGUoam9iU3RhdHVzKTtcbiAgfTtcblxuICBjb25zdCBzZXRNZXNzYWdlID0gZnVuY3Rpb24gKG1lc3NhZ2UpIHtcbiAgICBpZiAoIW1lc3NhZ2UgfHwgdHlwZW9mIG1lc3NhZ2UgIT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgfVxuICAgIHJldHVybiBoYW5kbGVyLnVwZGF0ZSh7IG9iamVjdElkIH0sIHsgbWVzc2FnZSB9KTtcbiAgfTtcblxuICBjb25zdCBzZXRTdWNjZWVkZWQgPSBmdW5jdGlvbiAobWVzc2FnZSkge1xuICAgIHJldHVybiBzZXRGaW5hbFN0YXR1cygnc3VjY2VlZGVkJywgbWVzc2FnZSk7XG4gIH07XG5cbiAgY29uc3Qgc2V0RmFpbGVkID0gZnVuY3Rpb24gKG1lc3NhZ2UpIHtcbiAgICByZXR1cm4gc2V0RmluYWxTdGF0dXMoJ2ZhaWxlZCcsIG1lc3NhZ2UpO1xuICB9O1xuXG4gIGNvbnN0IHNldEZpbmFsU3RhdHVzID0gZnVuY3Rpb24gKHN0YXR1cywgbWVzc2FnZSA9IHVuZGVmaW5lZCkge1xuICAgIGNvbnN0IGZpbmlzaGVkQXQgPSBuZXcgRGF0ZSgpO1xuICAgIGNvbnN0IHVwZGF0ZSA9IHsgc3RhdHVzLCBmaW5pc2hlZEF0IH07XG4gICAgaWYgKG1lc3NhZ2UgJiYgdHlwZW9mIG1lc3NhZ2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICB1cGRhdGUubWVzc2FnZSA9IG1lc3NhZ2U7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlIGluc3RhbmNlb2YgRXJyb3IgJiYgdHlwZW9mIG1lc3NhZ2UubWVzc2FnZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHVwZGF0ZS5tZXNzYWdlID0gbWVzc2FnZS5tZXNzYWdlO1xuICAgIH1cbiAgICByZXR1cm4gaGFuZGxlci51cGRhdGUoeyBvYmplY3RJZCB9LCB1cGRhdGUpO1xuICB9O1xuXG4gIHJldHVybiBPYmplY3QuZnJlZXplKHtcbiAgICBzZXRSdW5uaW5nLFxuICAgIHNldFN1Y2NlZWRlZCxcbiAgICBzZXRNZXNzYWdlLFxuICAgIHNldEZhaWxlZCxcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwdXNoU3RhdHVzSGFuZGxlcihjb25maWcsIGV4aXN0aW5nT2JqZWN0SWQpIHtcbiAgbGV0IHB1c2hTdGF0dXM7XG4gIGNvbnN0IGRhdGFiYXNlID0gY29uZmlnLmRhdGFiYXNlO1xuICBjb25zdCBoYW5kbGVyID0gcmVzdFN0YXR1c0hhbmRsZXIoUFVTSF9TVEFUVVNfQ09MTEVDVElPTiwgY29uZmlnKTtcbiAgbGV0IG9iamVjdElkID0gZXhpc3RpbmdPYmplY3RJZDtcbiAgY29uc3Qgc2V0SW5pdGlhbCA9IGZ1bmN0aW9uIChib2R5ID0ge30sIHdoZXJlLCBvcHRpb25zID0geyBzb3VyY2U6ICdyZXN0JyB9KSB7XG4gICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgICBsZXQgcHVzaFRpbWUgPSBub3cudG9JU09TdHJpbmcoKTtcbiAgICBsZXQgc3RhdHVzID0gJ3BlbmRpbmcnO1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYm9keSwgJ3B1c2hfdGltZScpKSB7XG4gICAgICBpZiAoY29uZmlnLmhhc1B1c2hTY2hlZHVsZWRTdXBwb3J0KSB7XG4gICAgICAgIHB1c2hUaW1lID0gYm9keS5wdXNoX3RpbWU7XG4gICAgICAgIHN0YXR1cyA9ICdzY2hlZHVsZWQnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbG9nZ2VyLndhcm4oJ1RyeWluZyB0byBzY2hlZHVsZSBhIHB1c2ggd2hpbGUgc2VydmVyIGlzIG5vdCBjb25maWd1cmVkLicpO1xuICAgICAgICBsb2dnZXIud2FybignUHVzaCB3aWxsIGJlIHNlbnQgaW1tZWRpYXRlbHknKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBkYXRhID0gYm9keS5kYXRhIHx8IHt9O1xuICAgIGNvbnN0IHBheWxvYWRTdHJpbmcgPSBKU09OLnN0cmluZ2lmeShkYXRhKTtcbiAgICBsZXQgcHVzaEhhc2g7XG4gICAgaWYgKHR5cGVvZiBkYXRhLmFsZXJ0ID09PSAnc3RyaW5nJykge1xuICAgICAgcHVzaEhhc2ggPSBtZDVIYXNoKGRhdGEuYWxlcnQpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGRhdGEuYWxlcnQgPT09ICdvYmplY3QnKSB7XG4gICAgICBwdXNoSGFzaCA9IG1kNUhhc2goSlNPTi5zdHJpbmdpZnkoZGF0YS5hbGVydCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBwdXNoSGFzaCA9ICdkNDFkOGNkOThmMDBiMjA0ZTk4MDA5OThlY2Y4NDI3ZSc7XG4gICAgfVxuICAgIGNvbnN0IG9iamVjdCA9IHtcbiAgICAgIHB1c2hUaW1lLFxuICAgICAgcXVlcnk6IEpTT04uc3RyaW5naWZ5KHdoZXJlKSxcbiAgICAgIHBheWxvYWQ6IHBheWxvYWRTdHJpbmcsXG4gICAgICBzb3VyY2U6IG9wdGlvbnMuc291cmNlLFxuICAgICAgdGl0bGU6IG9wdGlvbnMudGl0bGUsXG4gICAgICBleHBpcnk6IGJvZHkuZXhwaXJhdGlvbl90aW1lLFxuICAgICAgZXhwaXJhdGlvbl9pbnRlcnZhbDogYm9keS5leHBpcmF0aW9uX2ludGVydmFsLFxuICAgICAgc3RhdHVzOiBzdGF0dXMsXG4gICAgICBudW1TZW50OiAwLFxuICAgICAgcHVzaEhhc2gsXG4gICAgICAvLyBsb2NrZG93biFcbiAgICAgIEFDTDoge30sXG4gICAgfTtcbiAgICByZXR1cm4gaGFuZGxlci5jcmVhdGUob2JqZWN0KS50aGVuKHJlc3VsdCA9PiB7XG4gICAgICBvYmplY3RJZCA9IHJlc3VsdC5vYmplY3RJZDtcbiAgICAgIHB1c2hTdGF0dXMgPSB7XG4gICAgICAgIG9iamVjdElkLFxuICAgICAgfTtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUocHVzaFN0YXR1cyk7XG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3Qgc2V0UnVubmluZyA9IGZ1bmN0aW9uIChiYXRjaGVzKSB7XG4gICAgbG9nZ2VyLnZlcmJvc2UoXG4gICAgICBgX1B1c2hTdGF0dXMgJHtvYmplY3RJZH06IHNlbmRpbmcgcHVzaCB0byBpbnN0YWxsYXRpb25zIHdpdGggJWQgYmF0Y2hlc2AsXG4gICAgICBiYXRjaGVzXG4gICAgKTtcbiAgICByZXR1cm4gaGFuZGxlci51cGRhdGUoXG4gICAgICB7XG4gICAgICAgIHN0YXR1czogJ3BlbmRpbmcnLFxuICAgICAgICBvYmplY3RJZDogb2JqZWN0SWQsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBzdGF0dXM6ICdydW5uaW5nJyxcbiAgICAgICAgY291bnQ6IGJhdGNoZXMsXG4gICAgICB9XG4gICAgKTtcbiAgfTtcblxuICBjb25zdCB0cmFja1NlbnQgPSBmdW5jdGlvbiAoXG4gICAgcmVzdWx0cyxcbiAgICBVVENPZmZzZXQsXG4gICAgY2xlYW51cEluc3RhbGxhdGlvbnMgPSBwcm9jZXNzLmVudi5QQVJTRV9TRVJWRVJfQ0xFQU5VUF9JTlZBTElEX0lOU1RBTExBVElPTlNcbiAgKSB7XG4gICAgY29uc3QgdXBkYXRlID0ge1xuICAgICAgbnVtU2VudDogMCxcbiAgICAgIG51bUZhaWxlZDogMCxcbiAgICB9O1xuICAgIGNvbnN0IGRldmljZXNUb1JlbW92ZSA9IFtdO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHJlc3VsdHMpKSB7XG4gICAgICByZXN1bHRzID0gZmxhdHRlbihyZXN1bHRzKTtcbiAgICAgIHJlc3VsdHMucmVkdWNlKChtZW1vLCByZXN1bHQpID0+IHtcbiAgICAgICAgLy8gQ2Fubm90IGhhbmRsZSB0aGF0XG4gICAgICAgIGlmICghcmVzdWx0IHx8ICFyZXN1bHQuZGV2aWNlIHx8ICFyZXN1bHQuZGV2aWNlLmRldmljZVR5cGUpIHtcbiAgICAgICAgICByZXR1cm4gbWVtbztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkZXZpY2VUeXBlID0gcmVzdWx0LmRldmljZS5kZXZpY2VUeXBlO1xuICAgICAgICBjb25zdCBrZXkgPSByZXN1bHQudHJhbnNtaXR0ZWRcbiAgICAgICAgICA/IGBzZW50UGVyVHlwZS4ke2RldmljZVR5cGV9YFxuICAgICAgICAgIDogYGZhaWxlZFBlclR5cGUuJHtkZXZpY2VUeXBlfWA7XG4gICAgICAgIG1lbW9ba2V5XSA9IGluY3JlbWVudE9wKG1lbW8sIGtleSk7XG4gICAgICAgIGlmICh0eXBlb2YgVVRDT2Zmc2V0ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgIGNvbnN0IG9mZnNldEtleSA9IHJlc3VsdC50cmFuc21pdHRlZFxuICAgICAgICAgICAgPyBgc2VudFBlclVUQ09mZnNldC4ke1VUQ09mZnNldH1gXG4gICAgICAgICAgICA6IGBmYWlsZWRQZXJVVENPZmZzZXQuJHtVVENPZmZzZXR9YDtcbiAgICAgICAgICBtZW1vW29mZnNldEtleV0gPSBpbmNyZW1lbnRPcChtZW1vLCBvZmZzZXRLZXkpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZXN1bHQudHJhbnNtaXR0ZWQpIHtcbiAgICAgICAgICBtZW1vLm51bVNlbnQrKztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICByZXN1bHQgJiZcbiAgICAgICAgICAgIHJlc3VsdC5yZXNwb25zZSAmJlxuICAgICAgICAgICAgcmVzdWx0LnJlc3BvbnNlLmVycm9yICYmXG4gICAgICAgICAgICByZXN1bHQuZGV2aWNlICYmXG4gICAgICAgICAgICByZXN1bHQuZGV2aWNlLmRldmljZVRva2VuXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCB0b2tlbiA9IHJlc3VsdC5kZXZpY2UuZGV2aWNlVG9rZW47XG4gICAgICAgICAgICBjb25zdCBlcnJvciA9IHJlc3VsdC5yZXNwb25zZS5lcnJvcjtcbiAgICAgICAgICAgIC8vIEdDTSBlcnJvcnNcbiAgICAgICAgICAgIGlmIChlcnJvciA9PT0gJ05vdFJlZ2lzdGVyZWQnIHx8IGVycm9yID09PSAnSW52YWxpZFJlZ2lzdHJhdGlvbicpIHtcbiAgICAgICAgICAgICAgZGV2aWNlc1RvUmVtb3ZlLnB1c2godG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gQVBOUyBlcnJvcnNcbiAgICAgICAgICAgIGlmIChlcnJvciA9PT0gJ1VucmVnaXN0ZXJlZCcgfHwgZXJyb3IgPT09ICdCYWREZXZpY2VUb2tlbicpIHtcbiAgICAgICAgICAgICAgZGV2aWNlc1RvUmVtb3ZlLnB1c2godG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBtZW1vLm51bUZhaWxlZCsrO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtZW1vO1xuICAgICAgfSwgdXBkYXRlKTtcbiAgICB9XG5cbiAgICBsb2dnZXIudmVyYm9zZShcbiAgICAgIGBfUHVzaFN0YXR1cyAke29iamVjdElkfTogc2VudCBwdXNoISAlZCBzdWNjZXNzLCAlZCBmYWlsdXJlc2AsXG4gICAgICB1cGRhdGUubnVtU2VudCxcbiAgICAgIHVwZGF0ZS5udW1GYWlsZWRcbiAgICApO1xuICAgIGxvZ2dlci52ZXJib3NlKGBfUHVzaFN0YXR1cyAke29iamVjdElkfTogbmVlZHMgY2xlYW51cGAsIHtcbiAgICAgIGRldmljZXNUb1JlbW92ZSxcbiAgICB9KTtcbiAgICBbJ251bVNlbnQnLCAnbnVtRmFpbGVkJ10uZm9yRWFjaChrZXkgPT4ge1xuICAgICAgaWYgKHVwZGF0ZVtrZXldID4gMCkge1xuICAgICAgICB1cGRhdGVba2V5XSA9IHtcbiAgICAgICAgICBfX29wOiAnSW5jcmVtZW50JyxcbiAgICAgICAgICBhbW91bnQ6IHVwZGF0ZVtrZXldLFxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGVsZXRlIHVwZGF0ZVtrZXldO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKGRldmljZXNUb1JlbW92ZS5sZW5ndGggPiAwICYmIGNsZWFudXBJbnN0YWxsYXRpb25zKSB7XG4gICAgICBsb2dnZXIuaW5mbyhgUmVtb3ZpbmcgZGV2aWNlIHRva2VucyBvbiAke2RldmljZXNUb1JlbW92ZS5sZW5ndGh9IF9JbnN0YWxsYXRpb25zYCk7XG4gICAgICBkYXRhYmFzZS51cGRhdGUoXG4gICAgICAgICdfSW5zdGFsbGF0aW9uJyxcbiAgICAgICAgeyBkZXZpY2VUb2tlbjogeyAkaW46IGRldmljZXNUb1JlbW92ZSB9IH0sXG4gICAgICAgIHsgZGV2aWNlVG9rZW46IHsgX19vcDogJ0RlbGV0ZScgfSB9LFxuICAgICAgICB7XG4gICAgICAgICAgYWNsOiB1bmRlZmluZWQsXG4gICAgICAgICAgbWFueTogdHJ1ZSxcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG4gICAgaW5jcmVtZW50T3AodXBkYXRlLCAnY291bnQnLCAtMSk7XG4gICAgdXBkYXRlLnN0YXR1cyA9ICdydW5uaW5nJztcblxuICAgIHJldHVybiBoYW5kbGVyLnVwZGF0ZSh7IG9iamVjdElkIH0sIHVwZGF0ZSkudGhlbihyZXMgPT4ge1xuICAgICAgaWYgKHJlcyAmJiByZXMuY291bnQgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcGxldGUoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCBjb21wbGV0ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gaGFuZGxlci51cGRhdGUoXG4gICAgICB7IG9iamVjdElkIH0sXG4gICAgICB7XG4gICAgICAgIHN0YXR1czogJ3N1Y2NlZWRlZCcsXG4gICAgICAgIGNvdW50OiB7IF9fb3A6ICdEZWxldGUnIH0sXG4gICAgICB9XG4gICAgKTtcbiAgfTtcblxuICBjb25zdCBmYWlsID0gZnVuY3Rpb24gKGVycikge1xuICAgIGlmICh0eXBlb2YgZXJyID09PSAnc3RyaW5nJykge1xuICAgICAgZXJyID0geyBtZXNzYWdlOiBlcnIgfTtcbiAgICB9XG4gICAgY29uc3QgdXBkYXRlID0ge1xuICAgICAgZXJyb3JNZXNzYWdlOiBlcnIsXG4gICAgICBzdGF0dXM6ICdmYWlsZWQnLFxuICAgIH07XG4gICAgcmV0dXJuIGhhbmRsZXIudXBkYXRlKHsgb2JqZWN0SWQgfSwgdXBkYXRlKTtcbiAgfTtcblxuICBjb25zdCBydmFsID0ge1xuICAgIHNldEluaXRpYWwsXG4gICAgc2V0UnVubmluZyxcbiAgICB0cmFja1NlbnQsXG4gICAgY29tcGxldGUsXG4gICAgZmFpbCxcbiAgfTtcblxuICAvLyBkZWZpbmUgb2JqZWN0SWQgdG8gYmUgZHluYW1pY1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkocnZhbCwgJ29iamVjdElkJywge1xuICAgIGdldDogKCkgPT4gb2JqZWN0SWQsXG4gIH0pO1xuXG4gIHJldHVybiBPYmplY3QuZnJlZXplKHJ2YWwpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBMEI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRTFCLE1BQU1BLHNCQUFzQixHQUFHLGFBQWE7QUFDNUMsTUFBTUMscUJBQXFCLEdBQUcsWUFBWTtBQUUxQyxNQUFNQyxnQkFBZ0IsR0FBRyxJQUFJQyxnQ0FBZSxFQUFFO0FBQzlDLE1BQU1DLGVBQWUsR0FBRyxJQUFJRCxnQ0FBZSxFQUFFO0FBRTdDLE1BQU1FLFdBQVcsR0FBRyxVQUFVQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUVDLEdBQUcsRUFBRUMsTUFBTSxHQUFHLENBQUMsRUFBRTtFQUMxRCxJQUFJLENBQUNGLE1BQU0sQ0FBQ0MsR0FBRyxDQUFDLEVBQUU7SUFDaEJELE1BQU0sQ0FBQ0MsR0FBRyxDQUFDLEdBQUc7TUFBRUUsSUFBSSxFQUFFLFdBQVc7TUFBRUQsTUFBTSxFQUFFQTtJQUFPLENBQUM7RUFDckQsQ0FBQyxNQUFNO0lBQ0xGLE1BQU0sQ0FBQ0MsR0FBRyxDQUFDLENBQUNDLE1BQU0sSUFBSUEsTUFBTTtFQUM5QjtFQUNBLE9BQU9GLE1BQU0sQ0FBQ0MsR0FBRyxDQUFDO0FBQ3BCLENBQUM7QUFFTSxTQUFTRyxPQUFPLENBQUNDLEtBQUssRUFBRTtFQUM3QixJQUFJQyxTQUFTLEdBQUcsRUFBRTtFQUNsQixLQUFLLElBQUlDLENBQUMsR0FBRyxDQUFDLEVBQUVBLENBQUMsR0FBR0YsS0FBSyxDQUFDRyxNQUFNLEVBQUVELENBQUMsRUFBRSxFQUFFO0lBQ3JDLElBQUlFLEtBQUssQ0FBQ0MsT0FBTyxDQUFDTCxLQUFLLENBQUNFLENBQUMsQ0FBQyxDQUFDLEVBQUU7TUFDM0JELFNBQVMsR0FBR0EsU0FBUyxDQUFDSyxNQUFNLENBQUNQLE9BQU8sQ0FBQ0MsS0FBSyxDQUFDRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pELENBQUMsTUFBTTtNQUNMRCxTQUFTLENBQUNNLElBQUksQ0FBQ1AsS0FBSyxDQUFDRSxDQUFDLENBQUMsQ0FBQztJQUMxQjtFQUNGO0VBQ0EsT0FBT0QsU0FBUztBQUNsQjtBQUVBLFNBQVNPLGFBQWEsQ0FBQ0MsU0FBUyxFQUFFQyxRQUFRLEVBQUU7RUFDMUMsU0FBU0MsTUFBTSxDQUFDaEIsTUFBTSxFQUFFO0lBQ3RCLE9BQU9lLFFBQVEsQ0FBQ0MsTUFBTSxDQUFDRixTQUFTLEVBQUVkLE1BQU0sQ0FBQyxDQUFDaUIsSUFBSSxDQUFDLE1BQU07TUFDbkQsT0FBT0MsT0FBTyxDQUFDQyxPQUFPLENBQUNuQixNQUFNLENBQUM7SUFDaEMsQ0FBQyxDQUFDO0VBQ0o7RUFFQSxTQUFTb0IsTUFBTSxDQUFDQyxLQUFLLEVBQUVyQixNQUFNLEVBQUU7SUFDN0IsT0FBT0YsZUFBZSxDQUFDd0IsT0FBTyxDQUFDRCxLQUFLLENBQUNFLFFBQVEsRUFBRSxNQUFNUixRQUFRLENBQUNLLE1BQU0sQ0FBQ04sU0FBUyxFQUFFTyxLQUFLLEVBQUVyQixNQUFNLENBQUMsQ0FBQztFQUNqRztFQUVBLE9BQU93QixNQUFNLENBQUNDLE1BQU0sQ0FBQztJQUNuQlQsTUFBTTtJQUNOSTtFQUNGLENBQUMsQ0FBQztBQUNKO0FBRUEsU0FBU00saUJBQWlCLENBQUNaLFNBQVMsRUFBRWEsTUFBTSxFQUFFO0VBQzVDLE1BQU1DLElBQUksR0FBR0MsYUFBSSxDQUFDQyxNQUFNLENBQUNILE1BQU0sQ0FBQztFQUNoQyxTQUFTWCxNQUFNLENBQUNoQixNQUFNLEVBQUU7SUFDdEIsT0FBTytCLGFBQUksQ0FBQ2YsTUFBTSxDQUFDVyxNQUFNLEVBQUVDLElBQUksRUFBRWQsU0FBUyxFQUFFZCxNQUFNLENBQUMsQ0FBQ2lCLElBQUksQ0FBQyxDQUFDO01BQUVlO0lBQVMsQ0FBQyxLQUFLO01BQ3pFLHVDQUFZaEMsTUFBTSxHQUFLZ0MsUUFBUTtJQUNqQyxDQUFDLENBQUM7RUFDSjtFQUVBLFNBQVNaLE1BQU0sQ0FBQ0MsS0FBSyxFQUFFckIsTUFBTSxFQUFFO0lBQzdCLE9BQU9KLGdCQUFnQixDQUFDMEIsT0FBTyxDQUFDRCxLQUFLLENBQUNFLFFBQVEsRUFBRSxNQUM5Q1EsYUFBSSxDQUNEWCxNQUFNLENBQUNPLE1BQU0sRUFBRUMsSUFBSSxFQUFFZCxTQUFTLEVBQUU7TUFBRVMsUUFBUSxFQUFFRixLQUFLLENBQUNFO0lBQVMsQ0FBQyxFQUFFdkIsTUFBTSxDQUFDLENBQ3JFaUIsSUFBSSxDQUFDLENBQUM7TUFBRWU7SUFBUyxDQUFDLEtBQUs7TUFDdEIsdUNBQVloQyxNQUFNLEdBQUtnQyxRQUFRO0lBQ2pDLENBQUMsQ0FBQyxDQUNMO0VBQ0g7RUFFQSxPQUFPUixNQUFNLENBQUNDLE1BQU0sQ0FBQztJQUNuQlQsTUFBTTtJQUNOSTtFQUNGLENBQUMsQ0FBQztBQUNKO0FBRU8sU0FBU2EsZ0JBQWdCLENBQUNOLE1BQU0sRUFBRTtFQUN2QyxJQUFJTyxTQUFTO0VBQ2IsTUFBTVgsUUFBUSxHQUFHLElBQUFZLHdCQUFXLEVBQUNSLE1BQU0sQ0FBQ1MsWUFBWSxDQUFDO0VBQ2pELE1BQU1yQixRQUFRLEdBQUdZLE1BQU0sQ0FBQ1osUUFBUTtFQUNoQyxNQUFNc0IsT0FBTyxHQUFHeEIsYUFBYSxDQUFDbEIscUJBQXFCLEVBQUVvQixRQUFRLENBQUM7RUFDOUQsTUFBTXVCLFVBQVUsR0FBRyxVQUFVQyxPQUFPLEVBQUVDLE1BQU0sRUFBRTtJQUM1QyxNQUFNQyxHQUFHLEdBQUcsSUFBSUMsSUFBSSxFQUFFO0lBQ3RCUixTQUFTLEdBQUc7TUFDVlgsUUFBUTtNQUNSZ0IsT0FBTztNQUNQQyxNQUFNO01BQ05HLE1BQU0sRUFBRSxTQUFTO01BQ2pCQyxNQUFNLEVBQUUsS0FBSztNQUNiQyxTQUFTLEVBQUVKLEdBQUc7TUFDZDtNQUNBSyxHQUFHLEVBQUUsQ0FBQztJQUNSLENBQUM7SUFFRCxPQUFPVCxPQUFPLENBQUNyQixNQUFNLENBQUNrQixTQUFTLENBQUM7RUFDbEMsQ0FBQztFQUVELE1BQU1hLFVBQVUsR0FBRyxVQUFVQyxPQUFPLEVBQUU7SUFDcEMsSUFBSSxDQUFDQSxPQUFPLElBQUksT0FBT0EsT0FBTyxLQUFLLFFBQVEsRUFBRTtNQUMzQyxPQUFPOUIsT0FBTyxDQUFDQyxPQUFPLEVBQUU7SUFDMUI7SUFDQSxPQUFPa0IsT0FBTyxDQUFDakIsTUFBTSxDQUFDO01BQUVHO0lBQVMsQ0FBQyxFQUFFO01BQUV5QjtJQUFRLENBQUMsQ0FBQztFQUNsRCxDQUFDO0VBRUQsTUFBTUMsWUFBWSxHQUFHLFVBQVVELE9BQU8sRUFBRTtJQUN0QyxPQUFPRSxjQUFjLENBQUMsV0FBVyxFQUFFRixPQUFPLENBQUM7RUFDN0MsQ0FBQztFQUVELE1BQU1HLFNBQVMsR0FBRyxVQUFVSCxPQUFPLEVBQUU7SUFDbkMsT0FBT0UsY0FBYyxDQUFDLFFBQVEsRUFBRUYsT0FBTyxDQUFDO0VBQzFDLENBQUM7RUFFRCxNQUFNRSxjQUFjLEdBQUcsVUFBVVAsTUFBTSxFQUFFSyxPQUFPLEdBQUdJLFNBQVMsRUFBRTtJQUM1RCxNQUFNQyxVQUFVLEdBQUcsSUFBSVgsSUFBSSxFQUFFO0lBQzdCLE1BQU10QixNQUFNLEdBQUc7TUFBRXVCLE1BQU07TUFBRVU7SUFBVyxDQUFDO0lBQ3JDLElBQUlMLE9BQU8sSUFBSSxPQUFPQSxPQUFPLEtBQUssUUFBUSxFQUFFO01BQzFDNUIsTUFBTSxDQUFDNEIsT0FBTyxHQUFHQSxPQUFPO0lBQzFCO0lBQ0EsSUFBSUEsT0FBTyxZQUFZTSxLQUFLLElBQUksT0FBT04sT0FBTyxDQUFDQSxPQUFPLEtBQUssUUFBUSxFQUFFO01BQ25FNUIsTUFBTSxDQUFDNEIsT0FBTyxHQUFHQSxPQUFPLENBQUNBLE9BQU87SUFDbEM7SUFDQSxPQUFPWCxPQUFPLENBQUNqQixNQUFNLENBQUM7TUFBRUc7SUFBUyxDQUFDLEVBQUVILE1BQU0sQ0FBQztFQUM3QyxDQUFDO0VBRUQsT0FBT0ksTUFBTSxDQUFDQyxNQUFNLENBQUM7SUFDbkJhLFVBQVU7SUFDVlcsWUFBWTtJQUNaRixVQUFVO0lBQ1ZJO0VBQ0YsQ0FBQyxDQUFDO0FBQ0o7QUFFTyxTQUFTSSxpQkFBaUIsQ0FBQzVCLE1BQU0sRUFBRTZCLGdCQUFnQixFQUFFO0VBQzFELElBQUlDLFVBQVU7RUFDZCxNQUFNMUMsUUFBUSxHQUFHWSxNQUFNLENBQUNaLFFBQVE7RUFDaEMsTUFBTXNCLE9BQU8sR0FBR1gsaUJBQWlCLENBQUNoQyxzQkFBc0IsRUFBRWlDLE1BQU0sQ0FBQztFQUNqRSxJQUFJSixRQUFRLEdBQUdpQyxnQkFBZ0I7RUFDL0IsTUFBTUUsVUFBVSxHQUFHLFVBQVVDLElBQUksR0FBRyxDQUFDLENBQUMsRUFBRXRDLEtBQUssRUFBRXVDLE9BQU8sR0FBRztJQUFFaEIsTUFBTSxFQUFFO0VBQU8sQ0FBQyxFQUFFO0lBQzNFLE1BQU1ILEdBQUcsR0FBRyxJQUFJQyxJQUFJLEVBQUU7SUFDdEIsSUFBSW1CLFFBQVEsR0FBR3BCLEdBQUcsQ0FBQ3FCLFdBQVcsRUFBRTtJQUNoQyxJQUFJbkIsTUFBTSxHQUFHLFNBQVM7SUFDdEIsSUFBSW5CLE1BQU0sQ0FBQ3VDLFNBQVMsQ0FBQ0MsY0FBYyxDQUFDQyxJQUFJLENBQUNOLElBQUksRUFBRSxXQUFXLENBQUMsRUFBRTtNQUMzRCxJQUFJaEMsTUFBTSxDQUFDdUMsdUJBQXVCLEVBQUU7UUFDbENMLFFBQVEsR0FBR0YsSUFBSSxDQUFDUSxTQUFTO1FBQ3pCeEIsTUFBTSxHQUFHLFdBQVc7TUFDdEIsQ0FBQyxNQUFNO1FBQ0x5QixjQUFNLENBQUNDLElBQUksQ0FBQywyREFBMkQsQ0FBQztRQUN4RUQsY0FBTSxDQUFDQyxJQUFJLENBQUMsK0JBQStCLENBQUM7TUFDOUM7SUFDRjtJQUVBLE1BQU1DLElBQUksR0FBR1gsSUFBSSxDQUFDVyxJQUFJLElBQUksQ0FBQyxDQUFDO0lBQzVCLE1BQU1DLGFBQWEsR0FBR0MsSUFBSSxDQUFDQyxTQUFTLENBQUNILElBQUksQ0FBQztJQUMxQyxJQUFJSSxRQUFRO0lBQ1osSUFBSSxPQUFPSixJQUFJLENBQUNLLEtBQUssS0FBSyxRQUFRLEVBQUU7TUFDbENELFFBQVEsR0FBRyxJQUFBRSxvQkFBTyxFQUFDTixJQUFJLENBQUNLLEtBQUssQ0FBQztJQUNoQyxDQUFDLE1BQU0sSUFBSSxPQUFPTCxJQUFJLENBQUNLLEtBQUssS0FBSyxRQUFRLEVBQUU7TUFDekNELFFBQVEsR0FBRyxJQUFBRSxvQkFBTyxFQUFDSixJQUFJLENBQUNDLFNBQVMsQ0FBQ0gsSUFBSSxDQUFDSyxLQUFLLENBQUMsQ0FBQztJQUNoRCxDQUFDLE1BQU07TUFDTEQsUUFBUSxHQUFHLGtDQUFrQztJQUMvQztJQUNBLE1BQU0xRSxNQUFNLEdBQUc7TUFDYjZELFFBQVE7TUFDUmdCLEtBQUssRUFBRUwsSUFBSSxDQUFDQyxTQUFTLENBQUNwRCxLQUFLLENBQUM7TUFDNUJ5RCxPQUFPLEVBQUVQLGFBQWE7TUFDdEIzQixNQUFNLEVBQUVnQixPQUFPLENBQUNoQixNQUFNO01BQ3RCbUMsS0FBSyxFQUFFbkIsT0FBTyxDQUFDbUIsS0FBSztNQUNwQkMsTUFBTSxFQUFFckIsSUFBSSxDQUFDc0IsZUFBZTtNQUM1QkMsbUJBQW1CLEVBQUV2QixJQUFJLENBQUN1QixtQkFBbUI7TUFDN0N2QyxNQUFNLEVBQUVBLE1BQU07TUFDZHdDLE9BQU8sRUFBRSxDQUFDO01BQ1ZULFFBQVE7TUFDUjtNQUNBNUIsR0FBRyxFQUFFLENBQUM7SUFDUixDQUFDO0lBQ0QsT0FBT1QsT0FBTyxDQUFDckIsTUFBTSxDQUFDaEIsTUFBTSxDQUFDLENBQUNpQixJQUFJLENBQUNtRSxNQUFNLElBQUk7TUFDM0M3RCxRQUFRLEdBQUc2RCxNQUFNLENBQUM3RCxRQUFRO01BQzFCa0MsVUFBVSxHQUFHO1FBQ1hsQztNQUNGLENBQUM7TUFDRCxPQUFPTCxPQUFPLENBQUNDLE9BQU8sQ0FBQ3NDLFVBQVUsQ0FBQztJQUNwQyxDQUFDLENBQUM7RUFDSixDQUFDO0VBRUQsTUFBTW5CLFVBQVUsR0FBRyxVQUFVK0MsT0FBTyxFQUFFO0lBQ3BDakIsY0FBTSxDQUFDa0IsT0FBTyxDQUNYLGVBQWMvRCxRQUFTLGlEQUFnRCxFQUN4RThELE9BQU8sQ0FDUjtJQUNELE9BQU9oRCxPQUFPLENBQUNqQixNQUFNLENBQ25CO01BQ0V1QixNQUFNLEVBQUUsU0FBUztNQUNqQnBCLFFBQVEsRUFBRUE7SUFDWixDQUFDLEVBQ0Q7TUFDRW9CLE1BQU0sRUFBRSxTQUFTO01BQ2pCNEMsS0FBSyxFQUFFRjtJQUNULENBQUMsQ0FDRjtFQUNILENBQUM7RUFFRCxNQUFNRyxTQUFTLEdBQUcsVUFDaEJDLE9BQU8sRUFDUEMsU0FBUyxFQUNUQyxvQkFBb0IsR0FBR0MsT0FBTyxDQUFDQyxHQUFHLENBQUNDLDBDQUEwQyxFQUM3RTtJQUNBLE1BQU0xRSxNQUFNLEdBQUc7TUFDYitELE9BQU8sRUFBRSxDQUFDO01BQ1ZZLFNBQVMsRUFBRTtJQUNiLENBQUM7SUFDRCxNQUFNQyxlQUFlLEdBQUcsRUFBRTtJQUMxQixJQUFJdkYsS0FBSyxDQUFDQyxPQUFPLENBQUMrRSxPQUFPLENBQUMsRUFBRTtNQUMxQkEsT0FBTyxHQUFHckYsT0FBTyxDQUFDcUYsT0FBTyxDQUFDO01BQzFCQSxPQUFPLENBQUNRLE1BQU0sQ0FBQyxDQUFDQyxJQUFJLEVBQUVkLE1BQU0sS0FBSztRQUMvQjtRQUNBLElBQUksQ0FBQ0EsTUFBTSxJQUFJLENBQUNBLE1BQU0sQ0FBQ2UsTUFBTSxJQUFJLENBQUNmLE1BQU0sQ0FBQ2UsTUFBTSxDQUFDQyxVQUFVLEVBQUU7VUFDMUQsT0FBT0YsSUFBSTtRQUNiO1FBQ0EsTUFBTUUsVUFBVSxHQUFHaEIsTUFBTSxDQUFDZSxNQUFNLENBQUNDLFVBQVU7UUFDM0MsTUFBTW5HLEdBQUcsR0FBR21GLE1BQU0sQ0FBQ2lCLFdBQVcsR0FDekIsZUFBY0QsVUFBVyxFQUFDLEdBQzFCLGlCQUFnQkEsVUFBVyxFQUFDO1FBQ2pDRixJQUFJLENBQUNqRyxHQUFHLENBQUMsR0FBR0YsV0FBVyxDQUFDbUcsSUFBSSxFQUFFakcsR0FBRyxDQUFDO1FBQ2xDLElBQUksT0FBT3lGLFNBQVMsS0FBSyxXQUFXLEVBQUU7VUFDcEMsTUFBTVksU0FBUyxHQUFHbEIsTUFBTSxDQUFDaUIsV0FBVyxHQUMvQixvQkFBbUJYLFNBQVUsRUFBQyxHQUM5QixzQkFBcUJBLFNBQVUsRUFBQztVQUNyQ1EsSUFBSSxDQUFDSSxTQUFTLENBQUMsR0FBR3ZHLFdBQVcsQ0FBQ21HLElBQUksRUFBRUksU0FBUyxDQUFDO1FBQ2hEO1FBQ0EsSUFBSWxCLE1BQU0sQ0FBQ2lCLFdBQVcsRUFBRTtVQUN0QkgsSUFBSSxDQUFDZixPQUFPLEVBQUU7UUFDaEIsQ0FBQyxNQUFNO1VBQ0wsSUFDRUMsTUFBTSxJQUNOQSxNQUFNLENBQUNwRCxRQUFRLElBQ2ZvRCxNQUFNLENBQUNwRCxRQUFRLENBQUN1RSxLQUFLLElBQ3JCbkIsTUFBTSxDQUFDZSxNQUFNLElBQ2JmLE1BQU0sQ0FBQ2UsTUFBTSxDQUFDSyxXQUFXLEVBQ3pCO1lBQ0EsTUFBTUMsS0FBSyxHQUFHckIsTUFBTSxDQUFDZSxNQUFNLENBQUNLLFdBQVc7WUFDdkMsTUFBTUQsS0FBSyxHQUFHbkIsTUFBTSxDQUFDcEQsUUFBUSxDQUFDdUUsS0FBSztZQUNuQztZQUNBLElBQUlBLEtBQUssS0FBSyxlQUFlLElBQUlBLEtBQUssS0FBSyxxQkFBcUIsRUFBRTtjQUNoRVAsZUFBZSxDQUFDcEYsSUFBSSxDQUFDNkYsS0FBSyxDQUFDO1lBQzdCO1lBQ0E7WUFDQSxJQUFJRixLQUFLLEtBQUssY0FBYyxJQUFJQSxLQUFLLEtBQUssZ0JBQWdCLEVBQUU7Y0FDMURQLGVBQWUsQ0FBQ3BGLElBQUksQ0FBQzZGLEtBQUssQ0FBQztZQUM3QjtVQUNGO1VBQ0FQLElBQUksQ0FBQ0gsU0FBUyxFQUFFO1FBQ2xCO1FBQ0EsT0FBT0csSUFBSTtNQUNiLENBQUMsRUFBRTlFLE1BQU0sQ0FBQztJQUNaO0lBRUFnRCxjQUFNLENBQUNrQixPQUFPLENBQ1gsZUFBYy9ELFFBQVMsc0NBQXFDLEVBQzdESCxNQUFNLENBQUMrRCxPQUFPLEVBQ2QvRCxNQUFNLENBQUMyRSxTQUFTLENBQ2pCO0lBQ0QzQixjQUFNLENBQUNrQixPQUFPLENBQUUsZUFBYy9ELFFBQVMsaUJBQWdCLEVBQUU7TUFDdkR5RTtJQUNGLENBQUMsQ0FBQztJQUNGLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDVSxPQUFPLENBQUN6RyxHQUFHLElBQUk7TUFDdEMsSUFBSW1CLE1BQU0sQ0FBQ25CLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUNuQm1CLE1BQU0sQ0FBQ25CLEdBQUcsQ0FBQyxHQUFHO1VBQ1pFLElBQUksRUFBRSxXQUFXO1VBQ2pCRCxNQUFNLEVBQUVrQixNQUFNLENBQUNuQixHQUFHO1FBQ3BCLENBQUM7TUFDSCxDQUFDLE1BQU07UUFDTCxPQUFPbUIsTUFBTSxDQUFDbkIsR0FBRyxDQUFDO01BQ3BCO0lBQ0YsQ0FBQyxDQUFDO0lBRUYsSUFBSStGLGVBQWUsQ0FBQ3hGLE1BQU0sR0FBRyxDQUFDLElBQUltRixvQkFBb0IsRUFBRTtNQUN0RHZCLGNBQU0sQ0FBQ3VDLElBQUksQ0FBRSw2QkFBNEJYLGVBQWUsQ0FBQ3hGLE1BQU8saUJBQWdCLENBQUM7TUFDakZPLFFBQVEsQ0FBQ0ssTUFBTSxDQUNiLGVBQWUsRUFDZjtRQUFFb0YsV0FBVyxFQUFFO1VBQUVJLEdBQUcsRUFBRVo7UUFBZ0I7TUFBRSxDQUFDLEVBQ3pDO1FBQUVRLFdBQVcsRUFBRTtVQUFFckcsSUFBSSxFQUFFO1FBQVM7TUFBRSxDQUFDLEVBQ25DO1FBQ0UwRyxHQUFHLEVBQUV6RCxTQUFTO1FBQ2QwRCxJQUFJLEVBQUU7TUFDUixDQUFDLENBQ0Y7SUFDSDtJQUNBL0csV0FBVyxDQUFDcUIsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNoQ0EsTUFBTSxDQUFDdUIsTUFBTSxHQUFHLFNBQVM7SUFFekIsT0FBT04sT0FBTyxDQUFDakIsTUFBTSxDQUFDO01BQUVHO0lBQVMsQ0FBQyxFQUFFSCxNQUFNLENBQUMsQ0FBQ0gsSUFBSSxDQUFDOEYsR0FBRyxJQUFJO01BQ3RELElBQUlBLEdBQUcsSUFBSUEsR0FBRyxDQUFDeEIsS0FBSyxLQUFLLENBQUMsRUFBRTtRQUMxQixPQUFPLElBQUksQ0FBQ3lCLFFBQVEsRUFBRTtNQUN4QjtJQUNGLENBQUMsQ0FBQztFQUNKLENBQUM7RUFFRCxNQUFNQSxRQUFRLEdBQUcsWUFBWTtJQUMzQixPQUFPM0UsT0FBTyxDQUFDakIsTUFBTSxDQUNuQjtNQUFFRztJQUFTLENBQUMsRUFDWjtNQUNFb0IsTUFBTSxFQUFFLFdBQVc7TUFDbkI0QyxLQUFLLEVBQUU7UUFBRXBGLElBQUksRUFBRTtNQUFTO0lBQzFCLENBQUMsQ0FDRjtFQUNILENBQUM7RUFFRCxNQUFNOEcsSUFBSSxHQUFHLFVBQVVDLEdBQUcsRUFBRTtJQUMxQixJQUFJLE9BQU9BLEdBQUcsS0FBSyxRQUFRLEVBQUU7TUFDM0JBLEdBQUcsR0FBRztRQUFFbEUsT0FBTyxFQUFFa0U7TUFBSSxDQUFDO0lBQ3hCO0lBQ0EsTUFBTTlGLE1BQU0sR0FBRztNQUNiK0YsWUFBWSxFQUFFRCxHQUFHO01BQ2pCdkUsTUFBTSxFQUFFO0lBQ1YsQ0FBQztJQUNELE9BQU9OLE9BQU8sQ0FBQ2pCLE1BQU0sQ0FBQztNQUFFRztJQUFTLENBQUMsRUFBRUgsTUFBTSxDQUFDO0VBQzdDLENBQUM7RUFFRCxNQUFNZ0csSUFBSSxHQUFHO0lBQ1gxRCxVQUFVO0lBQ1ZwQixVQUFVO0lBQ1ZrRCxTQUFTO0lBQ1R3QixRQUFRO0lBQ1JDO0VBQ0YsQ0FBQzs7RUFFRDtFQUNBekYsTUFBTSxDQUFDNkYsY0FBYyxDQUFDRCxJQUFJLEVBQUUsVUFBVSxFQUFFO0lBQ3RDRSxHQUFHLEVBQUUsTUFBTS9GO0VBQ2IsQ0FBQyxDQUFDO0VBRUYsT0FBT0MsTUFBTSxDQUFDQyxNQUFNLENBQUMyRixJQUFJLENBQUM7QUFDNUIifQ==
|
|
320
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY3J5cHRvVXRpbHMiLCJyZXF1aXJlIiwiX0tleVByb21pc2VRdWV1ZSIsIl9sb2dnZXIiLCJfcmVzdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfQXV0aCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0Iiwib3duS2V5cyIsIm9iamVjdCIsImVudW1lcmFibGVPbmx5Iiwia2V5cyIsIk9iamVjdCIsImdldE93blByb3BlcnR5U3ltYm9scyIsInN5bWJvbHMiLCJmaWx0ZXIiLCJzeW0iLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsInRhcmdldCIsImkiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJzb3VyY2UiLCJmb3JFYWNoIiwia2V5IiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsInZhbHVlIiwiX3RvUHJvcGVydHlLZXkiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImFyZyIsIl90b1ByaW1pdGl2ZSIsIlN0cmluZyIsImlucHV0IiwiaGludCIsInByaW0iLCJTeW1ib2wiLCJ0b1ByaW1pdGl2ZSIsInVuZGVmaW5lZCIsInJlcyIsImNhbGwiLCJUeXBlRXJyb3IiLCJOdW1iZXIiLCJQVVNIX1NUQVRVU19DT0xMRUNUSU9OIiwiSk9CX1NUQVRVU19DT0xMRUNUSU9OIiwicHVzaFByb21pc2VRdWV1ZSIsIktleVByb21pc2VRdWV1ZSIsImpvYlByb21pc2VRdWV1ZSIsImluY3JlbWVudE9wIiwiYW1vdW50IiwiX19vcCIsImZsYXR0ZW4iLCJhcnJheSIsImZsYXR0ZW5lZCIsIkFycmF5IiwiaXNBcnJheSIsImNvbmNhdCIsInN0YXR1c0hhbmRsZXIiLCJjbGFzc05hbWUiLCJkYXRhYmFzZSIsImNyZWF0ZSIsInRoZW4iLCJQcm9taXNlIiwicmVzb2x2ZSIsInVwZGF0ZSIsIndoZXJlIiwiZW5xdWV1ZSIsIm9iamVjdElkIiwiZnJlZXplIiwicmVzdFN0YXR1c0hhbmRsZXIiLCJjb25maWciLCJhdXRoIiwiQXV0aCIsIm1hc3RlciIsInJlc3QiLCJyZXNwb25zZSIsImpvYlN0YXR1c0hhbmRsZXIiLCJqb2JTdGF0dXMiLCJuZXdPYmplY3RJZCIsIm9iamVjdElkU2l6ZSIsImhhbmRsZXIiLCJzZXRSdW5uaW5nIiwiam9iTmFtZSIsInBhcmFtcyIsIm5vdyIsIkRhdGUiLCJzdGF0dXMiLCJjcmVhdGVkQXQiLCJBQ0wiLCJzZXRNZXNzYWdlIiwibWVzc2FnZSIsInNldFN1Y2NlZWRlZCIsInNldEZpbmFsU3RhdHVzIiwic2V0RmFpbGVkIiwiZmluaXNoZWRBdCIsIkVycm9yIiwicHVzaFN0YXR1c0hhbmRsZXIiLCJleGlzdGluZ09iamVjdElkIiwicHVzaFN0YXR1cyIsInNldEluaXRpYWwiLCJib2R5Iiwib3B0aW9ucyIsInB1c2hUaW1lIiwidG9JU09TdHJpbmciLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImhhc1B1c2hTY2hlZHVsZWRTdXBwb3J0IiwicHVzaF90aW1lIiwibG9nZ2VyIiwid2FybiIsImRhdGEiLCJwYXlsb2FkU3RyaW5nIiwiSlNPTiIsInN0cmluZ2lmeSIsInB1c2hIYXNoIiwiYWxlcnQiLCJtZDVIYXNoIiwicXVlcnkiLCJwYXlsb2FkIiwidGl0bGUiLCJleHBpcnkiLCJleHBpcmF0aW9uX3RpbWUiLCJleHBpcmF0aW9uX2ludGVydmFsIiwibnVtU2VudCIsInJlc3VsdCIsImJhdGNoZXMiLCJ2ZXJib3NlIiwiY291bnQiLCJ0cmFja1NlbnQiLCJyZXN1bHRzIiwiVVRDT2Zmc2V0IiwiY2xlYW51cEluc3RhbGxhdGlvbnMiLCJwcm9jZXNzIiwiZW52IiwiUEFSU0VfU0VSVkVSX0NMRUFOVVBfSU5WQUxJRF9JTlNUQUxMQVRJT05TIiwibnVtRmFpbGVkIiwiZGV2aWNlc1RvUmVtb3ZlIiwicmVkdWNlIiwibWVtbyIsImRldmljZSIsImRldmljZVR5cGUiLCJ0cmFuc21pdHRlZCIsIm9mZnNldEtleSIsImVycm9yIiwiZGV2aWNlVG9rZW4iLCJ0b2tlbiIsImluZm8iLCIkaW4iLCJhY2wiLCJtYW55IiwiY29tcGxldGUiLCJmYWlsIiwiZXJyIiwiZXJyb3JNZXNzYWdlIiwicnZhbCIsImdldCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9TdGF0dXNIYW5kbGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1kNUhhc2gsIG5ld09iamVjdElkIH0gZnJvbSAnLi9jcnlwdG9VdGlscyc7XG5pbXBvcnQgeyBLZXlQcm9taXNlUXVldWUgfSBmcm9tICcuL0tleVByb21pc2VRdWV1ZSc7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuL2xvZ2dlcic7XG5pbXBvcnQgcmVzdCBmcm9tICcuL3Jlc3QnO1xuaW1wb3J0IEF1dGggZnJvbSAnLi9BdXRoJztcblxuY29uc3QgUFVTSF9TVEFUVVNfQ09MTEVDVElPTiA9ICdfUHVzaFN0YXR1cyc7XG5jb25zdCBKT0JfU1RBVFVTX0NPTExFQ1RJT04gPSAnX0pvYlN0YXR1cyc7XG5cbmNvbnN0IHB1c2hQcm9taXNlUXVldWUgPSBuZXcgS2V5UHJvbWlzZVF1ZXVlKCk7XG5jb25zdCBqb2JQcm9taXNlUXVldWUgPSBuZXcgS2V5UHJvbWlzZVF1ZXVlKCk7XG5cbmNvbnN0IGluY3JlbWVudE9wID0gZnVuY3Rpb24gKG9iamVjdCA9IHt9LCBrZXksIGFtb3VudCA9IDEpIHtcbiAgaWYgKCFvYmplY3Rba2V5XSkge1xuICAgIG9iamVjdFtrZXldID0geyBfX29wOiAnSW5jcmVtZW50JywgYW1vdW50OiBhbW91bnQgfTtcbiAgfSBlbHNlIHtcbiAgICBvYmplY3Rba2V5XS5hbW91bnQgKz0gYW1vdW50O1xuICB9XG4gIHJldHVybiBvYmplY3Rba2V5XTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBmbGF0dGVuKGFycmF5KSB7XG4gIHZhciBmbGF0dGVuZWQgPSBbXTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7IGkrKykge1xuICAgIGlmIChBcnJheS5pc0FycmF5KGFycmF5W2ldKSkge1xuICAgICAgZmxhdHRlbmVkID0gZmxhdHRlbmVkLmNvbmNhdChmbGF0dGVuKGFycmF5W2ldKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZsYXR0ZW5lZC5wdXNoKGFycmF5W2ldKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZsYXR0ZW5lZDtcbn1cblxuZnVuY3Rpb24gc3RhdHVzSGFuZGxlcihjbGFzc05hbWUsIGRhdGFiYXNlKSB7XG4gIGZ1bmN0aW9uIGNyZWF0ZShvYmplY3QpIHtcbiAgICByZXR1cm4gZGF0YWJhc2UuY3JlYXRlKGNsYXNzTmFtZSwgb2JqZWN0KS50aGVuKCgpID0+IHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUob2JqZWN0KTtcbiAgICB9KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHVwZGF0ZSh3aGVyZSwgb2JqZWN0KSB7XG4gICAgcmV0dXJuIGpvYlByb21pc2VRdWV1ZS5lbnF1ZXVlKHdoZXJlLm9iamVjdElkLCAoKSA9PiBkYXRhYmFzZS51cGRhdGUoY2xhc3NOYW1lLCB3aGVyZSwgb2JqZWN0KSk7XG4gIH1cblxuICByZXR1cm4gT2JqZWN0LmZyZWV6ZSh7XG4gICAgY3JlYXRlLFxuICAgIHVwZGF0ZSxcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHJlc3RTdGF0dXNIYW5kbGVyKGNsYXNzTmFtZSwgY29uZmlnKSB7XG4gIGNvbnN0IGF1dGggPSBBdXRoLm1hc3Rlcihjb25maWcpO1xuICBmdW5jdGlvbiBjcmVhdGUob2JqZWN0KSB7XG4gICAgcmV0dXJuIHJlc3QuY3JlYXRlKGNvbmZpZywgYXV0aCwgY2xhc3NOYW1lLCBvYmplY3QpLnRoZW4oKHsgcmVzcG9uc2UgfSkgPT4ge1xuICAgICAgcmV0dXJuIHsgLi4ub2JqZWN0LCAuLi5yZXNwb25zZSB9O1xuICAgIH0pO1xuICB9XG5cbiAgZnVuY3Rpb24gdXBkYXRlKHdoZXJlLCBvYmplY3QpIHtcbiAgICByZXR1cm4gcHVzaFByb21pc2VRdWV1ZS5lbnF1ZXVlKHdoZXJlLm9iamVjdElkLCAoKSA9PlxuICAgICAgcmVzdFxuICAgICAgICAudXBkYXRlKGNvbmZpZywgYXV0aCwgY2xhc3NOYW1lLCB7IG9iamVjdElkOiB3aGVyZS5vYmplY3RJZCB9LCBvYmplY3QpXG4gICAgICAgIC50aGVuKCh7IHJlc3BvbnNlIH0pID0+IHtcbiAgICAgICAgICByZXR1cm4geyAuLi5vYmplY3QsIC4uLnJlc3BvbnNlIH07XG4gICAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBPYmplY3QuZnJlZXplKHtcbiAgICBjcmVhdGUsXG4gICAgdXBkYXRlLFxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGpvYlN0YXR1c0hhbmRsZXIoY29uZmlnKSB7XG4gIGxldCBqb2JTdGF0dXM7XG4gIGNvbnN0IG9iamVjdElkID0gbmV3T2JqZWN0SWQoY29uZmlnLm9iamVjdElkU2l6ZSk7XG4gIGNvbnN0IGRhdGFiYXNlID0gY29uZmlnLmRhdGFiYXNlO1xuICBjb25zdCBoYW5kbGVyID0gc3RhdHVzSGFuZGxlcihKT0JfU1RBVFVTX0NPTExFQ1RJT04sIGRhdGFiYXNlKTtcbiAgY29uc3Qgc2V0UnVubmluZyA9IGZ1bmN0aW9uIChqb2JOYW1lLCBwYXJhbXMpIHtcbiAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICAgIGpvYlN0YXR1cyA9IHtcbiAgICAgIG9iamVjdElkLFxuICAgICAgam9iTmFtZSxcbiAgICAgIHBhcmFtcyxcbiAgICAgIHN0YXR1czogJ3J1bm5pbmcnLFxuICAgICAgc291cmNlOiAnYXBpJyxcbiAgICAgIGNyZWF0ZWRBdDogbm93LFxuICAgICAgLy8gbG9ja2Rvd24hXG4gICAgICBBQ0w6IHt9LFxuICAgIH07XG5cbiAgICByZXR1cm4gaGFuZGxlci5jcmVhdGUoam9iU3RhdHVzKTtcbiAgfTtcblxuICBjb25zdCBzZXRNZXNzYWdlID0gZnVuY3Rpb24gKG1lc3NhZ2UpIHtcbiAgICBpZiAoIW1lc3NhZ2UgfHwgdHlwZW9mIG1lc3NhZ2UgIT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgfVxuICAgIHJldHVybiBoYW5kbGVyLnVwZGF0ZSh7IG9iamVjdElkIH0sIHsgbWVzc2FnZSB9KTtcbiAgfTtcblxuICBjb25zdCBzZXRTdWNjZWVkZWQgPSBmdW5jdGlvbiAobWVzc2FnZSkge1xuICAgIHJldHVybiBzZXRGaW5hbFN0YXR1cygnc3VjY2VlZGVkJywgbWVzc2FnZSk7XG4gIH07XG5cbiAgY29uc3Qgc2V0RmFpbGVkID0gZnVuY3Rpb24gKG1lc3NhZ2UpIHtcbiAgICByZXR1cm4gc2V0RmluYWxTdGF0dXMoJ2ZhaWxlZCcsIG1lc3NhZ2UpO1xuICB9O1xuXG4gIGNvbnN0IHNldEZpbmFsU3RhdHVzID0gZnVuY3Rpb24gKHN0YXR1cywgbWVzc2FnZSA9IHVuZGVmaW5lZCkge1xuICAgIGNvbnN0IGZpbmlzaGVkQXQgPSBuZXcgRGF0ZSgpO1xuICAgIGNvbnN0IHVwZGF0ZSA9IHsgc3RhdHVzLCBmaW5pc2hlZEF0IH07XG4gICAgaWYgKG1lc3NhZ2UgJiYgdHlwZW9mIG1lc3NhZ2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICB1cGRhdGUubWVzc2FnZSA9IG1lc3NhZ2U7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlIGluc3RhbmNlb2YgRXJyb3IgJiYgdHlwZW9mIG1lc3NhZ2UubWVzc2FnZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHVwZGF0ZS5tZXNzYWdlID0gbWVzc2FnZS5tZXNzYWdlO1xuICAgIH1cbiAgICByZXR1cm4gaGFuZGxlci51cGRhdGUoeyBvYmplY3RJZCB9LCB1cGRhdGUpO1xuICB9O1xuXG4gIHJldHVybiBPYmplY3QuZnJlZXplKHtcbiAgICBzZXRSdW5uaW5nLFxuICAgIHNldFN1Y2NlZWRlZCxcbiAgICBzZXRNZXNzYWdlLFxuICAgIHNldEZhaWxlZCxcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwdXNoU3RhdHVzSGFuZGxlcihjb25maWcsIGV4aXN0aW5nT2JqZWN0SWQpIHtcbiAgbGV0IHB1c2hTdGF0dXM7XG4gIGNvbnN0IGRhdGFiYXNlID0gY29uZmlnLmRhdGFiYXNlO1xuICBjb25zdCBoYW5kbGVyID0gcmVzdFN0YXR1c0hhbmRsZXIoUFVTSF9TVEFUVVNfQ09MTEVDVElPTiwgY29uZmlnKTtcbiAgbGV0IG9iamVjdElkID0gZXhpc3RpbmdPYmplY3RJZDtcbiAgY29uc3Qgc2V0SW5pdGlhbCA9IGZ1bmN0aW9uIChib2R5ID0ge30sIHdoZXJlLCBvcHRpb25zID0geyBzb3VyY2U6ICdyZXN0JyB9KSB7XG4gICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgICBsZXQgcHVzaFRpbWUgPSBub3cudG9JU09TdHJpbmcoKTtcbiAgICBsZXQgc3RhdHVzID0gJ3BlbmRpbmcnO1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYm9keSwgJ3B1c2hfdGltZScpKSB7XG4gICAgICBpZiAoY29uZmlnLmhhc1B1c2hTY2hlZHVsZWRTdXBwb3J0KSB7XG4gICAgICAgIHB1c2hUaW1lID0gYm9keS5wdXNoX3RpbWU7XG4gICAgICAgIHN0YXR1cyA9ICdzY2hlZHVsZWQnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbG9nZ2VyLndhcm4oJ1RyeWluZyB0byBzY2hlZHVsZSBhIHB1c2ggd2hpbGUgc2VydmVyIGlzIG5vdCBjb25maWd1cmVkLicpO1xuICAgICAgICBsb2dnZXIud2FybignUHVzaCB3aWxsIGJlIHNlbnQgaW1tZWRpYXRlbHknKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBkYXRhID0gYm9keS5kYXRhIHx8IHt9O1xuICAgIGNvbnN0IHBheWxvYWRTdHJpbmcgPSBKU09OLnN0cmluZ2lmeShkYXRhKTtcbiAgICBsZXQgcHVzaEhhc2g7XG4gICAgaWYgKHR5cGVvZiBkYXRhLmFsZXJ0ID09PSAnc3RyaW5nJykge1xuICAgICAgcHVzaEhhc2ggPSBtZDVIYXNoKGRhdGEuYWxlcnQpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGRhdGEuYWxlcnQgPT09ICdvYmplY3QnKSB7XG4gICAgICBwdXNoSGFzaCA9IG1kNUhhc2goSlNPTi5zdHJpbmdpZnkoZGF0YS5hbGVydCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBwdXNoSGFzaCA9ICdkNDFkOGNkOThmMDBiMjA0ZTk4MDA5OThlY2Y4NDI3ZSc7XG4gICAgfVxuICAgIGNvbnN0IG9iamVjdCA9IHtcbiAgICAgIHB1c2hUaW1lLFxuICAgICAgcXVlcnk6IEpTT04uc3RyaW5naWZ5KHdoZXJlKSxcbiAgICAgIHBheWxvYWQ6IHBheWxvYWRTdHJpbmcsXG4gICAgICBzb3VyY2U6IG9wdGlvbnMuc291cmNlLFxuICAgICAgdGl0bGU6IG9wdGlvbnMudGl0bGUsXG4gICAgICBleHBpcnk6IGJvZHkuZXhwaXJhdGlvbl90aW1lLFxuICAgICAgZXhwaXJhdGlvbl9pbnRlcnZhbDogYm9keS5leHBpcmF0aW9uX2ludGVydmFsLFxuICAgICAgc3RhdHVzOiBzdGF0dXMsXG4gICAgICBudW1TZW50OiAwLFxuICAgICAgcHVzaEhhc2gsXG4gICAgICAvLyBsb2NrZG93biFcbiAgICAgIEFDTDoge30sXG4gICAgfTtcbiAgICByZXR1cm4gaGFuZGxlci5jcmVhdGUob2JqZWN0KS50aGVuKHJlc3VsdCA9PiB7XG4gICAgICBvYmplY3RJZCA9IHJlc3VsdC5vYmplY3RJZDtcbiAgICAgIHB1c2hTdGF0dXMgPSB7XG4gICAgICAgIG9iamVjdElkLFxuICAgICAgfTtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUocHVzaFN0YXR1cyk7XG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3Qgc2V0UnVubmluZyA9IGZ1bmN0aW9uIChiYXRjaGVzKSB7XG4gICAgbG9nZ2VyLnZlcmJvc2UoXG4gICAgICBgX1B1c2hTdGF0dXMgJHtvYmplY3RJZH06IHNlbmRpbmcgcHVzaCB0byBpbnN0YWxsYXRpb25zIHdpdGggJWQgYmF0Y2hlc2AsXG4gICAgICBiYXRjaGVzXG4gICAgKTtcbiAgICByZXR1cm4gaGFuZGxlci51cGRhdGUoXG4gICAgICB7XG4gICAgICAgIHN0YXR1czogJ3BlbmRpbmcnLFxuICAgICAgICBvYmplY3RJZDogb2JqZWN0SWQsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBzdGF0dXM6ICdydW5uaW5nJyxcbiAgICAgICAgY291bnQ6IGJhdGNoZXMsXG4gICAgICB9XG4gICAgKTtcbiAgfTtcblxuICBjb25zdCB0cmFja1NlbnQgPSBmdW5jdGlvbiAoXG4gICAgcmVzdWx0cyxcbiAgICBVVENPZmZzZXQsXG4gICAgY2xlYW51cEluc3RhbGxhdGlvbnMgPSBwcm9jZXNzLmVudi5QQVJTRV9TRVJWRVJfQ0xFQU5VUF9JTlZBTElEX0lOU1RBTExBVElPTlNcbiAgKSB7XG4gICAgY29uc3QgdXBkYXRlID0ge1xuICAgICAgbnVtU2VudDogMCxcbiAgICAgIG51bUZhaWxlZDogMCxcbiAgICB9O1xuICAgIGNvbnN0IGRldmljZXNUb1JlbW92ZSA9IFtdO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHJlc3VsdHMpKSB7XG4gICAgICByZXN1bHRzID0gZmxhdHRlbihyZXN1bHRzKTtcbiAgICAgIHJlc3VsdHMucmVkdWNlKChtZW1vLCByZXN1bHQpID0+IHtcbiAgICAgICAgLy8gQ2Fubm90IGhhbmRsZSB0aGF0XG4gICAgICAgIGlmICghcmVzdWx0IHx8ICFyZXN1bHQuZGV2aWNlIHx8ICFyZXN1bHQuZGV2aWNlLmRldmljZVR5cGUpIHtcbiAgICAgICAgICByZXR1cm4gbWVtbztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkZXZpY2VUeXBlID0gcmVzdWx0LmRldmljZS5kZXZpY2VUeXBlO1xuICAgICAgICBjb25zdCBrZXkgPSByZXN1bHQudHJhbnNtaXR0ZWRcbiAgICAgICAgICA/IGBzZW50UGVyVHlwZS4ke2RldmljZVR5cGV9YFxuICAgICAgICAgIDogYGZhaWxlZFBlclR5cGUuJHtkZXZpY2VUeXBlfWA7XG4gICAgICAgIG1lbW9ba2V5XSA9IGluY3JlbWVudE9wKG1lbW8sIGtleSk7XG4gICAgICAgIGlmICh0eXBlb2YgVVRDT2Zmc2V0ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgIGNvbnN0IG9mZnNldEtleSA9IHJlc3VsdC50cmFuc21pdHRlZFxuICAgICAgICAgICAgPyBgc2VudFBlclVUQ09mZnNldC4ke1VUQ09mZnNldH1gXG4gICAgICAgICAgICA6IGBmYWlsZWRQZXJVVENPZmZzZXQuJHtVVENPZmZzZXR9YDtcbiAgICAgICAgICBtZW1vW29mZnNldEtleV0gPSBpbmNyZW1lbnRPcChtZW1vLCBvZmZzZXRLZXkpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZXN1bHQudHJhbnNtaXR0ZWQpIHtcbiAgICAgICAgICBtZW1vLm51bVNlbnQrKztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICByZXN1bHQgJiZcbiAgICAgICAgICAgIHJlc3VsdC5yZXNwb25zZSAmJlxuICAgICAgICAgICAgcmVzdWx0LnJlc3BvbnNlLmVycm9yICYmXG4gICAgICAgICAgICByZXN1bHQuZGV2aWNlICYmXG4gICAgICAgICAgICByZXN1bHQuZGV2aWNlLmRldmljZVRva2VuXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCB0b2tlbiA9IHJlc3VsdC5kZXZpY2UuZGV2aWNlVG9rZW47XG4gICAgICAgICAgICBjb25zdCBlcnJvciA9IHJlc3VsdC5yZXNwb25zZS5lcnJvcjtcbiAgICAgICAgICAgIC8vIEdDTSBlcnJvcnNcbiAgICAgICAgICAgIGlmIChlcnJvciA9PT0gJ05vdFJlZ2lzdGVyZWQnIHx8IGVycm9yID09PSAnSW52YWxpZFJlZ2lzdHJhdGlvbicpIHtcbiAgICAgICAgICAgICAgZGV2aWNlc1RvUmVtb3ZlLnB1c2godG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gQVBOUyBlcnJvcnNcbiAgICAgICAgICAgIGlmIChlcnJvciA9PT0gJ1VucmVnaXN0ZXJlZCcgfHwgZXJyb3IgPT09ICdCYWREZXZpY2VUb2tlbicpIHtcbiAgICAgICAgICAgICAgZGV2aWNlc1RvUmVtb3ZlLnB1c2godG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBtZW1vLm51bUZhaWxlZCsrO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtZW1vO1xuICAgICAgfSwgdXBkYXRlKTtcbiAgICB9XG5cbiAgICBsb2dnZXIudmVyYm9zZShcbiAgICAgIGBfUHVzaFN0YXR1cyAke29iamVjdElkfTogc2VudCBwdXNoISAlZCBzdWNjZXNzLCAlZCBmYWlsdXJlc2AsXG4gICAgICB1cGRhdGUubnVtU2VudCxcbiAgICAgIHVwZGF0ZS5udW1GYWlsZWRcbiAgICApO1xuICAgIGxvZ2dlci52ZXJib3NlKGBfUHVzaFN0YXR1cyAke29iamVjdElkfTogbmVlZHMgY2xlYW51cGAsIHtcbiAgICAgIGRldmljZXNUb1JlbW92ZSxcbiAgICB9KTtcbiAgICBbJ251bVNlbnQnLCAnbnVtRmFpbGVkJ10uZm9yRWFjaChrZXkgPT4ge1xuICAgICAgaWYgKHVwZGF0ZVtrZXldID4gMCkge1xuICAgICAgICB1cGRhdGVba2V5XSA9IHtcbiAgICAgICAgICBfX29wOiAnSW5jcmVtZW50JyxcbiAgICAgICAgICBhbW91bnQ6IHVwZGF0ZVtrZXldLFxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGVsZXRlIHVwZGF0ZVtrZXldO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKGRldmljZXNUb1JlbW92ZS5sZW5ndGggPiAwICYmIGNsZWFudXBJbnN0YWxsYXRpb25zKSB7XG4gICAgICBsb2dnZXIuaW5mbyhgUmVtb3ZpbmcgZGV2aWNlIHRva2VucyBvbiAke2RldmljZXNUb1JlbW92ZS5sZW5ndGh9IF9JbnN0YWxsYXRpb25zYCk7XG4gICAgICBkYXRhYmFzZS51cGRhdGUoXG4gICAgICAgICdfSW5zdGFsbGF0aW9uJyxcbiAgICAgICAgeyBkZXZpY2VUb2tlbjogeyAkaW46IGRldmljZXNUb1JlbW92ZSB9IH0sXG4gICAgICAgIHsgZGV2aWNlVG9rZW46IHsgX19vcDogJ0RlbGV0ZScgfSB9LFxuICAgICAgICB7XG4gICAgICAgICAgYWNsOiB1bmRlZmluZWQsXG4gICAgICAgICAgbWFueTogdHJ1ZSxcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG4gICAgaW5jcmVtZW50T3AodXBkYXRlLCAnY291bnQnLCAtMSk7XG4gICAgdXBkYXRlLnN0YXR1cyA9ICdydW5uaW5nJztcblxuICAgIHJldHVybiBoYW5kbGVyLnVwZGF0ZSh7IG9iamVjdElkIH0sIHVwZGF0ZSkudGhlbihyZXMgPT4ge1xuICAgICAgaWYgKHJlcyAmJiByZXMuY291bnQgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcGxldGUoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCBjb21wbGV0ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gaGFuZGxlci51cGRhdGUoXG4gICAgICB7IG9iamVjdElkIH0sXG4gICAgICB7XG4gICAgICAgIHN0YXR1czogJ3N1Y2NlZWRlZCcsXG4gICAgICAgIGNvdW50OiB7IF9fb3A6ICdEZWxldGUnIH0sXG4gICAgICB9XG4gICAgKTtcbiAgfTtcblxuICBjb25zdCBmYWlsID0gZnVuY3Rpb24gKGVycikge1xuICAgIGlmICh0eXBlb2YgZXJyID09PSAnc3RyaW5nJykge1xuICAgICAgZXJyID0geyBtZXNzYWdlOiBlcnIgfTtcbiAgICB9XG4gICAgY29uc3QgdXBkYXRlID0ge1xuICAgICAgZXJyb3JNZXNzYWdlOiBlcnIsXG4gICAgICBzdGF0dXM6ICdmYWlsZWQnLFxuICAgIH07XG4gICAgcmV0dXJuIGhhbmRsZXIudXBkYXRlKHsgb2JqZWN0SWQgfSwgdXBkYXRlKTtcbiAgfTtcblxuICBjb25zdCBydmFsID0ge1xuICAgIHNldEluaXRpYWwsXG4gICAgc2V0UnVubmluZyxcbiAgICB0cmFja1NlbnQsXG4gICAgY29tcGxldGUsXG4gICAgZmFpbCxcbiAgfTtcblxuICAvLyBkZWZpbmUgb2JqZWN0SWQgdG8gYmUgZHluYW1pY1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkocnZhbCwgJ29iamVjdElkJywge1xuICAgIGdldDogKCkgPT4gb2JqZWN0SWQsXG4gIH0pO1xuXG4gIHJldHVybiBPYmplY3QuZnJlZXplKHJ2YWwpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLFlBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLGdCQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxPQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxLQUFBLEdBQUFDLHNCQUFBLENBQUFKLE9BQUE7QUFDQSxJQUFBSyxLQUFBLEdBQUFELHNCQUFBLENBQUFKLE9BQUE7QUFBMEIsU0FBQUksdUJBQUFFLEdBQUEsV0FBQUEsR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsR0FBQUQsR0FBQSxLQUFBRSxPQUFBLEVBQUFGLEdBQUE7QUFBQSxTQUFBRyxRQUFBQyxNQUFBLEVBQUFDLGNBQUEsUUFBQUMsSUFBQSxHQUFBQyxNQUFBLENBQUFELElBQUEsQ0FBQUYsTUFBQSxPQUFBRyxNQUFBLENBQUFDLHFCQUFBLFFBQUFDLE9BQUEsR0FBQUYsTUFBQSxDQUFBQyxxQkFBQSxDQUFBSixNQUFBLEdBQUFDLGNBQUEsS0FBQUksT0FBQSxHQUFBQSxPQUFBLENBQUFDLE1BQUEsV0FBQUMsR0FBQSxXQUFBSixNQUFBLENBQUFLLHdCQUFBLENBQUFSLE1BQUEsRUFBQU8sR0FBQSxFQUFBRSxVQUFBLE9BQUFQLElBQUEsQ0FBQVEsSUFBQSxDQUFBQyxLQUFBLENBQUFULElBQUEsRUFBQUcsT0FBQSxZQUFBSCxJQUFBO0FBQUEsU0FBQVUsY0FBQUMsTUFBQSxhQUFBQyxDQUFBLE1BQUFBLENBQUEsR0FBQUMsU0FBQSxDQUFBQyxNQUFBLEVBQUFGLENBQUEsVUFBQUcsTUFBQSxXQUFBRixTQUFBLENBQUFE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
|