@cartanova/qgrid-cli 2.4.4 → 2.4.6
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/bundle/dist/application/monit/log-buffer.js +76 -0
- package/bundle/dist/application/monit/monit.frame.js +86 -0
- package/bundle/dist/application/monit/monit.types.js +42 -0
- package/bundle/dist/application/qgrid/oauth.js +1 -1
- package/bundle/dist/application/qgrid/qgrid.dispatcher.js +3 -3
- package/bundle/dist/application/qgrid/qgrid.frame.js +14 -12
- package/bundle/dist/application/qgrid/qgrid.types.js +3 -2
- package/bundle/dist/application/queries.generated.js +7 -2
- package/bundle/dist/application/request-log/request-log.model.js +1 -1
- package/bundle/dist/sonamu.config.js +14 -10
- package/bundle/dist/utils/providers/anthropic/anthropic-dispatcher.js +5 -2
- package/bundle/dist/utils/providers/anthropic/claude-session.js +3 -3
- package/bundle/dist/utils/providers/openai/codex-worker.js +5 -3
- package/bundle/dist/utils/providers/openai/openai-dispatcher.js +179 -15
- package/bundle/src/application/monit/log-buffer.test.ts +121 -0
- package/bundle/src/application/monit/log-buffer.ts +121 -0
- package/bundle/src/application/monit/monit.frame.test.ts +176 -0
- package/bundle/src/application/monit/monit.frame.ts +77 -0
- package/bundle/src/application/monit/monit.types.ts +54 -0
- package/bundle/src/application/qgrid/qgrid.frame.test.ts +24 -0
- package/bundle/src/application/qgrid/qgrid.frame.ts +2 -0
- package/bundle/src/application/qgrid/qgrid.types.ts +1 -0
- package/bundle/src/application/queries.generated.ts +8 -0
- package/bundle/src/application/sonamu.generated.http +12 -0
- package/bundle/src/sonamu.config.ts +5 -2
- package/bundle/src/utils/providers/anthropic/anthropic-dispatcher.ts +5 -0
- package/bundle/src/utils/providers/openai/codex-worker.test.ts +26 -0
- package/bundle/src/utils/providers/openai/codex-worker.ts +3 -1
- package/bundle/src/utils/providers/openai/openai-dispatcher.test.ts +212 -7
- package/bundle/src/utils/providers/openai/openai-dispatcher.ts +297 -17
- package/bundle/web-dist/client/assets/index-BOXhNo0k.js +78 -0
- package/bundle/web-dist/client/assets/index-yZcjDoV0.css +1 -0
- package/bundle/web-dist/client/assets/{logs-vuI-Zgnq.js → logs-BShH_sut.js} +1 -1
- package/bundle/web-dist/client/assets/monit-CoEAp5S0.js +1 -0
- package/bundle/web-dist/client/assets/{routes-0Fki0JEi.js → routes-Dr3cGnV3.js} +2 -2
- package/bundle/web-dist/client/assets/{sd.generated-WA5SGJYZ.js → sd.generated-D2Y9QeiN.js} +1 -1
- package/bundle/web-dist/client/assets/{services.generated-DzZLnb7S.js → services.generated-CmxXl220.js} +1 -1
- package/bundle/web-dist/client/assets/{show-BreAgaFH.js → show-CXII6Iy7.js} +3 -3
- package/bundle/web-dist/client/assets/{tokens-4VgHQtXd.js → tokens-hP1NecIg.js} +1 -1
- package/bundle/web-dist/client/assets/use-update-token-mutation-6J1T9U2-.js +1 -0
- package/bundle/web-dist/client/index.html +3 -3
- package/bundle/web-dist/server/assets/{lazyRouteComponent-BrPAFtBA.js → lazyRouteComponent-BlfOh9S3.js} +1 -1
- package/bundle/web-dist/server/assets/{logs-CKM6W3W6.js → logs-DYly4ipQ.js} +3 -3
- package/bundle/web-dist/server/assets/monit-CYyY2S2f.js +1577 -0
- package/bundle/web-dist/server/assets/{routes-DhIpPgXz.js → routes-Dqu3osXt.js} +14 -6
- package/bundle/web-dist/server/assets/{sd.generated-Cwg2f53z.js → sd.generated-CE6D5clm.js} +1 -1
- package/bundle/web-dist/server/assets/{services.generated-CsotZP44.js → services.generated-DyZUzXiq.js} +39 -2
- package/bundle/web-dist/server/assets/{show-CV2UFjaH.js → show-BDul8xLb.js} +3 -3
- package/bundle/web-dist/server/assets/{tokens-DfGj1y2v.js → tokens-fzMW4G74.js} +4 -4
- package/bundle/web-dist/server/assets/{use-update-token-mutation-BL96w-Pg.js → use-update-token-mutation-BejUW5sw.js} +1 -1
- package/bundle/web-dist/server/entry-server.generated.js +71 -27
- package/package.json +1 -1
- package/skills/qgrid/references/ai-sdk-provider-contract.md +25 -0
- package/bundle/web-dist/client/assets/index-D1ExP77_.js +0 -78
- package/bundle/web-dist/client/assets/index-Dc-qeEPm.css +0 -1
- package/bundle/web-dist/client/assets/use-update-token-mutation-BV6msjuy.js +0 -1
|
@@ -208,7 +208,8 @@ const TokenStats = z.object({
|
|
|
208
208
|
const OAuthStartResult = z.object({ authUrl: z.string() });
|
|
209
209
|
const RateWindow = z.object({
|
|
210
210
|
utilization: z.number().nullable(),
|
|
211
|
-
resetsAt: z.string().nullable()
|
|
211
|
+
resetsAt: z.string().nullable(),
|
|
212
|
+
windowDurationMins: z.number().nullable().optional()
|
|
212
213
|
}).nullable();
|
|
213
214
|
const UsageResponse = z.object({
|
|
214
215
|
error: z.string().optional(),
|
|
@@ -245,4 +246,4 @@ function maskToken(token) {
|
|
|
245
246
|
//#endregion
|
|
246
247
|
export { AddTokenInput, AppendStepInput, CreateRunInput, Effort, FinishReason, FinishRunInput, HealthResponse, ImageGenerationOptions, ImageGenerationQuality, ImageGenerationSize, OAuthStartResult, ProcessError, QgridContent, QgridInputPart, QgridLogMode, QgridRunContext, QgridThreadCoord, QgridTool, QgridToolResultInput, QueryInput, QueryOutput, QuotaError, QuotaThresholdExceededError, ReasoningSummary, RemoveTokenInput, ServiceTier, StreamEvents, SubscriberStatus, TimeoutError, TokenStats, UsageResponse, Verbosity, maskToken };
|
|
247
248
|
|
|
248
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicWdyaWQudHlwZXMuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL3FncmlkL3FncmlkLnR5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHogfSBmcm9tIFwiem9kXCI7XG5cbi8vIOKUgOKUgOKUgCBRdWVyeSDilIDilIDilIBcblxuZXhwb3J0IGNvbnN0IEVmZm9ydCA9IHouZW51bShbXCJsb3dcIiwgXCJtZWRpdW1cIiwgXCJoaWdoXCJdKTtcbmV4cG9ydCB0eXBlIEVmZm9ydCA9IHouaW5mZXI8dHlwZW9mIEVmZm9ydD47XG5cbmV4cG9ydCBjb25zdCBRZ3JpZFRvb2wgPSB6Lm9iamVjdCh7XG4gIG5hbWU6IHouc3RyaW5nKCksXG4gIGRlc2NyaXB0aW9uOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGlucHV0U2NoZW1hOiB6LnVua25vd24oKSxcbn0pO1xuZXhwb3J0IHR5cGUgUWdyaWRUb29sID0gei5pbmZlcjx0eXBlb2YgUWdyaWRUb29sPjtcblxuZXhwb3J0IGNvbnN0IFFncmlkQ29udGVudCA9IHouZGlzY3JpbWluYXRlZFVuaW9uKFwidHlwZVwiLCBbXG4gIHoub2JqZWN0KHtcbiAgICB0eXBlOiB6LmxpdGVyYWwoXCJ0ZXh0XCIpLFxuICAgIHRleHQ6IHouc3RyaW5nKCksXG4gIH0pLFxuICB6Lm9iamVjdCh7XG4gICAgdHlwZTogei5saXRlcmFsKFwidG9vbC1jYWxsXCIpLFxuICAgIHRvb2xDYWxsSWQ6IHouc3RyaW5nKCksXG4gICAgdG9vbE5hbWU6IHouc3RyaW5nKCksXG4gICAgaW5wdXQ6IHouc3RyaW5nKCksXG4gIH0pLFxuICB6Lm9iamVjdCh7XG4gICAgdHlwZTogei5saXRlcmFsKFwiaW1hZ2VcIiksXG4gICAgLy8gQ29kZXggaW1hZ2VfZ2VuZXJhdGlvbiByZXN1bHQgYmFzZTY0LiBxZ3JpZCDripQg7Y+s66e3L+2ZleyepeyekCDssYXsnoTsnYQg7KeA7KeAIOyViuuKlOuLpC5cbiAgICBkYXRhOiB6LnN0cmluZygpLFxuICAgIHJldmlzZWRQcm9tcHQ6IHouc3RyaW5nKCkubnVsbGlzaCgpLFxuICB9KSxcbl0pO1xuZXhwb3J0IHR5cGUgUWdyaWRDb250ZW50ID0gei5pbmZlcjx0eXBlb2YgUWdyaWRDb250ZW50PjtcblxuZXhwb3J0IGNvbnN0IEZpbmlzaFJlYXNvbiA9IHouZW51bShbXCJzdG9wXCIsIFwidG9vbC1jYWxsc1wiXSk7XG5leHBvcnQgdHlwZSBGaW5pc2hSZWFzb24gPSB6LmluZmVyPHR5cGVvZiBGaW5pc2hSZWFzb24+O1xuXG5leHBvcnQgY29uc3QgVmVyYm9zaXR5ID0gei5lbnVtKFtcImxvd1wiLCBcIm1lZGl1bVwiLCBcImhpZ2hcIl0pO1xuZXhwb3J0IHR5cGUgVmVyYm9zaXR5ID0gei5pbmZlcjx0eXBlb2YgVmVyYm9zaXR5PjtcblxuZXhwb3J0IGNvbnN0IFJlYXNvbmluZ1N1bW1hcnkgPSB6LmVudW0oW1wiYXV0b1wiLCBcImNvbmNpc2VcIiwgXCJkZXRhaWxlZFwiLCBcIm5vbmVcIl0pO1xuZXhwb3J0IHR5cGUgUmVhc29uaW5nU3VtbWFyeSA9IHouaW5mZXI8dHlwZW9mIFJlYXNvbmluZ1N1bW1hcnk+O1xuXG5leHBvcnQgY29uc3QgU2VydmljZVRpZXIgPSB6LmVudW0oW1wiZmFzdFwiLCBcImZsZXhcIl0pO1xuZXhwb3J0IHR5cGUgU2VydmljZVRpZXIgPSB6LmluZmVyPHR5cGVvZiBTZXJ2aWNlVGllcj47XG5cbmV4cG9ydCBjb25zdCBJbWFnZUdlbmVyYXRpb25RdWFsaXR5ID0gei5lbnVtKFtcImxvd1wiLCBcIm1lZGl1bVwiLCBcImhpZ2hcIl0pO1xuZXhwb3J0IHR5cGUgSW1hZ2VHZW5lcmF0aW9uUXVhbGl0eSA9IHouaW5mZXI8dHlwZW9mIEltYWdlR2VuZXJhdGlvblF1YWxpdHk+O1xuXG5leHBvcnQgY29uc3QgSW1hZ2VHZW5lcmF0aW9uU2l6ZSA9IHouZW51bShbXCIxMDI0eDEwMjRcIiwgXCIxMDI0eDE1MzZcIiwgXCIxNTM2eDEwMjRcIl0pO1xuZXhwb3J0IHR5cGUgSW1hZ2VHZW5lcmF0aW9uU2l6ZSA9IHouaW5mZXI8dHlwZW9mIEltYWdlR2VuZXJhdGlvblNpemU+O1xuXG5leHBvcnQgY29uc3QgSW1hZ2VHZW5lcmF0aW9uT3B0aW9ucyA9IHoub2JqZWN0KHtcbiAgcXVhbGl0eTogSW1hZ2VHZW5lcmF0aW9uUXVhbGl0eS5vcHRpb25hbCgpLFxuICBzaXplOiBJbWFnZUdlbmVyYXRpb25TaXplLm9wdGlvbmFsKCksXG59KTtcbmV4cG9ydCB0eXBlIEltYWdlR2VuZXJhdGlvbk9wdGlvbnMgPSB6LmluZmVyPHR5cGVvZiBJbWFnZUdlbmVyYXRpb25PcHRpb25zPjtcblxuZXhwb3J0IGNvbnN0IFFncmlkSW5wdXRQYXJ0ID0gei5kaXNjcmltaW5hdGVkVW5pb24oXCJ0eXBlXCIsIFtcbiAgei5vYmplY3Qoe1xuICAgIHR5cGU6IHoubGl0ZXJhbChcInRleHRcIiksXG4gICAgdGV4dDogei5zdHJpbmcoKSxcbiAgICB0ZXh0X2VsZW1lbnRzOiB6LmFycmF5KHoubmV2ZXIoKSkuZGVmYXVsdChbXSksXG4gIH0pLFxuICB6Lm9iamVjdCh7XG4gICAgdHlwZTogei5saXRlcmFsKFwiaW1hZ2VcIiksXG4gICAgdXJsOiB6LnN0cmluZygpLFxuICB9KSxcbl0pO1xuZXhwb3J0IHR5cGUgUWdyaWRJbnB1dFBhcnQgPSB6LmluZmVyPHR5cGVvZiBRZ3JpZElucHV0UGFydD47XG5cbi8vIOKUgOKUgOKUgCBSdW4gTGlmZWN5Y2xlIENvbnRleHQgKFNESyDihpQgU2VydmVyIGNvbnRyYWN0KSDilIDilIDilIBcblxuZXhwb3J0IGNvbnN0IFFncmlkTG9nTW9kZSA9IHouZW51bShbXCJhdXRvXCIsIFwicnVuXCIsIFwibm9uZVwiXSk7XG5leHBvcnQgdHlwZSBRZ3JpZExvZ01vZGUgPSB6LmluZmVyPHR5cGVvZiBRZ3JpZExvZ01vZGU+O1xuXG4vLyBjb2RleCB0aHJlYWQg7KKM7ZGcLiB0aHJlYWQg7J6s7IKs7Jqp7Jy866GcIGNvbnZlcnNhdGlvbl9pZCg9cHJvbXB0X2NhY2hlX2tleSnrpbwg6rOg7KCV7ZW0XG4vLyBPcGVuQUkgcHJvbXB0IGNhY2hpbmcg7J2EIOyCtOumrOq4sCDsnITtlZwg7ZW465OkLiDshJzrsoTqsIAg67Cc6riJ7ZWY6rOgIO2BtOudvOqwgCDri6TsnYwg7JqU7LKt7JeQIOq3uOuMgOuhnCDtmozshqHtlZzri6QuXG4vLyDtlbjrk6Qg66+47KCE7IahIOyLnCDquLDsobQgXCLrp6QgdHVybiDsg4ggdGhyZWFkICsgaGlzdG9yeSBpbmplY3RcIiDrj5nsnpHsnLzroZwg7Y+067CxKFFncmlkUnVuQ29udGV4dCDssLjsobApLlxuZXhwb3J0IGNvbnN0IFFncmlkVGhyZWFkQ29vcmQgPSB6Lm9iamVjdCh7XG4gIHdvcmtlcklkOiB6Lm51bWJlcigpLCAvLyDqs6DsoJUg65287Jqw7YyFICh0aHJlYWQg64qUIHdvcmtlciDtlITroZzshLjsiqQg66mU66qo66as7JeQ66eMIOyhtOyerClcbiAgdGhyZWFkSWQ6IHouc3RyaW5nKCksIC8vIGNvZGV4IGNvbnZlcnNhdGlvbl9pZCA9IHByb21wdF9jYWNoZV9rZXlcbiAgZXBvY2g6IHoubnVtYmVyKCksIC8vIHdvcmtlciBzcGF3biDsubTsmrTthLAuIHJlc3RhcnQg66GcIHRocmVhZCDspp3rsJwg6rCQ7KeAXG4gIHN5c3RlbUhhc2g6IHouc3RyaW5nKCksIC8vIHN5c3RlbV9wcm9tcHQg7ZW07IucLiDri6Trpbgg64yA7ZmUIOyYpOygkeyGjSDrsKnsp4Bcbn0pO1xuZXhwb3J0IHR5cGUgUWdyaWRUaHJlYWRDb29yZCA9IHouaW5mZXI8dHlwZW9mIFFncmlkVGhyZWFkQ29vcmQ+O1xuXG5leHBvcnQgY29uc3QgUWdyaWRSdW5Db250ZXh0ID0gei5vYmplY3Qoe1xuICAvLyBydW4gbGlmZWN5Y2xlKGxvZ01vZGU9XCJydW5cIikg7JeQ7ISc66eMIOuwnOq4iS4gYXV0byDrqqjrk5wo7JiIOiBJRinripQgdGhyZWFkQ29vcmQg66eMIOyZleuztS5cbiAgcmVxdWVzdExvZ0lkOiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gIHRocmVhZENvb3JkOiBRZ3JpZFRocmVhZENvb3JkLm9wdGlvbmFsKCksXG59KTtcbmV4cG9ydCB0eXBlIFFncmlkUnVuQ29udGV4dCA9IHouaW5mZXI8dHlwZW9mIFFncmlkUnVuQ29udGV4dD47XG5cbmV4cG9ydCBjb25zdCBRZ3JpZFRvb2xSZXN1bHRJbnB1dCA9IHoub2JqZWN0KHtcbiAgdG9vbENhbGxJZDogei5zdHJpbmcoKSxcbiAgdG9vbE5hbWU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgb3V0cHV0OiB6LnN0cmluZygpLFxuICBpc0Vycm9yOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxufSk7XG5leHBvcnQgdHlwZSBRZ3JpZFRvb2xSZXN1bHRJbnB1dCA9IHouaW5mZXI8dHlwZW9mIFFncmlkVG9vbFJlc3VsdElucHV0PjtcblxuZXhwb3J0IGNvbnN0IFF1ZXJ5SW5wdXQgPSB6Lm9iamVjdCh7XG4gIHN5c3RlbTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBwcm9tcHQ6IHouc3RyaW5nKCksXG4gIGlucHV0OiB6LmFycmF5KFFncmlkSW5wdXRQYXJ0KS5vcHRpb25hbCgpLFxuICBtb2RlbDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICB0aW1lb3V0OiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gIGpzb25TY2hlbWE6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgdG9vbHM6IHouYXJyYXkoUWdyaWRUb29sKS5vcHRpb25hbCgpLFxuICBlZmZvcnQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgdmVyYm9zaXR5OiBWZXJib3NpdHkub3B0aW9uYWwoKSxcbiAgcmVhc29uaW5nU3VtbWFyeTogUmVhc29uaW5nU3VtbWFyeS5vcHRpb25hbCgpLFxuICBzZXJ2aWNlVGllcjogU2VydmljZVRpZXIub3B0aW9uYWwoKSxcbiAgaGlzdG9yeTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBwcm9qZWN0TmFtZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBpc1N0ZXA6IHouYm9vbGVhbigpLm9wdGlvbmFsKCksXG4gIGxvZ01vZGU6IFFncmlkTG9nTW9kZS5vcHRpb25hbCgpLFxuICBydW5Db250ZXh0OiBRZ3JpZFJ1bkNvbnRleHQub3B0aW9uYWwoKSxcbiAgdG9vbFJlc3VsdHM6IHouYXJyYXkoUWdyaWRUb29sUmVzdWx0SW5wdXQpLm9wdGlvbmFsKCksXG4gIC8vIGNvZGV4IOuCtOyepSBpbWFnZV9nZW5lcmF0aW9uIHRvb2wg7J2EIOy8oOuLpChPcGVuQUkg6rK966GcIOyghOyaqSwgb3B0LWluLCBub24tc3RyZWFtKS5cbiAgaW1hZ2VHZW5lcmF0aW9uOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxuICAvLyBxZ3JpZCDqsIDqsqkg7LaU7KCVIOuwjyBDb2RleCDsnbTrr7jsp4Ag7JqU7LKtIO2ejO2KuC4g7J2066+47KeAIOuqqOuNuOydgCBncHQtaW1hZ2UtMiDroZwg6rOg7KCVIOqwgOygle2VnOuLpC5cbiAgaW1hZ2VHZW5lcmF0aW9uT3B0aW9uczogSW1hZ2VHZW5lcmF0aW9uT3B0aW9ucy5vcHRpb25hbCgpLFxufSk7XG5leHBvcnQgdHlwZSBRdWVyeUlucHV0ID0gei5pbmZlcjx0eXBlb2YgUXVlcnlJbnB1dD47XG5cbmV4cG9ydCBjb25zdCBRdWVyeU91dHB1dCA9IHoub2JqZWN0KHtcbiAgdGV4dDogei5zdHJpbmcoKSxcbiAgY29udGVudDogei5hcnJheShRZ3JpZENvbnRlbnQpLFxuICBmaW5pc2hSZWFzb246IEZpbmlzaFJlYXNvbixcbiAgdG9rZW5OYW1lOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIG1vZGVsOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIHVzYWdlOiB6Lm9iamVjdCh7XG4gICAgaW5wdXRfdG9rZW5zOiB6Lm51bWJlcigpLFxuICAgIG91dHB1dF90b2tlbnM6IHoubnVtYmVyKCksXG4gICAgY2FjaGVfY3JlYXRpb25faW5wdXRfdG9rZW5zOiB6Lm51bWJlcigpLFxuICAgIGNhY2hlX3JlYWRfaW5wdXRfdG9rZW5zOiB6Lm51bWJlcigpLFxuICB9KSxcbiAgZHVyYXRpb25Nczogei5udW1iZXIoKSxcbiAgdHRmdE1zOiB6Lm51bWJlcigpLFxuICBjb3N0VXNkOiB6Lm51bWJlcigpLFxuICBydW5Db250ZXh0OiBRZ3JpZFJ1bkNvbnRleHQub3B0aW9uYWwoKSxcbn0pO1xuZXhwb3J0IHR5cGUgUXVlcnlPdXRwdXQgPSB6LmluZmVyPHR5cGVvZiBRdWVyeU91dHB1dD47XG5cbi8vIOKUgOKUgOKUgCBTdHJlYW0gRXZlbnRzIOKUgOKUgOKUgFxuXG5leHBvcnQgY29uc3QgU3RyZWFtRXZlbnRzID0gei5vYmplY3Qoe1xuICBkZWx0YTogei5vYmplY3QoeyB0ZXh0OiB6LnN0cmluZygpIH0pLFxuICB0b29sQ2FsbDogei5vYmplY3Qoe1xuICAgIHRvb2xDYWxsSWQ6IHouc3RyaW5nKCksXG4gICAgdG9vbE5hbWU6IHouc3RyaW5nKCksXG4gICAgaW5wdXQ6IHouc3RyaW5nKCksXG4gIH0pLFxuICBkb25lOiB6Lm9iamVjdCh7XG4gICAgdGV4dDogei5zdHJpbmcoKSxcbiAgICBtb2RlbDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIHRva2VuTmFtZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIGZpbmlzaFJlYXNvbjogRmluaXNoUmVhc29uLFxuICAgIHVzYWdlOiB6Lm9iamVjdCh7XG4gICAgICBpbnB1dF90b2tlbnM6IHoubnVtYmVyKCksXG4gICAgICBvdXRwdXRfdG9rZW5zOiB6Lm51bWJlcigpLFxuICAgICAgY2FjaGVfY3JlYXRpb25faW5wdXRfdG9rZW5zOiB6Lm51bWJlcigpLFxuICAgICAgY2FjaGVfcmVhZF9pbnB1dF90b2tlbnM6IHoubnVtYmVyKCksXG4gICAgfSksXG4gICAgZHVyYXRpb25Nczogei5udW1iZXIoKSxcbiAgICB0dGZ0TXM6IHoubnVtYmVyKCksXG4gICAgY29zdFVzZDogei5udW1iZXIoKSxcbiAgICBjb250ZW50OiB6LmFycmF5KFFncmlkQ29udGVudCksXG4gICAgcnVuQ29udGV4dDogUWdyaWRSdW5Db250ZXh0Lm9wdGlvbmFsKCksXG4gIH0pLFxuICBlcnJvcjogei5vYmplY3QoeyBtZXNzYWdlOiB6LnN0cmluZygpIH0pLFxufSk7XG5leHBvcnQgdHlwZSBTdHJlYW1FdmVudHMgPSB6LmluZmVyPHR5cGVvZiBTdHJlYW1FdmVudHM+O1xuXG4vLyDilIDilIDilIAgUnVuIExpZmVjeWNsZSDilIDilIDilIBcblxuZXhwb3J0IGNvbnN0IENyZWF0ZVJ1bklucHV0ID0gei5vYmplY3Qoe1xuICB1c2VyUHJvbXB0OiB6LnN0cmluZygpLFxuICBzeXN0ZW1Qcm9tcHQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgbW9kZWxOYW1lOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGVmZm9ydDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBwcm9qZWN0TmFtZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBoaXN0b3J5OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG59KTtcbmV4cG9ydCB0eXBlIENyZWF0ZVJ1bklucHV0ID0gei5pbmZlcjx0eXBlb2YgQ3JlYXRlUnVuSW5wdXQ+O1xuXG5leHBvcnQgY29uc3QgQXBwZW5kU3RlcElucHV0ID0gei5vYmplY3Qoe1xuICByZXF1ZXN0TG9nSWQ6IHoubnVtYmVyKCksXG4gIHN0ZXBJbmRleDogei5udW1iZXIoKSxcbiAgdHlwZTogei5lbnVtKFtcImdlbmVyYXRlXCIsIFwidG9vbF9jYWxsXCJdKSxcbiAgaW5wdXRUb2tlbnM6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgb3V0cHV0VG9rZW5zOiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gIGNhY2hlUmVhZFRva2Vuczogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICBjYWNoZUNyZWF0aW9uVG9rZW5zOiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gIGR1cmF0aW9uTXM6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgdHRmdE1zOiB6Lm51bWJlcigpLm51bGxhYmxlKCkub3B0aW9uYWwoKSxcbiAgZmluaXNoUmVhc29uOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIHJlYXNvbmluZ1RleHQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgcmVhc29uaW5nVG9rZW5zOiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gIHRvb2xDYWxsSW5kZXg6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgdG9vbENhbGxJZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICB0b29sTmFtZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICB0b29sQXJnczogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICB0b29sUmVzdWx0OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIHRvb2xEdXJhdGlvbk1zOiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gIGVycm9yOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG59KTtcbmV4cG9ydCB0eXBlIEFwcGVuZFN0ZXBJbnB1dCA9IHouaW5mZXI8dHlwZW9mIEFwcGVuZFN0ZXBJbnB1dD47XG5cbmV4cG9ydCBjb25zdCBGaW5pc2hSdW5JbnB1dCA9IHoub2JqZWN0KHtcbiAgcmVxdWVzdExvZ0lkOiB6Lm51bWJlcigpLFxuICBzdGF0dXM6IHouZW51bShbXCJzdWNjZWVkZWRcIiwgXCJlcnJvclwiLCBcImFib3J0ZWRcIl0pLFxuICByZXNwb25zZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICB0b2tlbk5hbWU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgdG90YWxJbnB1dFRva2Vuczogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICB0b3RhbE91dHB1dFRva2Vuczogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICB0b3RhbENhY2hlUmVhZFRva2Vuczogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICB0b3RhbENhY2hlQ3JlYXRpb25Ub2tlbnM6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgdG90YWxEdXJhdGlvbk1zOiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gIGhpc3Rvcnk6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgZXJyb3JNZXNzYWdlOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG59KTtcbmV4cG9ydCB0eXBlIEZpbmlzaFJ1bklucHV0ID0gei5pbmZlcjx0eXBlb2YgRmluaXNoUnVuSW5wdXQ+O1xuXG4vLyDilIDilIDilIAgVG9rZW4gTWFuYWdlbWVudCDilIDilIDilIBcblxuZXhwb3J0IGNvbnN0IEFkZFRva2VuSW5wdXQgPSB6Lm9iamVjdCh7XG4gIHRva2VuOiB6LnN0cmluZygpLFxuICBuYW1lOiB6LnN0cmluZygpLFxufSk7XG5leHBvcnQgdHlwZSBBZGRUb2tlbklucHV0ID0gei5pbmZlcjx0eXBlb2YgQWRkVG9rZW5JbnB1dD47XG5cbmV4cG9ydCBjb25zdCBSZW1vdmVUb2tlbklucHV0ID0gei5vYmplY3Qoe1xuICB0b2tlbjogei5zdHJpbmcoKSxcbn0pO1xuZXhwb3J0IHR5cGUgUmVtb3ZlVG9rZW5JbnB1dCA9IHouaW5mZXI8dHlwZW9mIFJlbW92ZVRva2VuSW5wdXQ+O1xuXG5leHBvcnQgY29uc3QgVG9rZW5TdGF0cyA9IHoub2JqZWN0KHtcbiAgdG9rZW46IHouc3RyaW5nKCksXG4gIG5hbWU6IHouc3RyaW5nKCksXG4gIHByb3ZpZGVyOiB6LnN0cmluZygpLFxuICByZXF1ZXN0czogei5udW1iZXIoKSxcbn0pO1xuZXhwb3J0IHR5cGUgVG9rZW5TdGF0cyA9IHouaW5mZXI8dHlwZW9mIFRva2VuU3RhdHM+O1xuXG4vLyDilIDilIDilIAgT0F1dGgg4pSA4pSA4pSAXG5cbmV4cG9ydCBjb25zdCBPQXV0aFN0YXJ0UmVzdWx0ID0gei5vYmplY3Qoe1xuICBhdXRoVXJsOiB6LnN0cmluZygpLFxufSk7XG5leHBvcnQgdHlwZSBPQXV0aFN0YXJ0UmVzdWx0ID0gei5pbmZlcjx0eXBlb2YgT0F1dGhTdGFydFJlc3VsdD47XG5cbmNvbnN0IFJhdGVXaW5kb3cgPSB6XG4gIC5vYmplY3Qoe1xuICAgIHV0aWxpemF0aW9uOiB6Lm51bWJlcigpLm51bGxhYmxlKCksXG4gICAgcmVzZXRzQXQ6IHouc3RyaW5nKCkubnVsbGFibGUoKSxcbiAgfSlcbiAgLm51bGxhYmxlKCk7XG5cbmV4cG9ydCBjb25zdCBVc2FnZVJlc3BvbnNlID0gei5vYmplY3Qoe1xuICBlcnJvcjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBwcm92aWRlcjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBmaXZlSG91cjogUmF0ZVdpbmRvdy5vcHRpb25hbCgpLFxuICBzZXZlbkRheTogUmF0ZVdpbmRvdy5vcHRpb25hbCgpLFxufSk7XG5leHBvcnQgdHlwZSBVc2FnZVJlc3BvbnNlID0gei5pbmZlcjx0eXBlb2YgVXNhZ2VSZXNwb25zZT47XG5cbi8vIOKUgOKUgOKUgCBIZWFsdGgg4pSA4pSA4pSAXG5cbmV4cG9ydCBjb25zdCBTdWJzY3JpYmVyU3RhdHVzID0gei5vYmplY3Qoe1xuICBjb25uZWN0ZWQ6IHouYm9vbGVhbigpLFxuICBjb25uZWN0ZWRBdDogei5kYXRlKCkubnVsbGFibGUoKSxcbiAgbGFzdFJlY29uY2lsZUF0OiB6LmRhdGUoKS5udWxsYWJsZSgpLFxuICBhdHRlbXB0OiB6Lm51bWJlcigpLFxufSk7XG5leHBvcnQgdHlwZSBTdWJzY3JpYmVyU3RhdHVzID0gei5pbmZlcjx0eXBlb2YgU3Vic2NyaWJlclN0YXR1cz47XG5cbmV4cG9ydCBjb25zdCBIZWFsdGhSZXNwb25zZSA9IHoub2JqZWN0KHtcbiAgc3RhdHVzOiB6LnN0cmluZygpLFxuICBhY3RpdmVUb2tlbnM6IHoubnVtYmVyKCksXG4gIHN1YnNjcmliZXI6IFN1YnNjcmliZXJTdGF0dXMubnVsbGFibGUoKSxcbn0pO1xuZXhwb3J0IHR5cGUgSGVhbHRoUmVzcG9uc2UgPSB6LmluZmVyPHR5cGVvZiBIZWFsdGhSZXNwb25zZT47XG5cbi8vIOKUgOKUgOKUgCBFcnJvcnMg4pSA4pSA4pSAXG5cbmV4cG9ydCBjbGFzcyBRdW90YUVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICByZWFkb25seSBjb2RlID0gXCJRVU9UQV9FWEhBVVNURURcIiBhcyBjb25zdDtcbn1cbmV4cG9ydCBjbGFzcyBRdW90YVRocmVzaG9sZEV4Y2VlZGVkRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIHJlYWRvbmx5IGNvZGUgPSBcIlFVT1RBX1RIUkVTSE9MRF9FWENFRURFRFwiIGFzIGNvbnN0O1xufVxuZXhwb3J0IGNsYXNzIFRpbWVvdXRFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgcmVhZG9ubHkgY29kZSA9IFwiVElNRU9VVFwiIGFzIGNvbnN0O1xufVxuZXhwb3J0IGNsYXNzIFByb2Nlc3NFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgcmVhZG9ubHkgY29kZSA9IFwiUFJPQ0VTU19FUlJPUlwiIGFzIGNvbnN0O1xufVxuXG4vLyDilIDilIDilIAgVXRpbHMg4pSA4pSA4pSAXG5cbmV4cG9ydCBmdW5jdGlvbiBtYXNrVG9rZW4odG9rZW46IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiB0b2tlbi5sZW5ndGggPiA0ID8gYC4uLiR7dG9rZW4uc2xpY2UoLTQpfWAgOiB0b2tlbjtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7O0FBSUEsTUFBYSxTQUFTLEVBQUUsS0FBSztDQUFDO0NBQU87Q0FBVTtDQUFPLENBQUM7QUFHdkQsTUFBYSxZQUFZLEVBQUUsT0FBTztDQUNoQyxNQUFNLEVBQUUsUUFBUTtDQUNoQixhQUFhLEVBQUUsUUFBUSxDQUFDLFVBQVU7Q0FDbEMsYUFBYSxFQUFFLFNBQVM7Q0FDekIsQ0FBQztBQUdGLE1BQWEsZUFBZSxFQUFFLG1CQUFtQixRQUFRO0NBQ3ZELEVBQUUsT0FBTztFQUNQLE1BQU0sRUFBRSxRQUFRLE9BQU87RUFDdkIsTUFBTSxFQUFFLFFBQVE7RUFDakIsQ0FBQztDQUNGLEVBQUUsT0FBTztFQUNQLE1BQU0sRUFBRSxRQUFRLFlBQVk7RUFDNUIsWUFBWSxFQUFFLFFBQVE7RUFDdEIsVUFBVSxFQUFFLFFBQVE7RUFD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
|
|
249
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicWdyaWQudHlwZXMuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwcGxpY2F0aW9uL3FncmlkL3FncmlkLnR5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHogfSBmcm9tIFwiem9kXCI7XG5cbi8vIOKUgOKUgOKUgCBRdWVyeSDilIDilIDilIBcblxuZXhwb3J0IGNvbnN0IEVmZm9ydCA9IHouZW51bShbXCJsb3dcIiwgXCJtZWRpdW1cIiwgXCJoaWdoXCJdKTtcbmV4cG9ydCB0eXBlIEVmZm9ydCA9IHouaW5mZXI8dHlwZW9mIEVmZm9ydD47XG5cbmV4cG9ydCBjb25zdCBRZ3JpZFRvb2wgPSB6Lm9iamVjdCh7XG4gIG5hbWU6IHouc3RyaW5nKCksXG4gIGRlc2NyaXB0aW9uOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGlucHV0U2NoZW1hOiB6LnVua25vd24oKSxcbn0pO1xuZXhwb3J0IHR5cGUgUWdyaWRUb29sID0gei5pbmZlcjx0eXBlb2YgUWdyaWRUb29sPjtcblxuZXhwb3J0IGNvbnN0IFFncmlkQ29udGVudCA9IHouZGlzY3JpbWluYXRlZFVuaW9uKFwidHlwZVwiLCBbXG4gIHoub2JqZWN0KHtcbiAgICB0eXBlOiB6LmxpdGVyYWwoXCJ0ZXh0XCIpLFxuICAgIHRleHQ6IHouc3RyaW5nKCksXG4gIH0pLFxuICB6Lm9iamVjdCh7XG4gICAgdHlwZTogei5saXRlcmFsKFwidG9vbC1jYWxsXCIpLFxuICAgIHRvb2xDYWxsSWQ6IHouc3RyaW5nKCksXG4gICAgdG9vbE5hbWU6IHouc3RyaW5nKCksXG4gICAgaW5wdXQ6IHouc3RyaW5nKCksXG4gIH0pLFxuICB6Lm9iamVjdCh7XG4gICAgdHlwZTogei5saXRlcmFsKFwiaW1hZ2VcIiksXG4gICAgLy8gQ29kZXggaW1hZ2VfZ2VuZXJhdGlvbiByZXN1bHQgYmFzZTY0LiBxZ3JpZCDripQg7Y+s66e3L+2ZleyepeyekCDssYXsnoTsnYQg7KeA7KeAIOyViuuKlOuLpC5cbiAgICBkYXRhOiB6LnN0cmluZygpLFxuICAgIHJldmlzZWRQcm9tcHQ6IHouc3RyaW5nKCkubnVsbGlzaCgpLFxuICB9KSxcbl0pO1xuZXhwb3J0IHR5cGUgUWdyaWRDb250ZW50ID0gei5pbmZlcjx0eXBlb2YgUWdyaWRDb250ZW50PjtcblxuZXhwb3J0IGNvbnN0IEZpbmlzaFJlYXNvbiA9IHouZW51bShbXCJzdG9wXCIsIFwidG9vbC1jYWxsc1wiXSk7XG5leHBvcnQgdHlwZSBGaW5pc2hSZWFzb24gPSB6LmluZmVyPHR5cGVvZiBGaW5pc2hSZWFzb24+O1xuXG5leHBvcnQgY29uc3QgVmVyYm9zaXR5ID0gei5lbnVtKFtcImxvd1wiLCBcIm1lZGl1bVwiLCBcImhpZ2hcIl0pO1xuZXhwb3J0IHR5cGUgVmVyYm9zaXR5ID0gei5pbmZlcjx0eXBlb2YgVmVyYm9zaXR5PjtcblxuZXhwb3J0IGNvbnN0IFJlYXNvbmluZ1N1bW1hcnkgPSB6LmVudW0oW1wiYXV0b1wiLCBcImNvbmNpc2VcIiwgXCJkZXRhaWxlZFwiLCBcIm5vbmVcIl0pO1xuZXhwb3J0IHR5cGUgUmVhc29uaW5nU3VtbWFyeSA9IHouaW5mZXI8dHlwZW9mIFJlYXNvbmluZ1N1bW1hcnk+O1xuXG5leHBvcnQgY29uc3QgU2VydmljZVRpZXIgPSB6LmVudW0oW1wiZmFzdFwiLCBcImZsZXhcIl0pO1xuZXhwb3J0IHR5cGUgU2VydmljZVRpZXIgPSB6LmluZmVyPHR5cGVvZiBTZXJ2aWNlVGllcj47XG5cbmV4cG9ydCBjb25zdCBJbWFnZUdlbmVyYXRpb25RdWFsaXR5ID0gei5lbnVtKFtcImxvd1wiLCBcIm1lZGl1bVwiLCBcImhpZ2hcIl0pO1xuZXhwb3J0IHR5cGUgSW1hZ2VHZW5lcmF0aW9uUXVhbGl0eSA9IHouaW5mZXI8dHlwZW9mIEltYWdlR2VuZXJhdGlvblF1YWxpdHk+O1xuXG5leHBvcnQgY29uc3QgSW1hZ2VHZW5lcmF0aW9uU2l6ZSA9IHouZW51bShbXCIxMDI0eDEwMjRcIiwgXCIxMDI0eDE1MzZcIiwgXCIxNTM2eDEwMjRcIl0pO1xuZXhwb3J0IHR5cGUgSW1hZ2VHZW5lcmF0aW9uU2l6ZSA9IHouaW5mZXI8dHlwZW9mIEltYWdlR2VuZXJhdGlvblNpemU+O1xuXG5leHBvcnQgY29uc3QgSW1hZ2VHZW5lcmF0aW9uT3B0aW9ucyA9IHoub2JqZWN0KHtcbiAgcXVhbGl0eTogSW1hZ2VHZW5lcmF0aW9uUXVhbGl0eS5vcHRpb25hbCgpLFxuICBzaXplOiBJbWFnZUdlbmVyYXRpb25TaXplLm9wdGlvbmFsKCksXG59KTtcbmV4cG9ydCB0eXBlIEltYWdlR2VuZXJhdGlvbk9wdGlvbnMgPSB6LmluZmVyPHR5cGVvZiBJbWFnZUdlbmVyYXRpb25PcHRpb25zPjtcblxuZXhwb3J0IGNvbnN0IFFncmlkSW5wdXRQYXJ0ID0gei5kaXNjcmltaW5hdGVkVW5pb24oXCJ0eXBlXCIsIFtcbiAgei5vYmplY3Qoe1xuICAgIHR5cGU6IHoubGl0ZXJhbChcInRleHRcIiksXG4gICAgdGV4dDogei5zdHJpbmcoKSxcbiAgICB0ZXh0X2VsZW1lbnRzOiB6LmFycmF5KHoubmV2ZXIoKSkuZGVmYXVsdChbXSksXG4gIH0pLFxuICB6Lm9iamVjdCh7XG4gICAgdHlwZTogei5saXRlcmFsKFwiaW1hZ2VcIiksXG4gICAgdXJsOiB6LnN0cmluZygpLFxuICB9KSxcbl0pO1xuZXhwb3J0IHR5cGUgUWdyaWRJbnB1dFBhcnQgPSB6LmluZmVyPHR5cGVvZiBRZ3JpZElucHV0UGFydD47XG5cbi8vIOKUgOKUgOKUgCBSdW4gTGlmZWN5Y2xlIENvbnRleHQgKFNESyDihpQgU2VydmVyIGNvbnRyYWN0KSDilIDilIDilIBcblxuZXhwb3J0IGNvbnN0IFFncmlkTG9nTW9kZSA9IHouZW51bShbXCJhdXRvXCIsIFwicnVuXCIsIFwibm9uZVwiXSk7XG5leHBvcnQgdHlwZSBRZ3JpZExvZ01vZGUgPSB6LmluZmVyPHR5cGVvZiBRZ3JpZExvZ01vZGU+O1xuXG4vLyBjb2RleCB0aHJlYWQg7KKM7ZGcLiB0aHJlYWQg7J6s7IKs7Jqp7Jy866GcIGNvbnZlcnNhdGlvbl9pZCg9cHJvbXB0X2NhY2hlX2tleSnrpbwg6rOg7KCV7ZW0XG4vLyBPcGVuQUkgcHJvbXB0IGNhY2hpbmcg7J2EIOyCtOumrOq4sCDsnITtlZwg7ZW465OkLiDshJzrsoTqsIAg67Cc6riJ7ZWY6rOgIO2BtOudvOqwgCDri6TsnYwg7JqU7LKt7JeQIOq3uOuMgOuhnCDtmozshqHtlZzri6QuXG4vLyDtlbjrk6Qg66+47KCE7IahIOyLnCDquLDsobQgXCLrp6QgdHVybiDsg4ggdGhyZWFkICsgaGlzdG9yeSBpbmplY3RcIiDrj5nsnpHsnLzroZwg7Y+067CxKFFncmlkUnVuQ29udGV4dCDssLjsobApLlxuZXhwb3J0IGNvbnN0IFFncmlkVGhyZWFkQ29vcmQgPSB6Lm9iamVjdCh7XG4gIHdvcmtlcklkOiB6Lm51bWJlcigpLCAvLyDqs6DsoJUg65287Jqw7YyFICh0aHJlYWQg64qUIHdvcmtlciDtlITroZzshLjsiqQg66mU66qo66as7JeQ66eMIOyhtOyerClcbiAgdGhyZWFkSWQ6IHouc3RyaW5nKCksIC8vIGNvZGV4IGNvbnZlcnNhdGlvbl9pZCA9IHByb21wdF9jYWNoZV9rZXlcbiAgZXBvY2g6IHoubnVtYmVyKCksIC8vIHdvcmtlciBzcGF3biDsubTsmrTthLAuIHJlc3RhcnQg66GcIHRocmVhZCDspp3rsJwg6rCQ7KeAXG4gIHN5c3RlbUhhc2g6IHouc3RyaW5nKCksIC8vIHN5c3RlbV9wcm9tcHQg7ZW07IucLiDri6Trpbgg64yA7ZmUIOyYpOygkeyGjSDrsKnsp4Bcbn0pO1xuZXhwb3J0IHR5cGUgUWdyaWRUaHJlYWRDb29yZCA9IHouaW5mZXI8dHlwZW9mIFFncmlkVGhyZWFkQ29vcmQ+O1xuXG5leHBvcnQgY29uc3QgUWdyaWRSdW5Db250ZXh0ID0gei5vYmplY3Qoe1xuICAvLyBydW4gbGlmZWN5Y2xlKGxvZ01vZGU9XCJydW5cIikg7JeQ7ISc66eMIOuwnOq4iS4gYXV0byDrqqjrk5wo7JiIOiBJRinripQgdGhyZWFkQ29vcmQg66eMIOyZleuztS5cbiAgcmVxdWVzdExvZ0lkOiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gIHRocmVhZENvb3JkOiBRZ3JpZFRocmVhZENvb3JkLm9wdGlvbmFsKCksXG59KTtcbmV4cG9ydCB0eXBlIFFncmlkUnVuQ29udGV4dCA9IHouaW5mZXI8dHlwZW9mIFFncmlkUnVuQ29udGV4dD47XG5cbmV4cG9ydCBjb25zdCBRZ3JpZFRvb2xSZXN1bHRJbnB1dCA9IHoub2JqZWN0KHtcbiAgdG9vbENhbGxJZDogei5zdHJpbmcoKSxcbiAgdG9vbE5hbWU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgb3V0cHV0OiB6LnN0cmluZygpLFxuICBpc0Vycm9yOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxufSk7XG5leHBvcnQgdHlwZSBRZ3JpZFRvb2xSZXN1bHRJbnB1dCA9IHouaW5mZXI8dHlwZW9mIFFncmlkVG9vbFJlc3VsdElucHV0PjtcblxuZXhwb3J0IGNvbnN0IFF1ZXJ5SW5wdXQgPSB6Lm9iamVjdCh7XG4gIHN5c3RlbTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBwcm9tcHQ6IHouc3RyaW5nKCksXG4gIGlucHV0OiB6LmFycmF5KFFncmlkSW5wdXRQYXJ0KS5vcHRpb25hbCgpLFxuICBtb2RlbDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICB0aW1lb3V0OiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gIGpzb25TY2hlbWE6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgdG9vbHM6IHouYXJyYXkoUWdyaWRUb29sKS5vcHRpb25hbCgpLFxuICBlZmZvcnQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgdmVyYm9zaXR5OiBWZXJib3NpdHkub3B0aW9uYWwoKSxcbiAgcmVhc29uaW5nU3VtbWFyeTogUmVhc29uaW5nU3VtbWFyeS5vcHRpb25hbCgpLFxuICBzZXJ2aWNlVGllcjogU2VydmljZVRpZXIub3B0aW9uYWwoKSxcbiAgaGlzdG9yeTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBwcm9qZWN0TmFtZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBpc1N0ZXA6IHouYm9vbGVhbigpLm9wdGlvbmFsKCksXG4gIGxvZ01vZGU6IFFncmlkTG9nTW9kZS5vcHRpb25hbCgpLFxuICBydW5Db250ZXh0OiBRZ3JpZFJ1bkNvbnRleHQub3B0aW9uYWwoKSxcbiAgdG9vbFJlc3VsdHM6IHouYXJyYXkoUWdyaWRUb29sUmVzdWx0SW5wdXQpLm9wdGlvbmFsKCksXG4gIC8vIGNvZGV4IOuCtOyepSBpbWFnZV9nZW5lcmF0aW9uIHRvb2wg7J2EIOy8oOuLpChPcGVuQUkg6rK966GcIOyghOyaqSwgb3B0LWluLCBub24tc3RyZWFtKS5cbiAgaW1hZ2VHZW5lcmF0aW9uOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxuICAvLyBxZ3JpZCDqsIDqsqkg7LaU7KCVIOuwjyBDb2RleCDsnbTrr7jsp4Ag7JqU7LKtIO2ejO2KuC4g7J2066+47KeAIOuqqOuNuOydgCBncHQtaW1hZ2UtMiDroZwg6rOg7KCVIOqwgOygle2VnOuLpC5cbiAgaW1hZ2VHZW5lcmF0aW9uT3B0aW9uczogSW1hZ2VHZW5lcmF0aW9uT3B0aW9ucy5vcHRpb25hbCgpLFxufSk7XG5leHBvcnQgdHlwZSBRdWVyeUlucHV0ID0gei5pbmZlcjx0eXBlb2YgUXVlcnlJbnB1dD47XG5cbmV4cG9ydCBjb25zdCBRdWVyeU91dHB1dCA9IHoub2JqZWN0KHtcbiAgdGV4dDogei5zdHJpbmcoKSxcbiAgY29udGVudDogei5hcnJheShRZ3JpZENvbnRlbnQpLFxuICBmaW5pc2hSZWFzb246IEZpbmlzaFJlYXNvbixcbiAgdG9rZW5OYW1lOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIG1vZGVsOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIHVzYWdlOiB6Lm9iamVjdCh7XG4gICAgaW5wdXRfdG9rZW5zOiB6Lm51bWJlcigpLFxuICAgIG91dHB1dF90b2tlbnM6IHoubnVtYmVyKCksXG4gICAgY2FjaGVfY3JlYXRpb25faW5wdXRfdG9rZW5zOiB6Lm51bWJlcigpLFxuICAgIGNhY2hlX3JlYWRfaW5wdXRfdG9rZW5zOiB6Lm51bWJlcigpLFxuICB9KSxcbiAgZHVyYXRpb25Nczogei5udW1iZXIoKSxcbiAgdHRmdE1zOiB6Lm51bWJlcigpLFxuICBjb3N0VXNkOiB6Lm51bWJlcigpLFxuICBydW5Db250ZXh0OiBRZ3JpZFJ1bkNvbnRleHQub3B0aW9uYWwoKSxcbn0pO1xuZXhwb3J0IHR5cGUgUXVlcnlPdXRwdXQgPSB6LmluZmVyPHR5cGVvZiBRdWVyeU91dHB1dD47XG5cbi8vIOKUgOKUgOKUgCBTdHJlYW0gRXZlbnRzIOKUgOKUgOKUgFxuXG5leHBvcnQgY29uc3QgU3RyZWFtRXZlbnRzID0gei5vYmplY3Qoe1xuICBkZWx0YTogei5vYmplY3QoeyB0ZXh0OiB6LnN0cmluZygpIH0pLFxuICB0b29sQ2FsbDogei5vYmplY3Qoe1xuICAgIHRvb2xDYWxsSWQ6IHouc3RyaW5nKCksXG4gICAgdG9vbE5hbWU6IHouc3RyaW5nKCksXG4gICAgaW5wdXQ6IHouc3RyaW5nKCksXG4gIH0pLFxuICBkb25lOiB6Lm9iamVjdCh7XG4gICAgdGV4dDogei5zdHJpbmcoKSxcbiAgICBtb2RlbDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIHRva2VuTmFtZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIGZpbmlzaFJlYXNvbjogRmluaXNoUmVhc29uLFxuICAgIHVzYWdlOiB6Lm9iamVjdCh7XG4gICAgICBpbnB1dF90b2tlbnM6IHoubnVtYmVyKCksXG4gICAgICBvdXRwdXRfdG9rZW5zOiB6Lm51bWJlcigpLFxuICAgICAgY2FjaGVfY3JlYXRpb25faW5wdXRfdG9rZW5zOiB6Lm51bWJlcigpLFxuICAgICAgY2FjaGVfcmVhZF9pbnB1dF90b2tlbnM6IHoubnVtYmVyKCksXG4gICAgfSksXG4gICAgZHVyYXRpb25Nczogei5udW1iZXIoKSxcbiAgICB0dGZ0TXM6IHoubnVtYmVyKCksXG4gICAgY29zdFVzZDogei5udW1iZXIoKSxcbiAgICBjb250ZW50OiB6LmFycmF5KFFncmlkQ29udGVudCksXG4gICAgcnVuQ29udGV4dDogUWdyaWRSdW5Db250ZXh0Lm9wdGlvbmFsKCksXG4gIH0pLFxuICBlcnJvcjogei5vYmplY3QoeyBtZXNzYWdlOiB6LnN0cmluZygpIH0pLFxufSk7XG5leHBvcnQgdHlwZSBTdHJlYW1FdmVudHMgPSB6LmluZmVyPHR5cGVvZiBTdHJlYW1FdmVudHM+O1xuXG4vLyDilIDilIDilIAgUnVuIExpZmVjeWNsZSDilIDilIDilIBcblxuZXhwb3J0IGNvbnN0IENyZWF0ZVJ1bklucHV0ID0gei5vYmplY3Qoe1xuICB1c2VyUHJvbXB0OiB6LnN0cmluZygpLFxuICBzeXN0ZW1Qcm9tcHQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgbW9kZWxOYW1lOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGVmZm9ydDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBwcm9qZWN0TmFtZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBoaXN0b3J5OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG59KTtcbmV4cG9ydCB0eXBlIENyZWF0ZVJ1bklucHV0ID0gei5pbmZlcjx0eXBlb2YgQ3JlYXRlUnVuSW5wdXQ+O1xuXG5leHBvcnQgY29uc3QgQXBwZW5kU3RlcElucHV0ID0gei5vYmplY3Qoe1xuICByZXF1ZXN0TG9nSWQ6IHoubnVtYmVyKCksXG4gIHN0ZXBJbmRleDogei5udW1iZXIoKSxcbiAgdHlwZTogei5lbnVtKFtcImdlbmVyYXRlXCIsIFwidG9vbF9jYWxsXCJdKSxcbiAgaW5wdXRUb2tlbnM6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgb3V0cHV0VG9rZW5zOiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gIGNhY2hlUmVhZFRva2Vuczogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICBjYWNoZUNyZWF0aW9uVG9rZW5zOiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gIGR1cmF0aW9uTXM6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgdHRmdE1zOiB6Lm51bWJlcigpLm51bGxhYmxlKCkub3B0aW9uYWwoKSxcbiAgZmluaXNoUmVhc29uOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIHJlYXNvbmluZ1RleHQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgcmVhc29uaW5nVG9rZW5zOiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gIHRvb2xDYWxsSW5kZXg6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgdG9vbENhbGxJZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICB0b29sTmFtZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICB0b29sQXJnczogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICB0b29sUmVzdWx0OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIHRvb2xEdXJhdGlvbk1zOiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gIGVycm9yOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG59KTtcbmV4cG9ydCB0eXBlIEFwcGVuZFN0ZXBJbnB1dCA9IHouaW5mZXI8dHlwZW9mIEFwcGVuZFN0ZXBJbnB1dD47XG5cbmV4cG9ydCBjb25zdCBGaW5pc2hSdW5JbnB1dCA9IHoub2JqZWN0KHtcbiAgcmVxdWVzdExvZ0lkOiB6Lm51bWJlcigpLFxuICBzdGF0dXM6IHouZW51bShbXCJzdWNjZWVkZWRcIiwgXCJlcnJvclwiLCBcImFib3J0ZWRcIl0pLFxuICByZXNwb25zZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICB0b2tlbk5hbWU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgdG90YWxJbnB1dFRva2Vuczogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICB0b3RhbE91dHB1dFRva2Vuczogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICB0b3RhbENhY2hlUmVhZFRva2Vuczogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICB0b3RhbENhY2hlQ3JlYXRpb25Ub2tlbnM6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgdG90YWxEdXJhdGlvbk1zOiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gIGhpc3Rvcnk6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgZXJyb3JNZXNzYWdlOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG59KTtcbmV4cG9ydCB0eXBlIEZpbmlzaFJ1bklucHV0ID0gei5pbmZlcjx0eXBlb2YgRmluaXNoUnVuSW5wdXQ+O1xuXG4vLyDilIDilIDilIAgVG9rZW4gTWFuYWdlbWVudCDilIDilIDilIBcblxuZXhwb3J0IGNvbnN0IEFkZFRva2VuSW5wdXQgPSB6Lm9iamVjdCh7XG4gIHRva2VuOiB6LnN0cmluZygpLFxuICBuYW1lOiB6LnN0cmluZygpLFxufSk7XG5leHBvcnQgdHlwZSBBZGRUb2tlbklucHV0ID0gei5pbmZlcjx0eXBlb2YgQWRkVG9rZW5JbnB1dD47XG5cbmV4cG9ydCBjb25zdCBSZW1vdmVUb2tlbklucHV0ID0gei5vYmplY3Qoe1xuICB0b2tlbjogei5zdHJpbmcoKSxcbn0pO1xuZXhwb3J0IHR5cGUgUmVtb3ZlVG9rZW5JbnB1dCA9IHouaW5mZXI8dHlwZW9mIFJlbW92ZVRva2VuSW5wdXQ+O1xuXG5leHBvcnQgY29uc3QgVG9rZW5TdGF0cyA9IHoub2JqZWN0KHtcbiAgdG9rZW46IHouc3RyaW5nKCksXG4gIG5hbWU6IHouc3RyaW5nKCksXG4gIHByb3ZpZGVyOiB6LnN0cmluZygpLFxuICByZXF1ZXN0czogei5udW1iZXIoKSxcbn0pO1xuZXhwb3J0IHR5cGUgVG9rZW5TdGF0cyA9IHouaW5mZXI8dHlwZW9mIFRva2VuU3RhdHM+O1xuXG4vLyDilIDilIDilIAgT0F1dGgg4pSA4pSA4pSAXG5cbmV4cG9ydCBjb25zdCBPQXV0aFN0YXJ0UmVzdWx0ID0gei5vYmplY3Qoe1xuICBhdXRoVXJsOiB6LnN0cmluZygpLFxufSk7XG5leHBvcnQgdHlwZSBPQXV0aFN0YXJ0UmVzdWx0ID0gei5pbmZlcjx0eXBlb2YgT0F1dGhTdGFydFJlc3VsdD47XG5cbmNvbnN0IFJhdGVXaW5kb3cgPSB6XG4gIC5vYmplY3Qoe1xuICAgIHV0aWxpemF0aW9uOiB6Lm51bWJlcigpLm51bGxhYmxlKCksXG4gICAgcmVzZXRzQXQ6IHouc3RyaW5nKCkubnVsbGFibGUoKSxcbiAgICB3aW5kb3dEdXJhdGlvbk1pbnM6IHoubnVtYmVyKCkubnVsbGFibGUoKS5vcHRpb25hbCgpLFxuICB9KVxuICAubnVsbGFibGUoKTtcblxuZXhwb3J0IGNvbnN0IFVzYWdlUmVzcG9uc2UgPSB6Lm9iamVjdCh7XG4gIGVycm9yOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIHByb3ZpZGVyOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGZpdmVIb3VyOiBSYXRlV2luZG93Lm9wdGlvbmFsKCksXG4gIHNldmVuRGF5OiBSYXRlV2luZG93Lm9wdGlvbmFsKCksXG59KTtcbmV4cG9ydCB0eXBlIFVzYWdlUmVzcG9uc2UgPSB6LmluZmVyPHR5cGVvZiBVc2FnZVJlc3BvbnNlPjtcblxuLy8g4pSA4pSA4pSAIEhlYWx0aCDilIDilIDilIBcblxuZXhwb3J0IGNvbnN0IFN1YnNjcmliZXJTdGF0dXMgPSB6Lm9iamVjdCh7XG4gIGNvbm5lY3RlZDogei5ib29sZWFuKCksXG4gIGNvbm5lY3RlZEF0OiB6LmRhdGUoKS5udWxsYWJsZSgpLFxuICBsYXN0UmVjb25jaWxlQXQ6IHouZGF0ZSgpLm51bGxhYmxlKCksXG4gIGF0dGVtcHQ6IHoubnVtYmVyKCksXG59KTtcbmV4cG9ydCB0eXBlIFN1YnNjcmliZXJTdGF0dXMgPSB6LmluZmVyPHR5cGVvZiBTdWJzY3JpYmVyU3RhdHVzPjtcblxuZXhwb3J0IGNvbnN0IEhlYWx0aFJlc3BvbnNlID0gei5vYmplY3Qoe1xuICBzdGF0dXM6IHouc3RyaW5nKCksXG4gIGFjdGl2ZVRva2Vuczogei5udW1iZXIoKSxcbiAgc3Vic2NyaWJlcjogU3Vic2NyaWJlclN0YXR1cy5udWxsYWJsZSgpLFxufSk7XG5leHBvcnQgdHlwZSBIZWFsdGhSZXNwb25zZSA9IHouaW5mZXI8dHlwZW9mIEhlYWx0aFJlc3BvbnNlPjtcblxuLy8g4pSA4pSA4pSAIEVycm9ycyDilIDilIDilIBcblxuZXhwb3J0IGNsYXNzIFF1b3RhRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIHJlYWRvbmx5IGNvZGUgPSBcIlFVT1RBX0VYSEFVU1RFRFwiIGFzIGNvbnN0O1xufVxuZXhwb3J0IGNsYXNzIFF1b3RhVGhyZXNob2xkRXhjZWVkZWRFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgcmVhZG9ubHkgY29kZSA9IFwiUVVPVEFfVEhSRVNIT0xEX0VYQ0VFREVEXCIgYXMgY29uc3Q7XG59XG5leHBvcnQgY2xhc3MgVGltZW91dEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICByZWFkb25seSBjb2RlID0gXCJUSU1FT1VUXCIgYXMgY29uc3Q7XG59XG5leHBvcnQgY2xhc3MgUHJvY2Vzc0Vycm9yIGV4dGVuZHMgRXJyb3Ige1xuICByZWFkb25seSBjb2RlID0gXCJQUk9DRVNTX0VSUk9SXCIgYXMgY29uc3Q7XG59XG5cbi8vIOKUgOKUgOKUgCBVdGlscyDilIDilIDilIBcblxuZXhwb3J0IGZ1bmN0aW9uIG1hc2tUb2tlbih0b2tlbjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHRva2VuLmxlbmd0aCA+IDQgPyBgLi4uJHt0b2tlbi5zbGljZSgtNCl9YCA6IHRva2VuO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7QUFJQSxNQUFhLFNBQVMsRUFBRSxLQUFLO0NBQUM7Q0FBTztDQUFVO0NBQU8sQ0FBQztBQUd2RCxNQUFhLFlBQVksRUFBRSxPQUFPO0NBQ2hDLE1BQU0sRUFBRSxRQUFRO0NBQ2hCLGFBQWEsRUFBRSxRQUFRLENBQUMsVUFBVTtDQUNsQyxhQUFhLEVBQUUsU0FBUztDQUN6QixDQUFDO0FBR0YsTUFBYSxlQUFlLEVBQUUsbUJBQW1CLFFBQVE7Q0FDdkQsRUFBRSxPQUFPO0VBQ1AsTUFBTSxFQUFFLFFBQVEsT0FBTztFQUN2QixNQUFNLEVBQUUsUUFBUTtFQUNqQixDQUFDO0NBQ0YsRUFBRSxPQUFPO0VBQ1AsTUFBTSxF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
|
|
@@ -32,7 +32,12 @@ let QgridService;
|
|
|
32
32
|
_QgridService.usage = (tokenId) => createSSRQuery("QgridFrame", "usage", [tokenId], ["Qgrid", "usage"]);
|
|
33
33
|
_QgridService.health = () => createSSRQuery("QgridFrame", "health", [], ["Qgrid", "health"]);
|
|
34
34
|
})(QgridService || (QgridService = {}));
|
|
35
|
+
let MonitService;
|
|
36
|
+
(function(_MonitService) {
|
|
37
|
+
_MonitService.monitLogs = (cursor) => createSSRQuery("MonitFrame", "monitLogs", [cursor], ["Monit", "monitLogs"]);
|
|
38
|
+
_MonitService.monitInfo = () => createSSRQuery("MonitFrame", "monitInfo", [], ["Monit", "monitInfo"]);
|
|
39
|
+
})(MonitService || (MonitService = {}));
|
|
35
40
|
//#endregion
|
|
36
|
-
export { QgridService, RequestLogService, RequestLogStepService, TokenService };
|
|
41
|
+
export { MonitService, QgridService, RequestLogService, RequestLogStepService, TokenService };
|
|
37
42
|
|
|
38
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcmllcy5nZW5lcmF0ZWQuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwcGxpY2F0aW9uL3F1ZXJpZXMuZ2VuZXJhdGVkLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGdlbmVyYXRlZFxuICog7KeB7KCRIOyImOygle2VmOyngCDrp4jshLjsmpQuXG4gKi9cblxuLyogb3hsaW50LWRpc2FibGUgKi9cblxuaW1wb3J0IHR5cGUgeyBTU1JRdWVyeSB9IGZyb20gXCJzb25hbXUvc3NyXCI7XG5cbi8vIFNTUlF1ZXJ5IO2XrO2NvCDtlajsiJhcbmZ1bmN0aW9uIGNyZWF0ZVNTUlF1ZXJ5KFxuICBtb2RlbE5hbWU6IHN0cmluZyxcbiAgbWV0aG9kTmFtZTogc3RyaW5nLFxuICBwYXJhbXM6IGFueVtdLFxuICBzZXJ2aWNlS2V5OiBbc3RyaW5nLCBzdHJpbmddLFxuKTogU1NSUXVlcnkge1xuICByZXR1cm4geyBtb2RlbE5hbWUsIG1ldGhvZE5hbWUsIHBhcmFtcywgc2VydmljZUtleSwgX19icmFuZDogXCJTU1JRdWVyeVwiIH0gYXMgU1NSUXVlcnk7XG59XG5cbmltcG9ydCB7IFJlcXVlc3RMb2dTdGVwTGlzdFBhcmFtcyB9IGZyb20gXCIuL3JlcXVlc3QtbG9nLXN0ZXAvcmVxdWVzdC1sb2ctc3RlcC50eXBlc1wiO1xuaW1wb3J0IHsgUmVxdWVzdExvZ0xpc3RQYXJhbXMgfSBmcm9tIFwiLi9yZXF1ZXN0LWxvZy9yZXF1ZXN0LWxvZy50eXBlc1wiO1xuaW1wb3J0IHsgVG9rZW5TdWJzZXRLZXksIFJlcXVlc3RMb2dTdGVwU3Vic2V0S2V5LCBSZXF1ZXN0TG9nU3Vic2V0S2V5IH0gZnJvbSBcIi4vc29uYW11LmdlbmVyYXRlZFwiO1xuaW1wb3J0IHsgVG9rZW5MaXN0UGFyYW1zIH0gZnJvbSBcIi4vdG9rZW4vdG9rZW4udHlwZXNcIjtcblxuZXhwb3J0IG5hbWVzcGFjZSBUb2tlblNlcnZpY2Uge1xuICBleHBvcnQgY29uc3QgZ2V0VG9rZW4gPSA8VCBleHRlbmRzIFRva2VuU3Vic2V0S2V5PihzdWJzZXQ6IFQsIGlkOiBudW1iZXIpOiBTU1JRdWVyeSA9PlxuICAgIGNyZWF0ZVNTUlF1ZXJ5KFwiVG9rZW5Nb2RlbFwiLCBcImZpbmRCeUlkXCIsIFtzdWJzZXQsIGlkXSwgW1wiVG9rZW5cIiwgXCJnZXRUb2tlblwiXSk7XG5cbiAgZXhwb3J0IGNvbnN0IGdldFRva2VucyA9IDxUIGV4dGVuZHMgVG9rZW5TdWJzZXRLZXksIExQIGV4dGVuZHMgVG9rZW5MaXN0UGFyYW1zPihcbiAgICBzdWJzZXQ6IFQsXG4gICAgcmF3UGFyYW1zPzogTFAsXG4gICk6IFNTUlF1ZXJ5ID0+XG4gICAgY3JlYXRlU1NSUXVlcnkoXCJUb2tlbk1vZGVsXCIsIFwiZmluZE1hbnlcIiwgW3N1YnNldCwgcmF3UGFyYW1zXSwgW1wiVG9rZW5cIiwgXCJnZXRUb2tlbnNcIl0pO1xufVxuXG5leHBvcnQgbmFtZXNwYWNlIFJlcXVlc3RMb2dTdGVwU2VydmljZSB7XG4gIGV4cG9ydCBjb25zdCBnZXRSZXF1ZXN0TG9nU3RlcCA9IDxUIGV4dGVuZHMgUmVxdWVzdExvZ1N0ZXBTdWJzZXRLZXk+KFxuICAgIHN1YnNldDogVCxcbiAgICBpZDogbnVtYmVyLFxuICApOiBTU1JRdWVyeSA9PlxuICAgIGNyZWF0ZVNTUlF1ZXJ5KFxuICAgICAgXCJSZXF1ZXN0TG9nU3RlcE1vZGVsXCIsXG4gICAgICBcImZpbmRCeUlkXCIsXG4gICAgICBbc3Vic2V0LCBpZF0sXG4gICAgICBbXCJSZXF1ZXN0TG9nU3RlcFwiLCBcImdldFJlcXVlc3RMb2dTdGVwXCJdLFxuICAgICk7XG5cbiAgZXhwb3J0IGNvbnN0IGdldFJlcXVlc3RMb2dTdGVwcyA9IDxcbiAgICBUIGV4dGVuZHMgUmVxdWVzdExvZ1N0ZXBTdWJzZXRLZXksXG4gICAgTFAgZXh0ZW5kcyBSZXF1ZXN0TG9nU3RlcExpc3RQYXJhbXMsXG4gID4oXG4gICAgc3Vic2V0OiBULFxuICAgIHJhd1BhcmFtcz86IExQLFxuICApOiBTU1JRdWVyeSA9PlxuICAgIGNyZWF0ZVNTUlF1ZXJ5KFxuICAgICAgXCJSZXF1ZXN0TG9nU3RlcE1vZGVsXCIsXG4gICAgICBcImZpbmRNYW55XCIsXG4gICAgICBbc3Vic2V0LCByYXdQYXJhbXNdLFxuICAgICAgW1wiUmVxdWVzdExvZ1N0ZXBcIiwgXCJnZXRSZXF1ZXN0TG9nU3RlcHNcIl0sXG4gICAgKTtcbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBSZXF1ZXN0TG9nU2VydmljZSB7XG4gIGV4cG9ydCBjb25zdCBnZXRSZXF1ZXN0TG9nID0gPFQgZXh0ZW5kcyBSZXF1ZXN0TG9nU3Vic2V0S2V5PihzdWJzZXQ6IFQsIGlkOiBudW1iZXIpOiBTU1JRdWVyeSA9PlxuICAgIGNyZWF0ZVNTUlF1ZXJ5KFwiUmVxdWVzdExvZ01vZGVsXCIsIFwiZmluZEJ5SWRcIiwgW3N1YnNldCwgaWRdLCBbXCJSZXF1ZXN0TG9nXCIsIFwiZ2V0UmVxdWVzdExvZ1wiXSk7XG5cbiAgZXhwb3J0IGNvbnN0IGdldFJlcXVlc3RMb2dzID0gPFQgZXh0ZW5kcyBSZXF1ZXN0TG9nU3Vic2V0S2V5LCBMUCBleHRlbmRzIFJlcXVlc3RMb2dMaXN0UGFyYW1zPihcbiAgICBzdWJzZXQ6IFQsXG4gICAgcmF3UGFyYW1zPzogTFAsXG4gICk6IFNTUlF1ZXJ5ID0+XG4gICAgY3JlYXRlU1NSUXVlcnkoXG4gICAgICBcIlJlcXVlc3RMb2dNb2RlbFwiLFxuICAgICAgXCJmaW5kTWFueVwiLFxuICAgICAgW3N1YnNldCwgcmF3UGFyYW1zXSxcbiAgICAgIFtcIlJlcXVlc3RMb2dcIiwgXCJnZXRSZXF1ZXN0TG9nc1wiXSxcbiAgICApO1xufVxuXG5leHBvcnQgbmFtZXNwYWNlIFFncmlkU2VydmljZSB7XG4gIGV4cG9ydCBjb25zdCBzdGF0cyA9ICgpOiBTU1JRdWVyeSA9PlxuICAgIGNyZWF0ZVNTUlF1ZXJ5KFwiUWdyaWRGcmFtZVwiLCBcInN0YXRzXCIsIFtdLCBbXCJRZ3JpZFwiLCBcInN0YXRzXCJdKTtcblxuICBleHBvcnQgY29uc3QgdG90YWxDb3N0ID0gKHRva2VuTmFtZT86IHN0cmluZyk6IFNTUlF1ZXJ5ID0+
|
|
43
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcmllcy5nZW5lcmF0ZWQuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwcGxpY2F0aW9uL3F1ZXJpZXMuZ2VuZXJhdGVkLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGdlbmVyYXRlZFxuICog7KeB7KCRIOyImOygle2VmOyngCDrp4jshLjsmpQuXG4gKi9cblxuLyogb3hsaW50LWRpc2FibGUgKi9cblxuaW1wb3J0IHR5cGUgeyBTU1JRdWVyeSB9IGZyb20gXCJzb25hbXUvc3NyXCI7XG5cbi8vIFNTUlF1ZXJ5IO2XrO2NvCDtlajsiJhcbmZ1bmN0aW9uIGNyZWF0ZVNTUlF1ZXJ5KFxuICBtb2RlbE5hbWU6IHN0cmluZyxcbiAgbWV0aG9kTmFtZTogc3RyaW5nLFxuICBwYXJhbXM6IGFueVtdLFxuICBzZXJ2aWNlS2V5OiBbc3RyaW5nLCBzdHJpbmddLFxuKTogU1NSUXVlcnkge1xuICByZXR1cm4geyBtb2RlbE5hbWUsIG1ldGhvZE5hbWUsIHBhcmFtcywgc2VydmljZUtleSwgX19icmFuZDogXCJTU1JRdWVyeVwiIH0gYXMgU1NSUXVlcnk7XG59XG5cbmltcG9ydCB7IFJlcXVlc3RMb2dTdGVwTGlzdFBhcmFtcyB9IGZyb20gXCIuL3JlcXVlc3QtbG9nLXN0ZXAvcmVxdWVzdC1sb2ctc3RlcC50eXBlc1wiO1xuaW1wb3J0IHsgUmVxdWVzdExvZ0xpc3RQYXJhbXMgfSBmcm9tIFwiLi9yZXF1ZXN0LWxvZy9yZXF1ZXN0LWxvZy50eXBlc1wiO1xuaW1wb3J0IHsgVG9rZW5TdWJzZXRLZXksIFJlcXVlc3RMb2dTdGVwU3Vic2V0S2V5LCBSZXF1ZXN0TG9nU3Vic2V0S2V5IH0gZnJvbSBcIi4vc29uYW11LmdlbmVyYXRlZFwiO1xuaW1wb3J0IHsgVG9rZW5MaXN0UGFyYW1zIH0gZnJvbSBcIi4vdG9rZW4vdG9rZW4udHlwZXNcIjtcblxuZXhwb3J0IG5hbWVzcGFjZSBUb2tlblNlcnZpY2Uge1xuICBleHBvcnQgY29uc3QgZ2V0VG9rZW4gPSA8VCBleHRlbmRzIFRva2VuU3Vic2V0S2V5PihzdWJzZXQ6IFQsIGlkOiBudW1iZXIpOiBTU1JRdWVyeSA9PlxuICAgIGNyZWF0ZVNTUlF1ZXJ5KFwiVG9rZW5Nb2RlbFwiLCBcImZpbmRCeUlkXCIsIFtzdWJzZXQsIGlkXSwgW1wiVG9rZW5cIiwgXCJnZXRUb2tlblwiXSk7XG5cbiAgZXhwb3J0IGNvbnN0IGdldFRva2VucyA9IDxUIGV4dGVuZHMgVG9rZW5TdWJzZXRLZXksIExQIGV4dGVuZHMgVG9rZW5MaXN0UGFyYW1zPihcbiAgICBzdWJzZXQ6IFQsXG4gICAgcmF3UGFyYW1zPzogTFAsXG4gICk6IFNTUlF1ZXJ5ID0+XG4gICAgY3JlYXRlU1NSUXVlcnkoXCJUb2tlbk1vZGVsXCIsIFwiZmluZE1hbnlcIiwgW3N1YnNldCwgcmF3UGFyYW1zXSwgW1wiVG9rZW5cIiwgXCJnZXRUb2tlbnNcIl0pO1xufVxuXG5leHBvcnQgbmFtZXNwYWNlIFJlcXVlc3RMb2dTdGVwU2VydmljZSB7XG4gIGV4cG9ydCBjb25zdCBnZXRSZXF1ZXN0TG9nU3RlcCA9IDxUIGV4dGVuZHMgUmVxdWVzdExvZ1N0ZXBTdWJzZXRLZXk+KFxuICAgIHN1YnNldDogVCxcbiAgICBpZDogbnVtYmVyLFxuICApOiBTU1JRdWVyeSA9PlxuICAgIGNyZWF0ZVNTUlF1ZXJ5KFxuICAgICAgXCJSZXF1ZXN0TG9nU3RlcE1vZGVsXCIsXG4gICAgICBcImZpbmRCeUlkXCIsXG4gICAgICBbc3Vic2V0LCBpZF0sXG4gICAgICBbXCJSZXF1ZXN0TG9nU3RlcFwiLCBcImdldFJlcXVlc3RMb2dTdGVwXCJdLFxuICAgICk7XG5cbiAgZXhwb3J0IGNvbnN0IGdldFJlcXVlc3RMb2dTdGVwcyA9IDxcbiAgICBUIGV4dGVuZHMgUmVxdWVzdExvZ1N0ZXBTdWJzZXRLZXksXG4gICAgTFAgZXh0ZW5kcyBSZXF1ZXN0TG9nU3RlcExpc3RQYXJhbXMsXG4gID4oXG4gICAgc3Vic2V0OiBULFxuICAgIHJhd1BhcmFtcz86IExQLFxuICApOiBTU1JRdWVyeSA9PlxuICAgIGNyZWF0ZVNTUlF1ZXJ5KFxuICAgICAgXCJSZXF1ZXN0TG9nU3RlcE1vZGVsXCIsXG4gICAgICBcImZpbmRNYW55XCIsXG4gICAgICBbc3Vic2V0LCByYXdQYXJhbXNdLFxuICAgICAgW1wiUmVxdWVzdExvZ1N0ZXBcIiwgXCJnZXRSZXF1ZXN0TG9nU3RlcHNcIl0sXG4gICAgKTtcbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBSZXF1ZXN0TG9nU2VydmljZSB7XG4gIGV4cG9ydCBjb25zdCBnZXRSZXF1ZXN0TG9nID0gPFQgZXh0ZW5kcyBSZXF1ZXN0TG9nU3Vic2V0S2V5PihzdWJzZXQ6IFQsIGlkOiBudW1iZXIpOiBTU1JRdWVyeSA9PlxuICAgIGNyZWF0ZVNTUlF1ZXJ5KFwiUmVxdWVzdExvZ01vZGVsXCIsIFwiZmluZEJ5SWRcIiwgW3N1YnNldCwgaWRdLCBbXCJSZXF1ZXN0TG9nXCIsIFwiZ2V0UmVxdWVzdExvZ1wiXSk7XG5cbiAgZXhwb3J0IGNvbnN0IGdldFJlcXVlc3RMb2dzID0gPFQgZXh0ZW5kcyBSZXF1ZXN0TG9nU3Vic2V0S2V5LCBMUCBleHRlbmRzIFJlcXVlc3RMb2dMaXN0UGFyYW1zPihcbiAgICBzdWJzZXQ6IFQsXG4gICAgcmF3UGFyYW1zPzogTFAsXG4gICk6IFNTUlF1ZXJ5ID0+XG4gICAgY3JlYXRlU1NSUXVlcnkoXG4gICAgICBcIlJlcXVlc3RMb2dNb2RlbFwiLFxuICAgICAgXCJmaW5kTWFueVwiLFxuICAgICAgW3N1YnNldCwgcmF3UGFyYW1zXSxcbiAgICAgIFtcIlJlcXVlc3RMb2dcIiwgXCJnZXRSZXF1ZXN0TG9nc1wiXSxcbiAgICApO1xufVxuXG5leHBvcnQgbmFtZXNwYWNlIFFncmlkU2VydmljZSB7XG4gIGV4cG9ydCBjb25zdCBzdGF0cyA9ICgpOiBTU1JRdWVyeSA9PlxuICAgIGNyZWF0ZVNTUlF1ZXJ5KFwiUWdyaWRGcmFtZVwiLCBcInN0YXRzXCIsIFtdLCBbXCJRZ3JpZFwiLCBcInN0YXRzXCJdKTtcblxuICBleHBvcnQgY29uc3QgdG90YWxDb3N0ID0gKHRva2VuTmFtZT86IHN0cmluZyk6IFNTUlF1ZXJ5ID0+XG4gICAgY3JlYXRlU1NSUXVlcnkoXCJRZ3JpZEZyYW1lXCIsIFwidG90YWxDb3N0XCIsIFt0b2tlbk5hbWVdLCBbXCJRZ3JpZFwiLCBcInRvdGFsQ29zdFwiXSk7XG5cbiAgZXhwb3J0IGNvbnN0IHByb2plY3ROYW1lcyA9ICgpOiBTU1JRdWVyeSA9PlxuICAgIGNyZWF0ZVNTUlF1ZXJ5KFwiUWdyaWRGcmFtZVwiLCBcInByb2plY3ROYW1lc1wiLCBbXSwgW1wiUWdyaWRcIiwgXCJwcm9qZWN0TmFtZXNcIl0pO1xuXG4gIGV4cG9ydCBjb25zdCB1c2FnZSA9ICh0b2tlbklkPzogbnVtYmVyKTogU1NSUXVlcnkgPT5cbiAgICBjcmVhdGVTU1JRdWVyeShcIlFncmlkRnJhbWVcIiwgXCJ1c2FnZVwiLCBbdG9rZW5JZF0sIFtcIlFncmlkXCIsIFwidXNhZ2VcIl0pO1xuXG4gIGV4cG9ydCBjb25zdCBoZWFsdGggPSAoKTogU1NSUXVlcnkgPT5cbiAgICBjcmVhdGVTU1JRdWVyeShcIlFncmlkRnJhbWVcIiwgXCJoZWFsdGhcIiwgW10sIFtcIlFncmlkXCIsIFwiaGVhbHRoXCJdKTtcbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBNb25pdFNlcnZpY2Uge1xuICBleHBvcnQgY29uc3QgbW9uaXRMb2dzID0gKGN1cnNvcj86IG51bWJlcik6IFNTUlF1ZXJ5ID0+XG4gICAgY3JlYXRlU1NSUXVlcnkoXCJNb25pdEZyYW1lXCIsIFwibW9uaXRMb2dzXCIsIFtjdXJzb3JdLCBbXCJNb25pdFwiLCBcIm1vbml0TG9nc1wiXSk7XG5cbiAgZXhwb3J0IGNvbnN0IG1vbml0SW5mbyA9ICgpOiBTU1JRdWVyeSA9PlxuICAgIGNyZWF0ZVNTUlF1ZXJ5KFwiTW9uaXRGcmFtZVwiLCBcIm1vbml0SW5mb1wiLCBbXSwgW1wiTW9uaXRcIiwgXCJtb25pdEluZm9cIl0pO1xufVxuIl0sIm1hcHBpbmdzIjoiOztBQVVBLFNBQVMsZUFDUCxXQUNBLFlBQ0EsUUFDQSxZQUNVO0FBQ1YsUUFBTztFQUFFO0VBQVc7RUFBWTtFQUFRO0VBQVksU0FBUztFQUFZOztBQVFwRSxJQUFBOztBQUNRLGVBQUEsWUFBc0MsUUFBVyxPQUM1RCxlQUFlLGNBQWMsWUFBWSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUMsU0FBUyxXQUFXLENBQUM7QUFFbEUsZUFBQSxhQUNYLFFBQ0EsY0FFQSxlQUFlLGNBQWMsWUFBWSxDQUFDLFFBQVEsVUFBVSxFQUFFLENBQUMsU0FBUyxZQUFZLENBQUM7dUNBQ3hGO0FBRU0sSUFBQTs7QUFDUSx3QkFBQSxxQkFDWCxRQUNBLE9BRUEsZUFDRSx1QkFDQSxZQUNBLENBQUMsUUFBUSxHQUFHLEVBQ1osQ0FBQyxrQkFBa0Isb0JBQW9CLENBQ3hDO0FBRVUsd0JBQUEsc0JBSVgsUUFDQSxjQUVBLGVBQ0UsdUJBQ0EsWUFDQSxDQUFDLFFBQVEsVUFBVSxFQUNuQixDQUFDLGtCQUFrQixxQkFBcUIsQ0FDekM7eURBQ0o7QUFFTSxJQUFBOztBQUNRLG9CQUFBLGlCQUFnRCxRQUFXLE9BQ3RFLGVBQWUsbUJBQW1CLFlBQVksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDLGNBQWMsZ0JBQWdCLENBQUM7QUFFakYsb0JBQUEsa0JBQ1gsUUFDQSxjQUVBLGVBQ0UsbUJBQ0EsWUFDQSxDQUFDLFFBQVEsVUFBVSxFQUNuQixDQUFDLGNBQWMsaUJBQWlCLENBQ2pDO2lEQUNKO0FBRU0sSUFBQTs7QUFDUSxlQUFBLGNBQ1gsZUFBZSxjQUFjLFNBQVMsRUFBRSxFQUFFLENBQUMsU0FBUyxRQUFRLENBQUM7QUFFbEQsZUFBQSxhQUFhLGNBQ3hCLGVBQWUsY0FBYyxhQUFhLENBQUMsVUFBVSxFQUFFLENBQUMsU0FBUyxZQUFZLENBQUM7QUFFbkUsZUFBQSxxQkFDWCxlQUFlLGNBQWMsZ0JBQWdCLEVBQUUsRUFBRSxDQUFDLFNBQVMsZUFBZSxDQUFDO0FBRWhFLGVBQUEsU0FBUyxZQUNwQixlQUFlLGNBQWMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDLFNBQVMsUUFBUSxDQUFDO0FBRXpELGVBQUEsZUFDWCxlQUFlLGNBQWMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxTQUFTLFNBQVMsQ0FBQzt1Q0FDbEU7QUFFTSxJQUFBOztBQUNRLGVBQUEsYUFBYSxXQUN4QixlQUFlLGNBQWMsYUFBYSxDQUFDLE9BQU8sRUFBRSxDQUFDLFNBQVMsWUFBWSxDQUFDO0FBRWhFLGVBQUEsa0JBQ1gsZUFBZSxjQUFjLGFBQWEsRUFBRSxFQUFFLENBQUMsU0FBUyxZQUFZLENBQUM7dUNBQ3hFIn0=
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import "../../_virtual/_rolldown/runtime.js";
|
|
2
2
|
import { SD } from "../../i18n/sd.generated.js";
|
|
3
|
-
import { calculateCostUsd } from "../../utils/providers/common/model-cost.js";
|
|
4
3
|
import { requestLogLoaderQueries, requestLogSubsetQueries } from "../sonamu.generated.sso.js";
|
|
5
4
|
import { __decorateMetadata } from "../../_virtual/_@oxc-project_runtime@0.122.0/helpers/decorateMetadata.js";
|
|
6
5
|
import { __decorate } from "../../_virtual/_@oxc-project_runtime@0.122.0/helpers/decorate.js";
|
|
6
|
+
import { calculateCostUsd } from "../../utils/providers/common/model-cost.js";
|
|
7
7
|
import { BadRequestException, BaseModelClass, NotFoundException, api, asArray, exhaustive } from "sonamu";
|
|
8
8
|
//#region src/application/request-log/request-log.model.ts
|
|
9
9
|
const MICRO_USD = 1e6;
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import "./_virtual/_rolldown/runtime.js";
|
|
2
|
+
import { monitLogSink } from "./application/monit/log-buffer.js";
|
|
3
|
+
import { OpenAIDispatcher } from "./utils/providers/openai/openai-dispatcher.js";
|
|
2
4
|
import { QgridDispatcher } from "./application/qgrid/qgrid.dispatcher.js";
|
|
3
5
|
import { QgridFrame } from "./application/qgrid/qgrid.frame.js";
|
|
4
6
|
import { TokenSubscriber } from "./application/qgrid/token-subscriber.js";
|
|
5
7
|
import { ensureTokensTrigger } from "./application/qgrid/token-trigger-setup.js";
|
|
6
8
|
import { AnthropicDispatcher } from "./utils/providers/anthropic/anthropic-dispatcher.js";
|
|
7
|
-
import { OpenAIDispatcher } from "./utils/providers/openai/openai-dispatcher.js";
|
|
8
|
-
import { getConsoleSink, getLogger } from "@logtape/logtape";
|
|
9
9
|
import { CachePresets, defineConfig } from "sonamu";
|
|
10
|
+
import { getConsoleSink, getLogger } from "@logtape/logtape";
|
|
10
11
|
import { drivers, store } from "sonamu/cache";
|
|
11
12
|
import path from "path";
|
|
12
13
|
import { getPrettyFormatter } from "@logtape/pretty";
|
|
@@ -58,20 +59,23 @@ var sonamu_config_default = defineConfig({
|
|
|
58
59
|
devRunner: { enabled: true }
|
|
59
60
|
},
|
|
60
61
|
logging: {
|
|
61
|
-
sinks: {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
62
|
+
sinks: {
|
|
63
|
+
console: getConsoleSink({ formatter: getPrettyFormatter({
|
|
64
|
+
timestamp: "time",
|
|
65
|
+
categoryWidth: 20,
|
|
66
|
+
categoryTruncate: "middle"
|
|
67
|
+
}) }),
|
|
68
|
+
monit: monitLogSink
|
|
69
|
+
},
|
|
66
70
|
loggers: [
|
|
67
71
|
{
|
|
68
72
|
category: ["qgrid"],
|
|
69
|
-
sinks: ["console"],
|
|
73
|
+
sinks: ["console", "monit"],
|
|
70
74
|
lowestLevel: "info"
|
|
71
75
|
},
|
|
72
76
|
{
|
|
73
77
|
category: ["sonamu"],
|
|
74
|
-
sinks: ["console"],
|
|
78
|
+
sinks: ["console", "monit"],
|
|
75
79
|
lowestLevel: "warning"
|
|
76
80
|
},
|
|
77
81
|
{
|
|
@@ -195,4 +199,4 @@ var sonamu_config_default = defineConfig({
|
|
|
195
199
|
//#endregion
|
|
196
200
|
export { sonamu_config_default as default };
|
|
197
201
|
|
|
198
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29uYW11LmNvbmZpZy5qcyIsIm5hbWVzIjpbImNhY2hlRHJpdmVycyJdLCJzb3VyY2VzIjpbIi4uL3NyYy9zb25hbXUuY29uZmlnLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbmltcG9ydCB7IGdldENvbnNvbGVTaW5rIH0gZnJvbSBcIkBsb2d0YXBlL2xvZ3RhcGVcIjtcbmltcG9ydCB7IGdldExvZ2dlciB9IGZyb20gXCJAbG9ndGFwZS9sb2d0YXBlXCI7XG5pbXBvcnQgeyBnZXRQcmV0dHlGb3JtYXR0ZXIgfSBmcm9tIFwiQGxvZ3RhcGUvcHJldHR5XCI7XG5pbXBvcnQgZG90ZW52IGZyb20gXCJkb3RlbnZcIjtcbmltcG9ydCB7IENhY2hlUHJlc2V0cywgZGVmaW5lQ29uZmlnIH0gZnJvbSBcInNvbmFtdVwiO1xuaW1wb3J0IHsgZHJpdmVycyBhcyBjYWNoZURyaXZlcnMsIHN0b3JlIH0gZnJvbSBcInNvbmFtdS9jYWNoZVwiO1xuXG5pbXBvcnQgeyBRZ3JpZERpc3BhdGNoZXIgfSBmcm9tIFwiLi9hcHBsaWNhdGlvbi9xZ3JpZC9xZ3JpZC5kaXNwYXRjaGVyXCI7XG5pbXBvcnQgeyBRZ3JpZEZyYW1lIH0gZnJvbSBcIi4vYXBwbGljYXRpb24vcWdyaWQvcWdyaWQuZnJhbWVcIjtcbmltcG9ydCB7IFRva2VuU3Vic2NyaWJlciB9IGZyb20gXCIuL2FwcGxpY2F0aW9uL3FncmlkL3Rva2VuLXN1YnNjcmliZXJcIjtcbmltcG9ydCB7IGVuc3VyZVRva2Vuc1RyaWdnZXIgfSBmcm9tIFwiLi9hcHBsaWNhdGlvbi9xZ3JpZC90b2tlbi10cmlnZ2VyLXNldHVwXCI7XG5pbXBvcnQgeyBBbnRocm9waWNEaXNwYXRjaGVyIH0gZnJvbSBcIi4vdXRpbHMvcHJvdmlkZXJzL2FudGhyb3BpYy9hbnRocm9waWMtZGlzcGF0Y2hlclwiO1xuaW1wb3J0IHsgT3BlbkFJRGlzcGF0Y2hlciB9IGZyb20gXCIuL3V0aWxzL3Byb3ZpZGVycy9vcGVuYWkvb3BlbmFpLWRpc3BhdGNoZXJcIjtcblxuZG90ZW52LmNvbmZpZyh7IHBhdGg6IHBhdGguam9pbihpbXBvcnQubWV0YS5kaXJuYW1lLCBcIi4uLy5lbnZcIikgfSk7XG5cbmNvbnN0IGhvc3QgPSBwcm9jZXNzLmVudi5IT1NUID8/IFwibG9jYWxob3N0XCI7XG5jb25zdCBwb3J0ID0gTnVtYmVyKHByb2Nlc3MuZW52LlBPUlQgPz8gNDQ5MDApO1xuXG5jb25zdCBjb25uQ29uZmlnID0ge1xuICBob3N0OiBwcm9jZXNzLmVudi5RR1JJRF9EQl9IT1NUID8/IFwibG9jYWxob3N0XCIsXG4gIHBvcnQ6IE51bWJlcihwcm9jZXNzLmVudi5RR1JJRF9EQl9QT1JUID8/IDU0MzIpLFxuICB1c2VyOiBwcm9jZXNzLmVudi5RR1JJRF9EQl9VU0VSID8/IFwicG9zdGdyZXNcIixcbiAgcGFzc3dvcmQ6IHByb2Nlc3MuZW52LlFHUklEX0RCX1BBU1NXT1JEID8/IFwicG9zdGdyZXNcIixcbiAgZGF0YWJhc2U6IHByb2Nlc3MuZW52LlFHUklEX0RCX05BTUUgPz8gXCJxZ3JpZFwiLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKHtcbiAgcHJvamVjdE5hbWU6IHByb2Nlc3MuZW52LlBST0pFQ1RfTkFNRSA/PyBcIlFncmlkXCIsXG4gIGRhdGFiYXNlOiB7XG4gICAgbmFtZTogXCJxZ3JpZFwiLFxuICAgIGRlZmF1bHRPcHRpb25zOiB7XG4gICAgICBjb25uZWN0aW9uOiB7XG4gICAgICAgIC4uLmNvbm5Db25maWcsXG4gICAgICAgIGtlZXBBbGl2ZTogdHJ1ZSxcbiAgICAgICAga2VlcEFsaXZlSW5pdGlhbERlbGF5TWlsbGlzOiAxMDAwMCxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBlbnZpcm9ubWVudHM6IHtcbiAgICAgIGZpeHR1cmU6IHtcbiAgICAgICAgY29ubmVjdGlvbjoge1xuICAgICAgICAgIC4uLmNvbm5Db25maWcsXG4gICAgICAgICAgZGF0YWJhc2U6IHByb2Nlc3MuZW52LlFHUklEX0RCX05BTUUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdGVzdDoge1xuICAgICAgICBjb25uZWN0aW9uOiB7XG4gICAgICAgICAgLi4uY29ubkNvbmZpZyxcbiAgICAgICAgICBkYXRhYmFzZTogcHJvY2Vzcy5lbnYuUUdSSURfREJfTkFNRSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbiAgYXBpOiB7XG4gICAgZGlyOiBcImFwaVwiLFxuICAgIHRpbWV6b25lOiBcIkFzaWEvU2VvdWxcIixcbiAgICByb3V0ZToge1xuICAgICAgcHJlZml4OiBcIi9hcGlcIixcbiAgICB9LFxuICB9LFxuICBpMThuOiB7XG4gICAgZGVmYXVsdExvY2FsZTogXCJrb1wiLFxuICAgIHN1cHBvcnRlZExvY2FsZXM6IFtcImtvXCIsIFwiZW5cIl0sXG4gIH0sXG4gIHN5bmM6IHtcbiAgICB0YXJnZXRzOiBbXCJ3ZWJcIl0sXG4gIH0sXG4gIHRlc3Q6IHtcbiAgICBwYXJhbGxlbDogdHJ1ZSxcbiAgICBtYXhXb3JrZXJzOiA0LFxuICAgIGRldlJ1bm5lcjogeyBlbmFibGVkOiB0cnVlIH0sXG4gIH0sXG4gIGxvZ2dpbmc6IHtcbiAgICBzaW5rczoge1xuICAgICAgY29uc29sZTogZ2V0Q29uc29sZVNpbmsoe1xuICAgICAgICBmb3JtYXR0ZXI6IGdldFByZXR0eUZvcm1hdHRlcih7XG4gICAgICAgICAgdGltZXN0YW1wOiBcInRpbWVcIixcbiAgICAgICAgICBjYXRlZ29yeVdpZHRoOiAyMCxcbiAgICAgICAgICBjYXRlZ29yeVRydW5jYXRlOiBcIm1pZGRsZVwiLFxuICAgICAgICB9KSxcbiAgICAgIH0pLFxuICAgIH0sXG4gICAgbG9nZ2VyczogW1xuICAgICAgLy8gcWdyaWQg66Gc6re4ICjsmpTssq0g67aE67CwLCBvYXV0aC91c2FnZSBBUEkpXG4gICAgICB7IGNhdGVnb3J5OiBbXCJxZ3JpZFwiXSwgc2lua3M6IFtcImNvbnNvbGVcIl0sIGxvd2VzdExldmVsOiBcImluZm9cIiB9LFxuICAgICAgLy8gc29uYW11IOuhnOq3uOuKlCB3YXJuaW5nIOydtOyDgeunjFxuICAgICAgeyBjYXRlZ29yeTogW1wic29uYW11XCJdLCBzaW5rczogW1wiY29uc29sZVwiXSwgbG93ZXN0TGV2ZWw6IFwid2FybmluZ1wiIH0sXG4gICAgICAvLyBmYXN0aWZ5IOuhnOq3uCDssKjri6hcbiAgICAgIHsgY2F0ZWdvcnk6IFtcImZhc3RpZnlcIl0sIHNpbmtzOiBbXSwgbG93ZXN0TGV2ZWw6IFwiZmF0YWxcIiB9LFxuICAgIF0sXG4gIH0sXG4gIHNlcnZlcjoge1xuICAgIGxpc3RlbjogeyBwb3J0LCBob3N0IH0sXG4gICAgZmFzdGlmeToge1xuICAgICAgYm9keUxpbWl0OiAxMCAqIDEwMjQgKiAxMDI0LFxuICAgIH0sXG4gICAgcGx1Z2luczoge1xuICAgICAgZm9ybWJvZHk6IHRydWUsXG4gICAgICBxczogdHJ1ZSxcbiAgICAgIHNzZTogdHJ1ZSxcbiAgICAgIG11bHRpcGFydDogeyBsaW1pdHM6IHsgZmlsZVNpemU6IDEwMjQgKiAxMDI0ICogMzAgfSB9LFxuICAgICAgc3RhdGljOiB7XG4gICAgICAgIHJvb3Q6IHBhdGguam9pbihpbXBvcnQubWV0YS5kaXJuYW1lLCBcIi8uLi9cIiwgXCJwdWJsaWNcIiksXG4gICAgICAgIHByZWZpeDogXCIvYXBpL3B1YmxpY1wiLFxuICAgICAgfSxcbiAgICAgIGN1c3RvbTogKHNlcnZlcikgPT4ge1xuICAgICAgICAvLyBPQXV0aCDsvZzrsLEg4oCUIEFudGhyb3BpY+ydtCAvY2FsbGJhY2vsnLzroZwg66as64uk7J2066CJ7Yq4XG4gICAgICAgIHNlcnZlci5nZXQoXCIvY2FsbGJhY2tcIiwgYXN5bmMgKHJlcXVlc3QsIHJlcGx5KSA9PiB7XG4gICAgICAgICAgY29uc3QgeyBjb2RlLCBzdGF0ZSB9ID0gcmVxdWVzdC5xdWVyeSBhcyB7IGNvZGU/OiBzdHJpbmc7IHN0YXRlPzogc3RyaW5nIH07XG4gICAgICAgICAgaWYgKCFjb2RlIHx8ICFzdGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHJlcGx5LnJlZGlyZWN0KFwiLz9vYXV0aD1lcnJvciZyZWFzb249bWlzc2luZ19wYXJhbXNcIik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gUWdyaWRGcmFtZS5oYW5kbGVPQXV0aENhbGxiYWNrKGNvZGUsIHN0YXRlLCByZXBseSk7XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgcmV0dXJuIHJlcGx5LnJlZGlyZWN0KFxuICAgICAgICAgICAgICBgLz9vYXV0aD1lcnJvciZyZWFzb249JHtlbmNvZGVVUklDb21wb25lbnQoKGUgYXMgRXJyb3IpLm1lc3NhZ2UpfWAsXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gT3BlbkFJIE9BdXRoIOuKlCBjb2RleCBhcHAtc2VydmVyIOqwgCDsnpDssrQgY2FsbGJhY2sg7ISc67KE66W8IOyYrOumvFxuICAgICAgICAvLyBoYW5kbGVPcGVuQUlDYWxsYmFjayDrtojtlYTsmpQg4oCUIG9hdXRoQ29tcGxldGVPcGVuQUkgQVBJIOuhnCDsmYTro4wg7ZmV7J24XG4gICAgICB9LFxuICAgIH0sXG4gICAgYXBpQ29uZmlnOiB7XG4gICAgICBjb250ZXh0UHJvdmlkZXI6IChkZWZhdWx0Q29udGV4dCwgcmVxdWVzdCkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLmRlZmF1bHRDb250ZXh0LFxuICAgICAgICAgIGlwOiByZXF1ZXN0LmlwLFxuICAgICAgICAgIGJvZHk6IHJlcXVlc3QuYm9keSxcbiAgICAgICAgfTtcbiAgICAgIH0sXG4gICAgICBndWFyZEhhbmRsZXI6ICgpID0+IHt9LFxuICAgICAgY2FjaGVDb250cm9sSGFuZGxlcjogKHJlcSkgPT4ge1xuICAgICAgICBzd2l0Y2ggKHJlcS50eXBlKSB7XG4gICAgICAgICAgY2FzZSBcImFzc2V0c1wiOlxuICAgICAgICAgICAgLy8gSGFzaCDtj6ztlajrkJwg7YyM7J28OiDsmIHqtawg7LqQ7IucXG4gICAgICAgICAgICBpZiAocmVxLnBhdGgubWF0Y2goLy1bYS1mMC05XStcXC4vKSkge1xuICAgICAgICAgICAgICByZXR1cm4gQ2FjaGVQcmVzZXRzLmltbXV0YWJsZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBDYWNoZVByZXNldHMubG9uZ0xpdmVkO1xuXG4gICAgICAgICAgY2FzZSBcImFwaVwiOlxuICAgICAgICAgICAgLy8gR0VUIOyalOyyreunjCDsupDsi7Eg6rOg66CkXG4gICAgICAgICAgICBpZiAocmVxLm1ldGhvZCA9PT0gXCJHRVRcIikge1xuICAgICAgICAgICAgICAvLyDtirnsoJUg6rK966Gc64qUIOynp+ydgCDsupDsi5xcbiAgICAgICAgICAgICAgaWYgKHJlcS5wYXRoLnN0YXJ0c1dpdGgoXCIvYXBpL3N0YXRpYy1kYXRhXCIpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIENhY2hlUHJlc2V0cy5zaG9ydExpdmVkO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChyZXEucGF0aC5zdGFydHNXaXRoKFwiL2FwaS90ZXJtc1wiKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBDYWNoZVByZXNldHMubWVkaXVtTGl2ZWQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIOq4sOuzuDog7LqQ7IucIOyXhuydjFxuICAgICAgICAgICAgcmV0dXJuIENhY2hlUHJlc2V0cy5ub0NhY2hlO1xuXG4gICAgICAgICAgY2FzZSBcInNzclwiOlxuICAgICAgICAgICAgLy8gU1NSIO2OmOydtOyngDogMTDstIgg7LqQ7IucXG4gICAgICAgICAgICByZXR1cm4gQ2FjaGVQcmVzZXRzLnNzcjtcblxuICAgICAgICAgIGNhc2UgXCJjc3JcIjpcbiAgICAgICAgICAgIC8vIENTUiBmYWxsYmFjayAoaW5kZXguaHRtbCk6IDHrtoQg7LqQ7IucXG4gICAgICAgICAgICByZXR1cm4gQ2FjaGVQcmVzZXRzLnNob3J0TGl2ZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIENhY2hlUHJlc2V0cy5ub0NhY2hlO1xuICAgICAgfSxcbiAgICB9LFxuICAgIGNhY2hlOiB7XG4gICAgICBkZWZhdWx0OiBcIm1haW5cIixcbiAgICAgIHN0b3Jlczoge1xuICAgICAgICBtYWluOiBzdG9yZSgpLnVzZUwxTGF5ZXIoY2FjaGVEcml2ZXJzLm1lbW9yeSh7IG1heFNpemU6IFwiNTBtYlwiIH0pKSxcbiAgICAgIH0sXG4gICAgICB0dGw6IFwiNW1cIixcbiAgICAgIHByZWZpeDogXCJcIixcbiAgICB9LFxuICAgIGxpZmVjeWNsZToge1xuICAgICAgb25TdGFydDogYXN5bmMgKCkgPT4ge1xuICAgICAgICBjb25zdCBsb2cgPSBnZXRMb2dnZXIoW1wicWdyaWRcIiwgXCJzdGFydHVwXCJdKTtcblxuICAgICAgICBsZXQgdHJpZ2dlclJlYWR5ID0gdHJ1ZTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBhd2FpdCBlbnN1cmVUb2tlbnNUcmlnZ2VyKGNvbm5Db25maWcpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgdHJpZ2dlclJlYWR5ID0gZmFsc2U7XG4gICAgICAgICAgbG9nLndhcm4oYHRyaWdnZXIgc2V0dXAgZmFpbGVkOiAkeyhlIGFzIEVycm9yKS5tZXNzYWdlfWApO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc3Vic2NyaWJlciA9IG5ldyBUb2tlblN1YnNjcmliZXIoY29ubkNvbmZpZywgUWdyaWREaXNwYXRjaGVyKTtcbiAgICAgICAgUWdyaWREaXNwYXRjaGVyLnN1YnNjcmliZXIgPSBzdWJzY3JpYmVyO1xuXG4gICAgICAgIGNvbnN0IHN0YXJ0ZWQgPSBhd2FpdCBzdWJzY3JpYmVyLnN0YXJ0KCk7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBvcGVuYWlEaXNwYXRjaGVyID0gbmV3IE9wZW5BSURpc3BhdGNoZXIoKTtcbiAgICAgICAgICBhd2FpdCBvcGVuYWlEaXNwYXRjaGVyLnN0YXJ0KCk7XG4gICAgICAgICAgUWdyaWREaXNwYXRjaGVyLm9wZW5haURpc3BhdGNoZXIgPSBvcGVuYWlEaXNwYXRjaGVyO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgbG9nLndhcm4oYG9wZW5haSBkaXNwYXRjaGVyIGZhaWxlZDogJHsoZSBhcyBFcnJvcikubWVzc2FnZX1gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgYW50aHJvcGljRGlzcGF0Y2hlciA9IG5ldyBBbnRocm9waWNEaXNwYXRjaGVyKCk7XG4gICAgICAgICAgYXdhaXQgYW50aHJvcGljRGlzcGF0Y2hlci5zdGFydCgpO1xuICAgICAgICAgIFFncmlkRGlzcGF0Y2hlci5hbnRocm9waWNEaXNwYXRjaGVyID0gYW50aHJvcGljRGlzcGF0Y2hlcjtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGxvZy53YXJuKGBhbnRocm9waWMgZGlzcGF0Y2hlciBmYWlsZWQ6ICR7KGUgYXMgRXJyb3IpLm1lc3NhZ2V9YCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBhbnRocm9waWNDb3VudCA9IFFncmlkRGlzcGF0Y2hlci5hbnRocm9waWNEaXNwYXRjaGVyPy50b2tlbkNvdW50ID8/IDA7XG4gICAgICAgIGNvbnN0IG9wZW5haVJlYWR5ID0gUWdyaWREaXNwYXRjaGVyLm9wZW5haURpc3BhdGNoZXI/LnJlYWR5V29ya2VyQ291bnQgPz8gMDtcbiAgICAgICAgY29uc3Qgb3BlbmFpVG90YWwgPSBRZ3JpZERpc3BhdGNoZXIub3BlbmFpRGlzcGF0Y2hlcj8ud29ya2VyQ291bnQgPz8gMDtcblxuICAgICAgICBsb2cuaW5mbyhgbGlzdGVuaW5nIG9uIGh0dHA6Ly8ke2hvc3R9OiR7cG9ydH1gKTtcbiAgICAgICAgbG9nLmluZm8oYGFudGhyb3BpYzogJHthbnRocm9waWNDb3VudH0gdG9rZW5zIHJlYWR5YCk7XG4gICAgICAgIGxvZy5pbmZvKGBvcGVuYWk6ICR7b3BlbmFpUmVhZHl9LyR7b3BlbmFpVG90YWx9IHRva2VucyByZWFkeWApO1xuICAgICAgICBsb2cuaW5mbyhcbiAgICAgICAgICBgc3Vic2NyaWJlcjogJHtzdGFydGVkID8gXCJMSVNURU4gYWN0aXZlXCIgOiBcImRlZ3JhZGVkXCJ9JHt0cmlnZ2VyUmVhZHkgPyBcIlwiIDogXCIsIHRyaWdnZXIgZmFpbGVkXCJ9YCxcbiAgICAgICAgKTtcbiAgICAgIH0sXG4gICAgICBvblNodXRkb3duOiBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGxvZyA9IGdldExvZ2dlcihbXCJxZ3JpZFwiLCBcInN0YXJ0dXBcIl0pO1xuICAgICAgICBpZiAoUWdyaWREaXNwYXRjaGVyLm9wZW5haURpc3BhdGNoZXIpIHtcbiAgICAgICAgICBhd2FpdCBRZ3JpZERpc3BhdGNoZXIub3BlbmFpRGlzcGF0Y2hlci5zdG9wKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFFncmlkRGlzcGF0Y2hlci5hbnRocm9waWNEaXNwYXRjaGVyKSB7XG4gICAgICAgICAgYXdhaXQgUWdyaWREaXNwYXRjaGVyLmFudGhyb3BpY0Rpc3BhdGNoZXIuc3RvcCgpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChRZ3JpZERpc3BhdGNoZXIuc3Vic2NyaWJlcikge1xuICAgICAgICAgIGF3YWl0IFFncmlkRGlzcGF0Y2hlci5zdWJzY3JpYmVyLnN0b3AoKTtcbiAgICAgICAgfVxuICAgICAgICBsb2cuaW5mbyhcImdyYWNlZnVsIHNodXRkb3duXCIpO1xuICAgICAgfSxcbiAgICAgIG9uRXJyb3I6IChlcnJvciwgX3JlcXVlc3QsIHJlcGx5KSA9PiB7XG4gICAgICAgIGdldExvZ2dlcihbXCJxZ3JpZFwiXSkuZXJyb3IoYCR7ZXJyb3J9YCk7XG4gICAgICAgIHJlcGx5LnN0YXR1cyg1MDApLnNlbmQoe1xuICAgICAgICAgIG5hbWU6IGVycm9yLm5hbWUsXG4gICAgICAgICAgbWVzc2FnZTogZXJyb3IubWVzc2FnZSxcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFnQkEsT0FBTyxPQUFPLEVBQUUsTUFBTSxLQUFLLEtBQUssT0FBTyxLQUFLLFNBQVMsVUFBVSxFQUFFLENBQUM7QUFFbEUsTUFBTSxPQUFPLFFBQVEsSUFBSSxRQUFRO0FBQ2pDLE1BQU0sT0FBTyxPQUFPLFFBQVEsSUFBSSxRQUFRLE1BQU07QUFFOUMsTUFBTSxhQUFhO0NBQ2pCLE1BQU0sUUFBUSxJQUFJLGlCQUFpQjtDQUNuQyxNQUFNLE9BQU8sUUFBUSxJQUFJLGlCQUFpQixLQUFLO0NBQy9DLE1BQU0sUUFBUSxJQUFJLGlCQUFpQjtDQUNuQyxVQUFVLFFBQVEsSUFBSSxxQkFBcUI7Q0FDM0MsVUFBVSxRQUFRLElBQUksaUJBQWlCO0NBQ3hDO0FBRUQsSUFBQSx3QkFBZSxhQUFhO0NBQzFCLGFBQWEsUUFBUSxJQUFJLGdCQUFnQjtDQUN6QyxVQUFVO0VBQ1IsTUFBTTtFQUNOLGdCQUFnQixFQUNkLFlBQVk7R0FDVixHQUFHO0dBQ0gsV0FBVztHQUNYLDZCQUE2QjtHQUM5QixFQUNGO0VBQ0QsY0FBYztHQUNaLFNBQVMsRUFDUCxZQUFZO0lBQ1YsR0FBRztJQUNILFVBQVUsUUFBUSxJQUFJO0lBQ3ZCLEVBQ0Y7R0FDRCxNQUFNLEVBQ0osWUFBWTtJQUNWLEdBQUc7SUFDSCxVQUFVLFFBQVEsSUFBSTtJQUN2QixFQUNGO0dBQ0Y7RUFDRjtDQUNELEtBQUs7RUFDSCxLQUFLO0VBQ0wsVUFBVTtFQUNWLE9BQU8sRUFDTCxRQUFRLFFBQ1Q7RUFDRjtDQUNELE1BQU07RUFDSixlQUFlO0VBQ2Ysa0JBQWtCLENBQUMsTUFBTSxLQUFLO0VBQy9CO0NBQ0QsTUFBTSxFQUNKLFNBQVMsQ0FBQyxNQUFNLEVBQ2pCO0NBQ0QsTUFBTTtFQUNKLFVBQVU7RUFDVixZQUFZO0VBQ1osV0FBVyxFQUFF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
|
|
202
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29uYW11LmNvbmZpZy5qcyIsIm5hbWVzIjpbImNhY2hlRHJpdmVycyJdLCJzb3VyY2VzIjpbIi4uL3NyYy9zb25hbXUuY29uZmlnLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbmltcG9ydCB7IGdldENvbnNvbGVTaW5rIH0gZnJvbSBcIkBsb2d0YXBlL2xvZ3RhcGVcIjtcbmltcG9ydCB7IGdldExvZ2dlciB9IGZyb20gXCJAbG9ndGFwZS9sb2d0YXBlXCI7XG5pbXBvcnQgeyBnZXRQcmV0dHlGb3JtYXR0ZXIgfSBmcm9tIFwiQGxvZ3RhcGUvcHJldHR5XCI7XG5pbXBvcnQgZG90ZW52IGZyb20gXCJkb3RlbnZcIjtcbmltcG9ydCB7IENhY2hlUHJlc2V0cywgZGVmaW5lQ29uZmlnIH0gZnJvbSBcInNvbmFtdVwiO1xuaW1wb3J0IHsgZHJpdmVycyBhcyBjYWNoZURyaXZlcnMsIHN0b3JlIH0gZnJvbSBcInNvbmFtdS9jYWNoZVwiO1xuXG5pbXBvcnQgeyBtb25pdExvZ1NpbmsgfSBmcm9tIFwiLi9hcHBsaWNhdGlvbi9tb25pdC9sb2ctYnVmZmVyXCI7XG5pbXBvcnQgeyBRZ3JpZERpc3BhdGNoZXIgfSBmcm9tIFwiLi9hcHBsaWNhdGlvbi9xZ3JpZC9xZ3JpZC5kaXNwYXRjaGVyXCI7XG5pbXBvcnQgeyBRZ3JpZEZyYW1lIH0gZnJvbSBcIi4vYXBwbGljYXRpb24vcWdyaWQvcWdyaWQuZnJhbWVcIjtcbmltcG9ydCB7IFRva2VuU3Vic2NyaWJlciB9IGZyb20gXCIuL2FwcGxpY2F0aW9uL3FncmlkL3Rva2VuLXN1YnNjcmliZXJcIjtcbmltcG9ydCB7IGVuc3VyZVRva2Vuc1RyaWdnZXIgfSBmcm9tIFwiLi9hcHBsaWNhdGlvbi9xZ3JpZC90b2tlbi10cmlnZ2VyLXNldHVwXCI7XG5pbXBvcnQgeyBBbnRocm9waWNEaXNwYXRjaGVyIH0gZnJvbSBcIi4vdXRpbHMvcHJvdmlkZXJzL2FudGhyb3BpYy9hbnRocm9waWMtZGlzcGF0Y2hlclwiO1xuaW1wb3J0IHsgT3BlbkFJRGlzcGF0Y2hlciB9IGZyb20gXCIuL3V0aWxzL3Byb3ZpZGVycy9vcGVuYWkvb3BlbmFpLWRpc3BhdGNoZXJcIjtcblxuZG90ZW52LmNvbmZpZyh7IHBhdGg6IHBhdGguam9pbihpbXBvcnQubWV0YS5kaXJuYW1lLCBcIi4uLy5lbnZcIikgfSk7XG5cbmNvbnN0IGhvc3QgPSBwcm9jZXNzLmVudi5IT1NUID8/IFwibG9jYWxob3N0XCI7XG5jb25zdCBwb3J0ID0gTnVtYmVyKHByb2Nlc3MuZW52LlBPUlQgPz8gNDQ5MDApO1xuXG5jb25zdCBjb25uQ29uZmlnID0ge1xuICBob3N0OiBwcm9jZXNzLmVudi5RR1JJRF9EQl9IT1NUID8/IFwibG9jYWxob3N0XCIsXG4gIHBvcnQ6IE51bWJlcihwcm9jZXNzLmVudi5RR1JJRF9EQl9QT1JUID8/IDU0MzIpLFxuICB1c2VyOiBwcm9jZXNzLmVudi5RR1JJRF9EQl9VU0VSID8/IFwicG9zdGdyZXNcIixcbiAgcGFzc3dvcmQ6IHByb2Nlc3MuZW52LlFHUklEX0RCX1BBU1NXT1JEID8/IFwicG9zdGdyZXNcIixcbiAgZGF0YWJhc2U6IHByb2Nlc3MuZW52LlFHUklEX0RCX05BTUUgPz8gXCJxZ3JpZFwiLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKHtcbiAgcHJvamVjdE5hbWU6IHByb2Nlc3MuZW52LlBST0pFQ1RfTkFNRSA/PyBcIlFncmlkXCIsXG4gIGRhdGFiYXNlOiB7XG4gICAgbmFtZTogXCJxZ3JpZFwiLFxuICAgIGRlZmF1bHRPcHRpb25zOiB7XG4gICAgICBjb25uZWN0aW9uOiB7XG4gICAgICAgIC4uLmNvbm5Db25maWcsXG4gICAgICAgIGtlZXBBbGl2ZTogdHJ1ZSxcbiAgICAgICAga2VlcEFsaXZlSW5pdGlhbERlbGF5TWlsbGlzOiAxMDAwMCxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBlbnZpcm9ubWVudHM6IHtcbiAgICAgIGZpeHR1cmU6IHtcbiAgICAgICAgY29ubmVjdGlvbjoge1xuICAgICAgICAgIC4uLmNvbm5Db25maWcsXG4gICAgICAgICAgZGF0YWJhc2U6IHByb2Nlc3MuZW52LlFHUklEX0RCX05BTUUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdGVzdDoge1xuICAgICAgICBjb25uZWN0aW9uOiB7XG4gICAgICAgICAgLi4uY29ubkNvbmZpZyxcbiAgICAgICAgICBkYXRhYmFzZTogcHJvY2Vzcy5lbnYuUUdSSURfREJfTkFNRSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbiAgYXBpOiB7XG4gICAgZGlyOiBcImFwaVwiLFxuICAgIHRpbWV6b25lOiBcIkFzaWEvU2VvdWxcIixcbiAgICByb3V0ZToge1xuICAgICAgcHJlZml4OiBcIi9hcGlcIixcbiAgICB9LFxuICB9LFxuICBpMThuOiB7XG4gICAgZGVmYXVsdExvY2FsZTogXCJrb1wiLFxuICAgIHN1cHBvcnRlZExvY2FsZXM6IFtcImtvXCIsIFwiZW5cIl0sXG4gIH0sXG4gIHN5bmM6IHtcbiAgICB0YXJnZXRzOiBbXCJ3ZWJcIl0sXG4gIH0sXG4gIHRlc3Q6IHtcbiAgICBwYXJhbGxlbDogdHJ1ZSxcbiAgICBtYXhXb3JrZXJzOiA0LFxuICAgIGRldlJ1bm5lcjogeyBlbmFibGVkOiB0cnVlIH0sXG4gIH0sXG4gIGxvZ2dpbmc6IHtcbiAgICBzaW5rczoge1xuICAgICAgY29uc29sZTogZ2V0Q29uc29sZVNpbmsoe1xuICAgICAgICBmb3JtYXR0ZXI6IGdldFByZXR0eUZvcm1hdHRlcih7XG4gICAgICAgICAgdGltZXN0YW1wOiBcInRpbWVcIixcbiAgICAgICAgICBjYXRlZ29yeVdpZHRoOiAyMCxcbiAgICAgICAgICBjYXRlZ29yeVRydW5jYXRlOiBcIm1pZGRsZVwiLFxuICAgICAgICB9KSxcbiAgICAgIH0pLFxuICAgICAgLy8gTW9uaXQg7YOt7JqpIGluLW1lbW9yeSByaW5nIGJ1ZmZlci4g7Y+s66e37J2AIHNpbmsg67OEIOKAlCDsvZjshpQg7Lac66Cl7J2AIOq3uOuMgOuhnOuLpC5cbiAgICAgIG1vbml0OiBtb25pdExvZ1NpbmssXG4gICAgfSxcbiAgICBsb2dnZXJzOiBbXG4gICAgICAvLyBxZ3JpZCDroZzqt7ggKOyalOyyrSDrtoTrsLAsIG9hdXRoL3VzYWdlIEFQSSlcbiAgICAgIHsgY2F0ZWdvcnk6IFtcInFncmlkXCJdLCBzaW5rczogW1wiY29uc29sZVwiLCBcIm1vbml0XCJdLCBsb3dlc3RMZXZlbDogXCJpbmZvXCIgfSxcbiAgICAgIC8vIHNvbmFtdSDroZzqt7jripQgd2FybmluZyDsnbTsg4Hrp4xcbiAgICAgIHsgY2F0ZWdvcnk6IFtcInNvbmFtdVwiXSwgc2lua3M6IFtcImNvbnNvbGVcIiwgXCJtb25pdFwiXSwgbG93ZXN0TGV2ZWw6IFwid2FybmluZ1wiIH0sXG4gICAgICAvLyBmYXN0aWZ5IOuhnOq3uCDssKjri6hcbiAgICAgIHsgY2F0ZWdvcnk6IFtcImZhc3RpZnlcIl0sIHNpbmtzOiBbXSwgbG93ZXN0TGV2ZWw6IFwiZmF0YWxcIiB9LFxuICAgIF0sXG4gIH0sXG4gIHNlcnZlcjoge1xuICAgIGxpc3RlbjogeyBwb3J0LCBob3N0IH0sXG4gICAgZmFzdGlmeToge1xuICAgICAgYm9keUxpbWl0OiAxMCAqIDEwMjQgKiAxMDI0LFxuICAgIH0sXG4gICAgcGx1Z2luczoge1xuICAgICAgZm9ybWJvZHk6IHRydWUsXG4gICAgICBxczogdHJ1ZSxcbiAgICAgIHNzZTogdHJ1ZSxcbiAgICAgIG11bHRpcGFydDogeyBsaW1pdHM6IHsgZmlsZVNpemU6IDEwMjQgKiAxMDI0ICogMzAgfSB9LFxuICAgICAgc3RhdGljOiB7XG4gICAgICAgIHJvb3Q6IHBhdGguam9pbihpbXBvcnQubWV0YS5kaXJuYW1lLCBcIi8uLi9cIiwgXCJwdWJsaWNcIiksXG4gICAgICAgIHByZWZpeDogXCIvYXBpL3B1YmxpY1wiLFxuICAgICAgfSxcbiAgICAgIGN1c3RvbTogKHNlcnZlcikgPT4ge1xuICAgICAgICAvLyBPQXV0aCDsvZzrsLEg4oCUIEFudGhyb3BpY+ydtCAvY2FsbGJhY2vsnLzroZwg66as64uk7J2066CJ7Yq4XG4gICAgICAgIHNlcnZlci5nZXQoXCIvY2FsbGJhY2tcIiwgYXN5bmMgKHJlcXVlc3QsIHJlcGx5KSA9PiB7XG4gICAgICAgICAgY29uc3QgeyBjb2RlLCBzdGF0ZSB9ID0gcmVxdWVzdC5xdWVyeSBhcyB7IGNvZGU/OiBzdHJpbmc7IHN0YXRlPzogc3RyaW5nIH07XG4gICAgICAgICAgaWYgKCFjb2RlIHx8ICFzdGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHJlcGx5LnJlZGlyZWN0KFwiLz9vYXV0aD1lcnJvciZyZWFzb249bWlzc2luZ19wYXJhbXNcIik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gUWdyaWRGcmFtZS5oYW5kbGVPQXV0aENhbGxiYWNrKGNvZGUsIHN0YXRlLCByZXBseSk7XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgcmV0dXJuIHJlcGx5LnJlZGlyZWN0KFxuICAgICAgICAgICAgICBgLz9vYXV0aD1lcnJvciZyZWFzb249JHtlbmNvZGVVUklDb21wb25lbnQoKGUgYXMgRXJyb3IpLm1lc3NhZ2UpfWAsXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gT3BlbkFJIE9BdXRoIOuKlCBjb2RleCBhcHAtc2VydmVyIOqwgCDsnpDssrQgY2FsbGJhY2sg7ISc67KE66W8IOyYrOumvFxuICAgICAgICAvLyBoYW5kbGVPcGVuQUlDYWxsYmFjayDrtojtlYTsmpQg4oCUIG9hdXRoQ29tcGxldGVPcGVuQUkgQVBJIOuhnCDsmYTro4wg7ZmV7J24XG4gICAgICB9LFxuICAgIH0sXG4gICAgYXBpQ29uZmlnOiB7XG4gICAgICBjb250ZXh0UHJvdmlkZXI6IChkZWZhdWx0Q29udGV4dCwgcmVxdWVzdCkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLmRlZmF1bHRDb250ZXh0LFxuICAgICAgICAgIGlwOiByZXF1ZXN0LmlwLFxuICAgICAgICAgIGJvZHk6IHJlcXVlc3QuYm9keSxcbiAgICAgICAgfTtcbiAgICAgIH0sXG4gICAgICBndWFyZEhhbmRsZXI6ICgpID0+IHt9LFxuICAgICAgY2FjaGVDb250cm9sSGFuZGxlcjogKHJlcSkgPT4ge1xuICAgICAgICBzd2l0Y2ggKHJlcS50eXBlKSB7XG4gICAgICAgICAgY2FzZSBcImFzc2V0c1wiOlxuICAgICAgICAgICAgLy8gSGFzaCDtj6ztlajrkJwg7YyM7J28OiDsmIHqtawg7LqQ7IucXG4gICAgICAgICAgICBpZiAocmVxLnBhdGgubWF0Y2goLy1bYS1mMC05XStcXC4vKSkge1xuICAgICAgICAgICAgICByZXR1cm4gQ2FjaGVQcmVzZXRzLmltbXV0YWJsZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBDYWNoZVByZXNldHMubG9uZ0xpdmVkO1xuXG4gICAgICAgICAgY2FzZSBcImFwaVwiOlxuICAgICAgICAgICAgLy8gR0VUIOyalOyyreunjCDsupDsi7Eg6rOg66CkXG4gICAgICAgICAgICBpZiAocmVxLm1ldGhvZCA9PT0gXCJHRVRcIikge1xuICAgICAgICAgICAgICAvLyDtirnsoJUg6rK966Gc64qUIOynp+ydgCDsupDsi5xcbiAgICAgICAgICAgICAgaWYgKHJlcS5wYXRoLnN0YXJ0c1dpdGgoXCIvYXBpL3N0YXRpYy1kYXRhXCIpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIENhY2hlUHJlc2V0cy5zaG9ydExpdmVkO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChyZXEucGF0aC5zdGFydHNXaXRoKFwiL2FwaS90ZXJtc1wiKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBDYWNoZVByZXNldHMubWVkaXVtTGl2ZWQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIOq4sOuzuDog7LqQ7IucIOyXhuydjFxuICAgICAgICAgICAgcmV0dXJuIENhY2hlUHJlc2V0cy5ub0NhY2hlO1xuXG4gICAgICAgICAgY2FzZSBcInNzclwiOlxuICAgICAgICAgICAgLy8gU1NSIO2OmOydtOyngDogMTDstIgg7LqQ7IucXG4gICAgICAgICAgICByZXR1cm4gQ2FjaGVQcmVzZXRzLnNzcjtcblxuICAgICAgICAgIGNhc2UgXCJjc3JcIjpcbiAgICAgICAgICAgIC8vIENTUiBmYWxsYmFjayAoaW5kZXguaHRtbCk6IDHrtoQg7LqQ7IucXG4gICAgICAgICAgICByZXR1cm4gQ2FjaGVQcmVzZXRzLnNob3J0TGl2ZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIENhY2hlUHJlc2V0cy5ub0NhY2hlO1xuICAgICAgfSxcbiAgICB9LFxuICAgIGNhY2hlOiB7XG4gICAgICBkZWZhdWx0OiBcIm1haW5cIixcbiAgICAgIHN0b3Jlczoge1xuICAgICAgICBtYWluOiBzdG9yZSgpLnVzZUwxTGF5ZXIoY2FjaGVEcml2ZXJzLm1lbW9yeSh7IG1heFNpemU6IFwiNTBtYlwiIH0pKSxcbiAgICAgIH0sXG4gICAgICB0dGw6IFwiNW1cIixcbiAgICAgIHByZWZpeDogXCJcIixcbiAgICB9LFxuICAgIGxpZmVjeWNsZToge1xuICAgICAgb25TdGFydDogYXN5bmMgKCkgPT4ge1xuICAgICAgICBjb25zdCBsb2cgPSBnZXRMb2dnZXIoW1wicWdyaWRcIiwgXCJzdGFydHVwXCJdKTtcblxuICAgICAgICBsZXQgdHJpZ2dlclJlYWR5ID0gdHJ1ZTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBhd2FpdCBlbnN1cmVUb2tlbnNUcmlnZ2VyKGNvbm5Db25maWcpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgdHJpZ2dlclJlYWR5ID0gZmFsc2U7XG4gICAgICAgICAgbG9nLndhcm4oYHRyaWdnZXIgc2V0dXAgZmFpbGVkOiAkeyhlIGFzIEVycm9yKS5tZXNzYWdlfWApO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc3Vic2NyaWJlciA9IG5ldyBUb2tlblN1YnNjcmliZXIoY29ubkNvbmZpZywgUWdyaWREaXNwYXRjaGVyKTtcbiAgICAgICAgUWdyaWREaXNwYXRjaGVyLnN1YnNjcmliZXIgPSBzdWJzY3JpYmVyO1xuXG4gICAgICAgIGNvbnN0IHN0YXJ0ZWQgPSBhd2FpdCBzdWJzY3JpYmVyLnN0YXJ0KCk7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBvcGVuYWlEaXNwYXRjaGVyID0gbmV3IE9wZW5BSURpc3BhdGNoZXIoKTtcbiAgICAgICAgICBhd2FpdCBvcGVuYWlEaXNwYXRjaGVyLnN0YXJ0KCk7XG4gICAgICAgICAgUWdyaWREaXNwYXRjaGVyLm9wZW5haURpc3BhdGNoZXIgPSBvcGVuYWlEaXNwYXRjaGVyO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgbG9nLndhcm4oYG9wZW5haSBkaXNwYXRjaGVyIGZhaWxlZDogJHsoZSBhcyBFcnJvcikubWVzc2FnZX1gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgYW50aHJvcGljRGlzcGF0Y2hlciA9IG5ldyBBbnRocm9waWNEaXNwYXRjaGVyKCk7XG4gICAgICAgICAgYXdhaXQgYW50aHJvcGljRGlzcGF0Y2hlci5zdGFydCgpO1xuICAgICAgICAgIFFncmlkRGlzcGF0Y2hlci5hbnRocm9waWNEaXNwYXRjaGVyID0gYW50aHJvcGljRGlzcGF0Y2hlcjtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGxvZy53YXJuKGBhbnRocm9waWMgZGlzcGF0Y2hlciBmYWlsZWQ6ICR7KGUgYXMgRXJyb3IpLm1lc3NhZ2V9YCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBhbnRocm9waWNDb3VudCA9IFFncmlkRGlzcGF0Y2hlci5hbnRocm9waWNEaXNwYXRjaGVyPy50b2tlbkNvdW50ID8/IDA7XG4gICAgICAgIGNvbnN0IG9wZW5haVJlYWR5ID0gUWdyaWREaXNwYXRjaGVyLm9wZW5haURpc3BhdGNoZXI/LnJlYWR5V29ya2VyQ291bnQgPz8gMDtcbiAgICAgICAgY29uc3Qgb3BlbmFpVG90YWwgPSBRZ3JpZERpc3BhdGNoZXIub3BlbmFpRGlzcGF0Y2hlcj8ud29ya2VyQ291bnQgPz8gMDtcblxuICAgICAgICBsb2cuaW5mbyhgbGlzdGVuaW5nIG9uIGh0dHA6Ly8ke2hvc3R9OiR7cG9ydH1gKTtcbiAgICAgICAgbG9nLmluZm8oYGFudGhyb3BpYzogJHthbnRocm9waWNDb3VudH0gdG9rZW5zIHJlYWR5YCk7XG4gICAgICAgIGxvZy5pbmZvKGBvcGVuYWk6ICR7b3BlbmFpUmVhZHl9LyR7b3BlbmFpVG90YWx9IHRva2VucyByZWFkeWApO1xuICAgICAgICBsb2cuaW5mbyhcbiAgICAgICAgICBgc3Vic2NyaWJlcjogJHtzdGFydGVkID8gXCJMSVNURU4gYWN0aXZlXCIgOiBcImRlZ3JhZGVkXCJ9JHt0cmlnZ2VyUmVhZHkgPyBcIlwiIDogXCIsIHRyaWdnZXIgZmFpbGVkXCJ9YCxcbiAgICAgICAgKTtcbiAgICAgIH0sXG4gICAgICBvblNodXRkb3duOiBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGxvZyA9IGdldExvZ2dlcihbXCJxZ3JpZFwiLCBcInN0YXJ0dXBcIl0pO1xuICAgICAgICBpZiAoUWdyaWREaXNwYXRjaGVyLm9wZW5haURpc3BhdGNoZXIpIHtcbiAgICAgICAgICBhd2FpdCBRZ3JpZERpc3BhdGNoZXIub3BlbmFpRGlzcGF0Y2hlci5zdG9wKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFFncmlkRGlzcGF0Y2hlci5hbnRocm9waWNEaXNwYXRjaGVyKSB7XG4gICAgICAgICAgYXdhaXQgUWdyaWREaXNwYXRjaGVyLmFudGhyb3BpY0Rpc3BhdGNoZXIuc3RvcCgpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChRZ3JpZERpc3BhdGNoZXIuc3Vic2NyaWJlcikge1xuICAgICAgICAgIGF3YWl0IFFncmlkRGlzcGF0Y2hlci5zdWJzY3JpYmVyLnN0b3AoKTtcbiAgICAgICAgfVxuICAgICAgICBsb2cuaW5mbyhcImdyYWNlZnVsIHNodXRkb3duXCIpO1xuICAgICAgfSxcbiAgICAgIG9uRXJyb3I6IChlcnJvciwgX3JlcXVlc3QsIHJlcGx5KSA9PiB7XG4gICAgICAgIGdldExvZ2dlcihbXCJxZ3JpZFwiXSkuZXJyb3IoYCR7ZXJyb3J9YCk7XG4gICAgICAgIHJlcGx5LnN0YXR1cyg1MDApLnNlbmQoe1xuICAgICAgICAgIG5hbWU6IGVycm9yLm5hbWUsXG4gICAgICAgICAgbWVzc2FnZTogZXJyb3IubWVzc2FnZSxcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBaUJBLE9BQU8sT0FBTyxFQUFFLE1BQU0sS0FBSyxLQUFLLE9BQU8sS0FBSyxTQUFTLFVBQVUsRUFBRSxDQUFDO0FBRWxFLE1BQU0sT0FBTyxRQUFRLElBQUksUUFBUTtBQUNqQyxNQUFNLE9BQU8sT0FBTyxRQUFRLElBQUksUUFBUSxNQUFNO0FBRTlDLE1BQU0sYUFBYTtDQUNqQixNQUFNLFFBQVEsSUFBSSxpQkFBaUI7Q0FDbkMsTUFBTSxPQUFPLFFBQVEsSUFBSSxpQkFBaUIsS0FBSztDQUMvQyxNQUFNLFFBQVEsSUFBSSxpQkFBaUI7Q0FDbkMsVUFBVSxRQUFRLElBQUkscUJBQXFCO0NBQzNDLFVBQVUsUUFBUSxJQUFJLGlCQUFpQjtDQUN4QztBQUVELElBQUEsd0JBQWUsYUFBYTtDQUMxQixhQUFhLFFBQVEsSUFBSSxnQkFBZ0I7Q0FDekMsVUFBVTtFQUNSLE1BQU07RUFDTixnQkFBZ0IsRUFDZCxZQUFZO0dBQ1YsR0FBRztHQUNILFdBQVc7R0FDWCw2QkFBNkI7R0FDOUIsRUFDRjtFQUNELGNBQWM7R0FDWixTQUFTLEVBQ1AsWUFBWTtJQUNWLEdBQUc7SUFDSCxVQUFVLFFBQVEsSUFBSTtJQUN2QixFQUNGO0dBQ0QsTUFBTSxFQUNKLFlBQVk7SUFDVixHQUFHO0lBQ0gsVUFBVSxRQUFRLElB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
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import "../../../_virtual/_rolldown/runtime.js";
|
|
2
|
-
import { getExpiresAt, getRefreshToken } from "../common/credentials.js";
|
|
3
2
|
import { QuotaThresholdExceededError } from "../../../application/qgrid/qgrid.types.js";
|
|
4
3
|
import { TokenModel } from "../../../application/token/token.model.js";
|
|
5
4
|
import { SmoothWeightedRoundRobin } from "../common/smooth-weighted-round-robin.js";
|
|
5
|
+
import { getExpiresAt, getRefreshToken } from "../common/credentials.js";
|
|
6
6
|
import { assertSupportedOneMillionSuffix, canonicalAnthropicModel } from "./anthropic-constants.js";
|
|
7
7
|
import { readAnthropicQuotaUsage } from "./anthropic-quota.js";
|
|
8
8
|
import { makeAnthropicWorkerId, runClaudeSession } from "./claude-session.js";
|
|
@@ -53,6 +53,9 @@ var AnthropicDispatcher = class {
|
|
|
53
53
|
get tokenCount() {
|
|
54
54
|
return this.tokenPool.size;
|
|
55
55
|
}
|
|
56
|
+
get tokenNames() {
|
|
57
|
+
return [...this.tokenPool.values()].map((token) => token.name).toSorted();
|
|
58
|
+
}
|
|
56
59
|
replaceTokens(rows) {
|
|
57
60
|
const next = new Set(rows.map((r) => r.id));
|
|
58
61
|
const currentIds = Array.from(this.tokenPool.keys());
|
|
@@ -241,4 +244,4 @@ var AnthropicDispatcher = class {
|
|
|
241
244
|
//#endregion
|
|
242
245
|
export { AnthropicDispatcher };
|
|
243
246
|
|
|
244
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW50aHJvcGljLWRpc3BhdGNoZXIuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWxzL3Byb3ZpZGVycy9hbnRocm9waWMvYW50aHJvcGljLWRpc3BhdGNoZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBbnRocm9waWNEaXNwYXRjaGVyXG4gKlxuICogT3BlbkFJRGlzcGF0Y2hlcuyZgCDri6zrpqwsIHdvcmtlciBwb29s7J2EIOuRkOuKlCDrjIDsi6Ag7JqU7LKt67OEIGZyZXNoIHNwYXduXG4gKiDthqDtgbDsnYAg7J2466mU66qo66asKE1BUCnsnLzroZwg6rSA66as7ZWY6rOgIHNtb290aCB3ZWlnaHRlZCByb3VuZC1yb2JpbiDsnLzroZwg6rOg66W464ukXG4gKlxuICogLSDrqqjrk6Ag7JqU7LKt7J2AIGZyZXNoIGAtLXNlc3Npb24taWRgIOuhnCDsi6TtlolcbiAqIC0g66mA7Yuw7YS0IOusuOunpeydgCDtgbTrnbzsnbTslrjtirjqsIAg66ekIO2YuOy2nCDrs7TrgrTripQgZnVsbCBoaXN0b3J5IOulvCDtj4ntg4TtmZTtlbQg7KCE64us7ZWc64ukLlxuICogLSDrsJzquIntlZwgc2Vzc2lvbi1pZCDrpbwgR2VuZXJhdGVSZXN1bHQudGhyZWFkQ29vcmQodGhyZWFkSWQ9c2Vzc2lvbi1pZCwgd29ya2VySWQ9dG9rZW5JZCxcbiAqICAgZXBvY2g9MCnroZwg7Jis66CkLCDsg4HsnIQoaXNzdWVDb252Q29udGV4dCnqsIAg7YG065287JeQIO2ajOyGoe2VoCDsooztkZzrpbwg66eM65Og64ukLiDri6TsnYwgdHVybiDsnbQg7KKM7ZGc66W8XG4gKiAgIO2ajOyGoe2VtOuPhCBBbnRocm9waWMg65287Jqw7YyF7JeQ64qUIOyTsOyngCDslYrripTri6QuXG4gKi9cblxuaW1wb3J0IHsgZ2V0TG9nZ2VyIH0gZnJvbSBcIkBsb2d0YXBlL2xvZ3RhcGVcIjtcblxuaW1wb3J0IHsgUXVvdGFUaHJlc2hvbGRFeGNlZWRlZEVycm9yIH0gZnJvbSBcIi4uLy4uLy4uL2FwcGxpY2F0aW9uL3FncmlkL3FncmlkLnR5cGVzXCI7XG5pbXBvcnQgeyBUb2tlbk1vZGVsIH0gZnJvbSBcIi4uLy4uLy4uL2FwcGxpY2F0aW9uL3Rva2VuL3Rva2VuLm1vZGVsXCI7XG5pbXBvcnQgeyB0eXBlIEFudGhyb3BpY0NyZWRlbnRpYWxzIH0gZnJvbSBcIi4uLy4uLy4uL2FwcGxpY2F0aW9uL3Rva2VuL3Rva2VuLnR5cGVzXCI7XG5pbXBvcnQgeyBnZXRFeHBpcmVzQXQsIGdldFJlZnJlc2hUb2tlbiB9IGZyb20gXCIuLi9jb21tb24vY3JlZGVudGlhbHNcIjtcbmltcG9ydCB7XG4gIHR5cGUgR2VuZXJhdGVSZXF1ZXN0LFxuICB0eXBlIEdlbmVyYXRlUmVzdWx0LFxuICB0eXBlIEdlbmVyYXRlU3RyZWFtQ2FsbGJhY2tzLFxuICB0eXBlIFByb3ZpZGVyRGlzcGF0Y2hlcixcbn0gZnJvbSBcIi4uL2NvbW1vbi9wcm92aWRlci1kaXNwYXRjaGVyXCI7XG5pbXBvcnQgeyBTbW9vdGhXZWlnaHRlZFJvdW5kUm9iaW4gfSBmcm9tIFwiLi4vY29tbW9uL3Ntb290aC13ZWlnaHRlZC1yb3VuZC1yb2JpblwiO1xuaW1wb3J0IHsgYXNzZXJ0U3VwcG9ydGVkT25lTWlsbGlvblN1ZmZpeCwgY2Fub25pY2FsQW50aHJvcGljTW9kZWwgfSBmcm9tIFwiLi9hbnRocm9waWMtY29uc3RhbnRzXCI7XG5pbXBvcnQgeyByZWFkQW50aHJvcGljUXVvdGFVc2FnZSwgdHlwZSBBbnRocm9waWNRdW90YVVzYWdlUmVzdWx0IH0gZnJvbSBcIi4vYW50aHJvcGljLXF1b3RhXCI7XG5pbXBvcnQgeyBtYWtlQW50aHJvcGljV29ya2VySWQsIHJ1bkNsYXVkZVNlc3Npb24gfSBmcm9tIFwiLi9jbGF1ZGUtc2Vzc2lvblwiO1xuXG5jb25zdCBsb2dnZXIgPSBnZXRMb2dnZXIoW1wicWdyaWRcIiwgXCJhbnRocm9waWMtZGlzcGF0Y2hlclwiXSk7XG5cbi8vIDFNIGNvbnRleHQg7KCV7IOBIOyDneyEseydgCDsi6TsuKHsg4EgMTAwcyvquYzsp4Ag6rCE64ukLiAyNDBz64qUIOyZhOy2qSDsnqXsuZjsnbwg67+QLFxuLy8g6rGw67aAK+qxsOuMgCBzeXN0ZW0g7J6s7IOd7ISxIOyngOyXsOydhCDsmYTsoITtnogg7ZW06rKw7ZWY64qUIOqwkuydgCDslYTri4jri6QuXG5jb25zdCBERUZBVUxUX1RJTUVPVVRfTVMgPSAyNDBfMDAwO1xuLy8gYWNjZXNzIHRva2VuIOunjOujjCDsnoTrsJUg7J6E6rOEIOKAlCDquLDsobQgc3RhbmRhbG9uZSDqsr3roZwocWdyaWQuZGlzcGF0Y2hlci50cynsmYAg64+Z7J28KDYwcykuXG5jb25zdCBSRUZSRVNIX1NBRkVUWV9NUyA9IDYwXzAwMDtcblxuaW50ZXJmYWNlIFBvb2xlZFRva2VuIHtcbiAgaWQ6IG51bWJlcjtcbiAgbmFtZTogc3RyaW5nO1xuICBjcmVkZW50aWFsczogQW50aHJvcGljQ3JlZGVudGlhbHM7XG4gIHF1b3RhVGhyZXNob2xkPzogbnVtYmVyIHwgbnVsbDtcbiAgd2VpZ2h0OiBudW1iZXI7XG59XG5cbmZ1bmN0aW9uIHF1b3RhVGhyZXNob2xkRXhjZWVkZWRNZXNzYWdlKFxuICBwcm92aWRlcjogc3RyaW5nLFxuICB0b2tlbnM6IEFycmF5PHsgdG9rZW5OYW1lOiBzdHJpbmc7IHRocmVzaG9sZDogbnVtYmVyIH0+LFxuKTogc3RyaW5nIHtcbiAgY29uc3QgZGV0YWlscyA9IHRva2Vuc1xuICAgIC5tYXAoKHRva2VuKSA9PiBgJHt0b2tlbi50b2tlbk5hbWV9ICh0aHJlc2hvbGQgJHt0b2tlbi50aHJlc2hvbGR9JSlgKVxuICAgIC5qb2luKFwiLCBcIik7XG4gIHJldHVybiBkZXRhaWxzLmxlbmd0aCA+IDBcbiAgICA/IGBBbGwgJHtwcm92aWRlcn0gdG9rZW5zIGV4Y2VlZGVkIHF1b3RhIHRocmVzaG9sZDogJHtkZXRhaWxzfWBcbiAgICA6IGBBbGwgJHtwcm92aWRlcn0gdG9rZW5zIGV4Y2VlZGVkIHF1b3RhIHRocmVzaG9sZGA7XG59XG5cbmV4cG9ydCBjbGFzcyBBbnRocm9waWNEaXNwYXRjaGVyIGltcGxlbWVudHMgUHJvdmlkZXJEaXNwYXRjaGVyIHtcbiAgLy8gdG9rZW5JZCDihpIg7ZKAIO2VreuqqS4gc3RhcnQoKS90b2tlbiDsnbTrsqTtirjroZwg7LGE7JuAXG4gIHByaXZhdGUgdG9rZW5Qb29sID0gbmV3IE1hcDxudW1iZXIsIFBvb2xlZFRva2VuPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IHdlaWdodGVkU2VsZWN0b3IgPSBuZXcgU21vb3RoV2VpZ2h0ZWRSb3VuZFJvYmluKCk7XG5cbiAgYXN5bmMgc3RhcnQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gT3BlbkFJRGlzcGF0Y2hlci5zdGFydCgpIOyZgCDrj5nsnbztlZjqsowgREIg7JeQ7IScIOq4sOyhtCBhbnRocm9waWMg7Yag7YGw7J2EIHNlbGYtYm9vdHN0cmFwIO2VnOuLpC5cbiAgICAvLyAo7ISc67KEIOyerOyLnOyekSDsi5wgTk9USUZZIOqwgCDslYgg7Jik66+A66GcIOu2gO2KuOyKpO2KuOueqeydtCDsl4bsnLzrqbQg7ZKA7J20IOu5iCDssYTroZwg64Ko64qU64ukLilcbiAgICAvLyDsnbTtm4Qg67OA6rK967aE7J2AIHRva2VuLXN1YnNjcmliZXIg6rCAIG9uVG9rZW5BZGRlZC9VcGRhdGVkL1JlbW92ZWQg66GcIOyghOuLrO2VnOuLpC5cbiAgICAvLyBmaW5kQWN0aXZlQnlQcm92aWRlciDqsIAgYWN0aXZlPXRydWUgKyBwcm92aWRlciDtlYTthLDrpbwgREIg7JeQ7IScIOyymOumrCDihpIgaW5hY3RpdmUg64qUIOyVoOy0iOyXkCDslYgg7Jio64ukLlxuICAgIGNvbnN0IHRva2VucyA9IGF3YWl0IFRva2VuTW9kZWwuZmluZEFjdGl2ZUJ5UHJvdmlkZXIoXCJBXCIsIFwiYW50aHJvcGljXCIpO1xuICAgIGZvciAoY29uc3QgdCBvZiB0b2tlbnMpIHtcbiAgICAgIHRoaXMudG9rZW5Qb29sLnNldCh0LmlkLCB7XG4gICAgICAgIGlkOiB0LmlkLFxuICAgICAgICBuYW1lOiB0Lm5hbWUsXG4gICAgICAgIGNyZWRlbnRpYWxzOiB0LmNyZWRlbnRpYWxzIGFzIEFudGhyb3BpY0NyZWRlbnRpYWxzLFxuICAgICAgICBxdW90YVRocmVzaG9sZDogdC5xdW90YV90aHJlc2hvbGQsXG4gICAgICAgIHdlaWdodDogdC53ZWlnaHQsXG4gICAgICB9KTtcbiAgICAgIHRoaXMud2VpZ2h0ZWRTZWxlY3Rvci5zZXRUb2tlbih0LmlkLCB0LndlaWdodCk7XG4gICAgICBsb2dnZXIuaW5mbyhgd29ya2VyIHNwYXduZWQ6ICR7dC5uYW1lfWApO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHN0b3AoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgdG9rZW5JZHMgPSBbLi4udGhpcy50b2tlblBvb2wua2V5cygpXTtcbiAgICBmb3IgKGNvbnN0IGlkIG9mIHRva2VuSWRzKSB0aGlzLndlaWdodGVkU2VsZWN0b3IucmVtb3ZlVG9rZW4oaWQpO1xuICAgIHRoaXMudG9rZW5Qb29sLmNsZWFyKCk7XG4gICAgdGhpcy53ZWlnaHRlZFNlbGVjdG9yLnJlc2V0U2NvcmVzKCk7XG4gIH1cblxuICAvLyDtmITsnqwg7ZKA7J2YIO2GoO2BsCDsiJgoc3RhcnR1cCDroZzqt7gvaGVhbHRoIOyaqSkuXG4gIGdldCB0b2tlbkNvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5Qb29sLnNpemU7XG4gIH1cblxuICAvLyBEQiBhY3RpdmUgYW50aHJvcGljIO2GoO2BsCDrqqnroZ3snLzroZwg7ZKA7J2EIOyerOuPmeq4sO2ZlO2VnOuLpChwZXJpb2RpYyByZWNvbmNpbGUv7J6s7Jew6rKw7JqpKS5cbiAgLy8gTElTVEVOL05PVElGWSDqsIAg64GK6ri0IOuPmeyViCDsnKDsi6TrkJwg7LaU6rCAL+yCreygnC/ruYTtmZzshLHtmZTrpbwgREIg6riw7KSA7Jy866GcIOuLpOyLnCDrp57stpjri6QuXG4gIC8vIOydtOuypO2KuCDtlbjrk6Trn6zrpbwg7J6s7IKs7Jqp7ZW0IO2SgCDqsLHsi6DsnbQg7J286rSA65CY6rKMIOyggeyaqeuQmOuPhOuhnSDtlZzri6Q6XG4gIC8vICAtIERCIOyXkCDsl4bripTrjbAg7ZKA7JeQIOyeiOuKlCDthqDtgbAg4oaSIG9uVG9rZW5SZW1vdmVkXG4gIC8vICAtIERCIOyXkCDsnojripQg7Yag7YGwIOKGkiDsi6Dqt5zrqbQgb25Ub2tlbkFkZGVkLCDquLDsobTsnbTrqbQgb25Ub2tlblVwZGF0ZWRcbiAgcmVwbGFjZVRva2VucyhcbiAgICByb3dzOiBBcnJheTx7XG4gICAgICBpZDogbnVtYmVyO1xuICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgY3JlZGVudGlhbHM6IEFudGhyb3BpY0NyZWRlbnRpYWxzO1xuICAgICAgcXVvdGFUaHJlc2hvbGQ/OiBudW1iZXIgfCBudWxsO1xuICAgICAgd2VpZ2h0OiBudW1iZXI7XG4gICAgfT4sXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IG5leHQgPSBuZXcgU2V0KHJvd3MubWFwKChyKSA9PiByLmlkKSk7XG4gICAgLy8gb25Ub2tlblJlbW92ZWQg6rCAIHRva2VuUG9vbCDsnYQgZGVsZXRlIO2VmOuvgOuhnCDsiJztmowg7KSRIOyImOygleydhCDtlLztlZjroKQg7YKk66W8IOuovOyggCDsiqTrg4Xsg7ftlZzri6QuXG4gICAgY29uc3QgY3VycmVudElkcyA9IEFycmF5LmZyb20odGhpcy50b2tlblBvb2wua2V5cygpKTtcbiAgICBmb3IgKGNvbnN0IGlkIG9mIGN1cnJlbnRJZHMpIHtcbiAgICAgIGlmICghbmV4dC5oYXMoaWQpKSB0aGlzLm9uVG9rZW5SZW1vdmVkKGlkKTtcbiAgICB9XG4gICAgZm9yIChjb25zdCByIG9mIHJvd3MpIHtcbiAgICAgIGlmICh0aGlzLnRva2VuUG9vbC5oYXMoci5pZCkpIHtcbiAgICAgICAgdGhpcy5vblRva2VuVXBkYXRlZChyLmlkLCByLm5hbWUsIHIuY3JlZGVudGlhbHMsIHIucXVvdGFUaHJlc2hvbGQsIHIud2VpZ2h0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMub25Ub2tlbkFkZGVkKHIuaWQsIHIubmFtZSwgci5jcmVkZW50aWFscywgci5xdW90YVRocmVzaG9sZCwgci53ZWlnaHQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIHRva2VuIGV2ZW50cyAodG9rZW4tc3Vic2NyaWJlciDqsIAg7Zi47LacKVxuICBvblRva2VuQWRkZWQoXG4gICAgaWQ6IG51bWJlcixcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgY3JlZGVudGlhbHM6IEFudGhyb3BpY0NyZWRlbnRpYWxzLFxuICAgIHF1b3RhVGhyZXNob2xkPzogbnVtYmVyIHwgbnVsbCxcbiAgICB3ZWlnaHQgPSAxLFxuICApOiB2b2lkIHtcbiAgICB0aGlzLnRva2VuUG9vbC5zZXQoaWQsIHsgaWQsIG5hbWUsIGNyZWRlbnRpYWxzLCBxdW90YVRocmVzaG9sZCwgd2VpZ2h0IH0pO1xuICAgIHRoaXMud2VpZ2h0ZWRTZWxlY3Rvci5zZXRUb2tlbihpZCwgd2VpZ2h0KTtcbiAgfVxuXG4gIG9uVG9rZW5VcGRhdGVkKFxuICAgIGlkOiBudW1iZXIsXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIGNyZWRlbnRpYWxzOiBBbnRocm9waWNDcmVkZW50aWFscyxcbiAgICBxdW90YVRocmVzaG9sZD86IG51bWJlciB8IG51bGwsXG4gICAgd2VpZ2h0ID0gMSxcbiAgKTogdm9pZCB7XG4gICAgdGhpcy50b2tlblBvb2wuc2V0KGlkLCB7IGlkLCBuYW1lLCBjcmVkZW50aWFscywgcXVvdGFUaHJlc2hvbGQsIHdlaWdodCB9KTtcbiAgICB0aGlzLndlaWdodGVkU2VsZWN0b3Iuc2V0VG9rZW4oaWQsIHdlaWdodCk7XG4gIH1cblxuICBvblRva2VuUmVtb3ZlZChpZDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy50b2tlblBvb2wuZGVsZXRlKGlkKTtcbiAgICB0aGlzLndlaWdodGVkU2VsZWN0b3IucmVtb3ZlVG9rZW4oaWQpO1xuICB9XG5cbiAgLy8gcXVvdGEg7Ya16rO8IO2bhOuztOunjOycvOuhnCDsmpTssq3rp4jri6Qgc21vb3RoIHdlaWdodGVkIHJvdW5kLXJvYmluIOyEoO2Dne2VnOuLpC5cbiAgcHJpdmF0ZSBhc3luYyBzZWxlY3RUb2tlbigpOiBQcm9taXNlPFBvb2xlZFRva2VuIHwgbnVsbD4ge1xuICAgIGNvbnN0IHJvd3MgPSBbLi4udGhpcy50b2tlblBvb2wudmFsdWVzKCldO1xuICAgIGlmIChyb3dzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgeyBlbGlnaWJsZSwgb3ZlclRocmVzaG9sZFRva2VucyB9ID0gYXdhaXQgdGhpcy5maWx0ZXJFbGlnaWJsZVRva2Vucyhyb3dzKTtcbiAgICBpZiAoZWxpZ2libGUubGVuZ3RoID09PSAwKSB7XG4gICAgICBsb2dnZXIud2FybihcInF1b3RhX3RocmVzaG9sZCBnYXRlOiBhbGxfZXhjZWVkZWRcIiwge1xuICAgICAgICBwcm92aWRlcjogXCJhbnRocm9waWNcIixcbiAgICAgICAgdG9rZW5Db3VudDogcm93cy5sZW5ndGgsXG4gICAgICAgIHRocmVzaG9sZGVkVG9rZW5Db3VudDogcm93cy5maWx0ZXIoKHIpID0+IHRoaXMuaGFzUXVvdGFUaHJlc2hvbGQocikpLmxlbmd0aCxcbiAgICAgICAgb3ZlclRocmVzaG9sZFRva2VucyxcbiAgICAgICAgcmVhc29uOiBcImFsbF9leGNlZWRlZFwiLFxuICAgICAgfSk7XG4gICAgICB0aHJvdyBuZXcgUXVvdGFUaHJlc2hvbGRFeGNlZWRlZEVycm9yKFxuICAgICAgICBxdW90YVRocmVzaG9sZEV4Y2VlZGVkTWVzc2FnZShcImFudGhyb3BpY1wiLCBvdmVyVGhyZXNob2xkVG9rZW5zKSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2VsZWN0ZWRJZCA9IHRoaXMud2VpZ2h0ZWRTZWxlY3Rvci5zZWxlY3QobmV3IFNldChlbGlnaWJsZS5tYXAoKHRva2VuKSA9PiB0b2tlbi5pZCkpKTtcbiAgICBpZiAoc2VsZWN0ZWRJZCA9PT0gbnVsbCkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5Qb29sLmdldChzZWxlY3RlZElkKSA/PyBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBmaWx0ZXJFbGlnaWJsZVRva2Vucyhyb3dzOiBQb29sZWRUb2tlbltdKTogUHJvbWlzZTx7XG4gICAgZWxpZ2libGU6IFBvb2xlZFRva2VuW107XG4gICAgb3ZlclRocmVzaG9sZFRva2VuczogQXJyYXk8eyB0b2tlbk5hbWU6IHN0cmluZzsgdGhyZXNob2xkOiBudW1iZXIgfT47XG4gIH0+IHtcbiAgICBjb25zdCB0aHJlc2hvbGRlZCA9IHJvd3MuZmlsdGVyKCh0b2tlbikgPT4gdGhpcy5oYXNRdW90YVRocmVzaG9sZCh0b2tlbikpO1xuICAgIGlmICh0aHJlc2hvbGRlZC5sZW5ndGggPT09IDApIHJldHVybiB7IGVsaWdpYmxlOiByb3dzLCBvdmVyVGhyZXNob2xkVG9rZW5zOiBbXSB9O1xuXG4gICAgY29uc3QgZWxpZ2libGVJZHMgPSBuZXcgU2V0KFxuICAgICAgcm93cy5maWx0ZXIoKHRva2VuKSA9PiAhdGhpcy5oYXNRdW90YVRocmVzaG9sZCh0b2tlbikpLm1hcCgodG9rZW4pID0+IHRva2VuLmlkKSxcbiAgICApO1xuICAgIGNvbnN0IG92ZXJUaHJlc2hvbGRUb2tlbnM6IEFycmF5PHsgdG9rZW5OYW1lOiBzdHJpbmc7IHRocmVzaG9sZDogbnVtYmVyIH0+ID0gW107XG4gICAgY29uc3QgY2hlY2tzID0gYXdhaXQgUHJvbWlzZS5hbGxTZXR0bGVkKFxuICAgICAgdGhyZXNob2xkZWQubWFwKGFzeW5jICh0b2tlbikgPT4gKHtcbiAgICAgICAgdG9rZW4sXG4gICAgICAgIHJlc3VsdDogYXdhaXQgcmVhZEFudGhyb3BpY1F1b3RhVXNhZ2UodG9rZW4uY3JlZGVudGlhbHMuYWNjZXNzVG9rZW4pLFxuICAgICAgfSkpLFxuICAgICk7XG5cbiAgICBjaGVja3MuZm9yRWFjaCgoY2hlY2ssIGluZGV4KSA9PiB7XG4gICAgICBpZiAoY2hlY2suc3RhdHVzID09PSBcInJlamVjdGVkXCIpIHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aHJlc2hvbGRlZFtpbmRleF07XG4gICAgICAgIGlmICghdG9rZW4pIHJldHVybjtcbiAgICAgICAgdGhpcy5sb2dRdW90YUxvb2t1cEZhaWxPcGVuKHRva2VuLCBTdHJpbmcoY2hlY2sucmVhc29uKSk7XG4gICAgICAgIGVsaWdpYmxlSWRzLmFkZCh0b2tlbi5pZCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgdG9rZW4gPSBjaGVjay52YWx1ZS50b2tlbjtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGNoZWNrLnZhbHVlLnJlc3VsdDtcbiAgICAgIGlmIChyZXN1bHQua2luZCA9PT0gXCJsb29rdXBfZmFpbGVkXCIpIHtcbiAgICAgICAgdGhpcy5sb2dRdW90YUxvb2t1cEZhaWxPcGVuKHRva2VuLCByZXN1bHQucmVhc29uKTtcbiAgICAgICAgZWxpZ2libGVJZHMuYWRkKHRva2VuLmlkKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAocmVzdWx0LnV0aWxpemF0aW9uUGN0ID49IHRva2VuLnF1b3RhVGhyZXNob2xkKSB7XG4gICAgICAgIHRoaXMubG9nUXVvdGFPdmVyVGhyZXNob2xkKHRva2VuLCByZXN1bHQpO1xuICAgICAgICBvdmVyVGhyZXNob2xkVG9rZW5zLnB1c2goeyB0b2tlbk5hbWU6IHRva2VuLm5hbWUsIHRocmVzaG9sZDogdG9rZW4ucXVvdGFUaHJlc2hvbGQgfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgZWxpZ2libGVJZHMuYWRkKHRva2VuLmlkKTtcbiAgICB9KTtcblxuICAgIHJldHVybiB7IGVsaWdpYmxlOiByb3dzLmZpbHRlcigodG9rZW4pID0+IGVsaWdpYmxlSWRzLmhhcyh0b2tlbi5pZCkpLCBvdmVyVGhyZXNob2xkVG9rZW5zIH07XG4gIH1cblxuICBwcml2YXRlIGhhc1F1b3RhVGhyZXNob2xkKHRva2VuOiBQb29sZWRUb2tlbik6IHRva2VuIGlzIFBvb2xlZFRva2VuICYgeyBxdW90YVRocmVzaG9sZDogbnVtYmVyIH0ge1xuICAgIHJldHVybiB0b2tlbi5xdW90YVRocmVzaG9sZCAhPT0gdW5kZWZpbmVkICYmIHRva2VuLnF1b3RhVGhyZXNob2xkICE9PSBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2dRdW90YU92ZXJUaHJlc2hvbGQoXG4gICAgdG9rZW46IFBvb2xlZFRva2VuICYgeyBxdW90YVRocmVzaG9sZDogbnVtYmVyIH0sXG4gICAgcmVzdWx0OiBFeHRyYWN0PEFudGhyb3BpY1F1b3RhVXNhZ2VSZXN1bHQsIHsga2luZDogXCJva1wiIH0+LFxuICApOiB2b2lkIHtcbiAgICBsb2dnZXIuaW5mbyhcInF1b3RhX3RocmVzaG9sZCBnYXRlOiBvdmVyX3RocmVzaG9sZFwiLCB7XG4gICAgICB0b2tlbklkOiB0b2tlbi5pZCxcbiAgICAgIHRva2VuTmFtZTogdG9rZW4ubmFtZSxcbiAgICAgIHByb3ZpZGVyOiBcImFudGhyb3BpY1wiLFxuICAgICAgdGhyZXNob2xkOiB0b2tlbi5xdW90YVRocmVzaG9sZCxcbiAgICAgIGNhY2hlZFV0aWxpemF0aW9uOiByZXN1bHQudXRpbGl6YXRpb25QY3QsXG4gICAgICBjYWNoZUFnZTogcmVzdWx0LmNhY2hlQWdlTXMsXG4gICAgICByZWFzb246IFwib3Zlcl90aHJlc2hvbGRcIixcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgbG9nUXVvdGFMb29rdXBGYWlsT3BlbihcbiAgICB0b2tlbjogUG9vbGVkVG9rZW4gJiB7IHF1b3RhVGhyZXNob2xkOiBudW1iZXIgfSxcbiAgICByZWFzb246IHN0cmluZyxcbiAgKTogdm9pZCB7XG4gICAgbG9nZ2VyLndhcm4oXCJxdW90YV90aHJlc2hvbGQgZ2F0ZTogbG9va3VwX2ZhaWxfb3BlblwiLCB7XG4gICAgICB0b2tlbklkOiB0b2tlbi5pZCxcbiAgICAgIHRva2VuTmFtZTogdG9rZW4ubmFtZSxcbiAgICAgIHByb3ZpZGVyOiBcImFudGhyb3BpY1wiLFxuICAgICAgdGhyZXNob2xkOiB0b2tlbi5xdW90YVRocmVzaG9sZCxcbiAgICAgIHJlYXNvbjogXCJsb29rdXBfZmFpbF9vcGVuXCIsXG4gICAgICBsb29rdXBSZWFzb246IHJlYXNvbixcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGdlbmVyYXRlKHJlcTogR2VuZXJhdGVSZXF1ZXN0KTogUHJvbWlzZTxHZW5lcmF0ZVJlc3VsdD4ge1xuICAgIHJldHVybiB0aGlzLnJ1bihyZXEsICgpID0+IHt9KTtcbiAgfVxuXG4gIGFzeW5jIGdlbmVyYXRlU3RyZWFtKHJlcTogR2VuZXJhdGVSZXF1ZXN0LCBjYjogR2VuZXJhdGVTdHJlYW1DYWxsYmFja3MpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5ydW4ocmVxLCBjYi5vbkRlbHRhLCB7IGluY2x1ZGVQYXJ0aWFsTWVzc2FnZXM6IHRydWUgfSk7XG4gICAgICBjYi5vblRocmVhZElkPy4ocmVzdWx0LnRocmVhZENvb3JkLnRocmVhZElkKTtcbiAgICAgIGNiLm9uQ29tcGxldGUocmVzdWx0KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjYi5vbkVycm9yKGUgYXMgRXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIC8vIGdlbmVyYXRlL2dlbmVyYXRlU3RyZWFtIOqzte2GtSDsi6TtlokuIG9uRGVsdGEg64qUIOyKpO2KuOumvOydtOuptCDsoJDsp4Qg67Cp7LacLCDruYTsiqTtirjrprzsnbTrqbQgbm8tb3AuXG4gIHByaXZhdGUgYXN5bmMgcnVuKFxuICAgIHJlcTogR2VuZXJhdGVSZXF1ZXN0LFxuICAgIG9uRGVsdGE6ICh0OiBzdHJpbmcpID0+IHZvaWQsXG4gICAgb3B0cz86IHsgaW5jbHVkZVBhcnRpYWxNZXNzYWdlcz86IGJvb2xlYW4gfSxcbiAgKTogUHJvbWlzZTxHZW5lcmF0ZVJlc3VsdD4ge1xuICAgIC8vIOydtOuvuOyngCDsg53shLHsnYAgT3BlbkFJKGNvZGV4KSDqsr3roZwg7KCE7JqpLiBBbnRocm9waWMg65287Jqw7YyF7JeQIOydtOuvuOyngCDtlIzrnpjqt7jqsIBcbiAgICAvLyDrj4Tri6ztlZjrqbQg7KGw7Jqp7Z6IIO2FjeyKpO2KuOuhnCDtj7TrsLHtlZjsp4Ag7JWK6rOgIOuqheyLnOyggeycvOuhnCDqsbDrtoDtlZzri6QuXG4gICAgaWYgKHJlcS5pbWFnZUdlbmVyYXRpb24pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcImltYWdlIGdlbmVyYXRpb24gaXMgbm90IHN1cHBvcnRlZCBvbiB0aGUgQW50aHJvcGljIHJvdXRlXCIpO1xuICAgIH1cbiAgICAvLyBtb2RlbCDsoJXqt5ztmZTrpbwgZGlzcGF0Y2hlciDsp4TsnoXsoJDsl5DshJwg7ZWcIOuyiCDtlZzri6Q6IHJlc3VsdC5tb2RlbCAvIHJ1bkNsYXVkZVNlc3Npb24g7KCE67aAXG4gICAgLy8gY2Fub25pY2FsKHByZWZpeCDsl4bripQgY29zdCDtgqQpIOydhCDsk7Dqsowg7Ya17J28LiDrr7jsp4DsoJXsnbTrqbQgQU5USFJPUElDX0RFRkFVTFRfTU9ERUwg4oCUIHFncmlkLmRpc3BhdGNoZXJcbiAgICAvLyDsnZggXCJzb25uZXRcIiDrs4Tsua0g7Jqw7ZqMIOywqOuLqC4g7KCV6rec7ZmUIOq3nOy5meydgCBmYWxsYmFjayDqsr3roZzsmYAg6rO17JygKGNhbm9uaWNhbEFudGhyb3BpY01vZGVsKS5cbiAgICBhc3NlcnRTdXBwb3J0ZWRPbmVNaWxsaW9uU3VmZml4KHJlcS5tb2RlbCk7XG4gICAgY29uc3QgbW9kZWwgPSBjYW5vbmljYWxBbnRocm9waWNNb2RlbChyZXEubW9kZWwpO1xuICAgIGNvbnN0IGpzb25TY2hlbWEgPVxuICAgICAgcmVxLm91dHB1dFNjaGVtYSAhPT0gdW5kZWZpbmVkID8gSlNPTi5zdHJpbmdpZnkocmVxLm91dHB1dFNjaGVtYSkgOiB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCB0b2tlbiA9IGF3YWl0IHRoaXMuc2VsZWN0VG9rZW4oKTtcbiAgICBpZiAoIXRva2VuKSB0aHJvdyBuZXcgRXJyb3IoXCJObyBhbnRocm9waWMgdG9rZW5zIGF2YWlsYWJsZVwiKTtcblxuICAgIGNvbnN0IGV4ZWMgPSBhc3luYyAoKTogUHJvbWlzZTxHZW5lcmF0ZVJlc3VsdD4gPT4ge1xuICAgICAgLy8g66eM66OMIOyehOuwlSDthqDtgbAgcHJlZW1wdGl2ZSByZWZyZXNoKOq4sOyhtCBzdGFuZGFsb25lIOqyveuhnOyZgCDrj5nsnbwpLiDsi6TtjKjtlbTrj4Qg7KeE7ZaJLlxuICAgICAgbGV0IGFjY2Vzc1Rva2VuID0gdG9rZW4uY3JlZGVudGlhbHMuYWNjZXNzVG9rZW47XG4gICAgICBjb25zdCBleHBpcmVzQXQgPSBnZXRFeHBpcmVzQXQodG9rZW4uY3JlZGVudGlhbHMpO1xuICAgICAgaWYgKFxuICAgICAgICBleHBpcmVzQXQgJiZcbiAgICAgICAgZXhwaXJlc0F0IC0gRGF0ZS5ub3coKSA8IFJFRlJFU0hfU0FGRVRZX01TICYmXG4gICAgICAgIGdldFJlZnJlc2hUb2tlbih0b2tlbi5jcmVkZW50aWFscylcbiAgICAgICkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IHsgUWdyaWRGcmFtZSB9ID0gYXdhaXQgaW1wb3J0KFwiLi4vLi4vLi4vYXBwbGljYXRpb24vcWdyaWQvcWdyaWQuZnJhbWVcIik7XG4gICAgICAgICAgLy8gcHJvdmlkZXIg66W8IOuwmOuTnOyLnCDssYTsm4zslbwgcmVmcmVzaFRva2VuIOuCtOu2gCBUb2tlbk1vZGVsLnNhdmUg6rCAIOyEseqzte2VnOuLpC5cbiAgICAgICAgICAvLyByZWZyZXNoVG9rZW4oVG9rZW5TdWJzZXRBKSDripQgaWQvcHJvdmlkZXIvY3JlZGVudGlhbHMvbmFtZSDrp4wg7IKs7Jqp7ZWY66+A66GcIOq3uCA06rCc66eMIOuEmOq4tOuLpC5cbiAgICAgICAgICBhY2Nlc3NUb2tlbiA9IGF3YWl0IFFncmlkRnJhbWUucmVmcmVzaFRva2VuKHtcbiAgICAgICAgICAgIGlkOiB0b2tlbi5pZCxcbiAgICAgICAgICAgIHByb3ZpZGVyOiBcImFudGhyb3BpY1wiLFxuICAgICAgICAgICAgbmFtZTogdG9rZW4ubmFtZSxcbiAgICAgICAgICAgIGNyZWRlbnRpYWxzOiB0b2tlbi5jcmVkZW50aWFscyxcbiAgICAgICAgICB9IGFzIFBhcmFtZXRlcnM8dHlwZW9mIFFncmlkRnJhbWUucmVmcmVzaFRva2VuPlswXSk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBsb2dnZXIud2FybihgcmVmcmVzaCBmYWlsZWQgZm9yICR7dG9rZW4ubmFtZX06ICR7KGUgYXMgRXJyb3IpLm1lc3NhZ2V9YCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgbG9nZ2VyLmluZm8oYOKGkiAke3Rva2VuLm5hbWV9IChtb2RlbDogJHttb2RlbH0pYCk7XG4gICAgICBjb25zdCBzZXNzaW9uID0gYXdhaXQgcnVuQ2xhdWRlU2Vzc2lvbihcbiAgICAgICAge1xuICAgICAgICAgIHRva2VuSWQ6IHRva2VuLmlkLFxuICAgICAgICAgIHRva2VuOiBhY2Nlc3NUb2tlbixcbiAgICAgICAgICBtb2RlbCxcbiAgICAgICAgICBzeXN0ZW06IHJlcS5zeXN0ZW1Qcm9tcHQsXG4gICAgICAgICAganNvblNjaGVtYSxcbiAgICAgICAgICBlZmZvcnQ6IHJlcS5lZmZvcnQsXG4gICAgICAgICAgdGltZW91dE1zOiBERUZBVUxUX1RJTUVPVVRfTVMsXG4gICAgICAgICAgY29sZEhpc3Rvcnk6IHJlcS5jb2xkSGlzdG9yeSxcbiAgICAgICAgICBpbnB1dDogcmVxLmNvbGRJbnB1dCxcbiAgICAgICAgICBhYm9ydFNpZ25hbDogcmVxLmFib3J0U2lnbmFsLFxuICAgICAgICAgIGluY2x1ZGVQYXJ0aWFsTWVzc2FnZXM6IG9wdHM/LmluY2x1ZGVQYXJ0aWFsTWVzc2FnZXMsXG4gICAgICAgIH0sXG4gICAgICAgIG9uRGVsdGEsXG4gICAgICApO1xuXG4gICAgICBpZiAoc2Vzc2lvbi5xdW90YUV4aGF1c3RlZCkgdGhyb3cgbmV3IEVycm9yKGBxdW90YSBleGhhdXN0ZWQgKCR7dG9rZW4ubmFtZX0pYCk7XG4gICAgICBpZiAoc2Vzc2lvbi5pc0Vycm9yKSB7XG4gICAgICAgIC8vIOynhOuLqChTT04tNDk1KTogaXNFcnJvciDtjJDsoJUg7IKs7JygKHN1YnR5cGUvdGVybWluYWxfcmVhc29uKeulvCDrqZTsi5zsp4Ag7JWe7JeQIOuTnOufrOuCuOuLpC5cbiAgICAgICAgLy8g6re464+Z7JWIIGRldGFpbCDsnbQgc2Vzc2lvbi50ZXh0KOyZhOyghO2VnCBKU09OIOuzuOusuCnrv5DsnbTrnbwgXCJzY2hlbWEg7JyE67CY7J247KeAIC8gbWF4IHJldHJpZXMg7J247KeAIC9cbiAgICAgICAgLy8gbWF4IHR1cm5zIOyduOyngFwi66W8IOq1rOu2hO2VoCDsiJgg7JeG7JeI64ukLiB0ZXh0IOuKlCDsp4Tri6jsl5Ag7ZWE7JqU7ZWcIOunjO2BvOunjCDsnpjrnbwg642n67aZ7J2464ukLlxuICAgICAgICBjb25zdCByZWFzb24gPVxuICAgICAgICAgIHNlc3Npb24uc3VidHlwZSA/PyBzZXNzaW9uLnRlcm1pbmFsUmVhc29uID8/IChzZXNzaW9uLmlzRXJyb3IgPyBcImlzX2Vycm9yXCIgOiBcInVua25vd25cIik7XG4gICAgICAgIGNvbnN0IGJvZHkgPSBzZXNzaW9uLnRleHRcbiAgICAgICAgICA/IHNlc3Npb24udGV4dC5sZW5ndGggPiA1MDBcbiAgICAgICAgICAgID8gYCR7c2Vzc2lvbi50ZXh0LnNsaWNlKDAsIDUwMCl94oCmKCR7c2Vzc2lvbi50ZXh0Lmxlbmd0aH0gY2hhcnMpYFxuICAgICAgICAgICAgOiBzZXNzaW9uLnRleHRcbiAgICAgICAgICA6IGBlbXB0eSB0ZXh0LCBvdXRwdXRUb2tlbnM9JHtzZXNzaW9uLnVzYWdlLm91dHB1dFRva2Vuc31gO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGNsYXVkZSBlcnJvciAoJHt0b2tlbi5uYW1lfSkgWyR7cmVhc29ufV06ICR7Ym9keX1gKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdGV4dDogc2Vzc2lvbi50ZXh0LFxuICAgICAgICB0b2tlbk5hbWU6IHRva2VuLm5hbWUsXG4gICAgICAgIHVzYWdlOiBzZXNzaW9uLnVzYWdlLFxuICAgICAgICBkdXJhdGlvbk1zOiBzZXNzaW9uLmR1cmF0aW9uTXMsXG4gICAgICAgIHR0ZnRNczogc2Vzc2lvbi50dGZ0TXMsXG4gICAgICAgIGNvc3RVc2Q6IHNlc3Npb24uY29zdFVzZCxcbiAgICAgICAgbW9kZWwsXG4gICAgICAgIC8vIHN5c3RlbUhhc2gg64qUIOyDgeychCBpc3N1ZUNvbnZDb250ZXh0IOqwgCDssYTsmrTri6Qo7Jes6riw7ISgIOu5hOyatOuLpCkuXG4gICAgICAgIHRocmVhZENvb3JkOiB7XG4gICAgICAgICAgd29ya2VySWQ6IG1ha2VBbnRocm9waWNXb3JrZXJJZCh0b2tlbi5pZCksXG4gICAgICAgICAgdGhyZWFkSWQ6IHNlc3Npb24uc2Vzc2lvbklkLFxuICAgICAgICAgIGVwb2NoOiAwLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIGV4ZWMoKTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBOEJBLE1BQU0sU0FBUyxVQUFVLENBQUMsU0FBUyx1QkFBdUIsQ0FBQztBQUkzRCxNQUFNLHFCQUFxQjtBQUUzQixNQUFNLG9CQUFvQjtBQVUxQixTQUFTLDhCQUNQLFVBQ0EsUUFDUTtDQUNSLE1BQU0sVUFBVSxPQUNiLEtBQUssVUFBVSxHQUFHLE1BQU0sVUFBVSxjQUFjLE1BQU0sVUFBVSxJQUFJLENBQ3BFLEtBQUssS0FBSztBQUNiLFFBQU8sUUFBUSxTQUFTLElBQ3BCLE9BQU8sU0FBUyxvQ0FBb0MsWUFDcEQsT0FBTyxTQUFTOztBQUd0QixJQUFhLHNCQUFiLE1BQStEO0NBRTdELDRCQUFvQixJQUFJLEtBQTBCO0NBQ2xELG1CQUFvQyxJQUFJLDBC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
|
|
247
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW50aHJvcGljLWRpc3BhdGNoZXIuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWxzL3Byb3ZpZGVycy9hbnRocm9waWMvYW50aHJvcGljLWRpc3BhdGNoZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBbnRocm9waWNEaXNwYXRjaGVyXG4gKlxuICogT3BlbkFJRGlzcGF0Y2hlcuyZgCDri6zrpqwsIHdvcmtlciBwb29s7J2EIOuRkOuKlCDrjIDsi6Ag7JqU7LKt67OEIGZyZXNoIHNwYXduXG4gKiDthqDtgbDsnYAg7J2466mU66qo66asKE1BUCnsnLzroZwg6rSA66as7ZWY6rOgIHNtb290aCB3ZWlnaHRlZCByb3VuZC1yb2JpbiDsnLzroZwg6rOg66W464ukXG4gKlxuICogLSDrqqjrk6Ag7JqU7LKt7J2AIGZyZXNoIGAtLXNlc3Npb24taWRgIOuhnCDsi6TtlolcbiAqIC0g66mA7Yuw7YS0IOusuOunpeydgCDtgbTrnbzsnbTslrjtirjqsIAg66ekIO2YuOy2nCDrs7TrgrTripQgZnVsbCBoaXN0b3J5IOulvCDtj4ntg4TtmZTtlbQg7KCE64us7ZWc64ukLlxuICogLSDrsJzquIntlZwgc2Vzc2lvbi1pZCDrpbwgR2VuZXJhdGVSZXN1bHQudGhyZWFkQ29vcmQodGhyZWFkSWQ9c2Vzc2lvbi1pZCwgd29ya2VySWQ9dG9rZW5JZCxcbiAqICAgZXBvY2g9MCnroZwg7Jis66CkLCDsg4HsnIQoaXNzdWVDb252Q29udGV4dCnqsIAg7YG065287JeQIO2ajOyGoe2VoCDsooztkZzrpbwg66eM65Og64ukLiDri6TsnYwgdHVybiDsnbQg7KKM7ZGc66W8XG4gKiAgIO2ajOyGoe2VtOuPhCBBbnRocm9waWMg65287Jqw7YyF7JeQ64qUIOyTsOyngCDslYrripTri6QuXG4gKi9cblxuaW1wb3J0IHsgZ2V0TG9nZ2VyIH0gZnJvbSBcIkBsb2d0YXBlL2xvZ3RhcGVcIjtcblxuaW1wb3J0IHsgUXVvdGFUaHJlc2hvbGRFeGNlZWRlZEVycm9yIH0gZnJvbSBcIi4uLy4uLy4uL2FwcGxpY2F0aW9uL3FncmlkL3FncmlkLnR5cGVzXCI7XG5pbXBvcnQgeyBUb2tlbk1vZGVsIH0gZnJvbSBcIi4uLy4uLy4uL2FwcGxpY2F0aW9uL3Rva2VuL3Rva2VuLm1vZGVsXCI7XG5pbXBvcnQgeyB0eXBlIEFudGhyb3BpY0NyZWRlbnRpYWxzIH0gZnJvbSBcIi4uLy4uLy4uL2FwcGxpY2F0aW9uL3Rva2VuL3Rva2VuLnR5cGVzXCI7XG5pbXBvcnQgeyBnZXRFeHBpcmVzQXQsIGdldFJlZnJlc2hUb2tlbiB9IGZyb20gXCIuLi9jb21tb24vY3JlZGVudGlhbHNcIjtcbmltcG9ydCB7XG4gIHR5cGUgR2VuZXJhdGVSZXF1ZXN0LFxuICB0eXBlIEdlbmVyYXRlUmVzdWx0LFxuICB0eXBlIEdlbmVyYXRlU3RyZWFtQ2FsbGJhY2tzLFxuICB0eXBlIFByb3ZpZGVyRGlzcGF0Y2hlcixcbn0gZnJvbSBcIi4uL2NvbW1vbi9wcm92aWRlci1kaXNwYXRjaGVyXCI7XG5pbXBvcnQgeyBTbW9vdGhXZWlnaHRlZFJvdW5kUm9iaW4gfSBmcm9tIFwiLi4vY29tbW9uL3Ntb290aC13ZWlnaHRlZC1yb3VuZC1yb2JpblwiO1xuaW1wb3J0IHsgYXNzZXJ0U3VwcG9ydGVkT25lTWlsbGlvblN1ZmZpeCwgY2Fub25pY2FsQW50aHJvcGljTW9kZWwgfSBmcm9tIFwiLi9hbnRocm9waWMtY29uc3RhbnRzXCI7XG5pbXBvcnQgeyByZWFkQW50aHJvcGljUXVvdGFVc2FnZSwgdHlwZSBBbnRocm9waWNRdW90YVVzYWdlUmVzdWx0IH0gZnJvbSBcIi4vYW50aHJvcGljLXF1b3RhXCI7XG5pbXBvcnQgeyBtYWtlQW50aHJvcGljV29ya2VySWQsIHJ1bkNsYXVkZVNlc3Npb24gfSBmcm9tIFwiLi9jbGF1ZGUtc2Vzc2lvblwiO1xuXG5jb25zdCBsb2dnZXIgPSBnZXRMb2dnZXIoW1wicWdyaWRcIiwgXCJhbnRocm9waWMtZGlzcGF0Y2hlclwiXSk7XG5cbi8vIDFNIGNvbnRleHQg7KCV7IOBIOyDneyEseydgCDsi6TsuKHsg4EgMTAwcyvquYzsp4Ag6rCE64ukLiAyNDBz64qUIOyZhOy2qSDsnqXsuZjsnbwg67+QLFxuLy8g6rGw67aAK+qxsOuMgCBzeXN0ZW0g7J6s7IOd7ISxIOyngOyXsOydhCDsmYTsoITtnogg7ZW06rKw7ZWY64qUIOqwkuydgCDslYTri4jri6QuXG5jb25zdCBERUZBVUxUX1RJTUVPVVRfTVMgPSAyNDBfMDAwO1xuLy8gYWNjZXNzIHRva2VuIOunjOujjCDsnoTrsJUg7J6E6rOEIOKAlCDquLDsobQgc3RhbmRhbG9uZSDqsr3roZwocWdyaWQuZGlzcGF0Y2hlci50cynsmYAg64+Z7J28KDYwcykuXG5jb25zdCBSRUZSRVNIX1NBRkVUWV9NUyA9IDYwXzAwMDtcblxuaW50ZXJmYWNlIFBvb2xlZFRva2VuIHtcbiAgaWQ6IG51bWJlcjtcbiAgbmFtZTogc3RyaW5nO1xuICBjcmVkZW50aWFsczogQW50aHJvcGljQ3JlZGVudGlhbHM7XG4gIHF1b3RhVGhyZXNob2xkPzogbnVtYmVyIHwgbnVsbDtcbiAgd2VpZ2h0OiBudW1iZXI7XG59XG5cbmZ1bmN0aW9uIHF1b3RhVGhyZXNob2xkRXhjZWVkZWRNZXNzYWdlKFxuICBwcm92aWRlcjogc3RyaW5nLFxuICB0b2tlbnM6IEFycmF5PHsgdG9rZW5OYW1lOiBzdHJpbmc7IHRocmVzaG9sZDogbnVtYmVyIH0+LFxuKTogc3RyaW5nIHtcbiAgY29uc3QgZGV0YWlscyA9IHRva2Vuc1xuICAgIC5tYXAoKHRva2VuKSA9PiBgJHt0b2tlbi50b2tlbk5hbWV9ICh0aHJlc2hvbGQgJHt0b2tlbi50aHJlc2hvbGR9JSlgKVxuICAgIC5qb2luKFwiLCBcIik7XG4gIHJldHVybiBkZXRhaWxzLmxlbmd0aCA+IDBcbiAgICA/IGBBbGwgJHtwcm92aWRlcn0gdG9rZW5zIGV4Y2VlZGVkIHF1b3RhIHRocmVzaG9sZDogJHtkZXRhaWxzfWBcbiAgICA6IGBBbGwgJHtwcm92aWRlcn0gdG9rZW5zIGV4Y2VlZGVkIHF1b3RhIHRocmVzaG9sZGA7XG59XG5cbmV4cG9ydCBjbGFzcyBBbnRocm9waWNEaXNwYXRjaGVyIGltcGxlbWVudHMgUHJvdmlkZXJEaXNwYXRjaGVyIHtcbiAgLy8gdG9rZW5JZCDihpIg7ZKAIO2VreuqqS4gc3RhcnQoKS90b2tlbiDsnbTrsqTtirjroZwg7LGE7JuAXG4gIHByaXZhdGUgdG9rZW5Qb29sID0gbmV3IE1hcDxudW1iZXIsIFBvb2xlZFRva2VuPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IHdlaWdodGVkU2VsZWN0b3IgPSBuZXcgU21vb3RoV2VpZ2h0ZWRSb3VuZFJvYmluKCk7XG5cbiAgYXN5bmMgc3RhcnQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gT3BlbkFJRGlzcGF0Y2hlci5zdGFydCgpIOyZgCDrj5nsnbztlZjqsowgREIg7JeQ7IScIOq4sOyhtCBhbnRocm9waWMg7Yag7YGw7J2EIHNlbGYtYm9vdHN0cmFwIO2VnOuLpC5cbiAgICAvLyAo7ISc67KEIOyerOyLnOyekSDsi5wgTk9USUZZIOqwgCDslYgg7Jik66+A66GcIOu2gO2KuOyKpO2KuOueqeydtCDsl4bsnLzrqbQg7ZKA7J20IOu5iCDssYTroZwg64Ko64qU64ukLilcbiAgICAvLyDsnbTtm4Qg67OA6rK967aE7J2AIHRva2VuLXN1YnNjcmliZXIg6rCAIG9uVG9rZW5BZGRlZC9VcGRhdGVkL1JlbW92ZWQg66GcIOyghOuLrO2VnOuLpC5cbiAgICAvLyBmaW5kQWN0aXZlQnlQcm92aWRlciDqsIAgYWN0aXZlPXRydWUgKyBwcm92aWRlciDtlYTthLDrpbwgREIg7JeQ7IScIOyymOumrCDihpIgaW5hY3RpdmUg64qUIOyVoOy0iOyXkCDslYgg7Jio64ukLlxuICAgIGNvbnN0IHRva2VucyA9IGF3YWl0IFRva2VuTW9kZWwuZmluZEFjdGl2ZUJ5UHJvdmlkZXIoXCJBXCIsIFwiYW50aHJvcGljXCIpO1xuICAgIGZvciAoY29uc3QgdCBvZiB0b2tlbnMpIHtcbiAgICAgIHRoaXMudG9rZW5Qb29sLnNldCh0LmlkLCB7XG4gICAgICAgIGlkOiB0LmlkLFxuICAgICAgICBuYW1lOiB0Lm5hbWUsXG4gICAgICAgIGNyZWRlbnRpYWxzOiB0LmNyZWRlbnRpYWxzIGFzIEFudGhyb3BpY0NyZWRlbnRpYWxzLFxuICAgICAgICBxdW90YVRocmVzaG9sZDogdC5xdW90YV90aHJlc2hvbGQsXG4gICAgICAgIHdlaWdodDogdC53ZWlnaHQsXG4gICAgICB9KTtcbiAgICAgIHRoaXMud2VpZ2h0ZWRTZWxlY3Rvci5zZXRUb2tlbih0LmlkLCB0LndlaWdodCk7XG4gICAgICBsb2dnZXIuaW5mbyhgd29ya2VyIHNwYXduZWQ6ICR7dC5uYW1lfWApO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHN0b3AoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgdG9rZW5JZHMgPSBbLi4udGhpcy50b2tlblBvb2wua2V5cygpXTtcbiAgICBmb3IgKGNvbnN0IGlkIG9mIHRva2VuSWRzKSB0aGlzLndlaWdodGVkU2VsZWN0b3IucmVtb3ZlVG9rZW4oaWQpO1xuICAgIHRoaXMudG9rZW5Qb29sLmNsZWFyKCk7XG4gICAgdGhpcy53ZWlnaHRlZFNlbGVjdG9yLnJlc2V0U2NvcmVzKCk7XG4gIH1cblxuICAvLyDtmITsnqwg7ZKA7J2YIO2GoO2BsCDsiJgoc3RhcnR1cCDroZzqt7gvaGVhbHRoIOyaqSkuXG4gIGdldCB0b2tlbkNvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5Qb29sLnNpemU7XG4gIH1cblxuICAvLyBNb25pdCDtkZzsi5zsmqkg4oCUIO2SgOyXkCDsnojripQg7Yag7YGwIOydtOumhCDsiqTrg4Xsg7cgKOydtOumhOyInCDsoJXroKwpXG4gIGdldCB0b2tlbk5hbWVzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gWy4uLnRoaXMudG9rZW5Qb29sLnZhbHVlcygpXS5tYXAoKHRva2VuKSA9PiB0b2tlbi5uYW1lKS50b1NvcnRlZCgpO1xuICB9XG5cbiAgLy8gREIgYWN0aXZlIGFudGhyb3BpYyDthqDtgbAg66qp66Gd7Jy866GcIO2SgOydhCDsnqzrj5nquLDtmZTtlZzri6QocGVyaW9kaWMgcmVjb25jaWxlL+yerOyXsOqysOyaqSkuXG4gIC8vIExJU1RFTi9OT1RJRlkg6rCAIOuBiuq4tCDrj5nslYgg7Jyg7Iuk65CcIOy2lOqwgC/sgq3soJwv67mE7Zmc7ISx7ZmU66W8IERCIOq4sOykgOycvOuhnCDri6Tsi5wg66ee7LaY64ukLlxuICAvLyDsnbTrsqTtirgg7ZW465Ok65+s66W8IOyerOyCrOyaqe2VtCDtkoAg6rCx7Iug7J20IOydvOq0gOuQmOqyjCDsoIHsmqnrkJjrj4TroZ0g7ZWc64ukOlxuICAvLyAgLSBEQiDsl5Ag7JeG64qU642wIO2SgOyXkCDsnojripQg7Yag7YGwIOKGkiBvblRva2VuUmVtb3ZlZFxuICAvLyAgLSBEQiDsl5Ag7J6I64qUIO2GoO2BsCDihpIg7Iug6rec66m0IG9uVG9rZW5BZGRlZCwg6riw7KG07J2066m0IG9uVG9rZW5VcGRhdGVkXG4gIHJlcGxhY2VUb2tlbnMoXG4gICAgcm93czogQXJyYXk8e1xuICAgICAgaWQ6IG51bWJlcjtcbiAgICAgIG5hbWU6IHN0cmluZztcbiAgICAgIGNyZWRlbnRpYWxzOiBBbnRocm9waWNDcmVkZW50aWFscztcbiAgICAgIHF1b3RhVGhyZXNob2xkPzogbnVtYmVyIHwgbnVsbDtcbiAgICAgIHdlaWdodDogbnVtYmVyO1xuICAgIH0+LFxuICApOiB2b2lkIHtcbiAgICBjb25zdCBuZXh0ID0gbmV3IFNldChyb3dzLm1hcCgocikgPT4gci5pZCkpO1xuICAgIC8vIG9uVG9rZW5SZW1vdmVkIOqwgCB0b2tlblBvb2wg7J2EIGRlbGV0ZSDtlZjrr4DroZwg7Iic7ZqMIOykkSDsiJjsoJXsnYQg7ZS87ZWY66CkIO2CpOulvCDrqLzsoIAg7Iqk64OF7IO37ZWc64ukLlxuICAgIGNvbnN0IGN1cnJlbnRJZHMgPSBBcnJheS5mcm9tKHRoaXMudG9rZW5Qb29sLmtleXMoKSk7XG4gICAgZm9yIChjb25zdCBpZCBvZiBjdXJyZW50SWRzKSB7XG4gICAgICBpZiAoIW5leHQuaGFzKGlkKSkgdGhpcy5vblRva2VuUmVtb3ZlZChpZCk7XG4gICAgfVxuICAgIGZvciAoY29uc3QgciBvZiByb3dzKSB7XG4gICAgICBpZiAodGhpcy50b2tlblBvb2wuaGFzKHIuaWQpKSB7XG4gICAgICAgIHRoaXMub25Ub2tlblVwZGF0ZWQoci5pZCwgci5uYW1lLCByLmNyZWRlbnRpYWxzLCByLnF1b3RhVGhyZXNob2xkLCByLndlaWdodCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm9uVG9rZW5BZGRlZChyLmlkLCByLm5hbWUsIHIuY3JlZGVudGlhbHMsIHIucXVvdGFUaHJlc2hvbGQsIHIud2VpZ2h0KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyB0b2tlbiBldmVudHMgKHRva2VuLXN1YnNjcmliZXIg6rCAIO2YuOy2nClcbiAgb25Ub2tlbkFkZGVkKFxuICAgIGlkOiBudW1iZXIsXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIGNyZWRlbnRpYWxzOiBBbnRocm9waWNDcmVkZW50aWFscyxcbiAgICBxdW90YVRocmVzaG9sZD86IG51bWJlciB8IG51bGwsXG4gICAgd2VpZ2h0ID0gMSxcbiAgKTogdm9pZCB7XG4gICAgdGhpcy50b2tlblBvb2wuc2V0KGlkLCB7IGlkLCBuYW1lLCBjcmVkZW50aWFscywgcXVvdGFUaHJlc2hvbGQsIHdlaWdodCB9KTtcbiAgICB0aGlzLndlaWdodGVkU2VsZWN0b3Iuc2V0VG9rZW4oaWQsIHdlaWdodCk7XG4gIH1cblxuICBvblRva2VuVXBkYXRlZChcbiAgICBpZDogbnVtYmVyLFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBjcmVkZW50aWFsczogQW50aHJvcGljQ3JlZGVudGlhbHMsXG4gICAgcXVvdGFUaHJlc2hvbGQ/OiBudW1iZXIgfCBudWxsLFxuICAgIHdlaWdodCA9IDEsXG4gICk6IHZvaWQge1xuICAgIHRoaXMudG9rZW5Qb29sLnNldChpZCwgeyBpZCwgbmFtZSwgY3JlZGVudGlhbHMsIHF1b3RhVGhyZXNob2xkLCB3ZWlnaHQgfSk7XG4gICAgdGhpcy53ZWlnaHRlZFNlbGVjdG9yLnNldFRva2VuKGlkLCB3ZWlnaHQpO1xuICB9XG5cbiAgb25Ub2tlblJlbW92ZWQoaWQ6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMudG9rZW5Qb29sLmRlbGV0ZShpZCk7XG4gICAgdGhpcy53ZWlnaHRlZFNlbGVjdG9yLnJlbW92ZVRva2VuKGlkKTtcbiAgfVxuXG4gIC8vIHF1b3RhIO2GteqzvCDtm4Trs7Trp4zsnLzroZwg7JqU7LKt66eI64ukIHNtb290aCB3ZWlnaHRlZCByb3VuZC1yb2JpbiDshKDtg53tlZzri6QuXG4gIHByaXZhdGUgYXN5bmMgc2VsZWN0VG9rZW4oKTogUHJvbWlzZTxQb29sZWRUb2tlbiB8IG51bGw+IHtcbiAgICBjb25zdCByb3dzID0gWy4uLnRoaXMudG9rZW5Qb29sLnZhbHVlcygpXTtcbiAgICBpZiAocm93cy5sZW5ndGggPT09IDApIHJldHVybiBudWxsO1xuICAgIGNvbnN0IHsgZWxpZ2libGUsIG92ZXJUaHJlc2hvbGRUb2tlbnMgfSA9IGF3YWl0IHRoaXMuZmlsdGVyRWxpZ2libGVUb2tlbnMocm93cyk7XG4gICAgaWYgKGVsaWdpYmxlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgbG9nZ2VyLndhcm4oXCJxdW90YV90aHJlc2hvbGQgZ2F0ZTogYWxsX2V4Y2VlZGVkXCIsIHtcbiAgICAgICAgcHJvdmlkZXI6IFwiYW50aHJvcGljXCIsXG4gICAgICAgIHRva2VuQ291bnQ6IHJvd3MubGVuZ3RoLFxuICAgICAgICB0aHJlc2hvbGRlZFRva2VuQ291bnQ6IHJvd3MuZmlsdGVyKChyKSA9PiB0aGlzLmhhc1F1b3RhVGhyZXNob2xkKHIpKS5sZW5ndGgsXG4gICAgICAgIG92ZXJUaHJlc2hvbGRUb2tlbnMsXG4gICAgICAgIHJlYXNvbjogXCJhbGxfZXhjZWVkZWRcIixcbiAgICAgIH0pO1xuICAgICAgdGhyb3cgbmV3IFF1b3RhVGhyZXNob2xkRXhjZWVkZWRFcnJvcihcbiAgICAgICAgcXVvdGFUaHJlc2hvbGRFeGNlZWRlZE1lc3NhZ2UoXCJhbnRocm9waWNcIiwgb3ZlclRocmVzaG9sZFRva2VucyksXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHNlbGVjdGVkSWQgPSB0aGlzLndlaWdodGVkU2VsZWN0b3Iuc2VsZWN0KG5ldyBTZXQoZWxpZ2libGUubWFwKCh0b2tlbikgPT4gdG9rZW4uaWQpKSk7XG4gICAgaWYgKHNlbGVjdGVkSWQgPT09IG51bGwpIHJldHVybiBudWxsO1xuICAgIHJldHVybiB0aGlzLnRva2VuUG9vbC5nZXQoc2VsZWN0ZWRJZCkgPz8gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZmlsdGVyRWxpZ2libGVUb2tlbnMocm93czogUG9vbGVkVG9rZW5bXSk6IFByb21pc2U8e1xuICAgIGVsaWdpYmxlOiBQb29sZWRUb2tlbltdO1xuICAgIG92ZXJUaHJlc2hvbGRUb2tlbnM6IEFycmF5PHsgdG9rZW5OYW1lOiBzdHJpbmc7IHRocmVzaG9sZDogbnVtYmVyIH0+O1xuICB9PiB7XG4gICAgY29uc3QgdGhyZXNob2xkZWQgPSByb3dzLmZpbHRlcigodG9rZW4pID0+IHRoaXMuaGFzUXVvdGFUaHJlc2hvbGQodG9rZW4pKTtcbiAgICBpZiAodGhyZXNob2xkZWQubGVuZ3RoID09PSAwKSByZXR1cm4geyBlbGlnaWJsZTogcm93cywgb3ZlclRocmVzaG9sZFRva2VuczogW10gfTtcblxuICAgIGNvbnN0IGVsaWdpYmxlSWRzID0gbmV3IFNldChcbiAgICAgIHJvd3MuZmlsdGVyKCh0b2tlbikgPT4gIXRoaXMuaGFzUXVvdGFUaHJlc2hvbGQodG9rZW4pKS5tYXAoKHRva2VuKSA9PiB0b2tlbi5pZCksXG4gICAgKTtcbiAgICBjb25zdCBvdmVyVGhyZXNob2xkVG9rZW5zOiBBcnJheTx7IHRva2VuTmFtZTogc3RyaW5nOyB0aHJlc2hvbGQ6IG51bWJlciB9PiA9IFtdO1xuICAgIGNvbnN0IGNoZWNrcyA9IGF3YWl0IFByb21pc2UuYWxsU2V0dGxlZChcbiAgICAgIHRocmVzaG9sZGVkLm1hcChhc3luYyAodG9rZW4pID0+ICh7XG4gICAgICAgIHRva2VuLFxuICAgICAgICByZXN1bHQ6IGF3YWl0IHJlYWRBbnRocm9waWNRdW90YVVzYWdlKHRva2VuLmNyZWRlbnRpYWxzLmFjY2Vzc1Rva2VuKSxcbiAgICAgIH0pKSxcbiAgICApO1xuXG4gICAgY2hlY2tzLmZvckVhY2goKGNoZWNrLCBpbmRleCkgPT4ge1xuICAgICAgaWYgKGNoZWNrLnN0YXR1cyA9PT0gXCJyZWplY3RlZFwiKSB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhyZXNob2xkZWRbaW5kZXhdO1xuICAgICAgICBpZiAoIXRva2VuKSByZXR1cm47XG4gICAgICAgIHRoaXMubG9nUXVvdGFMb29rdXBGYWlsT3Blbih0b2tlbiwgU3RyaW5nKGNoZWNrLnJlYXNvbikpO1xuICAgICAgICBlbGlnaWJsZUlkcy5hZGQodG9rZW4uaWQpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHRva2VuID0gY2hlY2sudmFsdWUudG9rZW47XG4gICAgICBjb25zdCByZXN1bHQgPSBjaGVjay52YWx1ZS5yZXN1bHQ7XG4gICAgICBpZiAocmVzdWx0LmtpbmQgPT09IFwibG9va3VwX2ZhaWxlZFwiKSB7XG4gICAgICAgIHRoaXMubG9nUXVvdGFMb29rdXBGYWlsT3Blbih0b2tlbiwgcmVzdWx0LnJlYXNvbik7XG4gICAgICAgIGVsaWdpYmxlSWRzLmFkZCh0b2tlbi5pZCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHJlc3VsdC51dGlsaXphdGlvblBjdCA+PSB0b2tlbi5xdW90YVRocmVzaG9sZCkge1xuICAgICAgICB0aGlzLmxvZ1F1b3RhT3ZlclRocmVzaG9sZCh0b2tlbiwgcmVzdWx0KTtcbiAgICAgICAgb3ZlclRocmVzaG9sZFRva2Vucy5wdXNoKHsgdG9rZW5OYW1lOiB0b2tlbi5uYW1lLCB0aHJlc2hvbGQ6IHRva2VuLnF1b3RhVGhyZXNob2xkIH0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGVsaWdpYmxlSWRzLmFkZCh0b2tlbi5pZCk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4geyBlbGlnaWJsZTogcm93cy5maWx0ZXIoKHRva2VuKSA9PiBlbGlnaWJsZUlkcy5oYXModG9rZW4uaWQpKSwgb3ZlclRocmVzaG9sZFRva2VucyB9O1xuICB9XG5cbiAgcHJpdmF0ZSBoYXNRdW90YVRocmVzaG9sZCh0b2tlbjogUG9vbGVkVG9rZW4pOiB0b2tlbiBpcyBQb29sZWRUb2tlbiAmIHsgcXVvdGFUaHJlc2hvbGQ6IG51bWJlciB9IHtcbiAgICByZXR1cm4gdG9rZW4ucXVvdGFUaHJlc2hvbGQgIT09IHVuZGVmaW5lZCAmJiB0b2tlbi5xdW90YVRocmVzaG9sZCAhPT0gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgbG9nUXVvdGFPdmVyVGhyZXNob2xkKFxuICAgIHRva2VuOiBQb29sZWRUb2tlbiAmIHsgcXVvdGFUaHJlc2hvbGQ6IG51bWJlciB9LFxuICAgIHJlc3VsdDogRXh0cmFjdDxBbnRocm9waWNRdW90YVVzYWdlUmVzdWx0LCB7IGtpbmQ6IFwib2tcIiB9PixcbiAgKTogdm9pZCB7XG4gICAgbG9nZ2VyLmluZm8oXCJxdW90YV90aHJlc2hvbGQgZ2F0ZTogb3Zlcl90aHJlc2hvbGRcIiwge1xuICAgICAgdG9rZW5JZDogdG9rZW4uaWQsXG4gICAgICB0b2tlbk5hbWU6IHRva2VuLm5hbWUsXG4gICAgICBwcm92aWRlcjogXCJhbnRocm9waWNcIixcbiAgICAgIHRocmVzaG9sZDogdG9rZW4ucXVvdGFUaHJlc2hvbGQsXG4gICAgICBjYWNoZWRVdGlsaXphdGlvbjogcmVzdWx0LnV0aWxpemF0aW9uUGN0LFxuICAgICAgY2FjaGVBZ2U6IHJlc3VsdC5jYWNoZUFnZU1zLFxuICAgICAgcmVhc29uOiBcIm92ZXJfdGhyZXNob2xkXCIsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGxvZ1F1b3RhTG9va3VwRmFpbE9wZW4oXG4gICAgdG9rZW46IFBvb2xlZFRva2VuICYgeyBxdW90YVRocmVzaG9sZDogbnVtYmVyIH0sXG4gICAgcmVhc29uOiBzdHJpbmcsXG4gICk6IHZvaWQge1xuICAgIGxvZ2dlci53YXJuKFwicXVvdGFfdGhyZXNob2xkIGdhdGU6IGxvb2t1cF9mYWlsX29wZW5cIiwge1xuICAgICAgdG9rZW5JZDogdG9rZW4uaWQsXG4gICAgICB0b2tlbk5hbWU6IHRva2VuLm5hbWUsXG4gICAgICBwcm92aWRlcjogXCJhbnRocm9waWNcIixcbiAgICAgIHRocmVzaG9sZDogdG9rZW4ucXVvdGFUaHJlc2hvbGQsXG4gICAgICByZWFzb246IFwibG9va3VwX2ZhaWxfb3BlblwiLFxuICAgICAgbG9va3VwUmVhc29uOiByZWFzb24sXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBnZW5lcmF0ZShyZXE6IEdlbmVyYXRlUmVxdWVzdCk6IFByb21pc2U8R2VuZXJhdGVSZXN1bHQ+IHtcbiAgICByZXR1cm4gdGhpcy5ydW4ocmVxLCAoKSA9PiB7fSk7XG4gIH1cblxuICBhc3luYyBnZW5lcmF0ZVN0cmVhbShyZXE6IEdlbmVyYXRlUmVxdWVzdCwgY2I6IEdlbmVyYXRlU3RyZWFtQ2FsbGJhY2tzKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMucnVuKHJlcSwgY2Iub25EZWx0YSwgeyBpbmNsdWRlUGFydGlhbE1lc3NhZ2VzOiB0cnVlIH0pO1xuICAgICAgY2Iub25UaHJlYWRJZD8uKHJlc3VsdC50aHJlYWRDb29yZC50aHJlYWRJZCk7XG4gICAgICBjYi5vbkNvbXBsZXRlKHJlc3VsdCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY2Iub25FcnJvcihlIGFzIEVycm9yKTtcbiAgICB9XG4gIH1cblxuICAvLyBnZW5lcmF0ZS9nZW5lcmF0ZVN0cmVhbSDqs7XthrUg7Iuk7ZaJLiBvbkRlbHRhIOuKlCDsiqTtirjrprzsnbTrqbQg7KCQ7KeEIOuwqey2nCwg67mE7Iqk7Yq466a87J2066m0IG5vLW9wLlxuICBwcml2YXRlIGFzeW5jIHJ1bihcbiAgICByZXE6IEdlbmVyYXRlUmVxdWVzdCxcbiAgICBvbkRlbHRhOiAodDogc3RyaW5nKSA9PiB2b2lkLFxuICAgIG9wdHM/OiB7IGluY2x1ZGVQYXJ0aWFsTWVzc2FnZXM/OiBib29sZWFuIH0sXG4gICk6IFByb21pc2U8R2VuZXJhdGVSZXN1bHQ+IHtcbiAgICAvLyDsnbTrr7jsp4Ag7IOd7ISx7J2AIE9wZW5BSShjb2RleCkg6rK966GcIOyghOyaqS4gQW50aHJvcGljIOudvOyasO2MheyXkCDsnbTrr7jsp4Ag7ZSM656Y6re46rCAXG4gICAgLy8g64+E64us7ZWY66m0IOyhsOyaqe2eiCDthY3siqTtirjroZwg7Y+067Cx7ZWY7KeAIOyViuqzoCDrqoXsi5zsoIHsnLzroZwg6rGw67aA7ZWc64ukLlxuICAgIGlmIChyZXEuaW1hZ2VHZW5lcmF0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJpbWFnZSBnZW5lcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgb24gdGhlIEFudGhyb3BpYyByb3V0ZVwiKTtcbiAgICB9XG4gICAgLy8gbW9kZWwg7KCV6rec7ZmU66W8IGRpc3BhdGNoZXIg7KeE7J6F7KCQ7JeQ7IScIO2VnCDrsogg7ZWc64ukOiByZXN1bHQubW9kZWwgLyBydW5DbGF1ZGVTZXNzaW9uIOyghOu2gFxuICAgIC8vIGNhbm9uaWNhbChwcmVmaXgg7JeG64qUIGNvc3Qg7YKkKSDsnYQg7JOw6rKMIO2GteydvC4g66+47KeA7KCV7J2066m0IEFOVEhST1BJQ19ERUZBVUxUX01PREVMIOKAlCBxZ3JpZC5kaXNwYXRjaGVyXG4gICAgLy8g7J2YIFwic29ubmV0XCIg67OE7LmtIOyasO2ajCDssKjri6guIOygleq3nO2ZlCDqt5zsuZnsnYAgZmFsbGJhY2sg6rK966Gc7JmAIOqzteycoChjYW5vbmljYWxBbnRocm9waWNNb2RlbCkuXG4gICAgYXNzZXJ0U3VwcG9ydGVkT25lTWlsbGlvblN1ZmZpeChyZXEubW9kZWwpO1xuICAgIGNvbnN0IG1vZGVsID0gY2Fub25pY2FsQW50aHJvcGljTW9kZWwocmVxLm1vZGVsKTtcbiAgICBjb25zdCBqc29uU2NoZW1hID1cbiAgICAgIHJlcS5vdXRwdXRTY2hlbWEgIT09IHVuZGVmaW5lZCA/IEpTT04uc3RyaW5naWZ5KHJlcS5vdXRwdXRTY2hlbWEpIDogdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgdG9rZW4gPSBhd2FpdCB0aGlzLnNlbGVjdFRva2VuKCk7XG4gICAgaWYgKCF0b2tlbikgdGhyb3cgbmV3IEVycm9yKFwiTm8gYW50aHJvcGljIHRva2VucyBhdmFpbGFibGVcIik7XG5cbiAgICBjb25zdCBleGVjID0gYXN5bmMgKCk6IFByb21pc2U8R2VuZXJhdGVSZXN1bHQ+ID0+IHtcbiAgICAgIC8vIOunjOujjCDsnoTrsJUg7Yag7YGwIHByZWVtcHRpdmUgcmVmcmVzaCjquLDsobQgc3RhbmRhbG9uZSDqsr3roZzsmYAg64+Z7J28KS4g7Iuk7Yyo7ZW064+EIOynhO2WiS5cbiAgICAgIGxldCBhY2Nlc3NUb2tlbiA9IHRva2VuLmNyZWRlbnRpYWxzLmFjY2Vzc1Rva2VuO1xuICAgICAgY29uc3QgZXhwaXJlc0F0ID0gZ2V0RXhwaXJlc0F0KHRva2VuLmNyZWRlbnRpYWxzKTtcbiAgICAgIGlmIChcbiAgICAgICAgZXhwaXJlc0F0ICYmXG4gICAgICAgIGV4cGlyZXNBdCAtIERhdGUubm93KCkgPCBSRUZSRVNIX1NBRkVUWV9NUyAmJlxuICAgICAgICBnZXRSZWZyZXNoVG9rZW4odG9rZW4uY3JlZGVudGlhbHMpXG4gICAgICApIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCB7IFFncmlkRnJhbWUgfSA9IGF3YWl0IGltcG9ydChcIi4uLy4uLy4uL2FwcGxpY2F0aW9uL3FncmlkL3FncmlkLmZyYW1lXCIpO1xuICAgICAgICAgIC8vIHByb3ZpZGVyIOulvCDrsJjrk5zsi5wg7LGE7JuM7JW8IHJlZnJlc2hUb2tlbiDrgrTrtoAgVG9rZW5Nb2RlbC5zYXZlIOqwgCDshLHqs7XtlZzri6QuXG4gICAgICAgICAgLy8gcmVmcmVzaFRva2VuKFRva2VuU3Vic2V0QSkg64qUIGlkL3Byb3ZpZGVyL2NyZWRlbnRpYWxzL25hbWUg66eMIOyCrOyaqe2VmOuvgOuhnCDqt7ggNOqwnOunjCDrhJjquLTri6QuXG4gICAgICAgICAgYWNjZXNzVG9rZW4gPSBhd2FpdCBRZ3JpZEZyYW1lLnJlZnJlc2hUb2tlbih7XG4gICAgICAgICAgICBpZDogdG9rZW4uaWQsXG4gICAgICAgICAgICBwcm92aWRlcjogXCJhbnRocm9waWNcIixcbiAgICAgICAgICAgIG5hbWU6IHRva2VuLm5hbWUsXG4gICAgICAgICAgICBjcmVkZW50aWFsczogdG9rZW4uY3JlZGVudGlhbHMsXG4gICAgICAgICAgfSBhcyBQYXJhbWV0ZXJzPHR5cGVvZiBRZ3JpZEZyYW1lLnJlZnJlc2hUb2tlbj5bMF0pO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgbG9nZ2VyLndhcm4oYHJlZnJlc2ggZmFpbGVkIGZvciAke3Rva2VuLm5hbWV9OiAkeyhlIGFzIEVycm9yKS5tZXNzYWdlfWApO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGxvZ2dlci5pbmZvKGDihpIgJHt0b2tlbi5uYW1lfSAobW9kZWw6ICR7bW9kZWx9KWApO1xuICAgICAgY29uc3Qgc2Vzc2lvbiA9IGF3YWl0IHJ1bkNsYXVkZVNlc3Npb24oXG4gICAgICAgIHtcbiAgICAgICAgICB0b2tlbklkOiB0b2tlbi5pZCxcbiAgICAgICAgICB0b2tlbjogYWNjZXNzVG9rZW4sXG4gICAgICAgICAgbW9kZWwsXG4gICAgICAgICAgc3lzdGVtOiByZXEuc3lzdGVtUHJvbXB0LFxuICAgICAgICAgIGpzb25TY2hlbWEsXG4gICAgICAgICAgZWZmb3J0OiByZXEuZWZmb3J0LFxuICAgICAgICAgIHRpbWVvdXRNczogREVGQVVMVF9USU1FT1VUX01TLFxuICAgICAgICAgIGNvbGRIaXN0b3J5OiByZXEuY29sZEhpc3RvcnksXG4gICAgICAgICAgaW5wdXQ6IHJlcS5jb2xkSW5wdXQsXG4gICAgICAgICAgYWJvcnRTaWduYWw6IHJlcS5hYm9ydFNpZ25hbCxcbiAgICAgICAgICBpbmNsdWRlUGFydGlhbE1lc3NhZ2VzOiBvcHRzPy5pbmNsdWRlUGFydGlhbE1lc3NhZ2VzLFxuICAgICAgICB9LFxuICAgICAgICBvbkRlbHRhLFxuICAgICAgKTtcblxuICAgICAgaWYgKHNlc3Npb24ucXVvdGFFeGhhdXN0ZWQpIHRocm93IG5ldyBFcnJvcihgcXVvdGEgZXhoYXVzdGVkICgke3Rva2VuLm5hbWV9KWApO1xuICAgICAgaWYgKHNlc3Npb24uaXNFcnJvcikge1xuICAgICAgICAvLyDsp4Tri6goU09OLTQ5NSk6IGlzRXJyb3Ig7YyQ7KCVIOyCrOycoChzdWJ0eXBlL3Rlcm1pbmFsX3JlYXNvbinrpbwg66mU7Iuc7KeAIOyVnuyXkCDrk5zrn6zrgrjri6QuXG4gICAgICAgIC8vIOq3uOuPmeyViCBkZXRhaWwg7J20IHNlc3Npb24udGV4dCjsmYTsoITtlZwgSlNPTiDrs7jrrLgp67+Q7J206528IFwic2NoZW1hIOychOuwmOyduOyngCAvIG1heCByZXRyaWVzIOyduOyngCAvXG4gICAgICAgIC8vIG1heCB0dXJucyDsnbjsp4BcIuulvCDqtazrtoTtlaAg7IiYIOyXhuyXiOuLpC4gdGV4dCDripQg7KeE64uo7JeQIO2VhOyalO2VnCDrp4ztgbzrp4wg7J6Y6528IOuNp+u2meyduOuLpC5cbiAgICAgICAgY29uc3QgcmVhc29uID1cbiAgICAgICAgICBzZXNzaW9uLnN1YnR5cGUgPz8gc2Vzc2lvbi50ZXJtaW5hbFJlYXNvbiA/PyAoc2Vzc2lvbi5pc0Vycm9yID8gXCJpc19lcnJvclwiIDogXCJ1bmtub3duXCIpO1xuICAgICAgICBjb25zdCBib2R5ID0gc2Vzc2lvbi50ZXh0XG4gICAgICAgICAgPyBzZXNzaW9uLnRleHQubGVuZ3RoID4gNTAwXG4gICAgICAgICAgICA/IGAke3Nlc3Npb24udGV4dC5zbGljZSgwLCA1MDApfeKApigke3Nlc3Npb24udGV4dC5sZW5ndGh9IGNoYXJzKWBcbiAgICAgICAgICAgIDogc2Vzc2lvbi50ZXh0XG4gICAgICAgICAgOiBgZW1wdHkgdGV4dCwgb3V0cHV0VG9rZW5zPSR7c2Vzc2lvbi51c2FnZS5vdXRwdXRUb2tlbnN9YDtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBjbGF1ZGUgZXJyb3IgKCR7dG9rZW4ubmFtZX0pIFske3JlYXNvbn1dOiAke2JvZHl9YCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHRleHQ6IHNlc3Npb24udGV4dCxcbiAgICAgICAgdG9rZW5OYW1lOiB0b2tlbi5uYW1lLFxuICAgICAgICB1c2FnZTogc2Vzc2lvbi51c2FnZSxcbiAgICAgICAgZHVyYXRpb25Nczogc2Vzc2lvbi5kdXJhdGlvbk1zLFxuICAgICAgICB0dGZ0TXM6IHNlc3Npb24udHRmdE1zLFxuICAgICAgICBjb3N0VXNkOiBzZXNzaW9uLmNvc3RVc2QsXG4gICAgICAgIG1vZGVsLFxuICAgICAgICAvLyBzeXN0ZW1IYXNoIOuKlCDsg4HsnIQgaXNzdWVDb252Q29udGV4dCDqsIAg7LGE7Jq064ukKOyXrOq4sOyEoCDruYTsmrTri6QpLlxuICAgICAgICB0aHJlYWRDb29yZDoge1xuICAgICAgICAgIHdvcmtlcklkOiBtYWtlQW50aHJvcGljV29ya2VySWQodG9rZW4uaWQpLFxuICAgICAgICAgIHRocmVhZElkOiBzZXNzaW9uLnNlc3Npb25JZCxcbiAgICAgICAgICBlcG9jaDogMCxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfTtcblxuICAgIHJldHVybiBleGVjKCk7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQThCQSxNQUFNLFNBQVMsVUFBVSxDQUFDLFNBQVMsdUJBQXVCLENBQUM7QUFJM0QsTUFBTSxxQkFBcUI7QUFFM0IsTUFBTSxvQkFBb0I7QUFVMUIsU0FBUyw4QkFDUCxVQUNBLFFBQ1E7Q0FDUixN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
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import "../../../_virtual/_rolldown/runtime.js";
|
|
2
|
-
import { ANTHROPIC_CLAUDE_CWD, ANTHROPIC_DISALLOWED_TOOLS, anthropicConfigDir, assertSupportedOneMillionSuffix, canonicalAnthropicModel, needsCli1mSuffix, supports1MContext } from "./anthropic-constants.js";
|
|
3
2
|
import { createTtftTracker } from "../common/ttft.js";
|
|
3
|
+
import { ANTHROPIC_CLAUDE_CWD, ANTHROPIC_DISALLOWED_TOOLS, anthropicConfigDir, assertSupportedOneMillionSuffix, canonicalAnthropicModel, needsCli1mSuffix, supports1MContext } from "./anthropic-constants.js";
|
|
4
4
|
import { buildStreamJsonInput, handleStreamJsonLine } from "./stream-json-adapter.js";
|
|
5
|
-
import { randomUUID } from "node:crypto";
|
|
6
|
-
import { spawn } from "node:child_process";
|
|
7
5
|
import { mkdirSync, unlinkSync, writeFileSync } from "node:fs";
|
|
6
|
+
import { spawn } from "node:child_process";
|
|
7
|
+
import { randomUUID } from "node:crypto";
|
|
8
8
|
//#region src/utils/providers/anthropic/claude-session.ts
|
|
9
9
|
/**
|
|
10
10
|
* claude-session — Claude CLI 세션 spawn + QgridThreadCoord 매핑 + per-session 락.
|