@magic-xpa/engine 4.801.0-dev481.244 → 4.801.0-dev481.245

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/esm2015/index.js CHANGED
@@ -91,6 +91,7 @@ export * from "./src/env/Environment";
91
91
  export * from "./src/env/EnvVariablesTable";
92
92
  export * from "./src/env/ILanguageData";
93
93
  export * from "./src/env/LanguageData";
94
+ export * from "./src/env/MirrorString";
94
95
  export * from "./src/event/ActionManager";
95
96
  export * from "./src/event/Event";
96
97
  export * from "./src/event/EventHandler";
@@ -179,10 +180,11 @@ export * from "./src/util/IServerConfig";
179
180
  export * from "./src/util/MgBlockingQueue";
180
181
  export * from "./src/util/MgPriorityBlockingQueue";
181
182
  export * from "./src/util/MgPriorityQueue";
183
+ export * from "./src/util/ParamParseResult";
182
184
  export * from "./src/util/PrmMap";
183
185
  export * from "./src/util/Process";
184
186
  export * from "./src/util/ReturnResult";
185
187
  export * from "./src/util/ReturnResultBase";
186
188
  export * from "./src/util/Scrambler";
187
189
  export * from "./src/util/UniqueIDUtils";
188
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsNERBQTRELENBQUM7QUFDM0UsY0FBYywyREFBMkQsQ0FBQztBQUMxRSxjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLGlFQUFpRSxDQUFDO0FBQ2hGLGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyw4REFBOEQsQ0FBQztBQUM3RSxjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLGNBQWMsMERBQTBELENBQUM7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Yyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9zcmMvQWNjZXNzSGVscGVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvQ2xpZW50TWFuYWdlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL0NvbW1hbmRzUHJvY2Vzc29yQmFzZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL0NvbW1hbmRzUHJvY2Vzc29yTWFuYWdlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL0NvbW1hbmRzVGFibGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9Db25zdEludGVyZmFjZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL0N1cnJlbnRDbGllbnRWZXJzaW9uXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvZW51bXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9GbG93TW9uaXRvckludGVyZmFjZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL0dsb2JhbENvbW1hbmRzTWFuYWdlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL0d1aUV2ZW50c1Byb2Nlc3NvclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL0dVSU1hbmFnZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9JQ29tbWFuZHNUYWJsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL1NlcnZlckNvbmZpZ1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2JyaWRnZS9JR3VpRXZlbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9icmlkZ2UvTWFnaWNCcmlkZ2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9jb21tYW5kcy9DbGllbnRPcmlnaW5hdGVkQ29tbWFuZFRhc2tUYWdcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9jb21tYW5kcy9EYXRhVmlld0NvbW1hbmRCYXNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvY29tbWFuZHMvSUNsaWVudENvbW1hbmRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9jb21tYW5kcy9JQ2xpZW50VGFyZ2V0ZWRDb21tYW5kXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvY29tbWFuZHMvSUNsaWVudFRvU2VydmVyQ29tbWFuZEluZm9cIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9jb21tYW5kcy9DbGllbnRUb1NlcnZlci9BZGRVc2VyTG9jYXRlRGF0YVZpZXdDb21tYW5kXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvY29tbWFuZHMvQ2xpZW50VG9TZXJ2ZXIvQWRkVXNlclJhbmdlRGF0YXZpZXdDb21tYW5kXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvY29tbWFuZHMvQ2xpZW50VG9TZXJ2ZXIvQWRkVXNlclNvcnREYXRhVmlld0NvbW1hbmRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9jb21tYW5kcy9DbGllbnRUb1NlcnZlci9Ccm93c2VyRXNjRXZlbnRDb21tYW5kXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvY29tbWFuZHMvQ2xpZW50VG9TZXJ2ZXIvQ2xpZW50T3JpZ2luYXRlZENvbW1hbmRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9jb21tYW5kcy9DbGllbnRUb1NlcnZlci9DbGllbnRPcmlnaW5hdGVkQ29tbWFuZFNlcmlhbGl6ZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9jb21tYW5kcy9DbGllbnRUb1NlcnZlci9Db2x1bW5Tb3J0RXZlbnRDb21tYW5kXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvY29tbWFuZHMvQ2xpZW50VG9TZXJ2ZXIvQ29tbWFuZEZhY3RvcnlcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9jb21tYW5kcy9DbGllbnRUb1NlcnZlci9Db21tYW5kU2VyaWFsaXphdGlvbkhlbHBlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2NvbW1hbmRzL0NsaWVudFRvU2VydmVyL0NvbXB1dGVFdmVudENvbW1hbmRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9jb21tYW5kcy9DbGllbnRUb1NlcnZlci9Db250ZXh0VGVybWluYXRpb25FdmVudENvbW1hbmRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9jb21tYW5kcy9DbGllbnRUb1NlcnZlci9Db250ZXh0VGltZW91dFJlc2V0Q29tbWFuZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2NvbW1hbmRzL0NsaWVudFRvU2VydmVyL0NvbnRyb2xJdGVtc1JlZnJlc2hDb21tYW5kXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvY29tbWFuZHMvQ2xpZW50VG9TZXJ2ZXIvRGF0YXZpZXdDb21tYW5kXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvY29tbWFuZHMvQ2xpZW50VG9TZXJ2ZXIvRGF0YVZpZXdPdXRwdXRDb21tYW5kXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvY29tbWFuZHMvQ2xpZW50VG9TZXJ2ZXIvRXZhbHVhdGVDb21tYW5kXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvY29tbWFuZHMvQ2xpZW50VG9TZXJ2ZXIvRXZlbnRDb21tYW5kXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvY29tbWFuZHMvQ2xpZW50VG9TZXJ2ZXIvRXhlY09wZXJDb21tYW5kXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvY29tbWFuZHMvQ2xpZW50VG9TZXJ2ZXIvRmV0Y2hEYXRhQ29udHJvbFZhbHVlc0V2ZW50Q29tbWFuZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2NvbW1hbmRzL0NsaWVudFRvU2VydmVyL0dsb2JhbFBhcmFtc1F1ZXJ5Q29tbWFuZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2NvbW1hbmRzL0NsaWVudFRvU2VydmVyL0lDb21tYW5kVGFza1RhZ1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2NvbW1hbmRzL0NsaWVudFRvU2VydmVyL0luZGV4Q2hhbmdlRXZlbnRDb21tYW5kXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvY29tbWFuZHMvQ2xpZW50VG9TZXJ2ZXIvSW5pcHV0Rm9yY2VXcml0ZUNvbW1hbmRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9jb21tYW5kcy9DbGllbnRUb1NlcnZlci9Ob25SZXZlcnNpYmxlRXhpdEV2ZW50Q29tbWFuZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2NvbW1hbmRzL0NsaWVudFRvU2VydmVyL1F1ZXJ5Q29tbWFuZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2NvbW1hbmRzL0NsaWVudFRvU2VydmVyL1JlY29tcHV0ZUNvbW1hbmRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9jb21tYW5kcy9DbGllbnRUb1NlcnZlci9SZWZyZXNoRXZlbnRDb21tYW5kXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvY29tbWFuZHMvQ2xpZW50VG9TZXJ2ZXIvUmVmcmVzaFNjcmVlbkV2ZW50Q29tbWFuZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2NvbW1hbmRzL0NsaWVudFRvU2VydmVyL1JvbGxiYWNrRXZlbnRDb21tYW5kXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvY29tbWFuZHMvQ2xpZW50VG9TZXJ2ZXIvU2VsZWN0UHJvZ3JhbUNvbW1hbmRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9jb21tYW5kcy9DbGllbnRUb1NlcnZlci9TZXRUcmFuc2FjdGlvblN0YXRlRGF0YXZpZXdDb21tYW5kXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvY29tbWFuZHMvQ2xpZW50VG9TZXJ2ZXIvU3ViZm9ybU9wZW5FdmVudENvbW1hbmRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9jb21tYW5kcy9DbGllbnRUb1NlcnZlci9TdWJmb3JtUmVmcmVzaEV2ZW50Q29tbWFuZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2NvbW1hbmRzL0NsaWVudFRvU2VydmVyL1RyYW5zYWN0aW9uQ29tbWFuZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2NvbW1hbmRzL0NsaWVudFRvU2VydmVyL1VubG9hZENvbW1hbmRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9jb21tYW5kcy9DbGllbnRUb1NlcnZlci9Xcml0ZU1lc3NhZ2VUb1NlcnZlckxvZ0NvbW1hbmRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9jb21tYW5kcy9TZXJ2ZXJUb0NsaWVudC9BYm9ydENvbW1hbmRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9jb21tYW5kcy9TZXJ2ZXJUb0NsaWVudC9BZGRMb2NhdGVDb21tYW5kXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvY29tbWFuZHMvU2VydmVyVG9DbGllbnQvQWRkUmFuZ2VDb21tYW5kXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvY29tbWFuZHMvU2VydmVyVG9DbGllbnQvQWRkU29ydENvbW1hbmRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9jb21tYW5kcy9TZXJ2ZXJUb0NsaWVudC9DbGllbnRSZWZyZXNoQ29tbWFuZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2NvbW1hbmRzL1NlcnZlclRvQ2xpZW50L0NsaWVudFRhcmdldGVkQ29tbWFuZEJhc2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9jb21tYW5kcy9TZXJ2ZXJUb0NsaWVudC9FbmhhbmNlZFZlcmlmeUNvbW1hbmRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9jb21tYW5kcy9TZXJ2ZXJUb0NsaWVudC9PcGVuVVJMQ29tbWFuZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2NvbW1hbmRzL1NlcnZlclRvQ2xpZW50L1Jlc2V0TG9jYXRlQ29tbWFuZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2NvbW1hbmRzL1NlcnZlclRvQ2xpZW50L1Jlc2V0UmFuZ2VDb21tYW5kXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvY29tbWFuZHMvU2VydmVyVG9DbGllbnQvUmVzZXRTb3J0Q29tbWFuZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2NvbW1hbmRzL1NlcnZlclRvQ2xpZW50L1Jlc3VsdENvbW1hbmRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9jb21tYW5kcy9TZXJ2ZXJUb0NsaWVudC9WZXJpZnlDb21tYW5kXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvY29tbWFuZHMvU2VydmVyVG9DbGllbnQvWE1MQmFzZWRDb21tYW5kQnVpbGRlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2NvbW11bmljYXRpb25zL0lDb25uZWN0aW9uU3RhdGVNYW5hZ2VyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvY29tbXVuaWNhdGlvbnMvSW50ZXJhY3RpdmVDb21tdW5pY2F0aW9uc0ZhaWx1cmVIYW5kbGVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvZGF0YS9EYXRhU291cmNlSWRLZXlcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9kYXRhL0RhdGFWaWV3XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvZGF0YS9EYXRhVmlld0Jhc2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9kYXRhL0RhdGF2aWV3TWFuYWdlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2RhdGEvRGF0YXZpZXdNYW5hZ2VyQmFzZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2RhdGEvRHZDYWNoZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2RhdGEvRmllbGRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9kYXRhL0ZpZWxkQmFzZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2RhdGEvRmllbGRzVGFibGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9kYXRhL0lSZWNvcmRzVGFibGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9kYXRhL0tleVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2RhdGEvUmVjb3JkXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvZGF0YS9SZWNvcmRPdXRPZkRhdGFWaWV3RXhjZXB0aW9uXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvZGF0YS9SZWNvcmRzVGFibGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9kYXRhL1Rhc2tUcmFuc2FjdGlvbk1hbmFnZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9kYXRhL1hNTEJhc2VkRGNWYWx1ZXNCdWlsZGVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvZW52L0Vudmlyb25tZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvZW52L0VudlZhcmlhYmxlc1RhYmxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvZW52L0lMYW5ndWFnZURhdGFcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9lbnYvTGFuZ3VhZ2VEYXRhXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvZXZlbnQvQWN0aW9uTWFuYWdlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2V2ZW50L0V2ZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvZXZlbnQvRXZlbnRIYW5kbGVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvZXZlbnQvRXZlbnRIYW5kbGVyUG9zaXRpb25cIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9ldmVudC9FdmVudHNNYW5hZ2VyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvZXZlbnQvSUV2ZW50c01hbmFnZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9ldmVudC9SdW5UaW1lRXZlbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9ldmVudC9SdW5UaW1lRXZlbnRCYXNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvZXZlbnQvVXNlckV2ZW50c1RhYmxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvZXhwL0V4cHJlc3Npb25cIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9leHAvRXhwcmVzc2lvbkRpY3RcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9leHAvRXhwcmVzc2lvbkV2YWx1YXRvclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2V4cC9FeHByZXNzaW9uTG9jYWxKcG5cIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9leHAvRXhwVGFibGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9leHAvR2xvYmFsUGFyYW1zVGFibGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9leHAvWWVzTm9FeHBcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9ndWkvQ3JlYXRlZEZvcm1WZWN0b3JcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9ndWkvRm9ybXNUYWJsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2d1aS9NZ0NvbnRyb2xcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9ndWkvTWdGb3JtXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvaHR0cC9IdHRwTWFuYWdlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2h0dHAvY2xpZW50L0h0dHBDbGllbnRBc3luY1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2h0dHAvY2xpZW50L0h0dHBDbGllbnRCYXNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvaHR0cC9jbGllbnQvSHR0cENsaWVudEV2ZW50c1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2h0dHAvY2xpZW50L0h0dHBDbGllbnRTeW5jXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvaHR0cC9jbGllbnQvSHR0cFV0aWxpdHlcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9odHRwL2NsaWVudC9JQ29tbXVuaWNhdGlvbnNGYWlsdXJlSGFuZGxlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL3JlbW90ZS9BZGRVc2VyTG9jYXRlUmVtb3RlRGF0YVZpZXdDb21tYW5kXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvcmVtb3RlL0FkZFVzZXJSYW5nZVJlbW90ZURhdGFWaWV3Q29tbWFuZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL3JlbW90ZS9BZGRVc2VyU29ydFJlbW90ZURhdGFWaWV3Q29tbWFuZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL3JlbW90ZS9SZW1vdGVDb21tYW5kc1Byb2Nlc3NvclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL3JlbW90ZS9SZW1vdGVDb250cm9sSXRlbXNSZWZyZXNoQ29tbWFuZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL3JlbW90ZS9SZW1vdGVEYXRhVmlld0NvbW1hbmRCYXNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvcmVtb3RlL1JlbW90ZURhdGFWaWV3Q29tbWFuZEZhY3RvcnlcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9yZW1vdGUvUmVtb3RlRGF0YVZpZXdDb21tYW5kVXBkYXRlTm9uTW9kaWZpYWJsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL3JlbW90ZS9SZW1vdGVEYXRhdmlld01hbmFnZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9yZW1vdGUvUmVtb3RlSW5pdERhdGFWaWV3Q29tbWFuZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL3JlbW90ZS9SZXNldFVzZXJMb2NhdGVSZW1vdGVEYXRhdmlld0NvbW1hbmRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9yZW1vdGUvUmVzZXRVc2VyUmFuZ2VSZW1vdGVEYXRhdmlld0NvbW1hbmRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9yZW1vdGUvUmVzZXRVc2VyU29ydFJlbW90ZURhdGF2aWV3Q29tbWFuZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL3JlbW90ZS9TZXJ2ZXJFcnJvclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL3JlbW90ZS9TZXRUcmFuc2FjdGlvblN0YXRlUmVtb3RlRGF0YVZpZXdDb21tYW5kXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvcnQvQXJndW1lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9ydC9Bcmd1bWVudHNMaXN0XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvcnQvQm91bmRhcnlcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9ydC9Db21wTWFpblByZ1RhYmxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvcnQvRGF0YXZpZXdIZWFkZXJCYXNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvcnQvRGF0YXZpZXdIZWFkZXJGYWN0b3J5XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvcnQvRGF0YXZpZXdIZWFkZXJzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvcnQvRGF0YXZpZXdIZWFkZXJzU2F4SGFuZGxlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL3J0L0V4ZWN1dGlvblN0YWNrXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvcnQvRXhlY3V0aW9uU3RhY2tFbnRyeVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL3J0L0hhbmRsZXJzVGFibGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9ydC9JRGF0YVNvdXJjZVZpZXdEZWZpbml0aW9uXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvcnQvSURhdGF2aWV3SGVhZGVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvcnQvSVJlc3VsdFZhbHVlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvcnQvTGFzdEZvY3VzZWRNYW5hZ2VyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvcnQvT3BlcmF0aW9uXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvcnQvT3BlcmF0aW9uVGFibGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9ydC9SZWNvbXB1dGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9ydC9SZWNvbXB1dGVUYWJsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL3J0L1JlbW90ZURhdGF2aWV3SGVhZGVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvcnQvUmVzdWx0VmFsdWVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9ydC9UYWJsZUNhY2hlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvcnQvVGFibGVDYWNoZU1hbmFnZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9ydC9UcmFuc2FjdGlvblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL3NlY3VyaXR5L1VzZXJEZXRhaWxzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvdGFza3MvSU1HRGF0YUNvbGxlY3Rpb25cIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy90YXNrcy9NZW51c0Rlc2VyaWFsaXplclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL3Rhc2tzL01HRGF0YVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL3Rhc2tzL01HRGF0YUNvbGxlY3Rpb25cIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy90YXNrcy9SQ1RpbWVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvdGFza3MvUmVtb3RlVGFza1NlcnZpY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy90YXNrcy9UYXNrXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvdGFza3MvVGFza0Jhc2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy90YXNrcy9UYXNrU2VydmljZUJhc2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy90YXNrcy9UYXNrc1RhYmxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvdGFza3Mvc29ydC9Tb3J0XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvdGFza3Mvc29ydC9Tb3J0Q29sbGVjdGlvblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL3V0aWwvQ29uc3RVdGlsc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL3V0aWwvY29va2llLnNlcnZpY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy91dGlsL0Zsb3dNb25pdG9yUXVldWVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy91dGlsL0hlYXBTb3J0XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvdXRpbC9JTWlycm9yWE1MXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvdXRpbC9JU2VydmVyQ29uZmlnXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvdXRpbC9NZ0Jsb2NraW5nUXVldWVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy91dGlsL01nUHJpb3JpdHlCbG9ja2luZ1F1ZXVlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvdXRpbC9NZ1ByaW9yaXR5UXVldWVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy91dGlsL1BybU1hcFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL3V0aWwvUHJvY2Vzc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL3V0aWwvUmV0dXJuUmVzdWx0XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvdXRpbC9SZXR1cm5SZXN1bHRCYXNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvdXRpbC9TY3JhbWJsZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy91dGlsL1VuaXF1ZUlEVXRpbHNcIjtcbiJdfQ==
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsNERBQTRELENBQUM7QUFDM0UsY0FBYywyREFBMkQsQ0FBQztBQUMxRSxjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLGlFQUFpRSxDQUFDO0FBQ2hGLGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyw4REFBOEQsQ0FBQztBQUM3RSxjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLGNBQWMsMERBQTBELENBQUM7QUFDekUsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLHFEQUFxRCxDQUFDO0FBQ3BFLGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsa0VBQWtFLENBQUM7QUFDakYsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsdURBQXVELENBQUM7QUFDdEUsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLDZEQUE2RCxDQUFDO0FBQzVFLGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMseURBQXlELENBQUM7QUFDeEUsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsa0VBQWtFLENBQUM7QUFDakYsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLDhEQUE4RCxDQUFDO0FBQzdFLGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLHlEQUF5RCxDQUFDO0FBQ3hFLGNBQWMscURBQXFELENBQUM7QUFDcEUsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsOERBQThELENBQUM7QUFDN0UsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHVEQUF1RCxDQUFDO0FBQ3RFLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsdURBQXVELENBQUM7QUFDdEUsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLDBCQUEwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vc3JjL0FjY2Vzc0hlbHBlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL0NsaWVudE1hbmFnZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9Db21tYW5kc1Byb2Nlc3NvckJhc2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9Db21tYW5kc1Byb2Nlc3Nvck1hbmFnZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9Db21tYW5kc1RhYmxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvQ29uc3RJbnRlcmZhY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9DdXJyZW50Q2xpZW50VmVyc2lvblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2VudW1zXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvRmxvd01vbml0b3JJbnRlcmZhY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9HbG9iYWxDb21tYW5kc01hbmFnZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9HdWlFdmVudHNQcm9jZXNzb3JcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9HVUlNYW5hZ2VyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvSUNvbW1hbmRzVGFibGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9TZXJ2ZXJDb25maWdcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9icmlkZ2UvSUd1aUV2ZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvYnJpZGdlL01hZ2ljQnJpZGdlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvY29tbWFuZHMvQ2xpZW50T3JpZ2luYXRlZENvbW1hbmRUYXNrVGFnXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvY29tbWFuZHMvRGF0YVZpZXdDb21tYW5kQmFzZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2NvbW1hbmRzL0lDbGllbnRDb21tYW5kXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvY29tbWFuZHMvSUNsaWVudFRhcmdldGVkQ29tbWFuZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2NvbW1hbmRzL0lDbGllbnRUb1NlcnZlckNvbW1hbmRJbmZvXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvY29tbWFuZHMvQ2xpZW50VG9TZXJ2ZXIvQWRkVXNlckxvY2F0ZURhdGFWaWV3Q29tbWFuZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2NvbW1hbmRzL0NsaWVudFRvU2VydmVyL0FkZFVzZXJSYW5nZURhdGF2aWV3Q29tbWFuZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2NvbW1hbmRzL0NsaWVudFRvU2VydmVyL0FkZFVzZXJTb3J0RGF0YVZpZXdDb21tYW5kXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvY29tbWFuZHMvQ2xpZW50VG9TZXJ2ZXIvQnJvd3NlckVzY0V2ZW50Q29tbWFuZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2NvbW1hbmRzL0NsaWVudFRvU2VydmVyL0NsaWVudE9yaWdpbmF0ZWRDb21tYW5kXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvY29tbWFuZHMvQ2xpZW50VG9TZXJ2ZXIvQ2xpZW50T3JpZ2luYXRlZENvbW1hbmRTZXJpYWxpemVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvY29tbWFuZHMvQ2xpZW50VG9TZXJ2ZXIvQ29sdW1uU29ydEV2ZW50Q29tbWFuZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2NvbW1hbmRzL0NsaWVudFRvU2VydmVyL0NvbW1hbmRGYWN0b3J5XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvY29tbWFuZHMvQ2xpZW50VG9TZXJ2ZXIvQ29tbWFuZFNlcmlhbGl6YXRpb25IZWxwZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9jb21tYW5kcy9DbGllbnRUb1NlcnZlci9Db21wdXRlRXZlbnRDb21tYW5kXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvY29tbWFuZHMvQ2xpZW50VG9TZXJ2ZXIvQ29udGV4dFRlcm1pbmF0aW9uRXZlbnRDb21tYW5kXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvY29tbWFuZHMvQ2xpZW50VG9TZXJ2ZXIvQ29udGV4dFRpbWVvdXRSZXNldENvbW1hbmRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9jb21tYW5kcy9DbGllbnRUb1NlcnZlci9Db250cm9sSXRlbXNSZWZyZXNoQ29tbWFuZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2NvbW1hbmRzL0NsaWVudFRvU2VydmVyL0RhdGF2aWV3Q29tbWFuZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2NvbW1hbmRzL0NsaWVudFRvU2VydmVyL0RhdGFWaWV3T3V0cHV0Q29tbWFuZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2NvbW1hbmRzL0NsaWVudFRvU2VydmVyL0V2YWx1YXRlQ29tbWFuZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2NvbW1hbmRzL0NsaWVudFRvU2VydmVyL0V2ZW50Q29tbWFuZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2NvbW1hbmRzL0NsaWVudFRvU2VydmVyL0V4ZWNPcGVyQ29tbWFuZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2NvbW1hbmRzL0NsaWVudFRvU2VydmVyL0ZldGNoRGF0YUNvbnRyb2xWYWx1ZXNFdmVudENvbW1hbmRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9jb21tYW5kcy9DbGllbnRUb1NlcnZlci9HbG9iYWxQYXJhbXNRdWVyeUNvbW1hbmRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9jb21tYW5kcy9DbGllbnRUb1NlcnZlci9JQ29tbWFuZFRhc2tUYWdcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9jb21tYW5kcy9DbGllbnRUb1NlcnZlci9JbmRleENoYW5nZUV2ZW50Q29tbWFuZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2NvbW1hbmRzL0NsaWVudFRvU2VydmVyL0luaXB1dEZvcmNlV3JpdGVDb21tYW5kXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvY29tbWFuZHMvQ2xpZW50VG9TZXJ2ZXIvTm9uUmV2ZXJzaWJsZUV4aXRFdmVudENvbW1hbmRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9jb21tYW5kcy9DbGllbnRUb1NlcnZlci9RdWVyeUNvbW1hbmRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9jb21tYW5kcy9DbGllbnRUb1NlcnZlci9SZWNvbXB1dGVDb21tYW5kXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvY29tbWFuZHMvQ2xpZW50VG9TZXJ2ZXIvUmVmcmVzaEV2ZW50Q29tbWFuZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2NvbW1hbmRzL0NsaWVudFRvU2VydmVyL1JlZnJlc2hTY3JlZW5FdmVudENvbW1hbmRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9jb21tYW5kcy9DbGllbnRUb1NlcnZlci9Sb2xsYmFja0V2ZW50Q29tbWFuZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2NvbW1hbmRzL0NsaWVudFRvU2VydmVyL1NlbGVjdFByb2dyYW1Db21tYW5kXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvY29tbWFuZHMvQ2xpZW50VG9TZXJ2ZXIvU2V0VHJhbnNhY3Rpb25TdGF0ZURhdGF2aWV3Q29tbWFuZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2NvbW1hbmRzL0NsaWVudFRvU2VydmVyL1N1YmZvcm1PcGVuRXZlbnRDb21tYW5kXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvY29tbWFuZHMvQ2xpZW50VG9TZXJ2ZXIvU3ViZm9ybVJlZnJlc2hFdmVudENvbW1hbmRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9jb21tYW5kcy9DbGllbnRUb1NlcnZlci9UcmFuc2FjdGlvbkNvbW1hbmRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9jb21tYW5kcy9DbGllbnRUb1NlcnZlci9VbmxvYWRDb21tYW5kXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvY29tbWFuZHMvQ2xpZW50VG9TZXJ2ZXIvV3JpdGVNZXNzYWdlVG9TZXJ2ZXJMb2dDb21tYW5kXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvY29tbWFuZHMvU2VydmVyVG9DbGllbnQvQWJvcnRDb21tYW5kXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvY29tbWFuZHMvU2VydmVyVG9DbGllbnQvQWRkTG9jYXRlQ29tbWFuZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2NvbW1hbmRzL1NlcnZlclRvQ2xpZW50L0FkZFJhbmdlQ29tbWFuZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2NvbW1hbmRzL1NlcnZlclRvQ2xpZW50L0FkZFNvcnRDb21tYW5kXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvY29tbWFuZHMvU2VydmVyVG9DbGllbnQvQ2xpZW50UmVmcmVzaENvbW1hbmRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9jb21tYW5kcy9TZXJ2ZXJUb0NsaWVudC9DbGllbnRUYXJnZXRlZENvbW1hbmRCYXNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvY29tbWFuZHMvU2VydmVyVG9DbGllbnQvRW5oYW5jZWRWZXJpZnlDb21tYW5kXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvY29tbWFuZHMvU2VydmVyVG9DbGllbnQvT3BlblVSTENvbW1hbmRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9jb21tYW5kcy9TZXJ2ZXJUb0NsaWVudC9SZXNldExvY2F0ZUNvbW1hbmRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9jb21tYW5kcy9TZXJ2ZXJUb0NsaWVudC9SZXNldFJhbmdlQ29tbWFuZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2NvbW1hbmRzL1NlcnZlclRvQ2xpZW50L1Jlc2V0U29ydENvbW1hbmRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9jb21tYW5kcy9TZXJ2ZXJUb0NsaWVudC9SZXN1bHRDb21tYW5kXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvY29tbWFuZHMvU2VydmVyVG9DbGllbnQvVmVyaWZ5Q29tbWFuZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2NvbW1hbmRzL1NlcnZlclRvQ2xpZW50L1hNTEJhc2VkQ29tbWFuZEJ1aWxkZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9jb21tdW5pY2F0aW9ucy9JQ29ubmVjdGlvblN0YXRlTWFuYWdlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2NvbW11bmljYXRpb25zL0ludGVyYWN0aXZlQ29tbXVuaWNhdGlvbnNGYWlsdXJlSGFuZGxlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2RhdGEvRGF0YVNvdXJjZUlkS2V5XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvZGF0YS9EYXRhVmlld1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2RhdGEvRGF0YVZpZXdCYXNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvZGF0YS9EYXRhdmlld01hbmFnZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9kYXRhL0RhdGF2aWV3TWFuYWdlckJhc2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9kYXRhL0R2Q2FjaGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9kYXRhL0ZpZWxkXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvZGF0YS9GaWVsZEJhc2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9kYXRhL0ZpZWxkc1RhYmxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvZGF0YS9JUmVjb3Jkc1RhYmxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvZGF0YS9LZXlcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9kYXRhL1JlY29yZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2RhdGEvUmVjb3JkT3V0T2ZEYXRhVmlld0V4Y2VwdGlvblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2RhdGEvUmVjb3Jkc1RhYmxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvZGF0YS9UYXNrVHJhbnNhY3Rpb25NYW5hZ2VyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvZGF0YS9YTUxCYXNlZERjVmFsdWVzQnVpbGRlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2Vudi9FbnZpcm9ubWVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2Vudi9FbnZWYXJpYWJsZXNUYWJsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2Vudi9JTGFuZ3VhZ2VEYXRhXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvZW52L0xhbmd1YWdlRGF0YVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2Vudi9NaXJyb3JTdHJpbmdcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9ldmVudC9BY3Rpb25NYW5hZ2VyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvZXZlbnQvRXZlbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9ldmVudC9FdmVudEhhbmRsZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9ldmVudC9FdmVudEhhbmRsZXJQb3NpdGlvblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2V2ZW50L0V2ZW50c01hbmFnZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9ldmVudC9JRXZlbnRzTWFuYWdlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2V2ZW50L1J1blRpbWVFdmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2V2ZW50L1J1blRpbWVFdmVudEJhc2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9ldmVudC9Vc2VyRXZlbnRzVGFibGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9leHAvRXhwcmVzc2lvblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2V4cC9FeHByZXNzaW9uRGljdFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2V4cC9FeHByZXNzaW9uRXZhbHVhdG9yXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvZXhwL0V4cHJlc3Npb25Mb2NhbEpwblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2V4cC9FeHBUYWJsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2V4cC9HbG9iYWxQYXJhbXNUYWJsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2V4cC9ZZXNOb0V4cFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2d1aS9DcmVhdGVkRm9ybVZlY3RvclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2d1aS9Gb3Jtc1RhYmxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvZ3VpL01nQ29udHJvbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2d1aS9NZ0Zvcm1cIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9odHRwL0h0dHBNYW5hZ2VyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvaHR0cC9jbGllbnQvSHR0cENsaWVudEFzeW5jXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvaHR0cC9jbGllbnQvSHR0cENsaWVudEJhc2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9odHRwL2NsaWVudC9IdHRwQ2xpZW50RXZlbnRzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvaHR0cC9jbGllbnQvSHR0cENsaWVudFN5bmNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9odHRwL2NsaWVudC9IdHRwVXRpbGl0eVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL2h0dHAvY2xpZW50L0lDb21tdW5pY2F0aW9uc0ZhaWx1cmVIYW5kbGVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvcmVtb3RlL0FkZFVzZXJMb2NhdGVSZW1vdGVEYXRhVmlld0NvbW1hbmRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9yZW1vdGUvQWRkVXNlclJhbmdlUmVtb3RlRGF0YVZpZXdDb21tYW5kXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvcmVtb3RlL0FkZFVzZXJTb3J0UmVtb3RlRGF0YVZpZXdDb21tYW5kXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvcmVtb3RlL1JlbW90ZUNvbW1hbmRzUHJvY2Vzc29yXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvcmVtb3RlL1JlbW90ZUNvbnRyb2xJdGVtc1JlZnJlc2hDb21tYW5kXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvcmVtb3RlL1JlbW90ZURhdGFWaWV3Q29tbWFuZEJhc2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9yZW1vdGUvUmVtb3RlRGF0YVZpZXdDb21tYW5kRmFjdG9yeVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL3JlbW90ZS9SZW1vdGVEYXRhVmlld0NvbW1hbmRVcGRhdGVOb25Nb2RpZmlhYmxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvcmVtb3RlL1JlbW90ZURhdGF2aWV3TWFuYWdlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL3JlbW90ZS9SZW1vdGVJbml0RGF0YVZpZXdDb21tYW5kXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvcmVtb3RlL1Jlc2V0VXNlckxvY2F0ZVJlbW90ZURhdGF2aWV3Q29tbWFuZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL3JlbW90ZS9SZXNldFVzZXJSYW5nZVJlbW90ZURhdGF2aWV3Q29tbWFuZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL3JlbW90ZS9SZXNldFVzZXJTb3J0UmVtb3RlRGF0YXZpZXdDb21tYW5kXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvcmVtb3RlL1NlcnZlckVycm9yXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvcmVtb3RlL1NldFRyYW5zYWN0aW9uU3RhdGVSZW1vdGVEYXRhVmlld0NvbW1hbmRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9ydC9Bcmd1bWVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL3J0L0FyZ3VtZW50c0xpc3RcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9ydC9Cb3VuZGFyeVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL3J0L0NvbXBNYWluUHJnVGFibGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9ydC9EYXRhdmlld0hlYWRlckJhc2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9ydC9EYXRhdmlld0hlYWRlckZhY3RvcnlcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9ydC9EYXRhdmlld0hlYWRlcnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9ydC9EYXRhdmlld0hlYWRlcnNTYXhIYW5kbGVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvcnQvRXhlY3V0aW9uU3RhY2tcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9ydC9FeGVjdXRpb25TdGFja0VudHJ5XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvcnQvSGFuZGxlcnNUYWJsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL3J0L0lEYXRhU291cmNlVmlld0RlZmluaXRpb25cIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9ydC9JRGF0YXZpZXdIZWFkZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9ydC9JUmVzdWx0VmFsdWVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9ydC9MYXN0Rm9jdXNlZE1hbmFnZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9ydC9PcGVyYXRpb25cIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9ydC9PcGVyYXRpb25UYWJsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL3J0L1JlY29tcHV0ZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL3J0L1JlY29tcHV0ZVRhYmxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvcnQvUmVtb3RlRGF0YXZpZXdIZWFkZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9ydC9SZXN1bHRWYWx1ZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL3J0L1RhYmxlQ2FjaGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy9ydC9UYWJsZUNhY2hlTWFuYWdlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL3J0L1RyYW5zYWN0aW9uXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvc2VjdXJpdHkvVXNlckRldGFpbHNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy90YXNrcy9JTUdEYXRhQ29sbGVjdGlvblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL3Rhc2tzL01lbnVzRGVzZXJpYWxpemVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvdGFza3MvTUdEYXRhXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvdGFza3MvTUdEYXRhQ29sbGVjdGlvblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL3Rhc2tzL1JDVGltZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy90YXNrcy9SZW1vdGVUYXNrU2VydmljZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL3Rhc2tzL1Rhc2tcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy90YXNrcy9UYXNrQmFzZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL3Rhc2tzL1Rhc2tTZXJ2aWNlQmFzZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL3Rhc2tzL1Rhc2tzVGFibGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy90YXNrcy9zb3J0L1NvcnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy90YXNrcy9zb3J0L1NvcnRDb2xsZWN0aW9uXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvdXRpbC9Db25zdFV0aWxzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvdXRpbC9jb29raWUuc2VydmljZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL3V0aWwvRmxvd01vbml0b3JRdWV1ZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL3V0aWwvSGVhcFNvcnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy91dGlsL0lNaXJyb3JYTUxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy91dGlsL0lTZXJ2ZXJDb25maWdcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy91dGlsL01nQmxvY2tpbmdRdWV1ZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL3V0aWwvTWdQcmlvcml0eUJsb2NraW5nUXVldWVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy91dGlsL01nUHJpb3JpdHlRdWV1ZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL3V0aWwvUGFyYW1QYXJzZVJlc3VsdFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL3V0aWwvUHJtTWFwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvdXRpbC9Qcm9jZXNzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcmMvdXRpbC9SZXR1cm5SZXN1bHRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy91dGlsL1JldHVyblJlc3VsdEJhc2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NyYy91dGlsL1NjcmFtYmxlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3JjL3V0aWwvVW5pcXVlSURVdGlsc1wiO1xuIl19
@@ -1,3 +1,3 @@
1
1
  export class AccessHelper {
2
2
  }
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWNjZXNzSGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW5naW5lL3NyYy9BY2Nlc3NIZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBYUEsTUFBTSxPQUFPLFlBQVk7Q0FPeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJRW52aXJvbm1lbnQgfSBmcm9tIFwiQG1hZ2ljLXhwYS9ndWlcIjtcclxuaW1wb3J0IHsgSUV2ZW50c01hbmFnZXIgfSBmcm9tIFwiLi9ldmVudC9JRXZlbnRzTWFuYWdlclwiO1xyXG5pbXBvcnQgeyBJTUdEYXRhQ29sbGVjdGlvbiB9IGZyb20gXCIuL3Rhc2tzL0lNR0RhdGFDb2xsZWN0aW9uXCI7XHJcbmltcG9ydCB7IE1pcnJvclBybU1hcCB9IGZyb20gXCIuL3V0aWwvUHJtTWFwXCI7XHJcbmltcG9ydCB7IE1pcnJvclN0cmluZyB9IGZyb20gXCIuL2Vudi9FbnZWYXJpYWJsZXNUYWJsZVwiO1xyXG5pbXBvcnQgeyBNaXJyb3JFeHBWYWwgfSBmcm9tIFwiLi9leHAvR2xvYmFsUGFyYW1zVGFibGVcIjtcclxuaW1wb3J0IHsgSUxhbmd1YWdlRGF0YSB9IGZyb20gXCIuL2Vudi9JTGFuZ3VhZ2VEYXRhXCI7XHJcblxyXG4vLy9cclxuLy8vIFRoaXMgY2xhc3MgaXMgdXNlZCB0byBob2xkIHJlZmVyZW5jZXMgdG8gZ2xvYmFsIG9iamVjdHMsIHVzaW5nIHRoZWlyIGludGVyZmFjZXMvYmFzZSBjbGFzc2VzLiBUaGlzIGFsbG93cyBvdGhlciBvYmplY3RzIHRvIGFjY2VzcyB0aG9zZSBnbG9iYWwgb2JqZWN0c1xyXG4vLy8gd2l0aG91dCBjcmVhdGluZyBjaXJjdWxhciByZWZlcmVuY2VzLlxyXG4vLy9cclxuLy8gQGR5bmFtaWNcclxuZXhwb3J0IGNsYXNzIEFjY2Vzc0hlbHBlciB7XHJcbiAgc3RhdGljIGV2ZW50c01hbmFnZXI6IElFdmVudHNNYW5hZ2VyO1xyXG4gIHN0YXRpYyBtZ0RhdGFUYWJsZTogSU1HRGF0YUNvbGxlY3Rpb247XHJcbiAgc3RhdGljIGVudlBhcmFtc1RhYmxlOiBNaXJyb3JQcm1NYXA8TWlycm9yU3RyaW5nPjtcclxuICBzdGF0aWMgZ2xvYmFsUGFyYW1zOiBNaXJyb3JQcm1NYXA8TWlycm9yRXhwVmFsPjtcclxuICBzdGF0aWMgbGFuZ3VhZ2VEYXRhOiBJTGFuZ3VhZ2VEYXRhO1xyXG4gIHN0YXRpYyBlbnZpcm9ubWVudDogSUVudmlyb25tZW50O1xyXG59XHJcbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWNjZXNzSGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW5naW5lL3NyYy9BY2Nlc3NIZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBYUEsTUFBTSxPQUFPLFlBQVk7Q0FPeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJRW52aXJvbm1lbnQgfSBmcm9tIFwiQG1hZ2ljLXhwYS9ndWlcIjtcclxuaW1wb3J0IHsgSUV2ZW50c01hbmFnZXIgfSBmcm9tIFwiLi9ldmVudC9JRXZlbnRzTWFuYWdlclwiO1xyXG5pbXBvcnQgeyBJTUdEYXRhQ29sbGVjdGlvbiB9IGZyb20gXCIuL3Rhc2tzL0lNR0RhdGFDb2xsZWN0aW9uXCI7XHJcbmltcG9ydCB7IE1pcnJvclBybU1hcCB9IGZyb20gXCIuL3V0aWwvUHJtTWFwXCI7XHJcbmltcG9ydCB7IE1pcnJvclN0cmluZyB9IGZyb20gXCIuL2Vudi9NaXJyb3JTdHJpbmdcIjtcclxuaW1wb3J0IHsgTWlycm9yRXhwVmFsIH0gZnJvbSBcIi4vZXhwL0dsb2JhbFBhcmFtc1RhYmxlXCI7XHJcbmltcG9ydCB7IElMYW5ndWFnZURhdGEgfSBmcm9tIFwiLi9lbnYvSUxhbmd1YWdlRGF0YVwiO1xyXG5cclxuLy8vXHJcbi8vLyBUaGlzIGNsYXNzIGlzIHVzZWQgdG8gaG9sZCByZWZlcmVuY2VzIHRvIGdsb2JhbCBvYmplY3RzLCB1c2luZyB0aGVpciBpbnRlcmZhY2VzL2Jhc2UgY2xhc3Nlcy4gVGhpcyBhbGxvd3Mgb3RoZXIgb2JqZWN0cyB0byBhY2Nlc3MgdGhvc2UgZ2xvYmFsIG9iamVjdHNcclxuLy8vIHdpdGhvdXQgY3JlYXRpbmcgY2lyY3VsYXIgcmVmZXJlbmNlcy5cclxuLy8vXHJcbi8vIEBkeW5hbWljXHJcbmV4cG9ydCBjbGFzcyBBY2Nlc3NIZWxwZXIge1xyXG4gIHN0YXRpYyBldmVudHNNYW5hZ2VyOiBJRXZlbnRzTWFuYWdlcjtcclxuICBzdGF0aWMgbWdEYXRhVGFibGU6IElNR0RhdGFDb2xsZWN0aW9uO1xyXG4gIHN0YXRpYyBlbnZQYXJhbXNUYWJsZTogTWlycm9yUHJtTWFwPE1pcnJvclN0cmluZz47XHJcbiAgc3RhdGljIGdsb2JhbFBhcmFtczogTWlycm9yUHJtTWFwPE1pcnJvckV4cFZhbD47XHJcbiAgc3RhdGljIGxhbmd1YWdlRGF0YTogSUxhbmd1YWdlRGF0YTtcclxuICBzdGF0aWMgZW52aXJvbm1lbnQ6IElFbnZpcm9ubWVudDtcclxufVxyXG4iXX0=
@@ -1,2 +1,2 @@
1
- export let CurrentClientVersion = '4.801.0-dev481.244';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3VycmVudENsaWVudFZlcnNpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL0N1cnJlbnRDbGllbnRWZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxJQUFJLG9CQUFvQixHQUFHLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGxldCBDdXJyZW50Q2xpZW50VmVyc2lvbiA9ICc0LjgwMS4wLWRldjQ4MS4yNDQnOyJdfQ==
1
+ export let CurrentClientVersion = '4.801.0-dev481.245';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3VycmVudENsaWVudFZlcnNpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL0N1cnJlbnRDbGllbnRWZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxJQUFJLG9CQUFvQixHQUFHLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGxldCBDdXJyZW50Q2xpZW50VmVyc2lvbiA9ICc0LjgwMS4wLWRldjQ4MS4yNDUnOyJdfQ==
@@ -1,8 +1,7 @@
1
1
  import { __awaiter } from "tslib";
2
- import { XmlParser } from "@magic-xpa/utils";
3
2
  import { CommandsProcessorBase_SendingInstruction } from "../CommandsProcessorBase";
4
- import { MirrorPrmMap, ParamParseResult } from "../util/PrmMap";
5
- import { Debug, NNumber, NString, StringBuilder } from "@magic-xpa/mscorelib";
3
+ import { MirrorPrmMap } from "../util/PrmMap";
4
+ import { NNumber, NString, StringBuilder } from "@magic-xpa/mscorelib";
6
5
  import { DisplayConvertor } from "@magic-xpa/gui";
7
6
  import { ConstInterface } from "../ConstInterface";
8
7
  import { CommandFactory } from "../commands/ClientToServer/CommandFactory";
@@ -10,67 +9,7 @@ import { RemoteCommandsProcessor } from "../remote/RemoteCommandsProcessor";
10
9
  import { Environment } from "./Environment";
11
10
  import { LastFocusedManager } from "../rt/LastFocusedManager";
12
11
  import { AccessHelper } from "../AccessHelper";
13
- export class MirrorString {
14
- constructor(s) {
15
- this._reserved = false;
16
- this._value = null;
17
- if (arguments.length === 0) {
18
- this.constructor_0();
19
- return;
20
- }
21
- this.constructor_1(s);
22
- }
23
- constructor_0() {
24
- this._reserved = false;
25
- }
26
- constructor_1(s) {
27
- this._value = s;
28
- this._reserved = false;
29
- }
30
- mirrorToXML() {
31
- return ConstInterface.MG_ATTR_ENV_VALUE + "=\"" + XmlParser.escape(this._value) + "\" " +
32
- ConstInterface.MG_ATTR_ENV_WRITEINI + "=F";
33
- }
34
- init(name, xmlParser) {
35
- let valueStart, valueEnd, reserveStart, paramEnd;
36
- let xmlData = xmlParser.getXMLdata();
37
- let valueAttr = ConstInterface.MG_ATTR_ENV_VALUE + "=\"";
38
- paramEnd = xmlData.indexOf("/>", xmlParser.getCurrIndex());
39
- valueStart = NString.IndexOf(xmlData, valueAttr, xmlParser.getCurrIndex(), paramEnd - xmlParser.getCurrIndex());
40
- if (valueStart !== -1) {
41
- valueStart += valueAttr.length;
42
- reserveStart = NString.IndexOf(xmlData, ConstInterface.MG_ATTR_ENV_RESERVED + "=\"", xmlParser.getCurrIndex(), paramEnd - xmlParser.getCurrIndex());
43
- valueEnd = reserveStart !== -1
44
- ? xmlData.indexOf(ConstInterface.MG_ATTR_ENV_RESERVED + "=\"", valueStart) - 2
45
- : paramEnd - 1;
46
- this._value = xmlData.substr(valueStart, valueEnd - valueStart).trim();
47
- if (reserveStart !== -1) {
48
- reserveStart += ConstInterface.MG_ATTR_ENV_RESERVED.length + 2;
49
- this._reserved = (xmlData[reserveStart] === 'Y');
50
- }
51
- else
52
- this._reserved = false;
53
- xmlParser.setCurrIndex(valueEnd);
54
- if (name.startsWith(ConstInterface.INI_SECTION_LOGICAL_NAMES_BRACKETS))
55
- return ParamParseResult.OK;
56
- else
57
- return ParamParseResult.TOUPPER;
58
- }
59
- else if (NString.IndexOf(xmlData, ConstInterface.MG_ATTR_ENV_REMOVED, xmlParser.getCurrIndex(), paramEnd - xmlParser.getCurrIndex()) !== -1) {
60
- return ParamParseResult.DELETE;
61
- }
62
- else {
63
- Debug.Assert(false, "bad XML parsing");
64
- return ParamParseResult.FAILED;
65
- }
66
- }
67
- ToString() {
68
- return this._value;
69
- }
70
- isReserved() {
71
- return this._reserved;
72
- }
73
- }
12
+ import { MirrorString } from "./MirrorString";
74
13
  export class EnvParamsTable extends MirrorPrmMap {
75
14
  constructor() {
76
15
  super(MirrorString);
@@ -405,4 +344,4 @@ export class EnvParamsTable extends MirrorPrmMap {
405
344
  }
406
345
  }
407
346
  EnvParamsTable.Instance = new EnvParamsTable();
408
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW52VmFyaWFibGVzVGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL2Vudi9FbnZWYXJpYWJsZXNUYWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQzNDLE9BQU8sRUFBQyx3Q0FBd0MsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ2xGLE9BQU8sRUFBQyxZQUFZLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RCxPQUFPLEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFNUUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBRWpELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUN6RSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUkvQyxNQUFNLE9BQU8sWUFBWTtJQU12QixZQUFZLENBQVU7UUFMZCxjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLFdBQU0sR0FBVyxJQUFJLENBQUM7UUFLNUIsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUMxQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDckIsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4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RVgsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNoQixJQUFJLEdBQUcsR0FBVyxjQUFjLENBQUMsa0NBQWtDO2dCQUNqRSxVQUFVLENBQUMsUUFBUSxDQUFDLFFBQVEsR0FBRyxDQUFDLEVBQUUsTUFBTSxHQUFHLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUMzRCxJQUFJLEtBQUssR0FBVyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBR2xDLElBQUksS0FBSyxLQUFLLElBQUksRUFBRTtnQkFDbEIsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQztnQkFDdEcsTUFBTSxJQUFJLENBQUMsQ0FBQzthQUNiO2lCQUNJO2dCQUNILFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsTUFBTSxHQUFHLENBQUMsR0FBRyxRQUFRLENBQUMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUN0RixNQUFNLEdBQUcsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDO2FBQzFCO1NBQ0Y7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDOztBQXpkTSx1QkFBUSxHQUFtQixJQUFJLGNBQWMsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJTWlycm9yWE1MfSBmcm9tIFwiLi4vdXRpbC9JTWlycm9yWE1MXCI7XHJcbmltcG9ydCB7WG1sUGFyc2VyfSBmcm9tIFwiQG1hZ2ljLXhwYS91dGlsc1wiO1xyXG5pbXBvcnQge0NvbW1hbmRzUHJvY2Vzc29yQmFzZV9TZW5kaW5nSW5zdHJ1Y3Rpb259IGZyb20gXCIuLi9Db21tYW5kc1Byb2Nlc3NvckJhc2VcIjtcclxuaW1wb3J0IHtNaXJyb3JQcm1NYXAsIFBhcmFtUGFyc2VSZXN1bHR9IGZyb20gXCIuLi91dGlsL1BybU1hcFwiO1xyXG5pbXBvcnQge0RlYnVnLCBOTnVtYmVyLCBOU3RyaW5nLCBTdHJpbmdCdWlsZGVyfSBmcm9tIFwiQG1hZ2ljLXhwYS9tc2NvcmVsaWJcIjtcclxuXHJcbmltcG9ydCB7RGlzcGxheUNvbnZlcnRvcn0gZnJvbSBcIkBtYWdpYy14cGEvZ3VpXCI7XHJcbmltcG9ydCB7Q29uc3RJbnRlcmZhY2V9IGZyb20gXCIuLi9Db25zdEludGVyZmFjZVwiO1xyXG5pbXBvcnQge0lDbGllbnRDb21tYW5kfSBmcm9tIFwiLi4vY29tbWFuZHMvSUNsaWVudENvbW1hbmRcIjtcclxuaW1wb3J0IHtDb21tYW5kRmFjdG9yeX0gZnJvbSBcIi4uL2NvbW1hbmRzL0NsaWVudFRvU2VydmVyL0NvbW1hbmRGYWN0b3J5XCI7XHJcbmltcG9ydCB7UmVtb3RlQ29tbWFuZHNQcm9jZXNzb3J9IGZyb20gXCIuLi9yZW1vdGUvUmVtb3RlQ29tbWFuZHNQcm9jZXNzb3JcIjtcclxuaW1wb3J0IHsgRW52aXJvbm1lbnQgfSBmcm9tIFwiLi9FbnZpcm9ubWVudFwiO1xyXG5pbXBvcnQgeyBMYXN0Rm9jdXNlZE1hbmFnZXIgfSBmcm9tIFwiLi4vcnQvTGFzdEZvY3VzZWRNYW5hZ2VyXCI7XHJcbmltcG9ydCB7IEFjY2Vzc0hlbHBlciB9IGZyb20gXCIuLi9BY2Nlc3NIZWxwZXJcIjtcclxuXHJcbi8vIG1pcnJvcmluZyBhIHNpbmdsZSBlbnZpcm9ubWVudCB2YXJpYWJsZS5cclxuLy8gKFNpbmNlIFwiU3RyaW5nXCIgaXMgYSBzZWFsZWQgY2xhc3MsIGl0IGlzIGEgbWVtYmVyIGFuZCBub3QgdGhlIGJhc2UgY2xhc3MpXHJcbmV4cG9ydCBjbGFzcyBNaXJyb3JTdHJpbmcgaW1wbGVtZW50cyBJTWlycm9yWE1MIHtcclxuICBwcml2YXRlIF9yZXNlcnZlZDogYm9vbGVhbiA9IGZhbHNlOyAvLyBJcyB0aGlzIHZhcmlhYmxlIHJlc2VydmVkIC0gY2FuIG5vdCBiZSBjaGFuZ2VkIGJ5IHRoZSB1c2VyXHJcbiAgcHJpdmF0ZSBfdmFsdWU6IHN0cmluZyA9IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCk7XHJcbiAgY29uc3RydWN0b3Ioczogc3RyaW5nKTtcclxuICBjb25zdHJ1Y3RvcihzPzogc3RyaW5nKSB7XHJcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICB0aGlzLmNvbnN0cnVjdG9yXzAoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb25zdHJ1Y3Rvcl8xKHMpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIENUT1JcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIHByaXZhdGUgY29uc3RydWN0b3JfMCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3Jlc2VydmVkID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgQ1RPUlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcl8xKHM6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5fdmFsdWUgPSBzO1xyXG4gICAgdGhpcy5fcmVzZXJ2ZWQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHZhcmlhYmxlLCBmb3IgdGhlIFhNTFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgbWlycm9yVG9YTUwoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBDb25zdEludGVyZmFjZS5NR19BVFRSX0VOVl9WQUxVRSArIFwiPVxcXCJcIiArIFhtbFBhcnNlci5lc2NhcGUodGhpcy5fdmFsdWUpICsgXCJcXFwiIFwiICtcclxuICAgICAgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9FTlZfV1JJVEVJTkkgKyBcIj1GXCI7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgaW5pdGlhbGl6ZSB0aGUgb2JqZWN0IGZyb20gdGhlIFhNTCBhdHRyaWJ1dGVzIG9mIGEgc2luZ2xlIHBhcmFtLiBUaGUgZXhwZWN0ZWRcclxuICAvLy8gICBmb3JtYXQgaXM6IFwidmFsdWU9XCIuLi5cIiByZXNlcnZlZD1cIi5cIi8+XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInhtbFBhcnNlclwiPjwvcGFyYW0+XHJcbiAgcHVibGljIGluaXQobmFtZTogU3RyaW5nLCB4bWxQYXJzZXI6IFhtbFBhcnNlcik6IFBhcmFtUGFyc2VSZXN1bHQge1xyXG4gICAgbGV0IHZhbHVlU3RhcnQ6IG51bWJlciwgdmFsdWVFbmQsIHJlc2VydmVTdGFydCwgcGFyYW1FbmQ7XHJcbiAgICBsZXQgeG1sRGF0YTogc3RyaW5nID0geG1sUGFyc2VyLmdldFhNTGRhdGEoKTtcclxuICAgIGxldCB2YWx1ZUF0dHI6IHN0cmluZyA9IENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfRU5WX1ZBTFVFICsgXCI9XFxcIlwiO1xyXG5cclxuICAgIHBhcmFtRW5kID0geG1sRGF0YS5pbmRleE9mKFwiLz5cIiwgeG1sUGFyc2VyLmdldEN1cnJJbmRleCgpKTtcclxuXHJcbiAgICAvLyBnZXQgdGhlIG9mZnNldHMgaW50byB0aGUgWE1MIGRhdGE6IHN0YXJ0IG9mIHZhbHVlLCBlbmQgb2YgdmFsdWUsIGxvY2F0aW9uIG9mIHJlc2VydmVkIGNoYXJcclxuICAgIHZhbHVlU3RhcnQgPSBOU3RyaW5nLkluZGV4T2YoeG1sRGF0YSwgdmFsdWVBdHRyLCB4bWxQYXJzZXIuZ2V0Q3VyckluZGV4KCksIHBhcmFtRW5kIC0geG1sUGFyc2VyLmdldEN1cnJJbmRleCgpKTtcclxuICAgIGlmICh2YWx1ZVN0YXJ0ICE9PSAtMSkge1xyXG4gICAgICB2YWx1ZVN0YXJ0ICs9IHZhbHVlQXR0ci5sZW5ndGg7XHJcbiAgICAgIHJlc2VydmVTdGFydCA9IE5TdHJpbmcuSW5kZXhPZih4bWxEYXRhLCBDb25zdEludGVyZmFjZS5NR19BVFRSX0VOVl9SRVNFUlZFRCArIFwiPVxcXCJcIiwgeG1sUGFyc2VyLmdldEN1cnJJbmRleCgpLFxyXG4gICAgICAgIHBhcmFtRW5kIC0geG1sUGFyc2VyLmdldEN1cnJJbmRleCgpKTtcclxuXHJcbiAgICAgIHZhbHVlRW5kID0gcmVzZXJ2ZVN0YXJ0ICE9PSAtMVxyXG4gICAgICAgID8geG1sRGF0YS5pbmRleE9mKENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfRU5WX1JFU0VSVkVEICsgXCI9XFxcIlwiLCB2YWx1ZVN0YXJ0KSAtIDJcclxuICAgICAgICA6IHBhcmFtRW5kIC0gMTtcclxuXHJcbiAgICAgIC8vIGZpbGwgdGhlIG9iamVjdCdzIGRhdGFcclxuICAgICAgdGhpcy5fdmFsdWUgPSB4bWxEYXRhLnN1YnN0cih2YWx1ZVN0YXJ0LCB2YWx1ZUVuZCAtIHZhbHVlU3RhcnQpLnRyaW0oKTtcclxuICAgICAgaWYgKHJlc2VydmVTdGFydCAhPT0gLTEpIHtcclxuICAgICAgICByZXNlcnZlU3RhcnQgKz0gQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9FTlZfUkVTRVJWRUQubGVuZ3RoICsgMjsgLy8gc2tpcCA9J1xyXG4gICAgICAgIHRoaXMuX3Jlc2VydmVkID0gKHhtbERhdGFbcmVzZXJ2ZVN0YXJ0XSA9PT0gJ1knKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdGhpcy5fcmVzZXJ2ZWQgPSBmYWxzZTtcclxuXHJcbiAgICAgIHhtbFBhcnNlci5zZXRDdXJySW5kZXgodmFsdWVFbmQpO1xyXG5cclxuICAgICAgLy8gTG9naWNhbCBuYW1lcyBhcmUgY2FzZSBzZW5zaXRpdmUuIG90aGVycyB2YXJpYWJsZXMgc2hvdWxkIGJlIGNoYW5nZWQgdG8gdXBwZXIgY2FzZVxyXG4gICAgICBpZiAobmFtZS5zdGFydHNXaXRoKENvbnN0SW50ZXJmYWNlLklOSV9TRUNUSU9OX0xPR0lDQUxfTkFNRVNfQlJBQ0tFVFMpKVxyXG4gICAgICAgIHJldHVybiBQYXJhbVBhcnNlUmVzdWx0Lk9LO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgcmV0dXJuIFBhcmFtUGFyc2VSZXN1bHQuVE9VUFBFUjtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKE5TdHJpbmcuSW5kZXhPZih4bWxEYXRhLCBDb25zdEludGVyZmFjZS5NR19BVFRSX0VOVl9SRU1PVkVELCB4bWxQYXJzZXIuZ2V0Q3VyckluZGV4KCksIHBhcmFtRW5kIC0geG1sUGFyc2VyLmdldEN1cnJJbmRleCgpKSAhPT0gLTEpIHtcclxuXHJcbiAgICAgIC8vIHJlbW92ZSB0aGlzIHZhcmlhYmxlIGZyb20gdGhlIHRhYmxlXHJcbiAgICAgIHJldHVybiBQYXJhbVBhcnNlUmVzdWx0LkRFTEVURTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBEZWJ1Zy5Bc3NlcnQoZmFsc2UsIFwiYmFkIFhNTCBwYXJzaW5nXCIpO1xyXG4gICAgICByZXR1cm4gUGFyYW1QYXJzZVJlc3VsdC5GQUlMRUQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJuIHRoZSBzdHJpbmdcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgVG9TdHJpbmcoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBpcyB0aGUgdmFyaWFibGUgcmVzZXJ2ZWQ/XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIGlzUmVzZXJ2ZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fcmVzZXJ2ZWQ7XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gPHN1bW1hcnk+XHJcbi8vLyAgIG1hbmFnZXIgb2YgZW52aXJvbm1lbnQgdmFyaWFibGVzXHJcbi8vLyA8L3N1bW1hcnk+XHJcbmV4cG9ydCBjbGFzcyBFbnZQYXJhbXNUYWJsZSBleHRlbmRzIE1pcnJvclBybU1hcDxNaXJyb3JTdHJpbmc+IHtcclxuXHJcbiAgc3RhdGljIEluc3RhbmNlOiBFbnZQYXJhbXNUYWJsZSA9IG5ldyBFbnZQYXJhbXNUYWJsZSgpO1xyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBDVE9SXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBwcml2YXRlIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoTWlycm9yU3RyaW5nKTtcclxuICAgIHRoaXMubWlycm9yZWRJRCA9IENvbnN0SW50ZXJmYWNlLk1HX1RBR19FTlZfUEFSQU07XHJcbiAgfVxyXG5cclxuICAvLyBDaGVjayBpZiB0aGUgdmFsdWUgc2hvdWxkIGJlIHJldHVybmVkIGZyb20gdGhlIGVudmlyb25tZW50LlxyXG4gIC8vIFZlcmlmeSB0aGUgc2VjdGlvbiBuYW1lIGV4aXN0cyBiZWZvcmUgZ2V0dGluZyB0aGUgdmFsdWUgZnJvbSB0aGUgYmFzZSBjbGFzcy5cclxuICAvLyBSZXR1cm4gbnVsbCBpZiB0aGUgdmFsdWUgZG9lcyBub3QgZXhpc3QuXHJcbiAgZ2V0KHM6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBsZXQgdmFsTmFtZTogc3RyaW5nID0gbnVsbDtcclxuICAgIGxldCByZXQ6IHN0cmluZyA9IG51bGw7XHJcblxyXG4gICAgLy8gSWYgc2VjdGlvbiBpcyBub3QgZGVmaW5lZCwgYWRkIHRoZSBkZWZhdWx0IHNlY3Rpb25cclxuICAgIGlmIChzLmNoYXJBdCgwKSAhPT0gJ1snKSB7XHJcbiAgICAgIHZhbE5hbWUgPSBzO1xyXG4gICAgICBzID0gTlN0cmluZy5JbnNlcnQocywgMCwgQ29uc3RJbnRlcmZhY2UuSU5JX1NFQ1RJT05fTUFHSUNfRU5WX0JSQUNLRVRTKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBpZiB3ZSBkbyBoYXZlIHRoZSBzZWN0aW9uIG5hbWUsYWFuZCBpdCBpcyBNQUdJQ19FTlYsIHdlIG5lZWQgdGhlIHZhcmlhYmxlJ3MgbmFtZVxyXG4gICAgZWxzZSBpZiAocy5zdGFydHNXaXRoKENvbnN0SW50ZXJmYWNlLklOSV9TRUNUSU9OX01BR0lDX0VOVl9CUkFDS0VUUykpXHJcbiAgICAgIHZhbE5hbWUgPSBzLnN1YnN0cihDb25zdEludGVyZmFjZS5JTklfU0VDVElPTl9NQUdJQ19FTlZfQlJBQ0tFVFMubGVuZ3RoKTtcclxuXHJcbiAgICAvLyBpZiBpdCBpcyBub3QgYSBsb2dpY2FsIG5hbWUsIGl0IGlzIGNhc2UgaW5zZW5zaXRpdmVcclxuICAgIGlmICghcy5zdGFydHNXaXRoKENvbnN0SW50ZXJmYWNlLklOSV9TRUNUSU9OX0xPR0lDQUxfTkFNRVNfQlJBQ0tFVFMpKVxyXG4gICAgICBzID0gcy50b1VwcGVyQ2FzZSgpO1xyXG4gICAgLy8gY2hlY2sgdGhlIHZhbHVlJ3MgbmFtZSB0byBzZWUgaWYgd2UgbmVlZCB0byBnZXQgaXQgZnJvbSB0aGUgcnVudGltZSBlbnZpcm9ubWVudFxyXG4gICAgaWYgKHZhbE5hbWUgIT09IG51bGwpXHJcbiAgICAgIHJldCA9IHRoaXMuZ2V0RnJvbUVudmlyb25tZW50KHZhbE5hbWUpO1xyXG5cclxuICAgIGlmIChyZXQgIT09IG51bGwpXHJcbiAgICAgIHJldHVybiByZXQ7XHJcblxyXG4gICAgLy8gdmFsdWUgbm90IGluIHJ1bnRpbWUgZW52aXJvbm1lbnQgLSBnZXQgaXQgZnJvbSB0aGUgdGFibGVcclxuICAgIHRyeSB7XHJcbiAgICAgIGxldCByZXN1bHRPYmplY3Q6IE1pcnJvclN0cmluZyA9IHN1cGVyLmdldHZhbHVlKHMpO1xyXG5cclxuICAgICAgaWYgKHJlc3VsdE9iamVjdCAhPT0gbnVsbCkge1xyXG4gICAgICAgIHJldCA9IHJlc3VsdE9iamVjdC5Ub1N0cmluZygpO1xyXG5cclxuICAgICAgICAvLyBJZiBpdCBtYXkgYmUgYSB2YXJpYWJsZSB0aGF0IGJlbG9uZ3MgdG8gdGhlIHNlcnZlcidzIGNvbnRleHQvY29tcG9uZW50LCBwcm9jZXNzIGl0XHJcbiAgICAgICAgaWYgKHZhbE5hbWUgIT09IG51bGwpIHtcclxuICAgICAgICAgIHJldCA9IHRoaXMuZ2V0UHJvY2Vzc2VkVmFsdWUodmFsTmFtZSwgcmV0KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNhdGNoIChleF9CRSkge1xyXG4gICAgICAvLyBpZiBzdHJpbmcgbm90IGluIGRpY3Rpb25hcnlcclxuICAgIH1cclxuICAgIHJldHVybiByZXQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJuIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBpbiBwbGFjZSBcIm51bWJlclwiIGluIHNlY3Rpb24gXCJzZWN0aW9uXCJcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwic2VjdGlvblwiPjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJudW1iZXJcIj48L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgZ2V0bG4oc2VjdGlvbjogc3RyaW5nLCBudW1iZXI6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBzZWN0aW9uID0gc2VjdGlvbi50b1VwcGVyQ2FzZSgpLnRyaW0oKTtcclxuICAgIGxldCBzZWN0aW9uRm91bmQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBsZXQga2V5czogc3RyaW5nW10gPSB0aGlzLnZhbHVlcy5LZXlzO1xyXG5cclxuICAgIC8vIExvb3Agb3ZlciBrZXlzLCBmaW5kIHRob3NlIHRoYXQgc3RhcnQgd2l0aCBvdXIgc2VjdGlvbiBuYW1lXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGV0IGtleTogc3RyaW5nID0ga2V5c1tpXTtcclxuXHJcbiAgICAgIGlmIChrZXkuc3RhcnRzV2l0aChzZWN0aW9uKSkge1xyXG4gICAgICAgIHNlY3Rpb25Gb3VuZCA9IHRydWU7XHJcblxyXG4gICAgICAgIGlmIChudW1iZXIgPiAxKVxyXG4gICAgICAgICAgbnVtYmVyLS07XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIC8vIGZvdW5kIHdoYXQgd2UgbmVlZGVkLCBidWlsZCB0aGUgXCJuYW1lPXZhbHVlXCIgc3RyaW5nXHJcbiAgICAgICAgICByZXR1cm4ga2V5LnN1YnN0cihzZWN0aW9uLmxlbmd0aCkgKyBcIj1cIiArIHRoaXMudmFsdWVzLmdldF9JdGVtKGtleSk7XHJcbiAgICAgIH1cclxuICAgICAgLy8gSWYgd2UgZ290IHRvIHRoZSByaWdodCBzZWN0aW9uIGFuZCBwYXNzZWQgaXQsIG5vIG5lZWQgdG8gY29udGludWUgbG9va2luZ1xyXG4gICAgICBlbHNlIGlmIChzZWN0aW9uRm91bmQpXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgdHJ5IGFuZCBnZXQgdGhlIGVudiB2YXJpYWJsZSdzIHZhbHVlIGZyb20gdGhlIHJ1bnRpbWUgZW52aXJvbm1lbnRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwidmFsTmFtZVwiPjwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBwcml2YXRlIGdldEZyb21FbnZpcm9ubWVudCh2YWxOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgc3dpdGNoICh2YWxOYW1lLnRvTG93ZXJDYXNlKCkpIHtcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX0RFQ0lNQUxfU0VQQVJBVE9SOlxyXG4gICAgICAgIHJldHVybiBFbnZpcm9ubWVudC5JbnN0YW5jZS5HZXREZWNpbWFsKCk7XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9EQVRFOlxyXG4gICAgICAgIHJldHVybiBEaXNwbGF5Q29udmVydG9yLkluc3RhbmNlLmdldERhdGVDaGFyKCkudG9TdHJpbmcoKTtcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX1RJTUU6XHJcbiAgICAgICAgcmV0dXJuIEVudmlyb25tZW50Lkluc3RhbmNlLkdldFRpbWUoKTtcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX09XTkVSOlxyXG4gICAgICAgIHJldHVybiBFbnZpcm9ubWVudC5JbnN0YW5jZS5nZXRPd25lcigpO1xyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfREFURU1PREU6XHJcbiAgICAgICAgcmV0dXJuIEVudmlyb25tZW50Lkluc3RhbmNlLkdldERhdGVNb2RlKExhc3RGb2N1c2VkTWFuYWdlci5JbnN0YW5jZS5nZXRDdXJyVGFzaygpLmdldENvbXBJZHgoKSk7XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9DRU5UVVJZOlxyXG4gICAgICAgIHJldHVybiBFbnZpcm9ubWVudC5JbnN0YW5jZS5HZXRDZW50dXJ5KExhc3RGb2N1c2VkTWFuYWdlci5JbnN0YW5jZS5nZXRDdXJyVGFzaygpLmdldENvbXBJZHgoKSkudG9TdHJpbmcoKTtcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX0lETEVUSU1FOlxyXG4gICAgICAgIHJldHVybiBFbnZpcm9ubWVudC5JbnN0YW5jZS5nZXRJZGxlVGltZShMYXN0Rm9jdXNlZE1hbmFnZXIuSW5zdGFuY2UuZ2V0Q3VyclRhc2soKS5nZXRDb21wSWR4KCkpLnRvU3RyaW5nKCk7XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9VUERfSU5fUVVFUlk6XHJcbiAgICAgICAgcmV0dXJuIEVudmlyb25tZW50Lkluc3RhbmNlLmFsbG93VXBkYXRlSW5RdWVyeU1vZGUoTGFzdEZvY3VzZWRNYW5hZ2VyLkluc3RhbmNlLmdldEN1cnJUYXNrKCkuZ2V0Q29tcElkeCgpKS50b1N0cmluZygpO1xyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfQ1JFX0lOX01PRElGWTpcclxuICAgICAgICByZXR1cm4gRW52aXJvbm1lbnQuSW5zdGFuY2UuYWxsb3dDcmVhdGVJbk1vZGlmeU1vZGUoTGFzdEZvY3VzZWRNYW5hZ2VyLkluc3RhbmNlLmdldEN1cnJUYXNrKCkuZ2V0Q29tcElkeCgpKS50b1N0cmluZygpO1xyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfQ09OVEVYVF9JTkFDVElWSVRZX1RJTUVPVVQ6XHJcbiAgICAgICAgcmV0dXJuIEVudmlyb25tZW50Lkluc3RhbmNlLmdldENvbnRleHRJbmFjdGl2aXR5VGltZW91dCgpLnRvU3RyaW5nKCk7XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9DT05URVhUX1VOTE9BRF9USU1FT1VUOlxyXG4gICAgICAgIHJldHVybiBFbnZpcm9ubWVudC5JbnN0YW5jZS5nZXRDb250ZXh0VW5sb2FkVGltZW91dCgpLnRvU3RyaW5nKCk7XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9URVJNSU5BTDpcclxuICAgICAgICByZXR1cm4gRW52aXJvbm1lbnQuSW5zdGFuY2UuZ2V0VGVybWluYWwoKS50b1N0cmluZygpO1xyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfV0VCQ0xJRU5UX1JFSU5JVF9TRVNTSU9OOlxyXG4gICAgICAgIHJldHVybiBFbnZpcm9ubWVudC5JbnN0YW5jZS5nZXRXZWJDbGllbnRSZWluaXRTZXNzaW9uKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBUaGUgZnVuY3Rpb24gcHJvY2Vzc2VzIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSdzIHZhbHVlLCB0byByZXR1cm4gaXQgaW4gdGhlIHJpZ2h0XHJcbiAgLy8vICAgZm9ybWF0IGZvciBjb250ZXh0L2NvbXBvbmVudCB2YWx1ZXMgdGhhdCBhcmUgbm90IHVzZWQgYnkgdGhlIGNsaWVudC5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwidmFsTmFtZVwiPjwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBwcml2YXRlIGdldFByb2Nlc3NlZFZhbHVlKHZhbE5hbWU6IHN0cmluZywgdmFsOiBzdHJpbmcpOiBzdHJpbmcge1xyXG5cclxuICAgIC8vIFRoZSBsaXN0IG9mIHZhcmlhYmxlcyBpcyBzaW1pbGFyIHRvIHRoYXQgaW4gdGhlIHNlcnZlciwgaW4gZW52X2NvbXAuY3BwLCBFTlY6OmVudl92YWxfdG9fc3RyXHJcbiAgICBzd2l0Y2ggKHZhbE5hbWUudG9Mb3dlckNhc2UoKSkge1xyXG5cclxuICAgICAgLy8gdmFyaWFibGUgaXMgaW50ZWdlclxyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfSFRUUF9USU1FT1VUOlxyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfUlRGX0JVRkZFUl9TSVpFOlxyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfUkFOR0VfUE9QX1RJTUU6XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9URU1QX1BPUF9USU1FOlxyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfQkFUQ0hfUEFJTlRfVElNRTpcclxuICAgICAgICByZXR1cm4gTk51bWJlci5QYXJzZSh2YWwpLnRvU3RyaW5nKCk7XHJcblxyXG4gICAgICAvLyB2YXJpYWJsZSBpcyBib29sZWFuXHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9VU0VfU0lHTkVEX0JST1dTRVJfQ0xJRU5UOlxyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfQ0xPU0VfUFJJTlRFRF9UQUJMRVNfSU5fU1VCVEFTS1M6XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9HRU5FUklDX1RFWFRfUFJJTlRJTkc6XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9ISUdIX1JFU09MVVRJT05fUFJJTlQ6XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9NRVJHRV9UUklNOlxyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfT1JJR0lOQUxfSU1BR0VfTE9BRDpcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX1BSSU5UX0RBVEFfVFJJTTpcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX1BTQ1JJUFRfUFJJTlRfTlQ6XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9TUEVDSUFMX0NPTlZfQUREX1NMQVNIOlxyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfU1BFQ0lBTF9GVUxMX0VYUEFORF9QUklOVDpcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX1NQRUNJQUxfRlVMTF9URVhUOlxyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfU1BFQ0lBTF9MQVNUX0xJTkVfUFJJTlQ6XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9TUEVDSUFMX1BSSU5URVJfT0VNOlxyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfRU1CRURfRk9OVFM6XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9DRU5URVJfU0NSRUVOX0lOX09OTElORTpcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX1JFUE9TSVRJT05fQUZURVJfTU9ESUZZOlxyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfSVNBTV9UUkFOU0FDVElPTjpcclxuICAgICAgICByZXR1cm4gKHZhbFswXSA9PT0gJ1knIHx8IHZhbFswXSA9PT0gJzEnKSA/IFwiWVwiIDogXCJOXCI7XHJcblxyXG4gICAgICAvLyB2YXJpYWJsZSBpcyBhIGNoYXJhY3RlclxyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfVElNRV9TRVBBUkFUT1I6XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9JT1RJTUlORzpcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX1RIT1VTQU5EX1NFUEFSQVRPUjpcclxuICAgICAgICByZXR1cm4gdmFsWzBdLnRvU3RyaW5nKCk7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIHZhbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBTZXQgdGhlIHZhcmlhYmxlOlxyXG4gIC8vLyAgIDEuIHBhcnNlIHRoZSBzdHJpbmdcclxuICAvLy8gICAyLiBjcmVhdGUgdGhlIHBhcmFtL3ZhbHVlIGNvdXBsZXNcclxuICAvLy8gICAzLiBmb3IgZWFjaCBjb3VwbGU6XHJcbiAgLy8vICAgM2EuIHZlcmlmeSB0aGUgc2VjdGlvbiBuYW1lIGV4aXN0c1xyXG4gIC8vLyAgIDNiLiB2ZXJpZnkgdGhlIHZhcmlhYmxlIGlzIG5vdCB1bm1vZGlmaWVhYmxlXHJcbiAgLy8vICAgM2MuIHNldCB0aGUgdmFyaWFibGUgaW4gdGhlIGJhc2UgY2xhc3NcclxuICAvLy8gICAzZC4gY2hlY2sgYW5kIGNoYW5nZSB0aGUgZW52aXJvbm1lbnQgZGF0YSBpZiBuZWVkZWRcclxuICAvLy8gICA0LiBJZiByZXF1aXJlZCwgc2VuZCB0aGUgZGF0YSB0byB0aGUgc2VydmVyXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInNcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwidXBkYXRlSW5pXCI+PC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIHB1YmxpYyBhc3luYyBzZXQoczogc3RyaW5nLCB1cGRhdGVJbmk6IGJvb2xlYW4pOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIGxldCBhbGxPSzogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBsZXQgc2VuZFRvU2VydmVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBsZXQgbmFtZTogc3RyaW5nLCB2YWw7XHJcbiAgICBsZXQgaTogbnVtYmVyO1xyXG4gICAgbGV0IHNlcnZlclZhbDogc3RyaW5nID0gcztcclxuXHJcbiAgICAvLyBTdHJpbmcgcGFyc2luZzogZXZlcnkgbnVtYmVyIGluICdvZmZzZXRzJyBzaG93cyB0aGUgb2Zmc2V0IHRvIHRoZSBiZWdpbm5pbmcgb2YgYSBuYW1lIG9yIHZhbHVlXHJcbiAgICAvLyAxc3Qgb2Zmc2V0IGlzIGFsd2F5cyAwXHJcbiAgICBsZXQgb2Zmc2V0czogbnVtYmVyW10gPSBuZXcgQXJyYXkocy5sZW5ndGggKyAxKTtcclxuICAgIGxldCBvZmZzZXRzQ2hhcnM6IHN0cmluZ1tdID0gbmV3IEFycmF5KHMubGVuZ3RoICsgMSk7XHJcblxyXG4gICAgb2Zmc2V0c1swXSA9IDA7XHJcbiAgICBvZmZzZXRzQ2hhcnNbMF0gPSAncyc7XHJcbiAgICBsZXQgbmV4dE9mZnNldDogbnVtYmVyID0gMTtcclxuXHJcbiAgICAvLyBMb29wIG92ZXIgc3RyaW5nLCBmaW5kIGFsbCB0aGUgJz0nLCAnLCcgYW5kICcqJyB0aGF0IGFyZSBub3QgcHJlY2VlZGVkIGJ5IGEgJ1xcJy5cclxuICAgIGZvciAoaSA9IDE7IGkgPCBzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlmICgoc1tpXSA9PT0gJz0nIHx8IHNbaV0gPT09ICcsJykgJiYgc1tpIC0gMV0gIT09ICdcXFxcJykge1xyXG4gICAgICAgIG9mZnNldHNbbmV4dE9mZnNldF0gPSBpICsgMTtcclxuICAgICAgICBvZmZzZXRzQ2hhcnNbbmV4dE9mZnNldF0gPSBzW2ldO1xyXG4gICAgICAgIG5leHRPZmZzZXQrKztcclxuICAgICAgfVxyXG4gICAgICBpZiAoc1tpXSA9PT0gJyonKSB7XHJcbiAgICAgICAgcyA9IE5TdHJpbmcuUmVtb3ZlKHMsIGksIDEpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChzW2ldID09PSAnXFxcXCcpIHtcclxuICAgICAgICBzID0gTlN0cmluZy5SZW1vdmUocywgaSwgMSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBhZGQgdGhlIGZpbmFsIG9mZnNldCBmb3IgdGhlIGVuZCBvZiB0aGUgc3RyaW5nXHJcbiAgICBvZmZzZXRzW25leHRPZmZzZXRdID0gcy5sZW5ndGggKyAxO1xyXG4gICAgb2Zmc2V0c0NoYXJzW25leHRPZmZzZXRdID0gJ1xcMCc7XHJcbiAgICBuZXh0T2Zmc2V0Kys7XHJcblxyXG4gICAgLy8gZ28gb3ZlciB0aGUgY2FsY3VsYXRlZCBvZmZzZXRzLiB0aGUgbGFzdCBvbmUgaXMgdGhlIGVuZCBvZiB0aGUgc3RyaW5nLCBzbyBpdCBpcyBpZ25vcmVkXHJcbiAgICBmb3IgKGkgPSAwOyBpIDwgbmV4dE9mZnNldCAtIDE7IGkrKykge1xyXG4gICAgICAvLyBnZXQgdGhlIHZhcmlhYmxlIG5hbWVcclxuICAgICAgbmFtZSA9IHMuc3Vic3RyKG9mZnNldHNbaV0sIG9mZnNldHNbaSArIDFdIC0gb2Zmc2V0c1tpXSAtIDEpO1xyXG5cclxuICAgICAgLy8gaXMgdGhlcmUgYSB2YWx1ZSwgb3IgaXMgaXQgYW4gZW1wdHkgdmFyaWFibGU/XHJcbiAgICAgIGlmIChzW29mZnNldHNbaSArIDFdIC0gMV0gPT09ICc9Jykge1xyXG4gICAgICAgIGkrKztcclxuICAgICAgICBsZXQgdmFsSW5pdDogbnVtYmVyID0gaTtcclxuICAgICAgICBsZXQgYWxsb3dlZFNlcGFyYXRvcnM6IG51bWJlciA9IHRoaXMuZ2V0QWxsb3dlZFNlcGFyYXRvcnMobmFtZSk7XHJcbiAgICAgICAgZm9yIChsZXQgc2VwOiBudW1iZXIgPSAwOyBzZXAgPCBhbGxvd2VkU2VwYXJhdG9yczsgc2VwKyspIHtcclxuICAgICAgICAgIGlmIChvZmZzZXRzQ2hhcnNbaSArIDFdID09PSAnLCcpXHJcbiAgICAgICAgICAgIGkrKztcclxuICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIGdldCB0aGUgdmFsdWVcclxuICAgICAgICB2YWwgPSBzLnN1YnN0cihvZmZzZXRzW3ZhbEluaXRdLCBvZmZzZXRzW2kgKyAxXSAtIG9mZnNldHNbdmFsSW5pdF0gLSAxKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdmFsID0gbnVsbDtcclxuXHJcbiAgICAgIC8vIGlzIGl0IGEgcmVzZXJ2ZWQgdmFyaWFibGU/XHJcbiAgICAgIGlmICh0aGlzLmlzUmVzZXJ2ZWRMb2dpY2FsTmFtZShuYW1lKSkge1xyXG4gICAgICAgIGFsbE9LID0gZmFsc2U7XHJcbiAgICAgICAgY29udGludWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIGlmIHRoZXJlJ3Mgbm8gc2VjdGlvbiBuYW1lLCBhZGQgdGhlIGRlZmF1bHQgb25lXHJcbiAgICAgIGlmIChuYW1lWzBdICE9PSAnWycpXHJcbiAgICAgICAgbmFtZSA9IE5TdHJpbmcuSW5zZXJ0KG5hbWUsIDAsIENvbnN0SW50ZXJmYWNlLklOSV9TRUNUSU9OX01BR0lDX0VOVl9CUkFDS0VUUyk7XHJcblxyXG4gICAgICAvLyBJZiBpdCdzIG5vdCBhIGxvZ2ljYWwgbmFtZSwgaXQgaXMgY2FzZSBpbnNlbnNpdGl2ZVxyXG4gICAgICBpZiAoIW5hbWUuc3RhcnRzV2l0aChDb25zdEludGVyZmFjZS5JTklfU0VDVElPTl9MT0dJQ0FMX05BTUVTX0JSQUNLRVRTKSlcclxuICAgICAgICBuYW1lID0gbmFtZS50b1VwcGVyQ2FzZSgpO1xyXG4gICAgICBuYW1lID0gbmFtZS50cmltKCk7XHJcbiAgICAgIHZhbCA9IHZhbC50cmltKCk7XHJcbiAgICAgIHNlbmRUb1NlcnZlciA9IHRydWU7XHJcbiAgICAgIGlmICghTlN0cmluZy5Jc051bGxPckVtcHR5KHZhbCkgfHxcclxuICAgICAgICBuYW1lLnN0YXJ0c1dpdGgoQ29uc3RJbnRlcmZhY2UuSU5JX1NFQ1RJT05fTE9HSUNBTF9OQU1FU19CUkFDS0VUUykpIHtcclxuICAgICAgICAvLyBJZiB3ZSdyZSBnb2luZyB0byBzZW5kIGl0IHRvIHRoZSBzZXJ2ZXIgTk9XLCB3ZSBkb24ndCBuZWVkIGl0IGluIHRoZSBjaGFuZ2VzIGxpc3RcclxuICAgICAgICBzdXBlci5zZXRWYWx1ZShuYW1lLCBuZXcgTWlycm9yU3RyaW5nKHZhbCksICF1cGRhdGVJbmkpO1xyXG4gICAgICAgIHRoaXMuY2hlY2tTZXRJbkVudmlyb25tZW50KG5hbWUsIHZhbCk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZVxyXG4gICAgICAgIHN1cGVyLnJlbW92ZShuYW1lKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBpZiBzaG91bGQgdXBkYXRlIHRoZSBpbmkgZmlsZSwgYW5kIHdlIGhhdmUgbW9kaWZpZWQgdmFyaWFibGVzLCB1cGRhdGUgdGhlIHNlcnZlci5cclxuICAgIGlmICh1cGRhdGVJbmkgJiYgc2VuZFRvU2VydmVyKSB7XHJcbiAgICAgIGxldCBjbWQ6IElDbGllbnRDb21tYW5kID0gQ29tbWFuZEZhY3RvcnkuQ3JlYXRlSW5pcHV0Rm9yY2VXcml0ZUNvbW1hbmQoc2VydmVyVmFsKTtcclxuICAgICAgQWNjZXNzSGVscGVyLm1nRGF0YVRhYmxlLmdldE1HRGF0YSgwKS5DbWRzVG9TZXJ2ZXIuQWRkKGNtZCk7XHJcblxyXG4gICAgICAvLyBleGVjdXRlIGNsaWVudCB0byBzZXJ2ZXIgY29tbWFuZHNcclxuICAgICAgYXdhaXQgUmVtb3RlQ29tbWFuZHNQcm9jZXNzb3IuR2V0SW5zdGFuY2UoKS5FeGVjdXRlKENvbW1hbmRzUHJvY2Vzc29yQmFzZV9TZW5kaW5nSW5zdHJ1Y3Rpb24uT05MWV9DT01NQU5EUyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYWxsT0s7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgQ2hlY2tzIGlmIHRoZSB2YXJpYWJsZSBpcyBhIHJlc2VydmVkIGxvZ2ljYWwgbmFtZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJuYW1lXCI+IGVudiB2YXJpYWJsZSBuYW1lIDwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPiB0cnVlIGlmIGl0IGlzIHJlc2VydmVkIDwvcmV0dXJucz5cclxuICBwcml2YXRlIGlzUmVzZXJ2ZWRMb2dpY2FsTmFtZShuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcclxuXHJcbiAgICAvLyBSZXNlcnZlZCBsb2dpY2FsIG5hbWVzIG1heSBiZSBhY2Nlc3NlZCB3aXRob3V0IGEgc2VjdGlvbiBuYW1lLCBidXQgYXJlIHN0b3JlZCBhcyBsb2dpY2FsIG5hbWVzLFxyXG4gICAgLy8gc28gaWYgd2UgZG9uJ3QgaGF2ZSBhIHNlY3Rpb24gbmFtZSwgaW5zZXJ0IHRoZSBsb2dpY2FsIHNlY3Rpb24gYW5kIHNlYXJjaCB0aGUgdGFibGVcclxuICAgIGlmICghbmFtZS5zdGFydHNXaXRoKFwiW1wiKSkge1xyXG4gICAgICBuYW1lID0gTlN0cmluZy5JbnNlcnQobmFtZSwgMCwgQ29uc3RJbnRlcmZhY2UuSU5JX1NFQ1RJT05fTE9HSUNBTF9OQU1FU19CUkFDS0VUUyk7XHJcbiAgICAgIGlmICh0aGlzLnZhbHVlcy5Db250YWluc0tleShuYW1lKSAmJiB0aGlzLnZhbHVlcy5nZXRfSXRlbShuYW1lKS5pc1Jlc2VydmVkKCkpXHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJucyB0aGUgbnVtYmVyIG9mIHNlcGVyYXRvcnMgYWxsb3dlZCBmb3IgZW50cmllcyBvZiB0aGlzIHNlY3Rpb24uIG51bWJlciBhcmUgYmFzZWQgb25cclxuICAvLy8gICBkYXRhIGluIGVudl9rZXJuLmNwcDogZW52X2RlZl9wYXJzZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJuYW1lXCI+PC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIHByaXZhdGUgZ2V0QWxsb3dlZFNlcGFyYXRvcnMobmFtZTogc3RyaW5nKTogbnVtYmVyIHtcclxuICAgIGlmIChuYW1lLmNoYXJBdCgwKSAhPT0gJ1snKVxyXG4gICAgICByZXR1cm4gMDtcclxuXHJcbiAgICBsZXQgc2VjdGlvbjogc3RyaW5nID0gbmFtZS5zdWJzdHIoMSwgbmFtZS5pbmRleE9mKCddJykgLyonXScqLyAtIDEpO1xyXG4gICAgbGV0IHBhcmFtOiBzdHJpbmcgPSBuYW1lLnN1YnN0cihuYW1lLmluZGV4T2YoJ10nKSAvKiddJyovICsgMSk7XHJcblxyXG4gICAgc3dpdGNoIChzZWN0aW9uLnRvVXBwZXJDYXNlKCkpIHtcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5JTklfU0VDVElPTl9NQUdJQ19FTlY6XHJcbiAgICAgICAgaWYgKHBhcmFtLnRvVXBwZXJDYXNlKCkgPT09IENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfTEFOR1VBR0UudG9VcHBlckNhc2UoKSlcclxuICAgICAgICAgIHJldHVybiA5OTk7XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgcmV0dXJuIDA7XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuSU5JX1NFQ1RJT05fTUFHSUNfU1lTVEVNUzpcclxuICAgICAgICByZXR1cm4gODtcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5JTklfU0VDVElPTl9NQUdJQ19EQk1TOlxyXG4gICAgICAgIHJldHVybiAxMztcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5JTklfU0VDVElPTl9NQUdJQ19TRVJWRVJTOlxyXG4gICAgICAgIHJldHVybiA2O1xyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLklOSV9TRUNUSU9OX01BR0lDX0NPTU1TOlxyXG4gICAgICAgIHJldHVybiAyO1xyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLklOSV9TRUNUSU9OX01BR0lDX1BSSU5URVJTOlxyXG4gICAgICAgIHJldHVybiAzO1xyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLklOSV9TRUNUSU9OX01BR0lDX1NZU1RFTV9NRU5VOlxyXG4gICAgICAgIHJldHVybiAxMTtcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5JTklfU0VDVElPTl9NQUdJQ19EQVRBQkFTRVM6XHJcbiAgICAgICAgcmV0dXJuIDIxO1xyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLklOSV9TRUNUSU9OX01BR0lDX0xBTkdVQUdFOlxyXG4gICAgICAgIHJldHVybiAxO1xyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLklOSV9TRUNUSU9OX01BR0lDX1NFUlZJQ0VTOlxyXG4gICAgICAgIHJldHVybiA4O1xyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLklOSV9TRUNUSU9OX1RPT0xTX01FTlU6XHJcbiAgICAgICAgcmV0dXJuIDc7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgQ2hlY2sgaWYgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIGNoYW5nZSBhZmZlY3RzIHRoZSBlbnZpcm9ubWVudCB2YWx1ZXMsXHJcbiAgLy8vICAgYW5kIGNoYW5nZSB0aGUgZW52aXJvbm1lbnQgZGF0YSBhY2NvcmRpbmdseVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJuYW1lXCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInZhbFwiPjwvcGFyYW0+XHJcbiAgcHJpdmF0ZSBjaGVja1NldEluRW52aXJvbm1lbnQobmFtZTogc3RyaW5nLCB2YWw6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaWYgKG5hbWUuc3RhcnRzV2l0aChDb25zdEludGVyZmFjZS5JTklfU0VDVElPTl9NQUdJQ19FTlZfQlJBQ0tFVFMpKSB7XHJcbiAgICAgIG5hbWUgPSBuYW1lLnN1YnN0cihDb25zdEludGVyZmFjZS5JTklfU0VDVElPTl9NQUdJQ19FTlZfQlJBQ0tFVFMubGVuZ3RoKTtcclxuXHJcbiAgICAgIHN3aXRjaCAobmFtZS50b0xvd2VyQ2FzZSgpKSB7XHJcbiAgICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX0RFQ0lNQUxfU0VQQVJBVE9SOlxyXG4gICAgICAgICAgRW52aXJvbm1lbnQuSW5zdGFuY2Uuc2V0RGVjaW1hbFNlcGFyYXRvcih2YWxbMF0pO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX0RBVEU6XHJcbiAgICAgICAgICBEaXNwbGF5Q29udmVydG9yLkluc3RhbmNlLnNldERhdGVDaGFyKHZhbFswXS5jaGFyQ29kZUF0KDApKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9USU1FOlxyXG4gICAgICAgICAgRW52aXJvbm1lbnQuSW5zdGFuY2Uuc2V0VGltZVNlcGFyYXRvcih2YWxbMF0pO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX09XTkVSOlxyXG4gICAgICAgICAgRW52aXJvbm1lbnQuSW5zdGFuY2Uuc2V0T3duZXIodmFsKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9EQVRFTU9ERTpcclxuICAgICAgICAgIEVudmlyb25tZW50Lkluc3RhbmNlLnNldERhdGVNb2RlKExhc3RGb2N1c2VkTWFuYWdlci5JbnN0YW5jZS5nZXRDdXJyVGFzaygpLmdldENvbXBJZHgoKSwgdmFsWzBdKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9DRU5UVVJZOlxyXG4gICAgICAgICAgRW52aXJvbm1lbnQuSW5zdGFuY2Uuc2V0Q2VudHVyeShMYXN0Rm9jdXNlZE1hbmFnZXIuSW5zdGFuY2UuZ2V0Q3VyclRhc2soKS5nZXRDb21wSWR4KCksIE5OdW1iZXIuUGFyc2UodmFsKSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfSURMRVRJTUU6XHJcbiAgICAgICAgICBFbnZpcm9ubWVudC5JbnN0YW5jZS5zZXRJZGxlVGltZShMYXN0Rm9jdXNlZE1hbmFnZXIuSW5zdGFuY2UuZ2V0Q3VyclRhc2soKS5nZXRDb21wSWR4KCksIE5OdW1iZXIuUGFyc2UodmFsKSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfVVBEX0lOX1FVRVJZX0xPV0VSOlxyXG4gICAgICAgICAgRW52aXJvbm1lbnQuSW5zdGFuY2Uuc2V0QWxsb3dVcGRhdGVJblF1ZXJ5TW9kZShMYXN0Rm9jdXNlZE1hbmFnZXIuSW5zdGFuY2UuZ2V0Q3VyclRhc2soKS5nZXRDb21wSWR4KCksXHJcbiAgICAgICAgICAgIHZhbFswXSA9PT0gJzEnKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9DUkVfSU5fTU9ESUZZX0xPV0VSOlxyXG4gICAgICAgICAgRW52aXJvbm1lbnQuSW5zdGFuY2Uuc2V0QWxsb3dDcmVhdGVJbk1vZGlmeU1vZGUoTGFzdEZvY3VzZWRNYW5hZ2VyLkluc3RhbmNlLmdldEN1cnJUYXNrKCkuZ2V0Q29tcElkeCgpLFxyXG4gICAgICAgICAgICB2YWxbMF0gPT09ICcxJyk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfQ09OVEVYVF9JTkFDVElWSVRZX1RJTUVPVVRfTE9XRVI6XHJcbiAgICAgICAgICBFbnZpcm9ubWVudC5JbnN0YW5jZS5zZXRDb250ZXh0SW5hY3Rpdml0eVRpbWVvdXQoTk51bWJlci5QYXJzZSh2YWwpKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9DT05URVhUX0lOQUNUSVZJVFlfV0FSTklOR19USU1FX0xPV0VSOlxyXG4gICAgICAgICAgRW52aXJvbm1lbnQuSW5zdGFuY2Uuc2V0Q29udGV4dEluYWN0aXZpdHlXYXJuaW5nVGltZShOTnVtYmVyLlBhcnNlKHZhbCkpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX0NPTlRFWFRfVU5MT0FEX1RJTUVPVVRfTE9XRVI6XHJcbiAgICAgICAgICBFbnZpcm9ubWVudC5JbnN0YW5jZS5zZXRDb250ZXh0VW5sb2FkVGltZW91dChOTnVtYmVyLlBhcnNlKHZhbCkpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX1RFUk1JTkFMOlxyXG4gICAgICAgICAgRW52aXJvbm1lbnQuSW5zdGFuY2Uuc2V0VGVybWluYWwoTk51bWJlci5QYXJzZSh2YWwpKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgdHJhbnNsYXRlIGxvZ2ljYWwgbmFtZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJpZHhcIj5pbmRleCBvZiB0aGUgbG9naWNhbCBuYW1lPC9wYXJhbT5cclxuICB0cmFuc2xhdGUobG9naWNhbE5hbWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBsZXQgc3RyaW5nQnVpbGRlcjogU3RyaW5nQnVpbGRlciA9IG5ldyBTdHJpbmdCdWlsZGVyKGxvZ2ljYWxOYW1lKTtcclxuICAgIHRoaXMubG9nKHN0cmluZ0J1aWxkZXIpO1xyXG4gICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIuVG9TdHJpbmcoKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT48L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJzdHJpbmdCbGRyXCI+PC9wYXJhbT5cclxuICBwcml2YXRlIGxvZyhzdHJpbmdCbGRyOiBTdHJpbmdCdWlsZGVyKTogdm9pZCB7XHJcbiAgICBsZXQgZmluaXNoZWQ6IGJvb2xlYW47XHJcbiAgICBkbyB7XHJcbiAgICAgIGxldCBvZmZzZXQ6IG51bWJlciA9IDA7XHJcbiAgICAgIGZpbmlzaGVkID0gdHJ1ZTtcclxuICAgICAgd2hpbGUgKG9mZnNldCA8IHN0cmluZ0JsZHIuTGVuZ3RoICYmIHN0cmluZ0JsZHIuZ2V0X0l0ZW0ob2Zmc2V0KSA+ICdcXDAnLyonXHUwMDAwJyovKSB7XHJcblxyXG4gICAgICAgIC8vICckJyB3YXMgZGVmaW5lIHRoZSBsb2dpY2FsIG5hbWUsIG5vdCB1c2VkIGFueSBtb3JlXHJcbiAgICAgICAgaWYgKHN0cmluZ0JsZHIuZ2V0X0l0ZW0ob2Zmc2V0KSA9PT0gJyUnKSB7XHJcbiAgICAgICAgICBsZXQgb2xkTGVuZ3RoOiBudW1iZXIgPSBzdHJpbmdCbGRyLkxlbmd0aDtcclxuICAgICAgICAgIG9mZnNldCA9IHRoaXMubG9nX3RyYW5zKHN0cmluZ0JsZHIsIG9mZnNldCk7XHJcbiAgICAgICAgICBpZiAob2xkTGVuZ3RoICE9PSBzdHJpbmdCbGRyLkxlbmd0aClcclxuICAgICAgICAgICAgZmluaXNoZWQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgb2Zmc2V0ID0gb2Zmc2V0ICsgMTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgd2hpbGUgKCFmaW5pc2hlZCk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+PC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwic3RyaW5nQmxkclwiPjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJvZmZzZXRcIj48L3BhcmFtPlxyXG4gIHByaXZhdGUgbG9nX3RyYW5zKHN0cmluZ0JsZHI6IFN0cmluZ0J1aWxkZXIsIG9mZnNldDogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgIGxldCBpZ25vcmVUcmFuczogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgbGV0IHN0YXJ0U3ltOiBudW1iZXIgPSBvZmZzZXQ7XHJcbiAgICBsZXQgZW5kU3ltOiBudW1iZXIgPSBvZmZzZXQgKyAxO1xyXG5cclxuICAgIC8vIGZpbmQgdGhlIGVuZCBvZiB0aGUgc3ltYm9sXHJcbiAgICB3aGlsZSAoZW5kU3ltIDwgc3RyaW5nQmxkci5MZW5ndGgpIHtcclxuICAgICAgaWYgKHN0cmluZ0JsZHIuZ2V0X0l0ZW0oZW5kU3ltKSA9PT0gJyUnKVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBlbmRTeW0rKztcclxuICAgIH1cclxuXHJcbiAgICAvLyBhZGQgMSB0byB0aGUgbGVuIHRvIGdldCB0byB0aGUgZW5kIG9mIHRoZSBzeW1ib2wgb3IgaWYgbm8gZW5kIHN5bWJvbCB3YXMgZm91bmQgYWRkXHJcbiAgICBpZiAoZW5kU3ltID49IHN0cmluZ0JsZHIuTGVuZ3RoKSB7XHJcbiAgICAgIG9mZnNldCA9IGVuZFN5bTtcclxuICAgICAgaWdub3JlVHJhbnMgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoc3RyaW5nQmxkci5nZXRfSXRlbShlbmRTeW0pICE9PSAnJScpXHJcbiAgICAgIG9mZnNldCsrO1xyXG5cclxuICAgIGlmICghaWdub3JlVHJhbnMpIHtcclxuICAgICAgbGV0IHN5bTogc3RyaW5nID0gQ29uc3RJbnRlcmZhY2UuSU5JX1NFQ1RJT05fTE9HSUNBTF9OQU1FU19CUkFDS0VUUyArXHJcbiAgICAgICAgc3RyaW5nQmxkci5Ub1N0cmluZyhzdGFydFN5bSArIDEsIGVuZFN5bSAtIHN0YXJ0U3ltIC0gMSk7XHJcbiAgICAgIGxldCB0cmFuczogc3RyaW5nID0gdGhpcy5nZXQoc3ltKTtcclxuXHJcbiAgICAgIC8vIHNldCB0aGUgb2Zmc2V0IHRvIHRoZSBuZXh0IGNoYXIgYWZ0ZXIgdGhlIGVuZGluZyAlIG9mIHRoZSBuYW1lXHJcbiAgICAgIGlmICh0cmFucyA9PT0gbnVsbCkge1xyXG4gICAgICAgIHN0cmluZ0JsZHIuUmVwbGFjZShzdHJpbmdCbGRyLlRvU3RyaW5nKG9mZnNldCwgZW5kU3ltICsgMSAtIG9mZnNldCksIFwiXCIsIG9mZnNldCwgZW5kU3ltICsgMSAtIG9mZnNldCk7XHJcbiAgICAgICAgb2Zmc2V0ICs9IDE7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgc3RyaW5nQmxkci5SZXBsYWNlKHN0cmluZ0JsZHIuVG9TdHJpbmcoc3RhcnRTeW0sIGVuZFN5bSArIDEgLSBzdGFydFN5bSksIHRyYW5zLCBzdGFydFN5bSxcclxuICAgICAgICAgIGVuZFN5bSArIDEgLSBzdGFydFN5bSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBvZmZzZXQ7XHJcbiAgfVxyXG59XHJcbiJdfQ==
347
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW52VmFyaWFibGVzVGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL2Vudi9FbnZWYXJpYWJsZXNUYWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLHdDQUF3QyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDbEYsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRXJFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUVqRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDekUsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDMUUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBSzVDLE1BQU0sT0FBTyxjQUFlLFNBQVEsWUFBMEI7SUFNNUQ7UUFDRSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxjQUFjLENBQUMsZ0JBQWdCLENBQUM7SUFDcEQsQ0FBQztJQUtELEdBQUcsQ0FBQyxDQUFTO1FBQ1gsSUFBSSxPQUFPLEdBQVcsSUFBSSxDQUFDO1FBQzNCLElBQUksR0FBRyxHQUFXLElBQUksQ0FBQztRQUd2QixJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FB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QUFNLElBQUksQ0FBQyxDQUFDO2FBQ2I7aUJBQ0k7Z0JBQ0gsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxNQUFNLEdBQUcsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQ3RGLE1BQU0sR0FBRyxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUM7YUFDMUI7U0FDRjtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7O0FBemRNLHVCQUFRLEdBQW1CLElBQUksY0FBYyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbW1hbmRzUHJvY2Vzc29yQmFzZV9TZW5kaW5nSW5zdHJ1Y3Rpb259IGZyb20gXCIuLi9Db21tYW5kc1Byb2Nlc3NvckJhc2VcIjtcclxuaW1wb3J0IHtNaXJyb3JQcm1NYXB9IGZyb20gXCIuLi91dGlsL1BybU1hcFwiO1xyXG5pbXBvcnQge05OdW1iZXIsIE5TdHJpbmcsIFN0cmluZ0J1aWxkZXJ9IGZyb20gXCJAbWFnaWMteHBhL21zY29yZWxpYlwiO1xyXG5cclxuaW1wb3J0IHtEaXNwbGF5Q29udmVydG9yfSBmcm9tIFwiQG1hZ2ljLXhwYS9ndWlcIjtcclxuaW1wb3J0IHtDb25zdEludGVyZmFjZX0gZnJvbSBcIi4uL0NvbnN0SW50ZXJmYWNlXCI7XHJcbmltcG9ydCB7SUNsaWVudENvbW1hbmR9IGZyb20gXCIuLi9jb21tYW5kcy9JQ2xpZW50Q29tbWFuZFwiO1xyXG5pbXBvcnQge0NvbW1hbmRGYWN0b3J5fSBmcm9tIFwiLi4vY29tbWFuZHMvQ2xpZW50VG9TZXJ2ZXIvQ29tbWFuZEZhY3RvcnlcIjtcclxuaW1wb3J0IHtSZW1vdGVDb21tYW5kc1Byb2Nlc3Nvcn0gZnJvbSBcIi4uL3JlbW90ZS9SZW1vdGVDb21tYW5kc1Byb2Nlc3NvclwiO1xyXG5pbXBvcnQge0Vudmlyb25tZW50fSBmcm9tIFwiLi9FbnZpcm9ubWVudFwiO1xyXG5pbXBvcnQge0xhc3RGb2N1c2VkTWFuYWdlcn0gZnJvbSBcIi4uL3J0L0xhc3RGb2N1c2VkTWFuYWdlclwiO1xyXG5pbXBvcnQge0FjY2Vzc0hlbHBlcn0gZnJvbSBcIi4uL0FjY2Vzc0hlbHBlclwiO1xyXG5pbXBvcnQge01pcnJvclN0cmluZ30gZnJvbSBcIi4vTWlycm9yU3RyaW5nXCI7XHJcblxyXG4vLy8gPHN1bW1hcnk+XHJcbi8vLyAgIG1hbmFnZXIgb2YgZW52aXJvbm1lbnQgdmFyaWFibGVzXHJcbi8vLyA8L3N1bW1hcnk+XHJcbmV4cG9ydCBjbGFzcyBFbnZQYXJhbXNUYWJsZSBleHRlbmRzIE1pcnJvclBybU1hcDxNaXJyb3JTdHJpbmc+IHtcclxuXHJcbiAgc3RhdGljIEluc3RhbmNlOiBFbnZQYXJhbXNUYWJsZSA9IG5ldyBFbnZQYXJhbXNUYWJsZSgpO1xyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBDVE9SXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBwcml2YXRlIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoTWlycm9yU3RyaW5nKTtcclxuICAgIHRoaXMubWlycm9yZWRJRCA9IENvbnN0SW50ZXJmYWNlLk1HX1RBR19FTlZfUEFSQU07XHJcbiAgfVxyXG5cclxuICAvLyBDaGVjayBpZiB0aGUgdmFsdWUgc2hvdWxkIGJlIHJldHVybmVkIGZyb20gdGhlIGVudmlyb25tZW50LlxyXG4gIC8vIFZlcmlmeSB0aGUgc2VjdGlvbiBuYW1lIGV4aXN0cyBiZWZvcmUgZ2V0dGluZyB0aGUgdmFsdWUgZnJvbSB0aGUgYmFzZSBjbGFzcy5cclxuICAvLyBSZXR1cm4gbnVsbCBpZiB0aGUgdmFsdWUgZG9lcyBub3QgZXhpc3QuXHJcbiAgZ2V0KHM6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBsZXQgdmFsTmFtZTogc3RyaW5nID0gbnVsbDtcclxuICAgIGxldCByZXQ6IHN0cmluZyA9IG51bGw7XHJcblxyXG4gICAgLy8gSWYgc2VjdGlvbiBpcyBub3QgZGVmaW5lZCwgYWRkIHRoZSBkZWZhdWx0IHNlY3Rpb25cclxuICAgIGlmIChzLmNoYXJBdCgwKSAhPT0gJ1snKSB7XHJcbiAgICAgIHZhbE5hbWUgPSBzO1xyXG4gICAgICBzID0gTlN0cmluZy5JbnNlcnQocywgMCwgQ29uc3RJbnRlcmZhY2UuSU5JX1NFQ1RJT05fTUFHSUNfRU5WX0JSQUNLRVRTKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBpZiB3ZSBkbyBoYXZlIHRoZSBzZWN0aW9uIG5hbWUsYWFuZCBpdCBpcyBNQUdJQ19FTlYsIHdlIG5lZWQgdGhlIHZhcmlhYmxlJ3MgbmFtZVxyXG4gICAgZWxzZSBpZiAocy5zdGFydHNXaXRoKENvbnN0SW50ZXJmYWNlLklOSV9TRUNUSU9OX01BR0lDX0VOVl9CUkFDS0VUUykpXHJcbiAgICAgIHZhbE5hbWUgPSBzLnN1YnN0cihDb25zdEludGVyZmFjZS5JTklfU0VDVElPTl9NQUdJQ19FTlZfQlJBQ0tFVFMubGVuZ3RoKTtcclxuXHJcbiAgICAvLyBpZiBpdCBpcyBub3QgYSBsb2dpY2FsIG5hbWUsIGl0IGlzIGNhc2UgaW5zZW5zaXRpdmVcclxuICAgIGlmICghcy5zdGFydHNXaXRoKENvbnN0SW50ZXJmYWNlLklOSV9TRUNUSU9OX0xPR0lDQUxfTkFNRVNfQlJBQ0tFVFMpKVxyXG4gICAgICBzID0gcy50b1VwcGVyQ2FzZSgpO1xyXG4gICAgLy8gY2hlY2sgdGhlIHZhbHVlJ3MgbmFtZSB0byBzZWUgaWYgd2UgbmVlZCB0byBnZXQgaXQgZnJvbSB0aGUgcnVudGltZSBlbnZpcm9ubWVudFxyXG4gICAgaWYgKHZhbE5hbWUgIT09IG51bGwpXHJcbiAgICAgIHJldCA9IHRoaXMuZ2V0RnJvbUVudmlyb25tZW50KHZhbE5hbWUpO1xyXG5cclxuICAgIGlmIChyZXQgIT09IG51bGwpXHJcbiAgICAgIHJldHVybiByZXQ7XHJcblxyXG4gICAgLy8gdmFsdWUgbm90IGluIHJ1bnRpbWUgZW52aXJvbm1lbnQgLSBnZXQgaXQgZnJvbSB0aGUgdGFibGVcclxuICAgIHRyeSB7XHJcbiAgICAgIGxldCByZXN1bHRPYmplY3Q6IE1pcnJvclN0cmluZyA9IHN1cGVyLmdldHZhbHVlKHMpO1xyXG5cclxuICAgICAgaWYgKHJlc3VsdE9iamVjdCAhPT0gbnVsbCkge1xyXG4gICAgICAgIHJldCA9IHJlc3VsdE9iamVjdC5Ub1N0cmluZygpO1xyXG5cclxuICAgICAgICAvLyBJZiBpdCBtYXkgYmUgYSB2YXJpYWJsZSB0aGF0IGJlbG9uZ3MgdG8gdGhlIHNlcnZlcidzIGNvbnRleHQvY29tcG9uZW50LCBwcm9jZXNzIGl0XHJcbiAgICAgICAgaWYgKHZhbE5hbWUgIT09IG51bGwpIHtcclxuICAgICAgICAgIHJldCA9IHRoaXMuZ2V0UHJvY2Vzc2VkVmFsdWUodmFsTmFtZSwgcmV0KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNhdGNoIChleF9CRSkge1xyXG4gICAgICAvLyBpZiBzdHJpbmcgbm90IGluIGRpY3Rpb25hcnlcclxuICAgIH1cclxuICAgIHJldHVybiByZXQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJuIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBpbiBwbGFjZSBcIm51bWJlclwiIGluIHNlY3Rpb24gXCJzZWN0aW9uXCJcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwic2VjdGlvblwiPjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJudW1iZXJcIj48L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgZ2V0bG4oc2VjdGlvbjogc3RyaW5nLCBudW1iZXI6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBzZWN0aW9uID0gc2VjdGlvbi50b1VwcGVyQ2FzZSgpLnRyaW0oKTtcclxuICAgIGxldCBzZWN0aW9uRm91bmQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBsZXQga2V5czogc3RyaW5nW10gPSB0aGlzLnZhbHVlcy5LZXlzO1xyXG5cclxuICAgIC8vIExvb3Agb3ZlciBrZXlzLCBmaW5kIHRob3NlIHRoYXQgc3RhcnQgd2l0aCBvdXIgc2VjdGlvbiBuYW1lXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGV0IGtleTogc3RyaW5nID0ga2V5c1tpXTtcclxuXHJcbiAgICAgIGlmIChrZXkuc3RhcnRzV2l0aChzZWN0aW9uKSkge1xyXG4gICAgICAgIHNlY3Rpb25Gb3VuZCA9IHRydWU7XHJcblxyXG4gICAgICAgIGlmIChudW1iZXIgPiAxKVxyXG4gICAgICAgICAgbnVtYmVyLS07XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIC8vIGZvdW5kIHdoYXQgd2UgbmVlZGVkLCBidWlsZCB0aGUgXCJuYW1lPXZhbHVlXCIgc3RyaW5nXHJcbiAgICAgICAgICByZXR1cm4ga2V5LnN1YnN0cihzZWN0aW9uLmxlbmd0aCkgKyBcIj1cIiArIHRoaXMudmFsdWVzLmdldF9JdGVtKGtleSk7XHJcbiAgICAgIH1cclxuICAgICAgLy8gSWYgd2UgZ290IHRvIHRoZSByaWdodCBzZWN0aW9uIGFuZCBwYXNzZWQgaXQsIG5vIG5lZWQgdG8gY29udGludWUgbG9va2luZ1xyXG4gICAgICBlbHNlIGlmIChzZWN0aW9uRm91bmQpXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgdHJ5IGFuZCBnZXQgdGhlIGVudiB2YXJpYWJsZSdzIHZhbHVlIGZyb20gdGhlIHJ1bnRpbWUgZW52aXJvbm1lbnRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwidmFsTmFtZVwiPjwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBwcml2YXRlIGdldEZyb21FbnZpcm9ubWVudCh2YWxOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgc3dpdGNoICh2YWxOYW1lLnRvTG93ZXJDYXNlKCkpIHtcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX0RFQ0lNQUxfU0VQQVJBVE9SOlxyXG4gICAgICAgIHJldHVybiBFbnZpcm9ubWVudC5JbnN0YW5jZS5HZXREZWNpbWFsKCk7XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9EQVRFOlxyXG4gICAgICAgIHJldHVybiBEaXNwbGF5Q29udmVydG9yLkluc3RhbmNlLmdldERhdGVDaGFyKCkudG9TdHJpbmcoKTtcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX1RJTUU6XHJcbiAgICAgICAgcmV0dXJuIEVudmlyb25tZW50Lkluc3RhbmNlLkdldFRpbWUoKTtcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX09XTkVSOlxyXG4gICAgICAgIHJldHVybiBFbnZpcm9ubWVudC5JbnN0YW5jZS5nZXRPd25lcigpO1xyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfREFURU1PREU6XHJcbiAgICAgICAgcmV0dXJuIEVudmlyb25tZW50Lkluc3RhbmNlLkdldERhdGVNb2RlKExhc3RGb2N1c2VkTWFuYWdlci5JbnN0YW5jZS5nZXRDdXJyVGFzaygpLmdldENvbXBJZHgoKSk7XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9DRU5UVVJZOlxyXG4gICAgICAgIHJldHVybiBFbnZpcm9ubWVudC5JbnN0YW5jZS5HZXRDZW50dXJ5KExhc3RGb2N1c2VkTWFuYWdlci5JbnN0YW5jZS5nZXRDdXJyVGFzaygpLmdldENvbXBJZHgoKSkudG9TdHJpbmcoKTtcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX0lETEVUSU1FOlxyXG4gICAgICAgIHJldHVybiBFbnZpcm9ubWVudC5JbnN0YW5jZS5nZXRJZGxlVGltZShMYXN0Rm9jdXNlZE1hbmFnZXIuSW5zdGFuY2UuZ2V0Q3VyclRhc2soKS5nZXRDb21wSWR4KCkpLnRvU3RyaW5nKCk7XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9VUERfSU5fUVVFUlk6XHJcbiAgICAgICAgcmV0dXJuIEVudmlyb25tZW50Lkluc3RhbmNlLmFsbG93VXBkYXRlSW5RdWVyeU1vZGUoTGFzdEZvY3VzZWRNYW5hZ2VyLkluc3RhbmNlLmdldEN1cnJUYXNrKCkuZ2V0Q29tcElkeCgpKS50b1N0cmluZygpO1xyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfQ1JFX0lOX01PRElGWTpcclxuICAgICAgICByZXR1cm4gRW52aXJvbm1lbnQuSW5zdGFuY2UuYWxsb3dDcmVhdGVJbk1vZGlmeU1vZGUoTGFzdEZvY3VzZWRNYW5hZ2VyLkluc3RhbmNlLmdldEN1cnJUYXNrKCkuZ2V0Q29tcElkeCgpKS50b1N0cmluZygpO1xyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfQ09OVEVYVF9JTkFDVElWSVRZX1RJTUVPVVQ6XHJcbiAgICAgICAgcmV0dXJuIEVudmlyb25tZW50Lkluc3RhbmNlLmdldENvbnRleHRJbmFjdGl2aXR5VGltZW91dCgpLnRvU3RyaW5nKCk7XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9DT05URVhUX1VOTE9BRF9USU1FT1VUOlxyXG4gICAgICAgIHJldHVybiBFbnZpcm9ubWVudC5JbnN0YW5jZS5nZXRDb250ZXh0VW5sb2FkVGltZW91dCgpLnRvU3RyaW5nKCk7XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9URVJNSU5BTDpcclxuICAgICAgICByZXR1cm4gRW52aXJvbm1lbnQuSW5zdGFuY2UuZ2V0VGVybWluYWwoKS50b1N0cmluZygpO1xyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfV0VCQ0xJRU5UX1JFSU5JVF9TRVNTSU9OOlxyXG4gICAgICAgIHJldHVybiBFbnZpcm9ubWVudC5JbnN0YW5jZS5nZXRXZWJDbGllbnRSZWluaXRTZXNzaW9uKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBUaGUgZnVuY3Rpb24gcHJvY2Vzc2VzIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSdzIHZhbHVlLCB0byByZXR1cm4gaXQgaW4gdGhlIHJpZ2h0XHJcbiAgLy8vICAgZm9ybWF0IGZvciBjb250ZXh0L2NvbXBvbmVudCB2YWx1ZXMgdGhhdCBhcmUgbm90IHVzZWQgYnkgdGhlIGNsaWVudC5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwidmFsTmFtZVwiPjwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBwcml2YXRlIGdldFByb2Nlc3NlZFZhbHVlKHZhbE5hbWU6IHN0cmluZywgdmFsOiBzdHJpbmcpOiBzdHJpbmcge1xyXG5cclxuICAgIC8vIFRoZSBsaXN0IG9mIHZhcmlhYmxlcyBpcyBzaW1pbGFyIHRvIHRoYXQgaW4gdGhlIHNlcnZlciwgaW4gZW52X2NvbXAuY3BwLCBFTlY6OmVudl92YWxfdG9fc3RyXHJcbiAgICBzd2l0Y2ggKHZhbE5hbWUudG9Mb3dlckNhc2UoKSkge1xyXG5cclxuICAgICAgLy8gdmFyaWFibGUgaXMgaW50ZWdlclxyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfSFRUUF9USU1FT1VUOlxyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfUlRGX0JVRkZFUl9TSVpFOlxyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfUkFOR0VfUE9QX1RJTUU6XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9URU1QX1BPUF9USU1FOlxyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfQkFUQ0hfUEFJTlRfVElNRTpcclxuICAgICAgICByZXR1cm4gTk51bWJlci5QYXJzZSh2YWwpLnRvU3RyaW5nKCk7XHJcblxyXG4gICAgICAvLyB2YXJpYWJsZSBpcyBib29sZWFuXHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9VU0VfU0lHTkVEX0JST1dTRVJfQ0xJRU5UOlxyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfQ0xPU0VfUFJJTlRFRF9UQUJMRVNfSU5fU1VCVEFTS1M6XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9HRU5FUklDX1RFWFRfUFJJTlRJTkc6XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9ISUdIX1JFU09MVVRJT05fUFJJTlQ6XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9NRVJHRV9UUklNOlxyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfT1JJR0lOQUxfSU1BR0VfTE9BRDpcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX1BSSU5UX0RBVEFfVFJJTTpcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX1BTQ1JJUFRfUFJJTlRfTlQ6XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9TUEVDSUFMX0NPTlZfQUREX1NMQVNIOlxyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfU1BFQ0lBTF9GVUxMX0VYUEFORF9QUklOVDpcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX1NQRUNJQUxfRlVMTF9URVhUOlxyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfU1BFQ0lBTF9MQVNUX0xJTkVfUFJJTlQ6XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9TUEVDSUFMX1BSSU5URVJfT0VNOlxyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfRU1CRURfRk9OVFM6XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9DRU5URVJfU0NSRUVOX0lOX09OTElORTpcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX1JFUE9TSVRJT05fQUZURVJfTU9ESUZZOlxyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfSVNBTV9UUkFOU0FDVElPTjpcclxuICAgICAgICByZXR1cm4gKHZhbFswXSA9PT0gJ1knIHx8IHZhbFswXSA9PT0gJzEnKSA/IFwiWVwiIDogXCJOXCI7XHJcblxyXG4gICAgICAvLyB2YXJpYWJsZSBpcyBhIGNoYXJhY3RlclxyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfVElNRV9TRVBBUkFUT1I6XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9JT1RJTUlORzpcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX1RIT1VTQU5EX1NFUEFSQVRPUjpcclxuICAgICAgICByZXR1cm4gdmFsWzBdLnRvU3RyaW5nKCk7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIHZhbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBTZXQgdGhlIHZhcmlhYmxlOlxyXG4gIC8vLyAgIDEuIHBhcnNlIHRoZSBzdHJpbmdcclxuICAvLy8gICAyLiBjcmVhdGUgdGhlIHBhcmFtL3ZhbHVlIGNvdXBsZXNcclxuICAvLy8gICAzLiBmb3IgZWFjaCBjb3VwbGU6XHJcbiAgLy8vICAgM2EuIHZlcmlmeSB0aGUgc2VjdGlvbiBuYW1lIGV4aXN0c1xyXG4gIC8vLyAgIDNiLiB2ZXJpZnkgdGhlIHZhcmlhYmxlIGlzIG5vdCB1bm1vZGlmaWVhYmxlXHJcbiAgLy8vICAgM2MuIHNldCB0aGUgdmFyaWFibGUgaW4gdGhlIGJhc2UgY2xhc3NcclxuICAvLy8gICAzZC4gY2hlY2sgYW5kIGNoYW5nZSB0aGUgZW52aXJvbm1lbnQgZGF0YSBpZiBuZWVkZWRcclxuICAvLy8gICA0LiBJZiByZXF1aXJlZCwgc2VuZCB0aGUgZGF0YSB0byB0aGUgc2VydmVyXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInNcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwidXBkYXRlSW5pXCI+PC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIHB1YmxpYyBhc3luYyBzZXQoczogc3RyaW5nLCB1cGRhdGVJbmk6IGJvb2xlYW4pOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIGxldCBhbGxPSzogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBsZXQgc2VuZFRvU2VydmVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBsZXQgbmFtZTogc3RyaW5nLCB2YWw7XHJcbiAgICBsZXQgaTogbnVtYmVyO1xyXG4gICAgbGV0IHNlcnZlclZhbDogc3RyaW5nID0gcztcclxuXHJcbiAgICAvLyBTdHJpbmcgcGFyc2luZzogZXZlcnkgbnVtYmVyIGluICdvZmZzZXRzJyBzaG93cyB0aGUgb2Zmc2V0IHRvIHRoZSBiZWdpbm5pbmcgb2YgYSBuYW1lIG9yIHZhbHVlXHJcbiAgICAvLyAxc3Qgb2Zmc2V0IGlzIGFsd2F5cyAwXHJcbiAgICBsZXQgb2Zmc2V0czogbnVtYmVyW10gPSBuZXcgQXJyYXkocy5sZW5ndGggKyAxKTtcclxuICAgIGxldCBvZmZzZXRzQ2hhcnM6IHN0cmluZ1tdID0gbmV3IEFycmF5KHMubGVuZ3RoICsgMSk7XHJcblxyXG4gICAgb2Zmc2V0c1swXSA9IDA7XHJcbiAgICBvZmZzZXRzQ2hhcnNbMF0gPSAncyc7XHJcbiAgICBsZXQgbmV4dE9mZnNldDogbnVtYmVyID0gMTtcclxuXHJcbiAgICAvLyBMb29wIG92ZXIgc3RyaW5nLCBmaW5kIGFsbCB0aGUgJz0nLCAnLCcgYW5kICcqJyB0aGF0IGFyZSBub3QgcHJlY2VlZGVkIGJ5IGEgJ1xcJy5cclxuICAgIGZvciAoaSA9IDE7IGkgPCBzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlmICgoc1tpXSA9PT0gJz0nIHx8IHNbaV0gPT09ICcsJykgJiYgc1tpIC0gMV0gIT09ICdcXFxcJykge1xyXG4gICAgICAgIG9mZnNldHNbbmV4dE9mZnNldF0gPSBpICsgMTtcclxuICAgICAgICBvZmZzZXRzQ2hhcnNbbmV4dE9mZnNldF0gPSBzW2ldO1xyXG4gICAgICAgIG5leHRPZmZzZXQrKztcclxuICAgICAgfVxyXG4gICAgICBpZiAoc1tpXSA9PT0gJyonKSB7XHJcbiAgICAgICAgcyA9IE5TdHJpbmcuUmVtb3ZlKHMsIGksIDEpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChzW2ldID09PSAnXFxcXCcpIHtcclxuICAgICAgICBzID0gTlN0cmluZy5SZW1vdmUocywgaSwgMSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBhZGQgdGhlIGZpbmFsIG9mZnNldCBmb3IgdGhlIGVuZCBvZiB0aGUgc3RyaW5nXHJcbiAgICBvZmZzZXRzW25leHRPZmZzZXRdID0gcy5sZW5ndGggKyAxO1xyXG4gICAgb2Zmc2V0c0NoYXJzW25leHRPZmZzZXRdID0gJ1xcMCc7XHJcbiAgICBuZXh0T2Zmc2V0Kys7XHJcblxyXG4gICAgLy8gZ28gb3ZlciB0aGUgY2FsY3VsYXRlZCBvZmZzZXRzLiB0aGUgbGFzdCBvbmUgaXMgdGhlIGVuZCBvZiB0aGUgc3RyaW5nLCBzbyBpdCBpcyBpZ25vcmVkXHJcbiAgICBmb3IgKGkgPSAwOyBpIDwgbmV4dE9mZnNldCAtIDE7IGkrKykge1xyXG4gICAgICAvLyBnZXQgdGhlIHZhcmlhYmxlIG5hbWVcclxuICAgICAgbmFtZSA9IHMuc3Vic3RyKG9mZnNldHNbaV0sIG9mZnNldHNbaSArIDFdIC0gb2Zmc2V0c1tpXSAtIDEpO1xyXG5cclxuICAgICAgLy8gaXMgdGhlcmUgYSB2YWx1ZSwgb3IgaXMgaXQgYW4gZW1wdHkgdmFyaWFibGU/XHJcbiAgICAgIGlmIChzW29mZnNldHNbaSArIDFdIC0gMV0gPT09ICc9Jykge1xyXG4gICAgICAgIGkrKztcclxuICAgICAgICBsZXQgdmFsSW5pdDogbnVtYmVyID0gaTtcclxuICAgICAgICBsZXQgYWxsb3dlZFNlcGFyYXRvcnM6IG51bWJlciA9IHRoaXMuZ2V0QWxsb3dlZFNlcGFyYXRvcnMobmFtZSk7XHJcbiAgICAgICAgZm9yIChsZXQgc2VwOiBudW1iZXIgPSAwOyBzZXAgPCBhbGxvd2VkU2VwYXJhdG9yczsgc2VwKyspIHtcclxuICAgICAgICAgIGlmIChvZmZzZXRzQ2hhcnNbaSArIDFdID09PSAnLCcpXHJcbiAgICAgICAgICAgIGkrKztcclxuICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIGdldCB0aGUgdmFsdWVcclxuICAgICAgICB2YWwgPSBzLnN1YnN0cihvZmZzZXRzW3ZhbEluaXRdLCBvZmZzZXRzW2kgKyAxXSAtIG9mZnNldHNbdmFsSW5pdF0gLSAxKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdmFsID0gbnVsbDtcclxuXHJcbiAgICAgIC8vIGlzIGl0IGEgcmVzZXJ2ZWQgdmFyaWFibGU/XHJcbiAgICAgIGlmICh0aGlzLmlzUmVzZXJ2ZWRMb2dpY2FsTmFtZShuYW1lKSkge1xyXG4gICAgICAgIGFsbE9LID0gZmFsc2U7XHJcbiAgICAgICAgY29udGludWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIGlmIHRoZXJlJ3Mgbm8gc2VjdGlvbiBuYW1lLCBhZGQgdGhlIGRlZmF1bHQgb25lXHJcbiAgICAgIGlmIChuYW1lWzBdICE9PSAnWycpXHJcbiAgICAgICAgbmFtZSA9IE5TdHJpbmcuSW5zZXJ0KG5hbWUsIDAsIENvbnN0SW50ZXJmYWNlLklOSV9TRUNUSU9OX01BR0lDX0VOVl9CUkFDS0VUUyk7XHJcblxyXG4gICAgICAvLyBJZiBpdCdzIG5vdCBhIGxvZ2ljYWwgbmFtZSwgaXQgaXMgY2FzZSBpbnNlbnNpdGl2ZVxyXG4gICAgICBpZiAoIW5hbWUuc3RhcnRzV2l0aChDb25zdEludGVyZmFjZS5JTklfU0VDVElPTl9MT0dJQ0FMX05BTUVTX0JSQUNLRVRTKSlcclxuICAgICAgICBuYW1lID0gbmFtZS50b1VwcGVyQ2FzZSgpO1xyXG4gICAgICBuYW1lID0gbmFtZS50cmltKCk7XHJcbiAgICAgIHZhbCA9IHZhbC50cmltKCk7XHJcbiAgICAgIHNlbmRUb1NlcnZlciA9IHRydWU7XHJcbiAgICAgIGlmICghTlN0cmluZy5Jc051bGxPckVtcHR5KHZhbCkgfHxcclxuICAgICAgICBuYW1lLnN0YXJ0c1dpdGgoQ29uc3RJbnRlcmZhY2UuSU5JX1NFQ1RJT05fTE9HSUNBTF9OQU1FU19CUkFDS0VUUykpIHtcclxuICAgICAgICAvLyBJZiB3ZSdyZSBnb2luZyB0byBzZW5kIGl0IHRvIHRoZSBzZXJ2ZXIgTk9XLCB3ZSBkb24ndCBuZWVkIGl0IGluIHRoZSBjaGFuZ2VzIGxpc3RcclxuICAgICAgICBzdXBlci5zZXRWYWx1ZShuYW1lLCBuZXcgTWlycm9yU3RyaW5nKHZhbCksICF1cGRhdGVJbmkpO1xyXG4gICAgICAgIHRoaXMuY2hlY2tTZXRJbkVudmlyb25tZW50KG5hbWUsIHZhbCk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZVxyXG4gICAgICAgIHN1cGVyLnJlbW92ZShuYW1lKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBpZiBzaG91bGQgdXBkYXRlIHRoZSBpbmkgZmlsZSwgYW5kIHdlIGhhdmUgbW9kaWZpZWQgdmFyaWFibGVzLCB1cGRhdGUgdGhlIHNlcnZlci5cclxuICAgIGlmICh1cGRhdGVJbmkgJiYgc2VuZFRvU2VydmVyKSB7XHJcbiAgICAgIGxldCBjbWQ6IElDbGllbnRDb21tYW5kID0gQ29tbWFuZEZhY3RvcnkuQ3JlYXRlSW5pcHV0Rm9yY2VXcml0ZUNvbW1hbmQoc2VydmVyVmFsKTtcclxuICAgICAgQWNjZXNzSGVscGVyLm1nRGF0YVRhYmxlLmdldE1HRGF0YSgwKS5DbWRzVG9TZXJ2ZXIuQWRkKGNtZCk7XHJcblxyXG4gICAgICAvLyBleGVjdXRlIGNsaWVudCB0byBzZXJ2ZXIgY29tbWFuZHNcclxuICAgICAgYXdhaXQgUmVtb3RlQ29tbWFuZHNQcm9jZXNzb3IuR2V0SW5zdGFuY2UoKS5FeGVjdXRlKENvbW1hbmRzUHJvY2Vzc29yQmFzZV9TZW5kaW5nSW5zdHJ1Y3Rpb24uT05MWV9DT01NQU5EUyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYWxsT0s7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgQ2hlY2tzIGlmIHRoZSB2YXJpYWJsZSBpcyBhIHJlc2VydmVkIGxvZ2ljYWwgbmFtZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJuYW1lXCI+IGVudiB2YXJpYWJsZSBuYW1lIDwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPiB0cnVlIGlmIGl0IGlzIHJlc2VydmVkIDwvcmV0dXJucz5cclxuICBwcml2YXRlIGlzUmVzZXJ2ZWRMb2dpY2FsTmFtZShuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcclxuXHJcbiAgICAvLyBSZXNlcnZlZCBsb2dpY2FsIG5hbWVzIG1heSBiZSBhY2Nlc3NlZCB3aXRob3V0IGEgc2VjdGlvbiBuYW1lLCBidXQgYXJlIHN0b3JlZCBhcyBsb2dpY2FsIG5hbWVzLFxyXG4gICAgLy8gc28gaWYgd2UgZG9uJ3QgaGF2ZSBhIHNlY3Rpb24gbmFtZSwgaW5zZXJ0IHRoZSBsb2dpY2FsIHNlY3Rpb24gYW5kIHNlYXJjaCB0aGUgdGFibGVcclxuICAgIGlmICghbmFtZS5zdGFydHNXaXRoKFwiW1wiKSkge1xyXG4gICAgICBuYW1lID0gTlN0cmluZy5JbnNlcnQobmFtZSwgMCwgQ29uc3RJbnRlcmZhY2UuSU5JX1NFQ1RJT05fTE9HSUNBTF9OQU1FU19CUkFDS0VUUyk7XHJcbiAgICAgIGlmICh0aGlzLnZhbHVlcy5Db250YWluc0tleShuYW1lKSAmJiB0aGlzLnZhbHVlcy5nZXRfSXRlbShuYW1lKS5pc1Jlc2VydmVkKCkpXHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJucyB0aGUgbnVtYmVyIG9mIHNlcGVyYXRvcnMgYWxsb3dlZCBmb3IgZW50cmllcyBvZiB0aGlzIHNlY3Rpb24uIG51bWJlciBhcmUgYmFzZWQgb25cclxuICAvLy8gICBkYXRhIGluIGVudl9rZXJuLmNwcDogZW52X2RlZl9wYXJzZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJuYW1lXCI+PC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIHByaXZhdGUgZ2V0QWxsb3dlZFNlcGFyYXRvcnMobmFtZTogc3RyaW5nKTogbnVtYmVyIHtcclxuICAgIGlmIChuYW1lLmNoYXJBdCgwKSAhPT0gJ1snKVxyXG4gICAgICByZXR1cm4gMDtcclxuXHJcbiAgICBsZXQgc2VjdGlvbjogc3RyaW5nID0gbmFtZS5zdWJzdHIoMSwgbmFtZS5pbmRleE9mKCddJykgLyonXScqLyAtIDEpO1xyXG4gICAgbGV0IHBhcmFtOiBzdHJpbmcgPSBuYW1lLnN1YnN0cihuYW1lLmluZGV4T2YoJ10nKSAvKiddJyovICsgMSk7XHJcblxyXG4gICAgc3dpdGNoIChzZWN0aW9uLnRvVXBwZXJDYXNlKCkpIHtcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5JTklfU0VDVElPTl9NQUdJQ19FTlY6XHJcbiAgICAgICAgaWYgKHBhcmFtLnRvVXBwZXJDYXNlKCkgPT09IENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfTEFOR1VBR0UudG9VcHBlckNhc2UoKSlcclxuICAgICAgICAgIHJldHVybiA5OTk7XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgcmV0dXJuIDA7XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuSU5JX1NFQ1RJT05fTUFHSUNfU1lTVEVNUzpcclxuICAgICAgICByZXR1cm4gODtcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5JTklfU0VDVElPTl9NQUdJQ19EQk1TOlxyXG4gICAgICAgIHJldHVybiAxMztcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5JTklfU0VDVElPTl9NQUdJQ19TRVJWRVJTOlxyXG4gICAgICAgIHJldHVybiA2O1xyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLklOSV9TRUNUSU9OX01BR0lDX0NPTU1TOlxyXG4gICAgICAgIHJldHVybiAyO1xyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLklOSV9TRUNUSU9OX01BR0lDX1BSSU5URVJTOlxyXG4gICAgICAgIHJldHVybiAzO1xyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLklOSV9TRUNUSU9OX01BR0lDX1NZU1RFTV9NRU5VOlxyXG4gICAgICAgIHJldHVybiAxMTtcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5JTklfU0VDVElPTl9NQUdJQ19EQVRBQkFTRVM6XHJcbiAgICAgICAgcmV0dXJuIDIxO1xyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLklOSV9TRUNUSU9OX01BR0lDX0xBTkdVQUdFOlxyXG4gICAgICAgIHJldHVybiAxO1xyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLklOSV9TRUNUSU9OX01BR0lDX1NFUlZJQ0VTOlxyXG4gICAgICAgIHJldHVybiA4O1xyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLklOSV9TRUNUSU9OX1RPT0xTX01FTlU6XHJcbiAgICAgICAgcmV0dXJuIDc7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgQ2hlY2sgaWYgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIGNoYW5nZSBhZmZlY3RzIHRoZSBlbnZpcm9ubWVudCB2YWx1ZXMsXHJcbiAgLy8vICAgYW5kIGNoYW5nZSB0aGUgZW52aXJvbm1lbnQgZGF0YSBhY2NvcmRpbmdseVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJuYW1lXCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInZhbFwiPjwvcGFyYW0+XHJcbiAgcHJpdmF0ZSBjaGVja1NldEluRW52aXJvbm1lbnQobmFtZTogc3RyaW5nLCB2YWw6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaWYgKG5hbWUuc3RhcnRzV2l0aChDb25zdEludGVyZmFjZS5JTklfU0VDVElPTl9NQUdJQ19FTlZfQlJBQ0tFVFMpKSB7XHJcbiAgICAgIG5hbWUgPSBuYW1lLnN1YnN0cihDb25zdEludGVyZmFjZS5JTklfU0VDVElPTl9NQUdJQ19FTlZfQlJBQ0tFVFMubGVuZ3RoKTtcclxuXHJcbiAgICAgIHN3aXRjaCAobmFtZS50b0xvd2VyQ2FzZSgpKSB7XHJcbiAgICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX0RFQ0lNQUxfU0VQQVJBVE9SOlxyXG4gICAgICAgICAgRW52aXJvbm1lbnQuSW5zdGFuY2Uuc2V0RGVjaW1hbFNlcGFyYXRvcih2YWxbMF0pO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX0RBVEU6XHJcbiAgICAgICAgICBEaXNwbGF5Q29udmVydG9yLkluc3RhbmNlLnNldERhdGVDaGFyKHZhbFswXS5jaGFyQ29kZUF0KDApKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9USU1FOlxyXG4gICAgICAgICAgRW52aXJvbm1lbnQuSW5zdGFuY2Uuc2V0VGltZVNlcGFyYXRvcih2YWxbMF0pO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX09XTkVSOlxyXG4gICAgICAgICAgRW52aXJvbm1lbnQuSW5zdGFuY2Uuc2V0T3duZXIodmFsKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9EQVRFTU9ERTpcclxuICAgICAgICAgIEVudmlyb25tZW50Lkluc3RhbmNlLnNldERhdGVNb2RlKExhc3RGb2N1c2VkTWFuYWdlci5JbnN0YW5jZS5nZXRDdXJyVGFzaygpLmdldENvbXBJZHgoKSwgdmFsWzBdKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9DRU5UVVJZOlxyXG4gICAgICAgICAgRW52aXJvbm1lbnQuSW5zdGFuY2Uuc2V0Q2VudHVyeShMYXN0Rm9jdXNlZE1hbmFnZXIuSW5zdGFuY2UuZ2V0Q3VyclRhc2soKS5nZXRDb21wSWR4KCksIE5OdW1iZXIuUGFyc2UodmFsKSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfSURMRVRJTUU6XHJcbiAgICAgICAgICBFbnZpcm9ubWVudC5JbnN0YW5jZS5zZXRJZGxlVGltZShMYXN0Rm9jdXNlZE1hbmFnZXIuSW5zdGFuY2UuZ2V0Q3VyclRhc2soKS5nZXRDb21wSWR4KCksIE5OdW1iZXIuUGFyc2UodmFsKSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfVVBEX0lOX1FVRVJZX0xPV0VSOlxyXG4gICAgICAgICAgRW52aXJvbm1lbnQuSW5zdGFuY2Uuc2V0QWxsb3dVcGRhdGVJblF1ZXJ5TW9kZShMYXN0Rm9jdXNlZE1hbmFnZXIuSW5zdGFuY2UuZ2V0Q3VyclRhc2soKS5nZXRDb21wSWR4KCksXHJcbiAgICAgICAgICAgIHZhbFswXSA9PT0gJzEnKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9DUkVfSU5fTU9ESUZZX0xPV0VSOlxyXG4gICAgICAgICAgRW52aXJvbm1lbnQuSW5zdGFuY2Uuc2V0QWxsb3dDcmVhdGVJbk1vZGlmeU1vZGUoTGFzdEZvY3VzZWRNYW5hZ2VyLkluc3RhbmNlLmdldEN1cnJUYXNrKCkuZ2V0Q29tcElkeCgpLFxyXG4gICAgICAgICAgICB2YWxbMF0gPT09ICcxJyk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfQ09OVEVYVF9JTkFDVElWSVRZX1RJTUVPVVRfTE9XRVI6XHJcbiAgICAgICAgICBFbnZpcm9ubWVudC5JbnN0YW5jZS5zZXRDb250ZXh0SW5hY3Rpdml0eVRpbWVvdXQoTk51bWJlci5QYXJzZSh2YWwpKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9DT05URVhUX0lOQUNUSVZJVFlfV0FSTklOR19USU1FX0xPV0VSOlxyXG4gICAgICAgICAgRW52aXJvbm1lbnQuSW5zdGFuY2Uuc2V0Q29udGV4dEluYWN0aXZpdHlXYXJuaW5nVGltZShOTnVtYmVyLlBhcnNlKHZhbCkpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX0NPTlRFWFRfVU5MT0FEX1RJTUVPVVRfTE9XRVI6XHJcbiAgICAgICAgICBFbnZpcm9ubWVudC5JbnN0YW5jZS5zZXRDb250ZXh0VW5sb2FkVGltZW91dChOTnVtYmVyLlBhcnNlKHZhbCkpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX1RFUk1JTkFMOlxyXG4gICAgICAgICAgRW52aXJvbm1lbnQuSW5zdGFuY2Uuc2V0VGVybWluYWwoTk51bWJlci5QYXJzZSh2YWwpKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgdHJhbnNsYXRlIGxvZ2ljYWwgbmFtZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJpZHhcIj5pbmRleCBvZiB0aGUgbG9naWNhbCBuYW1lPC9wYXJhbT5cclxuICB0cmFuc2xhdGUobG9naWNhbE5hbWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBsZXQgc3RyaW5nQnVpbGRlcjogU3RyaW5nQnVpbGRlciA9IG5ldyBTdHJpbmdCdWlsZGVyKGxvZ2ljYWxOYW1lKTtcclxuICAgIHRoaXMubG9nKHN0cmluZ0J1aWxkZXIpO1xyXG4gICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIuVG9TdHJpbmcoKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT48L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJzdHJpbmdCbGRyXCI+PC9wYXJhbT5cclxuICBwcml2YXRlIGxvZyhzdHJpbmdCbGRyOiBTdHJpbmdCdWlsZGVyKTogdm9pZCB7XHJcbiAgICBsZXQgZmluaXNoZWQ6IGJvb2xlYW47XHJcbiAgICBkbyB7XHJcbiAgICAgIGxldCBvZmZzZXQ6IG51bWJlciA9IDA7XHJcbiAgICAgIGZpbmlzaGVkID0gdHJ1ZTtcclxuICAgICAgd2hpbGUgKG9mZnNldCA8IHN0cmluZ0JsZHIuTGVuZ3RoICYmIHN0cmluZ0JsZHIuZ2V0X0l0ZW0ob2Zmc2V0KSA+ICdcXDAnLyonXHUwMDAwJyovKSB7XHJcblxyXG4gICAgICAgIC8vICckJyB3YXMgZGVmaW5lIHRoZSBsb2dpY2FsIG5hbWUsIG5vdCB1c2VkIGFueSBtb3JlXHJcbiAgICAgICAgaWYgKHN0cmluZ0JsZHIuZ2V0X0l0ZW0ob2Zmc2V0KSA9PT0gJyUnKSB7XHJcbiAgICAgICAgICBsZXQgb2xkTGVuZ3RoOiBudW1iZXIgPSBzdHJpbmdCbGRyLkxlbmd0aDtcclxuICAgICAgICAgIG9mZnNldCA9IHRoaXMubG9nX3RyYW5zKHN0cmluZ0JsZHIsIG9mZnNldCk7XHJcbiAgICAgICAgICBpZiAob2xkTGVuZ3RoICE9PSBzdHJpbmdCbGRyLkxlbmd0aClcclxuICAgICAgICAgICAgZmluaXNoZWQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgb2Zmc2V0ID0gb2Zmc2V0ICsgMTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgd2hpbGUgKCFmaW5pc2hlZCk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+PC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwic3RyaW5nQmxkclwiPjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJvZmZzZXRcIj48L3BhcmFtPlxyXG4gIHByaXZhdGUgbG9nX3RyYW5zKHN0cmluZ0JsZHI6IFN0cmluZ0J1aWxkZXIsIG9mZnNldDogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgIGxldCBpZ25vcmVUcmFuczogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgbGV0IHN0YXJ0U3ltOiBudW1iZXIgPSBvZmZzZXQ7XHJcbiAgICBsZXQgZW5kU3ltOiBudW1iZXIgPSBvZmZzZXQgKyAxO1xyXG5cclxuICAgIC8vIGZpbmQgdGhlIGVuZCBvZiB0aGUgc3ltYm9sXHJcbiAgICB3aGlsZSAoZW5kU3ltIDwgc3RyaW5nQmxkci5MZW5ndGgpIHtcclxuICAgICAgaWYgKHN0cmluZ0JsZHIuZ2V0X0l0ZW0oZW5kU3ltKSA9PT0gJyUnKVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBlbmRTeW0rKztcclxuICAgIH1cclxuXHJcbiAgICAvLyBhZGQgMSB0byB0aGUgbGVuIHRvIGdldCB0byB0aGUgZW5kIG9mIHRoZSBzeW1ib2wgb3IgaWYgbm8gZW5kIHN5bWJvbCB3YXMgZm91bmQgYWRkXHJcbiAgICBpZiAoZW5kU3ltID49IHN0cmluZ0JsZHIuTGVuZ3RoKSB7XHJcbiAgICAgIG9mZnNldCA9IGVuZFN5bTtcclxuICAgICAgaWdub3JlVHJhbnMgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoc3RyaW5nQmxkci5nZXRfSXRlbShlbmRTeW0pICE9PSAnJScpXHJcbiAgICAgIG9mZnNldCsrO1xyXG5cclxuICAgIGlmICghaWdub3JlVHJhbnMpIHtcclxuICAgICAgbGV0IHN5bTogc3RyaW5nID0gQ29uc3RJbnRlcmZhY2UuSU5JX1NFQ1RJT05fTE9HSUNBTF9OQU1FU19CUkFDS0VUUyArXHJcbiAgICAgICAgc3RyaW5nQmxkci5Ub1N0cmluZyhzdGFydFN5bSArIDEsIGVuZFN5bSAtIHN0YXJ0U3ltIC0gMSk7XHJcbiAgICAgIGxldCB0cmFuczogc3RyaW5nID0gdGhpcy5nZXQoc3ltKTtcclxuXHJcbiAgICAgIC8vIHNldCB0aGUgb2Zmc2V0IHRvIHRoZSBuZXh0IGNoYXIgYWZ0ZXIgdGhlIGVuZGluZyAlIG9mIHRoZSBuYW1lXHJcbiAgICAgIGlmICh0cmFucyA9PT0gbnVsbCkge1xyXG4gICAgICAgIHN0cmluZ0JsZHIuUmVwbGFjZShzdHJpbmdCbGRyLlRvU3RyaW5nKG9mZnNldCwgZW5kU3ltICsgMSAtIG9mZnNldCksIFwiXCIsIG9mZnNldCwgZW5kU3ltICsgMSAtIG9mZnNldCk7XHJcbiAgICAgICAgb2Zmc2V0ICs9IDE7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgc3RyaW5nQmxkci5SZXBsYWNlKHN0cmluZ0JsZHIuVG9TdHJpbmcoc3RhcnRTeW0sIGVuZFN5bSArIDEgLSBzdGFydFN5bSksIHRyYW5zLCBzdGFydFN5bSxcclxuICAgICAgICAgIGVuZFN5bSArIDEgLSBzdGFydFN5bSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBvZmZzZXQ7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,66 @@
1
+ import { ConstInterface } from "../ConstInterface";
2
+ import { ParamParseResult } from "../util/ParamParseResult";
3
+ import { XmlParser } from "@magic-xpa/utils";
4
+ import { Debug, NString } from "@magic-xpa/mscorelib";
5
+ export class MirrorString {
6
+ constructor(s) {
7
+ this._reserved = false;
8
+ this._value = null;
9
+ if (arguments.length === 0) {
10
+ this.constructor_0();
11
+ return;
12
+ }
13
+ this.constructor_1(s);
14
+ }
15
+ constructor_0() {
16
+ this._reserved = false;
17
+ }
18
+ constructor_1(s) {
19
+ this._value = s;
20
+ this._reserved = false;
21
+ }
22
+ mirrorToXML() {
23
+ return ConstInterface.MG_ATTR_ENV_VALUE + "=\"" + XmlParser.escape(this._value) + "\" " +
24
+ ConstInterface.MG_ATTR_ENV_WRITEINI + "=F";
25
+ }
26
+ init(name, xmlParser) {
27
+ let valueStart, valueEnd, reserveStart, paramEnd;
28
+ let xmlData = xmlParser.getXMLdata();
29
+ let valueAttr = ConstInterface.MG_ATTR_ENV_VALUE + "=\"";
30
+ paramEnd = xmlData.indexOf("/>", xmlParser.getCurrIndex());
31
+ valueStart = NString.IndexOf(xmlData, valueAttr, xmlParser.getCurrIndex(), paramEnd - xmlParser.getCurrIndex());
32
+ if (valueStart !== -1) {
33
+ valueStart += valueAttr.length;
34
+ reserveStart = NString.IndexOf(xmlData, ConstInterface.MG_ATTR_ENV_RESERVED + "=\"", xmlParser.getCurrIndex(), paramEnd - xmlParser.getCurrIndex());
35
+ valueEnd = reserveStart !== -1
36
+ ? xmlData.indexOf(ConstInterface.MG_ATTR_ENV_RESERVED + "=\"", valueStart) - 2
37
+ : paramEnd - 1;
38
+ this._value = xmlData.substr(valueStart, valueEnd - valueStart).trim();
39
+ if (reserveStart !== -1) {
40
+ reserveStart += ConstInterface.MG_ATTR_ENV_RESERVED.length + 2;
41
+ this._reserved = (xmlData[reserveStart] === 'Y');
42
+ }
43
+ else
44
+ this._reserved = false;
45
+ xmlParser.setCurrIndex(valueEnd);
46
+ if (name.startsWith(ConstInterface.INI_SECTION_LOGICAL_NAMES_BRACKETS))
47
+ return ParamParseResult.OK;
48
+ else
49
+ return ParamParseResult.TOUPPER;
50
+ }
51
+ else if (NString.IndexOf(xmlData, ConstInterface.MG_ATTR_ENV_REMOVED, xmlParser.getCurrIndex(), paramEnd - xmlParser.getCurrIndex()) !== -1) {
52
+ return ParamParseResult.DELETE;
53
+ }
54
+ else {
55
+ Debug.Assert(false, "bad XML parsing");
56
+ return ParamParseResult.FAILED;
57
+ }
58
+ }
59
+ ToString() {
60
+ return this._value;
61
+ }
62
+ isReserved() {
63
+ return this._reserved;
64
+ }
65
+ }
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlycm9yU3RyaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW5naW5lL3NyYy9lbnYvTWlycm9yU3RyaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDM0MsT0FBTyxFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUVwRCxNQUFNLE9BQU8sWUFBWTtJQU12QixZQUFZLENBQVU7UUFMZCxjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLFdBQU0sR0FBVyxJQUFJLENBQUM7UUFLNUIsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUMxQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDckIsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBS08sYUFBYTtRQUNuQixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDO0lBS08sYUFBYSxDQUFDLENBQVM7UUFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDaEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDekIsQ0FBQztJQUtELFdBQVc7UUFDVCxPQUFPLGNBQWMsQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSztZQUNyRixjQUFjLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDO0lBQy9DLENBQUM7SUFPTSxJQUFJLENBQUMsSUFBWSxFQUFFLFNBQW9CO1FBQzVDLElBQUksVUFBa0IsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLFFBQVEsQ0FBQztRQUN6RCxJQUFJLE9BQU8sR0FBVyxTQUFTLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDN0MsSUFBSSxTQUFTLEdBQVcsY0FBYyxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztRQUVqRSxRQUFRLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7UUFHM0QsVUFBVSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsWUFBWSxFQUFFLEVBQUUsUUFBUSxHQUFHLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQ2hILElBQUksVUFBVSxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ3JCLFVBQVUsSUFBSSxTQUFTLENBQUMsTUFBTSxDQUFDO1lBQy9CLFlBQVksR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxjQUFjLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxFQUFFLFNBQVMsQ0FBQyxZQUFZLEVBQUUsRUFDM0csUUFBUSxHQUFHLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1lBRXZDLFFBQVEsR0FBRyxZQUFZLEtBQUssQ0FBQyxDQUFDO2dCQUM1QixDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUM7Z0JBQzlFLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1lBR2pCLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsUUFBUSxHQUFHLFVBQVUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3ZFLElBQUksWUFBWSxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUN2QixZQUFZLElBQUksY0FBYyxDQUFDLG9CQUFvQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7Z0JBQy9ELElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7YUFDbEQ7O2dCQUVDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBRXpCLFNBQVMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7WUFHakMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxrQ0FBa0MsQ0FBQztnQkFDcEUsT0FBTyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7O2dCQUUzQixPQUFPLGdCQUFnQixDQUFDLE9BQU8sQ0FBQztTQUNuQzthQUNJLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLG1CQUFtQixFQUFFLFNBQVMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxRQUFRLEdBQUcsU0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFHM0ksT0FBTyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7U0FDaEM7YUFDSTtZQUNILEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLGlCQUFpQixDQUFDLENBQUM7WUFDdkMsT0FBTyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7U0FDaEM7SUFDSCxDQUFDO0lBTUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBTUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0lNaXJyb3JYTUx9IGZyb20gXCIuLi91dGlsL0lNaXJyb3JYTUxcIjtcclxuaW1wb3J0IHtDb25zdEludGVyZmFjZX0gZnJvbSBcIi4uL0NvbnN0SW50ZXJmYWNlXCI7XHJcbmltcG9ydCB7UGFyYW1QYXJzZVJlc3VsdH0gZnJvbSBcIi4uL3V0aWwvUGFyYW1QYXJzZVJlc3VsdFwiO1xyXG5pbXBvcnQge1htbFBhcnNlcn0gZnJvbSBcIkBtYWdpYy14cGEvdXRpbHNcIjtcclxuaW1wb3J0IHtEZWJ1ZywgTlN0cmluZ30gZnJvbSBcIkBtYWdpYy14cGEvbXNjb3JlbGliXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgTWlycm9yU3RyaW5nIGltcGxlbWVudHMgSU1pcnJvclhNTCB7XHJcbiAgcHJpdmF0ZSBfcmVzZXJ2ZWQ6IGJvb2xlYW4gPSBmYWxzZTsgLy8gSXMgdGhpcyB2YXJpYWJsZSByZXNlcnZlZCAtIGNhbiBub3QgYmUgY2hhbmdlZCBieSB0aGUgdXNlclxyXG4gIHByaXZhdGUgX3ZhbHVlOiBzdHJpbmcgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpO1xyXG4gIGNvbnN0cnVjdG9yKHM6IHN0cmluZyk7XHJcbiAgY29uc3RydWN0b3Iocz86IHN0cmluZykge1xyXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcclxuICAgICAgdGhpcy5jb25zdHJ1Y3Rvcl8wKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuY29uc3RydWN0b3JfMShzKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBDVE9SXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBwcml2YXRlIGNvbnN0cnVjdG9yXzAoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9yZXNlcnZlZCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIENUT1JcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIHByaXZhdGUgY29uc3RydWN0b3JfMShzOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuX3ZhbHVlID0gcztcclxuICAgIHRoaXMuX3Jlc2VydmVkID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB2YXJpYWJsZSwgZm9yIHRoZSBYTUxcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIG1pcnJvclRvWE1MKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9FTlZfVkFMVUUgKyBcIj1cXFwiXCIgKyBYbWxQYXJzZXIuZXNjYXBlKHRoaXMuX3ZhbHVlKSArIFwiXFxcIiBcIiArXHJcbiAgICAgIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfRU5WX1dSSVRFSU5JICsgXCI9RlwiO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGluaXRpYWxpemUgdGhlIG9iamVjdCBmcm9tIHRoZSBYTUwgYXR0cmlidXRlcyBvZiBhIHNpbmdsZSBwYXJhbS4gVGhlIGV4cGVjdGVkXHJcbiAgLy8vICAgZm9ybWF0IGlzOiBcInZhbHVlPVwiLi4uXCIgcmVzZXJ2ZWQ9XCIuXCIvPlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJ4bWxQYXJzZXJcIj48L3BhcmFtPlxyXG4gIHB1YmxpYyBpbml0KG5hbWU6IFN0cmluZywgeG1sUGFyc2VyOiBYbWxQYXJzZXIpOiBQYXJhbVBhcnNlUmVzdWx0IHtcclxuICAgIGxldCB2YWx1ZVN0YXJ0OiBudW1iZXIsIHZhbHVlRW5kLCByZXNlcnZlU3RhcnQsIHBhcmFtRW5kO1xyXG4gICAgbGV0IHhtbERhdGE6IHN0cmluZyA9IHhtbFBhcnNlci5nZXRYTUxkYXRhKCk7XHJcbiAgICBsZXQgdmFsdWVBdHRyOiBzdHJpbmcgPSBDb25zdEludGVyZmFjZS5NR19BVFRSX0VOVl9WQUxVRSArIFwiPVxcXCJcIjtcclxuXHJcbiAgICBwYXJhbUVuZCA9IHhtbERhdGEuaW5kZXhPZihcIi8+XCIsIHhtbFBhcnNlci5nZXRDdXJySW5kZXgoKSk7XHJcblxyXG4gICAgLy8gZ2V0IHRoZSBvZmZzZXRzIGludG8gdGhlIFhNTCBkYXRhOiBzdGFydCBvZiB2YWx1ZSwgZW5kIG9mIHZhbHVlLCBsb2NhdGlvbiBvZiByZXNlcnZlZCBjaGFyXHJcbiAgICB2YWx1ZVN0YXJ0ID0gTlN0cmluZy5JbmRleE9mKHhtbERhdGEsIHZhbHVlQXR0ciwgeG1sUGFyc2VyLmdldEN1cnJJbmRleCgpLCBwYXJhbUVuZCAtIHhtbFBhcnNlci5nZXRDdXJySW5kZXgoKSk7XHJcbiAgICBpZiAodmFsdWVTdGFydCAhPT0gLTEpIHtcclxuICAgICAgdmFsdWVTdGFydCArPSB2YWx1ZUF0dHIubGVuZ3RoO1xyXG4gICAgICByZXNlcnZlU3RhcnQgPSBOU3RyaW5nLkluZGV4T2YoeG1sRGF0YSwgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9FTlZfUkVTRVJWRUQgKyBcIj1cXFwiXCIsIHhtbFBhcnNlci5nZXRDdXJySW5kZXgoKSxcclxuICAgICAgICBwYXJhbUVuZCAtIHhtbFBhcnNlci5nZXRDdXJySW5kZXgoKSk7XHJcblxyXG4gICAgICB2YWx1ZUVuZCA9IHJlc2VydmVTdGFydCAhPT0gLTFcclxuICAgICAgICA/IHhtbERhdGEuaW5kZXhPZihDb25zdEludGVyZmFjZS5NR19BVFRSX0VOVl9SRVNFUlZFRCArIFwiPVxcXCJcIiwgdmFsdWVTdGFydCkgLSAyXHJcbiAgICAgICAgOiBwYXJhbUVuZCAtIDE7XHJcblxyXG4gICAgICAvLyBmaWxsIHRoZSBvYmplY3QncyBkYXRhXHJcbiAgICAgIHRoaXMuX3ZhbHVlID0geG1sRGF0YS5zdWJzdHIodmFsdWVTdGFydCwgdmFsdWVFbmQgLSB2YWx1ZVN0YXJ0KS50cmltKCk7XHJcbiAgICAgIGlmIChyZXNlcnZlU3RhcnQgIT09IC0xKSB7XHJcbiAgICAgICAgcmVzZXJ2ZVN0YXJ0ICs9IENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfRU5WX1JFU0VSVkVELmxlbmd0aCArIDI7IC8vIHNraXAgPSdcclxuICAgICAgICB0aGlzLl9yZXNlcnZlZCA9ICh4bWxEYXRhW3Jlc2VydmVTdGFydF0gPT09ICdZJyk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZVxyXG4gICAgICAgIHRoaXMuX3Jlc2VydmVkID0gZmFsc2U7XHJcblxyXG4gICAgICB4bWxQYXJzZXIuc2V0Q3VyckluZGV4KHZhbHVlRW5kKTtcclxuXHJcbiAgICAgIC8vIExvZ2ljYWwgbmFtZXMgYXJlIGNhc2Ugc2Vuc2l0aXZlLiBvdGhlcnMgdmFyaWFibGVzIHNob3VsZCBiZSBjaGFuZ2VkIHRvIHVwcGVyIGNhc2VcclxuICAgICAgaWYgKG5hbWUuc3RhcnRzV2l0aChDb25zdEludGVyZmFjZS5JTklfU0VDVElPTl9MT0dJQ0FMX05BTUVTX0JSQUNLRVRTKSlcclxuICAgICAgICByZXR1cm4gUGFyYW1QYXJzZVJlc3VsdC5PSztcclxuICAgICAgZWxzZVxyXG4gICAgICAgIHJldHVybiBQYXJhbVBhcnNlUmVzdWx0LlRPVVBQRVI7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChOU3RyaW5nLkluZGV4T2YoeG1sRGF0YSwgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9FTlZfUkVNT1ZFRCwgeG1sUGFyc2VyLmdldEN1cnJJbmRleCgpLCBwYXJhbUVuZCAtIHhtbFBhcnNlci5nZXRDdXJySW5kZXgoKSkgIT09IC0xKSB7XHJcblxyXG4gICAgICAvLyByZW1vdmUgdGhpcyB2YXJpYWJsZSBmcm9tIHRoZSB0YWJsZVxyXG4gICAgICByZXR1cm4gUGFyYW1QYXJzZVJlc3VsdC5ERUxFVEU7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgRGVidWcuQXNzZXJ0KGZhbHNlLCBcImJhZCBYTUwgcGFyc2luZ1wiKTtcclxuICAgICAgcmV0dXJuIFBhcmFtUGFyc2VSZXN1bHQuRkFJTEVEO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybiB0aGUgc3RyaW5nXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIFRvU3RyaW5nKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgaXMgdGhlIHZhcmlhYmxlIHJlc2VydmVkP1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBpc1Jlc2VydmVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3Jlc2VydmVkO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,7 +1,8 @@
1
1
  import { NString } from "@magic-xpa/mscorelib";
2
2
  import { StorageAttribute, XMLConstants, XmlParser } from "@magic-xpa/utils";
3
3
  import { ExpVal, RecordUtils } from "@magic-xpa/gui";
4
- import { MirrorPrmMap, ParamParseResult } from "../util/PrmMap";
4
+ import { MirrorPrmMap } from "../util/PrmMap";
5
+ import { ParamParseResult } from '../util/ParamParseResult';
5
6
  import { ConstInterface } from "../ConstInterface";
6
7
  import { Environment } from "../env/Environment";
7
8
  export class MirrorExpVal extends ExpVal {
@@ -81,4 +82,4 @@ export class GlobalParams extends MirrorPrmMap {
81
82
  }
82
83
  }
83
84
  GlobalParams.Instance = new GlobalParams();
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2xvYmFsUGFyYW1zVGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL2V4cC9HbG9iYWxQYXJhbXNUYWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGdCQUFnQixFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJELE9BQU8sRUFBQyxZQUFZLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWpELE1BQU0sT0FBTyxZQUFhLFNBQVEsTUFBTTtJQUd0QyxZQUFZLEdBQVk7UUFDdEIsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUMxQixLQUFLLEVBQUUsQ0FBQztZQUNSLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNyQixPQUFPO1NBQ1I7UUFDRCxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVPLGFBQWE7SUFDckIsQ0FBQztJQUtPLGFBQWEsQ0FBQyxHQUFXO1FBQy9CLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxRQUFRLEdBQVksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRXBFLElBQUksUUFBUSxHQUFxQixDQUFDLElBQUksQ0FB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O0FBN0JNLHFCQUFRLEdBQWlCLElBQUksWUFBWSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05TdHJpbmd9IGZyb20gXCJAbWFnaWMteHBhL21zY29yZWxpYlwiO1xyXG5pbXBvcnQge1N0b3JhZ2VBdHRyaWJ1dGUsIFhNTENvbnN0YW50cywgWG1sUGFyc2VyfSBmcm9tIFwiQG1hZ2ljLXhwYS91dGlsc1wiO1xyXG5pbXBvcnQgeyBFeHBWYWwsIFJlY29yZFV0aWxzIH0gZnJvbSBcIkBtYWdpYy14cGEvZ3VpXCI7XHJcbmltcG9ydCB7SU1pcnJvclhNTH0gZnJvbSBcIi4uL3V0aWwvSU1pcnJvclhNTFwiO1xyXG5pbXBvcnQge01pcnJvclBybU1hcCwgUGFyYW1QYXJzZVJlc3VsdH0gZnJvbSBcIi4uL3V0aWwvUHJtTWFwXCI7XHJcbmltcG9ydCB7Q29uc3RJbnRlcmZhY2V9IGZyb20gXCIuLi9Db25zdEludGVyZmFjZVwiO1xyXG5pbXBvcnQgeyBFbnZpcm9ubWVudCB9IGZyb20gXCIuLi9lbnYvRW52aXJvbm1lbnRcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBNaXJyb3JFeHBWYWwgZXh0ZW5kcyBFeHBWYWwgaW1wbGVtZW50cyBJTWlycm9yWE1MIHtcclxuICBjb25zdHJ1Y3RvcigpO1xyXG4gIGNvbnN0cnVjdG9yKHZhbDogRXhwVmFsKTtcclxuICBjb25zdHJ1Y3Rvcih2YWw/OiBFeHBWYWwpIHtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHN1cGVyKCk7XHJcbiAgICAgIHRoaXMuY29uc3RydWN0b3JfMigpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBzdXBlcigpO1xyXG4gICAgdGhpcy5jb25zdHJ1Y3Rvcl8zKHZhbCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbnN0cnVjdG9yXzIoKTogdm9pZCB7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgQ1RPUlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcl8zKHZhbDogRXhwVmFsKTogdm9pZCB7XHJcbiAgICBzdXBlci5Db3B5KHZhbCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbWlycm9yVG9YTUwoKTogc3RyaW5nIHtcclxuICAgIGxldCB0b0Jhc2U2NDogYm9vbGVhbiA9IChFbnZpcm9ubWVudC5JbnN0YW5jZS5HZXREZWJ1Z0xldmVsKCkgPD0gMSk7XHJcblxyXG4gICAgbGV0IGNlbGxBdHRyOiBTdG9yYWdlQXR0cmlidXRlID0gKHRoaXMuQXR0ciA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5CTE9CX1ZFQ1RPUiA/IHRoaXMuVmVjdG9yRmllbGQuZ2V0Q2VsbHNUeXBlKCkgOiBTdG9yYWdlQXR0cmlidXRlLlNLSVApO1xyXG5cclxuICAgIC8vIFN0b3J5IDEzMTk2MSA6IERvIG5vdCBzZXJpYWxpemUgZG90bmV0IHBhcmFtc1xyXG4gICAgbGV0IHZhbHVlOiBzdHJpbmcgPSBcIlwiO1xyXG4gICAgdmFsdWUgPSBSZWNvcmRVdGlscy5pdGVtVmFsVG9YTUwoc3VwZXIuVG9NZ1ZhbCgpLCB0aGlzLkF0dHIsIGNlbGxBdHRyLCB0b0Jhc2U2NCk7XHJcblxyXG4gICAgcmV0dXJuIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfUEFSX0FUVFJTICsgXCI9XFxcIlwiICsgdGhpcy5BdHRyICsgXCJcXFwiIFwiICsgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9MRU4gKyBcIj1cIiArXHJcbiAgICAgIHZhbHVlLmxlbmd0aCArIFwiIFwiICsgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9FTlZfVkFMVUUgKyBcIj1cXFwiXCIgKyB2YWx1ZSArIFwiXFxcIlwiO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGluaXRpYWxpemUgdGhlIG9iamVjdCBmcm9tIHRoZSBYTUwgYnVmZmVyXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInhtbFBhcnNlclwiPjwvcGFyYW0+XHJcbiAgcHVibGljIGluaXQobmFtZTogU3RyaW5nLCB4bWxQYXJzZXI6IFhtbFBhcnNlcik6IFBhcmFtUGFyc2VSZXN1bHQge1xyXG4gICAgbGV0IHZhbHVlT2Zmc2V0OiBudW1iZXIsIGF0dHJPZmZzZXQ6IG51bWJlciwgbGVuT2Zmc2V0OiBudW1iZXIsIHZhbHVlTGVuOiBudW1iZXIsIGxlbk9mZnNldEVuZDogbnVtYmVyLFxyXG4gICAgICBjb3VudDogbnVtYmVyO1xyXG4gICAgbGV0IGN1cnJUeXBlOiBTdG9yYWdlQXR0cmlidXRlO1xyXG4gICAgbGV0IGlzTnVsbDogYm9vbGVhbjtcclxuICAgIGxldCBwYXJhbUF0dHI6IHN0cmluZywgcGFyYW1WYWx1ZTogc3RyaW5nLCBjb3JyZWN0VmFsdWU6IHN0cmluZyA9IG51bGw7XHJcblxyXG4gICAgLy8gTG9vayBmb3IgcGFyYW1ldGVyIGF0dHJpYnV0ZXMuIFhtbCBwYXJzZXIncyBjdXJyZW50IGluZGV4IGlzIHNldCB0byBlbmQgb2YgTmFtZS5cclxuICAgIC8vIFNvIGxvb2sgZm9yIGF0dHJpYnV0ZSAoaS5lLiBcImF0dHJcIikgZnJvbSBjdXJyZW50IGluZGV4IHRvIHRoZSBlbmQgb2YgdGFnIChpLmUuIFwiLz5cIilcclxuICAgIGNvdW50ID0geG1sUGFyc2VyLmdldFhNTGRhdGEoKS5pbmRleE9mKFhNTENvbnN0YW50cy5UQUdfVEVSTSwgeG1sUGFyc2VyLmdldEN1cnJJbmRleCgpKSAtIHhtbFBhcnNlci5nZXRDdXJySW5kZXgoKTtcclxuICAgIGF0dHJPZmZzZXQgPSBOU3RyaW5nLkluZGV4T2YoeG1sUGFyc2VyLmdldFhNTGRhdGEoKSwgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9QQVJfQVRUUlMsIHhtbFBhcnNlci5nZXRDdXJySW5kZXgoKSwgY291bnQpO1xyXG4gICAgaWYgKGF0dHJPZmZzZXQgIT09IC0xKSB7XHJcbiAgICAgIC8vIGFkZCB0YWcgbGVuZ3RoIGFuZCBnZXQgdGhlIGF0dHJpYnV0ZVxyXG4gICAgICBhdHRyT2Zmc2V0ICs9IENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfUEFSX0FUVFJTLmxlbmd0aCArIDI7XHJcbiAgICAgIHBhcmFtQXR0ciA9IHhtbFBhcnNlci5nZXRYTUxkYXRhKCkuc3Vic3RyKGF0dHJPZmZzZXQsIDEpO1xyXG5cclxuICAgICAgLy8gbGVuZ3RoIG9mIHZhbHVlXHJcbiAgICAgIGxlbk9mZnNldCA9IHhtbFBhcnNlci5nZXRYTUxkYXRhKCkuaW5kZXhPZihDb25zdEludGVyZmFjZS5NR19BVFRSX0xFTiwgYXR0ck9mZnNldCk7XHJcbiAgICAgIGxlbk9mZnNldCArPSBDb25zdEludGVyZmFjZS5NR19BVFRSX0xFTi5sZW5ndGggKyAxO1xyXG4gICAgICBsZW5PZmZzZXRFbmQgPSB4bWxQYXJzZXIuZ2V0WE1MZGF0YSgpLmluZGV4T2YoXCIgXCIsIGxlbk9mZnNldCk7XHJcbiAgICAgIHZhbHVlTGVuID0gWG1sUGFyc2VyLmdldEludCh4bWxQYXJzZXIuZ2V0WE1MZGF0YSgpLnN1YnN0cihsZW5PZmZzZXQsIGxlbk9mZnNldEVuZCAtIGxlbk9mZnNldCkpO1xyXG5cclxuICAgICAgLy8gcGFyYW0gdmFsdWVcclxuICAgICAgdmFsdWVPZmZzZXQgPSB4bWxQYXJzZXIuZ2V0WE1MZGF0YSgpLmluZGV4T2YoQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9FTlZfVkFMVUUsIGxlbk9mZnNldCk7XHJcbiAgICAgIHZhbHVlT2Zmc2V0ICs9IENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfRU5WX1ZBTFVFLmxlbmd0aCArIDI7XHJcbiAgICAgIHBhcmFtVmFsdWUgPSB4bWxQYXJzZXIuZ2V0WE1MZGF0YSgpLnN1YnN0cih2YWx1ZU9mZnNldCwgdmFsdWVMZW4pO1xyXG5cclxuICAgICAgLy8gZ2V0IGRhdGEgZm9yIHRoaXMgb2JqZWN0XHJcbiAgICAgIGN1cnJUeXBlID0gPFN0b3JhZ2VBdHRyaWJ1dGU+cGFyYW1BdHRyWzBdO1xyXG4gICAgICBjb3JyZWN0VmFsdWUgPSBSZWNvcmRVdGlscy5nZXRTdHJpbmcocGFyYW1WYWx1ZSwgY3VyclR5cGUpO1xyXG4gICAgICBpc051bGwgPSBmYWxzZTtcclxuXHJcbiAgICAgIC8vIHNraXAgdG8gYWZ0ZXIgdGhpcyBwYXJhbVxyXG4gICAgICB4bWxQYXJzZXIuc2V0Q3VyckluZGV4KHZhbHVlT2Zmc2V0ICsgdmFsdWVMZW4pO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoeG1sUGFyc2VyLmdldFhNTGRhdGEoKS5pbmRleE9mKENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfRU5WX1JFTU9WRUQsIHhtbFBhcnNlci5nZXRDdXJySW5kZXgoKSkgIT09IC0xKSB7XHJcbiAgICAgIHJldHVybiBQYXJhbVBhcnNlUmVzdWx0LkRFTEVURTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBjdXJyVHlwZSA9IFN0b3JhZ2VBdHRyaWJ1dGUuTk9ORTtcclxuICAgICAgaXNOdWxsID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBzdXBlci5Jbml0KGN1cnJUeXBlLCBpc051bGwsIGNvcnJlY3RWYWx1ZSk7XHJcblxyXG4gICAgcmV0dXJuIFBhcmFtUGFyc2VSZXN1bHQuVE9VUFBFUjtcclxuICB9XHJcbn1cclxuXHJcbi8vLyA8c3VtbWFyeT5cclxuLy8vICAgbWFuYWdlciBmb3IgZ2xvYmFsIHBhcmFtZXRlcnNcclxuLy8vIDwvc3VtbWFyeT5cclxuZXhwb3J0IGNsYXNzIEdsb2JhbFBhcmFtcyBleHRlbmRzIE1pcnJvclBybU1hcDxNaXJyb3JFeHBWYWw+IHtcclxuXHJcbiAgc3RhdGljIEluc3RhbmNlOiBHbG9iYWxQYXJhbXMgPSBuZXcgR2xvYmFsUGFyYW1zKCk7XHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgQ1RPUlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHN1cGVyKE1pcnJvckV4cFZhbCk7XHJcbiAgICB0aGlzLm1pcnJvcmVkSUQgPSBDb25zdEludGVyZmFjZS5NR19UQUdfR0xPQkFMUEFSQU1TQ0hBTkdFUztcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBjcmVhdGUgYSBuZXcgTWlycm9yRXhwVmFsIGFuZCBhZGQgaXQgdG8gdGhlIG1hcFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJzXCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInZcIj48L3BhcmFtPlxyXG4gIHB1YmxpYyBzZXQoczogc3RyaW5nLCB2OiBFeHBWYWwpOiB2b2lkIHtcclxuICAgIGlmICh2LklzTnVsbCB8fCB2LmlzRW1wdHlTdHJpbmcoKSlcclxuICAgICAgc3VwZXIucmVtb3ZlKHMudHJpbSgpLnRvVXBwZXJDYXNlKCkpO1xyXG4gICAgZWxzZVxyXG4gICAgICBzdXBlci5zZXRWYWx1ZShzLnRyaW0oKS50b1VwcGVyQ2FzZSgpLCBuZXcgTWlycm9yRXhwVmFsKHYpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQoczogc3RyaW5nKTogTWlycm9yRXhwVmFsIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIHJldHVybiBzdXBlci5nZXR2YWx1ZShzLnRyaW0oKS50b1VwcGVyQ2FzZSgpKTtcclxuICAgIH1cclxuICAgIGNhdGNoIChlcnIpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gIH1cclxufVxyXG4iXX0=
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2xvYmFsUGFyYW1zVGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL2V4cC9HbG9iYWxQYXJhbXNUYWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGdCQUFnQixFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTywwQkFBMEIsQ0FBQTtBQUMxRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWpELE1BQU0sT0FBTyxZQUFhLFNBQVEsTUFBTTtJQUd0QyxZQUFZLEdBQVk7UUFDdEIsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUMxQixLQUFLLEVBQUUsQ0FBQztZQUNSLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNyQixPQUFPO1NBQ1I7UUFDRCxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVPLGFBQWE7SUFDckIsQ0FBQztJQUtPLGFBQWEsQ0FBQyxHQUFXO1FBQy9CLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxRQUFRLEdBQVksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FB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Q1YsT0FBTyxJQUFJLENBQUM7U0FDYjtJQUVILENBQUM7O0FBN0JNLHFCQUFRLEdBQWlCLElBQUksWUFBWSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05TdHJpbmd9IGZyb20gXCJAbWFnaWMteHBhL21zY29yZWxpYlwiO1xyXG5pbXBvcnQge1N0b3JhZ2VBdHRyaWJ1dGUsIFhNTENvbnN0YW50cywgWG1sUGFyc2VyfSBmcm9tIFwiQG1hZ2ljLXhwYS91dGlsc1wiO1xyXG5pbXBvcnQgeyBFeHBWYWwsIFJlY29yZFV0aWxzIH0gZnJvbSBcIkBtYWdpYy14cGEvZ3VpXCI7XHJcbmltcG9ydCB7SU1pcnJvclhNTH0gZnJvbSBcIi4uL3V0aWwvSU1pcnJvclhNTFwiO1xyXG5pbXBvcnQge01pcnJvclBybU1hcH0gZnJvbSBcIi4uL3V0aWwvUHJtTWFwXCI7XHJcbmltcG9ydCB7UGFyYW1QYXJzZVJlc3VsdH0gZnJvbSAgJy4uL3V0aWwvUGFyYW1QYXJzZVJlc3VsdCdcclxuaW1wb3J0IHtDb25zdEludGVyZmFjZX0gZnJvbSBcIi4uL0NvbnN0SW50ZXJmYWNlXCI7XHJcbmltcG9ydCB7IEVudmlyb25tZW50IH0gZnJvbSBcIi4uL2Vudi9FbnZpcm9ubWVudFwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIE1pcnJvckV4cFZhbCBleHRlbmRzIEV4cFZhbCBpbXBsZW1lbnRzIElNaXJyb3JYTUwge1xyXG4gIGNvbnN0cnVjdG9yKCk7XHJcbiAgY29uc3RydWN0b3IodmFsOiBFeHBWYWwpO1xyXG4gIGNvbnN0cnVjdG9yKHZhbD86IEV4cFZhbCkge1xyXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcclxuICAgICAgc3VwZXIoKTtcclxuICAgICAgdGhpcy5jb25zdHJ1Y3Rvcl8yKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHN1cGVyKCk7XHJcbiAgICB0aGlzLmNvbnN0cnVjdG9yXzModmFsKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY29uc3RydWN0b3JfMigpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBDVE9SXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBwcml2YXRlIGNvbnN0cnVjdG9yXzModmFsOiBFeHBWYWwpOiB2b2lkIHtcclxuICAgIHN1cGVyLkNvcHkodmFsKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBtaXJyb3JUb1hNTCgpOiBzdHJpbmcge1xyXG4gICAgbGV0IHRvQmFzZTY0OiBib29sZWFuID0gKEVudmlyb25tZW50Lkluc3RhbmNlLkdldERlYnVnTGV2ZWwoKSA8PSAxKTtcclxuXHJcbiAgICBsZXQgY2VsbEF0dHI6IFN0b3JhZ2VBdHRyaWJ1dGUgPSAodGhpcy5BdHRyID09PSBTdG9yYWdlQXR0cmlidXRlLkJMT0JfVkVDVE9SID8gdGhpcy5WZWN0b3JGaWVsZC5nZXRDZWxsc1R5cGUoKSA6IFN0b3JhZ2VBdHRyaWJ1dGUuU0tJUCk7XHJcblxyXG4gICAgLy8gU3RvcnkgMTMxOTYxIDogRG8gbm90IHNlcmlhbGl6ZSBkb3RuZXQgcGFyYW1zXHJcbiAgICBsZXQgdmFsdWU6IHN0cmluZyA9IFwiXCI7XHJcbiAgICB2YWx1ZSA9IFJlY29yZFV0aWxzLml0ZW1WYWxUb1hNTChzdXBlci5Ub01nVmFsKCksIHRoaXMuQXR0ciwgY2VsbEF0dHIsIHRvQmFzZTY0KTtcclxuXHJcbiAgICByZXR1cm4gQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9QQVJfQVRUUlMgKyBcIj1cXFwiXCIgKyB0aGlzLkF0dHIgKyBcIlxcXCIgXCIgKyBDb25zdEludGVyZmFjZS5NR19BVFRSX0xFTiArIFwiPVwiICtcclxuICAgICAgdmFsdWUubGVuZ3RoICsgXCIgXCIgKyBDb25zdEludGVyZmFjZS5NR19BVFRSX0VOVl9WQUxVRSArIFwiPVxcXCJcIiArIHZhbHVlICsgXCJcXFwiXCI7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgaW5pdGlhbGl6ZSB0aGUgb2JqZWN0IGZyb20gdGhlIFhNTCBidWZmZXJcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwieG1sUGFyc2VyXCI+PC9wYXJhbT5cclxuICBwdWJsaWMgaW5pdChuYW1lOiBTdHJpbmcsIHhtbFBhcnNlcjogWG1sUGFyc2VyKTogUGFyYW1QYXJzZVJlc3VsdCB7XHJcbiAgICBsZXQgdmFsdWVPZmZzZXQ6IG51bWJlciwgYXR0ck9mZnNldDogbnVtYmVyLCBsZW5PZmZzZXQ6IG51bWJlciwgdmFsdWVMZW46IG51bWJlciwgbGVuT2Zmc2V0RW5kOiBudW1iZXIsXHJcbiAgICAgIGNvdW50OiBudW1iZXI7XHJcbiAgICBsZXQgY3VyclR5cGU6IFN0b3JhZ2VBdHRyaWJ1dGU7XHJcbiAgICBsZXQgaXNOdWxsOiBib29sZWFuO1xyXG4gICAgbGV0IHBhcmFtQXR0cjogc3RyaW5nLCBwYXJhbVZhbHVlOiBzdHJpbmcsIGNvcnJlY3RWYWx1ZTogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgICAvLyBMb29rIGZvciBwYXJhbWV0ZXIgYXR0cmlidXRlcy4gWG1sIHBhcnNlcidzIGN1cnJlbnQgaW5kZXggaXMgc2V0IHRvIGVuZCBvZiBOYW1lLlxyXG4gICAgLy8gU28gbG9vayBmb3IgYXR0cmlidXRlIChpLmUuIFwiYXR0clwiKSBmcm9tIGN1cnJlbnQgaW5kZXggdG8gdGhlIGVuZCBvZiB0YWcgKGkuZS4gXCIvPlwiKVxyXG4gICAgY291bnQgPSB4bWxQYXJzZXIuZ2V0WE1MZGF0YSgpLmluZGV4T2YoWE1MQ29uc3RhbnRzLlRBR19URVJNLCB4bWxQYXJzZXIuZ2V0Q3VyckluZGV4KCkpIC0geG1sUGFyc2VyLmdldEN1cnJJbmRleCgpO1xyXG4gICAgYXR0ck9mZnNldCA9IE5TdHJpbmcuSW5kZXhPZih4bWxQYXJzZXIuZ2V0WE1MZGF0YSgpLCBDb25zdEludGVyZmFjZS5NR19BVFRSX1BBUl9BVFRSUywgeG1sUGFyc2VyLmdldEN1cnJJbmRleCgpLCBjb3VudCk7XHJcbiAgICBpZiAoYXR0ck9mZnNldCAhPT0gLTEpIHtcclxuICAgICAgLy8gYWRkIHRhZyBsZW5ndGggYW5kIGdldCB0aGUgYXR0cmlidXRlXHJcbiAgICAgIGF0dHJPZmZzZXQgKz0gQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9QQVJfQVRUUlMubGVuZ3RoICsgMjtcclxuICAgICAgcGFyYW1BdHRyID0geG1sUGFyc2VyLmdldFhNTGRhdGEoKS5zdWJzdHIoYXR0ck9mZnNldCwgMSk7XHJcblxyXG4gICAgICAvLyBsZW5ndGggb2YgdmFsdWVcclxuICAgICAgbGVuT2Zmc2V0ID0geG1sUGFyc2VyLmdldFhNTGRhdGEoKS5pbmRleE9mKENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfTEVOLCBhdHRyT2Zmc2V0KTtcclxuICAgICAgbGVuT2Zmc2V0ICs9IENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfTEVOLmxlbmd0aCArIDE7XHJcbiAgICAgIGxlbk9mZnNldEVuZCA9IHhtbFBhcnNlci5nZXRYTUxkYXRhKCkuaW5kZXhPZihcIiBcIiwgbGVuT2Zmc2V0KTtcclxuICAgICAgdmFsdWVMZW4gPSBYbWxQYXJzZXIuZ2V0SW50KHhtbFBhcnNlci5nZXRYTUxkYXRhKCkuc3Vic3RyKGxlbk9mZnNldCwgbGVuT2Zmc2V0RW5kIC0gbGVuT2Zmc2V0KSk7XHJcblxyXG4gICAgICAvLyBwYXJhbSB2YWx1ZVxyXG4gICAgICB2YWx1ZU9mZnNldCA9IHhtbFBhcnNlci5nZXRYTUxkYXRhKCkuaW5kZXhPZihDb25zdEludGVyZmFjZS5NR19BVFRSX0VOVl9WQUxVRSwgbGVuT2Zmc2V0KTtcclxuICAgICAgdmFsdWVPZmZzZXQgKz0gQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9FTlZfVkFMVUUubGVuZ3RoICsgMjtcclxuICAgICAgcGFyYW1WYWx1ZSA9IHhtbFBhcnNlci5nZXRYTUxkYXRhKCkuc3Vic3RyKHZhbHVlT2Zmc2V0LCB2YWx1ZUxlbik7XHJcblxyXG4gICAgICAvLyBnZXQgZGF0YSBmb3IgdGhpcyBvYmplY3RcclxuICAgICAgY3VyclR5cGUgPSA8U3RvcmFnZUF0dHJpYnV0ZT5wYXJhbUF0dHJbMF07XHJcbiAgICAgIGNvcnJlY3RWYWx1ZSA9IFJlY29yZFV0aWxzLmdldFN0cmluZyhwYXJhbVZhbHVlLCBjdXJyVHlwZSk7XHJcbiAgICAgIGlzTnVsbCA9IGZhbHNlO1xyXG5cclxuICAgICAgLy8gc2tpcCB0byBhZnRlciB0aGlzIHBhcmFtXHJcbiAgICAgIHhtbFBhcnNlci5zZXRDdXJySW5kZXgodmFsdWVPZmZzZXQgKyB2YWx1ZUxlbik7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh4bWxQYXJzZXIuZ2V0WE1MZGF0YSgpLmluZGV4T2YoQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9FTlZfUkVNT1ZFRCwgeG1sUGFyc2VyLmdldEN1cnJJbmRleCgpKSAhPT0gLTEpIHtcclxuICAgICAgcmV0dXJuIFBhcmFtUGFyc2VSZXN1bHQuREVMRVRFO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGN1cnJUeXBlID0gU3RvcmFnZUF0dHJpYnV0ZS5OT05FO1xyXG4gICAgICBpc051bGwgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHN1cGVyLkluaXQoY3VyclR5cGUsIGlzTnVsbCwgY29ycmVjdFZhbHVlKTtcclxuXHJcbiAgICByZXR1cm4gUGFyYW1QYXJzZVJlc3VsdC5UT1VQUEVSO1xyXG4gIH1cclxufVxyXG5cclxuLy8vIDxzdW1tYXJ5PlxyXG4vLy8gICBtYW5hZ2VyIGZvciBnbG9iYWwgcGFyYW1ldGVyc1xyXG4vLy8gPC9zdW1tYXJ5PlxyXG5leHBvcnQgY2xhc3MgR2xvYmFsUGFyYW1zIGV4dGVuZHMgTWlycm9yUHJtTWFwPE1pcnJvckV4cFZhbD4ge1xyXG5cclxuICBzdGF0aWMgSW5zdGFuY2U6IEdsb2JhbFBhcmFtcyA9IG5ldyBHbG9iYWxQYXJhbXMoKTtcclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICBDVE9SXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBwcml2YXRlIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoTWlycm9yRXhwVmFsKTtcclxuICAgIHRoaXMubWlycm9yZWRJRCA9IENvbnN0SW50ZXJmYWNlLk1HX1RBR19HTE9CQUxQQVJBTVNDSEFOR0VTO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGNyZWF0ZSBhIG5ldyBNaXJyb3JFeHBWYWwgYW5kIGFkZCBpdCB0byB0aGUgbWFwXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInNcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwidlwiPjwvcGFyYW0+XHJcbiAgcHVibGljIHNldChzOiBzdHJpbmcsIHY6IEV4cFZhbCk6IHZvaWQge1xyXG4gICAgaWYgKHYuSXNOdWxsIHx8IHYuaXNFbXB0eVN0cmluZygpKVxyXG4gICAgICBzdXBlci5yZW1vdmUocy50cmltKCkudG9VcHBlckNhc2UoKSk7XHJcbiAgICBlbHNlXHJcbiAgICAgIHN1cGVyLnNldFZhbHVlKHMudHJpbSgpLnRvVXBwZXJDYXNlKCksIG5ldyBNaXJyb3JFeHBWYWwodikpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldChzOiBzdHJpbmcpOiBNaXJyb3JFeHBWYWwge1xyXG4gICAgdHJ5IHtcclxuICAgICAgcmV0dXJuIHN1cGVyLmdldHZhbHVlKHMudHJpbSgpLnRvVXBwZXJDYXNlKCkpO1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKGVycikge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1 +1 @@
1
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSU1pcnJvclhNTC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VuZ2luZS9zcmMvdXRpbC9JTWlycm9yWE1MLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1htbFBhcnNlcn0gZnJvbSBcIkBtYWdpYy14cGEvdXRpbHNcIjtcclxuaW1wb3J0IHtQYXJhbVBhcnNlUmVzdWx0fSBmcm9tIFwiLi9Qcm1NYXBcIjtcclxuXHJcbi8vLyA8c3VtbWFyeT4gSW50ZXJmYWNlIGZvciBtaXJyb3JpbmcgYSBzaW5nbGUgaXRlbTwvc3VtbWFyeT5cclxuZXhwb3J0IGludGVyZmFjZSBJTWlycm9yWE1MIHtcclxuICBtaXJyb3JUb1hNTCgpOiBzdHJpbmc7XHJcblxyXG4gIGluaXQobmFtZTogc3RyaW5nLCB4bWxQYXJzZXI6IFhtbFBhcnNlcik6IFBhcmFtUGFyc2VSZXN1bHQ7XHJcbn1cclxuIl19
1
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSU1pcnJvclhNTC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VuZ2luZS9zcmMvdXRpbC9JTWlycm9yWE1MLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1htbFBhcnNlcn0gZnJvbSBcIkBtYWdpYy14cGEvdXRpbHNcIjtcclxuaW1wb3J0IHtQYXJhbVBhcnNlUmVzdWx0fSBmcm9tIFwiLi9QYXJhbVBhcnNlUmVzdWx0XCI7XHJcblxyXG4vLy8gPHN1bW1hcnk+IEludGVyZmFjZSBmb3IgbWlycm9yaW5nIGEgc2luZ2xlIGl0ZW08L3N1bW1hcnk+XHJcbmV4cG9ydCBpbnRlcmZhY2UgSU1pcnJvclhNTCB7XHJcbiAgbWlycm9yVG9YTUwoKTogc3RyaW5nO1xyXG5cclxuICBpbml0KG5hbWU6IHN0cmluZywgeG1sUGFyc2VyOiBYbWxQYXJzZXIpOiBQYXJhbVBhcnNlUmVzdWx0O1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,8 @@
1
+ export var ParamParseResult;
2
+ (function (ParamParseResult) {
3
+ ParamParseResult[ParamParseResult["OK"] = 0] = "OK";
4
+ ParamParseResult[ParamParseResult["TOUPPER"] = 1] = "TOUPPER";
5
+ ParamParseResult[ParamParseResult["DELETE"] = 2] = "DELETE";
6
+ ParamParseResult[ParamParseResult["FAILED"] = 3] = "FAILED";
7
+ })(ParamParseResult || (ParamParseResult = {}));
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFyYW1QYXJzZVJlc3VsdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VuZ2luZS9zcmMvdXRpbC9QYXJhbVBhcnNlUmVzdWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLGdCQUtYO0FBTEQsV0FBWSxnQkFBZ0I7SUFDMUIsbURBQUUsQ0FBQTtJQUNGLDZEQUFPLENBQUE7SUFDUCwyREFBTSxDQUFBO0lBQ04sMkRBQU0sQ0FBQTtBQUNSLENBQUMsRUFMVyxnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBSzNCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gUGFyYW1QYXJzZVJlc3VsdCB7XHJcbiAgT0ssICAgICAgICAgLy8gc2F2ZSB0aGUgdmFsdWUgYXMgaXNcclxuICBUT1VQUEVSLCAgICAvLyBjb252ZXJ0IHRoZSBuYW1lIHRvIHVwcGVyIGNhc2UsIHNvIGl0IHdvdWxkIGJlIGNhc2UgaW5zZW5zaXRpdmVcclxuICBERUxFVEUsICAgICAvLyByZW1vdmUgdGhlIHZhcmlhYmxlIGZyb20gdGhlIGRpY3Rpb25hcnlcclxuICBGQUlMRUQgICAgICAvLyBwYXJzaW5nIGVycm9yXHJcbn1cclxuIl19