@coinflowlabs/angular 0.3.0 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -4,6 +4,14 @@ This library was generated with [Angular CLI](https://github.com/angular/angular
4
4
 
5
5
  # Changelog
6
6
 
7
+ ## 0.3.2
8
+
9
+ - Added `reinitialize` method to `CoinflowCvvOnlyInputComponent`, `CoinflowCardNumberInput`, and `CoinflowCardNumberOnlyInput`
10
+
11
+ ## 0.3.1
12
+
13
+ - Added sessionKey authentication mechanism to `CoinflowWithdraw`
14
+
7
15
  ## 0.3.0
8
16
 
9
17
  - Added sessionKey authentication mechanism to `CoinflowPurchase`
@@ -20,12 +20,22 @@ export class CoinflowCardNumberInput {
20
20
  .then(iframe => (this.iframe = iframe))
21
21
  .catch(e => console.error(e));
22
22
  }
23
- ngOnInit() {
23
+ initializeTokenEx() {
24
24
  setTokenExScriptTag({
25
25
  env: this.args.env,
26
26
  setTokenExScriptLoaded: this.onScriptLoaded.bind(this),
27
27
  });
28
28
  }
29
+ reinitialize() {
30
+ this.iframe = undefined;
31
+ this.initializeTokenEx();
32
+ }
33
+ ngOnInit() {
34
+ this.initializeTokenEx();
35
+ }
36
+ ngOnDestroy() {
37
+ this.iframe = undefined;
38
+ }
29
39
  tokenize() {
30
40
  return this.iframe.tokenize();
31
41
  }
@@ -43,4 +53,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImpo
43
53
  }], propDecorators: { args: [{
44
54
  type: Input
45
55
  }] } });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29pbmZsb3ctY2FyZC1udW1iZXItaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29pbmZsb3dsYWJzL3NyYy9saWIvY2FyZC1mb3JtL2NvaW5mbG93LWNhcmQtbnVtYmVyLWlucHV0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUVMLG1CQUFtQixFQUNuQix5QkFBeUIsR0FFMUIsTUFBTSxXQUFXLENBQUM7QUFDbkIsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG1CQUFtQixDQUFDOztBQVFsRCxNQUFNLE9BQU8sdUJBQXVCO0lBTnBDO1FBT1Usb0JBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFMUMsV0FBTSxHQUE4QixTQUFTLENBQUM7UUEwQm5DLDhCQUF5QixHQUFHLHlCQUF5QixDQUFDO0tBQzFFO0lBekJTLGNBQWM7UUFDcEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxlQUFlO2FBQ2pCLHVCQUF1QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ3RDLEdBQUcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1lBQ2xDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUs7WUFDdEIsT0FBTyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztZQUMxQixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJO1NBQ3JCLENBQUM7YUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLENBQUM7YUFDdEMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxRQUFRO1FBQ04sbUJBQW1CLENBQUM7WUFDbEIsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRztZQUNsQixzQkFBc0IsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDdkQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxNQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDakMsQ0FBQzsrR0EzQlUsdUJBQXVCO21HQUF2Qix1QkFBdUIsb0hBRnhCLGdEQUFnRDs7NEZBRS9DLHVCQUF1QjtrQkFObkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0NBQWdDO29CQUMxQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsUUFBUSxFQUFFLGdEQUFnRDtpQkFDM0Q7OEJBR1UsSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIGluamVjdCwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ29pbmZsb3dDYXJkTnVtYmVySW5wdXRQcm9wcyxcbiAgc2V0VG9rZW5FeFNjcmlwdFRhZyxcbiAgVG9rZW5FeENhcmROdW1iZXJJZnJhbWVJZCxcbiAgVG9rZW5FeElmcmFtZSxcbn0gZnJvbSAnLi4vY29tbW9uJztcbmltcG9ydCB7Q2FyZEZvcm1TZXJ2aWNlfSBmcm9tICcuL0NhcmRGb3JtU2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1jb2luZmxvdy1jYXJkLW51bWJlci1pbnB1dCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtdLFxuICB0ZW1wbGF0ZTogJzxkaXYgaWQ9XCJ7e1Rva2VuRXhDYXJkTnVtYmVySWZyYW1lSWR9fVwiPjwvZGl2PicsXG59KVxuZXhwb3J0IGNsYXNzIENvaW5mbG93Q2FyZE51bWJlcklucHV0IHtcbiAgcHJpdmF0ZSBjYXJkRm9ybVNlcnZpY2UgPSBpbmplY3QoQ2FyZEZvcm1TZXJ2aWNlKTtcbiAgQElucHV0KCkgYXJncyE6IENvaW5mbG93Q2FyZE51bWJlcklucHV0UHJvcHM7XG4gIHByaXZhdGUgaWZyYW1lOiBUb2tlbkV4SWZyYW1lIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG4gIHByaXZhdGUgb25TY3JpcHRMb2FkZWQoKSB7XG4gICAgY29uc29sZS5sb2coJ29uU2NyaXB0TG9hZGVkJyk7XG4gICAgdGhpcy5jYXJkRm9ybVNlcnZpY2VcbiAgICAgIC5pbml0aWFsaXplVG9rZW5FeElmcmFtZSh0aGlzLmFyZ3MuZW52LCB7XG4gICAgICAgIGNzczogSlNPTi5zdHJpbmdpZnkodGhpcy5hcmdzLmNzcyksXG4gICAgICAgIGRlYnVnOiB0aGlzLmFyZ3MuZGVidWcsXG4gICAgICAgIG9yaWdpbnM6IHRoaXMuYXJncy5vcmlnaW5zLFxuICAgICAgICBmb250OiB0aGlzLmFyZ3MuZm9udCxcbiAgICAgIH0pXG4gICAgICAudGhlbihpZnJhbWUgPT4gKHRoaXMuaWZyYW1lID0gaWZyYW1lKSlcbiAgICAgIC5jYXRjaChlID0+IGNvbnNvbGUuZXJyb3IoZSkpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgc2V0VG9rZW5FeFNjcmlwdFRhZyh7XG4gICAgICBlbnY6IHRoaXMuYXJncy5lbnYsXG4gICAgICBzZXRUb2tlbkV4U2NyaXB0TG9hZGVkOiB0aGlzLm9uU2NyaXB0TG9hZGVkLmJpbmQodGhpcyksXG4gICAgfSk7XG4gIH1cblxuICB0b2tlbml6ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5pZnJhbWUhLnRva2VuaXplKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgVG9rZW5FeENhcmROdW1iZXJJZnJhbWVJZCA9IFRva2VuRXhDYXJkTnVtYmVySWZyYW1lSWQ7XG59XG4iXX0=
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29pbmZsb3ctY2FyZC1udW1iZXItaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29pbmZsb3dsYWJzL3NyYy9saWIvY2FyZC1mb3JtL2NvaW5mbG93LWNhcmQtbnVtYmVyLWlucHV0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDbEUsT0FBTyxFQUVMLG1CQUFtQixFQUNuQix5QkFBeUIsR0FFMUIsTUFBTSxXQUFXLENBQUM7QUFDbkIsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG1CQUFtQixDQUFDOztBQVFsRCxNQUFNLE9BQU8sdUJBQXVCO0lBTnBDO1FBT1Usb0JBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFMUMsV0FBTSxHQUE4QixTQUFTLENBQUM7UUF1Q25DLDhCQUF5QixHQUFHLHlCQUF5QixDQUFDO0tBQzFFO0lBdENTLGNBQWM7UUFDcEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxlQUFlO2FBQ2pCLHVCQUF1QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ3RDLEdBQUcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1lBQ2xDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUs7WUFDdEIsT0FBTyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztZQUMxQixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJO1NBQ3JCLENBQUM7YUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLENBQUM7YUFDdEMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTyxpQkFBaUI7UUFDdkIsbUJBQW1CLENBQUM7WUFDbEIsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRztZQUNsQixzQkFBc0IsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDdkQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLFlBQVk7UUFDakIsSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUM7UUFDeEIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsTUFBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2pDLENBQUM7K0dBeENVLHVCQUF1QjttR0FBdkIsdUJBQXVCLG9IQUZ4QixnREFBZ0Q7OzRGQUUvQyx1QkFBdUI7a0JBTm5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdDQUFnQztvQkFDMUMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxFQUFFO29CQUNYLFFBQVEsRUFBRSxnREFBZ0Q7aUJBQzNEOzhCQUdVLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBpbmplY3QsIElucHV0LCBPbkRlc3Ryb3l9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ29pbmZsb3dDYXJkTnVtYmVySW5wdXRQcm9wcyxcbiAgc2V0VG9rZW5FeFNjcmlwdFRhZyxcbiAgVG9rZW5FeENhcmROdW1iZXJJZnJhbWVJZCxcbiAgVG9rZW5FeElmcmFtZSxcbn0gZnJvbSAnLi4vY29tbW9uJztcbmltcG9ydCB7Q2FyZEZvcm1TZXJ2aWNlfSBmcm9tICcuL0NhcmRGb3JtU2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1jb2luZmxvdy1jYXJkLW51bWJlci1pbnB1dCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtdLFxuICB0ZW1wbGF0ZTogJzxkaXYgaWQ9XCJ7e1Rva2VuRXhDYXJkTnVtYmVySWZyYW1lSWR9fVwiPjwvZGl2PicsXG59KVxuZXhwb3J0IGNsYXNzIENvaW5mbG93Q2FyZE51bWJlcklucHV0IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBjYXJkRm9ybVNlcnZpY2UgPSBpbmplY3QoQ2FyZEZvcm1TZXJ2aWNlKTtcbiAgQElucHV0KCkgYXJncyE6IENvaW5mbG93Q2FyZE51bWJlcklucHV0UHJvcHM7XG4gIHByaXZhdGUgaWZyYW1lOiBUb2tlbkV4SWZyYW1lIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG4gIHByaXZhdGUgb25TY3JpcHRMb2FkZWQoKSB7XG4gICAgY29uc29sZS5sb2coJ29uU2NyaXB0TG9hZGVkJyk7XG4gICAgdGhpcy5jYXJkRm9ybVNlcnZpY2VcbiAgICAgIC5pbml0aWFsaXplVG9rZW5FeElmcmFtZSh0aGlzLmFyZ3MuZW52LCB7XG4gICAgICAgIGNzczogSlNPTi5zdHJpbmdpZnkodGhpcy5hcmdzLmNzcyksXG4gICAgICAgIGRlYnVnOiB0aGlzLmFyZ3MuZGVidWcsXG4gICAgICAgIG9yaWdpbnM6IHRoaXMuYXJncy5vcmlnaW5zLFxuICAgICAgICBmb250OiB0aGlzLmFyZ3MuZm9udCxcbiAgICAgIH0pXG4gICAgICAudGhlbihpZnJhbWUgPT4gKHRoaXMuaWZyYW1lID0gaWZyYW1lKSlcbiAgICAgIC5jYXRjaChlID0+IGNvbnNvbGUuZXJyb3IoZSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplVG9rZW5FeCgpIHtcbiAgICBzZXRUb2tlbkV4U2NyaXB0VGFnKHtcbiAgICAgIGVudjogdGhpcy5hcmdzLmVudixcbiAgICAgIHNldFRva2VuRXhTY3JpcHRMb2FkZWQ6IHRoaXMub25TY3JpcHRMb2FkZWQuYmluZCh0aGlzKSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyByZWluaXRpYWxpemUoKSB7XG4gICAgdGhpcy5pZnJhbWUgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5pbml0aWFsaXplVG9rZW5FeCgpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5pbml0aWFsaXplVG9rZW5FeCgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5pZnJhbWUgPSB1bmRlZmluZWQ7XG4gIH1cblxuICB0b2tlbml6ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5pZnJhbWUhLnRva2VuaXplKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgVG9rZW5FeENhcmROdW1iZXJJZnJhbWVJZCA9IFRva2VuRXhDYXJkTnVtYmVySWZyYW1lSWQ7XG59XG4iXX0=
@@ -20,12 +20,22 @@ export class CoinflowCardNumberOnlyInput {
20
20
  .then(iframe => (this.iframe = iframe))
21
21
  .catch(e => console.error(e));
22
22
  }
23
- ngOnInit() {
23
+ initializeTokenEx() {
24
24
  setTokenExScriptTag({
25
25
  env: this.args.env,
26
26
  setTokenExScriptLoaded: this.onScriptLoaded.bind(this),
27
27
  });
28
28
  }
29
+ reinitialize() {
30
+ this.iframe = undefined;
31
+ this.initializeTokenEx();
32
+ }
33
+ ngOnInit() {
34
+ this.initializeTokenEx();
35
+ }
36
+ ngOnDestroy() {
37
+ this.iframe = undefined;
38
+ }
29
39
  tokenize() {
30
40
  return this.iframe.tokenize();
31
41
  }
@@ -43,4 +53,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImpo
43
53
  }], propDecorators: { args: [{
44
54
  type: Input
45
55
  }] } });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29pbmZsb3ctY2FyZC1udW1iZXItb25seS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2luZmxvd2xhYnMvc3JjL2xpYi9jYXJkLWZvcm0vY29pbmZsb3ctY2FyZC1udW1iZXItb25seS1pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFFTCxtQkFBbUIsRUFDbkIseUJBQXlCLEdBRTFCLE1BQU0sV0FBVyxDQUFDO0FBQ25CLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQzs7QUFRbEQsTUFBTSxPQUFPLDJCQUEyQjtJQU54QztRQU9VLG9CQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRTFDLFdBQU0sR0FBOEIsU0FBUyxDQUFDO1FBMEJuQyw4QkFBeUIsR0FBRyx5QkFBeUIsQ0FBQztLQUMxRTtJQXpCUyxjQUFjO1FBQ3BCLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsZUFBZTthQUNqQiwrQkFBK0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUM5QyxHQUFHLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUNsQyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLO1lBQ3RCLE9BQU8sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87WUFDMUIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSTtTQUNyQixDQUFDO2FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxDQUFDO2FBQ3RDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsUUFBUTtRQUNOLG1CQUFtQixDQUFDO1lBQ2xCLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUc7WUFDbEIsc0JBQXNCLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQ3ZELENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsTUFBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2pDLENBQUM7K0dBM0JVLDJCQUEyQjttR0FBM0IsMkJBQTJCLHlIQUY1QixnREFBZ0Q7OzRGQUUvQywyQkFBMkI7a0JBTnZDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFDQUFxQztvQkFDL0MsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxFQUFFO29CQUNYLFFBQVEsRUFBRSxnREFBZ0Q7aUJBQzNEOzhCQUdVLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBpbmplY3QsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENvaW5mbG93Q2FyZE51bWJlcklucHV0UHJvcHMsXG4gIHNldFRva2VuRXhTY3JpcHRUYWcsXG4gIFRva2VuRXhDYXJkTnVtYmVySWZyYW1lSWQsXG4gIFRva2VuRXhJZnJhbWUsXG59IGZyb20gJy4uL2NvbW1vbic7XG5pbXBvcnQge0NhcmRGb3JtU2VydmljZX0gZnJvbSAnLi9DYXJkRm9ybVNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItY29pbmZsb3ctY2FyZC1udW1iZXItb25seS1pbnB1dCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtdLFxuICB0ZW1wbGF0ZTogJzxkaXYgaWQ9XCJ7e1Rva2VuRXhDYXJkTnVtYmVySWZyYW1lSWR9fVwiPjwvZGl2PicsXG59KVxuZXhwb3J0IGNsYXNzIENvaW5mbG93Q2FyZE51bWJlck9ubHlJbnB1dCB7XG4gIHByaXZhdGUgY2FyZEZvcm1TZXJ2aWNlID0gaW5qZWN0KENhcmRGb3JtU2VydmljZSk7XG4gIEBJbnB1dCgpIGFyZ3MhOiBDb2luZmxvd0NhcmROdW1iZXJJbnB1dFByb3BzO1xuICBwcml2YXRlIGlmcmFtZTogVG9rZW5FeElmcmFtZSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICBwcml2YXRlIG9uU2NyaXB0TG9hZGVkKCkge1xuICAgIGNvbnNvbGUubG9nKCdvblNjcmlwdExvYWRlZCcpO1xuICAgIHRoaXMuY2FyZEZvcm1TZXJ2aWNlXG4gICAgICAuaW5pdGlhbGl6ZVRva2VuRXhDYXJkT25seUlmcmFtZSh0aGlzLmFyZ3MuZW52LCB7XG4gICAgICAgIGNzczogSlNPTi5zdHJpbmdpZnkodGhpcy5hcmdzLmNzcyksXG4gICAgICAgIGRlYnVnOiB0aGlzLmFyZ3MuZGVidWcsXG4gICAgICAgIG9yaWdpbnM6IHRoaXMuYXJncy5vcmlnaW5zLFxuICAgICAgICBmb250OiB0aGlzLmFyZ3MuZm9udCxcbiAgICAgIH0pXG4gICAgICAudGhlbihpZnJhbWUgPT4gKHRoaXMuaWZyYW1lID0gaWZyYW1lKSlcbiAgICAgIC5jYXRjaChlID0+IGNvbnNvbGUuZXJyb3IoZSkpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgc2V0VG9rZW5FeFNjcmlwdFRhZyh7XG4gICAgICBlbnY6IHRoaXMuYXJncy5lbnYsXG4gICAgICBzZXRUb2tlbkV4U2NyaXB0TG9hZGVkOiB0aGlzLm9uU2NyaXB0TG9hZGVkLmJpbmQodGhpcyksXG4gICAgfSk7XG4gIH1cblxuICB0b2tlbml6ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5pZnJhbWUhLnRva2VuaXplKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgVG9rZW5FeENhcmROdW1iZXJJZnJhbWVJZCA9IFRva2VuRXhDYXJkTnVtYmVySWZyYW1lSWQ7XG59XG4iXX0=
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29pbmZsb3ctY2FyZC1udW1iZXItb25seS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2luZmxvd2xhYnMvc3JjL2xpYi9jYXJkLWZvcm0vY29pbmZsb3ctY2FyZC1udW1iZXItb25seS1pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ2xFLE9BQU8sRUFFTCxtQkFBbUIsRUFDbkIseUJBQXlCLEdBRTFCLE1BQU0sV0FBVyxDQUFDO0FBQ25CLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQzs7QUFRbEQsTUFBTSxPQUFPLDJCQUEyQjtJQU54QztRQU9VLG9CQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRTFDLFdBQU0sR0FBOEIsU0FBUyxDQUFDO1FBdUNuQyw4QkFBeUIsR0FBRyx5QkFBeUIsQ0FBQztLQUMxRTtJQXRDUyxjQUFjO1FBQ3BCLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsZUFBZTthQUNqQiwrQkFBK0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUM5QyxHQUFHLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUNsQyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLO1lBQ3RCLE9BQU8sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87WUFDMUIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSTtTQUNyQixDQUFDO2FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxDQUFDO2FBQ3RDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLG1CQUFtQixDQUFDO1lBQ2xCLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUc7WUFDbEIsc0JBQXNCLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQ3ZELENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxZQUFZO1FBQ2pCLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLE1BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNqQyxDQUFDOytHQXhDVSwyQkFBMkI7bUdBQTNCLDJCQUEyQix5SEFGNUIsZ0RBQWdEOzs0RkFFL0MsMkJBQTJCO2tCQU52QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxQ0FBcUM7b0JBQy9DLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsRUFBRTtvQkFDWCxRQUFRLEVBQUUsZ0RBQWdEO2lCQUMzRDs4QkFHVSxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgaW5qZWN0LCBJbnB1dCwgT25EZXN0cm95fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENvaW5mbG93Q2FyZE51bWJlcklucHV0UHJvcHMsXG4gIHNldFRva2VuRXhTY3JpcHRUYWcsXG4gIFRva2VuRXhDYXJkTnVtYmVySWZyYW1lSWQsXG4gIFRva2VuRXhJZnJhbWUsXG59IGZyb20gJy4uL2NvbW1vbic7XG5pbXBvcnQge0NhcmRGb3JtU2VydmljZX0gZnJvbSAnLi9DYXJkRm9ybVNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItY29pbmZsb3ctY2FyZC1udW1iZXItb25seS1pbnB1dCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtdLFxuICB0ZW1wbGF0ZTogJzxkaXYgaWQ9XCJ7e1Rva2VuRXhDYXJkTnVtYmVySWZyYW1lSWR9fVwiPjwvZGl2PicsXG59KVxuZXhwb3J0IGNsYXNzIENvaW5mbG93Q2FyZE51bWJlck9ubHlJbnB1dCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgY2FyZEZvcm1TZXJ2aWNlID0gaW5qZWN0KENhcmRGb3JtU2VydmljZSk7XG4gIEBJbnB1dCgpIGFyZ3MhOiBDb2luZmxvd0NhcmROdW1iZXJJbnB1dFByb3BzO1xuICBwcml2YXRlIGlmcmFtZTogVG9rZW5FeElmcmFtZSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICBwcml2YXRlIG9uU2NyaXB0TG9hZGVkKCkge1xuICAgIGNvbnNvbGUubG9nKCdvblNjcmlwdExvYWRlZCcpO1xuICAgIHRoaXMuY2FyZEZvcm1TZXJ2aWNlXG4gICAgICAuaW5pdGlhbGl6ZVRva2VuRXhDYXJkT25seUlmcmFtZSh0aGlzLmFyZ3MuZW52LCB7XG4gICAgICAgIGNzczogSlNPTi5zdHJpbmdpZnkodGhpcy5hcmdzLmNzcyksXG4gICAgICAgIGRlYnVnOiB0aGlzLmFyZ3MuZGVidWcsXG4gICAgICAgIG9yaWdpbnM6IHRoaXMuYXJncy5vcmlnaW5zLFxuICAgICAgICBmb250OiB0aGlzLmFyZ3MuZm9udCxcbiAgICAgIH0pXG4gICAgICAudGhlbihpZnJhbWUgPT4gKHRoaXMuaWZyYW1lID0gaWZyYW1lKSlcbiAgICAgIC5jYXRjaChlID0+IGNvbnNvbGUuZXJyb3IoZSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplVG9rZW5FeCgpIHtcbiAgICBzZXRUb2tlbkV4U2NyaXB0VGFnKHtcbiAgICAgIGVudjogdGhpcy5hcmdzLmVudixcbiAgICAgIHNldFRva2VuRXhTY3JpcHRMb2FkZWQ6IHRoaXMub25TY3JpcHRMb2FkZWQuYmluZCh0aGlzKSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyByZWluaXRpYWxpemUoKSB7XG4gICAgdGhpcy5pZnJhbWUgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5pbml0aWFsaXplVG9rZW5FeCgpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5pbml0aWFsaXplVG9rZW5FeCgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5pZnJhbWUgPSB1bmRlZmluZWQ7XG4gIH1cblxuICB0b2tlbml6ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5pZnJhbWUhLnRva2VuaXplKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgVG9rZW5FeENhcmROdW1iZXJJZnJhbWVJZCA9IFRva2VuRXhDYXJkTnVtYmVySWZyYW1lSWQ7XG59XG4iXX0=
@@ -21,12 +21,22 @@ export class CoinflowCvvOnlyInputComponent {
21
21
  .then(iframe => (this.iframe = iframe))
22
22
  .catch(e => console.error(e));
23
23
  }
24
- ngOnInit() {
24
+ initializeTokenEx() {
25
25
  setTokenExScriptTag({
26
26
  env: this.args.env,
27
27
  setTokenExScriptLoaded: this.onScriptLoaded.bind(this),
28
28
  });
29
29
  }
30
+ reinitialize() {
31
+ this.iframe = undefined;
32
+ this.initializeTokenEx();
33
+ }
34
+ ngOnInit() {
35
+ this.initializeTokenEx();
36
+ }
37
+ ngOnDestroy() {
38
+ this.iframe = undefined;
39
+ }
30
40
  tokenize() {
31
41
  return this.iframe.tokenize();
32
42
  }
@@ -44,4 +54,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImpo
44
54
  }], propDecorators: { args: [{
45
55
  type: Input
46
56
  }] } });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29pbmZsb3ctY3Z2LW9ubHktaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29pbmZsb3dsYWJzL3NyYy9saWIvY2FyZC1mb3JtL2NvaW5mbG93LWN2di1vbmx5LWlucHV0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUVMLG1CQUFtQixFQUNuQixxQkFBcUIsR0FFdEIsTUFBTSxXQUFXLENBQUM7QUFDbkIsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG1CQUFtQixDQUFDOztBQVFsRCxNQUFNLE9BQU8sNkJBQTZCO0lBTjFDO1FBT1Usb0JBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFMUMsV0FBTSxHQUE4QixTQUFTLENBQUM7UUEyQm5DLDBCQUFxQixHQUFHLHFCQUFxQixDQUFDO0tBQ2xFO0lBMUJTLGNBQWM7UUFDcEIsSUFBSSxDQUFDLGVBQWU7YUFDakIsOEJBQThCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDN0MsR0FBRyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7WUFDbEMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSztZQUN0QixPQUFPLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPO1lBQzFCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUk7WUFDcEIsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSztZQUN0QixRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRO1NBQzdCLENBQUM7YUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLENBQUM7YUFDdEMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxRQUFRO1FBQ04sbUJBQW1CLENBQUM7WUFDbEIsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRztZQUNsQixzQkFBc0IsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDdkQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxNQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDakMsQ0FBQzsrR0E1QlUsNkJBQTZCO21HQUE3Qiw2QkFBNkIsaUhBRjlCLDRDQUE0Qzs7NEZBRTNDLDZCQUE2QjtrQkFOekMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsNkJBQTZCO29CQUN2QyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsUUFBUSxFQUFFLDRDQUE0QztpQkFDdkQ7OEJBR1UsSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIGluamVjdCwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ29pbmZsb3dDdnZPbmx5SW5wdXRQcm9wcyxcbiAgc2V0VG9rZW5FeFNjcmlwdFRhZyxcbiAgVG9rZW5FeEN2dkNvbnRhaW5lcklELFxuICBUb2tlbkV4SWZyYW1lLFxufSBmcm9tICcuLi9jb21tb24nO1xuaW1wb3J0IHtDYXJkRm9ybVNlcnZpY2V9IGZyb20gJy4vQ2FyZEZvcm1TZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWNvaW5mbG93LWN2di1vbmx5LWlucHV0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW10sXG4gIHRlbXBsYXRlOiAnPGRpdiBpZD1cInt7VG9rZW5FeEN2dkNvbnRhaW5lcklEfX1cIj48L2Rpdj4nLFxufSlcbmV4cG9ydCBjbGFzcyBDb2luZmxvd0N2dk9ubHlJbnB1dENvbXBvbmVudCB7XG4gIHByaXZhdGUgY2FyZEZvcm1TZXJ2aWNlID0gaW5qZWN0KENhcmRGb3JtU2VydmljZSk7XG4gIEBJbnB1dCgpIGFyZ3MhOiBDb2luZmxvd0N2dk9ubHlJbnB1dFByb3BzO1xuICBwcml2YXRlIGlmcmFtZTogVG9rZW5FeElmcmFtZSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICBwcml2YXRlIG9uU2NyaXB0TG9hZGVkKCkge1xuICAgIHRoaXMuY2FyZEZvcm1TZXJ2aWNlXG4gICAgICAuaW5pdGlhbGl6ZUN2dk9ubHlUb2tlbkV4SWZyYW1lKHRoaXMuYXJncy5lbnYsIHtcbiAgICAgICAgY3NzOiBKU09OLnN0cmluZ2lmeSh0aGlzLmFyZ3MuY3NzKSxcbiAgICAgICAgZGVidWc6IHRoaXMuYXJncy5kZWJ1ZyxcbiAgICAgICAgb3JpZ2luczogdGhpcy5hcmdzLm9yaWdpbnMsXG4gICAgICAgIGZvbnQ6IHRoaXMuYXJncy5mb250LFxuICAgICAgICB0b2tlbjogdGhpcy5hcmdzLnRva2VuLFxuICAgICAgICBjYXJkVHlwZTogdGhpcy5hcmdzLmNhcmRUeXBlLFxuICAgICAgfSlcbiAgICAgIC50aGVuKGlmcmFtZSA9PiAodGhpcy5pZnJhbWUgPSBpZnJhbWUpKVxuICAgICAgLmNhdGNoKGUgPT4gY29uc29sZS5lcnJvcihlKSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBzZXRUb2tlbkV4U2NyaXB0VGFnKHtcbiAgICAgIGVudjogdGhpcy5hcmdzLmVudixcbiAgICAgIHNldFRva2VuRXhTY3JpcHRMb2FkZWQ6IHRoaXMub25TY3JpcHRMb2FkZWQuYmluZCh0aGlzKSxcbiAgICB9KTtcbiAgfVxuXG4gIHRva2VuaXplKCkge1xuICAgIHJldHVybiB0aGlzLmlmcmFtZSEudG9rZW5pemUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWFkb25seSBUb2tlbkV4Q3Z2Q29udGFpbmVySUQgPSBUb2tlbkV4Q3Z2Q29udGFpbmVySUQ7XG59XG4iXX0=
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29pbmZsb3ctY3Z2LW9ubHktaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29pbmZsb3dsYWJzL3NyYy9saWIvY2FyZC1mb3JtL2NvaW5mbG93LWN2di1vbmx5LWlucHV0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDbEUsT0FBTyxFQUVMLG1CQUFtQixFQUNuQixxQkFBcUIsR0FFdEIsTUFBTSxXQUFXLENBQUM7QUFDbkIsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG1CQUFtQixDQUFDOztBQVFsRCxNQUFNLE9BQU8sNkJBQTZCO0lBTjFDO1FBT1Usb0JBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFMUMsV0FBTSxHQUE4QixTQUFTLENBQUM7UUF3Q25DLDBCQUFxQixHQUFHLHFCQUFxQixDQUFDO0tBQ2xFO0lBdkNTLGNBQWM7UUFDcEIsSUFBSSxDQUFDLGVBQWU7YUFDakIsOEJBQThCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDN0MsR0FBRyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7WUFDbEMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSztZQUN0QixPQUFPLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPO1lBQzFCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUk7WUFDcEIsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSztZQUN0QixRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRO1NBQzdCLENBQUM7YUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLENBQUM7YUFDdEMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTyxpQkFBaUI7UUFDdkIsbUJBQW1CLENBQUM7WUFDbEIsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRztZQUNsQixzQkFBc0IsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDdkQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLFlBQVk7UUFDakIsSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUM7UUFDeEIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsTUFBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2pDLENBQUM7K0dBekNVLDZCQUE2QjttR0FBN0IsNkJBQTZCLGlIQUY5Qiw0Q0FBNEM7OzRGQUUzQyw2QkFBNkI7a0JBTnpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDZCQUE2QjtvQkFDdkMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxFQUFFO29CQUNYLFFBQVEsRUFBRSw0Q0FBNEM7aUJBQ3ZEOzhCQUdVLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBpbmplY3QsIElucHV0LCBPbkRlc3Ryb3l9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ29pbmZsb3dDdnZPbmx5SW5wdXRQcm9wcyxcbiAgc2V0VG9rZW5FeFNjcmlwdFRhZyxcbiAgVG9rZW5FeEN2dkNvbnRhaW5lcklELFxuICBUb2tlbkV4SWZyYW1lLFxufSBmcm9tICcuLi9jb21tb24nO1xuaW1wb3J0IHtDYXJkRm9ybVNlcnZpY2V9IGZyb20gJy4vQ2FyZEZvcm1TZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWNvaW5mbG93LWN2di1vbmx5LWlucHV0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW10sXG4gIHRlbXBsYXRlOiAnPGRpdiBpZD1cInt7VG9rZW5FeEN2dkNvbnRhaW5lcklEfX1cIj48L2Rpdj4nLFxufSlcbmV4cG9ydCBjbGFzcyBDb2luZmxvd0N2dk9ubHlJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgY2FyZEZvcm1TZXJ2aWNlID0gaW5qZWN0KENhcmRGb3JtU2VydmljZSk7XG4gIEBJbnB1dCgpIGFyZ3MhOiBDb2luZmxvd0N2dk9ubHlJbnB1dFByb3BzO1xuICBwcml2YXRlIGlmcmFtZTogVG9rZW5FeElmcmFtZSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICBwcml2YXRlIG9uU2NyaXB0TG9hZGVkKCkge1xuICAgIHRoaXMuY2FyZEZvcm1TZXJ2aWNlXG4gICAgICAuaW5pdGlhbGl6ZUN2dk9ubHlUb2tlbkV4SWZyYW1lKHRoaXMuYXJncy5lbnYsIHtcbiAgICAgICAgY3NzOiBKU09OLnN0cmluZ2lmeSh0aGlzLmFyZ3MuY3NzKSxcbiAgICAgICAgZGVidWc6IHRoaXMuYXJncy5kZWJ1ZyxcbiAgICAgICAgb3JpZ2luczogdGhpcy5hcmdzLm9yaWdpbnMsXG4gICAgICAgIGZvbnQ6IHRoaXMuYXJncy5mb250LFxuICAgICAgICB0b2tlbjogdGhpcy5hcmdzLnRva2VuLFxuICAgICAgICBjYXJkVHlwZTogdGhpcy5hcmdzLmNhcmRUeXBlLFxuICAgICAgfSlcbiAgICAgIC50aGVuKGlmcmFtZSA9PiAodGhpcy5pZnJhbWUgPSBpZnJhbWUpKVxuICAgICAgLmNhdGNoKGUgPT4gY29uc29sZS5lcnJvcihlKSk7XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVUb2tlbkV4KCkge1xuICAgIHNldFRva2VuRXhTY3JpcHRUYWcoe1xuICAgICAgZW52OiB0aGlzLmFyZ3MuZW52LFxuICAgICAgc2V0VG9rZW5FeFNjcmlwdExvYWRlZDogdGhpcy5vblNjcmlwdExvYWRlZC5iaW5kKHRoaXMpLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHJlaW5pdGlhbGl6ZSgpIHtcbiAgICB0aGlzLmlmcmFtZSA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmluaXRpYWxpemVUb2tlbkV4KCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmluaXRpYWxpemVUb2tlbkV4KCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmlmcmFtZSA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHRva2VuaXplKCkge1xuICAgIHJldHVybiB0aGlzLmlmcmFtZSEudG9rZW5pemUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWFkb25seSBUb2tlbkV4Q3Z2Q29udGFpbmVySUQgPSBUb2tlbkV4Q3Z2Q29udGFpbmVySUQ7XG59XG4iXX0=
@@ -7,20 +7,28 @@ var IFrameMessageMethods;
7
7
  IFrameMessageMethods["SendTransaction"] = "sendTransaction";
8
8
  IFrameMessageMethods["HeightChange"] = "heightChange";
9
9
  IFrameMessageMethods["Success"] = "success";
10
- IFrameMessageMethods["Load"] = "load";
10
+ IFrameMessageMethods["Loaded"] = "loaded";
11
11
  })(IFrameMessageMethods || (IFrameMessageMethods = {}));
12
12
  export function getWalletPubkey(input) {
13
- if ('wallet' in input && input.wallet) {
14
- const { wallet } = input;
15
- if ('publicKey' in wallet) {
16
- return wallet.publicKey.toString();
17
- }
18
- if ('address' in wallet) {
19
- return wallet.address;
20
- }
21
- if ('accountId' in wallet) {
22
- return wallet.accountId;
23
- }
13
+ let wallet;
14
+ if ('signer' in input &&
15
+ typeof input.signer === 'object' &&
16
+ input.signer &&
17
+ 'wallet' in input.signer)
18
+ wallet = input.signer.wallet;
19
+ else if ('wallet' in input && input.wallet)
20
+ wallet = input.wallet;
21
+ if (!wallet)
22
+ return;
23
+ if (typeof wallet === 'string')
24
+ return wallet;
25
+ if (typeof wallet === 'object') {
26
+ if ('publicKey' in wallet)
27
+ return wallet.publicKey ? wallet.publicKey.toString() : undefined;
28
+ if ('address' in wallet)
29
+ return wallet.address ? wallet.address : undefined;
30
+ if ('accountId' in wallet)
31
+ return wallet.accountId ? wallet.accountId : undefined;
24
32
  }
25
33
  return null;
26
34
  }
@@ -56,32 +64,66 @@ export function handleIFrameMessage(rawMessage, handlers) {
56
64
  return;
57
65
  handlers.onSuccess(walletCall.info);
58
66
  return;
67
+ case IFrameMessageMethods.Loaded:
68
+ return;
59
69
  }
60
70
  console.warn(`Didn't expect to get here, handleIFrameMessage method:${method} is not one of ${Object.values(IFrameMessageMethods)}`);
61
71
  }
62
72
  export function getHandlers(props) {
63
- if (!props.blockchain) {
73
+ let chain;
74
+ let wallet;
75
+ if ('signer' in props &&
76
+ typeof props.signer === 'object' &&
77
+ props.signer &&
78
+ 'blockchain' in props.signer &&
79
+ 'wallet' in props.signer) {
80
+ chain = props.signer.blockchain;
81
+ wallet = props.signer.wallet;
82
+ }
83
+ else if ('blockchain' in props && props.blockchain) {
84
+ chain = props.blockchain;
85
+ wallet = props.wallet;
86
+ }
87
+ if (!chain) {
64
88
  return {
65
89
  handleSendTransaction: () => {
66
- throw new Error('handleSendTransaction Not Implemented for sessionKey');
90
+ throw new Error('handleSendTransaction Not Implemented');
67
91
  },
68
92
  handleSignMessage: () => {
69
- throw new Error('handleSendTransaction Not Implemented for sessionKey');
93
+ throw new Error('handleSendTransaction Not Implemented');
70
94
  },
71
95
  handleSignTransaction: () => {
72
- throw new Error('handleSendTransaction Not Implemented for sessionKey');
96
+ throw new Error('handleSendTransaction Not Implemented');
73
97
  },
74
98
  onSuccess: props.onSuccess,
75
99
  };
76
100
  }
77
- return CoinflowUtils.byBlockchain(props.blockchain, {
78
- solana: () => getSolanaWalletHandlers(props),
79
- near: () => getNearWalletHandlers(props),
80
- eth: () => getEvmWalletHandlers(props),
81
- polygon: () => getEvmWalletHandlers(props),
82
- base: () => getEvmWalletHandlers(props),
83
- arbitrum: () => getEvmWalletHandlers(props),
84
- user: () => getIdWalletHandlers(props),
101
+ return CoinflowUtils.byBlockchain(chain, {
102
+ solana: () => getSolanaWalletHandlers({
103
+ wallet: wallet,
104
+ onSuccess: props.onSuccess,
105
+ }),
106
+ near: () => getNearWalletHandlers({
107
+ wallet: wallet,
108
+ onSuccess: props.onSuccess,
109
+ }),
110
+ eth: () => getEvmWalletHandlers({
111
+ wallet: wallet,
112
+ onSuccess: props.onSuccess,
113
+ }),
114
+ polygon: () => getEvmWalletHandlers({
115
+ wallet: wallet,
116
+ onSuccess: props.onSuccess,
117
+ }),
118
+ base: () => getEvmWalletHandlers({
119
+ wallet: wallet,
120
+ onSuccess: props.onSuccess,
121
+ }),
122
+ arbitrum: () => getEvmWalletHandlers({
123
+ wallet: wallet,
124
+ onSuccess: props.onSuccess,
125
+ }),
126
+ user: () => getSessionKeyHandlers(props),
85
127
  })();
86
128
  }
87
129
  function getSolanaWalletHandlers({ wallet, onSuccess, }) {
@@ -129,11 +171,10 @@ function getSolanaTransaction(data) {
129
171
  return vtx;
130
172
  }
131
173
  function getNearWalletHandlers({ wallet, onSuccess, }) {
132
- const nearWallet = wallet;
133
174
  return {
134
175
  handleSendTransaction: async (transaction) => {
135
176
  const action = JSON.parse(Buffer.from(transaction, 'base64').toString());
136
- const executionOutcome = await nearWallet.signAndSendTransaction(action);
177
+ const executionOutcome = await wallet.signAndSendTransaction(action);
137
178
  if (!executionOutcome)
138
179
  throw new Error('Transaction did not send');
139
180
  const { transaction: transactionResult } = executionOutcome;
@@ -143,20 +184,19 @@ function getNearWalletHandlers({ wallet, onSuccess, }) {
143
184
  };
144
185
  }
145
186
  function getEvmWalletHandlers({ wallet, onSuccess, }) {
146
- const evmWallet = wallet;
147
187
  return {
148
188
  handleSendTransaction: async (transaction) => {
149
189
  const tx = JSON.parse(Buffer.from(transaction, 'base64').toString());
150
- const { hash } = await evmWallet.sendTransaction(tx);
190
+ const { hash } = await wallet.sendTransaction(tx);
151
191
  return hash;
152
192
  },
153
193
  handleSignMessage: async (message) => {
154
- return evmWallet.signMessage(message);
194
+ return wallet.signMessage(message);
155
195
  },
156
196
  onSuccess,
157
197
  };
158
198
  }
159
- function getIdWalletHandlers({ onSuccess, }) {
199
+ function getSessionKeyHandlers({ onSuccess, }) {
160
200
  return {
161
201
  handleSendTransaction: async () => {
162
202
  return Promise.resolve('');
@@ -164,4 +204,4 @@ function getIdWalletHandlers({ onSuccess, }) {
164
204
  onSuccess,
165
205
  };
166
206
  }
167
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29pbmZsb3dMaWJNZXNzYWdlSGFuZGxlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2luZmxvd2xhYnMvc3JjL2xpYi9jb21tb24vQ29pbmZsb3dMaWJNZXNzYWdlSGFuZGxlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRTlDLE9BQU8sRUFBQyxJQUFJLEVBQUUsTUFBTSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFvQjlDLElBQUssb0JBT0o7QUFQRCxXQUFLLG9CQUFvQjtJQUN2QixtREFBMkIsQ0FBQTtJQUMzQiwyREFBbUMsQ0FBQTtJQUNuQywyREFBbUMsQ0FBQTtJQUNuQyxxREFBNkIsQ0FBQTtJQUM3QiwyQ0FBbUIsQ0FBQTtJQUNuQixxQ0FBYSxDQUFBO0FBQ2YsQ0FBQyxFQVBJLG9CQUFvQixLQUFwQixvQkFBb0IsUUFPeEI7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUM3QixLQUV1RDtJQUV2RCxJQUFJLFFBQVEsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3RDLE1BQU0sRUFBQyxNQUFNLEVBQUMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxXQUFXLElBQUksTUFBTSxFQUFFLENBQUM7WUFDMUIsT0FBTyxNQUFNLENBQUMsU0FBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3RDLENBQUM7UUFFRCxJQUFJLFNBQVMsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUN4QixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDeEIsQ0FBQztRQUVELElBQUksV0FBVyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQzFCLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUMxQixDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVELE1BQU0sVUFBVSxtQkFB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Q0FBQztRQUNELFNBQVM7S0FDVixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvaW5mbG93UHVyY2hhc2VQcm9wcyxcbiAgQ29pbmZsb3dTZXNzaW9uS2V5UHVyY2hhc2VQcm9wcyxcbiAgRXRoV2FsbGV0LFxuICBOZWFyV2FsbGV0LFxuICBPblN1Y2Nlc3NNZXRob2QsXG4gIFNvbGFuYVdhbGxldCxcbn0gZnJvbSAnLi9Db2luZmxvd1R5cGVzJztcbmltcG9ydCB7Q29pbmZsb3dVdGlsc30gZnJvbSAnLi9Db2luZmxvd1V0aWxzJztcbmltcG9ydCB0eXBlIHtUcmFuc2FjdGlvbiwgVmVyc2lvbmVkVHJhbnNhY3Rpb259IGZyb20gJ0Bzb2xhbmEvd2ViMy5qcyc7XG5pbXBvcnQge3dlYjMsIGJhc2U1OH0gZnJvbSAnLi9Tb2xhbmFQZWVyRGVwcyc7XG5cbmV4cG9ydCB0eXBlIFdhbGxldENhbGwgPVxuICB8IHttZXRob2Q6IElGcmFtZU1lc3NhZ2VNZXRob2RzOyBkYXRhOiBzdHJpbmd9XG4gIHwgU3VjY2Vzc1dhbGxldENhbGw7XG5cbnR5cGUgU3VjY2Vzc1dhbGxldENhbGwgPSB7XG4gIG1ldGhvZDogSUZyYW1lTWVzc2FnZU1ldGhvZHMuU3VjY2VzcztcbiAgZGF0YTogc3RyaW5nO1xuICBpbmZvOiB7cGF5bWVudElkOiBzdHJpbmc7IGhhc2g/OiBzdHJpbmd9O1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBJRnJhbWVNZXNzYWdlSGFuZGxlcnMge1xuICBoYW5kbGVTZW5kVHJhbnNhY3Rpb246ICh0cmFuc2FjdGlvbjogc3RyaW5nKSA9PiBQcm9taXNlPHN0cmluZz47XG4gIGhhbmRsZVNpZ25NZXNzYWdlPzogKG1lc3NhZ2U6IHN0cmluZykgPT4gUHJvbWlzZTxzdHJpbmc+O1xuICBoYW5kbGVTaWduVHJhbnNhY3Rpb24/OiAodHJhbnNhY3Rpb246IHN0cmluZykgPT4gUHJvbWlzZTxzdHJpbmc+O1xuICBoYW5kbGVIZWlnaHRDaGFuZ2U/OiAoaGVpZ2h0OiBzdHJpbmcpID0+IHZvaWQ7XG4gIG9uU3VjY2VzczogT25TdWNjZXNzTWV0aG9kIHwgdW5kZWZpbmVkO1xufVxuXG5lbnVtIElGcmFtZU1lc3NhZ2VNZXRob2RzIHtcbiAgU2lnbk1lc3NhZ2UgPSAnc2lnbk1lc3NhZ2UnLFxuICBTaWduVHJhbnNhY3Rpb24gPSAnc2lnblRyYW5zYWN0aW9uJyxcbiAgU2VuZFRyYW5zYWN0aW9uID0gJ3NlbmRUcmFuc2FjdGlvbicsXG4gIEhlaWdodENoYW5nZSA9ICdoZWlnaHRDaGFuZ2UnLFxuICBTdWNjZXNzID0gJ3N1Y2Nlc3MnLFxuICBMb2FkID0gJ2xvYWQnLFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0V2FsbGV0UHVia2V5KFxuICBpbnB1dDpcbiAgICB8IFBpY2s8Q29pbmZsb3dQdXJjaGFzZVByb3BzLCAnd2FsbGV0Jz5cbiAgICB8IFBpY2s8Q29pbmZsb3dTZXNzaW9uS2V5UHVyY2hhc2VQcm9wcywgJ3Nlc3Npb25LZXknPlxuKTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCB7XG4gIGlmICgnd2FsbGV0JyBpbiBpbnB1dCAmJiBpbnB1dC53YWxsZXQpIHtcbiAgICBjb25zdCB7d2FsbGV0fSA9IGlucHV0O1xuICAgIGlmICgncHVibGljS2V5JyBpbiB3YWxsZXQpIHtcbiAgICAgIHJldHVybiB3YWxsZXQucHVibGljS2V5IS50b1N0cmluZygpO1xuICAgIH1cblxuICAgIGlmICgnYWRkcmVzcycgaW4gd2FsbGV0KSB7XG4gICAgICByZXR1cm4gd2FsbGV0LmFkZHJlc3M7XG4gICAgfVxuXG4gICAgaWYgKCdhY2NvdW50SWQnIGluIHdhbGxldCkge1xuICAgICAgcmV0dXJuIHdhbGxldC5hY2NvdW50SWQ7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVJRnJhbWVNZXNzYWdlKFxuICByYXdNZXNzYWdlOiBzdHJpbmcsXG4gIGhhbmRsZXJzOiBJRnJhbWVNZXNzYWdlSGFuZGxlcnNcbik6IFByb21pc2U8c3RyaW5nPiB8IHZvaWQge1xuICBsZXQgd2FsbGV0Q2FsbDogV2FsbGV0Q2FsbDtcbiAgdHJ5IHtcbiAgICB3YWxsZXRDYWxsID0gSlNPTi5wYXJzZShyYXdNZXNzYWdlKTtcbiAgICBpZiAoISgnbWV0aG9kJyBpbiB3YWxsZXRDYWxsKSB8fCAhKCdkYXRhJyBpbiB3YWxsZXRDYWxsKSkgcmV0dXJuO1xuICB9IGNhdGNoIChlKSB7XG4gICAgY29uc29sZS5lcnJvcignaGFuZGxlSUZyYW1lTWVzc2FnZSBKU09OIHBhcnNlJywgZSk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3Qge2RhdGEsIG1ldGhvZH0gPSB3YWxsZXRDYWxsO1xuICBzd2l0Y2ggKG1ldGhvZCkge1xuICAgIGNhc2UgSUZyYW1lTWVzc2FnZU1ldGhvZHMuU2lnbk1lc3NhZ2U6XG4gICAgICBpZiAoIWhhbmRsZXJzLmhhbmRsZVNpZ25NZXNzYWdlKSByZXR1cm47XG4gICAgICByZXR1cm4gaGFuZGxlcnMuaGFuZGxlU2lnbk1lc3NhZ2UoZGF0YSk7XG4gICAgY2FzZSBJRnJhbWVNZXNzYWdlTWV0aG9kcy5TaWduVHJhbnNhY3Rpb246XG4gICAgICBpZiAoIWhhbmRsZXJzLmhhbmRsZVNpZ25UcmFuc2FjdGlvbikgcmV0dXJuO1xuICAgICAgcmV0dXJuIGhhbmRsZXJzLmhhbmRsZVNpZ25UcmFuc2FjdGlvbihkYXRhKTtcbiAgICBjYXNlIElGcmFtZU1lc3NhZ2VNZXRob2RzLlNlbmRUcmFuc2FjdGlvbjpcbiAgICAgIHJldHVybiBoYW5kbGVycy5oYW5kbGVTZW5kVHJhbnNhY3Rpb24oZGF0YSk7XG4gICAgY2FzZSBJRnJhbWVNZXNzYWdlTWV0aG9kcy5IZWlnaHRDaGFuZ2U6XG4gICAgICBpZiAoIWhhbmRsZXJzLmhhbmRsZUhlaWdodENoYW5nZSkgcmV0dXJuO1xuICAgICAgcmV0dXJuIGhhbmRsZXJzLmhhbmRsZUhlaWdodENoYW5nZShkYXRhKTtcbiAgICBjYXNlIElGcmFtZU1lc3NhZ2VNZXRob2RzLlN1Y2Nlc3M6XG4gICAgICBpZiAoIWhhbmRsZXJzLm9uU3VjY2VzcykgcmV0dXJuO1xuICAgICAgaGFuZGxlcnMub25TdWNjZXNzKCh3YWxsZXRDYWxsIGFzIFN1Y2Nlc3NXYWxsZXRDYWxsKS5pbmZvKTtcbiAgICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnNvbGUud2FybihcbiAgICBgRGlkbid0IGV4cGVjdCB0byBnZXQgaGVyZSwgaGFuZGxlSUZyYW1lTWVzc2FnZSBtZXRob2Q6JHttZXRob2R9IGlzIG5vdCBvbmUgb2YgJHtPYmplY3QudmFsdWVzKElGcmFtZU1lc3NhZ2VNZXRob2RzKX1gXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRIYW5kbGVycyhcbiAgcHJvcHM6IFBpY2s8Q29pbmZsb3dQdXJjaGFzZVByb3BzLCAnd2FsbGV0JyB8ICdibG9ja2NoYWluJyB8ICdvblN1Y2Nlc3MnPlxuKTogT21pdDxJRnJhbWVNZXNzYWdlSGFuZGxlcnMsICdoYW5kbGVIZWlnaHRDaGFuZ2UnPiB7XG4gIGlmICghcHJvcHMuYmxvY2tjaGFpbikge1xuICAgIHJldHVybiB7XG4gICAgICBoYW5kbGVTZW5kVHJhbnNhY3Rpb246ICgpID0+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdoYW5kbGVTZW5kVHJhbnNhY3Rpb24gTm90IEltcGxlbWVudGVkIGZvciBzZXNzaW9uS2V5Jyk7XG4gICAgICB9LFxuICAgICAgaGFuZGxlU2lnbk1lc3NhZ2U6ICgpID0+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdoYW5kbGVTZW5kVHJhbnNhY3Rpb24gTm90IEltcGxlbWVudGVkIGZvciBzZXNzaW9uS2V5Jyk7XG4gICAgICB9LFxuICAgICAgaGFuZGxlU2lnblRyYW5zYWN0aW9uOiAoKSA9PiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignaGFuZGxlU2VuZFRyYW5zYWN0aW9uIE5vdCBJbXBsZW1lbnRlZCBmb3Igc2Vzc2lvbktleScpO1xuICAgICAgfSxcbiAgICAgIG9uU3VjY2VzczogcHJvcHMub25TdWNjZXNzLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4gQ29pbmZsb3dVdGlscy5ieUJsb2NrY2hhaW4ocHJvcHMuYmxvY2tjaGFpbiwge1xuICAgIHNvbGFuYTogKCkgPT4gZ2V0U29sYW5hV2FsbGV0SGFuZGxlcnMocHJvcHMpLFxuICAgIG5lYXI6ICgpID0+IGdldE5lYXJXYWxsZXRIYW5kbGVycyhwcm9wcyksXG4gICAgZXRoOiAoKSA9PiBnZXRFdm1XYWxsZXRIYW5kbGVycyhwcm9wcyksXG4gICAgcG9seWdvbjogKCkgPT4gZ2V0RXZtV2FsbGV0SGFuZGxlcnMocHJvcHMpLFxuICAgIGJhc2U6ICgpID0+IGdldEV2bVdhbGxldEhhbmRsZXJzKHByb3BzKSxcbiAgICBhcmJpdHJ1bTogKCkgPT4gZ2V0RXZtV2FsbGV0SGFuZGxlcnMocHJvcHMpLFxuICAgIHVzZXI6ICgpID0+IGdldElkV2FsbGV0SGFuZGxlcnMocHJvcHMpLFxuICB9KSgpO1xufVxuXG5mdW5jdGlvbiBnZXRTb2xhbmFXYWxsZXRIYW5kbGVycyh7XG4gIHdhbGxldCxcbiAgb25TdWNjZXNzLFxufTogUGljazxDb2luZmxvd1B1cmNoYXNlUHJvcHMsICd3YWxsZXQnIHwgJ29uU3VjY2Vzcyc+KTogT21pdDxcbiAgSUZyYW1lTWVzc2FnZUhhbmRsZXJzLFxuICAnaGFuZGxlSGVpZ2h0Q2hhbmdlJ1xuPiB7XG4gIHJldHVybiB7XG4gICAgaGFuZGxlU2VuZFRyYW5zYWN0aW9uOiBhc3luYyAodHJhbnNhY3Rpb246IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgdHggPSBnZXRTb2xhbmFUcmFuc2FjdGlvbih0cmFuc2FjdGlvbik7XG4gICAgICByZXR1cm4gYXdhaXQgKHdhbGxldCBhcyBTb2xhbmFXYWxsZXQpLnNlbmRUcmFuc2FjdGlvbih0eCk7XG4gICAgfSxcbiAgICBoYW5kbGVTaWduTWVzc2FnZTogYXN5bmMgKG1lc3NhZ2U6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3Qgc2lnbk1lc3NhZ2UgPSAod2FsbGV0IGFzIFNvbGFuYVdhbGxldCkuc2lnbk1lc3NhZ2U7XG4gICAgICBpZiAoIXNpZ25NZXNzYWdlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignc2lnbk1lc3NhZ2UgaXMgbm90IHN1cHBvcnRlZCBieSB0aGlzIHdhbGxldCcpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBzaWduZWRNZXNzYWdlID0gYXdhaXQgc2lnbk1lc3NhZ2UoXG4gICAgICAgIG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShtZXNzYWdlKVxuICAgICAgKTtcbiAgICAgIGlmICghYmFzZTU4KSB0aHJvdyBuZXcgRXJyb3IoJ2JzNTggZGVwZW5kZW5jeSBpcyByZXF1aXJlZCcpO1xuICAgICAgcmV0dXJuIGJhc2U1OC5lbmNvZGUoc2lnbmVkTWVzc2FnZSk7XG4gICAgfSxcbiAgICBoYW5kbGVTaWduVHJhbnNhY3Rpb246IGFzeW5jICh0cmFuc2FjdGlvbjogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCBzaWduVHJhbnNhY3Rpb24gPSAod2FsbGV0IGFzIFNvbGFuYVdhbGxldCkuc2lnblRyYW5zYWN0aW9uO1xuICAgICAgaWYgKCFzaWduVHJhbnNhY3Rpb24pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdzaWduVHJhbnNhY3Rpb24gaXMgbm90IHN1cHBvcnRlZCBieSB0aGlzIHdhbGxldCcpO1xuICAgICAgfVxuICAgICAgY29uc3QgdHggPSBnZXRTb2xhbmFUcmFuc2FjdGlvbih0cmFuc2FjdGlvbik7XG4gICAgICBjb25zdCBzaWduZWRUcmFuc2FjdGlvbiA9IGF3YWl0IHNpZ25UcmFuc2FjdGlvbih0eCk7XG4gICAgICBpZiAoIWJhc2U1OCkgdGhyb3cgbmV3IEVycm9yKCdiczU4IGRlcGVuZGVuY3kgaXMgcmVxdWlyZWQnKTtcbiAgICAgIHJldHVybiBiYXNlNTguZW5jb2RlKFxuICAgICAgICBzaWduZWRUcmFuc2FjdGlvbi5zZXJpYWxpemUoe1xuICAgICAgICAgIHJlcXVpcmVBbGxTaWduYXR1cmVzOiBmYWxzZSxcbiAgICAgICAgICB2ZXJpZnlTaWduYXR1cmVzOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSxcbiAgICBvblN1Y2Nlc3MsXG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldFNvbGFuYVRyYW5zYWN0aW9uKFxuICBkYXRhOiBzdHJpbmdcbik6IFRyYW5zYWN0aW9uIHwgVmVyc2lvbmVkVHJhbnNhY3Rpb24ge1xuICBpZiAoIXdlYjMpXG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ0Bzb2xhbmEvd2ViMy5qcyBpcyBub3QgZGVmaW5lZC4gUGxlYXNlIGluc3RhbGwgQHNvbGFuYS93ZWIzLmpzIGludG8geW91ciBwcm9qZWN0J1xuICAgICk7XG5cbiAgaWYgKCFiYXNlNTgpXG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ2JzNTggaXMgbm90IGRlZmluZWQuIFBsZWFzZSBpbnN0YWxsIGJzNTggaW50byB5b3VyIHByb2plY3QnXG4gICAgKTtcblxuICBjb25zdCBwYXJzZWRVSW50OEFycmF5ID0gYmFzZTU4LmRlY29kZShkYXRhKTtcbiAgY29uc3QgdnR4ID0gd2ViMy5WZXJzaW9uZWRUcmFuc2FjdGlvbi5kZXNlcmlhbGl6ZShwYXJzZWRVSW50OEFycmF5KTtcbiAgaWYgKHZ0eC52ZXJzaW9uID09PSAnbGVnYWN5JykgcmV0dXJuIHdlYjMuVHJhbnNhY3Rpb24uZnJvbShwYXJzZWRVSW50OEFycmF5KTtcbiAgcmV0dXJuIHZ0eDtcbn1cblxuZnVuY3Rpb24gZ2V0TmVhcldhbGxldEhhbmRsZXJzKHtcbiAgd2FsbGV0LFxuICBvblN1Y2Nlc3MsXG59OiBQaWNrPENvaW5mbG93UHVyY2hhc2VQcm9wcywgJ3dhbGxldCcgfCAnb25TdWNjZXNzJz4pOiBPbWl0PFxuICBJRnJhbWVNZXNzYWdlSGFuZGxlcnMsXG4gICdoYW5kbGVIZWlnaHRDaGFuZ2UnXG4+IHtcbiAgY29uc3QgbmVhcldhbGxldCA9IHdhbGxldCBhcyBOZWFyV2FsbGV0O1xuICByZXR1cm4ge1xuICAgIGhhbmRsZVNlbmRUcmFuc2FjdGlvbjogYXN5bmMgKHRyYW5zYWN0aW9uOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IGFjdGlvbiA9IEpTT04ucGFyc2UoQnVmZmVyLmZyb20odHJhbnNhY3Rpb24sICdiYXNlNjQnKS50b1N0cmluZygpKTtcbiAgICAgIGNvbnN0IGV4ZWN1dGlvbk91dGNvbWUgPSBhd2FpdCBuZWFyV2FsbGV0LnNpZ25BbmRTZW5kVHJhbnNhY3Rpb24oYWN0aW9uKTtcbiAgICAgIGlmICghZXhlY3V0aW9uT3V0Y29tZSkgdGhyb3cgbmV3IEVycm9yKCdUcmFuc2FjdGlvbiBkaWQgbm90IHNlbmQnKTtcbiAgICAgIGNvbnN0IHt0cmFuc2FjdGlvbjogdHJhbnNhY3Rpb25SZXN1bHR9ID0gZXhlY3V0aW9uT3V0Y29tZTtcbiAgICAgIHJldHVybiB0cmFuc2FjdGlvblJlc3VsdC5oYXNoO1xuICAgIH0sXG4gICAgb25TdWNjZXNzLFxuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRFdm1XYWxsZXRIYW5kbGVycyh7XG4gIHdhbGxldCxcbiAgb25TdWNjZXNzLFxufTogUGljazxDb2luZmxvd1B1cmNoYXNlUHJvcHMsICd3YWxsZXQnIHwgJ29uU3VjY2Vzcyc+KTogT21pdDxcbiAgSUZyYW1lTWVzc2FnZUhhbmRsZXJzLFxuICAnaGFuZGxlSGVpZ2h0Q2hhbmdlJ1xuPiB7XG4gIGNvbnN0IGV2bVdhbGxldCA9IHdhbGxldCBhcyBFdGhXYWxsZXQ7XG4gIHJldHVybiB7XG4gICAgaGFuZGxlU2VuZFRyYW5zYWN0aW9uOiBhc3luYyAodHJhbnNhY3Rpb246IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgdHggPSBKU09OLnBhcnNlKEJ1ZmZlci5mcm9tKHRyYW5zYWN0aW9uLCAnYmFzZTY0JykudG9TdHJpbmcoKSk7XG4gICAgICBjb25zdCB7aGFzaH0gPSBhd2FpdCBldm1XYWxsZXQuc2VuZFRyYW5zYWN0aW9uKHR4KTtcbiAgICAgIHJldHVybiBoYXNoO1xuICAgIH0sXG4gICAgaGFuZGxlU2lnbk1lc3NhZ2U6IGFzeW5jIChtZXNzYWdlOiBzdHJpbmcpID0+IHtcbiAgICAgIHJldHVybiBldm1XYWxsZXQuc2lnbk1lc3NhZ2UobWVzc2FnZSk7XG4gICAgfSxcbiAgICBvblN1Y2Nlc3MsXG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldElkV2FsbGV0SGFuZGxlcnMoe1xuICBvblN1Y2Nlc3MsXG59OiBQaWNrPENvaW5mbG93UHVyY2hhc2VQcm9wcywgJ29uU3VjY2Vzcyc+KTogT21pdDxcbiAgSUZyYW1lTWVzc2FnZUhhbmRsZXJzLFxuICAnaGFuZGxlSGVpZ2h0Q2hhbmdlJ1xuPiB7XG4gIHJldHVybiB7XG4gICAgaGFuZGxlU2VuZFRyYW5zYWN0aW9uOiBhc3luYyAoKSA9PiB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCcnKTtcbiAgICB9LFxuICAgIG9uU3VjY2VzcyxcbiAgfTtcbn1cbiJdfQ==
207
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29pbmZsb3dMaWJNZXNzYWdlSGFuZGxlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2luZmxvd2xhYnMvc3JjL2xpYi9jb21tb24vQ29pbmZsb3dMaWJNZXNzYWdlSGFuZGxlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0EsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRTlDLE9BQU8sRUFBQyxJQUFJLEVBQUUsTUFBTSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFvQjlDLElBQUssb0JBT0o7QUFQRCxXQUFLLG9CQUFvQjtJQUN2QixtREFBMkIsQ0FBQTtJQUMzQiwyREFBbUMsQ0FBQTtJQUNuQywyREFBbUMsQ0FBQTtJQUNuQyxxREFBNkIsQ0FBQTtJQUM3QiwyQ0FBbUIsQ0FBQTtJQUNuQix5Q0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBUEksb0JBQW9CLEtBQXBCLG9CQUFvQixRQU94QjtBQUVELE1BQU0sVUFBVSxlQUFlLENBQzdCLEtBQTRCO0lBRTVCLElBQUksTUFBK0IsQ0FBQztJQUNwQyxJQUNFLFFBQVEsSUFBSSxLQUFLO1FBQ2pCLE9BQU8sS0FBSyxDQUFDLE1BQU0sS0FBSyxRQUFRO1FBQ2hDLEtBQUssQ0FBQyxNQUFNO1FBQ1osUUFBUSxJQUFJLEtBQUssQ0FBQyxNQUFNO1FBRXhCLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQXFCLENBQUM7U0FDekMsSUFBSSxRQUFRLElBQUksS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNO1FBQUUsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7SUFFbEUsSUFBSSxDQUFDLE1BQU07UUFBRSxPQUFPO0lBRXBCLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUTtRQUFFLE9BQU8sTUFBTSxDQUFDO0lBRTlDLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDL0IsSUFBSSxXQUFX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Q0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFDRCxTQUFTO0tBQ1YsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLHFCQUFxQixDQUFDLEVBQzdCLFNBQVMsR0FDZ0M7SUFJekMsT0FBTztRQUNMLHFCQUFxQixFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ2hDLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM3QixDQUFDO1FBQ0QsU0FBUztLQUNWLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29pbmZsb3dCbG9ja2NoYWluLFxuICBDb2luZmxvd1B1cmNoYXNlUHJvcHMsXG4gIEV0aFdhbGxldCxcbiAgTmVhcldhbGxldCxcbiAgT25TdWNjZXNzTWV0aG9kLFxuICBTb2xhbmFXYWxsZXQsXG4gIFdhbGxldFR5cGVzLFxufSBmcm9tICcuL0NvaW5mbG93VHlwZXMnO1xuaW1wb3J0IHtDb2luZmxvd1V0aWxzfSBmcm9tICcuL0NvaW5mbG93VXRpbHMnO1xuaW1wb3J0IHR5cGUge1RyYW5zYWN0aW9uLCBWZXJzaW9uZWRUcmFuc2FjdGlvbn0gZnJvbSAnQHNvbGFuYS93ZWIzLmpzJztcbmltcG9ydCB7d2ViMywgYmFzZTU4fSBmcm9tICcuL1NvbGFuYVBlZXJEZXBzJztcblxuZXhwb3J0IHR5cGUgV2FsbGV0Q2FsbCA9XG4gIHwge21ldGhvZDogSUZyYW1lTWVzc2FnZU1ldGhvZHM7IGRhdGE6IHN0cmluZ31cbiAgfCBTdWNjZXNzV2FsbGV0Q2FsbDtcblxudHlwZSBTdWNjZXNzV2FsbGV0Q2FsbCA9IHtcbiAgbWV0aG9kOiBJRnJhbWVNZXNzYWdlTWV0aG9kcy5TdWNjZXNzO1xuICBkYXRhOiBzdHJpbmc7XG4gIGluZm86IHtwYXltZW50SWQ6IHN0cmluZzsgaGFzaD86IHN0cmluZ307XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIElGcmFtZU1lc3NhZ2VIYW5kbGVycyB7XG4gIGhhbmRsZVNlbmRUcmFuc2FjdGlvbjogKHRyYW5zYWN0aW9uOiBzdHJpbmcpID0+IFByb21pc2U8c3RyaW5nPjtcbiAgaGFuZGxlU2lnbk1lc3NhZ2U/OiAobWVzc2FnZTogc3RyaW5nKSA9PiBQcm9taXNlPHN0cmluZz47XG4gIGhhbmRsZVNpZ25UcmFuc2FjdGlvbj86ICh0cmFuc2FjdGlvbjogc3RyaW5nKSA9PiBQcm9taXNlPHN0cmluZz47XG4gIGhhbmRsZUhlaWdodENoYW5nZT86IChoZWlnaHQ6IHN0cmluZykgPT4gdm9pZDtcbiAgb25TdWNjZXNzOiBPblN1Y2Nlc3NNZXRob2QgfCB1bmRlZmluZWQ7XG59XG5cbmVudW0gSUZyYW1lTWVzc2FnZU1ldGhvZHMge1xuICBTaWduTWVzc2FnZSA9ICdzaWduTWVzc2FnZScsXG4gIFNpZ25UcmFuc2FjdGlvbiA9ICdzaWduVHJhbnNhY3Rpb24nLFxuICBTZW5kVHJhbnNhY3Rpb24gPSAnc2VuZFRyYW5zYWN0aW9uJyxcbiAgSGVpZ2h0Q2hhbmdlID0gJ2hlaWdodENoYW5nZScsXG4gIFN1Y2Nlc3MgPSAnc3VjY2VzcycsXG4gIExvYWRlZCA9ICdsb2FkZWQnLFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0V2FsbGV0UHVia2V5KFxuICBpbnB1dDogQ29pbmZsb3dQdXJjaGFzZVByb3BzXG4pOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkIHtcbiAgbGV0IHdhbGxldDogV2FsbGV0VHlwZXMgfCB1bmRlZmluZWQ7XG4gIGlmIChcbiAgICAnc2lnbmVyJyBpbiBpbnB1dCAmJlxuICAgIHR5cGVvZiBpbnB1dC5zaWduZXIgPT09ICdvYmplY3QnICYmXG4gICAgaW5wdXQuc2lnbmVyICYmXG4gICAgJ3dhbGxldCcgaW4gaW5wdXQuc2lnbmVyXG4gIClcbiAgICB3YWxsZXQgPSBpbnB1dC5zaWduZXIud2FsbGV0IGFzIFdhbGxldFR5cGVzO1xuICBlbHNlIGlmICgnd2FsbGV0JyBpbiBpbnB1dCAmJiBpbnB1dC53YWxsZXQpIHdhbGxldCA9IGlucHV0LndhbGxldDtcblxuICBpZiAoIXdhbGxldCkgcmV0dXJuO1xuXG4gIGlmICh0eXBlb2Ygd2FsbGV0ID09PSAnc3RyaW5nJykgcmV0dXJuIHdhbGxldDtcblxuICBpZiAodHlwZW9mIHdhbGxldCA9PT0gJ29iamVjdCcpIHtcbiAgICBpZiAoJ3B1YmxpY0tleScgaW4gd2FsbGV0KVxuICAgICAgcmV0dXJuIHdhbGxldC5wdWJsaWNLZXkgPyB3YWxsZXQucHVibGljS2V5LnRvU3RyaW5nKCkgOiB1bmRlZmluZWQ7XG5cbiAgICBpZiAoJ2FkZHJlc3MnIGluIHdhbGxldClcbiAgICAgIHJldHVybiB3YWxsZXQuYWRkcmVzcyA/ICh3YWxsZXQuYWRkcmVzcyBhcyBzdHJpbmcpIDogdW5kZWZpbmVkO1xuXG4gICAgaWYgKCdhY2NvdW50SWQnIGluIHdhbGxldClcbiAgICAgIHJldHVybiB3YWxsZXQuYWNjb3VudElkID8gKHdhbGxldC5hY2NvdW50SWQgYXMgc3RyaW5nKSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlSUZyYW1lTWVzc2FnZShcbiAgcmF3TWVzc2FnZTogc3RyaW5nLFxuICBoYW5kbGVyczogSUZyYW1lTWVzc2FnZUhhbmRsZXJzXG4pOiBQcm9taXNlPHN0cmluZz4gfCB2b2lkIHtcbiAgbGV0IHdhbGxldENhbGw6IFdhbGxldENhbGw7XG4gIHRyeSB7XG4gICAgd2FsbGV0Q2FsbCA9IEpTT04ucGFyc2UocmF3TWVzc2FnZSk7XG4gICAgaWYgKCEoJ21ldGhvZCcgaW4gd2FsbGV0Q2FsbCkgfHwgISgnZGF0YScgaW4gd2FsbGV0Q2FsbCkpIHJldHVybjtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGNvbnNvbGUuZXJyb3IoJ2hhbmRsZUlGcmFtZU1lc3NhZ2UgSlNPTiBwYXJzZScsIGUpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHtkYXRhLCBtZXRob2R9ID0gd2FsbGV0Q2FsbDtcbiAgc3dpdGNoIChtZXRob2QpIHtcbiAgICBjYXNlIElGcmFtZU1lc3NhZ2VNZXRob2RzLlNpZ25NZXNzYWdlOlxuICAgICAgaWYgKCFoYW5kbGVycy5oYW5kbGVTaWduTWVzc2FnZSkgcmV0dXJuO1xuICAgICAgcmV0dXJuIGhhbmRsZXJzLmhhbmRsZVNpZ25NZXNzYWdlKGRhdGEpO1xuICAgIGNhc2UgSUZyYW1lTWVzc2FnZU1ldGhvZHMuU2lnblRyYW5zYWN0aW9uOlxuICAgICAgaWYgKCFoYW5kbGVycy5oYW5kbGVTaWduVHJhbnNhY3Rpb24pIHJldHVybjtcbiAgICAgIHJldHVybiBoYW5kbGVycy5oYW5kbGVTaWduVHJhbnNhY3Rpb24oZGF0YSk7XG4gICAgY2FzZSBJRnJhbWVNZXNzYWdlTWV0aG9kcy5TZW5kVHJhbnNhY3Rpb246XG4gICAgICByZXR1cm4gaGFuZGxlcnMuaGFuZGxlU2VuZFRyYW5zYWN0aW9uKGRhdGEpO1xuICAgIGNhc2UgSUZyYW1lTWVzc2FnZU1ldGhvZHMuSGVpZ2h0Q2hhbmdlOlxuICAgICAgaWYgKCFoYW5kbGVycy5oYW5kbGVIZWlnaHRDaGFuZ2UpIHJldHVybjtcbiAgICAgIHJldHVybiBoYW5kbGVycy5oYW5kbGVIZWlnaHRDaGFuZ2UoZGF0YSk7XG4gICAgY2FzZSBJRnJhbWVNZXNzYWdlTWV0aG9kcy5TdWNjZXNzOlxuICAgICAgaWYgKCFoYW5kbGVycy5vblN1Y2Nlc3MpIHJldHVybjtcbiAgICAgIGhhbmRsZXJzLm9uU3VjY2Vzcygod2FsbGV0Q2FsbCBhcyBTdWNjZXNzV2FsbGV0Q2FsbCkuaW5mbyk7XG4gICAgICByZXR1cm47XG4gICAgY2FzZSBJRnJhbWVNZXNzYWdlTWV0aG9kcy5Mb2FkZWQ6XG4gICAgICByZXR1cm47XG4gIH1cblxuICBjb25zb2xlLndhcm4oXG4gICAgYERpZG4ndCBleHBlY3QgdG8gZ2V0IGhlcmUsIGhhbmRsZUlGcmFtZU1lc3NhZ2UgbWV0aG9kOiR7bWV0aG9kfSBpcyBub3Qgb25lIG9mICR7T2JqZWN0LnZhbHVlcyhJRnJhbWVNZXNzYWdlTWV0aG9kcyl9YFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SGFuZGxlcnMoXG4gIHByb3BzOiBDb2luZmxvd1B1cmNoYXNlUHJvcHNcbik6IE9taXQ8SUZyYW1lTWVzc2FnZUhhbmRsZXJzLCAnaGFuZGxlSGVpZ2h0Q2hhbmdlJz4ge1xuICBsZXQgY2hhaW46IENvaW5mbG93QmxvY2tjaGFpbiB8IHVuZGVmaW5lZDtcbiAgbGV0IHdhbGxldDogV2FsbGV0VHlwZXMgfCB1bmRlZmluZWQ7XG4gIGlmIChcbiAgICAnc2lnbmVyJyBpbiBwcm9wcyAmJlxuICAgIHR5cGVvZiBwcm9wcy5zaWduZXIgPT09ICdvYmplY3QnICYmXG4gICAgcHJvcHMuc2lnbmVyICYmXG4gICAgJ2Jsb2NrY2hhaW4nIGluIHByb3BzLnNpZ25lciAmJlxuICAgICd3YWxsZXQnIGluIHByb3BzLnNpZ25lclxuICApIHtcbiAgICBjaGFpbiA9IHByb3BzLnNpZ25lci5ibG9ja2NoYWluIGFzIENvaW5mbG93QmxvY2tjaGFpbjtcbiAgICB3YWxsZXQgPSBwcm9wcy5zaWduZXIud2FsbGV0IGFzIFdhbGxldFR5cGVzO1xuICB9IGVsc2UgaWYgKCdibG9ja2NoYWluJyBpbiBwcm9wcyAmJiBwcm9wcy5ibG9ja2NoYWluKSB7XG4gICAgY2hhaW4gPSBwcm9wcy5ibG9ja2NoYWluO1xuICAgIHdhbGxldCA9IHByb3BzLndhbGxldDtcbiAgfVxuXG4gIGlmICghY2hhaW4pIHtcbiAgICByZXR1cm4ge1xuICAgICAgaGFuZGxlU2VuZFRyYW5zYWN0aW9uOiAoKSA9PiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignaGFuZGxlU2VuZFRyYW5zYWN0aW9uIE5vdCBJbXBsZW1lbnRlZCcpO1xuICAgICAgfSxcbiAgICAgIGhhbmRsZVNpZ25NZXNzYWdlOiAoKSA9PiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignaGFuZGxlU2VuZFRyYW5zYWN0aW9uIE5vdCBJbXBsZW1lbnRlZCcpO1xuICAgICAgfSxcbiAgICAgIGhhbmRsZVNpZ25UcmFuc2FjdGlvbjogKCkgPT4ge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2hhbmRsZVNlbmRUcmFuc2FjdGlvbiBOb3QgSW1wbGVtZW50ZWQnKTtcbiAgICAgIH0sXG4gICAgICBvblN1Y2Nlc3M6IHByb3BzLm9uU3VjY2VzcyxcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIENvaW5mbG93VXRpbHMuYnlCbG9ja2NoYWluKGNoYWluLCB7XG4gICAgc29sYW5hOiAoKSA9PlxuICAgICAgZ2V0U29sYW5hV2FsbGV0SGFuZGxlcnMoe1xuICAgICAgICB3YWxsZXQ6IHdhbGxldCBhcyBTb2xhbmFXYWxsZXQsXG4gICAgICAgIG9uU3VjY2VzczogcHJvcHMub25TdWNjZXNzLFxuICAgICAgfSksXG4gICAgbmVhcjogKCkgPT5cbiAgICAgIGdldE5lYXJXYWxsZXRIYW5kbGVycyh7XG4gICAgICAgIHdhbGxldDogd2FsbGV0IGFzIE5lYXJXYWxsZXQsXG4gICAgICAgIG9uU3VjY2VzczogcHJvcHMub25TdWNjZXNzLFxuICAgICAgfSksXG4gICAgZXRoOiAoKSA9PlxuICAgICAgZ2V0RXZtV2FsbGV0SGFuZGxlcnMoe1xuICAgICAgICB3YWxsZXQ6IHdhbGxldCBhcyBFdGhXYWxsZXQsXG4gICAgICAgIG9uU3VjY2VzczogcHJvcHMub25TdWNjZXNzLFxuICAgICAgfSksXG4gICAgcG9seWdvbjogKCkgPT5cbiAgICAgIGdldEV2bVdhbGxldEhhbmRsZXJzKHtcbiAgICAgICAgd2FsbGV0OiB3YWxsZXQgYXMgRXRoV2FsbGV0LFxuICAgICAgICBvblN1Y2Nlc3M6IHByb3BzLm9uU3VjY2VzcyxcbiAgICAgIH0pLFxuICAgIGJhc2U6ICgpID0+XG4gICAgICBnZXRFdm1XYWxsZXRIYW5kbGVycyh7XG4gICAgICAgIHdhbGxldDogd2FsbGV0IGFzIEV0aFdhbGxldCxcbiAgICAgICAgb25TdWNjZXNzOiBwcm9wcy5vblN1Y2Nlc3MsXG4gICAgICB9KSxcbiAgICBhcmJpdHJ1bTogKCkgPT5cbiAgICAgIGdldEV2bVdhbGxldEhhbmRsZXJzKHtcbiAgICAgICAgd2FsbGV0OiB3YWxsZXQgYXMgRXRoV2FsbGV0LFxuICAgICAgICBvblN1Y2Nlc3M6IHByb3BzLm9uU3VjY2VzcyxcbiAgICAgIH0pLFxuICAgIHVzZXI6ICgpID0+IGdldFNlc3Npb25LZXlIYW5kbGVycyhwcm9wcyksXG4gIH0pKCk7XG59XG5cbmZ1bmN0aW9uIGdldFNvbGFuYVdhbGxldEhhbmRsZXJzKHtcbiAgd2FsbGV0LFxuICBvblN1Y2Nlc3MsXG59OiB7XG4gIHdhbGxldDogU29sYW5hV2FsbGV0O1xuICBvblN1Y2Nlc3M/OiBPblN1Y2Nlc3NNZXRob2Q7XG59KTogT21pdDxJRnJhbWVNZXNzYWdlSGFuZGxlcnMsICdoYW5kbGVIZWlnaHRDaGFuZ2UnPiB7XG4gIHJldHVybiB7XG4gICAgaGFuZGxlU2VuZFRyYW5zYWN0aW9uOiBhc3luYyAodHJhbnNhY3Rpb246IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgdHggPSBnZXRTb2xhbmFUcmFuc2FjdGlvbih0cmFuc2FjdGlvbik7XG4gICAgICByZXR1cm4gYXdhaXQgd2FsbGV0LnNlbmRUcmFuc2FjdGlvbih0eCk7XG4gICAgfSxcbiAgICBoYW5kbGVTaWduTWVzc2FnZTogYXN5bmMgKG1lc3NhZ2U6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3Qgc2lnbk1lc3NhZ2UgPSB3YWxsZXQuc2lnbk1lc3NhZ2U7XG4gICAgICBpZiAoIXNpZ25NZXNzYWdlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignc2lnbk1lc3NhZ2UgaXMgbm90IHN1cHBvcnRlZCBieSB0aGlzIHdhbGxldCcpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBzaWduZWRNZXNzYWdlID0gYXdhaXQgc2lnbk1lc3NhZ2UoXG4gICAgICAgIG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShtZXNzYWdlKVxuICAgICAgKTtcbiAgICAgIGlmICghYmFzZTU4KSB0aHJvdyBuZXcgRXJyb3IoJ2JzNTggZGVwZW5kZW5jeSBpcyByZXF1aXJlZCcpO1xuICAgICAgcmV0dXJuIGJhc2U1OC5lbmNvZGUoc2lnbmVkTWVzc2FnZSk7XG4gICAgfSxcbiAgICBoYW5kbGVTaWduVHJhbnNhY3Rpb246IGFzeW5jICh0cmFuc2FjdGlvbjogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCBzaWduVHJhbnNhY3Rpb24gPSB3YWxsZXQuc2lnblRyYW5zYWN0aW9uO1xuICAgICAgaWYgKCFzaWduVHJhbnNhY3Rpb24pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdzaWduVHJhbnNhY3Rpb24gaXMgbm90IHN1cHBvcnRlZCBieSB0aGlzIHdhbGxldCcpO1xuICAgICAgfVxuICAgICAgY29uc3QgdHggPSBnZXRTb2xhbmFUcmFuc2FjdGlvbih0cmFuc2FjdGlvbik7XG4gICAgICBjb25zdCBzaWduZWRUcmFuc2FjdGlvbiA9IGF3YWl0IHNpZ25UcmFuc2FjdGlvbih0eCk7XG4gICAgICBpZiAoIWJhc2U1OCkgdGhyb3cgbmV3IEVycm9yKCdiczU4IGRlcGVuZGVuY3kgaXMgcmVxdWlyZWQnKTtcbiAgICAgIHJldHVybiBiYXNlNTguZW5jb2RlKFxuICAgICAgICBzaWduZWRUcmFuc2FjdGlvbi5zZXJpYWxpemUoe1xuICAgICAgICAgIHJlcXVpcmVBbGxTaWduYXR1cmVzOiBmYWxzZSxcbiAgICAgICAgICB2ZXJpZnlTaWduYXR1cmVzOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSxcbiAgICBvblN1Y2Nlc3MsXG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldFNvbGFuYVRyYW5zYWN0aW9uKFxuICBkYXRhOiBzdHJpbmdcbik6IFRyYW5zYWN0aW9uIHwgVmVyc2lvbmVkVHJhbnNhY3Rpb24ge1xuICBpZiAoIXdlYjMpXG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ0Bzb2xhbmEvd2ViMy5qcyBpcyBub3QgZGVmaW5lZC4gUGxlYXNlIGluc3RhbGwgQHNvbGFuYS93ZWIzLmpzIGludG8geW91ciBwcm9qZWN0J1xuICAgICk7XG5cbiAgaWYgKCFiYXNlNTgpXG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ2JzNTggaXMgbm90IGRlZmluZWQuIFBsZWFzZSBpbnN0YWxsIGJzNTggaW50byB5b3VyIHByb2plY3QnXG4gICAgKTtcblxuICBjb25zdCBwYXJzZWRVSW50OEFycmF5ID0gYmFzZTU4LmRlY29kZShkYXRhKTtcbiAgY29uc3QgdnR4ID0gd2ViMy5WZXJzaW9uZWRUcmFuc2FjdGlvbi5kZXNlcmlhbGl6ZShwYXJzZWRVSW50OEFycmF5KTtcbiAgaWYgKHZ0eC52ZXJzaW9uID09PSAnbGVnYWN5JykgcmV0dXJuIHdlYjMuVHJhbnNhY3Rpb24uZnJvbShwYXJzZWRVSW50OEFycmF5KTtcbiAgcmV0dXJuIHZ0eDtcbn1cblxuZnVuY3Rpb24gZ2V0TmVhcldhbGxldEhhbmRsZXJzKHtcbiAgd2FsbGV0LFxuICBvblN1Y2Nlc3MsXG59OiB7XG4gIHdhbGxldDogTmVhcldhbGxldDtcbiAgb25TdWNjZXNzPzogT25TdWNjZXNzTWV0aG9kO1xufSk6IE9taXQ8SUZyYW1lTWVzc2FnZUhhbmRsZXJzLCAnaGFuZGxlSGVpZ2h0Q2hhbmdlJz4ge1xuICByZXR1cm4ge1xuICAgIGhhbmRsZVNlbmRUcmFuc2FjdGlvbjogYXN5bmMgKHRyYW5zYWN0aW9uOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IGFjdGlvbiA9IEpTT04ucGFyc2UoQnVmZmVyLmZyb20odHJhbnNhY3Rpb24sICdiYXNlNjQnKS50b1N0cmluZygpKTtcbiAgICAgIGNvbnN0IGV4ZWN1dGlvbk91dGNvbWUgPSBhd2FpdCB3YWxsZXQuc2lnbkFuZFNlbmRUcmFuc2FjdGlvbihhY3Rpb24pO1xuICAgICAgaWYgKCFleGVjdXRpb25PdXRjb21lKSB0aHJvdyBuZXcgRXJyb3IoJ1RyYW5zYWN0aW9uIGRpZCBub3Qgc2VuZCcpO1xuICAgICAgY29uc3Qge3RyYW5zYWN0aW9uOiB0cmFuc2FjdGlvblJlc3VsdH0gPSBleGVjdXRpb25PdXRjb21lO1xuICAgICAgcmV0dXJuIHRyYW5zYWN0aW9uUmVzdWx0Lmhhc2g7XG4gICAgfSxcbiAgICBvblN1Y2Nlc3MsXG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldEV2bVdhbGxldEhhbmRsZXJzKHtcbiAgd2FsbGV0LFxuICBvblN1Y2Nlc3MsXG59OiB7XG4gIHdhbGxldDogRXRoV2FsbGV0O1xuICBvblN1Y2Nlc3M/OiBPblN1Y2Nlc3NNZXRob2Q7XG59KTogT21pdDxJRnJhbWVNZXNzYWdlSGFuZGxlcnMsICdoYW5kbGVIZWlnaHRDaGFuZ2UnPiB7XG4gIHJldHVybiB7XG4gICAgaGFuZGxlU2VuZFRyYW5zYWN0aW9uOiBhc3luYyAodHJhbnNhY3Rpb246IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgdHggPSBKU09OLnBhcnNlKEJ1ZmZlci5mcm9tKHRyYW5zYWN0aW9uLCAnYmFzZTY0JykudG9TdHJpbmcoKSk7XG4gICAgICBjb25zdCB7aGFzaH0gPSBhd2FpdCB3YWxsZXQuc2VuZFRyYW5zYWN0aW9uKHR4KTtcbiAgICAgIHJldHVybiBoYXNoO1xuICAgIH0sXG4gICAgaGFuZGxlU2lnbk1lc3NhZ2U6IGFzeW5jIChtZXNzYWdlOiBzdHJpbmcpID0+IHtcbiAgICAgIHJldHVybiB3YWxsZXQuc2lnbk1lc3NhZ2UobWVzc2FnZSk7XG4gICAgfSxcbiAgICBvblN1Y2Nlc3MsXG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldFNlc3Npb25LZXlIYW5kbGVycyh7XG4gIG9uU3VjY2Vzcyxcbn06IFBpY2s8Q29pbmZsb3dQdXJjaGFzZVByb3BzLCAnb25TdWNjZXNzJz4pOiBPbWl0PFxuICBJRnJhbWVNZXNzYWdlSGFuZGxlcnMsXG4gICdoYW5kbGVIZWlnaHRDaGFuZ2UnXG4+IHtcbiAgcmV0dXJuIHtcbiAgICBoYW5kbGVTZW5kVHJhbnNhY3Rpb246IGFzeW5jICgpID0+IHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoJycpO1xuICAgIH0sXG4gICAgb25TdWNjZXNzLFxuICB9O1xufVxuIl19
@@ -23,4 +23,4 @@ export var CardType;
23
23
  CardType["AMEX"] = "AMEX";
24
24
  CardType["DISCOVER"] = "DISC";
25
25
  })(CardType || (CardType = {}));
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29pbmZsb3dUeXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvaW5mbG93bGFicy9zcmMvbGliL2NvbW1vbi9Db2luZmxvd1R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFBLE1BQU0sQ0FBTixJQUFZLGNBSVg7QUFKRCxXQUFZLGNBQWM7SUFDeEIscUNBQW1CLENBQUE7SUFDbkIsK0JBQWEsQ0FBQTtJQUNiLCtCQUFhLENBQUE7QUFDZixDQUFDLEVBSlcsY0FBYyxLQUFkLGNBQWMsUUFJekI7QUFFRCxNQUFNLENBQU4sSUFBWSxhQUlYO0FBSkQsV0FBWSxhQUFhO0lBQ3ZCLG9DQUFtQixDQUFBO0lBQ25CLGdDQUFlLENBQUE7SUFDZiw4QkFBYSxDQUFBO0FBQ2YsQ0FBQyxFQUpXLGFBQWEsS0FBYixhQUFhLFFBSXhCO0FBd05ELE1BQU0sQ0FBTixJQUFZLDBCQUlYO0FBSkQsV0FBWSwwQkFBMEI7SUFDcEMsMkRBQTZCLENBQUE7SUFDN0IsMkRBQTZCLENBQUE7SUFDN0IscURBQXVCLENBQUE7QUFDekIsQ0FBQyxFQUpXLDBCQUEwQixLQUExQiwwQkFBMEIsUUFJckM7QUE0UEQsTUFBTSxDQUFOLElBQVksUUFLWDtBQUxELFdBQVksUUFBUTtJQUNsQix5QkFBYSxDQUFBO0lBQ2IsK0JBQW1CLENBQUE7SUFDbkIseUJBQWEsQ0FBQTtJQUNiLDZCQUFpQixDQUFBO0FBQ25CLENBQUMsRUFMVyxRQUFRLEtBQVIsUUFBUSxRQUtuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgQ29ubmVjdGlvbixcbiAgVmVyc2lvbmVkVHJhbnNhY3Rpb24sXG4gIFB1YmxpY0tleSxcbiAgU2lnbmVyLFxuICBUcmFuc2FjdGlvbixcbn0gZnJvbSAnQHNvbGFuYS93ZWIzLmpzJztcblxuZXhwb3J0IGVudW0gU2V0dGxlbWVudFR5cGUge1xuICBDcmVkaXRzID0gJ0NyZWRpdHMnLFxuICBVU0RDID0gJ1VTREMnLFxuICBCYW5rID0gJ0JhbmsnLFxufVxuXG5leHBvcnQgZW51bSBNZXJjaGFudFN0eWxlIHtcbiAgUm91bmRlZCA9ICdyb3VuZGVkJyxcbiAgU2hhcnAgPSAnc2hhcnAnLFxuICBQaWxsID0gJ3BpbGwnLFxufVxuXG5leHBvcnQgdHlwZSBNZXJjaGFudFRoZW1lID0ge1xuICBwcmltYXJ5Pzogc3RyaW5nO1xuICBiYWNrZ3JvdW5kPzogc3RyaW5nO1xuICBiYWNrZ3JvdW5kQWNjZW50Pzogc3RyaW5nO1xuICBiYWNrZ3JvdW5kQWNjZW50Mj86IHN0cmluZztcbiAgdGV4dENvbG9yPzogc3RyaW5nO1xuICB0ZXh0Q29sb3JBY2NlbnQ/OiBzdHJpbmc7XG4gIHRleHRDb2xvckFjdGlvbj86IHN0cmluZztcbiAgZm9udD86IHN0cmluZztcbiAgc3R5bGU/OiBNZXJjaGFudFN0eWxlO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21lckluZm8ge1xuICBuYW1lPzogc3RyaW5nO1xuICB2ZXJpZmljYXRpb25JZD86IHN0cmluZztcbiAgZGlzcGxheU5hbWU/OiBzdHJpbmc7XG4gIGFkZHJlc3M/OiBzdHJpbmc7XG4gIGNpdHk/OiBzdHJpbmc7XG4gIHN0YXRlPzogc3RyaW5nO1xuICB6aXA/OiBzdHJpbmc7XG4gIGNvdW50cnk/OiBzdHJpbmc7XG4gIGlwPzogc3RyaW5nO1xuICBsYXQ/OiBzdHJpbmc7XG4gIGxuZz86IHN0cmluZztcbn1cblxuLyoqIENvaW5mbG93IFR5cGVzICoqL1xuZXhwb3J0IHR5cGUgQ29pbmZsb3dCbG9ja2NoYWluID1cbiAgfCAnc29sYW5hJ1xuICB8ICduZWFyJ1xuICB8ICdldGgnXG4gIHwgJ3BvbHlnb24nXG4gIHwgJ2Jhc2UnXG4gIHwgJ2FyYml0cnVtJ1xuICB8ICd1c2VyJztcbmV4cG9ydCB0eXBlIENvaW5mbG93RW52cyA9XG4gIHwgJ3Byb2QnXG4gIHwgJ3N0YWdpbmcnXG4gIHwgJ3N0YWdpbmctbGl2ZSdcbiAgfCAnc2FuZGJveCdcbiAgfCAnbG9jYWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvaW5mbG93VHlwZXMge1xuICBtZXJjaGFudElkOiBzdHJpbmc7XG4gIGVudj86IENvaW5mbG93RW52cztcbiAgbG9hZGVyQmFja2dyb3VuZD86IHN0cmluZztcbiAgYmxvY2tjaGFpbj86IENvaW5mbG93QmxvY2tjaGFpbiB8IHVuZGVmaW5lZDtcbiAgaGFuZGxlSGVpZ2h0Q2hhbmdlPzogKGhlaWdodDogc3RyaW5nKSA9PiB2b2lkO1xuICB0aGVtZT86IE1lcmNoYW50VGhlbWU7XG59XG5cbmV4cG9ydCB0eXBlIFBhcnRpYWxCeTxULCBLIGV4dGVuZHMga2V5b2YgVD4gPSBPbWl0PFQsIEs+ICYgUGFydGlhbDxQaWNrPFQsIEs+PjtcblxuZXhwb3J0IHR5cGUgT25TdWNjZXNzTWV0aG9kID0gKFxuICBhcmdzOlxuICAgIHwge1xuICAgICAgICBwYXltZW50SWQ6IHN0cmluZztcbiAgICAgICAgaGFzaD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICB8IHN0cmluZ1xuKSA9PiB2b2lkIHwgUHJvbWlzZTx2b2lkPjtcblxuLyoqIFdhbGxldHMgKiovXG5leHBvcnQgaW50ZXJmYWNlIFNvbGFuYVdhbGxldCB7XG4gIHB1YmxpY0tleTogUHVibGljS2V5IHwgbnVsbDtcbiAgc2lnblRyYW5zYWN0aW9uPzogPFQgZXh0ZW5kcyBUcmFuc2FjdGlvbiB8IFZlcnNpb25lZFRyYW5zYWN0aW9uPihcbiAgICB0cmFuc2FjdGlvbjogVFxuICApID0+IFByb21pc2U8VD47XG4gIHNlbmRUcmFuc2FjdGlvbjogPFQgZXh0ZW5kcyBUcmFuc2FjdGlvbiB8IFZlcnNpb25lZFRyYW5zYWN0aW9uPihcbiAgICB0cmFuc2FjdGlvbjogVFxuICApID0+IFByb21pc2U8c3RyaW5nPjtcbiAgc2lnbk1lc3NhZ2U/OiAobWVzc2FnZTogVWludDhBcnJheSkgPT4gUHJvbWlzZTxVaW50OEFycmF5Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZWFyV2FsbGV0IHtcbiAgYWNjb3VudElkOiBzdHJpbmc7XG4gIHNpZ25BbmRTZW5kVHJhbnNhY3Rpb246ICh0cmFuc2FjdGlvbjogdW5rbm93bikgPT4gUHJvbWlzZTx7XG4gICAgdHJhbnNhY3Rpb246IHtoYXNoOiBzdHJpbmd9O1xuICB9Pjtcbn1cblxudHlwZSBBY2Nlc3NMaXN0ID0gQXJyYXk8e2FkZHJlc3M6IHN0cmluZzsgc3RvcmFnZUtleXM6IEFycmF5PHN0cmluZz59PjtcbnR5cGUgQWNjZXNzTGlzdGlzaCA9XG4gIHwgQWNjZXNzTGlzdFxuICB8IEFycmF5PFtzdHJpbmcsIEFycmF5PHN0cmluZz5dPlxuICB8IFJlY29yZDxzdHJpbmcsIEFycmF5PHN0cmluZz4+O1xuXG5leHBvcnQgdHlwZSBFdGhXYWxsZXQgPSB7XG4gIGFkZHJlc3M6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIHNlbmRUcmFuc2FjdGlvbjogKHRyYW5zYWN0aW9uOiB7XG4gICAgdG86IHN0cmluZztcbiAgICBmcm9tPzogc3RyaW5nO1xuICAgIG5vbmNlPzogQnl0ZXMgfCBiaWdpbnQgfCBzdHJpbmcgfCBudW1iZXI7XG5cbiAgICBnYXNMaW1pdD86IEJ5dGVzIHwgYmlnaW50IHwgc3RyaW5nIHwgbnVtYmVyO1xuICAgIGdhc1ByaWNlPzogQnl0ZXMgfCBiaWdpbnQgfCBzdHJpbmcgfCBudW1iZXI7XG5cbiAgICBkYXRhPzogQnl0ZXNMaWtlO1xuICAgIHZhbHVlPzogQnl0ZXMgfCBiaWdpbnQgfCBzdHJpbmcgfCBudW1iZXI7XG4gICAgY2hhaW5JZD86IG51bWJlcjtcblxuICAgIHR5cGU/OiBudW1iZXI7XG4gICAgYWNjZXNzTGlzdD86IEFjY2Vzc0xpc3Rpc2g7XG5cbiAgICBtYXhQcmlvcml0eUZlZVBlckdhcz86IEJ5dGVzIHwgYmlnaW50IHwgc3RyaW5nIHwgbnVtYmVyO1xuICAgIG1heEZlZVBlckdhcz86IEJ5dGVzIHwgYmlnaW50IHwgc3RyaW5nIHwgbnVtYmVyO1xuXG4gICAgY3VzdG9tRGF0YT86IFJlY29yZDxzdHJpbmcsIGFueT47XG4gICAgY2NpcFJlYWRFbmFibGVkPzogYm9vbGVhbjtcbiAgfSkgPT4gUHJvbWlzZTx7aGFzaDogc3RyaW5nfT47XG4gIHNpZ25NZXNzYWdlOiAobWVzc2FnZTogc3RyaW5nKSA9PiBQcm9taXNlPHN0cmluZz47XG59O1xuXG4vKiogSGlzdG9yeSAqKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29pbmZsb3dTb2xhbmFIaXN0b3J5UHJvcHMgZXh0ZW5kcyBDb2luZmxvd1R5cGVzIHtcbiAgd2FsbGV0OiBTb2xhbmFXYWxsZXQ7XG4gIGNvbm5lY3Rpb246IENvbm5lY3Rpb247XG4gIGJsb2NrY2hhaW46ICdzb2xhbmEnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvaW5mbG93TmVhckhpc3RvcnlQcm9wcyBleHRlbmRzIENvaW5mbG93VHlwZXMge1xuICB3YWxsZXQ6IE5lYXJXYWxsZXQ7XG4gIGJsb2NrY2hhaW46ICduZWFyJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2luZmxvd0V2bUhpc3RvcnlQcm9wcyBleHRlbmRzIENvaW5mbG93VHlwZXMge1xuICB3YWxsZXQ6IEV0aFdhbGxldDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2luZmxvd0V0aEhpc3RvcnlQcm9wcyBleHRlbmRzIENvaW5mbG93RXZtSGlzdG9yeVByb3BzIHtcbiAgYmxvY2tjaGFpbjogJ2V0aCc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29pbmZsb3dQb2x5Z29uSGlzdG9yeVByb3BzIGV4dGVuZHMgQ29pbmZsb3dFdm1IaXN0b3J5UHJvcHMge1xuICBibG9ja2NoYWluOiAncG9seWdvbic7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29pbmZsb3dCYXNlSGlzdG9yeVByb3BzIGV4dGVuZHMgQ29pbmZsb3dFdm1IaXN0b3J5UHJvcHMge1xuICBibG9ja2NoYWluOiAnYmFzZSc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29pbmZsb3dBcmJpdHJ1bUhpc3RvcnlQcm9wcyBleHRlbmRzIENvaW5mbG93RXZtSGlzdG9yeVByb3BzIHtcbiAgYmxvY2tjaGFpbjogJ2FyYml0cnVtJztcbn1cblxuZXhwb3J0IHR5cGUgQ29pbmZsb3dIaXN0b3J5UHJvcHMgPVxuICB8IENvaW5mbG93U29sYW5hSGlzdG9yeVByb3BzXG4gIHwgQ29pbmZsb3dOZWFySGlzdG9yeVByb3BzXG4gIHwgQ29pbmZsb3dQb2x5Z29uSGlzdG9yeVByb3BzXG4gIHwgQ29pbmZsb3dFdGhIaXN0b3J5UHJvcHNcbiAgfCBDb2luZmxvd0Jhc2VIaXN0b3J5UHJvcHNcbiAgfCBDb2luZmxvd0FyYml0cnVtSGlzdG9yeVByb3BzO1xuXG4vKiogVHJhbnNhY3Rpb25zICoqL1xuXG5leHBvcnQgdHlwZSBOZWFyRnRUcmFuc2ZlckNhbGxBY3Rpb24gPSB7XG4gIG1ldGhvZE5hbWU6ICdmdF90cmFuc2Zlcl9jYWxsJztcbiAgYXJnczogb2JqZWN0O1xuICBnYXM6IHN0cmluZztcbiAgZGVwb3NpdDogc3RyaW5nO1xufTtcblxudHlwZSBCeXRlcyA9IEFycmF5TGlrZTxudW1iZXI+O1xudHlwZSBCeXRlc0xpa2UgPSBCeXRlcyB8IHN0cmluZztcblxudHlwZSBSYXdQcm9kdWN0RGF0YSA9IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBvYmplY3Q+O1xuXG4vKiogUHVyY2hhc2UgKiovXG5cbmV4cG9ydCB0eXBlIENoYXJnZWJhY2tQcm90ZWN0aW9uRGF0YSA9IENoYXJnZWJhY2tQcm90ZWN0aW9uSXRlbVtdO1xuXG5leHBvcnQgaW50ZXJmYWNlIENoYXJnZWJhY2tQcm90ZWN0aW9uSXRlbSB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgcHJvZHVjdFxuICAgKi9cbiAgcHJvZHVjdE5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBwcm9kdWN0IHR5cGUuIFBvc3NpYmxlIHZhbHVlcyBpbmNsdWRlOiBpbkdhbWVQcm9kdWN0LCBnYW1lT2ZTa2lsbCwgZGF0YVN0b3JhZ2UsIGNvbXB1dGluZ1Jlc291cmNlcywgc3BvcnRzVGlja2V0LCBlU3BvcnRzVGlja2V0LCBtdXNpY1RpY2tldCwgY29uZmVyZW5jZVRpY2tldCwgdmlydHVhbFNwb3J0c1RpY2tldCwgdmlydHVhbEVTcG9ydHNUaWNrZXQsIHZpcnR1YWxNdXNpY1RpY2tldCwgdmlydHVhbENvbmZlcmVuY2VUaWNrZXQsIGFsY29ob2wsIERMQywgc3Vic2NyaXB0aW9uLCBmdW5kQUNhdXNlLCByZWFsRXN0YXRlLCBjb21wdXRpbmdDb250cmFjdCwgZGlnaXRhbEFydCwgdG9wVXBcbiAgICovXG4gIHByb2R1Y3RUeXBlOlxuICAgIHwgJ2luR2FtZVByb2R1Y3QnXG4gICAgfCAnZ2FtZU9mU2tpbGwnXG4gICAgfCAnZGF0YVN0b3JhZ2UnXG4gICAgfCAnY29tcHV0aW5nUmVzb3VyY2VzJ1xuICAgIHwgJ3Nwb3J0c1RpY2tldCdcbiAgICB8ICdlU3BvcnRzVGlja2V0J1xuICAgIHwgJ211c2ljVGlja2V0J1xuICAgIHwgJ2NvbmZlcmVuY2VUaWNrZXQnXG4gICAgfCAndmlydHVhbFNwb3J0c1RpY2tldCdcbiAgICB8ICd2aXJ0dWFsRVNwb3J0c1RpY2tldCdcbiAgICB8ICd2aXJ0dWFsTXVzaWNUaWNrZXQnXG4gICAgfCAndmlydHVhbENvbmZlcmVuY2VUaWNrZXQnXG4gICAgfCAnYWxjb2hvbCdcbiAgICB8ICdETEMnXG4gICAgfCAnc3Vic2NyaXB0aW9uJ1xuICAgIHwgJ2Z1bmRBQ2F1c2UnXG4gICAgfCAncmVhbEVzdGF0ZSdcbiAgICB8ICdjb21wdXRpbmdDb250cmFjdCdcbiAgICB8ICdkaWdpdGFsQXJ0J1xuICAgIHwgJ3RvcFVwJ1xuICAgIHwgJ293bmVyc2hpcENvbnRyYWN0JztcbiAgLyoqXG4gICAqIFRoZSBpdGVtJ3MgbGlzdCBwcmljZVxuICAgKi9cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgdW5pdHMgc29sZFxuICAgKi9cbiAgcXVhbnRpdHk6IG51bWJlcjtcbiAgLyoqXG4gICAqIEFueSBhZGRpdGlvbmFsIGRhdGEgdGhhdCB0aGUgc3RvcmUgY2FuIHByb3ZpZGUgb24gdGhlIHByb2R1Y3QsIGUuZy4gZGVzY3JpcHRpb24sIGxpbmsgdG8gaW1hZ2UsIGV0Yy5cbiAgICovXG4gIHJhd1Byb2R1Y3REYXRhPzogUmF3UHJvZHVjdERhdGE7XG59XG5cbmV4cG9ydCBlbnVtIFRocmVlRHNDaGFsbGVuZ2VQcmVmZXJlbmNlIHtcbiAgTm9QcmVmZXJlbmNlID0gJ05vUHJlZmVyZW5jZScsXG4gIEZyaWN0aW9ubGVzcyA9ICdGcmljdGlvbmxlc3MnLFxuICBDaGFsbGVuZ2UgPSAnQ2hhbGxlbmdlJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2luZmxvd0NvbW1vblB1cmNoYXNlUHJvcHMgZXh0ZW5kcyBDb2luZmxvd1R5cGVzIHtcbiAgYW1vdW50PzogbnVtYmVyIHwgc3RyaW5nO1xuICBvblN1Y2Nlc3M/OiBPblN1Y2Nlc3NNZXRob2Q7XG4gIHdlYmhvb2tJbmZvPzogb2JqZWN0O1xuICBlbWFpbD86IHN0cmluZztcbiAgY2hhcmdlYmFja1Byb3RlY3Rpb25EYXRhPzogQ2hhcmdlYmFja1Byb3RlY3Rpb25EYXRhO1xuICBwbGFuQ29kZT86IHN0cmluZztcbiAgZGlzYWJsZUFwcGxlUGF5PzogYm9vbGVhbjtcbiAgZGlzYWJsZUdvb2dsZVBheT86IGJvb2xlYW47XG4gIGN1c3RvbWVySW5mbz86IEN1c3RvbWVySW5mbztcbiAgc2V0dGxlbWVudFR5cGU/OiBTZXR0bGVtZW50VHlwZTtcbiAgYXV0aE9ubHk/OiBib29sZWFuO1xuICBkZXZpY2VJZD86IHN0cmluZztcbiAgand0VG9rZW4/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBZb3VyIGNvbXBhbnkgZW1haWwgYWRkcmVzcyB0aGF0IHRoZSBjdXN0b21lciBjYW4gY29udGFjdC5cbiAgICovXG4gIHN1cHBvcnRFbWFpbD86IHN0cmluZztcbiAgLyoqXG4gICAqIElmIHJlbmRlcmluZyB0aGUgQ29pbmZsb3cgY29tcG9uZW50IHdpdGhpbiBtdWx0aXBsZSBuZXN0ZWQgaWZyYW1lcywgYWxsIGFuY2VzdG9ycyBpbiB0aGUgY2hhaW4gbXVzdCBiZSBwcm92aWRlZCBhcyBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LlxuICAgKlxuICAgKiBFeGFtcGxlOlxuICAgKiBQcmltYXJ5IG9yaWdpbiB0aGF0IHdpbGwgYmUgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgQ29pbmZsb3cgaUZyYW1lOiBmb28uY29tXG4gICAqIFN1YnNlcXVlbnQgb3JpZ2lucyB0aGF0IHdpbGwgcmVuZGVyIGZvby5jb206IGJhci5jb21cbiAgICogVGhlIG9yaWdpbiBhcnJheSB3b3VsZCB0aGVuIGJlOiBbaHR0cHM6Ly9mb28uY29tLGh0dHBzOi8vYmFyLmNvbV1cbiAgICovXG4gIG9yaWdpbnM/OiBzdHJpbmdbXTtcbiAgdGhyZWVEc0NoYWxsZW5nZVByZWZlcmVuY2U/OiBUaHJlZURzQ2hhbGxlbmdlUHJlZmVyZW5jZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2luZmxvd1NvbGFuYVB1cmNoYXNlUHJvcHNcbiAgZXh0ZW5kcyBDb2luZmxvd0NvbW1vblB1cmNoYXNlUHJvcHMge1xuICB3YWxsZXQ6IFNvbGFuYVdhbGxldDtcbiAgdHJhbnNhY3Rpb24/OiBUcmFuc2FjdGlvbiB8IFZlcnNpb25lZFRyYW5zYWN0aW9uO1xuICBwYXJ0aWFsU2lnbmVycz86IFNpZ25lcltdO1xuICBkZWJ1Z1R4PzogYm9vbGVhbjtcbiAgY29ubmVjdGlvbjogQ29ubmVjdGlvbjtcbiAgYmxvY2tjaGFpbjogJ3NvbGFuYSc7XG4gIHRva2VuPzogUHVibGljS2V5IHwgc3RyaW5nO1xuICByZW50Pzoge2xhbXBvcnRzOiBzdHJpbmcgfCBudW1iZXJ9O1xuICBuYXRpdmVTb2xUb0NvbnZlcnQ/OiB7bGFtcG9ydHM6IHN0cmluZyB8IG51bWJlcn07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29pbmZsb3dTZXNzaW9uS2V5UHVyY2hhc2VQcm9wc1xuICBleHRlbmRzIENvaW5mbG93Q29tbW9uUHVyY2hhc2VQcm9wcyB7XG4gIHNlc3Npb25LZXk6IHN0cmluZztcbiAgd2FsbGV0PzogdW5kZWZpbmVkO1xuICBibG9ja2NoYWluPzogQ29pbmZsb3dCbG9ja2NoYWluIHwgdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvaW5mbG93TmVhclB1cmNoYXNlUHJvcHMgZXh0ZW5kcyBDb2luZmxvd0NvbW1vblB1cmNoYXNlUHJvcHMge1xuICB3YWxsZXQ6IE5lYXJXYWxsZXQ7XG4gIGJsb2NrY2hhaW46ICduZWFyJztcbiAgYWN0aW9uPzogTmVhckZ0VHJhbnNmZXJDYWxsQWN0aW9uO1xuICBuZWFyRGVwb3NpdD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2luZmxvd0V2bVB1cmNoYXNlUHJvcHMgZXh0ZW5kcyBDb2luZmxvd0NvbW1vblB1cmNoYXNlUHJvcHMge1xuICB0cmFuc2FjdGlvbj86IEV2bVRyYW5zYWN0aW9uRGF0YTtcbiAgdG9rZW4/OiBzdHJpbmc7XG4gIHdhbGxldDogRXRoV2FsbGV0O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvaW5mbG93UG9seWdvblB1cmNoYXNlUHJvcHMgZXh0ZW5kcyBDb2luZmxvd0V2bVB1cmNoYXNlUHJvcHMge1xuICBibG9ja2NoYWluOiAncG9seWdvbic7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29pbmZsb3dFdGhQdXJjaGFzZVByb3BzIGV4dGVuZHMgQ29pbmZsb3dFdm1QdXJjaGFzZVByb3BzIHtcbiAgYmxvY2tjaGFpbjogJ2V0aCc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29pbmZsb3dCYXNlUHVyY2hhc2VQcm9wcyBleHRlbmRzIENvaW5mbG93RXZtUHVyY2hhc2VQcm9wcyB7XG4gIGJsb2NrY2hhaW46ICdiYXNlJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2luZmxvd0FyYml0cnVtUHVyY2hhc2VQcm9wc1xuICBleHRlbmRzIENvaW5mbG93RXZtUHVyY2hhc2VQcm9wcyB7XG4gIGJsb2NrY2hhaW46ICdhcmJpdHJ1bSc7XG59XG5cbmV4cG9ydCB0eXBlIENvaW5mbG93UHVyY2hhc2VQcm9wcyA9XG4gIHwgQ29pbmZsb3dTb2xhbmFQdXJjaGFzZVByb3BzXG4gIHwgQ29pbmZsb3dTZXNzaW9uS2V5UHVyY2hhc2VQcm9wc1xuICB8IENvaW5mbG93TmVhclB1cmNoYXNlUHJvcHNcbiAgfCBDb2luZmxvd1BvbHlnb25QdXJjaGFzZVByb3BzXG4gIHwgQ29pbmZsb3dFdGhQdXJjaGFzZVByb3BzXG4gIHwgQ29pbmZsb3dCYXNlUHVyY2hhc2VQcm9wc1xuICB8IENvaW5mbG93QXJiaXRydW1QdXJjaGFzZVByb3BzO1xuXG4vKiogV2l0aGRyYXcgKiovXG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29pbmZsb3dDb21tb25XaXRoZHJhd1Byb3BzIGV4dGVuZHMgQ29pbmZsb3dUeXBlcyB7XG4gIG9uU3VjY2Vzcz86IE9uU3VjY2Vzc01ldGhvZDtcbiAgdG9rZW5zPzogc3RyaW5nW107XG4gIGxvY2tEZWZhdWx0VG9rZW4/OiBib29sZWFuO1xuICBhbW91bnQ/OiBudW1iZXI7XG4gIGVtYWlsPzogc3RyaW5nO1xuICBiYW5rQWNjb3VudExpbmtSZWRpcmVjdD86IHN0cmluZztcbiAgYWRkaXRpb25hbFdhbGxldHM/OiB7XG4gICAgd2FsbGV0OiBzdHJpbmc7XG4gICAgYmxvY2tjaGFpbjogJ3NvbGFuYScgfCAnZXRoJyB8ICduZWFyJyB8ICdwb2x5Z29uJyB8ICdiYXNlJyB8ICdhcmJpdHJ1bSc7XG4gIH1bXTtcbiAgbG9ja0Ftb3VudD86IGJvb2xlYW47XG4gIHRyYW5zYWN0aW9uU2lnbmVyPzogc3RyaW5nO1xuICAvKipcbiAgICogSWYgcmVuZGVyaW5nIHRoZSBDb2luZmxvdyBjb21wb25lbnQgd2l0aGluIG11bHRpcGxlIG5lc3RlZCBpZnJhbWVzLCBhbGwgYW5jZXN0b3JzIGluIHRoZSBjaGFpbiBtdXN0IGJlIHByb3ZpZGVkIGFzIGEgY29tbWEtc2VwYXJhdGVkIGxpc3QuXG4gICAqXG4gICAqIEV4YW1wbGU6XG4gICAqIFByaW1hcnkgb3JpZ2luIHRoYXQgd2lsbCBiZSBpbnRlcmFjdGluZyB3aXRoIHRoZSBDb2luZmxvdyBpRnJhbWU6IGZvby5jb21cbiAgICogU3Vic2VxdWVudCBvcmlnaW5zIHRoYXQgd2lsbCByZW5kZXIgZm9vLmNvbTogYmFyLmNvbVxuICAgKiBUaGUgb3JpZ2luIGFycmF5IHdvdWxkIHRoZW4gYmU6IFtodHRwczovL2Zvby5jb20saHR0cHM6Ly9iYXIuY29tXVxuICAgKi9cbiAgb3JpZ2lucz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvaW5mbG93U29sYW5hV2l0aGRyYXdQcm9wc1xuICBleHRlbmRzIENvaW5mbG93Q29tbW9uV2l0aGRyYXdQcm9wcyB7XG4gIHdhbGxldDogU29sYW5hV2FsbGV0O1xuICBjb25uZWN0aW9uOiBDb25uZWN0aW9uO1xuICBibG9ja2NoYWluOiAnc29sYW5hJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2luZmxvd05lYXJXaXRoZHJhd1Byb3BzIGV4dGVuZHMgQ29pbmZsb3dDb21tb25XaXRoZHJhd1Byb3BzIHtcbiAgd2FsbGV0OiBOZWFyV2FsbGV0O1xuICBibG9ja2NoYWluOiAnbmVhcic7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29pbmZsb3dFdm1XaXRoZHJhd1Byb3BzIGV4dGVuZHMgQ29pbmZsb3dDb21tb25XaXRoZHJhd1Byb3BzIHtcbiAgd2FsbGV0OiBFdGhXYWxsZXQ7XG4gIHVzZVBlcm1pdD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29pbmZsb3dFdGhXaXRoZHJhd1Byb3BzIGV4dGVuZHMgQ29pbmZsb3dFdm1XaXRoZHJhd1Byb3BzIHtcbiAgYmxvY2tjaGFpbjogJ2V0aCc7XG4gIHVzZVBlcm1pdD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29pbmZsb3dQb2x5Z29uV2l0aGRyYXdQcm9wcyBleHRlbmRzIENvaW5mbG93RXZtV2l0aGRyYXdQcm9wcyB7XG4gIGJsb2NrY2hhaW46ICdwb2x5Z29uJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2luZmxvd0Jhc2VXaXRoZHJhd1Byb3BzIGV4dGVuZHMgQ29pbmZsb3dFdm1XaXRoZHJhd1Byb3BzIHtcbiAgYmxvY2tjaGFpbjogJ2Jhc2UnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvaW5mbG93QXJiaXRydW1XaXRoZHJhd1Byb3BzXG4gIGV4dGVuZHMgQ29pbmZsb3dFdm1XaXRoZHJhd1Byb3BzIHtcbiAgYmxvY2tjaGFpbjogJ2FyYml0cnVtJztcbn1cblxuZXhwb3J0IHR5cGUgQ29pbmZsb3dXaXRoZHJhd1Byb3BzID1cbiAgfCBDb2luZmxvd1NvbGFuYVdpdGhkcmF3UHJvcHNcbiAgfCBDb2luZmxvd05lYXJXaXRoZHJhd1Byb3BzXG4gIHwgQ29pbmZsb3dFdGhXaXRoZHJhd1Byb3BzXG4gIHwgQ29pbmZsb3dQb2x5Z29uV2l0aGRyYXdQcm9wc1xuICB8IENvaW5mbG93QmFzZVdpdGhkcmF3UHJvcHNcbiAgfCBDb2luZmxvd0FyYml0cnVtV2l0aGRyYXdQcm9wcztcblxuZXhwb3J0IGludGVyZmFjZSBDb21tb25Fdm1SZWRlZW0ge1xuICB3YWl0Rm9ySGFzaD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTm9ybWFsUmVkZWVtIGV4dGVuZHMgQ29tbW9uRXZtUmVkZWVtIHtcbiAgdHJhbnNhY3Rpb246IHt0bzogc3RyaW5nOyBkYXRhOiBzdHJpbmd9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEtub3duVG9rZW5JZFJlZGVlbSBleHRlbmRzIE5vcm1hbFJlZGVlbSB7XG4gIG5mdENvbnRyYWN0OiBzdHJpbmc7XG4gIG5mdElkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2FmZU1pbnRSZWRlZW0gZXh0ZW5kcyBOb3JtYWxSZWRlZW0ge1xuICB0eXBlOiAnc2FmZU1pbnQnO1xuICBuZnRDb250cmFjdD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXR1cm5lZFRva2VuSWRSZWRlZW0gZXh0ZW5kcyBOb3JtYWxSZWRlZW0ge1xuICB0eXBlOiAncmV0dXJuZWQnO1xuICBuZnRDb250cmFjdD86IHN0cmluZztcbn1cblxudHlwZSBSZXNlcnZvaXJOZnRJZEl0ZW0gPSBPbWl0PEtub3duVG9rZW5JZFJlZGVlbSwga2V5b2YgTm9ybWFsUmVkZWVtPjtcbmludGVyZmFjZSBSZXNlcnZvaXJPcmRlcklkSXRlbSB7XG4gIG9yZGVySWQ6IHN0cmluZztcbn1cbnR5cGUgUmVzZXJ2b2lySXRlbSA9IFJlc2Vydm9pck5mdElkSXRlbSB8IFJlc2Vydm9pck9yZGVySWRJdGVtO1xudHlwZSBSZXNlcnZvaXJJdGVtcyA9IFJlc2Vydm9pckl0ZW0gfCBSZXNlcnZvaXJJdGVtW107XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzZXJ2b2lyUmVkZWVtIGV4dGVuZHMgQ29tbW9uRXZtUmVkZWVtIHtcbiAgdHlwZTogJ3Jlc2Vydm9pcic7XG4gIGl0ZW1zOiBSZXNlcnZvaXJJdGVtcztcbiAgdGFrZXI/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVG9rZW5SZWRlZW0gZXh0ZW5kcyBDb21tb25Fdm1SZWRlZW0ge1xuICB0eXBlOiAndG9rZW4nO1xuICBkZXN0aW5hdGlvbjogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBFdm1UcmFuc2FjdGlvbkRhdGEgPVxuICB8IFNhZmVNaW50UmVkZWVtXG4gIHwgUmV0dXJuZWRUb2tlbklkUmVkZWVtXG4gIHwgUmVzZXJ2b2lyUmVkZWVtXG4gIHwgS25vd25Ub2tlbklkUmVkZWVtXG4gIHwgTm9ybWFsUmVkZWVtXG4gIHwgVG9rZW5SZWRlZW07XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29pbmZsb3dJRnJhbWVQcm9wc1xuICBleHRlbmRzIE9taXQ8Q29pbmZsb3dUeXBlcywgJ21lcmNoYW50SWQnPixcbiAgICBQaWNrPFxuICAgICAgQ29pbmZsb3dDb21tb25QdXJjaGFzZVByb3BzLFxuICAgICAgfCAnY2hhcmdlYmFja1Byb3RlY3Rpb25EYXRhJ1xuICAgICAgfCAnd2ViaG9va0luZm8nXG4gICAgICB8ICdhbW91bnQnXG4gICAgICB8ICdjdXN0b21lckluZm8nXG4gICAgICB8ICdzZXR0bGVtZW50VHlwZSdcbiAgICAgIHwgJ2VtYWlsJ1xuICAgICAgfCAncGxhbkNvZGUnXG4gICAgICB8ICdkZXZpY2VJZCdcbiAgICAgIHwgJ2p3dFRva2VuJ1xuICAgICAgfCAnb3JpZ2lucydcbiAgICAgIHwgJ3RocmVlRHNDaGFsbGVuZ2VQcmVmZXJlbmNlJ1xuICAgICAgfCAnc3VwcG9ydEVtYWlsJ1xuICAgID4sXG4gICAgUGljazxcbiAgICAgIENvaW5mbG93Q29tbW9uV2l0aGRyYXdQcm9wcyxcbiAgICAgIHwgJ2JhbmtBY2NvdW50TGlua1JlZGlyZWN0J1xuICAgICAgfCAnYWRkaXRpb25hbFdhbGxldHMnXG4gICAgICB8ICd0cmFuc2FjdGlvblNpZ25lcidcbiAgICAgIHwgJ2xvY2tBbW91bnQnXG4gICAgICB8ICdsb2NrRGVmYXVsdFRva2VuJ1xuICAgICAgfCAnb3JpZ2lucydcbiAgICA+LFxuICAgIFBpY2s8Q29pbmZsb3dFdm1QdXJjaGFzZVByb3BzLCAnYXV0aE9ubHknPixcbiAgICBQaWNrPENvaW5mbG93U29sYW5hUHVyY2hhc2VQcm9wcywgJ3JlbnQnIHwgJ25hdGl2ZVNvbFRvQ29udmVydCcgfCAndG9rZW4nPiB7XG4gIHdhbGxldFB1YmtleTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgc2Vzc2lvbktleT86IHN0cmluZztcbiAgcm91dGU6IHN0cmluZztcbiAgcm91dGVQcmVmaXg/OiBzdHJpbmc7XG4gIHRyYW5zYWN0aW9uPzogc3RyaW5nO1xuICB0b2tlbnM/OiBzdHJpbmdbXSB8IFB1YmxpY0tleVtdO1xuICBuZWFyRGVwb3NpdD86IHN0cmluZztcbiAgbWVyY2hhbnRDc3M/OiBzdHJpbmc7XG4gIGNvbG9yPzogJ3doaXRlJyB8ICdibGFjayc7XG4gIGRpc2FibGVBcHBsZVBheT86IGJvb2xlYW47XG4gIGRpc2FibGVHb29nbGVQYXk/OiBib29sZWFuO1xuICB0aGVtZT86IE1lcmNoYW50VGhlbWU7XG4gIHVzZVBlcm1pdD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBlbnVtIENhcmRUeXBlIHtcbiAgVklTQSA9ICdWSVNBJyxcbiAgTUFTVEVSQ0FSRCA9ICdNU1RSJyxcbiAgQU1FWCA9ICdBTUVYJyxcbiAgRElTQ09WRVIgPSAnRElTQycsXG59XG4iXX0=
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29pbmZsb3dUeXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvaW5mbG93bGFicy9zcmMvbGliL2NvbW1vbi9Db2luZmxvd1R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFBLE1BQU0sQ0FBTixJQUFZLGNBSVg7QUFKRCxXQUFZLGNBQWM7SUFDeEIscUNBQW1CLENBQUE7SUFDbkIsK0JBQWEsQ0FBQTtJQUNiLCtCQUFhLENBQUE7QUFDZixDQUFDLEVBSlcsY0FBYyxLQUFkLGNBQWMsUUFJekI7QUFFRCxNQUFNLENBQU4sSUFBWSxhQUlYO0FBSkQsV0FBWSxhQUFhO0lBQ3ZCLG9DQUFtQixDQUFBO0lBQ25CLGdDQUFlLENBQUE7SUFDZiw4QkFBYSxDQUFBO0FBQ2YsQ0FBQyxFQUpXLGFBQWEsS0FBYixhQUFhLFFBSXhCO0FBK05ELE1BQU0sQ0FBTixJQUFZLDBCQUlYO0FBSkQsV0FBWSwwQkFBMEI7SUFDcEMsMkRBQTZCLENBQUE7SUFDN0IsMkRBQTZCLENBQUE7SUFDN0IscURBQXVCLENBQUE7QUFDekIsQ0FBQyxFQUpXLDBCQUEwQixLQUExQiwwQkFBMEIsUUFJckM7QUF5U0QsTUFBTSxDQUFOLElBQVksUUFLWDtBQUxELFdBQVksUUFBUTtJQUNsQix5QkFBYSxDQUFBO0lBQ2IsK0JBQW1CLENBQUE7SUFDbkIseUJBQWEsQ0FBQTtJQUNiLDZCQUFpQixDQUFBO0FBQ25CLENBQUMsRUFMVyxRQUFRLEtBQVIsUUFBUSxRQUtuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgQ29ubmVjdGlvbixcbiAgVmVyc2lvbmVkVHJhbnNhY3Rpb24sXG4gIFB1YmxpY0tleSxcbiAgU2lnbmVyLFxuICBUcmFuc2FjdGlvbixcbn0gZnJvbSAnQHNvbGFuYS93ZWIzLmpzJztcblxuZXhwb3J0IGVudW0gU2V0dGxlbWVudFR5cGUge1xuICBDcmVkaXRzID0gJ0NyZWRpdHMnLFxuICBVU0RDID0gJ1VTREMnLFxuICBCYW5rID0gJ0JhbmsnLFxufVxuXG5leHBvcnQgZW51bSBNZXJjaGFudFN0eWxlIHtcbiAgUm91bmRlZCA9ICdyb3VuZGVkJyxcbiAgU2hhcnAgPSAnc2hhcnAnLFxuICBQaWxsID0gJ3BpbGwnLFxufVxuXG5leHBvcnQgdHlwZSBNZXJjaGFudFRoZW1lID0ge1xuICBwcmltYXJ5Pzogc3RyaW5nO1xuICBiYWNrZ3JvdW5kPzogc3RyaW5nO1xuICBiYWNrZ3JvdW5kQWNjZW50Pzogc3RyaW5nO1xuICBiYWNrZ3JvdW5kQWNjZW50Mj86IHN0cmluZztcbiAgdGV4dENvbG9yPzogc3RyaW5nO1xuICB0ZXh0Q29sb3JBY2NlbnQ/OiBzdHJpbmc7XG4gIHRleHRDb2xvckFjdGlvbj86IHN0cmluZztcbiAgZm9udD86IHN0cmluZztcbiAgc3R5bGU/OiBNZXJjaGFudFN0eWxlO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21lckluZm8ge1xuICBuYW1lPzogc3RyaW5nO1xuICB2ZXJpZmljYXRpb25JZD86IHN0cmluZztcbiAgZGlzcGxheU5hbWU/OiBzdHJpbmc7XG4gIGFkZHJlc3M/OiBzdHJpbmc7XG4gIGNpdHk/OiBzdHJpbmc7XG4gIHN0YXRlPzogc3RyaW5nO1xuICB6aXA/OiBzdHJpbmc7XG4gIGNvdW50cnk/OiBzdHJpbmc7XG4gIGlwPzogc3RyaW5nO1xuICBsYXQ/OiBzdHJpbmc7XG4gIGxuZz86IHN0cmluZztcbn1cblxuLyoqIENvaW5mbG93IFR5cGVzICoqL1xuZXhwb3J0IHR5cGUgQ29pbmZsb3dCbG9ja2NoYWluID1cbiAgfCAnc29sYW5hJ1xuICB8ICduZWFyJ1xuICB8ICdldGgnXG4gIHwgJ3BvbHlnb24nXG4gIHwgJ2Jhc2UnXG4gIHwgJ2FyYml0cnVtJ1xuICB8ICd1c2VyJztcbmV4cG9ydCB0eXBlIENvaW5mbG93RW52cyA9XG4gIHwgJ3Byb2QnXG4gIHwgJ3N0YWdpbmcnXG4gIHwgJ3N0YWdpbmctbGl2ZSdcbiAgfCAnc2FuZGJveCdcbiAgfCAnbG9jYWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvaW5mbG93VHlwZXMge1xuICBtZXJjaGFudElkOiBzdHJpbmc7XG4gIGVudj86IENvaW5mbG93RW52cztcbiAgbG9hZGVyQmFja2dyb3VuZD86IHN0cmluZztcbiAgYmxvY2tjaGFpbj86IENvaW5mbG93QmxvY2tjaGFpbiB8IHVuZGVmaW5lZDtcbiAgaGFuZGxlSGVpZ2h0Q2hhbmdlPzogKGhlaWdodDogc3RyaW5nKSA9PiB2b2lkO1xuICB0aGVtZT86IE1lcmNoYW50VGhlbWU7XG59XG5cbmV4cG9ydCB0eXBlIFBhcnRpYWxCeTxULCBLIGV4dGVuZHMga2V5b2YgVD4gPSBPbWl0PFQsIEs+ICYgUGFydGlhbDxQaWNrPFQsIEs+PjtcblxuZXhwb3J0IHR5cGUgT25TdWNjZXNzTWV0aG9kID0gKFxuICBhcmdzOlxuICAgIHwge1xuICAgICAgICBwYXltZW50SWQ6IHN0cmluZztcbiAgICAgICAgaGFzaD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICB8IHN0cmluZ1xuKSA9PiB2b2lkIHwgUHJvbWlzZTx2b2lkPjtcblxuLyoqIFdhbGxldHMgKiovXG5leHBvcnQgaW50ZXJmYWNlIFNvbGFuYVdhbGxldCB7XG4gIHB1YmxpY0tleTogUHVibGljS2V5IHwgbnVsbDtcbiAgc2lnblRyYW5zYWN0aW9uPzogPFQgZXh0ZW5kcyBUcmFuc2FjdGlvbiB8IFZlcnNpb25lZFRyYW5zYWN0aW9uPihcbiAgICB0cmFuc2FjdGlvbjogVFxuICApID0+IFByb21pc2U8VD47XG4gIHNlbmRUcmFuc2FjdGlvbjogPFQgZXh0ZW5kcyBUcmFuc2FjdGlvbiB8IFZlcnNpb25lZFRyYW5zYWN0aW9uPihcbiAgICB0cmFuc2FjdGlvbjogVFxuICApID0+IFByb21pc2U8c3RyaW5nPjtcbiAgc2lnbk1lc3NhZ2U/OiAobWVzc2FnZTogVWludDhBcnJheSkgPT4gUHJvbWlzZTxVaW50OEFycmF5Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZWFyV2FsbGV0IHtcbiAgYWNjb3VudElkOiBzdHJpbmc7XG4gIHNpZ25BbmRTZW5kVHJhbnNhY3Rpb246ICh0cmFuc2FjdGlvbjogdW5rbm93bikgPT4gUHJvbWlzZTx7XG4gICAgdHJhbnNhY3Rpb246IHtoYXNoOiBzdHJpbmd9O1xuICB9Pjtcbn1cblxudHlwZSBBY2Nlc3NMaXN0ID0gQXJyYXk8e2FkZHJlc3M6IHN0cmluZzsgc3RvcmFnZUtleXM6IEFycmF5PHN0cmluZz59PjtcbnR5cGUgQWNjZXNzTGlzdGlzaCA9XG4gIHwgQWNjZXNzTGlzdFxuICB8IEFycmF5PFtzdHJpbmcsIEFycmF5PHN0cmluZz5dPlxuICB8IFJlY29yZDxzdHJpbmcsIEFycmF5PHN0cmluZz4+O1xuXG5leHBvcnQgdHlwZSBFdGhXYWxsZXQgPSB7XG4gIGFkZHJlc3M6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIHNlbmRUcmFuc2FjdGlvbjogKHRyYW5zYWN0aW9uOiB7XG4gICAgdG86IHN0cmluZztcbiAgICBmcm9tPzogc3RyaW5nO1xuICAgIG5vbmNlPzogQnl0ZXMgfCBiaWdpbnQgfCBzdHJpbmcgfCBudW1iZXI7XG5cbiAgICBnYXNMaW1pdD86IEJ5dGVzIHwgYmlnaW50IHwgc3RyaW5nIHwgbnVtYmVyO1xuICAgIGdhc1ByaWNlPzogQnl0ZXMgfCBiaWdpbnQgfCBzdHJpbmcgfCBudW1iZXI7XG5cbiAgICBkYXRhPzogQnl0ZXNMaWtlO1xuICAgIHZhbHVlPzogQnl0ZXMgfCBiaWdpbnQgfCBzdHJpbmcgfCBudW1iZXI7XG4gICAgY2hhaW5JZD86IG51bWJlcjtcblxuICAgIHR5cGU/OiBudW1iZXI7XG4gICAgYWNjZXNzTGlzdD86IEFjY2Vzc0xpc3Rpc2g7XG5cbiAgICBtYXhQcmlvcml0eUZlZVBlckdhcz86IEJ5dGVzIHwgYmlnaW50IHwgc3RyaW5nIHwgbnVtYmVyO1xuICAgIG1heEZlZVBlckdhcz86IEJ5dGVzIHwgYmlnaW50IHwgc3RyaW5nIHwgbnVtYmVyO1xuXG4gICAgY3VzdG9tRGF0YT86IFJlY29yZDxzdHJpbmcsIGFueT47XG4gICAgY2NpcFJlYWRFbmFibGVkPzogYm9vbGVhbjtcbiAgfSkgPT4gUHJvbWlzZTx7aGFzaDogc3RyaW5nfT47XG4gIHNpZ25NZXNzYWdlOiAobWVzc2FnZTogc3RyaW5nKSA9PiBQcm9taXNlPHN0cmluZz47XG59O1xuXG4vKiogSGlzdG9yeSAqKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29pbmZsb3dTb2xhbmFIaXN0b3J5UHJvcHMgZXh0ZW5kcyBDb2luZmxvd1R5cGVzIHtcbiAgd2FsbGV0OiBTb2xhbmFXYWxsZXQ7XG4gIGNvbm5lY3Rpb246IENvbm5lY3Rpb247XG4gIGJsb2NrY2hhaW46ICdzb2xhbmEnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvaW5mbG93U2Vzc2lvbktleUhpc3RvcnlQcm9wcyBleHRlbmRzIENvaW5mbG93VHlwZXMge1xuICBzZXNzaW9uS2V5OiBzdHJpbmc7XG4gIGJsb2NrY2hhaW4/OiB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29pbmZsb3dOZWFySGlzdG9yeVByb3BzIGV4dGVuZHMgQ29pbmZsb3dUeXBlcyB7XG4gIHdhbGxldDogTmVhcldhbGxldDtcbiAgYmxvY2tjaGFpbjogJ25lYXInO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvaW5mbG93RXZtSGlzdG9yeVByb3BzIGV4dGVuZHMgQ29pbmZsb3dUeXBlcyB7XG4gIHdhbGxldDogRXRoV2FsbGV0O1xuICBibG9ja2NoYWluOiAnZXRoJyB8ICdwb2x5Z29uJyB8ICdiYXNlJyB8ICdhcmJpdHJ1bSc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29pbmZsb3dFdGhIaXN0b3J5UHJvcHMgZXh0ZW5kcyBDb2luZmxvd0V2bUhpc3RvcnlQcm9wcyB7XG4gIGJsb2NrY2hhaW46ICdldGgnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvaW5mbG93UG9seWdvbkhpc3RvcnlQcm9wcyBleHRlbmRzIENvaW5mbG93RXZtSGlzdG9yeVByb3BzIHtcbiAgYmxvY2tjaGFpbjogJ3BvbHlnb24nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvaW5mbG93QmFzZUhpc3RvcnlQcm9wcyBleHRlbmRzIENvaW5mbG93RXZtSGlzdG9yeVByb3BzIHtcbiAgYmxvY2tjaGFpbjogJ2Jhc2UnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvaW5mbG93QXJiaXRydW1IaXN0b3J5UHJvcHMgZXh0ZW5kcyBDb2luZmxvd0V2bUhpc3RvcnlQcm9wcyB7XG4gIGJsb2NrY2hhaW46ICdhcmJpdHJ1bSc7XG59XG5cbmV4cG9ydCB0eXBlIENvaW5mbG93SGlzdG9yeVByb3BzID1cbiAgfCBDb2luZmxvd1NvbGFuYUhpc3RvcnlQcm9wc1xuICB8IENvaW5mbG93TmVhckhpc3RvcnlQcm9wc1xuICB8IENvaW5mbG93UG9seWdvbkhpc3RvcnlQcm9wc1xuICB8IENvaW5mbG93RXRoSGlzdG9yeVByb3BzXG4gIHwgQ29pbmZsb3dCYXNlSGlzdG9yeVByb3BzXG4gIHwgQ29pbmZsb3dBcmJpdHJ1bUhpc3RvcnlQcm9wc1xuICB8IENvaW5mbG93U2Vzc2lvbktleUhpc3RvcnlQcm9wcztcblxuLyoqIFRyYW5zYWN0aW9ucyAqKi9cblxuZXhwb3J0IHR5cGUgTmVhckZ0VHJhbnNmZXJDYWxsQWN0aW9uID0ge1xuICBtZXRob2ROYW1lOiAnZnRfdHJhbnNmZXJfY2FsbCc7XG4gIGFyZ3M6IG9iamVjdDtcbiAgZ2FzOiBzdHJpbmc7XG4gIGRlcG9zaXQ6IHN0cmluZztcbn07XG5cbnR5cGUgQnl0ZXMgPSBBcnJheUxpa2U8bnVtYmVyPjtcbnR5cGUgQnl0ZXNMaWtlID0gQnl0ZXMgfCBzdHJpbmc7XG5cbnR5cGUgUmF3UHJvZHVjdERhdGEgPSBhbnk7XG5cbi8qKiBQdXJjaGFzZSAqKi9cblxuZXhwb3J0IHR5cGUgQ2hhcmdlYmFja1Byb3RlY3Rpb25EYXRhID0gQ2hhcmdlYmFja1Byb3RlY3Rpb25JdGVtW107XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhcmdlYmFja1Byb3RlY3Rpb25JdGVtIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBwcm9kdWN0XG4gICAqL1xuICBwcm9kdWN0TmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHByb2R1Y3QgdHlwZS4gUG9zc2libGUgdmFsdWVzIGluY2x1ZGU6IGluR2FtZVByb2R1Y3QsIGdhbWVPZlNraWxsLCBkYXRhU3RvcmFnZSwgY29tcHV0aW5nUmVzb3VyY2VzLCBzcG9ydHNUaWNrZXQsIGVTcG9ydHNUaWNrZXQsIG11c2ljVGlja2V0LCBjb25mZXJlbmNlVGlja2V0LCB2aXJ0dWFsU3BvcnRzVGlja2V0LCB2aXJ0dWFsRVNwb3J0c1RpY2tldCwgdmlydHVhbE11c2ljVGlja2V0LCB2aXJ0dWFsQ29uZmVyZW5jZVRpY2tldCwgYWxjb2hvbCwgRExDLCBzdWJzY3JpcHRpb24sIGZ1bmRBQ2F1c2UsIHJlYWxFc3RhdGUsIGNvbXB1dGluZ0NvbnRyYWN0LCBkaWdpdGFsQXJ0LCB0b3BVcFxuICAgKi9cbiAgcHJvZHVjdFR5cGU6XG4gICAgfCAnaW5HYW1lUHJvZHVjdCdcbiAgICB8ICdnYW1lT2ZTa2lsbCdcbiAgICB8ICdkYXRhU3RvcmFnZSdcbiAgICB8ICdjb21wdXRpbmdSZXNvdXJjZXMnXG4gICAgfCAnc3BvcnRzVGlja2V0J1xuICAgIHwgJ2VTcG9ydHNUaWNrZXQnXG4gICAgfCAnbXVzaWNUaWNrZXQnXG4gICAgfCAnY29uZmVyZW5jZVRpY2tldCdcbiAgICB8ICd2aXJ0dWFsU3BvcnRzVGlja2V0J1xuICAgIHwgJ3ZpcnR1YWxFU3BvcnRzVGlja2V0J1xuICAgIHwgJ3ZpcnR1YWxNdXNpY1RpY2tldCdcbiAgICB8ICd2aXJ0dWFsQ29uZmVyZW5jZVRpY2tldCdcbiAgICB8ICdhbGNvaG9sJ1xuICAgIHwgJ0RMQydcbiAgICB8ICdzdWJzY3JpcHRpb24nXG4gICAgfCAnZnVuZEFDYXVzZSdcbiAgICB8ICdyZWFsRXN0YXRlJ1xuICAgIHwgJ2NvbXB1dGluZ0NvbnRyYWN0J1xuICAgIHwgJ2RpZ2l0YWxBcnQnXG4gICAgfCAndG9wVXAnXG4gICAgfCAnb3duZXJzaGlwQ29udHJhY3QnO1xuICAvKipcbiAgICogVGhlIGl0ZW0ncyBsaXN0IHByaWNlXG4gICAqL1xuICAvKipcbiAgICogVGhlIG51bWJlciBvZiB1bml0cyBzb2xkXG4gICAqL1xuICBxdWFudGl0eTogbnVtYmVyO1xuICAvKipcbiAgICogQW55IGFkZGl0aW9uYWwgZGF0YSB0aGF0IHRoZSBzdG9yZSBjYW4gcHJvdmlkZSBvbiB0aGUgcHJvZHVjdCwgZS5nLiBkZXNjcmlwdGlvbiwgbGluayB0byBpbWFnZSwgZXRjLlxuICAgKi9cbiAgcmF3UHJvZHVjdERhdGE/OiBSYXdQcm9kdWN0RGF0YTtcbn1cblxuZXhwb3J0IGVudW0gVGhyZWVEc0NoYWxsZW5nZVByZWZlcmVuY2Uge1xuICBOb1ByZWZlcmVuY2UgPSAnTm9QcmVmZXJlbmNlJyxcbiAgRnJpY3Rpb25sZXNzID0gJ0ZyaWN0aW9ubGVzcycsXG4gIENoYWxsZW5nZSA9ICdDaGFsbGVuZ2UnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvaW5mbG93Q29tbW9uUHVyY2hhc2VQcm9wcyBleHRlbmRzIENvaW5mbG93VHlwZXMge1xuICBhbW91bnQ/OiBudW1iZXIgfCBzdHJpbmc7XG4gIG9uU3VjY2Vzcz86IE9uU3VjY2Vzc01ldGhvZDtcbiAgd2ViaG9va0luZm8/OiB7XG4gICAgW2tleTogc3RyaW5nXTogYW55O1xuICB9O1xuICBlbWFpbD86IHN0cmluZztcbiAgY2hhcmdlYmFja1Byb3RlY3Rpb25EYXRhPzogQ2hhcmdlYmFja1Byb3RlY3Rpb25EYXRhO1xuICBwbGFuQ29kZT86IHN0cmluZztcbiAgZGlzYWJsZUFwcGxlUGF5PzogYm9vbGVhbjtcbiAgZGlzYWJsZUdvb2dsZVBheT86IGJvb2xlYW47XG4gIGN1c3RvbWVySW5mbz86IEN1c3RvbWVySW5mbztcbiAgc2V0dGxlbWVudFR5cGU/OiBTZXR0bGVtZW50VHlwZTtcbiAgYXV0aE9ubHk/OiBib29sZWFuO1xuICAvKipcbiAgICogVGhlIERldmljZUlEIGdvdHRlbiBmcm9tIHRoZSBDb2luZmxvdyBTREs6XG4gICAqICBodHRwczovL2RvY3MuY29pbmZsb3cuY2FzaC9kb2NzL2ltcGxlbWVudC1jaGFyZ2ViYWNrLXByb3RlY3Rpb24jaG93LXRvLWFkZC1jaGFyZ2ViYWNrLXByb3RlY3Rpb25cbiAgICpcbiAgICogd2luZG93Py5uU3VyZVNESz8uZ2V0RGV2aWNlSWQoKVxuICAgKi9cbiAgZGV2aWNlSWQ/OiBzdHJpbmc7XG4gIGp3dFRva2VuPzogc3RyaW5nO1xuICAvKipcbiAgICogWW91ciBjb21wYW55IGVtYWlsIGFkZHJlc3MgdGhhdCB0aGUgY3VzdG9tZXIgY2FuIGNvbnRhY3QuXG4gICAqL1xuICBzdXBwb3J0RW1haWw/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBJZiByZW5kZXJpbmcgdGhlIENvaW5mbG93IGNvbXBvbmVudCB3aXRoaW4gbXVsdGlwbGUgbmVzdGVkIGlmcmFtZXMsIGFsbCBhbmNlc3RvcnMgaW4gdGhlIGNoYWluIG11c3QgYmUgcHJvdmlkZWQgYXMgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdC5cbiAgICpcbiAgICogRXhhbXBsZTpcbiAgICogUHJpbWFyeSBvcmlnaW4gdGhhdCB3aWxsIGJlIGludGVyYWN0aW5nIHdpdGggdGhlIENvaW5mbG93IGlGcmFtZTogZm9vLmNvbVxuICAgKiBTdWJzZXF1ZW50IG9yaWdpbnMgdGhhdCB3aWxsIHJlbmRlciBmb28uY29tOiBiYXIuY29tXG4gICAqIFRoZSBvcmlnaW4gYXJyYXkgd291bGQgdGhlbiBiZTogW2h0dHBzOi8vZm9vLmNvbSxodHRwczovL2Jhci5jb21dXG4gICAqL1xuICBvcmlnaW5zPzogc3RyaW5nW107XG4gIHRocmVlRHNDaGFsbGVuZ2VQcmVmZXJlbmNlPzogVGhyZWVEc0NoYWxsZW5nZVByZWZlcmVuY2U7XG4gIGRlc3RpbmF0aW9uQXV0aEtleT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2luZmxvd1NvbGFuYVB1cmNoYXNlUHJvcHNcbiAgZXh0ZW5kcyBDb2luZmxvd0NvbW1vblB1cmNoYXNlUHJvcHMge1xuICB3YWxsZXQ6IFNvbGFuYVdhbGxldDtcbiAgdHJhbnNhY3Rpb24/OiBUcmFuc2FjdGlvbiB8IFZlcnNpb25lZFRyYW5zYWN0aW9uO1xuICBwYXJ0aWFsU2lnbmVycz86IFNpZ25lcltdO1xuICBkZWJ1Z1R4PzogYm9vbGVhbjtcbiAgY29ubmVjdGlvbjogQ29ubmVjdGlvbjtcbiAgYmxvY2tjaGFpbjogJ3NvbGFuYSc7XG4gIHRva2VuPzogUHVibGljS2V5IHwgc3RyaW5nO1xuICByZW50Pzoge2xhbXBvcnRzOiBzdHJpbmcgfCBudW1iZXJ9O1xuICBuYXRpdmVTb2xUb0NvbnZlcnQ/OiB7bGFtcG9ydHM6IHN0cmluZyB8IG51bWJlcn07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29pbmZsb3dTZXNzaW9uS2V5UHVyY2hhc2VQcm9wc1xuICBleHRlbmRzIENvaW5mbG93Q29tbW9uUHVyY2hhc2VQcm9wcyB7XG4gIHNlc3Npb25LZXk6IHN0cmluZztcbiAgd2FsbGV0PzogdW5kZWZpbmVkO1xuICBibG9ja2NoYWluPzogQ29pbmZsb3dCbG9ja2NoYWluIHwgdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvaW5mbG93TmVhclB1cmNoYXNlUHJvcHMgZXh0ZW5kcyBDb2luZmxvd0NvbW1vblB1cmNoYXNlUHJvcHMge1xuICB3YWxsZXQ6IE5lYXJXYWxsZXQ7XG4gIGJsb2NrY2hhaW46ICduZWFyJztcbiAgYWN0aW9uPzogTmVhckZ0VHJhbnNmZXJDYWxsQWN0aW9uO1xuICBuZWFyRGVwb3NpdD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2luZmxvd0V2bVB1cmNoYXNlUHJvcHMgZXh0ZW5kcyBDb2luZmxvd0NvbW1vblB1cmNoYXNlUHJvcHMge1xuICB0cmFuc2FjdGlvbj86IEV2bVRyYW5zYWN0aW9uRGF0YTtcbiAgdG9rZW4/OiBzdHJpbmc7XG4gIHdhbGxldDogRXRoV2FsbGV0O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvaW5mbG93UG9seWdvblB1cmNoYXNlUHJvcHMgZXh0ZW5kcyBDb2luZmxvd0V2bVB1cmNoYXNlUHJvcHMge1xuICBibG9ja2NoYWluOiAncG9seWdvbic7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29pbmZsb3dFdGhQdXJjaGFzZVByb3BzIGV4dGVuZHMgQ29pbmZsb3dFdm1QdXJjaGFzZVByb3BzIHtcbiAgYmxvY2tjaGFpbjogJ2V0aCc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29pbmZsb3dCYXNlUHVyY2hhc2VQcm9wcyBleHRlbmRzIENvaW5mbG93RXZtUHVyY2hhc2VQcm9wcyB7XG4gIGJsb2NrY2hhaW46ICdiYXNlJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2luZmxvd0FyYml0cnVtUHVyY2hhc2VQcm9wc1xuICBleHRlbmRzIENvaW5mbG93RXZtUHVyY2hhc2VQcm9wcyB7XG4gIGJsb2NrY2hhaW46ICdhcmJpdHJ1bSc7XG59XG5cbmV4cG9ydCB0eXBlIENvaW5mbG93UHVyY2hhc2VQcm9wcyA9XG4gIHwgQ29pbmZsb3dTb2xhbmFQdXJjaGFzZVByb3BzXG4gIHwgQ29pbmZsb3dTZXNzaW9uS2V5UHVyY2hhc2VQcm9wc1xuICB8IENvaW5mbG93TmVhclB1cmNoYXNlUHJvcHNcbiAgfCBDb2luZmxvd1BvbHlnb25QdXJjaGFzZVByb3BzXG4gIHwgQ29pbmZsb3dFdGhQdXJjaGFzZVByb3BzXG4gIHwgQ29pbmZsb3dCYXNlUHVyY2hhc2VQcm9wc1xuICB8IENvaW5mbG93QXJiaXRydW1QdXJjaGFzZVByb3BzO1xuXG4vKiogV2l0aGRyYXcgKiovXG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29pbmZsb3dDb21tb25XaXRoZHJhd1Byb3BzIGV4dGVuZHMgQ29pbmZsb3dUeXBlcyB7XG4gIG9uU3VjY2Vzcz86IE9uU3VjY2Vzc01ldGhvZDtcbiAgdG9rZW5zPzogc3RyaW5nW107XG4gIGxvY2tEZWZhdWx0VG9rZW4/OiBib29sZWFuO1xuICBhbW91bnQ/OiBudW1iZXI7XG4gIGVtYWlsPzogc3RyaW5nO1xuICBiYW5rQWNjb3VudExpbmtSZWRpcmVjdD86IHN0cmluZztcbiAgYWRkaXRpb25hbFdhbGxldHM/OiB7XG4gICAgd2FsbGV0OiBzdHJpbmc7XG4gICAgYmxvY2tjaGFpbjogJ3NvbGFuYScgfCAnZXRoJyB8ICduZWFyJyB8ICdwb2x5Z29uJyB8ICdiYXNlJyB8ICdhcmJpdHJ1bSc7XG4gIH1bXTtcbiAgbG9ja0Ftb3VudD86IGJvb2xlYW47XG4gIHRyYW5zYWN0aW9uU2lnbmVyPzogc3RyaW5nO1xuICAvKipcbiAgICogSWYgcmVuZGVyaW5nIHRoZSBDb2luZmxvdyBjb21wb25lbnQgd2l0aGluIG11bHRpcGxlIG5lc3RlZCBpZnJhbWVzLCBhbGwgYW5jZXN0b3JzIGluIHRoZSBjaGFpbiBtdXN0IGJlIHByb3ZpZGVkIGFzIGEgY29tbWEtc2VwYXJhdGVkIGxpc3QuXG4gICAqXG4gICAqIEV4YW1wbGU6XG4gICAqIFByaW1hcnkgb3JpZ2luIHRoYXQgd2lsbCBiZSBpbnRlcmFjdGluZyB3aXRoIHRoZSBDb2luZmxvdyBpRnJhbWU6IGZvby5jb21cbiAgICogU3Vic2VxdWVudCBvcmlnaW5zIHRoYXQgd2lsbCByZW5kZXIgZm9vLmNvbTogYmFyLmNvbVxuICAgKiBUaGUgb3JpZ2luIGFycmF5IHdvdWxkIHRoZW4gYmU6IFtodHRwczovL2Zvby5jb20saHR0cHM6Ly9iYXIuY29tXVxuICAgKi9cbiAgb3JpZ2lucz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgdHlwZSBXYWxsZXRUeXBlcyA9IFNvbGFuYVdhbGxldCB8IE5lYXJXYWxsZXQgfCBFdGhXYWxsZXQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU29sYW5hV2FsbGV0UHJvcHMge1xuICB3YWxsZXQ6IFNvbGFuYVdhbGxldDtcbiAgY29ubmVjdGlvbjogQ29ubmVjdGlvbjtcbiAgYmxvY2tjaGFpbjogJ3NvbGFuYSc7XG59XG5cbmV4cG9ydCB0eXBlIENvaW5mbG93U29sYW5hV2l0aGRyYXdQcm9wcyA9IENvaW5mbG93Q29tbW9uV2l0aGRyYXdQcm9wcyAmXG4gIFNvbGFuYVdhbGxldFByb3BzO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5lYXJXYWxsZXRQcm9wcyB7XG4gIHdhbGxldDogTmVhcldhbGxldDtcbiAgYmxvY2tjaGFpbjogJ25lYXInO1xufVxuXG5leHBvcnQgdHlwZSBDb2luZmxvd05lYXJXaXRoZHJhd1Byb3BzID0gQ29pbmZsb3dDb21tb25XaXRoZHJhd1Byb3BzICZcbiAgTmVhcldhbGxldFByb3BzO1xuXG5pbnRlcmZhY2UgRXZtV2FsbGV0UHJvcHMge1xuICB3YWxsZXQ6IEV0aFdhbGxldDtcbiAgdXNlUGVybWl0PzogYm9vbGVhbjtcbn1cblxudHlwZSBDb2luZmxvd0V2bVdpdGhkcmF3UHJvcHMgPSBDb2luZmxvd0NvbW1vbldpdGhkcmF3UHJvcHMgJiBFdm1XYWxsZXRQcm9wcztcblxuZXhwb3J0IGludGVyZmFjZSBFdGhXYWxsZXRQcm9wcyB7XG4gIGJsb2NrY2hhaW46ICdldGgnO1xufVxuXG5leHBvcnQgdHlwZSBDb2luZmxvd0V0aFdpdGhkcmF3UHJvcHMgPSBDb2luZmxvd0V2bVdpdGhkcmF3UHJvcHMgJlxuICBFdGhXYWxsZXRQcm9wcztcblxuZXhwb3J0IGludGVyZmFjZSBQb2x5Z29uV2FsbGV0UHJvcHMge1xuICBibG9ja2NoYWluOiAncG9seWdvbic7XG59XG5cbmV4cG9ydCB0eXBlIENvaW5mbG93UG9seWdvbldpdGhkcmF3UHJvcHMgPSBDb2luZmxvd0V2bVdpdGhkcmF3UHJvcHMgJlxuICBQb2x5Z29uV2FsbGV0UHJvcHM7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZVdhbGxldFByb3BzIHtcbiAgYmxvY2tjaGFpbjogJ2Jhc2UnO1xufVxuXG5leHBvcnQgdHlwZSBDb2luZmxvd0Jhc2VXaXRoZHJhd1Byb3BzID0gQ29pbmZsb3dFdm1XaXRoZHJhd1Byb3BzICZcbiAgQmFzZVdhbGxldFByb3BzO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFyYml0cnVtV2FsbGV0UHJvcHMge1xuICBibG9ja2NoYWluOiAnYXJiaXRydW0nO1xufVxuXG5leHBvcnQgdHlwZSBDb2luZmxvd0FyYml0cnVtV2l0aGRyYXdQcm9wcyA9IENvaW5mbG93RXZtV2l0aGRyYXdQcm9wcyAmXG4gIEFyYml0cnVtV2FsbGV0UHJvcHM7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29pbmZsb3dTZXNzaW9uS2V5V2l0aGRyYXdQcm9wc1xuICBleHRlbmRzIENvaW5mbG93Q29tbW9uV2l0aGRyYXdQcm9wcyB7XG4gIHNlc3Npb25LZXk6IHN0cmluZztcbiAgc2lnbmVyOlxuICAgIHwgU29sYW5hV2FsbGV0UHJvcHNcbiAgICB8IE5lYXJXYWxsZXRQcm9wc1xuICAgIHwgRXRoV2FsbGV0UHJvcHNcbiAgICB8IFBvbHlnb25XYWxsZXRQcm9wc1xuICAgIHwgQmFzZVdhbGxldFByb3BzXG4gICAgfCBBcmJpdHJ1bVdhbGxldFByb3BzO1xuICBibG9ja2NoYWluPzogdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgdHlwZSBDb2luZmxvd1dpdGhkcmF3UHJvcHMgPVxuICB8IENvaW5mbG93U29sYW5hV2l0aGRyYXdQcm9wc1xuICB8IENvaW5mbG93TmVhcldpdGhkcmF3UHJvcHNcbiAgfCBDb2luZmxvd0V0aFdpdGhkcmF3UHJvcHNcbiAgfCBDb2luZmxvd1BvbHlnb25XaXRoZHJhd1Byb3BzXG4gIHwgQ29pbmZsb3dCYXNlV2l0aGRyYXdQcm9wc1xuICB8IENvaW5mbG93QXJiaXRydW1XaXRoZHJhd1Byb3BzXG4gIHwgQ29pbmZsb3dTZXNzaW9uS2V5V2l0aGRyYXdQcm9wcztcblxuZXhwb3J0IGludGVyZmFjZSBDb21tb25Fdm1SZWRlZW0ge1xuICB3YWl0Rm9ySGFzaD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTm9ybWFsUmVkZWVtIGV4dGVuZHMgQ29tbW9uRXZtUmVkZWVtIHtcbiAgdHJhbnNhY3Rpb246IHt0bzogc3RyaW5nOyBkYXRhOiBzdHJpbmd9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEtub3duVG9rZW5JZFJlZGVlbSBleHRlbmRzIE5vcm1hbFJlZGVlbSB7XG4gIG5mdENvbnRyYWN0OiBzdHJpbmc7XG4gIG5mdElkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2FmZU1pbnRSZWRlZW0gZXh0ZW5kcyBOb3JtYWxSZWRlZW0ge1xuICB0eXBlOiAnc2FmZU1pbnQnO1xuICBuZnRDb250cmFjdD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXR1cm5lZFRva2VuSWRSZWRlZW0gZXh0ZW5kcyBOb3JtYWxSZWRlZW0ge1xuICB0eXBlOiAncmV0dXJuZWQnO1xuICBuZnRDb250cmFjdD86IHN0cmluZztcbn1cblxudHlwZSBSZXNlcnZvaXJOZnRJZEl0ZW0gPSBPbWl0PEtub3duVG9rZW5JZFJlZGVlbSwga2V5b2YgTm9ybWFsUmVkZWVtPjtcbmludGVyZmFjZSBSZXNlcnZvaXJPcmRlcklkSXRlbSB7XG4gIG9yZGVySWQ6IHN0cmluZztcbn1cbnR5cGUgUmVzZXJ2b2lySXRlbSA9IFJlc2Vydm9pck5mdElkSXRlbSB8IFJlc2Vydm9pck9yZGVySWRJdGVtO1xudHlwZSBSZXNlcnZvaXJJdGVtcyA9IFJlc2Vydm9pckl0ZW0gfCBSZXNlcnZvaXJJdGVtW107XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzZXJ2b2lyUmVkZWVtIGV4dGVuZHMgQ29tbW9uRXZtUmVkZWVtIHtcbiAgdHlwZTogJ3Jlc2Vydm9pcic7XG4gIGl0ZW1zOiBSZXNlcnZvaXJJdGVtcztcbiAgdGFrZXI/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVG9rZW5SZWRlZW0gZXh0ZW5kcyBDb21tb25Fdm1SZWRlZW0ge1xuICB0eXBlOiAndG9rZW4nO1xuICBkZXN0aW5hdGlvbjogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBFdm1UcmFuc2FjdGlvbkRhdGEgPVxuICB8IFNhZmVNaW50UmVkZWVtXG4gIHwgUmV0dXJuZWRUb2tlbklkUmVkZWVtXG4gIHwgUmVzZXJ2b2lyUmVkZWVtXG4gIHwgS25vd25Ub2tlbklkUmVkZWVtXG4gIHwgTm9ybWFsUmVkZWVtXG4gIHwgVG9rZW5SZWRlZW07XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29pbmZsb3dJRnJhbWVQcm9wc1xuICBleHRlbmRzIE9taXQ8Q29pbmZsb3dUeXBlcywgJ21lcmNoYW50SWQnPixcbiAgICBQaWNrPFxuICAgICAgQ29pbmZsb3dDb21tb25QdXJjaGFzZVByb3BzLFxuICAgICAgfCAnY2hhcmdlYmFja1Byb3RlY3Rpb25EYXRhJ1xuICAgICAgfCAnd2ViaG9va0luZm8nXG4gICAgICB8ICdhbW91bnQnXG4gICAgICB8ICdjdXN0b21lckluZm8nXG4gICAgICB8ICdzZXR0bGVtZW50VHlwZSdcbiAgICAgIHwgJ2VtYWlsJ1xuICAgICAgfCAncGxhbkNvZGUnXG4gICAgICB8ICdkZXZpY2VJZCdcbiAgICAgIHwgJ2p3dFRva2VuJ1xuICAgICAgfCAnb3JpZ2lucydcbiAgICAgIHwgJ3RocmVlRHNDaGFsbGVuZ2VQcmVmZXJlbmNlJ1xuICAgICAgfCAnc3VwcG9ydEVtYWlsJ1xuICAgID4sXG4gICAgUGljazxcbiAgICAgIENvaW5mbG93Q29tbW9uV2l0aGRyYXdQcm9wcyxcbiAgICAgIHwgJ2JhbmtBY2NvdW50TGlua1JlZGlyZWN0J1xuICAgICAgfCAnYWRkaXRpb25hbFdhbGxldHMnXG4gICAgICB8ICd0cmFuc2FjdGlvblNpZ25lcidcbiAgICAgIHwgJ2xvY2tBbW91bnQnXG4gICAgICB8ICdsb2NrRGVmYXVsdFRva2VuJ1xuICAgICAgfCAnb3JpZ2lucydcbiAgICA+LFxuICAgIFBpY2s8Q29pbmZsb3dFdm1QdXJjaGFzZVByb3BzLCAnYXV0aE9ubHknPixcbiAgICBQaWNrPFxuICAgICAgQ29pbmZsb3dTb2xhbmFQdXJjaGFzZVByb3BzLFxuICAgICAgJ3JlbnQnIHwgJ25hdGl2ZVNvbFRvQ29udmVydCcgfCAndG9rZW4nIHwgJ2Rlc3RpbmF0aW9uQXV0aEtleSdcbiAgICA+IHtcbiAgd2FsbGV0UHVia2V5OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBzZXNzaW9uS2V5Pzogc3RyaW5nO1xuICByb3V0ZTogc3RyaW5nO1xuICByb3V0ZVByZWZpeD86IHN0cmluZztcbiAgdHJhbnNhY3Rpb24/OiBzdHJpbmc7XG4gIHRva2Vucz86IHN0cmluZ1tdIHwgUHVibGljS2V5W107XG4gIG5lYXJEZXBvc2l0Pzogc3RyaW5nO1xuICBtZXJjaGFudENzcz86IHN0cmluZztcbiAgY29sb3I/OiAnd2hpdGUnIHwgJ2JsYWNrJztcbiAgZGlzYWJsZUFwcGxlUGF5PzogYm9vbGVhbjtcbiAgZGlzYWJsZUdvb2dsZVBheT86IGJvb2xlYW47XG4gIHRoZW1lPzogTWVyY2hhbnRUaGVtZTtcbiAgdXNlUGVybWl0PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGVudW0gQ2FyZFR5cGUge1xuICBWSVNBID0gJ1ZJU0EnLFxuICBNQVNURVJDQVJEID0gJ01TVFInLFxuICBBTUVYID0gJ0FNRVgnLFxuICBESVNDT1ZFUiA9ICdESVNDJyxcbn1cbiJdfQ==