@sambath999/localize-token 12.3.7 → 12.3.8

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.
@@ -0,0 +1,20 @@
1
+ export const LOCALIZE_API_ASSETS = {
2
+ network: {
3
+ noConnection: `<?xml version="1.0" encoding="UTF-8"?>
4
+ <svg id="lze-no-connection" data-name="Layer 2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 77.29 70.98">
5
+ <defs>
6
+ <style> .cls-1 { fill: #fff; } .cls-2, .cls-3 { fill: #e30613; } .cls-3 { stroke: #e30613; stroke-miterlimit: 10; stroke-width: .25px; } </style>
7
+ </defs>
8
+ <g id="Layer_3" data-name="Layer 3">
9
+ <g>
10
+ <path class="cls-1" d="m73.29,35c-1.2,0-2.33-.53-3.09-1.46-.48-.57-11.23-13.2-31.55-13.2s-31.11,12.66-31.56,13.2c-1.4,1.71-3.92,1.95-5.63.55-1.71-1.4-1.95-3.92-.55-5.63.54-.66,13.47-16.12,37.74-16.12s37.2,15.46,37.74,16.12c1.4,1.71,1.15,4.23-.56,5.62-.71.58-1.61.9-2.53.9Z"/>
11
+ <path class="cls-1" d="m63.96,45.66c-1.19,0-2.32-.53-3.08-1.44-5.79-6.05-13.86-9.39-22.24-9.21-8.38-.18-16.45,3.16-22.24,9.22-1.46,1.65-3.99,1.81-5.64.35-1.57-1.39-1.8-3.77-.52-5.43,7.32-7.89,17.64-12.29,28.4-12.12,10.76-.17,21.08,4.24,28.4,12.12,1.4,1.71,1.15,4.23-.56,5.62-.71.58-1.6.9-2.53.9Z"/>
12
+ <path class="cls-1" d="m53.3,56.32c-1.24,0-2.41-.57-3.16-1.55-5.73-6.35-15.52-6.85-21.87-1.13-.4.36-.77.73-1.13,1.13-1.36,1.73-3.88,2.03-5.61.67-1.71-1.34-2.03-3.8-.73-5.54,8.39-9.85,23.18-11.04,33.03-2.65.95.81,1.84,1.69,2.65,2.65,1.34,1.75,1,4.26-.75,5.6-.7.53-1.55.82-2.43.82Z"/>
13
+ </g>
14
+ <path class="cls-2" d="m47.21,9.45l-4.06,41.36c-.64,5.42-8.39,5.39-9.01,0,0,0-4.06-41.36-4.06-41.36-.46-4.73,2.99-8.94,7.72-9.4,5.33-.58,9.97,4.09,9.4,9.4h0Z"/>
15
+ <circle class="cls-3" cx="38.64" cy="64.79" r="6.07"/>
16
+ </g>
17
+ </svg>`
18
+ }
19
+ };
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUuYXBpLmFzc2V0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9sb2NhbGl6ZS10b2tlbi9oZWxwZXJzL2xvY2FsaXplLmFwaS5hc3NldHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUc7SUFDL0IsT0FBTyxFQUFFO1FBQ0wsWUFBWSxFQUFFOzs7Ozs7Ozs7Ozs7OzttQkFjSDtLQUNkO0NBQ0osQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBMT0NBTElaRV9BUElfQVNTRVRTID0ge1xyXG4gICAgbmV0d29yazoge1xyXG4gICAgICAgIG5vQ29ubmVjdGlvbjogYDw/eG1sIHZlcnNpb249XCIxLjBcIiBlbmNvZGluZz1cIlVURi04XCI/PlxyXG4gICAgICAgICAgICA8c3ZnIGlkPVwibHplLW5vLWNvbm5lY3Rpb25cIiBkYXRhLW5hbWU9XCJMYXllciAyXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgNzcuMjkgNzAuOThcIj5cclxuICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICA8c3R5bGU+IC5jbHMtMSB7IGZpbGw6ICNmZmY7IH0gLmNscy0yLCAuY2xzLTMgeyBmaWxsOiAjZTMwNjEzOyB9IC5jbHMtMyB7IHN0cm9rZTogI2UzMDYxMzsgc3Ryb2tlLW1pdGVybGltaXQ6IDEwOyBzdHJva2Utd2lkdGg6IC4yNXB4OyB9IDwvc3R5bGU+XHJcbiAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgPGcgaWQ9XCJMYXllcl8zXCIgZGF0YS1uYW1lPVwiTGF5ZXIgM1wiPlxyXG4gICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz1cImNscy0xXCIgZD1cIm03My4yOSwzNWMtMS4yLDAtMi4zMy0uNTMtMy4wOS0xLjQ2LS40OC0uNTctMTEuMjMtMTMuMi0zMS41NS0xMy4ycy0zMS4xMSwxMi42Ni0zMS41NiwxMy4yYy0xLjQsMS43MS0zLjkyLDEuOTUtNS42My41NS0xLjcxLTEuNC0xLjk1LTMuOTItLjU1LTUuNjMuNTQtLjY2LDEzLjQ3LTE2LjEyLDM3Ljc0LTE2LjEyczM3LjIsMTUuNDYsMzcuNzQsMTYuMTJjMS40LDEuNzEsMS4xNSw0LjIzLS41Niw1LjYyLS43MS41OC0xLjYxLjktMi41My45WlwiLz5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPVwiY2xzLTFcIiBkPVwibTYzLjk2LDQ1LjY2Yy0xLjE5LDAtMi4zMi0uNTMtMy4wOC0xLjQ0LTUuNzktNi4wNS0xMy44Ni05LjM5LTIyLjI0LTkuMjEtOC4zOC0uMTgtMTYuNDUsMy4xNi0yMi4yNCw5LjIyLTEuNDYsMS42NS0zLjk5LDEuODEtNS42NC4zNS0xLjU3LTEuMzktMS44LTMuNzctLjUyLTUuNDMsNy4zMi03Ljg5LDE3LjY0LTEyLjI5LDI4LjQtMTIuMTIsMTAuNzYtLjE3LDIxLjA4LDQuMjQsMjguNCwxMi4xMiwxLjQsMS43MSwxLjE1LDQuMjMtLjU2LDUuNjItLjcxLjU4LTEuNi45LTIuNTMuOVpcIi8+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz1cImNscy0xXCIgZD1cIm01My4zLDU2LjMyYy0xLjI0LDAtMi40MS0uNTctMy4xNi0xLjU1LTUuNzMtNi4zNS0xNS41Mi02Ljg1LTIxLjg3LTEuMTMtLjQuMzYtLjc3LjczLTEuMTMsMS4xMy0xLjM2LDEuNzMtMy44OCwyLjAzLTUuNjEuNjctMS43MS0xLjM0LTIuMDMtMy44LS43My01LjU0LDguMzktOS44NSwyMy4xOC0xMS4wNCwzMy4wMy0yLjY1Ljk1LjgxLDEuODQsMS42OSwyLjY1LDIuNjUsMS4zNCwxLjc1LDEsNC4yNi0uNzUsNS42LS43LjUzLTEuNTUuODItMi40My44MlpcIi8+XHJcbiAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz1cImNscy0yXCIgZD1cIm00Ny4yMSw5LjQ1bC00LjA2LDQxLjM2Yy0uNjQsNS40Mi04LjM5LDUuMzktOS4wMSwwLDAsMC00LjA2LTQxLjM2LTQuMDYtNDEuMzYtLjQ2LTQuNzMsMi45OS04Ljk0LDcuNzItOS40LDUuMzMtLjU4LDkuOTcsNC4wOSw5LjQsOS40aDBaXCIvPlxyXG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNscy0zXCIgY3g9XCIzOC42NFwiIGN5PVwiNjQuNzlcIiByPVwiNi4wN1wiLz5cclxuICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICA8L3N2Zz5gXHJcbiAgICB9XHJcbn0iXX0=
@@ -2,6 +2,7 @@ import { __awaiter } from "tslib";
2
2
  import { HttpErrorResponse } from "@angular/common/http";
3
3
  import { takeUntil, catchError, throwError } from "rxjs";
4
4
  import { waitFor } from "../localize.token";
5
+ import { LOCALIZE_API_ASSETS } from "./localize.api.assets";
5
6
  class LocalizeApiHelper {
6
7
  constructor() {
7
8
  this.defaultRetryOptions = {
@@ -139,6 +140,7 @@ class LocalizeApiHelper {
139
140
  const body = document.body;
140
141
  const blcokerHtml = `
141
142
  <div class="lze-blocker">
143
+ ${LOCALIZE_API_ASSETS.network.noConnection}
142
144
  <div class="lze-blocker__message">
143
145
  ${message}
144
146
  <span class="lze-blocker__dotting">
@@ -149,7 +151,6 @@ class LocalizeApiHelper {
149
151
  </div>
150
152
  <div class="lze-blocker__error">${errorMessage}</div>
151
153
  <div class="lze-blocker__error_suggestion">${suggestinMessage}</div>
152
- <div class="lze-blocker__spinner"></div>
153
154
  </div>
154
155
  `;
155
156
  const style = `
@@ -173,17 +174,13 @@ class LocalizeApiHelper {
173
174
  overflow: hidden;
174
175
  user-select: none;
175
176
  }
176
-
177
- div.lze-blocker__spinner {
178
- border: 4px solid rgba(255, 255, 255, 0.1) !important;
179
- border-top: 4px solid #fff;
180
- border-radius: 50%;
181
- width: 50px;
182
- height: 50px;
183
- animation: spin 1s linear infinite;
184
- margin-top: 20px;
185
- }
186
177
 
178
+ svg#lze-no-connection {
179
+ width: 75px;
180
+ height: 75px;
181
+ margin-bottom: 20px;
182
+ }
183
+
187
184
  div.lze-blocker__message {
188
185
  color: #fff !important;
189
186
  font-size: 18px !important;
@@ -258,4 +255,4 @@ class LocalizeApiHelper {
258
255
  }
259
256
  }
260
257
  export const ApiHelper = new LocalizeApiHelper();
261
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jY2FsaXplLmFwaS5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbG9jYWxpemUtdG9rZW4vaGVscGVycy9sb2NjYWxpemUuYXBpLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFjLGlCQUFpQixFQUFlLE1BQU0sc0JBQXNCLENBQUM7QUFFbEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFXLE1BQU0sTUFBTSxDQUFDO0FBQ2xFLE9BQU8sRUFBaUIsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFnQjNELE1BQU0saUJBQWlCO0lBQXZCO1FBRWEsd0JBQW1CLEdBQTJCO1lBQ25ELGVBQWUsRUFBRTtnQkFDYixPQUFPLEVBQUUsd0NBQXdDO2dCQUNqRCxXQUFXLEVBQUUsSUFBSTtnQkFDakIsaUJBQWlCLEVBQUUsS0FBSzthQUMzQjtTQUNKLENBQUM7SUFtU04sQ0FBQztJQWpTUyxZQUFZLENBQVUsT0FBc0I7O1lBQzlDLElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQztZQUNqQixJQUFJLFNBQWMsQ0FBQztZQUNuQixJQUFJLFlBQVksR0FBRyxDQUFDLENBQUM7WUFFckIsb0RBQW9EO1lBQ3BELE9BQU8sbUNBQVEsSUFBSSxDQUFDLG1CQUFtQixHQUFLLE9BQU8sQ0FBRSxDQUFBO1lBRXJELElBQUksWUFBMEMsQ0FBQztZQUUvQyxPQUFPLFFBQVEsR0FBRyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUU7Z0JBQ3BDLElBQUk7b0JBQ0EsTUFBTSxNQUFNLEdBQUcsTUFBTSxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQ3hDLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUM7b0JBQ2pDLE9BQU8sTUFBTSxDQUFDO2lCQUVqQjtnQkFBQyxPQUFPLEtBQVUsRUFBRTtvQkFDakIsU0FBUyxHQUFHLEtBQUssQ0FBQztvQkFFbEIsSUFB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QUFDO0NBQ0o7QUFFRCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsSUFBSSxpQkFBaUIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEVycm9yUmVzcG9uc2UsIEh0dHBIZWFkZXJzIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7IElBcGlPcHRpb25zLCBJTG9jYWxpemVBcGlDb25maWdzLCBJTm9ybWFsaXplZEVycm9yLCBJT25Db25uZWN0aW9uRXJyb3IgfSBmcm9tIFwiLi9pbnRlcmZhY2VzXCI7XHJcbmltcG9ydCB7IHRha2VVbnRpbCwgY2F0Y2hFcnJvciwgdGhyb3dFcnJvciwgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IExvY2FsaXplVG9rZW4sIHdhaXRGb3IgfSBmcm9tIFwiLi4vbG9jYWxpemUudG9rZW5cIjtcclxuXHJcbmludGVyZmFjZSBJUmVxdWVzdEluc3RhbmNlIHtcclxuICAgIGNsaWVudDogSHR0cENsaWVudDtcclxuICAgIGRlc3Ryb3kkOiAoKSA9PiBTdWJqZWN0PHZvaWQ+O1xyXG59XHJcblxyXG5pbnRlcmZhY2UgSVJldHJ5T3B0aW9ucyB7XHJcbiAgICBtYXhSZXRyaWVzOiAoKSA9PiBudW1iZXI7XHJcbiAgICBkZWxheTogbnVtYmVyO1xyXG4gICAgY2FsbGJhY2s6ICgpID0+IFByb21pc2U8YW55PiB8IGFueTtcclxuICAgIHJldHJ5VW5sZXNzPzogKGVycm9yOiBhbnkpID0+IGJvb2xlYW47XHJcbiAgICBvbkVycm9yPzogKGVycm9yOiBhbnkpID0+IFByb21pc2U8dm9pZD4gfCBhbnk7XHJcbiAgICBjb25uZWN0aW9uRXJyb3I/OiBJT25Db25uZWN0aW9uRXJyb3JcclxufVxyXG5cclxuY2xhc3MgTG9jYWxpemVBcGlIZWxwZXIge1xyXG5cclxuICAgIHJlYWRvbmx5IGRlZmF1bHRSZXRyeU9wdGlvbnM6IFBhcnRpYWw8SVJldHJ5T3B0aW9ucz4gPSB7XHJcbiAgICAgICAgY29ubmVjdGlvbkVycm9yOiB7XHJcbiAgICAgICAgICAgIG1lc3NhZ2U6ICdDb25uZWN0aW9uIGVycm9yIG9jY3VycmVkLiBQbGVhc2Ugd2FpdCcsXHJcbiAgICAgICAgICAgIGJsb2NrU2NyZWVuOiB0cnVlLFxyXG4gICAgICAgICAgICBibG9ja1NjcmVlblpJbmRleDogMTAwMDBcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIGFzeW5jIHBlcmZvcm1SZXRyeTxUID0gYW55PihvcHRpb25zOiBJUmV0cnlPcHRpb25zKTogUHJvbWlzZTxUPiB7XHJcbiAgICAgICAgbGV0IGF0dGVtcHRzID0gMDtcclxuICAgICAgICBsZXQgbGFzdEVycm9yOiBhbnk7XHJcbiAgICAgICAgbGV0IGNvbnNvbGVDb3VudCA9IDA7XHJcblxyXG4gICAgICAgIC8vIE1lcmdlIGRlZmF1bHQgcmV0cnkgb3B0aW9ucyB3aXRoIHByb3ZpZGVkIG9wdGlvbnNcclxuICAgICAgICBvcHRpb25zID0geyAuLi50aGlzLmRlZmF1bHRSZXRyeU9wdGlvbnMsIC4uLm9wdGlvbnMgfVxyXG5cclxuICAgICAgICBsZXQgc3R5bGVFbGVtZW50OiBIVE1MU3R5bGVFbGVtZW50IHwgdW5kZWZpbmVkO1xyXG5cclxuICAgICAgICB3aGlsZSAoYXR0ZW1wdHMgPCBvcHRpb25zLm1heFJldHJpZXMoKSkge1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgb3B0aW9ucy5jYWxsYmFjaygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVCbG9ja2VyKHN0eWxlRWxlbWVudCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG5cclxuICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xyXG4gICAgICAgICAgICAgICAgbGFzdEVycm9yID0gZXJyb3I7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGNvbnNvbGVDb3VudCA+PSA3KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5jbGVhcigpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGVDb3VudCA9IDA7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMucmV0cnlVbmxlc3MgJiYgIW9wdGlvbnMucmV0cnlVbmxlc3MoZXJyb3IpKVxyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycm9yOyAvLyBJZiB0aGUgZXJyb3Igc2hvdWxkIG5vdCBiZSByZXRyaWVkLCByZXRocm93IGl0XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gSGFuZGxlIGNvbm5lY3Rpb24gZXJyb3JcclxuICAgICAgICAgICAgICAgIHN0eWxlRWxlbWVudCA9IGF3YWl0IHRoaXMub25Db25uZWN0aW9uRXJyb3Iob3B0aW9ucywgZXJyb3IpO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLm9uRXJyb3IpXHJcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5pbnZva2VIb29rKG9wdGlvbnMub25FcnJvci5iaW5kKHRoaXMsIGVycm9yKSk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGF0dGVtcHRzID49IG9wdGlvbnMubWF4UmV0cmllcygpIC0gMSlcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuXHJcbiAgICAgICAgICAgICAgICBhdHRlbXB0cysrO1xyXG4gICAgICAgICAgICAgICAgY29uc29sZUNvdW50Kys7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYEF0dGVtcHQgJHthdHRlbXB0c30gZmFpbGVkLiBSZXRyeWluZy4uLmAsIGVycm9yKTtcclxuICAgICAgICAgICAgICAgIGF3YWl0IHdhaXRGb3Iob3B0aW9ucy5kZWxheSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnNvbGUud2FybihgRmFpbGVkIGFmdGVyICR7b3B0aW9ucy5tYXhSZXRyaWVzfSBhdHRlbXB0c2ApO1xyXG4gICAgICAgIHRocm93IGxhc3RFcnJvcjtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBwZXJmb3JtUmVxdWVzdFdpdGhSZXRyeTxUID0gYW55PihcclxuICAgICAgICBvcHRpb25zOiBJQXBpT3B0aW9ucyxcclxuICAgICAgICBjb25maWc6IElMb2NhbGl6ZUFwaUNvbmZpZ3MsXHJcbiAgICAgICAgcGVyZm9ybVJlcXVlc3Q6IDxUID0gYW55PihvcHRpb25zOiBJQXBpT3B0aW9ucykgPT4gUHJvbWlzZTxUPlxyXG4gICAgKTogUHJvbWlzZTxUPiB7XHJcblxyXG4gICAgICAgIGNvbnN0IHJldHJ5VW5sZXNzID0gY29uZmlnLnJldHJ5T3B0aW9ucz8ucmV0cnlGdW5jdGlvblxyXG4gICAgICAgICAgICB8fCB0aGlzLmlzQ29ubmVjdGlvbkVycm9yO1xyXG5cclxuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5wZXJmb3JtUmV0cnkoe1xyXG4gICAgICAgICAgICBjb25uZWN0aW9uRXJyb3I6IGNvbmZpZy5yZXRyeU9wdGlvbnM/Lm9uQ29ubmVjdGlvbkVycm9yLFxyXG4gICAgICAgICAgICBtYXhSZXRyaWVzOiAoKSA9PiBjb25maWcucmV0cnlPcHRpb25zPy5tYXhSZXRyaWVzID8/IDEwMDAsXHJcbiAgICAgICAgICAgIGRlbGF5OiBjb25maWcucmV0cnlPcHRpb25zPy5kZWxheSA/PyA1MDAsXHJcbiAgICAgICAgICAgIGNhbGxiYWNrOiAoKSA9PiBwZXJmb3JtUmVxdWVzdDxUPihvcHRpb25zKSxcclxuICAgICAgICAgICAgcmV0cnlVbmxlc3M6IHJldHJ5VW5sZXNzLFxyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gICAgYnVpbGRVcmwoYmFzZVVybDogc3RyaW5nLCBwYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRVcmwgPSBgJHtiYXNlVXJsLnRyaW0oKS5yZXBsYWNlKC9cXC8/JC8sICcvJyl9JHtwYXRoLnRyaW0oKS5yZXBsYWNlKC9eXFwvLywgJycpfWA7XHJcbiAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZWRVcmwuZW5kc1dpdGgoJy8nKVxyXG4gICAgICAgICAgICA/IG5vcm1hbGl6ZWRVcmwuc2xpY2UoMCwgLTEpXHJcbiAgICAgICAgICAgIDogbm9ybWFsaXplZFVybDtcclxuICAgIH1cclxuXHJcbiAgICBub3JtYWxpemVFcnJvcihlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpOiBJTm9ybWFsaXplZEVycm9yIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBjb2RlOiBlcnJvci5lcnJvcj8uY29kZSB8fCBgSFRUUF8ke2Vycm9yLnN0YXR1c31gLFxyXG4gICAgICAgICAgICBtZXNzYWdlOiBlcnJvci5lcnJvcj8ubWVzc2FnZSB8fCBlcnJvci5tZXNzYWdlLFxyXG4gICAgICAgICAgICBkZXRhaWxzOiBlcnJvci5lcnJvcj8uZGV0YWlscyxcclxuICAgICAgICAgICAgc3RhdHVzOiBlcnJvci5zdGF0dXNcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGludm9rZUhvb2soY2FsbGJhY2s/OiAoKSA9PiBQcm9taXNlPGFueT4gfCBhbnkpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgICAgIGlmICghY2FsbGJhY2spIHJldHVybjtcclxuXHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gY2FsbGJhY2soKTtcclxuICAgICAgICBpZiAocmVzdWx0IGluc3RhbmNlb2YgUHJvbWlzZSkge1xyXG4gICAgICAgICAgICBhd2FpdCByZXN1bHQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNyZWF0ZVJlcXVlc3Q8VCA9IGFueT4oXHJcbiAgICAgICAgaW5zdGFuY2U6IFJlcXVpcmVkPElSZXF1ZXN0SW5zdGFuY2U+LFxyXG4gICAgICAgIG1ldGhvZDogc3RyaW5nLFxyXG4gICAgICAgIHVybDogc3RyaW5nLFxyXG4gICAgICAgIGJvZHk6IGFueSxcclxuICAgICAgICBvcHRpb25zOiB7IGhlYWRlcnM6IEh0dHBIZWFkZXJzIH1cclxuICAgICkge1xyXG4gICAgICAgIGNvbnN0IHJlcXVlc3QkID0gaW5zdGFuY2UuY2xpZW50LnJlcXVlc3Q8VD4obWV0aG9kLCB1cmwsIHtcclxuICAgICAgICAgICAgLi4ub3B0aW9ucyxcclxuICAgICAgICAgICAgYm9keSxcclxuICAgICAgICAgICAgb2JzZXJ2ZTogJ3Jlc3BvbnNlJyxcclxuICAgICAgICB9KS5waXBlKFxyXG4gICAgICAgICAgICB0YWtlVW50aWwoaW5zdGFuY2UuZGVzdHJveSQoKSksXHJcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy8gQ29udmVydCB0byBhIG5vbi1vYnNlcnZhYmxlIGVycm9yIHRvIGhhbmRsZSBpbiB0aGUgcHJvbWlzZVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gdGhpcy5ub3JtYWxpemVFcnJvcihlcnJvcikpO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHJldHVybiByZXF1ZXN0JDtcclxuICAgIH1cclxuXHJcbiAgICBkZWZhdWx0UmV0cnlGdW5jdGlvbihlcnJvcjogSU5vcm1hbGl6ZWRFcnJvcik6IGJvb2xlYW4ge1xyXG5cclxuICAgICAgICAvLyBEb24ndCByZXRyeSBmb3Igb3RoZXIgZXJyb3JzIChsaWtlIDQwMCwgNDAxLCA0MDMsIGV0Yy4pXHJcbiAgICAgICAgaWYgKCF0aGlzLmlzQ29ubmVjdGlvbkVycm9yKGVycm9yKSlcclxuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XHJcblxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGlzQ29ubmVjdGlvbkVycm9yKGVycm9yOiBJTm9ybWFsaXplZEVycm9yKTogYm9vbGVhbiB7XHJcbiAgICAgICAgY29uc3QgaXNOZXR3b3JrRXJyb3IgPSBlcnJvci5zdGF0dXMgPT09IDA7XHJcbiAgICAgICAgY29uc3QgaXNTZXJ2ZXJFcnJvciA9IGVycm9yLnN0YXR1cyA+PSAxMDAwICYmIGVycm9yLnN0YXR1cyA8IDYwMDtcclxuICAgICAgICByZXR1cm4gaXNOZXR3b3JrRXJyb3IgfHwgaXNTZXJ2ZXJFcnJvcjtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBvbkNvbm5lY3Rpb25FcnJvcihcclxuICAgICAgICBvcHRpb25zOiBJUmV0cnlPcHRpb25zLFxyXG4gICAgICAgIGVycm9yOiBhbnlcclxuICAgICk6IFByb21pc2U8UHJvbWlzZTx2b2lkPiB8IGFueT4ge1xyXG5cclxuICAgICAgICBpZiAoIW9wdGlvbnMuY29ubmVjdGlvbkVycm9yKVxyXG4gICAgICAgICAgICByZXR1cm47XHJcblxyXG4gICAgICAgIGxldCBzdHlsZUVsZW1lbnQ6IEhUTUxTdHlsZUVsZW1lbnQgfCB1bmRlZmluZWQ7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNDb25uZWN0aW9uRXJyb3IoZXJyb3IpKSB7XHJcblxyXG4gICAgICAgICAgICBzdHlsZUVsZW1lbnQgPSB0aGlzLnNjcmVlbkJsb2NrZXIob3B0aW9ucywgZXJyb3IsIHRydWUpO1xyXG5cclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5pbnZva2VIb29rKG9wdGlvbnMuY29ubmVjdGlvbkVycm9yLmNhbGxiYWNrPy5iaW5kKHRoaXMsIGVycm9yKSk7XHJcbiAgICAgICAgICAgIHJldHVybiBzdHlsZUVsZW1lbnQ7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zY3JlZW5CbG9ja2VyKG9wdGlvbnMsIGVycm9yLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIHN0eWxlRWxlbWVudD8ucmVtb3ZlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNjcmVlbkJsb2NrZXIob3B0b25zOiBJUmV0cnlPcHRpb25zLFxyXG4gICAgICAgIGVycm9yPzogYW55LFxyXG4gICAgICAgIGFkZDogYm9vbGVhbiA9IHRydWUpOiBIVE1MU3R5bGVFbGVtZW50IHwgdW5kZWZpbmVkIHtcclxuXHJcbiAgICAgICAgaWYgKCFvcHRvbnMuY29ubmVjdGlvbkVycm9yPy5ibG9ja1NjcmVlbilcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSlcclxuICAgICAgICAgICAgZXJyb3IgPSB0aGlzLm5vcm1hbGl6ZUVycm9yKGVycm9yKTtcclxuXHJcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IG9wdG9ucy5jb25uZWN0aW9uRXJyb3I/Lm1lc3NhZ2VcclxuICAgICAgICAgICAgfHwgJ0Nvbm5lY3Rpb24gZXJyb3Igb2NjdXJyZWQuIFBsZWFzZSB3YWl0JztcclxuICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBlcnJvcj8ubWVzc2FnZSB8fCAnQW4gZXJyb3Igb2NjdXJyZWQnO1xyXG4gICAgICAgIGNvbnN0IHN1Z2dlc3Rpbk1lc3NhZ2UgPSBvcHRvbnMuY29ubmVjdGlvbkVycm9yPy5zdWdnZXN0aW9uTWVzc2FnZVxyXG4gICAgICAgICAgICB8fCAnUGxlYXNlIGNoZWNrIHlvdXIgaW50ZXJuZXQgY29ubmVjdGlvbiBvciB0aGUgc2VydmVyIHN0YXR1cy4nO1xyXG5cclxuICAgICAgICBjb25zdCB6SW5kZXggPSBvcHRvbnMuY29ubmVjdGlvbkVycm9yPy5ibG9ja1NjcmVlblpJbmRleCB8fCAxMDAwMDtcclxuXHJcbiAgICAgICAgY29uc3QgYm9keSA9IGRvY3VtZW50LmJvZHk7XHJcbiAgICAgICAgY29uc3QgYmxjb2tlckh0bWwgPSBgXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImx6ZS1ibG9ja2VyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsemUtYmxvY2tlcl9fbWVzc2FnZVwiPlxyXG4gICAgICAgICAgICAgICAgJHttZXNzYWdlfVxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsemUtYmxvY2tlcl9fZG90dGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibHplLWJsb2NrZXJfX2RvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImx6ZS1ibG9ja2VyX19kb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsemUtYmxvY2tlcl9fZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImx6ZS1ibG9ja2VyX19lcnJvclwiPiR7ZXJyb3JNZXNzYWdlfTwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibHplLWJsb2NrZXJfX2Vycm9yX3N1Z2dlc3Rpb25cIj4ke3N1Z2dlc3Rpbk1lc3NhZ2V9PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsemUtYmxvY2tlcl9fc3Bpbm5lclwiPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIGA7XHJcbiAgICAgICAgY29uc3Qgc3R5bGUgPSBgXHJcbiAgICAgICAgZGl2Lmx6ZS1ibG9ja2VyIHtcclxuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC44NSkgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgei1pbmRleDogJHt6SW5kZXh9O1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmO1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDIwcHg7XHJcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICBkaXYubHplLWJsb2NrZXJfX3NwaW5uZXIge1xyXG4gICAgICAgICAgICBib3JkZXI6IDRweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgYm9yZGVyLXRvcDogNHB4IHNvbGlkICNmZmY7XHJcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgICAgICAgICAgd2lkdGg6IDUwcHg7XHJcbiAgICAgICAgICAgIGhlaWdodDogNTBweDtcclxuICAgICAgICAgICAgYW5pbWF0aW9uOiBzcGluIDFzIGxpbmVhciBpbmZpbml0ZTtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGRpdi5semUtYmxvY2tlcl9fbWVzc2FnZSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gICAgICAgIH1cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgLmx6ZS1ibG9ja2VyX19kb3R0aW5nIHtcclxuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBzcGFuLmx6ZS1ibG9ja2VyX19kb3Qge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICAgIHdpZHRoOiA3cHg7XHJcbiAgICAgICAgICAgIGhlaWdodDogN3B4O1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDNweDtcclxuICAgICAgICAgICAgb3BhY2l0eTogMC4zO1xyXG4gICAgICAgICAgICBhbmltYXRpb246IGRvdHRpbmcgMXMgaW5maW5pdGU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5semUtYmxvY2tlcl9fZG90Om50aC1jaGlsZCgxKSB7XHJcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogMHM7XHJcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5semUtYmxvY2tlcl9fZG90Om50aC1jaGlsZCgyKSB7XHJcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogMC4ycztcclxuICAgICAgICB9XHJcbiAgICAgICAgLmx6ZS1ibG9ja2VyX19kb3Q6bnRoLWNoaWxkKDMpIHtcclxuICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAwLjRzO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQGtleWZyYW1lcyBkb3R0aW5nIHtcclxuICAgICAgICAgICAgMCUsIDgwJSwgMTAwJSB7IG9wYWNpdHk6IDAuMzsgfVxyXG4gICAgICAgICAgICA0MCUgeyBvcGFjaXR5OiAxOyB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBkaXYubHplLWJsb2NrZXJfX2Vycm9yIHtcclxuICAgICAgICAgICAgY29sb3I6ICNmMDA7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAwIDFweCAjZmY1ZjVmICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBkaXYubHplLWJsb2NrZXJfX2Vycm9yX3N1Z2dlc3Rpb24ge1xyXG4gICAgICAgICAgICBjb2xvcjogI2NjYyAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgQGtleWZyYW1lcyBzcGluIHtcclxuICAgICAgICAgICAgMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfVxyXG4gICAgICAgICAgICAxMDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBgO1xyXG5cclxuICAgICAgICBjb25zdCBzdHlsZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xyXG5cclxuICAgICAgICBpZiAoYWRkKSB7XHJcbiAgICAgICAgICAgIGlmICghZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmx6ZS1ibG9ja2VyJykpIHtcclxuICAgICAgICAgICAgICAgIHN0eWxlRWxlbWVudC5pbm5lckhUTUwgPSBzdHlsZTtcclxuICAgICAgICAgICAgICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc3R5bGVFbGVtZW50KTtcclxuICAgICAgICAgICAgICAgIGJvZHkuaW5zZXJ0QWRqYWNlbnRIVE1MKCdiZWZvcmVlbmQnLCBibGNva2VySHRtbCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnJlbW92ZUJsb2NrZXIoc3R5bGVFbGVtZW50KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBzdHlsZUVsZW1lbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSByZW1vdmVCbG9ja2VyKHN0eWxlRWxlbWVudDogSFRNTFN0eWxlRWxlbWVudCB8IHVuZGVmaW5lZCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGJsb2NrZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcubHplLWJsb2NrZXInKTtcclxuICAgICAgICBibG9ja2VyPy5yZW1vdmUoKTtcclxuICAgICAgICBzdHlsZUVsZW1lbnQ/LnJlbW92ZSgpO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgQXBpSGVscGVyID0gbmV3IExvY2FsaXplQXBpSGVscGVyKCk7Il19
258
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jY2FsaXplLmFwaS5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbG9jYWxpemUtdG9rZW4vaGVscGVycy9sb2NjYWxpemUuYXBpLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFjLGlCQUFpQixFQUFlLE1BQU0sc0JBQXNCLENBQUM7QUFFbEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFXLE1BQU0sTUFBTSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQWdCNUQsTUFBTSxpQkFBaUI7SUFBdkI7UUFFYSx3QkFBbUIsR0FBMkI7WUFDbkQsZUFBZSxFQUFFO2dCQUNiLE9BQU8sRUFBRSx3Q0FBd0M7Z0JBQ2pELFdBQVcsRUFBRSxJQUFJO2dCQUNqQixpQkFBaUIsRUFBRSxLQUFLO2FBQzNCO1NBQ0osQ0FBQztJQStSTixDQUFDO0lBN1JTLFlBQVksQ0FBVSxPQUFzQjs7WUFDOUMsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO1lBQ2pCLElBQUksU0FBYyxDQUFDO1lBQ25CLElBQUksWUFBWSxHQUFHLENBQUMsQ0FBQztZQUVyQixvREFBb0Q7WUFDcEQsT0FBTyxtQ0FBUSxJQUFJLENBQUMsbUJBQW1CLEdBQUssT0FBTyxDQUFFLENBQUE7WUFFckQsSUFBSSxZQUEwQyxDQUFDO1lBRS9DLE9BQU8sUUFBUSxHQUFHLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRTtnQkFDcEMsSUFBSTtvQkFDQSxNQUFNLE1BQU0sR0FBRyxNQUFNLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDeEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQztvQkFDakMsT0FBTyxNQUFNLENBQUM7aUJBRWpCO2dCQUFDLE9BQU8sS0FB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QU0sRUFBRSxDQUFDO1FBQ2xCLFlBQVksYUFBWixZQUFZLHVCQUFaLFlBQVksQ0FBRSxNQUFNLEVBQUUsQ0FBQztJQUMzQixDQUFDO0NBQ0o7QUFFRCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsSUFBSSxpQkFBaUIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEVycm9yUmVzcG9uc2UsIEh0dHBIZWFkZXJzIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7IElBcGlPcHRpb25zLCBJTG9jYWxpemVBcGlDb25maWdzLCBJTm9ybWFsaXplZEVycm9yLCBJT25Db25uZWN0aW9uRXJyb3IgfSBmcm9tIFwiLi9pbnRlcmZhY2VzXCI7XHJcbmltcG9ydCB7IHRha2VVbnRpbCwgY2F0Y2hFcnJvciwgdGhyb3dFcnJvciwgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IHdhaXRGb3IgfSBmcm9tIFwiLi4vbG9jYWxpemUudG9rZW5cIjtcclxuaW1wb3J0IHsgTE9DQUxJWkVfQVBJX0FTU0VUUyB9IGZyb20gXCIuL2xvY2FsaXplLmFwaS5hc3NldHNcIjtcclxuXHJcbmludGVyZmFjZSBJUmVxdWVzdEluc3RhbmNlIHtcclxuICAgIGNsaWVudDogSHR0cENsaWVudDtcclxuICAgIGRlc3Ryb3kkOiAoKSA9PiBTdWJqZWN0PHZvaWQ+O1xyXG59XHJcblxyXG5pbnRlcmZhY2UgSVJldHJ5T3B0aW9ucyB7XHJcbiAgICBtYXhSZXRyaWVzOiAoKSA9PiBudW1iZXI7XHJcbiAgICBkZWxheTogbnVtYmVyO1xyXG4gICAgY2FsbGJhY2s6ICgpID0+IFByb21pc2U8YW55PiB8IGFueTtcclxuICAgIHJldHJ5VW5sZXNzPzogKGVycm9yOiBhbnkpID0+IGJvb2xlYW47XHJcbiAgICBvbkVycm9yPzogKGVycm9yOiBhbnkpID0+IFByb21pc2U8dm9pZD4gfCBhbnk7XHJcbiAgICBjb25uZWN0aW9uRXJyb3I/OiBJT25Db25uZWN0aW9uRXJyb3JcclxufVxyXG5cclxuY2xhc3MgTG9jYWxpemVBcGlIZWxwZXIge1xyXG5cclxuICAgIHJlYWRvbmx5IGRlZmF1bHRSZXRyeU9wdGlvbnM6IFBhcnRpYWw8SVJldHJ5T3B0aW9ucz4gPSB7XHJcbiAgICAgICAgY29ubmVjdGlvbkVycm9yOiB7XHJcbiAgICAgICAgICAgIG1lc3NhZ2U6ICdDb25uZWN0aW9uIGVycm9yIG9jY3VycmVkLiBQbGVhc2Ugd2FpdCcsXHJcbiAgICAgICAgICAgIGJsb2NrU2NyZWVuOiB0cnVlLFxyXG4gICAgICAgICAgICBibG9ja1NjcmVlblpJbmRleDogMTAwMDBcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIGFzeW5jIHBlcmZvcm1SZXRyeTxUID0gYW55PihvcHRpb25zOiBJUmV0cnlPcHRpb25zKTogUHJvbWlzZTxUPiB7XHJcbiAgICAgICAgbGV0IGF0dGVtcHRzID0gMDtcclxuICAgICAgICBsZXQgbGFzdEVycm9yOiBhbnk7XHJcbiAgICAgICAgbGV0IGNvbnNvbGVDb3VudCA9IDA7XHJcblxyXG4gICAgICAgIC8vIE1lcmdlIGRlZmF1bHQgcmV0cnkgb3B0aW9ucyB3aXRoIHByb3ZpZGVkIG9wdGlvbnNcclxuICAgICAgICBvcHRpb25zID0geyAuLi50aGlzLmRlZmF1bHRSZXRyeU9wdGlvbnMsIC4uLm9wdGlvbnMgfVxyXG5cclxuICAgICAgICBsZXQgc3R5bGVFbGVtZW50OiBIVE1MU3R5bGVFbGVtZW50IHwgdW5kZWZpbmVkO1xyXG5cclxuICAgICAgICB3aGlsZSAoYXR0ZW1wdHMgPCBvcHRpb25zLm1heFJldHJpZXMoKSkge1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgb3B0aW9ucy5jYWxsYmFjaygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVCbG9ja2VyKHN0eWxlRWxlbWVudCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG5cclxuICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xyXG4gICAgICAgICAgICAgICAgbGFzdEVycm9yID0gZXJyb3I7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGNvbnNvbGVDb3VudCA+PSA3KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5jbGVhcigpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGVDb3VudCA9IDA7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMucmV0cnlVbmxlc3MgJiYgIW9wdGlvbnMucmV0cnlVbmxlc3MoZXJyb3IpKVxyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycm9yOyAvLyBJZiB0aGUgZXJyb3Igc2hvdWxkIG5vdCBiZSByZXRyaWVkLCByZXRocm93IGl0XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gSGFuZGxlIGNvbm5lY3Rpb24gZXJyb3JcclxuICAgICAgICAgICAgICAgIHN0eWxlRWxlbWVudCA9IGF3YWl0IHRoaXMub25Db25uZWN0aW9uRXJyb3Iob3B0aW9ucywgZXJyb3IpO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLm9uRXJyb3IpXHJcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5pbnZva2VIb29rKG9wdGlvbnMub25FcnJvci5iaW5kKHRoaXMsIGVycm9yKSk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGF0dGVtcHRzID49IG9wdGlvbnMubWF4UmV0cmllcygpIC0gMSlcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuXHJcbiAgICAgICAgICAgICAgICBhdHRlbXB0cysrO1xyXG4gICAgICAgICAgICAgICAgY29uc29sZUNvdW50Kys7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYEF0dGVtcHQgJHthdHRlbXB0c30gZmFpbGVkLiBSZXRyeWluZy4uLmAsIGVycm9yKTtcclxuICAgICAgICAgICAgICAgIGF3YWl0IHdhaXRGb3Iob3B0aW9ucy5kZWxheSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnNvbGUud2FybihgRmFpbGVkIGFmdGVyICR7b3B0aW9ucy5tYXhSZXRyaWVzfSBhdHRlbXB0c2ApO1xyXG4gICAgICAgIHRocm93IGxhc3RFcnJvcjtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBwZXJmb3JtUmVxdWVzdFdpdGhSZXRyeTxUID0gYW55PihcclxuICAgICAgICBvcHRpb25zOiBJQXBpT3B0aW9ucyxcclxuICAgICAgICBjb25maWc6IElMb2NhbGl6ZUFwaUNvbmZpZ3MsXHJcbiAgICAgICAgcGVyZm9ybVJlcXVlc3Q6IDxUID0gYW55PihvcHRpb25zOiBJQXBpT3B0aW9ucykgPT4gUHJvbWlzZTxUPlxyXG4gICAgKTogUHJvbWlzZTxUPiB7XHJcblxyXG4gICAgICAgIGNvbnN0IHJldHJ5VW5sZXNzID0gY29uZmlnLnJldHJ5T3B0aW9ucz8ucmV0cnlGdW5jdGlvblxyXG4gICAgICAgICAgICB8fCB0aGlzLmlzQ29ubmVjdGlvbkVycm9yO1xyXG5cclxuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5wZXJmb3JtUmV0cnkoe1xyXG4gICAgICAgICAgICBjb25uZWN0aW9uRXJyb3I6IGNvbmZpZy5yZXRyeU9wdGlvbnM/Lm9uQ29ubmVjdGlvbkVycm9yLFxyXG4gICAgICAgICAgICBtYXhSZXRyaWVzOiAoKSA9PiBjb25maWcucmV0cnlPcHRpb25zPy5tYXhSZXRyaWVzID8/IDEwMDAsXHJcbiAgICAgICAgICAgIGRlbGF5OiBjb25maWcucmV0cnlPcHRpb25zPy5kZWxheSA/PyA1MDAsXHJcbiAgICAgICAgICAgIGNhbGxiYWNrOiAoKSA9PiBwZXJmb3JtUmVxdWVzdDxUPihvcHRpb25zKSxcclxuICAgICAgICAgICAgcmV0cnlVbmxlc3M6IHJldHJ5VW5sZXNzLFxyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gICAgYnVpbGRVcmwoYmFzZVVybDogc3RyaW5nLCBwYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRVcmwgPSBgJHtiYXNlVXJsLnRyaW0oKS5yZXBsYWNlKC9cXC8/JC8sICcvJyl9JHtwYXRoLnRyaW0oKS5yZXBsYWNlKC9eXFwvLywgJycpfWA7XHJcbiAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZWRVcmwuZW5kc1dpdGgoJy8nKVxyXG4gICAgICAgICAgICA/IG5vcm1hbGl6ZWRVcmwuc2xpY2UoMCwgLTEpXHJcbiAgICAgICAgICAgIDogbm9ybWFsaXplZFVybDtcclxuICAgIH1cclxuXHJcbiAgICBub3JtYWxpemVFcnJvcihlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpOiBJTm9ybWFsaXplZEVycm9yIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBjb2RlOiBlcnJvci5lcnJvcj8uY29kZSB8fCBgSFRUUF8ke2Vycm9yLnN0YXR1c31gLFxyXG4gICAgICAgICAgICBtZXNzYWdlOiBlcnJvci5lcnJvcj8ubWVzc2FnZSB8fCBlcnJvci5tZXNzYWdlLFxyXG4gICAgICAgICAgICBkZXRhaWxzOiBlcnJvci5lcnJvcj8uZGV0YWlscyxcclxuICAgICAgICAgICAgc3RhdHVzOiBlcnJvci5zdGF0dXNcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGludm9rZUhvb2soY2FsbGJhY2s/OiAoKSA9PiBQcm9taXNlPGFueT4gfCBhbnkpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgICAgIGlmICghY2FsbGJhY2spIHJldHVybjtcclxuXHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gY2FsbGJhY2soKTtcclxuICAgICAgICBpZiAocmVzdWx0IGluc3RhbmNlb2YgUHJvbWlzZSkge1xyXG4gICAgICAgICAgICBhd2FpdCByZXN1bHQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNyZWF0ZVJlcXVlc3Q8VCA9IGFueT4oXHJcbiAgICAgICAgaW5zdGFuY2U6IFJlcXVpcmVkPElSZXF1ZXN0SW5zdGFuY2U+LFxyXG4gICAgICAgIG1ldGhvZDogc3RyaW5nLFxyXG4gICAgICAgIHVybDogc3RyaW5nLFxyXG4gICAgICAgIGJvZHk6IGFueSxcclxuICAgICAgICBvcHRpb25zOiB7IGhlYWRlcnM6IEh0dHBIZWFkZXJzIH1cclxuICAgICkge1xyXG4gICAgICAgIGNvbnN0IHJlcXVlc3QkID0gaW5zdGFuY2UuY2xpZW50LnJlcXVlc3Q8VD4obWV0aG9kLCB1cmwsIHtcclxuICAgICAgICAgICAgLi4ub3B0aW9ucyxcclxuICAgICAgICAgICAgYm9keSxcclxuICAgICAgICAgICAgb2JzZXJ2ZTogJ3Jlc3BvbnNlJyxcclxuICAgICAgICB9KS5waXBlKFxyXG4gICAgICAgICAgICB0YWtlVW50aWwoaW5zdGFuY2UuZGVzdHJveSQoKSksXHJcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy8gQ29udmVydCB0byBhIG5vbi1vYnNlcnZhYmxlIGVycm9yIHRvIGhhbmRsZSBpbiB0aGUgcHJvbWlzZVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gdGhpcy5ub3JtYWxpemVFcnJvcihlcnJvcikpO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHJldHVybiByZXF1ZXN0JDtcclxuICAgIH1cclxuXHJcbiAgICBkZWZhdWx0UmV0cnlGdW5jdGlvbihlcnJvcjogSU5vcm1hbGl6ZWRFcnJvcik6IGJvb2xlYW4ge1xyXG5cclxuICAgICAgICAvLyBEb24ndCByZXRyeSBmb3Igb3RoZXIgZXJyb3JzIChsaWtlIDQwMCwgNDAxLCA0MDMsIGV0Yy4pXHJcbiAgICAgICAgaWYgKCF0aGlzLmlzQ29ubmVjdGlvbkVycm9yKGVycm9yKSlcclxuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XHJcblxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGlzQ29ubmVjdGlvbkVycm9yKGVycm9yOiBJTm9ybWFsaXplZEVycm9yKTogYm9vbGVhbiB7XHJcbiAgICAgICAgY29uc3QgaXNOZXR3b3JrRXJyb3IgPSBlcnJvci5zdGF0dXMgPT09IDA7XHJcbiAgICAgICAgY29uc3QgaXNTZXJ2ZXJFcnJvciA9IGVycm9yLnN0YXR1cyA+PSAxMDAwICYmIGVycm9yLnN0YXR1cyA8IDYwMDtcclxuICAgICAgICByZXR1cm4gaXNOZXR3b3JrRXJyb3IgfHwgaXNTZXJ2ZXJFcnJvcjtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBvbkNvbm5lY3Rpb25FcnJvcihcclxuICAgICAgICBvcHRpb25zOiBJUmV0cnlPcHRpb25zLFxyXG4gICAgICAgIGVycm9yOiBhbnlcclxuICAgICk6IFByb21pc2U8UHJvbWlzZTx2b2lkPiB8IGFueT4ge1xyXG5cclxuICAgICAgICBpZiAoIW9wdGlvbnMuY29ubmVjdGlvbkVycm9yKVxyXG4gICAgICAgICAgICByZXR1cm47XHJcblxyXG4gICAgICAgIGxldCBzdHlsZUVsZW1lbnQ6IEhUTUxTdHlsZUVsZW1lbnQgfCB1bmRlZmluZWQ7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNDb25uZWN0aW9uRXJyb3IoZXJyb3IpKSB7XHJcblxyXG4gICAgICAgICAgICBzdHlsZUVsZW1lbnQgPSB0aGlzLnNjcmVlbkJsb2NrZXIob3B0aW9ucywgZXJyb3IsIHRydWUpO1xyXG5cclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5pbnZva2VIb29rKG9wdGlvbnMuY29ubmVjdGlvbkVycm9yLmNhbGxiYWNrPy5iaW5kKHRoaXMsIGVycm9yKSk7XHJcbiAgICAgICAgICAgIHJldHVybiBzdHlsZUVsZW1lbnQ7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zY3JlZW5CbG9ja2VyKG9wdGlvbnMsIGVycm9yLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIHN0eWxlRWxlbWVudD8ucmVtb3ZlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNjcmVlbkJsb2NrZXIob3B0b25zOiBJUmV0cnlPcHRpb25zLFxyXG4gICAgICAgIGVycm9yPzogYW55LFxyXG4gICAgICAgIGFkZDogYm9vbGVhbiA9IHRydWUpOiBIVE1MU3R5bGVFbGVtZW50IHwgdW5kZWZpbmVkIHtcclxuXHJcbiAgICAgICAgaWYgKCFvcHRvbnMuY29ubmVjdGlvbkVycm9yPy5ibG9ja1NjcmVlbilcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSlcclxuICAgICAgICAgICAgZXJyb3IgPSB0aGlzLm5vcm1hbGl6ZUVycm9yKGVycm9yKTtcclxuXHJcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IG9wdG9ucy5jb25uZWN0aW9uRXJyb3I/Lm1lc3NhZ2VcclxuICAgICAgICAgICAgfHwgJ0Nvbm5lY3Rpb24gZXJyb3Igb2NjdXJyZWQuIFBsZWFzZSB3YWl0JztcclxuICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBlcnJvcj8ubWVzc2FnZSB8fCAnQW4gZXJyb3Igb2NjdXJyZWQnO1xyXG4gICAgICAgIGNvbnN0IHN1Z2dlc3Rpbk1lc3NhZ2UgPSBvcHRvbnMuY29ubmVjdGlvbkVycm9yPy5zdWdnZXN0aW9uTWVzc2FnZVxyXG4gICAgICAgICAgICB8fCAnUGxlYXNlIGNoZWNrIHlvdXIgaW50ZXJuZXQgY29ubmVjdGlvbiBvciB0aGUgc2VydmVyIHN0YXR1cy4nO1xyXG5cclxuICAgICAgICBjb25zdCB6SW5kZXggPSBvcHRvbnMuY29ubmVjdGlvbkVycm9yPy5ibG9ja1NjcmVlblpJbmRleCB8fCAxMDAwMDtcclxuXHJcbiAgICAgICAgY29uc3QgYm9keSA9IGRvY3VtZW50LmJvZHk7XHJcbiAgICAgICAgY29uc3QgYmxjb2tlckh0bWwgPSBgXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImx6ZS1ibG9ja2VyXCI+XHJcbiAgICAgICAgICAgICR7TE9DQUxJWkVfQVBJX0FTU0VUUy5uZXR3b3JrLm5vQ29ubmVjdGlvbn1cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImx6ZS1ibG9ja2VyX19tZXNzYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAke21lc3NhZ2V9XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImx6ZS1ibG9ja2VyX19kb3R0aW5nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsemUtYmxvY2tlcl9fZG90XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibHplLWJsb2NrZXJfX2RvdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImx6ZS1ibG9ja2VyX19kb3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibHplLWJsb2NrZXJfX2Vycm9yXCI+JHtlcnJvck1lc3NhZ2V9PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsemUtYmxvY2tlcl9fZXJyb3Jfc3VnZ2VzdGlvblwiPiR7c3VnZ2VzdGluTWVzc2FnZX08L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICBgO1xyXG4gICAgICAgIGNvbnN0IHN0eWxlID0gYFxyXG4gICAgICAgIGRpdi5semUtYmxvY2tlciB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgICAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuODUpICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIHotaW5kZXg6ICR7ekluZGV4fTtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjtcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAyMHB4O1xyXG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHN2ZyNsemUtbm8tY29ubmVjdGlvbiB7XHJcbiAgICAgICAgICAgIHdpZHRoOiA3NXB4O1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDc1cHg7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIGRpdi5semUtYmxvY2tlcl9fbWVzc2FnZSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gICAgICAgIH1cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgLmx6ZS1ibG9ja2VyX19kb3R0aW5nIHtcclxuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBzcGFuLmx6ZS1ibG9ja2VyX19kb3Qge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICAgIHdpZHRoOiA3cHg7XHJcbiAgICAgICAgICAgIGhlaWdodDogN3B4O1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDNweDtcclxuICAgICAgICAgICAgb3BhY2l0eTogMC4zO1xyXG4gICAgICAgICAgICBhbmltYXRpb246IGRvdHRpbmcgMXMgaW5maW5pdGU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5semUtYmxvY2tlcl9fZG90Om50aC1jaGlsZCgxKSB7XHJcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogMHM7XHJcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5semUtYmxvY2tlcl9fZG90Om50aC1jaGlsZCgyKSB7XHJcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogMC4ycztcclxuICAgICAgICB9XHJcbiAgICAgICAgLmx6ZS1ibG9ja2VyX19kb3Q6bnRoLWNoaWxkKDMpIHtcclxuICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAwLjRzO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQGtleWZyYW1lcyBkb3R0aW5nIHtcclxuICAgICAgICAgICAgMCUsIDgwJSwgMTAwJSB7IG9wYWNpdHk6IDAuMzsgfVxyXG4gICAgICAgICAgICA0MCUgeyBvcGFjaXR5OiAxOyB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBkaXYubHplLWJsb2NrZXJfX2Vycm9yIHtcclxuICAgICAgICAgICAgY29sb3I6ICNmMDA7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAwIDFweCAjZmY1ZjVmICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBkaXYubHplLWJsb2NrZXJfX2Vycm9yX3N1Z2dlc3Rpb24ge1xyXG4gICAgICAgICAgICBjb2xvcjogI2NjYyAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgQGtleWZyYW1lcyBzcGluIHtcclxuICAgICAgICAgICAgMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfVxyXG4gICAgICAgICAgICAxMDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBgO1xyXG5cclxuICAgICAgICBjb25zdCBzdHlsZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xyXG5cclxuICAgICAgICBpZiAoYWRkKSB7XHJcbiAgICAgICAgICAgIGlmICghZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmx6ZS1ibG9ja2VyJykpIHtcclxuICAgICAgICAgICAgICAgIHN0eWxlRWxlbWVudC5pbm5lckhUTUwgPSBzdHlsZTtcclxuICAgICAgICAgICAgICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc3R5bGVFbGVtZW50KTtcclxuICAgICAgICAgICAgICAgIGJvZHkuaW5zZXJ0QWRqYWNlbnRIVE1MKCdiZWZvcmVlbmQnLCBibGNva2VySHRtbCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnJlbW92ZUJsb2NrZXIoc3R5bGVFbGVtZW50KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBzdHlsZUVsZW1lbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSByZW1vdmVCbG9ja2VyKHN0eWxlRWxlbWVudDogSFRNTFN0eWxlRWxlbWVudCB8IHVuZGVmaW5lZCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGJsb2NrZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcubHplLWJsb2NrZXInKTtcclxuICAgICAgICBibG9ja2VyPy5yZW1vdmUoKTtcclxuICAgICAgICBzdHlsZUVsZW1lbnQ/LnJlbW92ZSgpO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgQXBpSGVscGVyID0gbmV3IExvY2FsaXplQXBpSGVscGVyKCk7Il19
@@ -1,3 +1,4 @@
1
+ export * from "./helpers/localize.api.assets";
1
2
  export * from "./localize.token.service";
2
3
  export * from "./localize.token";
3
4
  export * from "./helpers/interfaces";
@@ -5,4 +6,4 @@ export * from "./helpers/loccalize.api.helper";
5
6
  export * from "./localize.token.storage";
6
7
  export * from "./localize.token.module";
7
8
  export * from "./localize.api.service";
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sb2NhbGl6ZS10b2tlbi9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9sb2NhbGl6ZS50b2tlbi5zZXJ2aWNlXCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2xvY2FsaXplLnRva2VuXCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2hlbHBlcnMvaW50ZXJmYWNlc1wiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9oZWxwZXJzL2xvY2NhbGl6ZS5hcGkuaGVscGVyXCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2xvY2FsaXplLnRva2VuLnN0b3JhZ2VcIjtcclxuZXhwb3J0ICogZnJvbSBcIi4vbG9jYWxpemUudG9rZW4ubW9kdWxlXCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2xvY2FsaXplLmFwaS5zZXJ2aWNlXCI7Il19
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sb2NhbGl6ZS10b2tlbi9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2hlbHBlcnMvbG9jYWxpemUuYXBpLmFzc2V0c1wiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9sb2NhbGl6ZS50b2tlbi5zZXJ2aWNlXCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2xvY2FsaXplLnRva2VuXCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2hlbHBlcnMvaW50ZXJmYWNlc1wiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9oZWxwZXJzL2xvY2NhbGl6ZS5hcGkuaGVscGVyXCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2xvY2FsaXplLnRva2VuLnN0b3JhZ2VcIjtcclxuZXhwb3J0ICogZnJvbSBcIi4vbG9jYWxpemUudG9rZW4ubW9kdWxlXCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2xvY2FsaXplLmFwaS5zZXJ2aWNlXCI7Il19
@@ -14,6 +14,26 @@ import { InputTextModule } from 'primeng/inputtext';
14
14
  import { ButtonModule } from 'primeng/button';
15
15
  import { FormsModule } from '@angular/forms';
16
16
 
17
+ const LOCALIZE_API_ASSETS = {
18
+ network: {
19
+ noConnection: `<?xml version="1.0" encoding="UTF-8"?>
20
+ <svg id="lze-no-connection" data-name="Layer 2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 77.29 70.98">
21
+ <defs>
22
+ <style> .cls-1 { fill: #fff; } .cls-2, .cls-3 { fill: #e30613; } .cls-3 { stroke: #e30613; stroke-miterlimit: 10; stroke-width: .25px; } </style>
23
+ </defs>
24
+ <g id="Layer_3" data-name="Layer 3">
25
+ <g>
26
+ <path class="cls-1" d="m73.29,35c-1.2,0-2.33-.53-3.09-1.46-.48-.57-11.23-13.2-31.55-13.2s-31.11,12.66-31.56,13.2c-1.4,1.71-3.92,1.95-5.63.55-1.71-1.4-1.95-3.92-.55-5.63.54-.66,13.47-16.12,37.74-16.12s37.2,15.46,37.74,16.12c1.4,1.71,1.15,4.23-.56,5.62-.71.58-1.61.9-2.53.9Z"/>
27
+ <path class="cls-1" d="m63.96,45.66c-1.19,0-2.32-.53-3.08-1.44-5.79-6.05-13.86-9.39-22.24-9.21-8.38-.18-16.45,3.16-22.24,9.22-1.46,1.65-3.99,1.81-5.64.35-1.57-1.39-1.8-3.77-.52-5.43,7.32-7.89,17.64-12.29,28.4-12.12,10.76-.17,21.08,4.24,28.4,12.12,1.4,1.71,1.15,4.23-.56,5.62-.71.58-1.6.9-2.53.9Z"/>
28
+ <path class="cls-1" d="m53.3,56.32c-1.24,0-2.41-.57-3.16-1.55-5.73-6.35-15.52-6.85-21.87-1.13-.4.36-.77.73-1.13,1.13-1.36,1.73-3.88,2.03-5.61.67-1.71-1.34-2.03-3.8-.73-5.54,8.39-9.85,23.18-11.04,33.03-2.65.95.81,1.84,1.69,2.65,2.65,1.34,1.75,1,4.26-.75,5.6-.7.53-1.55.82-2.43.82Z"/>
29
+ </g>
30
+ <path class="cls-2" d="m47.21,9.45l-4.06,41.36c-.64,5.42-8.39,5.39-9.01,0,0,0-4.06-41.36-4.06-41.36-.46-4.73,2.99-8.94,7.72-9.4,5.33-.58,9.97,4.09,9.4,9.4h0Z"/>
31
+ <circle class="cls-3" cx="38.64" cy="64.79" r="6.07"/>
32
+ </g>
33
+ </svg>`
34
+ }
35
+ };
36
+
17
37
  /**
18
38
  * Assembly of @package ng2-cookies @see https://www.npmjs.com/package/ng2-cookies
19
39
  *
@@ -396,6 +416,7 @@ class LocalizeApiHelper {
396
416
  const body = document.body;
397
417
  const blcokerHtml = `
398
418
  <div class="lze-blocker">
419
+ ${LOCALIZE_API_ASSETS.network.noConnection}
399
420
  <div class="lze-blocker__message">
400
421
  ${message}
401
422
  <span class="lze-blocker__dotting">
@@ -406,7 +427,6 @@ class LocalizeApiHelper {
406
427
  </div>
407
428
  <div class="lze-blocker__error">${errorMessage}</div>
408
429
  <div class="lze-blocker__error_suggestion">${suggestinMessage}</div>
409
- <div class="lze-blocker__spinner"></div>
410
430
  </div>
411
431
  `;
412
432
  const style = `
@@ -430,17 +450,13 @@ class LocalizeApiHelper {
430
450
  overflow: hidden;
431
451
  user-select: none;
432
452
  }
433
-
434
- div.lze-blocker__spinner {
435
- border: 4px solid rgba(255, 255, 255, 0.1) !important;
436
- border-top: 4px solid #fff;
437
- border-radius: 50%;
438
- width: 50px;
439
- height: 50px;
440
- animation: spin 1s linear infinite;
441
- margin-top: 20px;
442
- }
443
453
 
454
+ svg#lze-no-connection {
455
+ width: 75px;
456
+ height: 75px;
457
+ margin-bottom: 20px;
458
+ }
459
+
444
460
  div.lze-blocker__message {
445
461
  color: #fff !important;
446
462
  font-size: 18px !important;
@@ -1228,5 +1244,5 @@ LocalizeLogindlgModule.decorators = [
1228
1244
  * Generated bundle index. Do not edit.
1229
1245
  */
1230
1246
 
1231
- export { ApiHelper, EMethod, LocalizeApiService, LocalizeLogindlgComponent, LocalizeLogindlgModule, LocalizeLogindlgService, LocalizeToken, LocalizeTokenModule, LocalizeTokenService, LocalizeTokenStorage, extractMainDomain, waitFor, waitUntil };
1247
+ export { ApiHelper, EMethod, LOCALIZE_API_ASSETS, LocalizeApiService, LocalizeLogindlgComponent, LocalizeLogindlgModule, LocalizeLogindlgService, LocalizeToken, LocalizeTokenModule, LocalizeTokenService, LocalizeTokenStorage, extractMainDomain, waitFor, waitUntil };
1232
1248
  //# sourceMappingURL=sambath999-localize-token.js.map