@gravitee/ui-components 3.23.0 → 3.24.0
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/package.json +22 -21
- package/src/atoms/gv-autocomplete.js +5 -6
- package/src/atoms/gv-button.js +4 -4
- package/src/atoms/gv-checkbox.js +3 -3
- package/src/atoms/gv-date-picker-calendar.js +4 -5
- package/src/atoms/gv-date-picker-cell.js +4 -4
- package/src/atoms/gv-date-picker.js +4 -5
- package/src/atoms/gv-file-upload.js +4 -5
- package/src/atoms/gv-icon.js +14 -7
- package/src/atoms/gv-image.js +4 -4
- package/src/atoms/gv-input-message.js +2 -3
- package/src/atoms/gv-input.js +3 -3
- package/src/atoms/gv-link.js +6 -6
- package/src/atoms/gv-message.js +3 -3
- package/src/atoms/gv-metric.js +3 -3
- package/src/atoms/gv-relative-time.js +6 -4
- package/src/atoms/gv-select-native.js +6 -6
- package/src/atoms/gv-select.js +5 -5
- package/src/atoms/gv-spinner.js +2 -2
- package/src/atoms/gv-state.js +3 -3
- package/src/atoms/gv-switch.js +4 -4
- package/src/atoms/gv-tag.js +3 -3
- package/src/atoms/gv-text.js +4 -4
- package/src/charts/gv-chart-bar.js +2 -2
- package/src/charts/gv-chart-gauge.js +2 -2
- package/src/charts/gv-chart-histogram.js +2 -2
- package/src/charts/gv-chart-line.js +2 -2
- package/src/charts/gv-chart-map.js +2 -2
- package/src/charts/gv-chart-pie.js +2 -2
- package/src/lib/item.js +2 -2
- package/src/lib/studio.js +3 -3
- package/src/mixins/chart-element.js +3 -4
- package/src/mixins/input-element.js +3 -3
- package/src/mixins/item-resource.js +3 -3
- package/src/mixins/with-skeleton-attribute.js +2 -2
- package/src/molecules/gv-card-full.js +3 -3
- package/src/molecules/gv-card-list.js +3 -4
- package/src/molecules/gv-card.js +3 -3
- package/src/molecules/gv-category-list.js +2 -3
- package/src/molecules/gv-category.js +3 -3
- package/src/molecules/gv-code-hint.js +2 -3
- package/src/molecules/gv-code.js +3 -3
- package/src/molecules/gv-confirm.js +2 -3
- package/src/molecules/gv-cron-editor.js +3 -3
- package/src/molecules/gv-dropdown-menu.js +2 -3
- package/src/molecules/gv-expandable.js +3 -3
- package/src/molecules/gv-expression-language.js +2 -3
- package/src/molecules/gv-identity-picture.js +3 -4
- package/src/molecules/gv-list.js +4 -4
- package/src/molecules/gv-metrics.js +4 -4
- package/src/molecules/gv-modal.js +2 -2
- package/src/molecules/gv-nav.js +5 -5
- package/src/molecules/gv-option.js +6 -6
- package/src/molecules/gv-plans.js +5 -6
- package/src/molecules/gv-popover.js +3 -4
- package/src/molecules/gv-promote.js +3 -3
- package/src/molecules/gv-rating-list.js +4 -5
- package/src/molecules/gv-rating.js +4 -4
- package/src/molecules/gv-row-expandable.js +2 -2
- package/src/molecules/gv-row.js +3 -3
- package/src/molecules/gv-stats.js +4 -4
- package/src/molecules/gv-stepper.js +4 -4
- package/src/molecules/gv-table.js +7 -8
- package/src/molecules/gv-tree.js +4 -4
- package/src/organisms/gv-documentation.js +2 -2
- package/src/organisms/gv-header.js +6 -6
- package/src/organisms/gv-http-client.js +2 -2
- package/src/organisms/gv-menu.js +3 -3
- package/src/organisms/gv-newsletter-subscription.js +2 -2
- package/src/organisms/gv-pagination.js +2 -2
- package/src/organisms/gv-properties.js +3 -3
- package/src/organisms/gv-resizable-views.js +3 -4
- package/src/organisms/gv-resources.js +2 -2
- package/src/organisms/gv-schema-form-array.js +5 -5
- package/src/organisms/gv-schema-form-control-object.js +5 -5
- package/src/organisms/gv-schema-form-control.js +4 -9
- package/src/organisms/gv-schema-form.js +8 -7
- package/src/organisms/gv-tabs.js +2 -3
- package/src/organisms/gv-user-menu.js +4 -4
- package/src/organisms/gv-vertical-menu.js +2 -2
- package/src/policy-studio/gv-flow-step.js +3 -3
- package/src/policy-studio/gv-flow.js +5 -5
- package/src/policy-studio/gv-policy-studio-menu.js +4 -4
- package/src/policy-studio/gv-policy-studio.js +5 -5
- package/src/styles/empty.js +2 -2
- package/src/styles/input.js +2 -2
- package/src/styles/link.js +2 -2
- package/src/styles/skeleton.js +2 -2
- package/src/styles/zoom.js +2 -2
- package/src/theme/gv-theme.js +2 -2
|
@@ -13,11 +13,12 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import { LitElement, html, css } from 'lit
|
|
16
|
+
import { LitElement, html, css } from 'lit';
|
|
17
17
|
import { get, set, del } from 'object-path';
|
|
18
18
|
import { dispatchCustomEvent } from '../lib/events';
|
|
19
19
|
import { deepClone, deepEqual } from '../lib/utils';
|
|
20
|
-
import { classMap } from 'lit
|
|
20
|
+
import { classMap } from 'lit/directives/class-map';
|
|
21
|
+
import { repeat } from 'lit/directives/repeat';
|
|
21
22
|
import { Validator } from 'jsonschema';
|
|
22
23
|
import { empty } from '../styles/empty';
|
|
23
24
|
import './gv-schema-form-control';
|
|
@@ -387,7 +388,7 @@ export class GvSchemaForm extends LitElement {
|
|
|
387
388
|
const isReadonly = this.readonly || control.readOnly === true;
|
|
388
389
|
const isWriteOnly = control.writeOnly === true;
|
|
389
390
|
const value = get(this._values, key);
|
|
390
|
-
return html`<gv-schema-form-control .id="${key}" .errors="${this.errors}" .control="${control}" .skeleton="${this.skeleton}" .value="${value}" ?readonly="${isReadonly}" ?writeonly="${isWriteOnly}" ?required="${isRequired}" ?disabled="${isDisabled}" ?hidden="${isHidden}"></gv-schema-form-control>`;
|
|
391
|
+
return html`<gv-schema-form-control data-a="dd" .id="${key}" .errors="${this.errors}" .control="${control}" .skeleton="${this.skeleton}" .value="${value}" ?readonly="${isReadonly}" ?writeonly="${isWriteOnly}" ?required="${isRequired}" ?disabled="${isDisabled}" ?hidden="${isHidden}"></gv-schema-form-control>`;
|
|
391
392
|
}
|
|
392
393
|
|
|
393
394
|
_hasCondition(control) {
|
|
@@ -489,7 +490,7 @@ export class GvSchemaForm extends LitElement {
|
|
|
489
490
|
|
|
490
491
|
const keys = this.schema.properties ? Object.keys(this.schema.properties) : [];
|
|
491
492
|
this._ignoreProperties = [];
|
|
492
|
-
return
|
|
493
|
+
return repeat(keys, key => this._renderControl(key));
|
|
493
494
|
}
|
|
494
495
|
|
|
495
496
|
getControls() {
|
|
@@ -591,8 +592,8 @@ export class GvSchemaForm extends LitElement {
|
|
|
591
592
|
this._updateChildren(this.validateOnRender && (changedProperties.has('_values') || changedProperties.has('schema')));
|
|
592
593
|
}
|
|
593
594
|
|
|
594
|
-
async
|
|
595
|
-
await super.
|
|
595
|
+
async getUpdateComplete() {
|
|
596
|
+
await super.getUpdateComplete();
|
|
596
597
|
await Promise.all(this.getControls().map(e => e.updateComplete));
|
|
597
598
|
}
|
|
598
599
|
|
|
@@ -615,4 +616,4 @@ export class GvSchemaForm extends LitElement {
|
|
|
615
616
|
|
|
616
617
|
}
|
|
617
618
|
window.customElements.define('gv-schema-form', GvSchemaForm);
|
|
618
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL29yZ2FuaXNtcy9ndi1zY2hlbWEtZm9ybS5qcyJdLCJuYW1lcyI6WyJMaXRFbGVtZW50IiwiaHRtbCIsImNzcyIsImdldCIsInNldCIsImRlbCIsImRpc3BhdGNoQ3VzdG9tRXZlbnQiLCJkZWVwQ2xvbmUiLCJkZWVwRXF1YWwiLCJjbGFzc01hcCIsIlZhbGlkYXRvciIsImVtcHR5IiwiR3ZTY2hlbWFGb3JtIiwicHJvcGVydGllcyIsInNjaGVtYSIsInR5cGUiLCJPYmplY3QiLCJlcnJvcnMiLCJ2YWx1ZXMiLCJzdWJtaXRMYWJlbCIsIlN0cmluZyIsImhhc0Zvb3RlciIsIkJvb2xlYW4iLCJhdHRyaWJ1dGUiLCJoYXNIZWFkZXIiLCJfY29uZmlybSIsIl92YWx1ZXMiLCJkaXJ0eSIsInJlZmxlY3QiLCJoaWRlRGVwcmVjYXRlZCIsInZhbGlkYXRlT25SZW5kZXIiLCJfdmFsaWRhdG9yUmVzdWx0cyIsInNrZWxldG9uIiwiX3RvdWNoIiwicmVhZG9ubHkiLCJzY3JvbGxhYmxlIiwiY29uc3RydWN0b3IiLCJfdmFsaWRhdG9yIiwiX2lnbm9yZVByb3BlcnRpZXMiLCJfZHluYW1pY0NvbnRyb2xzIiwiX2R5bmFtaWNBdHRyaWJ1dGVzIiwiYWRkRXZlbnRMaXN0ZW5lciIsIl9vbkRlZmF1bHRWYWx1ZSIsImJpbmQiLCJfb25DaGFuZ2UiLCJfb25Db250cm9sUmVhZHkiLCJfaW5pdGlhbFZhbHVlcyIsInJlc2V0IiwiX3NldERpcnR5IiwiZ2V0Q29udHJvbHMiLCJmb3JFYWNoIiwicyIsInJlcXVlc3RVcGRhdGUiLCJfb25SZXNldCIsInJlcXVlc3RWYWxpZGF0aW9uIiwiY2xlYXJUaW1lb3V0IiwiX3ZhbGlkYXRlVGltZW91dCIsInNldFRpbWVvdXQiLCJ2YWxpZGF0ZSIsIl91cGRhdGVBY3Rpb25zIiwic3VibWl0IiwiX29uU3VibWl0IiwidmFsaWRhdG9yUmVzdWx0cyIsImlzVmFsaWQiLCJfc2V0VG91Y2giLCJ0b3VjaCIsImNvbmZpcm0iLCJpc1RvdWNoIiwicHJvbWlzZSIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiX29uQ29uZmlybVJlc2V0IiwidGhlbiIsIl9vbkNvbmZpcm1FZGl0IiwiX3VwZGF0ZUNoaWxkcmVuIiwiX2dldFN1Ym1pdEJ0biIsInNoYWRvd1Jvb3QiLCJxdWVyeVNlbGVjdG9yIiwiX2dldFJlc2V0QnRuIiwiX2Rpc3BhdGNoQ2hhbmdlIiwiX2NoYW5nZVRpbWVvdXQiLCJ0YXJnZXQiLCJ2YWxpZGF0aW9uIiwiZGV0YWlsIiwiY3VycmVudFRhcmdldCIsInZhbHVlIiwiY29udHJvbCIsInRyaW0iLCJsZW5ndGgiLCJwYXJzZUludCIsImlkIiwiaW50VmFsdWUiLCJOdW1iZXIiLCJ2YWx1ZU9mIiwiaXNOYU4iLCJlbnVtIiwia2V5cyIsIl91cGRhdGVEeW5hbWljQ29udHJvbHMiLCJlIiwic3RvcFByb3BhZ2F0aW9uIiwicHJldmVudERlZmF1bHQiLCJjb250cm9sRWxlbWVudCIsImV2ZW50IiwibmFtZSIsIl9oYXNDb25kaXRpb24iLCJwdXNoIiwiX3VwZGF0ZUR5bmFtaWNDb250cm9sIiwiaXMiLCJfZXZhbHVhdGVDb25kaXRpb24iLCJzZXRBdHRyaWJ1dGUiLCJyZW1vdmVBdHRyaWJ1dGUiLCJwZXJmb3JtVXBkYXRlIiwiX3JlbmRlckNvbnRyb2wiLCJrZXkiLCJpc1JlcXVpcmVkIiwicmVxdWlyZWQiLCJpbmNsdWRlcyIsImlzRGlzYWJsZWQiLCJkaXNhYmxlZCIsImlzSGlkZGVuIiwiaXNSZWFkb25seSIsInJlYWRPbmx5IiwiaXNXcml0ZU9ubHkiLCJ3cml0ZU9ubHkiLCJmaW5kIiwiY29uZGl0aW9uIiwiY29uZGl0aW9uS2V5IiwiQXJyYXkiLCJpc0FycmF5IiwiY29uc29sZSIsIndhcm4iLCJyZXN1bHQiLCJvcGVyYXRpb24iLCJvcGVyYXRvciIsIl9ldmFsdWF0ZU5vdEVxdWFsc0NvbmRpdGlvbiIsIl9ldmFsdWF0ZUVxdWFsc0NvbmRpdGlvbiIsIl9ldmFsdWF0ZU5vdERlZkNvbmRpdGlvbiIsIl9ldmFsdWF0ZURlZkNvbmRpdGlvbiIsIm9wZXJhbmRzIiwibW9kZWxBdHRyaWJ1dGVzIiwibWFwIiwibW9kZWxBdHRyaWJ1dGUiLCJ0ZXN0VmFsdWUiLCJyZWR1Y2UiLCJhY2MiLCJjdXJyZW50IiwidW5kZWZpbmVkIiwiX3JlbmRlclBhcnQiLCJmcm9tIiwicXVlcnlTZWxlY3RvckFsbCIsImdldENvbnRyb2wiLCJfZ2V0RXJyb3JzIiwiZmlsdGVyIiwiZXJyb3IiLCJwcm9wZXJ0eSIsInJlcGxhY2UiLCJhcmd1bWVudCIsImVycm9yS2V5IiwiZXJyb3JNZXNzYWdlIiwibWVzc2FnZSIsImFkZGl0aW9uYWxQcm9wZXJ0aWVzIiwidmFsaWQiLCJjYW5TdWJtaXQiLCJzdWJtaXRCdG4iLCJyZXNldEJ0biIsIndpdGhWYWxpZGF0aW9uIiwiX3VwZGF0ZUFjdGlvbnNUaW1lb3V0IiwidXBkYXRlZCIsImNoYW5nZWRQcm9wZXJ0aWVzIiwiaGFzIiwiX2dldFVwZGF0ZUNvbXBsZXRlIiwiYWxsIiwidXBkYXRlQ29tcGxldGUiLCJyZW5kZXIiLCJjb250YWluZXIiLCJ0aXRsZSIsImNlbnRlciIsInN0eWxlcyIsIndpbmRvdyIsImN1c3RvbUVsZW1lbnRzIiwiZGVmaW5lIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxVQUFULEVBQXFCQyxJQUFyQixFQUEyQkMsR0FBM0IsUUFBc0MsYUFBdEM7QUFDQSxTQUFTQyxHQUFULEVBQWNDLEdBQWQsRUFBbUJDLEdBQW5CLFFBQThCLGFBQTlCO0FBQ0EsU0FBU0MsbUJBQVQsUUFBb0MsZUFBcEM7QUFDQSxTQUFTQyxTQUFULEVBQW9CQyxTQUFwQixRQUFxQyxjQUFyQztBQUNBLFNBQVNDLFFBQVQsUUFBeUIsK0JBQXpCO0FBQ0EsU0FBU0MsU0FBVCxRQUEwQixZQUExQjtBQUNB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bSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7IExpdEVsZW1lbnQsIGh0bWwsIGNzcyB9IGZyb20gJ2xpdC1lbGVtZW50JztcbmltcG9ydCB7IGdldCwgc2V0LCBkZWwgfSBmcm9tICdvYmplY3QtcGF0aCc7XG5pbXBvcnQgeyBkaXNwYXRjaEN1c3RvbUV2ZW50IH0gZnJvbSAnLi4vbGliL2V2ZW50cyc7XG5pbXBvcnQgeyBkZWVwQ2xvbmUsIGRlZXBFcXVhbCB9IGZyb20gJy4uL2xpYi91dGlscyc7XG5pbXBvcnQgeyBjbGFzc01hcCB9IGZyb20gJ2xpdC1odG1sL2RpcmVjdGl2ZXMvY2xhc3MtbWFwJztcbmltcG9ydCB7IFZhbGlkYXRvciB9IGZyb20gJ2pzb25zY2hlbWEnO1xuaW1wb3J0IHsgZW1wdHkgfSBmcm9tICcuLi9zdHlsZXMvZW1wdHknO1xuaW1wb3J0ICcuL2d2LXNjaGVtYS1mb3JtLWNvbnRyb2wnO1xuXG4vKipcbiAqIFNjaGVtYSBmb3JtIGNvbXBvbmVudFxuICpcbiAqIEBmaXJlcyBndi1zY2hlbWEtZm9ybTpzdWJtaXQgLSBldmVudCB3aGVuIHVzZXIgc3VibWl0IHZhbGlkIGZvcm1cbiAqIEBmaXJlcyBndi1zY2hlbWEtZm9ybTplcnJvciAtIGV2ZW50IHdoZW4gdXNlciBzdWJtaXQgaW52YWxpZCBmb3JtXG4gKiBAZmlyZXMgZ3Ytc2NoZW1hLWZvcm06Y2hhbmdlIC0gZXZlbnQgd2hlbiB3aGVuIGZvcm0gY2hhbmdlXG4gKiBAZmlyZXMgZ3Ytc2NoZW1hLWZvcm06Y2FuY2VsIC0gZXZlbnQgd2hlbiB1c2VyIGNhbmNlbCBmb3JtXG4gKlxuICogQGF0dHIge09iamVjdH0gc2NoZW1hIC0gdGhlIHNjaGVtYSBmb3JtIGNvbmZpZ3VyYXRpb25cbiAqIEBhdHRyIHtPYmplY3R9IHZhbHVlcyAtIHRoZSB2YWx1ZXMgb2YgZmllbGRzXG4gKiBAYXR0ciB7T2JqZWN0fSBlcnJvcnMgLSB0aGUgbWFwIG9mIGVycm9ycyBieSBpbnB1dCBrZXlcbiAqIEBhdHRyIHtCb29sZWFufSB2YWxpZGF0ZSAtIHRvIGZvcmNlIHZhbGlkYXRpb24gb24gZmlyc3QgcmVuZGVyXG4gKiBAYXR0ciB7Qm9vbGVhbn0gcmVhZG9ubHkgLSB0cnVlIGlmIHJlYWRvbmx5XG4gKiBAYXR0ciB7Qm9vbGVhbn0gc2Nyb2xsYWJsZSAtIHVzZWZ1bCBmb3IgbWFraW5nIGNvbnRlbnQgc2Nyb2xsYWJsZSB3aXRoIGZpeGVkIGhlYWRlcnMgLyBmb290ZXJzXG4gKlxuICogQGNzc3Byb3Age0NvbG9yfSBbLS1ndi1zY2hlbWEtZm9ybS0tYmdjPSNmZmZmZmZdIC0gQmFja2dyb3VuZCBjb2xvclxuICogQGNzc3Byb3Age0xlbmd0aH0gWy0tZ3Ytc2NoZW1hLWZvcm0tY29udHJvbC0tbT0wLjRyZW1dIC0gQ29udHJvbCBtYXJnaW5cbiAqL1xuZXhwb3J0IGNsYXNzIEd2U2NoZW1hRm9ybSBleHRlbmRzIExpdEVsZW1lbnQge1xuICBzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNjaGVtYTogeyB0eXBlOiBPYmplY3QgfSxcbiAgICAgIGVycm9yczogeyB0eXBlOiBPYmplY3QgfSxcbiAgICAgIHZhbHVlczogeyB0eXBlOiBPYmplY3QgfSxcbiAgICAgIHN1Ym1pdExhYmVsOiB7IHR5cGU6IFN0cmluZyB9LFxuICAgICAgaGFzRm9vdGVyOiB7IHR5cGU6IEJvb2xlYW4sIGF0dHJpYnV0ZTogJ2hhcy1mb290ZXInIH0sXG4gICAgICBoYXNIZWFkZXI6IHsgdHlwZTogQm9vbGVhbiwgYXR0cmlidXRlOiAnaGFzLWhlYWRlcicgfSxcbiAgICAgIF9jb25maXJtOiB7IHR5cGU6IE9iamVjdCB9LFxuICAgICAgX3ZhbHVlczogeyB0eXBlOiBPYmplY3QsIGF0dHJpYnV0ZTogZmFsc2UgfSxcbiAgICAgIGRpcnR5OiB7IHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUgfSxcbiAgICAgIGhpZGVEZXByZWNhdGVkOiB7IHR5cGU6IEJvb2xlYW4sIGF0dHJpYnV0ZTogJ2hpZGUtZGVwcmVjYXRlZCcgfSxcbiAgICAgIHZhbGlkYXRlT25SZW5kZXI6IHsgdHlwZTogQm9vbGVhbiwgYXR0cmlidXRlOiAndmFsaWRhdGUtb24tcmVuZGVyJyB9LFxuICAgICAgX3ZhbGlkYXRvclJlc3VsdHM6IHsgdHlwZTogT2JqZWN0IH0sXG4gICAgICBza2VsZXRvbjogeyB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgICBfdG91Y2g6IHsgdHlwZTogQm9vbGVhbiB9LFxuICAgICAgcmVhZG9ubHk6IHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgc2Nyb2xsYWJsZTogeyB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5oaWRlRGVwcmVjYXRlZCA9IGZhbHNlO1xuICAgIHRoaXMuX3ZhbHVlcyA9IHt9O1xuICAgIHRoaXMuc3VibWl0TGFiZWwgPSAnT2snO1xuICAgIHRoaXMuaGFzSGVhZGVyID0gZmFsc2U7XG4gICAgdGhpcy5oYXNGb290ZXIgPSBmYWxzZTtcbiAgICB0aGlzLl90b3VjaCA9IGZhbHNlO1xuICAgIHRoaXMuX3ZhbGlkYXRvciA9IG5ldyBWYWxpZGF0b3IoKTtcbiAgICB0aGlzLl92YWxpZGF0b3JSZXN1bHRzID0ge307XG4gICAgdGhpcy5faWdub3JlUHJvcGVydGllcyA9IFtdO1xuICAgIHRoaXMuX2R5bmFtaWNDb250cm9scyA9IFtdO1xuICAgIHRoaXMuX2R5bmFtaWNBdHRyaWJ1dGVzID0gWydkaXNhYmxlZCcsICdyZXF1aXJlZCcsICdoaWRkZW4nXTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2d2LXNjaGVtYS1mb3JtLWNvbnRyb2w6ZGVmYXVsdC12YWx1ZScsIHRoaXMuX29uRGVmYXVsdFZhbHVlLmJpbmQodGhpcykpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignZ3Ytc2NoZW1hLWZvcm0tY29udHJvbDpjaGFuZ2UnLCB0aGlzLl9vbkNoYW5nZS5iaW5kKHRoaXMpKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2d2LXNjaGVtYS1mb3JtLWNvbnRyb2w6Y29udHJvbC1yZWFkeScsIHRoaXMuX29uQ29udHJvbFJlYWR5LmJpbmQodGhpcykpO1xuICB9XG5cbiAgc2V0IHZhbHVlcyh2YWx1ZXMpIHtcbiAgICBpZiAoIWRlZXBFcXVhbCh0aGlzLl92YWx1ZXMsIHZhbHVlcykpIHtcbiAgICAgIGlmICh2YWx1ZXMpIHtcbiAgICAgICAgdGhpcy5faW5pdGlhbFZhbHVlcyA9IHsgLi4udmFsdWVzIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9pbml0aWFsVmFsdWVzID0ge307XG4gICAgICB9XG4gICAgICB0aGlzLl92YWx1ZXMgPSBkZWVwQ2xvbmUodGhpcy5faW5pdGlhbFZhbHVlcyk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHZhbHVlcygpIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWVzO1xuICB9XG5cbiAgcmVzZXQodmFsdWVzID0gbnVsbCkge1xuICAgIHRoaXMuX3ZhbHVlcyA9IGRlZXBDbG9uZSh2YWx1ZXMgfHwgdGhpcy5faW5pdGlhbFZhbHVlcyk7XG4gICAgdGhpcy5fdG91Y2ggPSBmYWxzZTtcbiAgICB0aGlzLl9zZXREaXJ0eShmYWxzZSk7XG4gICAgdGhpcy5nZXRDb250cm9scygpLmZvckVhY2goKHMpID0+IHtcbiAgICAgIHMucmVxdWVzdFVwZGF0ZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgX29uUmVzZXQoKSB7XG4gICAgdGhpcy5yZXNldCgpO1xuICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgJ3Jlc2V0Jyk7XG4gIH1cblxuICByZXF1ZXN0VmFsaWRhdGlvbigpIHtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5fdmFsaWRhdGVUaW1lb3V0KTtcbiAgICB0aGlzLl92YWxpZGF0ZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMudmFsaWRhdGUoKTtcbiAgICAgIHRoaXMuX3VwZGF0ZUFjdGlvbnMoKTtcbiAgICB9LCAzNTApO1xuICB9XG5cbiAgc3VibWl0KCkge1xuICAgIHRoaXMuX29uU3VibWl0KCk7XG4gIH1cblxuICBfb25TdWJtaXQoKSB7XG4gICAgY29uc3QgdmFsaWRhdG9yUmVzdWx0cyA9IHRoaXMudmFsaWRhdGUoKTtcbiAgICBpZiAodGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgIHRoaXMuX2luaXRpYWxWYWx1ZXMgPSBkZWVwQ2xvbmUodGhpcy5fdmFsdWVzKTtcbiAgICAgIHRoaXMuZGlydHkgPSBmYWxzZTtcbiAgICAgIHRoaXMuX3RvdWNoID0gZmFsc2U7XG4gICAgICBkaXNwYXRjaEN1c3RvbUV2ZW50KHRoaXMsICdzdWJtaXQnLCB7IHZhbHVlczogdGhpcy5fdmFsdWVzLCB2YWxpZGF0b3JSZXN1bHRzIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBkaXNwYXRjaEN1c3RvbUV2ZW50KHRoaXMsICdlcnJvcicsIHsgdmFsdWVzOiB0aGlzLl92YWx1ZXMsIHZhbGlkYXRvclJlc3VsdHMgfSk7XG4gICAgfVxuICB9XG5cbiAgX3NldERpcnR5KGRpcnR5ID0gdHJ1ZSkge1xuICAgIHRoaXMuZGlydHkgPSAhIWRpcnR5O1xuICB9XG5cbiAgX3NldFRvdWNoKHRvdWNoID0gdHJ1ZSkge1xuICAgIHRoaXMuX3RvdWNoID0gISF0b3VjaDtcbiAgfVxuXG4gIGNvbmZpcm0oKSB7XG4gICAgaWYgKHRoaXMuaXNUb3VjaCgpKSB7XG4gICAgICBpZiAodGhpcy5fY29uZmlybSAmJiB0aGlzLl9jb25maXJtLnByb21pc2UpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbmZpcm0ucHJvbWlzZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiAodGhpcy5fY29uZmlybSA9IHsgcmVzb2x2ZSwgcmVqZWN0IH0pKTtcbiAgICAgIHRoaXMuX2NvbmZpcm0ucHJvbWlzZSA9IHByb21pc2U7XG4gICAgICByZXR1cm4gcHJvbWlzZTtcbiAgICB9XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICB9XG5cbiAgX29uQ29uZmlybVJlc2V0KCkge1xuICAgIGNvbnN0IHsgcmVzb2x2ZSB9ID0gdGhpcy5fY29uZmlybTtcbiAgICB0aGlzLl9jb25maXJtID0gbnVsbDtcbiAgICB0aGlzLl9vblJlc2V0KCk7XG4gICAgdGhpcy5yZXF1ZXN0VXBkYXRlKCkudGhlbigoKSA9PiB7XG4gICAgICByZXNvbHZlKHRoaXMpO1xuICAgIH0pO1xuICB9XG5cbiAgX29uQ29uZmlybUVkaXQoKSB7XG4gICAgdGhpcy5fY29uZmlybS5yZWplY3QodGhpcyk7XG4gICAgdGhpcy5fY29uZmlybSA9IG51bGw7XG4gICAgdGhpcy5fdXBkYXRlQ2hpbGRyZW4odGhpcy52YWxpZGF0ZU9uUmVuZGVyKTtcbiAgfVxuXG4gIF9nZXRTdWJtaXRCdG4oKSB7XG4gICAgcmV0dXJuIHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcjc3VibWl0Jyk7XG4gIH1cblxuICBfZ2V0UmVzZXRCdG4oKSB7XG4gICAgcmV0dXJuIHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcjcmVzZXQnKTtcbiAgfVxuXG4gIF9kaXNwYXRjaENoYW5nZSgpIHtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5fY2hhbmdlVGltZW91dCk7XG4gICAgdGhpcy5fY2hhbmdlVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgZGlzcGF0Y2hDdXN0b21FdmVudCh0aGlzLCAnY2hhbmdlJywgeyB0YXJnZXQ6IHRoaXMsIHZhbHVlczogdGhpcy5fdmFsdWVzLCB2YWxpZGF0aW9uOiB0aGlzLl92YWxpZGF0b3JSZXN1bHRzIH0pO1xuICAgIH0sIDUwKTtcbiAgfVxuXG4gIF9vbkRlZmF1bHRWYWx1ZSh7IGRldGFpbDogeyBjdXJyZW50VGFyZ2V0LCB2YWx1ZSwgY29udHJvbCB9IH0pIHtcbiAgICBpZiAoY29udHJvbC50eXBlID09PSAnaW50ZWdlcicgJiYgdmFsdWUgIT0gbnVsbCAmJiAoKHZhbHVlLnRyaW0gJiYgdmFsdWUubGVuZ3RoID4gMCkgfHwgdmFsdWUubGVuZ3RoID4gMCkpIHtcbiAgICAgIHZhbHVlID0gcGFyc2VJbnQodmFsdWUsIDEwKTtcbiAgICB9XG4gICAgc2V0KHRoaXMuX3ZhbHVlcywgY3VycmVudFRhcmdldC5pZCwgdmFsdWUpO1xuICB9XG5cbiAgX29uQ2hhbmdlKHsgZGV0YWlsOiB7IGN1cnJlbnRUYXJnZXQsIHZhbHVlLCBjb250cm9sIH0gfSkge1xuICAgIHRoaXMuX3NldFRvdWNoKHRydWUpO1xuICAgIGlmIChjb250cm9sLnR5cGUgPT09ICdpbnRlZ2VyJykge1xuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUudHJpbSgpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB2YWx1ZSA9IG51bGw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBpbnRWYWx1ZSA9IE51bWJlcih2YWx1ZSkudmFsdWVPZigpO1xuICAgICAgICBpZiAoIWlzTmFOKGludFZhbHVlKSkge1xuICAgICAgICAgIHZhbHVlID0gaW50VmFsdWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdmFsdWUgPSBudWxsO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChjb250cm9sLnR5cGUgPT09ICdhcnJheScgJiYgdmFsdWUubGVuZ3RoID09PSAwKSB7XG4gICAgICB2YWx1ZSA9IG51bGw7XG4gICAgfSBlbHNlIGlmIChjb250cm9sLnR5cGUgPT09ICdzdHJpbmcnICYmIHZhbHVlLnRyaW0oKS5sZW5ndGggPT09IDAgJiYgIWNvbnRyb2wuZW51bSkge1xuICAgICAgdmFsdWUgPSBudWxsO1xuICAgIH0gZWxzZSBpZiAoY29udHJvbC50eXBlID09PSAnb2JqZWN0Jykge1xuICAgICAgaWYgKE9iamVjdC5rZXlzKHZhbHVlKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdmFsdWUgPSBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgZGVsKHRoaXMuX3ZhbHVlcywgY3VycmVudFRhcmdldC5pZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldCh0aGlzLl92YWx1ZXMsIGN1cnJlbnRUYXJnZXQuaWQsIHZhbHVlKTtcbiAgICB9XG5cbiAgICB0aGlzLl91cGRhdGVEeW5hbWljQ29udHJvbHMoKTtcbiAgICB0aGlzLl92YWxpZGF0b3JSZXN1bHRzID0gdGhpcy52YWxpZGF0ZSgpO1xuICAgIHRoaXMuZGlydHkgPSB0cnVlO1xuICAgIHRoaXMuX3VwZGF0ZUFjdGlvbnMoKTtcbiAgICB0aGlzLl9kaXNwYXRjaENoYW5nZSgpO1xuICB9XG5cbiAgX29uQ29udHJvbFJlYWR5KGUpIHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICBjb25zdCBjb250cm9sRWxlbWVudCA9IGUuZGV0YWlsLmNvbnRyb2w7XG4gICAgY29uc3QgY29udHJvbCA9IGNvbnRyb2xFbGVtZW50LmNvbnRyb2w7XG4gICAgaWYgKGNvbnRyb2xbJ3gtc2NoZW1hLWZvcm0nXSkge1xuICAgICAgaWYgKGNvbnRyb2xbJ3gtc2NoZW1hLWZvcm0nXS5ldmVudCkge1xuICAgICAgICBjb25zdCBldmVudCA9IGNvbnRyb2xbJ3gtc2NoZW1hLWZvcm0nXS5ldmVudDtcbiAgICAgICAgZGlzcGF0Y2hDdXN0b21FdmVudCh0aGlzLCBldmVudC5uYW1lLCB7IC4uLmV2ZW50LCAuLi5lLmRldGFpbCB9KTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5faGFzQ29uZGl0aW9uKGNvbnRyb2wpKSB7XG4gICAgICAgIHRoaXMuX2R5bmFtaWNDb250cm9scy5wdXNoKGNvbnRyb2xFbGVtZW50KTtcbiAgICAgICAgdGhpcy5fdXBkYXRlRHluYW1pY0NvbnRyb2woY29udHJvbEVsZW1lbnQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIF91cGRhdGVEeW5hbWljQ29udHJvbHMoKSB7XG4gICAgdGhpcy5faWdub3JlUHJvcGVydGllcyA9IFtdO1xuICAgIHRoaXMuX2R5bmFtaWNDb250cm9scy5mb3JFYWNoKChjb250cm9sRWxlbWVudCkgPT4ge1xuICAgICAgdGhpcy5fdXBkYXRlRHluYW1pY0NvbnRyb2woY29udHJvbEVsZW1lbnQpO1xuICAgIH0pO1xuICB9XG5cbiAgX3VwZGF0ZUR5bmFtaWNDb250cm9sKGNvbnRyb2xFbGVtZW50KSB7XG4gICAgY29uc3QgY29udHJvbCA9IGNvbnRyb2xFbGVtZW50LmNvbnRyb2w7XG4gICAgaWYgKGNvbnRyb2xbJ3gtc2NoZW1hLWZvcm0nXSkge1xuICAgICAgdGhpcy5fZHluYW1pY0F0dHJpYnV0ZXMuZm9yRWFjaCgoYXR0cmlidXRlKSA9PiB7XG4gICAgICAgIGNvbnN0IGlzID0gdGhpcy5fZXZhbHVhdGVDb25kaXRpb24oY29udHJvbCwgYXR0cmlidXRlKTtcbiAgICAgICAgaWYgKGlzKSB7XG4gICAgICAgICAgY29udHJvbEVsZW1lbnQuc2V0QXR0cmlidXRlKGF0dHJpYnV0ZSwgJycpO1xuICAgICAgICAgIGlmIChhdHRyaWJ1dGUgPT09ICdoaWRkZW4nKSB7XG4gICAgICAgICAgICB0aGlzLl9pZ25vcmVQcm9wZXJ0aWVzLnB1c2goY29udHJvbEVsZW1lbnQuaWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb250cm9sRWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoYXR0cmlidXRlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgYXN5bmMgcGVyZm9ybVVwZGF0ZSgpIHtcbiAgICB0aGlzLmdldENvbnRyb2xzKCkuZm9yRWFjaCgocykgPT4ge1xuICAgICAgcy5yZXF1ZXN0VXBkYXRlKCk7XG4gICAgfSk7XG4gICAgc3VwZXIucGVyZm9ybVVwZGF0ZSgpO1xuICB9XG5cbiAgX3JlbmRlckNvbnRyb2woa2V5KSB7XG4gICAgLy8gVGhpcyBpcyByZXF1aXJlIHRvIGNsZWFuIGNhY2hlIG9mIDxndi1zY2hlbWEtZm9ybS1jb250cm9sPlxuICAgIGNvbnN0IGNvbnRyb2wgPSB7IC4uLnRoaXMuc2NoZW1hLnByb3BlcnRpZXNba2V5XSB9O1xuICAgIGNvbnN0IGlzUmVxdWlyZWQgPSAodGhpcy5zY2hlbWEucmVxdWlyZWQgJiYgdGhpcy5zY2hlbWEucmVxdWlyZWQuaW5jbHVkZXMoa2V5KSkgfHwgdGhpcy5fZXZhbHVhdGVDb25kaXRpb24oY29udHJvbCwgJ3JlcXVpcmVkJyk7XG4gICAgY29uc3QgaXNEaXNhYmxlZCA9ICh0aGlzLnNjaGVtYS5kaXNhYmxlZCAmJiB0aGlzLnNjaGVtYS5kaXNhYmxlZC5pbmNsdWRlcyhrZXkpKSB8fCB0aGlzLl9ldmFsdWF0ZUNvbmRpdGlvbihjb250cm9sLCAnZGlzYWJsZWQnKTtcbiAgICBjb25zdCBpc0hpZGRlbiA9IHRoaXMuX2V2YWx1YXRlQ29uZGl0aW9uKGNvbnRyb2wsICdoaWRkZW4nKTtcbiAgICBpZiAoaXNIaWRkZW4pIHtcbiAgICAgIHRoaXMuX2lnbm9yZVByb3BlcnRpZXMucHVzaChrZXkpO1xuICAgIH1cbiAgICBjb25zdCBpc1JlYWRvbmx5ID0gdGhpcy5yZWFkb25seSB8fCBjb250cm9sLnJlYWRPbmx5ID09PSB0cnVlO1xuICAgIGNvbnN0IGlzV3JpdGVPbmx5ID0gY29udHJvbC53cml0ZU9ubHkgPT09IHRydWU7XG4gICAgY29uc3QgdmFsdWUgPSBnZXQodGhpcy5fdmFsdWVzLCBrZXkpO1xuICAgIHJldHVybiBodG1sYDxndi1zY2hlbWEtZm9ybS1jb250cm9sXG4gICAgICAuaWQ9XCIke2tleX1cIlxuICAgICAgLmVycm9ycz1cIiR7dGhpcy5lcnJvcnN9XCJcbiAgICAgIC5jb250cm9sPVwiJHtjb250cm9sfVwiXG4gICAgICAuc2tlbGV0b249XCIke3RoaXMuc2tlbGV0b259XCJcbiAgICAgIC52YWx1ZT1cIiR7dmFsdWV9XCJcbiAgICAgID9yZWFkb25seT1cIiR7aXNSZWFkb25seX1cIlxuICAgICAgP3dyaXRlb25seT1cIiR7aXNXcml0ZU9ubHl9XCJcbiAgICAgID9yZXF1aXJlZD1cIiR7aXNSZXF1aXJlZH1cIlxuICAgICAgP2Rpc2FibGVkPVwiJHtpc0Rpc2FibGVkfVwiXG4gICAgICA/aGlkZGVuPVwiJHtpc0hpZGRlbn1cIlxuICAgID48L2d2LXNjaGVtYS1mb3JtLWNvbnRyb2w+YDtcbiAgfVxuXG4gIF9oYXNDb25kaXRpb24oY29udHJvbCkge1xuICAgIGlmIChjb250cm9sWyd4LXNjaGVtYS1mb3JtJ10pIHtcbiAgICAgIHJldHVybiB0aGlzLl9keW5hbWljQXR0cmlidXRlcy5maW5kKChjb25kaXRpb24pID0+IGNvbnRyb2xbJ3gtc2NoZW1hLWZvcm0nXVtjb25kaXRpb25dICE9IG51bGwpICE9IG51bGw7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIF9ldmFsdWF0ZUNvbmRpdGlvbihjb250cm9sLCBjb25kaXRpb25LZXkpIHtcbiAgICBpZiAoY29udHJvbFsneC1zY2hlbWEtZm9ybSddID09IG51bGwgfHwgY29udHJvbFsneC1zY2hlbWEtZm9ybSddW2NvbmRpdGlvbktleV0gPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCBjb25kaXRpb24gPSBjb250cm9sWyd4LXNjaGVtYS1mb3JtJ11bY29uZGl0aW9uS2V5XTtcbiAgICBpZiAodHlwZW9mIGNvbmRpdGlvbiA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICByZXR1cm4gY29uZGl0aW9uO1xuICAgIH1cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoY29uZGl0aW9uKSkge1xuICAgICAgLy8gY29uZGl0aW9uIGlzbid0IGFuIGFycmF5LCBpZ25vcmUgdGhlIGNvbmRpdGlvblxuICAgICAgY29uc29sZS53YXJuKGAnJHtjb25kaXRpb25LZXl9JyBhdHRyaWJ1dGUgb2YgJ3gtc2NoZW1hLWZvcm0nIHNob3VsZCBiZSBhbiBhcnJheWApO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGxldCByZXN1bHQgPSB0cnVlO1xuICAgIGZvciAoY29uc3Qgb3BlcmF0aW9uIG9mIGNvbmRpdGlvbikge1xuICAgICAgLy8gb3BlcmF0aW9uIG9ubHkgaGF2ZSBvbmUgb3BlcmF0b3Igd2l0aCBhIHNpbmdsZSBvYmplY3QgY29udGFpbmluZyBvcGVyYW5kIHZhbHVlc1xuICAgICAgY29uc3Qgb3BlcmF0b3IgPSBPYmplY3Qua2V5cyhvcGVyYXRpb24pWzBdO1xuXG4gICAgICBzd2l0Y2ggKG9wZXJhdG9yKSB7XG4gICAgICAgIGNhc2UgJyRuZXEnOlxuICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAmJiB0aGlzLl9ldmFsdWF0ZU5vdEVxdWFsc0NvbmRpdGlvbihjb250cm9sLCBvcGVyYXRpb24pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICckZXEnOlxuICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAmJiB0aGlzLl9ldmFsdWF0ZUVxdWFsc0NvbmRpdGlvbihjb250cm9sLCBvcGVyYXRpb24pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICckbm9kZWYnOlxuICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAmJiB0aGlzLl9ldmFsdWF0ZU5vdERlZkNvbmRpdGlvbihjb250cm9sLCBvcGVyYXRpb24pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICckZGVmJzpcbiAgICAgICAgICByZXN1bHQgPSByZXN1bHQgJiYgdGhpcy5fZXZhbHVhdGVEZWZDb25kaXRpb24oY29udHJvbCwgb3BlcmF0aW9uKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBjb25zb2xlLndhcm4oYFVuc3VwcG9ydGVkIG9wZXJhdG9yICcke29wZXJhdG9yfScgb24gZGlzYWJsZSBjb25kaXRpb25gKTtcbiAgICAgICAgICByZXN1bHQgPSBmYWxzZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgX2V2YWx1YXRlTm90RXF1YWxzQ29uZGl0aW9uKGNvbnRyb2wsIGNvbmRpdGlvbikge1xuICAgIHJldHVybiAhdGhpcy5fZXZhbHVhdGVFcXVhbHNDb25kaXRpb24oY29udHJvbCwgY29uZGl0aW9uKTtcbiAgfVxuXG4gIF9ldmFsdWF0ZUVxdWFsc0NvbmRpdGlvbihjb250cm9sLCBjb25kaXRpb24pIHtcbiAgICBjb25zdCBvcGVyYXRvciA9IE9iamVjdC5rZXlzKGNvbmRpdGlvbilbMF07XG4gICAgY29uc3Qgb3BlcmFuZHMgPSBjb25kaXRpb25bb3BlcmF0b3JdO1xuICAgIGNvbnN0IG1vZGVsQXR0cmlidXRlcyA9IE9iamVjdC5rZXlzKG9wZXJhbmRzKTtcbiAgICByZXR1cm4gbW9kZWxBdHRyaWJ1dGVzXG4gICAgICAubWFwKChtb2RlbEF0dHJpYnV0ZSkgPT4ge1xuICAgICAgICBjb25zdCB0ZXN0VmFsdWUgPSBvcGVyYW5kc1ttb2RlbEF0dHJpYnV0ZV07XG4gICAgICAgIGxldCB2YWx1ZSA9IGdldCh0aGlzLl92YWx1ZXMsIG1vZGVsQXR0cmlidXRlKTtcbiAgICAgICAgaWYgKHZhbHVlID09IG51bGwgJiYgY29udHJvbC50eXBlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIHZhbHVlID0gJyc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGVzdFZhbHVlKSkge1xuICAgICAgICAgIHJldHVybiB0ZXN0VmFsdWUuaW5jbHVkZXModmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZSA9PT0gdGVzdFZhbHVlO1xuICAgICAgfSlcbiAgICAgIC5yZWR1Y2UoKGFjYywgY3VycmVudCkgPT4gYWNjIHx8IGN1cnJlbnQpO1xuICB9XG5cbiAgX2V2YWx1YXRlTm90RGVmQ29uZGl0aW9uKGNvbnRyb2wsIGNvbmRpdGlvbikge1xuICAgIGNvbnN0IG9wZXJhdG9yID0gT2JqZWN0LmtleXMoY29uZGl0aW9uKVswXTtcbiAgICBjb25zdCBtb2RlbEF0dHJpYnV0ZSA9IGNvbmRpdGlvbltvcGVyYXRvcl07XG4gICAgcmV0dXJuIGdldCh0aGlzLl92YWx1ZXMsIG1vZGVsQXR0cmlidXRlKSA9PT0gdW5kZWZpbmVkIHx8IGdldCh0aGlzLl92YWx1ZXMsIG1vZGVsQXR0cmlidXRlKSA9PT0gbnVsbDtcbiAgfVxuXG4gIF9ldmFsdWF0ZURlZkNvbmRpdGlvbihjb250cm9sLCBjb25kaXRpb24pIHtcbiAgICByZXR1cm4gIXRoaXMuX2V2YWx1YXRlTm90RGVmQ29uZGl0aW9uKGNvbnRyb2wsIGNvbmRpdGlvbik7XG4gIH1cblxuICBfcmVuZGVyUGFydCgpIHtcbiAgICBpZiAodGhpcy5fY29uZmlybSkge1xuICAgICAgcmV0dXJuIGh0bWxgPGRpdiBjbGFzcz1cImNvbmZpcm0tYm94XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJlcnJvclwiPlRoZSBjb25maWd1cmF0aW9uIGlzIG5vdCB2YWxpZCBhbmQgY2Fubm90IGJlIHNhdmVkLjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29uZmlybS1ib3hfYWN0aW9uc1wiPlxuICAgICAgICAgIDxndi1idXR0b24gQGd2LWJ1dHRvbjpjbGljaz1cIiR7dGhpcy5fb25Db25maXJtUmVzZXR9XCIgb3V0bGluZWQgaWNvbj1cImdlbmVyYWw6dXBkYXRlXCIgZGFuZ2VyPkxvc2UgY2hhbmdlczwvZ3YtYnV0dG9uPlxuICAgICAgICAgIDxndi1idXR0b24gQGd2LWJ1dHRvbjpjbGljaz1cIiR7dGhpcy5fb25Db25maXJtRWRpdH1cIiBpY29uPVwiZGVzaWduOmVkaXRcIj5FZGl0PC9ndi1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+YDtcbiAgICB9XG4gICAgY29uc3Qga2V5cyA9IHRoaXMuc2NoZW1hLnByb3BlcnRpZXMgPyBPYmplY3Qua2V5cyh0aGlzLnNjaGVtYS5wcm9wZXJ0aWVzKSA6IFtdO1xuICAgIHRoaXMuX2lnbm9yZVByb3BlcnRpZXMgPSBbXTtcbiAgICByZXR1cm4gaHRtbGAke2tleXMubWFwKChrZXkpID0+IHRoaXMuX3JlbmRlckNvbnRyb2woa2V5KSl9YDtcbiAgfVxuXG4gIGdldENvbnRyb2xzKCkge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCdndi1zY2hlbWEtZm9ybS1jb250cm9sJykpO1xuICB9XG5cbiAgZ2V0Q29udHJvbChpZCkge1xuICAgIHJldHVybiB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgW2lkPVwiJHtpZH1cIl1gKTtcbiAgfVxuXG4gIF9nZXRFcnJvcnMoKSB7XG4gICAgcmV0dXJuICh0aGlzLl92YWxpZGF0b3JSZXN1bHRzLmVycm9ycyB8fCBbXSkuZmlsdGVyKChlcnJvcikgPT4ge1xuICAgICAgbGV0IGlkID0gYCR7ZXJyb3IucHJvcGVydHkucmVwbGFjZSgnaW5zdGFuY2UuJywgJycpfWA7XG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkoZXJyb3IuYXJndW1lbnQpKSB7XG4gICAgICAgIGlkID0gYCR7aWR9LiR7ZXJyb3IuYXJndW1lbnR9YDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZXJyb3JLZXkgPSBgeC1zY2hlbWEtZm9ybS5lcnJvcnMuJHtpZH0uJHtlcnJvci5uYW1lfWA7XG4gICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBnZXQodGhpcy5zY2hlbWEsIGVycm9yS2V5KTtcbiAgICAgIGlmIChlcnJvck1lc3NhZ2UpIHtcbiAgICAgICAgZXJyb3IubWVzc2FnZSA9IGVycm9yTWVzc2FnZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAhdGhpcy5faWdub3JlUHJvcGVydGllcy5pbmNsdWRlcyhpZCk7XG4gICAgfSk7XG4gIH1cblxuICB2YWxpZGF0ZSgpIHtcbiAgICBpZiAodGhpcy5zY2hlbWEpIHtcbiAgICAgIC8vIEFkZGl0aW9uYWwgcHJvcGVydGllcyBzaG91bGQgbm90IGJsb2NrIHRoZSB2YWxpZGF0aW9uIG9mIHRoZSBmb3JtXG4gICAgICB0aGlzLl92YWxpZGF0b3JSZXN1bHRzID0gdGhpcy5fdmFsaWRhdG9yLnZhbGlkYXRlKHRoaXMuX3ZhbHVlcywgeyAuLi50aGlzLnNjaGVtYSwgYWRkaXRpb25hbFByb3BlcnRpZXM6IHRydWUgfSk7XG4gICAgICB0aGlzLmVycm9ycyA9IHRoaXMuX2dldEVycm9ycygpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fdmFsaWRhdG9yUmVzdWx0cztcbiAgfVxuXG4gIGlzVmFsaWQoKSB7XG4gICAgaWYgKHRoaXMuX3ZhbGlkYXRvclJlc3VsdHMudmFsaWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fZ2V0RXJyb3JzKCkgPT09IDA7XG4gIH1cblxuICBpc1RvdWNoKCkge1xuICAgIHJldHVybiB0aGlzLl90b3VjaCB8fCAodGhpcy5kaXJ0eSAmJiB0aGlzLnZhbGlkYXRlT25SZW5kZXIpO1xuICB9XG5cbiAgY2FuU3VibWl0KCkge1xuICAgIHJldHVybiB0aGlzLmlzVG91Y2goKSAmJiB0aGlzLmlzVmFsaWQoKTtcbiAgfVxuXG4gIF91cGRhdGVBY3Rpb25zKCkge1xuICAgIGNvbnN0IHN1Ym1pdEJ0biA9IHRoaXMuX2dldFN1Ym1pdEJ0bigpO1xuICAgIGlmIChzdWJtaXRCdG4gIT0gbnVsbCkge1xuICAgICAgaWYgKHRoaXMuY2FuU3VibWl0KCkpIHtcbiAgICAgICAgdGhpcy5fZ2V0U3VibWl0QnRuKCkucmVtb3ZlQXR0cmlidXRlKCdkaXNhYmxlZCcpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fZ2V0U3VibWl0QnRuKCkuc2V0QXR0cmlidXRlKCdkaXNhYmxlZCcsIHRydWUpO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCByZXNldEJ0biA9IHRoaXMuX2dldFJlc2V0QnRuKCk7XG4gICAgaWYgKHJlc2V0QnRuICE9IG51bGwpIHtcbiAgICAgIGlmICh0aGlzLmRpcnR5KSB7XG4gICAgICAgIHJlc2V0QnRuLnJlbW92ZUF0dHJpYnV0ZSgnZGlzYWJsZWQnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc2V0QnRuLnNldEF0dHJpYnV0ZSgnZGlzYWJsZWQnLCB0cnVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBfdXBkYXRlQ2hpbGRyZW4od2l0aFZhbGlkYXRpb24pIHtcbiAgICBpZiAod2l0aFZhbGlkYXRpb24pIHtcbiAgICAgIHRoaXMuX3ZhbGlkYXRvclJlc3VsdHMgPSB7fTtcbiAgICAgIHRoaXMuZXJyb3JzID0gbnVsbDtcbiAgICAgIHRoaXMucmVxdWVzdFZhbGlkYXRpb24oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fdXBkYXRlQWN0aW9uc1RpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMuX3VwZGF0ZUFjdGlvbnMoKSwgMCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgdXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcykge1xuICAgIGNsZWFyVGltZW91dCh0aGlzLl91cGRhdGVBY3Rpb25zVGltZW91dCk7XG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnX3ZhbHVlcycpKSB7XG4gICAgICB0aGlzLmdldENvbnRyb2xzKCkuZm9yRWFjaCgoY29udHJvbCkgPT4ge1xuICAgICAgICBjb250cm9sLnZhbHVlID0gZ2V0KHRoaXMuX3ZhbHVlcywgY29udHJvbC5pZCk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5fdXBkYXRlQ2hpbGRyZW4odGhpcy52YWxpZGF0ZU9uUmVuZGVyICYmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ192YWx1ZXMnKSB8fCBjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ3NjaGVtYScpKSk7XG4gIH1cblxuICBhc3luYyBfZ2V0VXBkYXRlQ29tcGxldGUoKSB7XG4gICAgYXdhaXQgc3VwZXIuX2dldFVwZGF0ZUNvbXBsZXRlKCk7XG4gICAgYXdhaXQgUHJvbWlzZS5hbGwodGhpcy5nZXRDb250cm9scygpLm1hcCgoZSkgPT4gZS51cGRhdGVDb21wbGV0ZSkpO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIHJldHVybiBodG1sYDxmb3JtIGNsYXNzPVwiJHtjbGFzc01hcCh7IHNjcm9sbGFibGU6IHRoaXMuc2Nyb2xsYWJsZSB9KX1cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCIke2NsYXNzTWFwKHsgY29udGFpbmVyOiB0cnVlLCBjb25maXJtOiB0aGlzLl9jb25maXJtIH0pfVwiPlxuICAgICAgICAke3RoaXMuaGFzSGVhZGVyID09PSB0cnVlXG4gICAgICAgICAgPyBodG1sYFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIiR7Y2xhc3NNYXAoeyB0aXRsZTogdHJ1ZSwgY2VudGVyOiB0aGlzLmhhc0hlYWRlciAmJiAhdGhpcy5oYXNGb290ZXIgfSl9XCI+XG4gICAgICAgICAgICAgICAgICA8c2xvdCBuYW1lPVwidGl0bGVcIj48L3Nsb3Q+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnRcIj5cbiAgICAgICAgICAgICAgICAgIDxzbG90IG5hbWU9XCJoZWFkZXItbGVmdFwiPjwvc2xvdD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAke3RoaXMucmVhZG9ubHkgPT09IHRydWUgfHwgdGhpcy5oYXNGb290ZXIgPT09IHRydWVcbiAgICAgICAgICAgICAgICAgID8gJydcbiAgICAgICAgICAgICAgICAgIDogaHRtbGA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8Z3YtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cInJlc2V0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG91dGxpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICBzbWFsbFxuICAgICAgICAgICAgICAgICAgICAgICAgQGd2LWJ1dHRvbjpjbGljaz1cIiR7dGhpcy5fb25SZXNldH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj1cImdlbmVyYWw6dXBkYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPVwiUmVzZXRcIlxuICAgICAgICAgICAgICAgICAgICAgID48L2d2LWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8Z3YtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cInN1Ym1pdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzbWFsbFxuICAgICAgICAgICAgICAgICAgICAgICAgQGd2LWJ1dHRvbjpjbGljaz1cIiR7dGhpcy5fb25TdWJtaXR9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb249XCJjb2RlOmNoZWNrXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIC50aXRsZT1cIiR7dGhpcy5zdWJtaXRMYWJlbH1cIlxuICAgICAgICAgICAgICAgICAgICAgID48L2d2LWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+IGB9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgYFxuICAgICAgICAgIDogJyd9XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50XCI+JHt0aGlzLnNjaGVtYSAhPSBudWxsID8gdGhpcy5fcmVuZGVyUGFydCgpIDogaHRtbGBgfTwvZGl2PlxuICAgICAgICAke3RoaXMuaGFzRm9vdGVyID09PSB0cnVlICYmIHRoaXMucmVhZG9ubHkgIT09IHRydWVcbiAgICAgICAgICA/IGh0bWxgXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb290ZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPjwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxuICAgICAgICAgICAgICAgICAgPGd2LWJ1dHRvbiBpZD1cInJlc2V0XCIgb3V0bGluZWQgQGd2LWJ1dHRvbjpjbGljaz1cIiR7dGhpcy5fb25SZXNldH1cIiBpY29uPVwiZ2VuZXJhbDp1cGRhdGVcIiB0aXRsZT1cIlJlc2V0XCI+UmVzZXQ8L2d2LWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDxndi1idXR0b24gaWQ9XCJzdWJtaXRcIiBAZ3YtYnV0dG9uOmNsaWNrPVwiJHt0aGlzLl9vblN1Ym1pdH1cIiBpY29uPVwiY29kZTpjaGVja1wiIC50aXRsZT1cIiR7dGhpcy5zdWJtaXRMYWJlbH1cIlxuICAgICAgICAgICAgICAgICAgICA+JHt0aGlzLnN1Ym1pdExhYmVsfTwvZ3YtYnV0dG9uXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgYFxuICAgICAgICAgIDogJyd9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Zvcm0+YDtcbiAgfVxuXG4gIHN0YXRpYyBnZXQgc3R5bGVzKCkge1xuICAgIHJldHVybiBbXG4gICAgICBlbXB0eSxcbiAgICAgIC8vIGxhbmd1YWdlPUNTU1xuICAgICAgY3NzYFxuICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICBtYXJnaW46IDAuMnJlbTtcbiAgICAgICAgICAtLWJnYzogdmFyKC0tZ3Ytc2NoZW1hLWZvcm0tLWJnYywgI2ZmZmZmZik7XG4gICAgICAgIH1cblxuICAgICAgICBmb3JtIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIH1cblxuICAgICAgICBmb3JtLnNjcm9sbGFibGUge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAuY29udGFpbmVyIHtcbiAgICAgICAgICBmbGV4LWdyb3c6IDE7XG5cbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZ2MpO1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAgIC8qIGZvciBGaXJlZm94ICovXG4gICAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5oZWFkZXIsXG4gICAgICAgIC5mb290ZXIsXG4gICAgICAgIC5jb250ZW50IHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZ2MpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNvbnRlbnQge1xuICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgLyogZm9yIEZpcmVmb3ggKi9cbiAgICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNvbnRlbnQgPiBndi1zY2hlbWEtZm9ybS1jb250cm9sIHtcbiAgICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBmb3JtLnNjcm9sbGFibGUgLmNvbnRlbnQge1xuICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9ybS5zY3JvbGxhYmxlIC5jb250ZW50ID4gZ3Ytc2NoZW1hLWZvcm0tY29udHJvbCB7XG4gICAgICAgICAgbWF4LXdpZHRoOiA3NzVweDtcbiAgICAgICAgICB3aWR0aDogOTUlO1xuICAgICAgICB9XG5cbiAgICAgICAgLmhlYWRlcixcbiAgICAgICAgLmZvb3RlciB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDQ1cHg7XG4gICAgICAgICAgLS1ndi1pY29uLS1zOiAyNnB4O1xuICAgICAgICAgIC0tZ3YtaWNvbi0tYzogI2JmYmZiZjtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIHBhZGRpbmc6IDAgMC41cmVtO1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5oZWFkZXIge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZDlkOWQ5O1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvb3RlciB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2Q5ZDlkOTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvcm0uc2Nyb2xsYWJsZSAuZm9vdGVyIHtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb290ZXIgLmxlZnQsXG4gICAgICAgIC5mb290ZXIgLnJpZ2h0IHtcbiAgICAgICAgICBtYXgtd2lkdGg6IDQwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmhlYWRlciAubGVmdCxcbiAgICAgICAgLmZvb3RlciAubGVmdCxcbiAgICAgICAgLmhlYWRlciAucmlnaHQsXG4gICAgICAgIC5mb290ZXIgLnJpZ2h0IHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgei1pbmRleDogMTA7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5oZWFkZXIgLnJpZ2h0LFxuICAgICAgICAuZm9vdGVyIC5yaWdodCB7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5oZWFkZXIgLnRpdGxlIHtcbiAgICAgICAgICBjb2xvcjogIzI4NDQ0ZjtcbiAgICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLmhlYWRlciAudGl0bGUuY2VudGVyIHtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNvbmZpcm0tYm94IHtcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAuY29uZmlybS1ib3hfYWN0aW9ucyB7XG4gICAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNvbmZpcm0gLmhlYWRlciAubGVmdCxcbiAgICAgICAgLmNvbmZpcm0gLmhlYWRlciAucmlnaHQsXG4gICAgICAgIC5jb25maXJtIC5mb290ZXIgLmxlZnQsXG4gICAgICAgIC5jb25maXJtIC5mb290ZXIgLnJpZ2h0IHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICBgLFxuICAgIF07XG4gIH1cbn1cblxud2luZG93LmN1c3RvbUVsZW1lbnRzLmRlZmluZSgnZ3Ytc2NoZW1hLWZvcm0nLCBHdlNjaGVtYUZvcm0pO1xuIl19
|
|
619
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL29yZ2FuaXNtcy9ndi1zY2hlbWEtZm9ybS5qcyJdLCJuYW1lcyI6WyJMaXRFbGVtZW50IiwiaHRtbCIsImNzcyIsImdldCIsInNldCIsImRlbCIsImRpc3BhdGNoQ3VzdG9tRXZlbnQiLCJkZWVwQ2xvbmUiLCJkZWVwRXF1YWwiLCJjbGFzc01hcCIsInJlcGVhdCIsIlZhbGlkYXRvciIsImVtcHR5IiwiR3ZTY2hlbWFGb3JtIiwicHJvcGVydGllcyIsInNjaGVtYSIsInR5cGUiLCJPYmplY3QiLCJlcnJvcnMiLCJ2YWx1ZXMiLCJzdWJtaXRMYWJlbCIsIlN0cmluZyIsImhhc0Zvb3RlciIsIkJvb2xlYW4iLCJhdHRyaWJ1dGUiLCJoYXNIZWFkZXIiLCJfY29uZmlybSIsIl92YWx1ZXMiLCJkaXJ0eSIsInJlZmxlY3QiLCJoaWRlRGVwcmVjYXRlZCIsInZhbGlkYXRlT25SZW5kZXIiLCJfdmFsaWRhdG9yUmVzdWx0cyIsInNrZWxldG9uIiwiX3RvdWNoIiwicmVhZG9ubHkiLCJzY3JvbGxhYmxlIiwiY29uc3RydWN0b3IiLCJfdmFsaWRhdG9yIiwiX2lnbm9yZVByb3BlcnRpZXMiLCJfZHluYW1pY0NvbnRyb2xzIiwiX2R5bmFtaWNBdHRyaWJ1dGVzIiwiYWRkRXZlbnRMaXN0ZW5lciIsIl9vbkRlZmF1bHRWYWx1ZSIsImJpbmQiLCJfb25DaGFuZ2UiLCJfb25Db250cm9sUmVhZHkiLCJfaW5pdGlhbFZhbHVlcyIsInJlc2V0IiwiX3NldERpcnR5IiwiZ2V0Q29udHJvbHMiLCJmb3JFYWNoIiwicyIsInJlcXVlc3RVcGRhdGUiLCJfb25SZXNldCIsInJlcXVlc3RWYWxpZGF0aW9uIiwiY2xlYXJUaW1lb3V0IiwiX3ZhbGlkYXRlVGltZW91dCIsInNldFRpbWVvdXQiLCJ2YWxpZGF0ZSIsIl91cGRhdGVBY3Rpb25zIiwic3VibWl0IiwiX29uU3VibWl0IiwidmFsaWRhdG9yUmVzdWx0cyIsImlzVmFsaWQiLCJfc2V0VG91Y2giLCJ0b3VjaCIsImNvbmZpcm0iLCJpc1RvdWNoIiwicHJvbWlzZSIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiX29uQ29uZmlybVJlc2V0IiwidGhlbiIsIl9vbkNvbmZpcm1FZGl0IiwiX3VwZGF0ZUNoaWxkcmVuIiwiX2dldFN1Ym1pdEJ0biIsInNoYWRvd1Jvb3QiLCJxdWVyeVNlbGVjdG9yIiwiX2dldFJlc2V0QnRuIiwiX2Rpc3BhdGNoQ2hhbmdlIiwiX2NoYW5nZVRpbWVvdXQiLCJ0YXJnZXQiLCJ2YWxpZGF0aW9uIiwiZGV0YWlsIiwiY3VycmVudFRhcmdldCIsInZhbHVlIiwiY29udHJvbCIsInRyaW0iLCJsZW5ndGgiLCJwYXJzZUludCIsImlkIiwiaW50VmFsdWUiLCJOdW1iZXIiLCJ2YWx1ZU9mIiwiaXNOYU4iLCJlbnVtIiwia2V5cyIsIl91cGRhdGVEeW5hbWljQ29udHJvbHMiLCJlIiwic3RvcFByb3BhZ2F0aW9uIiwicHJldmVudERlZmF1bHQiLCJjb250cm9sRWxlbWVudCIsImV2ZW50IiwibmFtZSIsIl9oYXNDb25kaXRpb24iLCJwdXNoIiwiX3VwZGF0ZUR5bmFtaWNDb250cm9sIiwiaXMiLCJfZXZhbHVhdGVDb25kaXRpb24iLCJzZXRBdHRyaWJ1dGUiLCJyZW1vdmVBdHRyaWJ1dGUiLCJwZXJmb3JtVXBkYXRlIiwiX3JlbmRlckNvbnRyb2wiLCJrZXkiLCJpc1JlcXVpcmVkIiwicmVxdWlyZWQiLCJpbmNsdWRlcyIsImlzRGlzYWJsZWQiLCJkaXNhYmxlZCIsImlzSGlkZGVuIiwiaXNSZWFkb25seSIsInJlYWRPbmx5IiwiaXNXcml0ZU9ubHkiLCJ3cml0ZU9ubHkiLCJmaW5kIiwiY29uZGl0aW9uIiwiY29uZGl0aW9uS2V5IiwiQXJyYXkiLCJpc0FycmF5IiwiY29uc29sZSIsIndhcm4iLCJyZXN1bHQiLCJvcGVyYXRpb24iLCJvcGVyYXRvciIsIl9ldmFsdWF0ZU5vdEVxdWFsc0NvbmRpdGlvbiIsIl9ldmFsdWF0ZUVxdWFsc0NvbmRpdGlvbiIsIl9ldmFsdWF0ZU5vdERlZkNvbmRpdGlvbiIsIl9ldmFsdWF0ZURlZkNvbmRpdGlvbiIsIm9wZXJhbmRzIiwibW9kZWxBdHRyaWJ1dGVzIiwibWFwIiwibW9kZWxBdHRyaWJ1dGUiLCJ0ZXN0VmFsdWUiLCJyZWR1Y2UiLCJhY2MiLCJjdXJyZW50IiwidW5kZWZpbmVkIiwiX3JlbmRlclBhcnQiLCJmcm9tIiwicXVlcnlTZWxlY3RvckFsbCIsImdldENvbnRyb2wiLCJfZ2V0RXJyb3JzIiwiZmlsdGVyIiwiZXJyb3IiLCJwcm9wZXJ0eSIsInJlcGxhY2UiLCJhcmd1bWVudCIsImVycm9yS2V5IiwiZXJyb3JNZXNzYWdlIiwibWVzc2FnZSIsImFkZGl0aW9uYWxQcm9wZXJ0aWVzIiwidmFsaWQiLCJjYW5TdWJtaXQiLCJzdWJtaXRCdG4iLCJyZXNldEJ0biIsIndpdGhWYWxpZGF0aW9uIiwiX3VwZGF0ZUFjdGlvbnNUaW1lb3V0IiwidXBkYXRlZCIsImNoYW5nZWRQcm9wZXJ0aWVzIiwiaGFzIiwiZ2V0VXBkYXRlQ29tcGxldGUiLCJhbGwiLCJ1cGRhdGVDb21wbGV0ZSIsInJlbmRlciIsImNvbnRhaW5lciIsInRpdGxlIiwiY2VudGVyIiwic3R5bGVzIiwid2luZG93IiwiY3VzdG9tRWxlbWVudHMiLCJkZWZpbmUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNBLFVBQVQsRUFBcUJDLElBQXJCLEVBQTJCQyxHQUEzQixRQUFzQyxLQUF0QztBQUNBLFNBQVNDLEdBQVQsRUFBY0MsR0FBZCxFQUFtQkMsR0FBbkIsUUFBOEIsYUFBOUI7QUFDQSxTQUFTQyxtQkFBVCxRQUFvQyxlQUFwQztBQUNBLFNBQVNDLFNBQVQsRUFBb0JDLFNBQXBCLFFBQXFDLGNBQXJDO0FBQ0EsU0FBU0MsUUFBVCxRQUF5QiwwQkFBekI7QUFDQSxTQUFTQyxNQUFULFFBQXVCLHVCQUF2QjtBQUNBLFNBQVNDLFNBQVQsUUFBMEIsWUFBMUI7QUFDQSxTQUFTQyxLQUFULFFBQXNCLGlCQUF0QjtBQUNBLE9BQU8sMEJBQVA7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsT0FBTyxNQUFNQyxZQUFOLFNBQTJCYixVQUEzQixDQUFzQztBQUN0QixhQUFWYyxVQUFVLEdBQUc7QUFDdEIsV0FBTztBQUNMQyxNQUFBQSxNQUFNLEVBQUU7QUFBRUMsUUFBQUEsSUFBSSxFQUFFQztBQUFSLE9BREg7QUFFTEMsTUFBQUEsTUFBTSxFQUFFO0FBQUVGLFFBQUFBLElBQUksRUFBRUM7QUFBUixPQUZIO0FBR0xFLE1BQUFBLE1BQU0sRUFBRTtBQUFFSCxRQUFBQSxJQUFJLEVBQUVDO0FBQVIsT0FISDtBQUlMRyxNQUFBQSxXQUFXLEVBQUU7QUFBRUosUUFBQUEsSUFBSSxFQUFFSztBQUFSLE9BSlI7QUFLTEMsTUFBQUEsU0FBUyxFQUFFO0FBQUVOLFFBQUFBLElBQUksRUFBRU8sT0FBUjtBQUFpQkMsUUFBQUEsU0FBUyxFQUFFO0FBQTVCLE9BTE47QUFNTEMsTUFBQUEsU0FBUyxFQUFFO0FBQUVULFFBQUFBLElBQUksRUFBRU8sT0FBUjtBQUFpQkMsUUFBQUEsU0FBUyxFQUFFO0FBQTVCLE9BTk47QUFPTEUsTUFBQUEsUUFBUSxFQUFFO0FBQUVWLFFBQUFBLElBQUksRUFBRUM7QUFBUixPQVBMO0FBUUxVLE1BQUFBLE9BQU8sRUFBRTtBQUFFWCxRQUFBQSxJQUFJLEVBQUVDLE1BQVI7QUFBZ0JPLFFBQUFBLFNBQVMsRUFBRTtBQUEzQixPQVJKO0FBU0xJLE1BQUFBLEtBQUssRUFBRTtBQUFFWixRQUFBQSxJQUFJLEVBQUVPLE9BQVI7QUFBaUJNLFFBQUFBLE9BQU8sRUFBRTtBQUExQixPQVRGO0FBVUxDLE1BQUFBLGNBQWMsRUFBRTtBQUFFZCxRQUFBQSxJQUFJLEVBQUVPLE9BQVI7QUFBaUJDLFFBQUFBLFNBQVMsRUFBRTtBQUE1QixPQVZYO0FBV0xPLE1BQUFBLGdCQUFnQixFQUFFO0FBQUVmLFFBQUFBLElBQUksRUFBRU8sT0FBUjtBQUFpQkMsUUFBQUEsU0FBUyxFQUFFO0FBQTVCLE9BWGI7QUFZTFEsTUFBQUEsaUJBQWlCLEVBQUU7QUFBRWhCLFFBQUFBLElBQUksRUFBRUM7QUFBUixPQVpkO0FBYUxnQixNQUFBQSxRQUFRLEVBQUU7QUFBRWpCLFFBQUFBLElBQUksRUFBRU8sT0FBUjtBQUFpQk0sUUFBQUEsT0FBTyxFQUFFO0FBQTFCLE9BYkw7QUFjTEssTUFBQUEsTUFBTSxFQUFFO0FBQUVsQixRQUFBQSxJQUFJLEVBQUVPO0FBQVIsT0FkSDtBQWVMWSxNQUFBQSxRQUFRLEVBQUU7QUFBRW5CLFFBQUFBLElBQUksRUFBRU8sT0FBUjtBQUFpQk0sUUFBQUEsT0FBTyxFQUFFO0FBQTFCLE9BZkw7QUFnQkxPLE1BQUFBLFVBQVUsRUFBRTtBQUFFcEIsUUFBQUEsSUFBSSxFQUFFTyxPQUFSO0FBQWlCTSxRQUFBQSxPQUFPLEVBQUU7QUFBMUI7QUFoQlAsS0FBUDtBQWtCRDs7QUFFRFEsRUFBQUEsV0FBVyxHQUFHO0FBQ1o7QUFDQSxTQUFLUCxjQUFMLEdBQXNCLEtBQXRCO0FBQ0EsU0FBS0gsT0FBTCxHQUFlLEVBQWY7QUFDQSxTQUFLUCxXQUFMLEdBQW1CLElBQW5CO0FBQ0EsU0FBS0ssU0FBTCxHQUFpQixLQUFqQjtBQUNBLFNBQUtILFNBQUwsR0FBaUIsS0FBakI7QUFDQSxTQUFLWSxNQUFMLEdBQWMsS0FBZDtBQUNBLFNBQUtJLFVBQUwsR0FBa0IsSUFBSTNCLFNBQUosRUFBbEI7QUFDQSxTQUFLcUIsaUJBQUwsR0FBeUIsRUFBekI7QUFDQSxTQUFLTyxpQkFBTCxHQUF5QixFQUF6QjtBQUNBLFNBQUtDLGdCQUFMLEdBQXdCLEVBQXhCO0FBQ0EsU0FBS0Msa0JBQUwsR0FBMEIsQ0FBQyxVQUFELEVBQWEsVUFBYixFQUF5QixRQUF6QixDQUExQjtBQUNBLFNBQUtDLGdCQUFMLENBQXNCLHNDQUF0QixFQUE4RCxLQUFLQyxlQUFMLENBQXFCQyxJQUFyQixDQUEwQixJQUExQixDQUE5RDtBQUNBLFNBQUtGLGdCQUFMLENBQXNCLCtCQUF0QixFQUF1RCxLQUFLRyxTQUFMLENBQWVELElBQWYsQ0FBb0IsSUFBcEIsQ0FBdkQ7QUFDQSxTQUFLRixnQkFBTCxDQUFzQixzQ0FBdEIsRUFBOEQsS0FBS0ksZUFBTCxDQUFxQkYsSUFBckIsQ0FBMEIsSUFBMUIsQ0FBOUQ7QUFDRDs7QUFFUyxNQUFOekIsTUFBTSxDQUFDQSxNQUFELEVBQVM7QUFDakIsUUFBSSxDQUFDWCxTQUFTLENBQUMsS0FBS21CLE9BQU4sRUFBZVIsTUFBZixDQUFkLEVBQXNDO0FBQ3BDLFVBQUlBLE1BQUosRUFBWTtBQUNWLGFBQUs0QixjQUFMLEdBQXNCLEVBQUUsR0FBRzVCO0FBQUwsU0FBdEI7QUFDRCxPQUZELE1BRU87QUFDTCxhQUFLNEIsY0FBTCxHQUFzQixFQUF0QjtBQUNEOztBQUNELFdBQUtwQixPQUFMLEdBQWVwQixTQUFTLENBQUMsS0FBS3dDLGNBQU4sQ0FBeEI7QUFDRDtBQUNGOztBQUVTLE1BQU41QixNQUFNLEdBQUc7QUFDWCxXQUFPLEtBQUtRLE9BQVo7QUFDRDs7QUFFRHFCLEVBQUFBLEtBQUssQ0FBQzdCLE1BQU0sR0FBRyxJQUFWLEVBQWdCO0FBQ25CLFNBQUtRLE9BQUwsR0FBZXBCLFNBQVMsQ0FBQ1ksTUFBTSxJQUFJLEtBQUs0QixjQUFoQixDQUF4QjtBQUNBLFNBQUtiLE1BQUwsR0FBYyxLQUFkOztBQUNBLFNBQUtlLFNBQUwsQ0FBZSxLQUFmOztBQUNBLFNBQUtDLFdBQUwsR0FBbUJDLE9BQW5CLENBQTRCQyxDQUFELElBQU87QUFDaENBLE1BQUFBLENBQUMsQ0FBQ0MsYUFBRjtBQUNELEtBRkQ7QUFHRDs7QUFFREMsRUFBQUEsUUFBUSxHQUFHO0FBQ1QsU0FBS04sS0FBTDtBQUNBMUMsSUFBQUEsbUJBQW1CLENBQUMsSUFBRCxFQUFPLE9BQVAsQ0FBbkI7QUFDRDs7QUFFRGlELEVBQUFBLGlCQUFpQixHQUFHO0FBQ2xCQyxJQUFBQSxZQUFZLENBQUMsS0FBS0MsZ0JBQU4sQ0FBWjtBQUNBLFNBQUtBLGdCQUFMLEdBQXdCQyxVQUFVLENBQUMsTUFBTTtBQUN2QyxXQUFLQyxRQUFMOztBQUNBLFdBQUtDLGNBQUw7QUFDRCxLQUhpQyxFQUcvQixHQUgrQixDQUFsQztBQUlEOztBQUVEQyxFQUFBQSxNQUFNLEdBQUc7QUFDUCxTQUFLQyxTQUFMO0FBQ0Q7O0FBRURBLEVBQUFBLFNBQVMsR0FBRztBQUNWLFVBQU1DLGdCQUFnQixHQUFHLEtBQUtKLFFBQUwsRUFBekI7O0FBQ0EsUUFBSSxLQUFLSyxPQUFMLEVBQUosRUFBb0I7QUFDbEIsV0FBS2pCLGNBQUwsR0FBc0J4QyxTQUFTLENBQUMsS0FBS29CLE9BQU4sQ0FBL0I7QUFDQSxXQUFLQyxLQUFMLEdBQWEsS0FBYjtBQUNBLFdBQUtNLE1BQUwsR0FBYyxLQUFkO0FBQ0E1QixNQUFBQSxtQkFBbUIsQ0FBQyxJQUFELEVBQU8sUUFBUCxFQUFpQjtBQUFFYSxRQUFBQSxNQUFNLEVBQUUsS0FBS1EsT0FBZjtBQUF3Qm9DLFFBQUFBO0FBQXhCLE9BQWpCLENBQW5CO0FBQ0QsS0FMRCxNQUtPO0FBQ0x6RCxNQUFBQSxtQkFBbUIsQ0FBQyxJQUFELEVBQU8sT0FBUCxFQUFnQjtBQUFFYSxRQUFBQSxNQUFNLEVBQUUsS0FBS1EsT0FBZjtBQUF3Qm9DLFFBQUFBO0FBQXhCLE9BQWhCLENBQW5CO0FBQ0Q7QUFDRjs7QUFFRGQsRUFBQUEsU0FBUyxDQUFDckIsS0FBSyxHQUFHLElBQVQsRUFBZTtBQUN0QixTQUFLQSxLQUFMLEdBQWEsQ0FBQyxDQUFDQSxLQUFmO0FBQ0Q7O0FBRURxQyxFQUFBQSxTQUFTLENBQUNDLEtBQUssR0FBRyxJQUFULEVBQWU7QUFDdEIsU0FBS2hDLE1BQUwsR0FBYyxDQUFDLENBQUNnQyxLQUFoQjtBQUNEOztBQUVEQyxFQUFBQSxPQUFPLEdBQUc7QUFDUixRQUFJLEtBQUtDLE9BQUwsRUFBSixFQUFvQjtBQUNsQixVQUFJLEtBQUsxQyxRQUFMLElBQWlCLEtBQUtBLFFBQUwsQ0FBYzJDLE9BQW5DLEVBQTRDO0FBQzFDLGVBQU8sS0FBSzNDLFFBQUwsQ0FBYzJDLE9BQXJCO0FBQ0Q7O0FBQ0QsWUFBTUEsT0FBTyxHQUFHLElBQUlDLE9BQUosQ0FBWSxDQUFDQyxPQUFELEVBQVVDLE1BQVYsS0FBc0IsS0FBSzlDLFFBQUwsR0FBZ0I7QUFBRTZDLFFBQUFBLE9BQUY7QUFBV0MsUUFBQUE7QUFBWCxPQUFsRCxDQUFoQjtBQUNBLFdBQUs5QyxRQUFMLENBQWMyQyxPQUFkLEdBQXdCQSxPQUF4QjtBQUNBLGFBQU9BLE9BQVA7QUFDRDs7QUFDRCxXQUFPQyxPQUFPLENBQUNDLE9BQVIsRUFBUDtBQUNEOztBQUVERSxFQUFBQSxlQUFlLEdBQUc7QUFDaEIsVUFBTTtBQUFFRixNQUFBQTtBQUFGLFFBQWMsS0FBSzdDLFFBQXpCO0FBQ0EsU0FBS0EsUUFBTCxHQUFnQixJQUFoQjs7QUFDQSxTQUFLNEIsUUFBTDs7QUFDQSxTQUFLRCxhQUFMLEdBQXFCcUIsSUFBckIsQ0FBMEIsTUFBTTtBQUM5QkgsTUFBQUEsT0FBTyxDQUFDLElBQUQsQ0FBUDtBQUNELEtBRkQ7QUFHRDs7QUFFREksRUFBQUEsY0FBYyxHQUFHO0FBQ2YsU0FBS2pELFFBQUwsQ0FBYzhDLE1BQWQsQ0FBcUIsSUFBckI7O0FBQ0EsU0FBSzlDLFFBQUwsR0FBZ0IsSUFBaEI7O0FBQ0EsU0FBS2tELGVBQUwsQ0FBcUIsS0FBSzdDLGdCQUExQjtBQUNEOztBQUVEOEMsRUFBQUEsYUFBYSxHQUFHO0FBQ2QsV0FBTyxLQUFLQyxVQUFMLENBQWdCQyxhQUFoQixDQUE4QixTQUE5QixDQUFQO0FBQ0Q7O0FBRURDLEVBQUFBLFlBQVksR0FBRztBQUNiLFdBQU8sS0FBS0YsVUFBTCxDQUFnQkMsYUFBaEIsQ0FBOEIsUUFBOUIsQ0FBUDtBQUNEOztBQUVERSxFQUFBQSxlQUFlLEdBQUc7QUFDaEJ6QixJQUFBQSxZQUFZLENBQUMsS0FBSzBCLGNBQU4sQ0FBWjtBQUNBLFNBQUtBLGNBQUwsR0FBc0J4QixVQUFVLENBQUMsTUFBTTtBQUNyQ3BELE1BQUFBLG1CQUFtQixDQUFDLElBQUQsRUFBTyxRQUFQLEVBQWlCO0FBQUU2RSxRQUFBQSxNQUFNLEVBQUUsSUFBVjtBQUFnQmhFLFFBQUFBLE1BQU0sRUFBRSxLQUFLUSxPQUE3QjtBQUFzQ3lELFFBQUFBLFVBQVUsRUFBRSxLQUFLcEQ7QUFBdkQsT0FBakIsQ0FBbkI7QUFDRCxLQUYrQixFQUU3QixFQUY2QixDQUFoQztBQUdEOztBQUVEVyxFQUFBQSxlQUFlLENBQUM7QUFBRTBDLElBQUFBLE1BQU0sRUFBRTtBQUFFQyxNQUFBQSxhQUFGO0FBQWlCQyxNQUFBQSxLQUFqQjtBQUF3QkMsTUFBQUE7QUFBeEI7QUFBVixHQUFELEVBQWdEO0FBQzdELFFBQUlBLE9BQU8sQ0FBQ3hFLElBQVIsS0FBaUIsU0FBakIsSUFBOEJ1RSxLQUFLLElBQUksSUFBdkMsS0FBaURBLEtBQUssQ0FBQ0UsSUFBTixJQUFjRixLQUFLLENBQUNHLE1BQU4sR0FBZSxDQUE5QixJQUFvQ0gsS0FBSyxDQUFDRyxNQUFOLEdBQWUsQ0FBbkcsQ0FBSixFQUEyRztBQUN6R0gsTUFBQUEsS0FBSyxHQUFHSSxRQUFRLENBQUNKLEtBQUQsRUFBUSxFQUFSLENBQWhCO0FBQ0Q7O0FBQ0RuRixJQUFBQSxHQUFHLENBQUMsS0FBS3VCLE9BQU4sRUFBZTJELGFBQWEsQ0FBQ00sRUFBN0IsRUFBaUNMLEtBQWpDLENBQUg7QUFDRDs7QUFFRDFDLEVBQUFBLFNBQVMsQ0FBQztBQUFFd0MsSUFBQUEsTUFBTSxFQUFFO0FBQUVDLE1BQUFBLGFBQUY7QUFBaUJDLE1BQUFBLEtBQWpCO0FBQXdCQyxNQUFBQTtBQUF4QjtBQUFWLEdBQUQsRUFBZ0Q7QUFDdkQsU0FBS3ZCLFNBQUwsQ0FBZSxJQUFmOztBQUNBLFFBQUl1QixPQUFPLENBQUN4RSxJQUFSLEtBQWlCLFNBQXJCLEVBQWdDO0FBQzlCLFVBQUksT0FBT3VFLEtBQVAsS0FBaUIsUUFBakIsSUFBNkJBLEtBQUssQ0FBQ0UsSUFBTixHQUFhQyxNQUFiLEtBQXdCLENBQXpELEVBQTREO0FBQzFESCxRQUFBQSxLQUFLLEdBQUcsSUFBUjtBQUNELE9BRkQsTUFFTztBQUNMLGNBQU1NLFFBQVEsR0FBR0MsTUFBTSxDQUFDUCxLQUFELENBQU4sQ0FBY1EsT0FBZCxFQUFqQjs7QUFDQSxZQUFJLENBQUNDLEtBQUssQ0FBQ0gsUUFBRCxDQUFWLEVBQXNCO0FBQ3BCTixVQUFBQSxLQUFLLEdBQUdNLFFBQVI7QUFDRCxTQUZELE1BRU87QUFDTE4sVUFBQUEsS0FBSyxHQUFHLElBQVI7QUFDRDtBQUNGO0FBQ0YsS0FYRCxNQVdPLElBQUlDLE9BQU8sQ0FBQ3hFLElBQVIsS0FBaUIsT0FBakIsSUFBNEJ1RSxLQUFLLENBQUNHLE1BQU4sS0FBaUIsQ0FBakQsRUFBb0Q7QUFDekRILE1BQUFBLEtBQUssR0FBRyxJQUFSO0FBQ0QsS0FGTSxNQUVBLElBQUlDLE9BQU8sQ0FBQ3hFLElBQVIsS0FBaUIsUUFBakIsSUFBNkJ1RSxLQUFLLENBQUNFLElBQU4sR0FBYUMsTUFBYixLQUF3QixDQUFyRCxJQUEwRCxDQUFDRixPQUFPLENBQUNTLElBQXZFLEVBQTZFO0FBQ2xGVixNQUFBQSxLQUFLLEdBQUcsSUFBUjtBQUNELEtBRk0sTUFFQSxJQUFJQyxPQUFPLENBQUN4RSxJQUFSLEtBQWlCLFFBQXJCLEVBQStCO0FBQ3BDLFVBQUlDLE1BQU0sQ0FBQ2lGLElBQVAsQ0FBWVgsS0FBWixFQUFtQkcsTUFBbkIsS0FBOEIsQ0FBbEMsRUFBcUM7QUFDbkNILFFBQUFBLEtBQUssR0FBRyxJQUFSO0FBQ0Q7QUFDRjs7QUFDRCxRQUFJQSxLQUFLLElBQUksSUFBYixFQUFtQjtBQUNqQmxGLE1BQUFBLEdBQUcsQ0FBQyxLQUFLc0IsT0FBTixFQUFlMkQsYUFBYSxDQUFDTSxFQUE3QixDQUFIO0FBQ0QsS0FGRCxNQUVPO0FBQ0x4RixNQUFBQSxHQUFHLENBQUMsS0FBS3VCLE9BQU4sRUFBZTJELGFBQWEsQ0FBQ00sRUFBN0IsRUFBaUNMLEtBQWpDLENBQUg7QUFDRDs7QUFFRCxTQUFLWSxzQkFBTDs7QUFDQSxTQUFLbkUsaUJBQUwsR0FBeUIsS0FBSzJCLFFBQUwsRUFBekI7QUFDQSxTQUFLL0IsS0FBTCxHQUFhLElBQWI7O0FBQ0EsU0FBS2dDLGNBQUw7O0FBQ0EsU0FBS3FCLGVBQUw7QUFDRDs7QUFFRG5DLEVBQUFBLGVBQWUsQ0FBQ3NELENBQUQsRUFBSTtBQUNqQkEsSUFBQUEsQ0FBQyxDQUFDQyxlQUFGO0FBQ0FELElBQUFBLENBQUMsQ0FBQ0UsY0FBRjtBQUNBLFVBQU1DLGNBQWMsR0FBR0gsQ0FBQyxDQUFDZixNQUFGLENBQVNHLE9BQWhDO0FBQ0EsVUFBTUEsT0FBTyxHQUFHZSxjQUFjLENBQUNmLE9BQS9COztBQUNBLFFBQUlBLE9BQU8sQ0FBQyxlQUFELENBQVgsRUFBOEI7QUFDNUIsVUFBSUEsT0FBTyxDQUFDLGVBQUQsQ0FBUCxDQUF5QmdCLEtBQTdCLEVBQW9DO0FBQ2xDLGNBQU1BLEtBQUssR0FBR2hCLE9BQU8sQ0FBQyxlQUFELENBQVAsQ0FBeUJnQixLQUF2QztBQUNBbEcsUUFBQUEsbUJBQW1CLENBQUMsSUFBRCxFQUFPa0csS0FBSyxDQUFDQyxJQUFiLEVBQW1CLEVBQUUsR0FBR0QsS0FBTDtBQUFZLGFBQUdKLENBQUMsQ0FBQ2Y7QUFBakIsU0FBbkIsQ0FBbkI7QUFDRCxPQUhELE1BR08sSUFBSSxLQUFLcUIsYUFBTCxDQUFtQmxCLE9BQW5CLENBQUosRUFBaUM7QUFDdEMsYUFBS2hELGdCQUFMLENBQXNCbUUsSUFBdEIsQ0FBMkJKLGNBQTNCOztBQUNBLGFBQUtLLHFCQUFMLENBQTJCTCxjQUEzQjtBQUNEO0FBQ0Y7QUFDRjs7QUFFREosRUFBQUEsc0JBQXNCLEdBQUc7QUFDdkIsU0FBSzVELGlCQUFMLEdBQXlCLEVBQXpCOztBQUNBLFNBQUtDLGdCQUFMLENBQXNCVyxPQUF0QixDQUErQm9ELGNBQUQsSUFBb0I7QUFDaEQsV0FBS0sscUJBQUwsQ0FBMkJMLGNBQTNCO0FBQ0QsS0FGRDtBQUdEOztBQUVESyxFQUFBQSxxQkFBcUIsQ0FBQ0wsY0FBRCxFQUFpQjtBQUNwQyxVQUFNZixPQUFPLEdBQUdlLGNBQWMsQ0FBQ2YsT0FBL0I7O0FBQ0EsUUFBSUEsT0FBTyxDQUFDLGVBQUQsQ0FBWCxFQUE4QjtBQUM1QixXQUFLL0Msa0JBQUwsQ0FBd0JVLE9BQXhCLENBQWlDM0IsU0FBRCxJQUFlO0FBQzdDLGNBQU1xRixFQUFFLEdBQUcsS0FBS0Msa0JBQUwsQ0FBd0J0QixPQUF4QixFQUFpQ2hFLFNBQWpDLENBQVg7O0FBQ0EsWUFBSXFGLEVBQUosRUFBUTtBQUNOTixVQUFBQSxjQUFjLENBQUNRLFlBQWYsQ0FBNEJ2RixTQUE1QixFQUF1QyxFQUF2Qzs7QUFDQSxjQUFJQSxTQUFTLEtBQUssUUFBbEIsRUFBNEI7QUFDMUIsaUJBQUtlLGlCQUFMLENBQXVCb0UsSUFBdkIsQ0FBNEJKLGNBQWMsQ0FBQ1gsRUFBM0M7QUFDRDtBQUNGLFNBTEQsTUFLTztBQUNMVyxVQUFBQSxjQUFjLENBQUNTLGVBQWYsQ0FBK0J4RixTQUEvQjtBQUNEO0FBQ0YsT0FWRDtBQVdEOztBQUNELFdBQU8sSUFBUDtBQUNEOztBQUVrQixRQUFieUYsYUFBYSxHQUFHO0FBQ3BCLFNBQUsvRCxXQUFMLEdBQW1CQyxPQUFuQixDQUE0QkMsQ0FBRCxJQUFPO0FBQ2hDQSxNQUFBQSxDQUFDLENBQUNDLGFBQUY7QUFDRCxLQUZEO0FBR0EsVUFBTTRELGFBQU47QUFDRDs7QUFFREMsRUFBQUEsY0FBYyxDQUFDQyxHQUFELEVBQU07QUFDbEI7QUFDQSxVQUFNM0IsT0FBTyxHQUFHLEVBQUUsR0FBRyxLQUFLekUsTUFBTCxDQUFZRCxVQUFaLENBQXVCcUcsR0FBdkI7QUFBTCxLQUFoQjs7QUFDQSxVQUFNQyxVQUFVLEdBQUksS0FBS3JHLE1BQUwsQ0FBWXNHLFFBQVosSUFBd0IsS0FBS3RHLE1BQUwsQ0FBWXNHLFFBQVosQ0FBcUJDLFFBQXJCLENBQThCSCxHQUE5QixDQUF6QixJQUFnRSxLQUFLTCxrQkFBTCxDQUF3QnRCLE9BQXhCLEVBQWlDLFVBQWpDLENBQW5GOztBQUNBLFVBQU0rQixVQUFVLEdBQUksS0FBS3hHLE1BQUwsQ0FBWXlHLFFBQVosSUFBd0IsS0FBS3pHLE1BQUwsQ0FBWXlHLFFBQVosQ0FBcUJGLFFBQXJCLENBQThCSCxHQUE5QixDQUF6QixJQUFnRSxLQUFLTCxrQkFBTCxDQUF3QnRCLE9BQXhCLEVBQWlDLFVBQWpDLENBQW5GOztBQUNBLFVBQU1pQyxRQUFRLEdBQUcsS0FBS1gsa0JBQUwsQ0FBd0J0QixPQUF4QixFQUFpQyxRQUFqQyxDQUFqQjs7QUFDQSxRQUFJaUMsUUFBSixFQUFjO0FBQ1osV0FBS2xGLGlCQUFMLENBQXVCb0UsSUFBdkIsQ0FBNEJRLEdBQTVCO0FBQ0Q7O0FBQ0QsVUFBTU8sVUFBVSxHQUFHLEtBQUt2RixRQUFMLElBQWlCcUQsT0FBTyxDQUFDbUMsUUFBUixLQUFxQixJQUF6RDtBQUNBLFVBQU1DLFdBQVcsR0FBR3BDLE9BQU8sQ0FBQ3FDLFNBQVIsS0FBc0IsSUFBMUM7QUFDQSxVQUFNdEMsS0FBSyxHQUFHcEYsR0FBRyxDQUFDLEtBQUt3QixPQUFOLEVBQWV3RixHQUFmLENBQWpCO0FBQ0EsV0FBT2xILElBQUksNENBRUZrSCxHQUZFLGNBR0UsS0FBS2pHLE1BSFAsZUFJR3NFLE9BSkgsZ0JBS0ksS0FBS3ZELFFBTFQsYUFNQ3NELEtBTkQsZ0JBT0ltQyxVQVBKLGlCQVFLRSxXQVJMLGdCQVNJUixVQVRKLGdCQVVJRyxVQVZKLGNBV0VFLFFBWEYsNkJBQVg7QUFhRDs7QUFFRGYsRUFBQUEsYUFBYSxDQUFDbEIsT0FBRCxFQUFVO0FBQ3JCLFFBQUlBLE9BQU8sQ0FBQyxlQUFELENBQVgsRUFBOEI7QUFDNUIsYUFBTyxLQUFLL0Msa0JBQUwsQ0FBd0JxRixJQUF4QixDQUE4QkMsU0FBRCxJQUFldkMsT0FBTyxDQUFDLGVBQUQsQ0FBUCxDQUF5QnVDLFNBQXpCLEtBQXVDLElBQW5GLEtBQTRGLElBQW5HO0FBQ0Q7O0FBQ0QsV0FBTyxLQUFQO0FBQ0Q7O0FBRURqQixFQUFBQSxrQkFBa0IsQ0FBQ3RCLE9BQUQsRUFBVXdDLFlBQVYsRUFBd0I7QUFDeEMsUUFBSXhDLE9BQU8sQ0FBQyxlQUFELENBQVAsSUFBNEIsSUFBNUIsSUFBb0NBLE9BQU8sQ0FBQyxlQUFELENBQVAsQ0FBeUJ3QyxZQUF6QixLQUEwQyxJQUFsRixFQUF3RjtBQUN0RixhQUFPLEtBQVA7QUFDRDs7QUFDRCxVQUFNRCxTQUFTLEdBQUd2QyxPQUFPLENBQUMsZUFBRCxDQUFQLENBQXlCd0MsWUFBekIsQ0FBbEI7O0FBQ0EsUUFBSSxPQUFPRCxTQUFQLEtBQXFCLFNBQXpCLEVBQW9DO0FBQ2xDLGFBQU9BLFNBQVA7QUFDRDs7QUFDRCxRQUFJLENBQUNFLEtBQUssQ0FBQ0MsT0FBTixDQUFjSCxTQUFkLENBQUwsRUFBK0I7QUFDN0I7QUFDQUksTUFBQUEsT0FBTyxDQUFDQyxJQUFSLENBQWMsSUFBR0osWUFBYSxtREFBOUI7QUFDQSxhQUFPLEtBQVA7QUFDRDs7QUFFRCxRQUFJSyxNQUFNLEdBQUcsSUFBYjs7QUFDQSxTQUFLLE1BQU1DLFNBQVgsSUFBd0JQLFNBQXhCLEVBQW1DO0FBQ2pDO0FBQ0EsWUFBTVEsUUFBUSxHQUFHdEgsTUFBTSxDQUFDaUYsSUFBUCxDQUFZb0MsU0FBWixFQUF1QixDQUF2QixDQUFqQjs7QUFFQSxjQUFRQyxRQUFSO0FBQ0UsYUFBSyxNQUFMO0FBQ0VGLFVBQUFBLE1BQU0sR0FBR0EsTUFBTSxJQUFJLEtBQUtHLDJCQUFMLENBQWlDaEQsT0FBakMsRUFBMEM4QyxTQUExQyxDQUFuQjtBQUNBOztBQUNGLGFBQUssS0FBTDtBQUNFRCxVQUFBQSxNQUFNLEdBQUdBLE1BQU0sSUFBSSxLQUFLSSx3QkFBTCxDQUE4QmpELE9BQTlCLEVBQXVDOEMsU0FBdkMsQ0FBbkI7QUFDQTs7QUFDRixhQUFLLFFBQUw7QUFDRUQsVUFBQUEsTUFBTSxHQUFHQSxNQUFNLElBQUksS0FBS0ssd0JBQUwsQ0FBOEJsRCxPQUE5QixFQUF1QzhDLFNBQXZDLENBQW5CO0FBQ0E7O0FBQ0YsYUFBSyxNQUFMO0FBQ0VELFVBQUFBLE1BQU0sR0FBR0EsTUFBTSxJQUFJLEtBQUtNLHFCQUFMLENBQTJCbkQsT0FBM0IsRUFBb0M4QyxTQUFwQyxDQUFuQjtBQUNBOztBQUNGO0FBQ0VILFVBQUFBLE9BQU8sQ0FBQ0MsSUFBUixDQUFjLHlCQUF3QkcsUUFBUyx3QkFBL0M7QUFDQUYsVUFBQUEsTUFBTSxHQUFHLEtBQVQ7QUFDQTtBQWhCSjtBQWtCRDs7QUFFRCxXQUFPQSxNQUFQO0FBQ0Q7O0FBRURHLEVBQUFBLDJCQUEyQixDQUFDaEQsT0FBRCxFQUFVdUMsU0FBVixFQUFxQjtBQUM5QyxXQUFPLENBQUMsS0FBS1Usd0JBQUwsQ0FBOEJqRCxPQUE5QixFQUF1Q3VDLFNBQXZDLENBQVI7QUFDRDs7QUFFRFUsRUFBQUEsd0JBQXdCLENBQUNqRCxPQUFELEVBQVV1QyxTQUFWLEVBQXFCO0FBQzNDLFVBQU1RLFFBQVEsR0FBR3RILE1BQU0sQ0FBQ2lGLElBQVAsQ0FBWTZCLFNBQVosRUFBdUIsQ0FBdkIsQ0FBakI7QUFDQSxVQUFNYSxRQUFRLEdBQUdiLFNBQVMsQ0FBQ1EsUUFBRCxDQUExQjtBQUNBLFVBQU1NLGVBQWUsR0FBRzVILE1BQU0sQ0FBQ2lGLElBQVAsQ0FBWTBDLFFBQVosQ0FBeEI7QUFDQSxXQUFPQyxlQUFlLENBQ25CQyxHQURJLENBQ0NDLGNBQUQsSUFBb0I7QUFDdkIsWUFBTUMsU0FBUyxHQUFHSixRQUFRLENBQUNHLGNBQUQsQ0FBMUI7QUFDQSxVQUFJeEQsS0FBSyxHQUFHcEYsR0FBRyxDQUFDLEtBQUt3QixPQUFOLEVBQWVvSCxjQUFmLENBQWY7O0FBQ0EsVUFBSXhELEtBQUssSUFBSSxJQUFULElBQWlCQyxPQUFPLENBQUN4RSxJQUFSLEtBQWlCLFFBQXRDLEVBQWdEO0FBQzlDdUUsUUFBQUEsS0FBSyxHQUFHLEVBQVI7QUFDRDs7QUFDRCxVQUFJMEMsS0FBSyxDQUFDQyxPQUFOLENBQWNjLFNBQWQsQ0FBSixFQUE4QjtBQUM1QixlQUFPQSxTQUFTLENBQUMxQixRQUFWLENBQW1CL0IsS0FBbkIsQ0FBUDtBQUNEOztBQUNELGFBQU9BLEtBQUssS0FBS3lELFNBQWpCO0FBQ0QsS0FYSSxFQVlKQyxNQVpJLENBWUcsQ0FBQ0MsR0FBRCxFQUFNQyxPQUFOLEtBQWtCRCxHQUFHLElBQUlDLE9BWjVCLENBQVA7QUFhRDs7QUFFRFQsRUFBQUEsd0JBQXdCLENBQUNsRCxPQUFELEVBQVV1QyxTQUFWLEVBQXFCO0FBQzNDLFVBQU1RLFFBQVEsR0FBR3RILE1BQU0sQ0FBQ2lGLElBQVAsQ0FBWTZCLFNBQVosRUFBdUIsQ0FBdkIsQ0FBakI7QUFDQSxVQUFNZ0IsY0FBYyxHQUFHaEIsU0FBUyxDQUFDUSxRQUFELENBQWhDO0FBQ0EsV0FBT3BJLEdBQUcsQ0FBQyxLQUFLd0IsT0FBTixFQUFlb0gsY0FBZixDQUFILEtBQXNDSyxTQUF0QyxJQUFtRGpKLEdBQUcsQ0FBQyxLQUFLd0IsT0FBTixFQUFlb0gsY0FBZixDQUFILEtBQXNDLElBQWhHO0FBQ0Q7O0FBRURKLEVBQUFBLHFCQUFxQixDQUFDbkQsT0FBRCxFQUFVdUMsU0FBVixFQUFxQjtBQUN4QyxXQUFPLENBQUMsS0FBS1csd0JBQUwsQ0FBOEJsRCxPQUE5QixFQUF1Q3VDLFNBQXZDLENBQVI7QUFDRDs7QUFFRHNCLEVBQUFBLFdBQVcsR0FBRztBQUNaLFFBQUksS0FBSzNILFFBQVQsRUFBbUI7QUFDakIsYUFBT3pCLElBQUkseUtBR3dCLEtBQUt3RSxlQUg3QixpR0FJd0IsS0FBS0UsY0FKN0IscURBQVg7QUFPRDs7QUFDRCxVQUFNdUIsSUFBSSxHQUFHLEtBQUtuRixNQUFMLENBQVlELFVBQVosR0FBeUJHLE1BQU0sQ0FBQ2lGLElBQVAsQ0FBWSxLQUFLbkYsTUFBTCxDQUFZRCxVQUF4QixDQUF6QixHQUErRCxFQUE1RTtBQUNBLFNBQUt5QixpQkFBTCxHQUF5QixFQUF6QjtBQUNBLFdBQU83QixNQUFNLENBQUN3RixJQUFELEVBQVFpQixHQUFELElBQVMsS0FBS0QsY0FBTCxDQUFvQkMsR0FBcEIsQ0FBaEIsQ0FBYjtBQUNEOztBQUVEakUsRUFBQUEsV0FBVyxHQUFHO0FBQ1osV0FBTytFLEtBQUssQ0FBQ3FCLElBQU4sQ0FBVyxLQUFLeEUsVUFBTCxDQUFnQnlFLGdCQUFoQixDQUFpQyx3QkFBakMsQ0FBWCxDQUFQO0FBQ0Q7O0FBRURDLEVBQUFBLFVBQVUsQ0FBQzVELEVBQUQsRUFBSztBQUNiLFdBQU8sS0FBS2QsVUFBTCxDQUFnQkMsYUFBaEIsQ0FBK0IsUUFBT2EsRUFBRyxJQUF6QyxDQUFQO0FBQ0Q7O0FBRUQ2RCxFQUFBQSxVQUFVLEdBQUc7QUFDWCxXQUFPLENBQUMsS0FBS3pILGlCQUFMLENBQXVCZCxNQUF2QixJQUFpQyxFQUFsQyxFQUFzQ3dJLE1BQXRDLENBQThDQyxLQUFELElBQVc7QUFDN0QsVUFBSS9ELEVBQUUsR0FBSSxHQUFFK0QsS0FBSyxDQUFDQyxRQUFOLENBQWVDLE9BQWYsQ0FBdUIsV0FBdkIsRUFBb0MsRUFBcEMsQ0FBd0MsRUFBcEQ7O0FBQ0EsVUFBSSxDQUFDNUIsS0FBSyxDQUFDQyxPQUFOLENBQWN5QixLQUFLLENBQUNHLFFBQXBCLENBQUwsRUFBb0M7QUFDbENsRSxRQUFBQSxFQUFFLEdBQUksR0FBRUEsRUFBRyxJQUFHK0QsS0FBSyxDQUFDRyxRQUFTLEVBQTdCO0FBQ0Q7O0FBRUQsWUFBTUMsUUFBUSxHQUFJLHdCQUF1Qm5FLEVBQUcsSUFBRytELEtBQUssQ0FBQ2xELElBQUssRUFBMUQ7QUFDQSxZQUFNdUQsWUFBWSxHQUFHN0osR0FBRyxDQUFDLEtBQUtZLE1BQU4sRUFBY2dKLFFBQWQsQ0FBeEI7O0FBQ0EsVUFBSUMsWUFBSixFQUFrQjtBQUNoQkwsUUFBQUEsS0FBSyxDQUFDTSxPQUFOLEdBQWdCRCxZQUFoQjtBQUNEOztBQUNELGFBQU8sQ0FBQyxLQUFLekgsaUJBQUwsQ0FBdUIrRSxRQUF2QixDQUFnQzFCLEVBQWhDLENBQVI7QUFDRCxLQVpNLENBQVA7QUFhRDs7QUFFRGpDLEVBQUFBLFFBQVEsR0FBRztBQUNULFFBQUksS0FBSzVDLE1BQVQsRUFBaUI7QUFDZjtBQUNBLFdBQUtpQixpQkFBTCxHQUF5QixLQUFLTSxVQUFMLENBQWdCcUIsUUFBaEIsQ0FBeUIsS0FBS2hDLE9BQTlCLEVBQXVDLEVBQUUsR0FBRyxLQUFLWixNQUFWO0FBQWtCbUosUUFBQUEsb0JBQW9CLEVBQUU7QUFBeEMsT0FBdkMsQ0FBekI7QUFDQSxXQUFLaEosTUFBTCxHQUFjLEtBQUt1SSxVQUFMLEVBQWQ7QUFDRDs7QUFDRCxXQUFPLEtBQUt6SCxpQkFBWjtBQUNEOztBQUVEZ0MsRUFBQUEsT0FBTyxHQUFHO0FBQ1IsUUFBSSxLQUFLaEMsaUJBQUwsQ0FBdUJtSSxLQUEzQixFQUFrQztBQUNoQyxhQUFPLElBQVA7QUFDRDs7QUFDRCxXQUFPLEtBQUtWLFVBQUwsT0FBc0IsQ0FBN0I7QUFDRDs7QUFFRHJGLEVBQUFBLE9BQU8sR0FBRztBQUNSLFdBQU8sS0FBS2xDLE1BQUwsSUFBZ0IsS0FBS04sS0FBTCxJQUFjLEtBQUtHLGdCQUExQztBQUNEOztBQUVEcUksRUFBQUEsU0FBUyxHQUFHO0FBQ1YsV0FBTyxLQUFLaEcsT0FBTCxNQUFrQixLQUFLSixPQUFMLEVBQXpCO0FBQ0Q7O0FBRURKLEVBQUFBLGNBQWMsR0FBRztBQUNmLFVBQU15RyxTQUFTLEdBQUcsS0FBS3hGLGFBQUwsRUFBbEI7O0FBQ0EsUUFBSXdGLFNBQVMsSUFBSSxJQUFqQixFQUF1QjtBQUNyQixVQUFJLEtBQUtELFNBQUwsRUFBSixFQUFzQjtBQUNwQixhQUFLdkYsYUFBTCxHQUFxQm1DLGVBQXJCLENBQXFDLFVBQXJDO0FBQ0QsT0FGRCxNQUVPO0FBQ0wsYUFBS25DLGFBQUwsR0FBcUJrQyxZQUFyQixDQUFrQyxVQUFsQyxFQUE4QyxJQUE5QztBQUNEO0FBQ0Y7O0FBQ0QsVUFBTXVELFFBQVEsR0FBRyxLQUFLdEYsWUFBTCxFQUFqQjs7QUFDQSxRQUFJc0YsUUFBUSxJQUFJLElBQWhCLEVBQXNCO0FBQ3BCLFVBQUksS0FBSzFJLEtBQVQsRUFBZ0I7QUFDZDBJLFFBQUFBLFFBQVEsQ0FBQ3RELGVBQVQsQ0FBeUIsVUFBekI7QUFDRCxPQUZELE1BRU87QUFDTHNELFFBQUFBLFFBQVEsQ0FBQ3ZELFlBQVQsQ0FBc0IsVUFBdEIsRUFBa0MsSUFBbEM7QUFDRDtBQUNGO0FBQ0Y7O0FBRURuQyxFQUFBQSxlQUFlLENBQUMyRixjQUFELEVBQWlCO0FBQzlCLFFBQUlBLGNBQUosRUFBb0I7QUFDbEIsV0FBS3ZJLGlCQUFMLEdBQXlCLEVBQXpCO0FBQ0EsV0FBS2QsTUFBTCxHQUFjLElBQWQ7QUFDQSxXQUFLcUMsaUJBQUw7QUFDRCxLQUpELE1BSU87QUFDTCxXQUFLaUgscUJBQUwsR0FBNkI5RyxVQUFVLENBQUMsTUFBTSxLQUFLRSxjQUFMLEVBQVAsRUFBOEIsQ0FBOUIsQ0FBdkM7QUFDRDtBQUNGOztBQUVZLFFBQVA2RyxPQUFPLENBQUNDLGlCQUFELEVBQW9CO0FBQy9CbEgsSUFBQUEsWUFBWSxDQUFDLEtBQUtnSCxxQkFBTixDQUFaOztBQUNBLFFBQUlFLGlCQUFpQixDQUFDQyxHQUFsQixDQUFzQixTQUF0QixDQUFKLEVBQXNDO0FBQ3BDLFdBQUt6SCxXQUFMLEdBQW1CQyxPQUFuQixDQUE0QnFDLE9BQUQsSUFBYTtBQUN0Q0EsUUFBQUEsT0FBTyxDQUFDRCxLQUFSLEdBQWdCcEYsR0FBRyxDQUFDLEtBQUt3QixPQUFOLEVBQWU2RCxPQUFPLENBQUNJLEVBQXZCLENBQW5CO0FBQ0QsT0FGRDtBQUdEOztBQUNELFNBQUtoQixlQUFMLENBQXFCLEtBQUs3QyxnQkFBTCxLQUEwQjJJLGlCQUFpQixDQUFDQyxHQUFsQixDQUFzQixTQUF0QixLQUFvQ0QsaUJBQWlCLENBQUNDLEdBQWxCLENBQXNCLFFBQXRCLENBQTlELENBQXJCO0FBQ0Q7O0FBRXNCLFFBQWpCQyxpQkFBaUIsR0FBRztBQUN4QixVQUFNLE1BQU1BLGlCQUFOLEVBQU47QUFDQSxVQUFNdEcsT0FBTyxDQUFDdUcsR0FBUixDQUFZLEtBQUszSCxXQUFMLEdBQW1CNEYsR0FBbkIsQ0FBd0IxQyxDQUFELElBQU9BLENBQUMsQ0FBQzBFLGNBQWhDLENBQVosQ0FBTjtBQUNEOztBQUVEQyxFQUFBQSxNQUFNLEdBQUc7QUFDUCxXQUFPOUssSUFBSSxnQkFBZ0JRLFFBQVEsQ0FBQztBQUFFMkIsTUFBQUEsVUFBVSxFQUFFLEtBQUtBO0FBQW5CLEtBQUQsQ0FBeEIsa0JBQ0szQixRQUFRLENBQUM7QUFBRXVLLE1BQUFBLFNBQVMsRUFBRSxJQUFiO0FBQW1CN0csTUFBQUEsT0FBTyxFQUFFLEtBQUt6QztBQUFqQyxLQUFELENBRGIsTUFFTCxLQUFLRCxTQUFMLEtBQW1CLElBQW5CLEdBQ0V4QixJQUFJLHFDQUVjUSxRQUFRLENBQUM7QUFBRXdLLE1BQUFBLEtBQUssRUFBRSxJQUFUO0FBQWVDLE1BQUFBLE1BQU0sRUFBRSxLQUFLekosU0FBTCxJQUFrQixDQUFDLEtBQUtIO0FBQS9DLEtBQUQsQ0FGdEIsbUdBUUUsS0FBS2EsUUFBTCxLQUFrQixJQUFsQixJQUEwQixLQUFLYixTQUFMLEtBQW1CLElBQTdDLEdBQ0UsRUFERixHQUVFckIsSUFBSSw4RUFLb0IsS0FBS3FELFFBTHpCLHFHQVlvQixLQUFLUSxTQVp6QiwrQkFjVSxLQUFLMUMsV0FkZix3QkFWUixVQUROLEdBOEJFLEVBaENHLHlCQWlDZ0IsS0FBS0wsTUFBTCxJQUFlLElBQWYsR0FBc0IsS0FBS3NJLFdBQUwsRUFBdEIsR0FBMkNwSixJQUFJLEVBakMvRCxVQWtDTCxLQUFLcUIsU0FBTCxLQUFtQixJQUFuQixJQUEyQixLQUFLYSxRQUFMLEtBQWtCLElBQTdDLEdBQ0VsQyxJQUFJLHVIQUlxRCxLQUFLcUQsUUFKMUQsb0dBSzZDLEtBQUtRLFNBTGxELCtCQUswRixLQUFLMUMsV0FML0YsS0FNTyxLQUFLQSxXQU5aLDZCQUROLEdBWUUsRUE5Q0csaUJBQVg7QUFpREQ7O0FBRWdCLGFBQU4rSixNQUFNLEdBQUc7QUFDbEIsV0FBTyxDQUNMdkssS0FESyxFQUVMO0FBQ0FWLElBQUFBLEdBQUcsNmxEQUhFLENBQVA7QUF3SkQ7O0FBOW9CMEM7QUFpcEI3Q2tMLE1BQU0sQ0FBQ0MsY0FBUCxDQUFzQkMsTUFBdEIsQ0FBNkIsZ0JBQTdCLEVBQStDekssWUFBL0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgTGl0RWxlbWVudCwgaHRtbCwgY3NzIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGdldCwgc2V0LCBkZWwgfSBmcm9tICdvYmplY3QtcGF0aCc7XG5pbXBvcnQgeyBkaXNwYXRjaEN1c3RvbUV2ZW50IH0gZnJvbSAnLi4vbGliL2V2ZW50cyc7XG5pbXBvcnQgeyBkZWVwQ2xvbmUsIGRlZXBFcXVhbCB9IGZyb20gJy4uL2xpYi91dGlscyc7XG5pbXBvcnQgeyBjbGFzc01hcCB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL2NsYXNzLW1hcCc7XG5pbXBvcnQgeyByZXBlYXQgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9yZXBlYXQnO1xuaW1wb3J0IHsgVmFsaWRhdG9yIH0gZnJvbSAnanNvbnNjaGVtYSc7XG5pbXBvcnQgeyBlbXB0eSB9IGZyb20gJy4uL3N0eWxlcy9lbXB0eSc7XG5pbXBvcnQgJy4vZ3Ytc2NoZW1hLWZvcm0tY29udHJvbCc7XG5cbi8qKlxuICogU2NoZW1hIGZvcm0gY29tcG9uZW50XG4gKlxuICogQGZpcmVzIGd2LXNjaGVtYS1mb3JtOnN1Ym1pdCAtIGV2ZW50IHdoZW4gdXNlciBzdWJtaXQgdmFsaWQgZm9ybVxuICogQGZpcmVzIGd2LXNjaGVtYS1mb3JtOmVycm9yIC0gZXZlbnQgd2hlbiB1c2VyIHN1Ym1pdCBpbnZhbGlkIGZvcm1cbiAqIEBmaXJlcyBndi1zY2hlbWEtZm9ybTpjaGFuZ2UgLSBldmVudCB3aGVuIHdoZW4gZm9ybSBjaGFuZ2VcbiAqIEBmaXJlcyBndi1zY2hlbWEtZm9ybTpjYW5jZWwgLSBldmVudCB3aGVuIHVzZXIgY2FuY2VsIGZvcm1cbiAqXG4gKiBAYXR0ciB7T2JqZWN0fSBzY2hlbWEgLSB0aGUgc2NoZW1hIGZvcm0gY29uZmlndXJhdGlvblxuICogQGF0dHIge09iamVjdH0gdmFsdWVzIC0gdGhlIHZhbHVlcyBvZiBmaWVsZHNcbiAqIEBhdHRyIHtPYmplY3R9IGVycm9ycyAtIHRoZSBtYXAgb2YgZXJyb3JzIGJ5IGlucHV0IGtleVxuICogQGF0dHIge0Jvb2xlYW59IHZhbGlkYXRlIC0gdG8gZm9yY2UgdmFsaWRhdGlvbiBvbiBmaXJzdCByZW5kZXJcbiAqIEBhdHRyIHtCb29sZWFufSByZWFkb25seSAtIHRydWUgaWYgcmVhZG9ubHlcbiAqIEBhdHRyIHtCb29sZWFufSBzY3JvbGxhYmxlIC0gdXNlZnVsIGZvciBtYWtpbmcgY29udGVudCBzY3JvbGxhYmxlIHdpdGggZml4ZWQgaGVhZGVycyAvIGZvb3RlcnNcbiAqXG4gKiBAY3NzcHJvcCB7Q29sb3J9IFstLWd2LXNjaGVtYS1mb3JtLS1iZ2M9I2ZmZmZmZl0gLSBCYWNrZ3JvdW5kIGNvbG9yXG4gKiBAY3NzcHJvcCB7TGVuZ3RofSBbLS1ndi1zY2hlbWEtZm9ybS1jb250cm9sLS1tPTAuNHJlbV0gLSBDb250cm9sIG1hcmdpblxuICovXG5leHBvcnQgY2xhc3MgR3ZTY2hlbWFGb3JtIGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHN0YXRpYyBnZXQgcHJvcGVydGllcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgc2NoZW1hOiB7IHR5cGU6IE9iamVjdCB9LFxuICAgICAgZXJyb3JzOiB7IHR5cGU6IE9iamVjdCB9LFxuICAgICAgdmFsdWVzOiB7IHR5cGU6IE9iamVjdCB9LFxuICAgICAgc3VibWl0TGFiZWw6IHsgdHlwZTogU3RyaW5nIH0sXG4gICAgICBoYXNGb290ZXI6IHsgdHlwZTogQm9vbGVhbiwgYXR0cmlidXRlOiAnaGFzLWZvb3RlcicgfSxcbiAgICAgIGhhc0hlYWRlcjogeyB0eXBlOiBCb29sZWFuLCBhdHRyaWJ1dGU6ICdoYXMtaGVhZGVyJyB9LFxuICAgICAgX2NvbmZpcm06IHsgdHlwZTogT2JqZWN0IH0sXG4gICAgICBfdmFsdWVzOiB7IHR5cGU6IE9iamVjdCwgYXR0cmlidXRlOiBmYWxzZSB9LFxuICAgICAgZGlydHk6IHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgaGlkZURlcHJlY2F0ZWQ6IHsgdHlwZTogQm9vbGVhbiwgYXR0cmlidXRlOiAnaGlkZS1kZXByZWNhdGVkJyB9LFxuICAgICAgdmFsaWRhdGVPblJlbmRlcjogeyB0eXBlOiBCb29sZWFuLCBhdHRyaWJ1dGU6ICd2YWxpZGF0ZS1vbi1yZW5kZXInIH0sXG4gICAgICBfdmFsaWRhdG9yUmVzdWx0czogeyB0eXBlOiBPYmplY3QgfSxcbiAgICAgIHNrZWxldG9uOiB7IHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUgfSxcbiAgICAgIF90b3VjaDogeyB0eXBlOiBCb29sZWFuIH0sXG4gICAgICByZWFkb25seTogeyB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgICBzY3JvbGxhYmxlOiB7IHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUgfSxcbiAgICB9O1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmhpZGVEZXByZWNhdGVkID0gZmFsc2U7XG4gICAgdGhpcy5fdmFsdWVzID0ge307XG4gICAgdGhpcy5zdWJtaXRMYWJlbCA9ICdPayc7XG4gICAgdGhpcy5oYXNIZWFkZXIgPSBmYWxzZTtcbiAgICB0aGlzLmhhc0Zvb3RlciA9IGZhbHNlO1xuICAgIHRoaXMuX3RvdWNoID0gZmFsc2U7XG4gICAgdGhpcy5fdmFsaWRhdG9yID0gbmV3IFZhbGlkYXRvcigpO1xuICAgIHRoaXMuX3ZhbGlkYXRvclJlc3VsdHMgPSB7fTtcbiAgICB0aGlzLl9pZ25vcmVQcm9wZXJ0aWVzID0gW107XG4gICAgdGhpcy5fZHluYW1pY0NvbnRyb2xzID0gW107XG4gICAgdGhpcy5fZHluYW1pY0F0dHJpYnV0ZXMgPSBbJ2Rpc2FibGVkJywgJ3JlcXVpcmVkJywgJ2hpZGRlbiddO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignZ3Ytc2NoZW1hLWZvcm0tY29udHJvbDpkZWZhdWx0LXZhbHVlJywgdGhpcy5fb25EZWZhdWx0VmFsdWUuYmluZCh0aGlzKSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdndi1zY2hlbWEtZm9ybS1jb250cm9sOmNoYW5nZScsIHRoaXMuX29uQ2hhbmdlLmJpbmQodGhpcykpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignZ3Ytc2NoZW1hLWZvcm0tY29udHJvbDpjb250cm9sLXJlYWR5JywgdGhpcy5fb25Db250cm9sUmVhZHkuYmluZCh0aGlzKSk7XG4gIH1cblxuICBzZXQgdmFsdWVzKHZhbHVlcykge1xuICAgIGlmICghZGVlcEVxdWFsKHRoaXMuX3ZhbHVlcywgdmFsdWVzKSkge1xuICAgICAgaWYgKHZhbHVlcykge1xuICAgICAgICB0aGlzLl9pbml0aWFsVmFsdWVzID0geyAuLi52YWx1ZXMgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX2luaXRpYWxWYWx1ZXMgPSB7fTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX3ZhbHVlcyA9IGRlZXBDbG9uZSh0aGlzLl9pbml0aWFsVmFsdWVzKTtcbiAgICB9XG4gIH1cblxuICBnZXQgdmFsdWVzKCkge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZXM7XG4gIH1cblxuICByZXNldCh2YWx1ZXMgPSBudWxsKSB7XG4gICAgdGhpcy5fdmFsdWVzID0gZGVlcENsb25lKHZhbHVlcyB8fCB0aGlzLl9pbml0aWFsVmFsdWVzKTtcbiAgICB0aGlzLl90b3VjaCA9IGZhbHNlO1xuICAgIHRoaXMuX3NldERpcnR5KGZhbHNlKTtcbiAgICB0aGlzLmdldENvbnRyb2xzKCkuZm9yRWFjaCgocykgPT4ge1xuICAgICAgcy5yZXF1ZXN0VXBkYXRlKCk7XG4gICAgfSk7XG4gIH1cblxuICBfb25SZXNldCgpIHtcbiAgICB0aGlzLnJlc2V0KCk7XG4gICAgZGlzcGF0Y2hDdXN0b21FdmVudCh0aGlzLCAncmVzZXQnKTtcbiAgfVxuXG4gIHJlcXVlc3RWYWxpZGF0aW9uKCkge1xuICAgIGNsZWFyVGltZW91dCh0aGlzLl92YWxpZGF0ZVRpbWVvdXQpO1xuICAgIHRoaXMuX3ZhbGlkYXRlVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy52YWxpZGF0ZSgpO1xuICAgICAgdGhpcy5fdXBkYXRlQWN0aW9ucygpO1xuICAgIH0sIDM1MCk7XG4gIH1cblxuICBzdWJtaXQoKSB7XG4gICAgdGhpcy5fb25TdWJtaXQoKTtcbiAgfVxuXG4gIF9vblN1Ym1pdCgpIHtcbiAgICBjb25zdCB2YWxpZGF0b3JSZXN1bHRzID0gdGhpcy52YWxpZGF0ZSgpO1xuICAgIGlmICh0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgdGhpcy5faW5pdGlhbFZhbHVlcyA9IGRlZXBDbG9uZSh0aGlzLl92YWx1ZXMpO1xuICAgICAgdGhpcy5kaXJ0eSA9IGZhbHNlO1xuICAgICAgdGhpcy5fdG91Y2ggPSBmYWxzZTtcbiAgICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgJ3N1Ym1pdCcsIHsgdmFsdWVzOiB0aGlzLl92YWx1ZXMsIHZhbGlkYXRvclJlc3VsdHMgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgJ2Vycm9yJywgeyB2YWx1ZXM6IHRoaXMuX3ZhbHVlcywgdmFsaWRhdG9yUmVzdWx0cyB9KTtcbiAgICB9XG4gIH1cblxuICBfc2V0RGlydHkoZGlydHkgPSB0cnVlKSB7XG4gICAgdGhpcy5kaXJ0eSA9ICEhZGlydHk7XG4gIH1cblxuICBfc2V0VG91Y2godG91Y2ggPSB0cnVlKSB7XG4gICAgdGhpcy5fdG91Y2ggPSAhIXRvdWNoO1xuICB9XG5cbiAgY29uZmlybSgpIHtcbiAgICBpZiAodGhpcy5pc1RvdWNoKCkpIHtcbiAgICAgIGlmICh0aGlzLl9jb25maXJtICYmIHRoaXMuX2NvbmZpcm0ucHJvbWlzZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29uZmlybS5wcm9taXNlO1xuICAgICAgfVxuICAgICAgY29uc3QgcHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+ICh0aGlzLl9jb25maXJtID0geyByZXNvbHZlLCByZWplY3QgfSkpO1xuICAgICAgdGhpcy5fY29uZmlybS5wcm9taXNlID0gcHJvbWlzZTtcbiAgICAgIHJldHVybiBwcm9taXNlO1xuICAgIH1cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gIH1cblxuICBfb25Db25maXJtUmVzZXQoKSB7XG4gICAgY29uc3QgeyByZXNvbHZlIH0gPSB0aGlzLl9jb25maXJtO1xuICAgIHRoaXMuX2NvbmZpcm0gPSBudWxsO1xuICAgIHRoaXMuX29uUmVzZXQoKTtcbiAgICB0aGlzLnJlcXVlc3RVcGRhdGUoKS50aGVuKCgpID0+IHtcbiAgICAgIHJlc29sdmUodGhpcyk7XG4gICAgfSk7XG4gIH1cblxuICBfb25Db25maXJtRWRpdCgpIHtcbiAgICB0aGlzLl9jb25maXJtLnJlamVjdCh0aGlzKTtcbiAgICB0aGlzLl9jb25maXJtID0gbnVsbDtcbiAgICB0aGlzLl91cGRhdGVDaGlsZHJlbih0aGlzLnZhbGlkYXRlT25SZW5kZXIpO1xuICB9XG5cbiAgX2dldFN1Ym1pdEJ0bigpIHtcbiAgICByZXR1cm4gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJyNzdWJtaXQnKTtcbiAgfVxuXG4gIF9nZXRSZXNldEJ0bigpIHtcbiAgICByZXR1cm4gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJyNyZXNldCcpO1xuICB9XG5cbiAgX2Rpc3BhdGNoQ2hhbmdlKCkge1xuICAgIGNsZWFyVGltZW91dCh0aGlzLl9jaGFuZ2VUaW1lb3V0KTtcbiAgICB0aGlzLl9jaGFuZ2VUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBkaXNwYXRjaEN1c3RvbUV2ZW50KHRoaXMsICdjaGFuZ2UnLCB7IHRhcmdldDogdGhpcywgdmFsdWVzOiB0aGlzLl92YWx1ZXMsIHZhbGlkYXRpb246IHRoaXMuX3ZhbGlkYXRvclJlc3VsdHMgfSk7XG4gICAgfSwgNTApO1xuICB9XG5cbiAgX29uRGVmYXVsdFZhbHVlKHsgZGV0YWlsOiB7IGN1cnJlbnRUYXJnZXQsIHZhbHVlLCBjb250cm9sIH0gfSkge1xuICAgIGlmIChjb250cm9sLnR5cGUgPT09ICdpbnRlZ2VyJyAmJiB2YWx1ZSAhPSBudWxsICYmICgodmFsdWUudHJpbSAmJiB2YWx1ZS5sZW5ndGggPiAwKSB8fCB2YWx1ZS5sZW5ndGggPiAwKSkge1xuICAgICAgdmFsdWUgPSBwYXJzZUludCh2YWx1ZSwgMTApO1xuICAgIH1cbiAgICBzZXQodGhpcy5fdmFsdWVzLCBjdXJyZW50VGFyZ2V0LmlkLCB2YWx1ZSk7XG4gIH1cblxuICBfb25DaGFuZ2UoeyBkZXRhaWw6IHsgY3VycmVudFRhcmdldCwgdmFsdWUsIGNvbnRyb2wgfSB9KSB7XG4gICAgdGhpcy5fc2V0VG91Y2godHJ1ZSk7XG4gICAgaWYgKGNvbnRyb2wudHlwZSA9PT0gJ2ludGVnZXInKSB7XG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiB2YWx1ZS50cmltKCkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHZhbHVlID0gbnVsbDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGludFZhbHVlID0gTnVtYmVyKHZhbHVlKS52YWx1ZU9mKCk7XG4gICAgICAgIGlmICghaXNOYU4oaW50VmFsdWUpKSB7XG4gICAgICAgICAgdmFsdWUgPSBpbnRWYWx1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB2YWx1ZSA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGNvbnRyb2wudHlwZSA9PT0gJ2FycmF5JyAmJiB2YWx1ZS5sZW5ndGggPT09IDApIHtcbiAgICAgIHZhbHVlID0gbnVsbDtcbiAgICB9IGVsc2UgaWYgKGNvbnRyb2wudHlwZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUudHJpbSgpLmxlbmd0aCA9PT0gMCAmJiAhY29udHJvbC5lbnVtKSB7XG4gICAgICB2YWx1ZSA9IG51bGw7XG4gICAgfSBlbHNlIGlmIChjb250cm9sLnR5cGUgPT09ICdvYmplY3QnKSB7XG4gICAgICBpZiAoT2JqZWN0LmtleXModmFsdWUpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB2YWx1ZSA9IG51bGw7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICBkZWwodGhpcy5fdmFsdWVzLCBjdXJyZW50VGFyZ2V0LmlkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0KHRoaXMuX3ZhbHVlcywgY3VycmVudFRhcmdldC5pZCwgdmFsdWUpO1xuICAgIH1cblxuICAgIHRoaXMuX3VwZGF0ZUR5bmFtaWNDb250cm9scygpO1xuICAgIHRoaXMuX3ZhbGlkYXRvclJlc3VsdHMgPSB0aGlzLnZhbGlkYXRlKCk7XG4gICAgdGhpcy5kaXJ0eSA9IHRydWU7XG4gICAgdGhpcy5fdXBkYXRlQWN0aW9ucygpO1xuICAgIHRoaXMuX2Rpc3BhdGNoQ2hhbmdlKCk7XG4gIH1cblxuICBfb25Db250cm9sUmVhZHkoZSkge1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGNvbnN0IGNvbnRyb2xFbGVtZW50ID0gZS5kZXRhaWwuY29udHJvbDtcbiAgICBjb25zdCBjb250cm9sID0gY29udHJvbEVsZW1lbnQuY29udHJvbDtcbiAgICBpZiAoY29udHJvbFsneC1zY2hlbWEtZm9ybSddKSB7XG4gICAgICBpZiAoY29udHJvbFsneC1zY2hlbWEtZm9ybSddLmV2ZW50KSB7XG4gICAgICAgIGNvbnN0IGV2ZW50ID0gY29udHJvbFsneC1zY2hlbWEtZm9ybSddLmV2ZW50O1xuICAgICAgICBkaXNwYXRjaEN1c3RvbUV2ZW50KHRoaXMsIGV2ZW50Lm5hbWUsIHsgLi4uZXZlbnQsIC4uLmUuZGV0YWlsIH0pO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLl9oYXNDb25kaXRpb24oY29udHJvbCkpIHtcbiAgICAgICAgdGhpcy5fZHluYW1pY0NvbnRyb2xzLnB1c2goY29udHJvbEVsZW1lbnQpO1xuICAgICAgICB0aGlzLl91cGRhdGVEeW5hbWljQ29udHJvbChjb250cm9sRWxlbWVudCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgX3VwZGF0ZUR5bmFtaWNDb250cm9scygpIHtcbiAgICB0aGlzLl9pZ25vcmVQcm9wZXJ0aWVzID0gW107XG4gICAgdGhpcy5fZHluYW1pY0NvbnRyb2xzLmZvckVhY2goKGNvbnRyb2xFbGVtZW50KSA9PiB7XG4gICAgICB0aGlzLl91cGRhdGVEeW5hbWljQ29udHJvbChjb250cm9sRWxlbWVudCk7XG4gICAgfSk7XG4gIH1cblxuICBfdXBkYXRlRHluYW1pY0NvbnRyb2woY29udHJvbEVsZW1lbnQpIHtcbiAgICBjb25zdCBjb250cm9sID0gY29udHJvbEVsZW1lbnQuY29udHJvbDtcbiAgICBpZiAoY29udHJvbFsneC1zY2hlbWEtZm9ybSddKSB7XG4gICAgICB0aGlzLl9keW5hbWljQXR0cmlidXRlcy5mb3JFYWNoKChhdHRyaWJ1dGUpID0+IHtcbiAgICAgICAgY29uc3QgaXMgPSB0aGlzLl9ldmFsdWF0ZUNvbmRpdGlvbihjb250cm9sLCBhdHRyaWJ1dGUpO1xuICAgICAgICBpZiAoaXMpIHtcbiAgICAgICAgICBjb250cm9sRWxlbWVudC5zZXRBdHRyaWJ1dGUoYXR0cmlidXRlLCAnJyk7XG4gICAgICAgICAgaWYgKGF0dHJpYnV0ZSA9PT0gJ2hpZGRlbicpIHtcbiAgICAgICAgICAgIHRoaXMuX2lnbm9yZVByb3BlcnRpZXMucHVzaChjb250cm9sRWxlbWVudC5pZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnRyb2xFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZShhdHRyaWJ1dGUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBhc3luYyBwZXJmb3JtVXBkYXRlKCkge1xuICAgIHRoaXMuZ2V0Q29udHJvbHMoKS5mb3JFYWNoKChzKSA9PiB7XG4gICAgICBzLnJlcXVlc3RVcGRhdGUoKTtcbiAgICB9KTtcbiAgICBzdXBlci5wZXJmb3JtVXBkYXRlKCk7XG4gIH1cblxuICBfcmVuZGVyQ29udHJvbChrZXkpIHtcbiAgICAvLyBUaGlzIGlzIHJlcXVpcmUgdG8gY2xlYW4gY2FjaGUgb2YgPGd2LXNjaGVtYS1mb3JtLWNvbnRyb2w+XG4gICAgY29uc3QgY29udHJvbCA9IHsgLi4udGhpcy5zY2hlbWEucHJvcGVydGllc1trZXldIH07XG4gICAgY29uc3QgaXNSZXF1aXJlZCA9ICh0aGlzLnNjaGVtYS5yZXF1aXJlZCAmJiB0aGlzLnNjaGVtYS5yZXF1aXJlZC5pbmNsdWRlcyhrZXkpKSB8fCB0aGlzLl9ldmFsdWF0ZUNvbmRpdGlvbihjb250cm9sLCAncmVxdWlyZWQnKTtcbiAgICBjb25zdCBpc0Rpc2FibGVkID0gKHRoaXMuc2NoZW1hLmRpc2FibGVkICYmIHRoaXMuc2NoZW1hLmRpc2FibGVkLmluY2x1ZGVzKGtleSkpIHx8IHRoaXMuX2V2YWx1YXRlQ29uZGl0aW9uKGNvbnRyb2wsICdkaXNhYmxlZCcpO1xuICAgIGNvbnN0IGlzSGlkZGVuID0gdGhpcy5fZXZhbHVhdGVDb25kaXRpb24oY29udHJvbCwgJ2hpZGRlbicpO1xuICAgIGlmIChpc0hpZGRlbikge1xuICAgICAgdGhpcy5faWdub3JlUHJvcGVydGllcy5wdXNoKGtleSk7XG4gICAgfVxuICAgIGNvbnN0IGlzUmVhZG9ubHkgPSB0aGlzLnJlYWRvbmx5IHx8IGNvbnRyb2wucmVhZE9ubHkgPT09IHRydWU7XG4gICAgY29uc3QgaXNXcml0ZU9ubHkgPSBjb250cm9sLndyaXRlT25seSA9PT0gdHJ1ZTtcbiAgICBjb25zdCB2YWx1ZSA9IGdldCh0aGlzLl92YWx1ZXMsIGtleSk7XG4gICAgcmV0dXJuIGh0bWxgPGd2LXNjaGVtYS1mb3JtLWNvbnRyb2xcbiAgICAgIGRhdGEtYT1cImRkXCJcbiAgICAgIC5pZD1cIiR7a2V5fVwiXG4gICAgICAuZXJyb3JzPVwiJHt0aGlzLmVycm9yc31cIlxuICAgICAgLmNvbnRyb2w9XCIke2NvbnRyb2x9XCJcbiAgICAgIC5za2VsZXRvbj1cIiR7dGhpcy5za2VsZXRvbn1cIlxuICAgICAgLnZhbHVlPVwiJHt2YWx1ZX1cIlxuICAgICAgP3JlYWRvbmx5PVwiJHtpc1JlYWRvbmx5fVwiXG4gICAgICA/d3JpdGVvbmx5PVwiJHtpc1dyaXRlT25seX1cIlxuICAgICAgP3JlcXVpcmVkPVwiJHtpc1JlcXVpcmVkfVwiXG4gICAgICA/ZGlzYWJsZWQ9XCIke2lzRGlzYWJsZWR9XCJcbiAgICAgID9oaWRkZW49XCIke2lzSGlkZGVufVwiXG4gICAgPjwvZ3Ytc2NoZW1hLWZvcm0tY29udHJvbD5gO1xuICB9XG5cbiAgX2hhc0NvbmRpdGlvbihjb250cm9sKSB7XG4gICAgaWYgKGNvbnRyb2xbJ3gtc2NoZW1hLWZvcm0nXSkge1xuICAgICAgcmV0dXJuIHRoaXMuX2R5bmFtaWNBdHRyaWJ1dGVzLmZpbmQoKGNvbmRpdGlvbikgPT4gY29udHJvbFsneC1zY2hlbWEtZm9ybSddW2NvbmRpdGlvbl0gIT0gbnVsbCkgIT0gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgX2V2YWx1YXRlQ29uZGl0aW9uKGNvbnRyb2wsIGNvbmRpdGlvbktleSkge1xuICAgIGlmIChjb250cm9sWyd4LXNjaGVtYS1mb3JtJ10gPT0gbnVsbCB8fCBjb250cm9sWyd4LXNjaGVtYS1mb3JtJ11bY29uZGl0aW9uS2V5XSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IGNvbmRpdGlvbiA9IGNvbnRyb2xbJ3gtc2NoZW1hLWZvcm0nXVtjb25kaXRpb25LZXldO1xuICAgIGlmICh0eXBlb2YgY29uZGl0aW9uID09PSAnYm9vbGVhbicpIHtcbiAgICAgIHJldHVybiBjb25kaXRpb247XG4gICAgfVxuICAgIGlmICghQXJyYXkuaXNBcnJheShjb25kaXRpb24pKSB7XG4gICAgICAvLyBjb25kaXRpb24gaXNuJ3QgYW4gYXJyYXksIGlnbm9yZSB0aGUgY29uZGl0aW9uXG4gICAgICBjb25zb2xlLndhcm4oYCcke2NvbmRpdGlvbktleX0nIGF0dHJpYnV0ZSBvZiAneC1zY2hlbWEtZm9ybScgc2hvdWxkIGJlIGFuIGFycmF5YCk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgbGV0IHJlc3VsdCA9IHRydWU7XG4gICAgZm9yIChjb25zdCBvcGVyYXRpb24gb2YgY29uZGl0aW9uKSB7XG4gICAgICAvLyBvcGVyYXRpb24gb25seSBoYXZlIG9uZSBvcGVyYXRvciB3aXRoIGEgc2luZ2xlIG9iamVjdCBjb250YWluaW5nIG9wZXJhbmQgdmFsdWVzXG4gICAgICBjb25zdCBvcGVyYXRvciA9IE9iamVjdC5rZXlzKG9wZXJhdGlvbilbMF07XG5cbiAgICAgIHN3aXRjaCAob3BlcmF0b3IpIHtcbiAgICAgICAgY2FzZSAnJG5lcSc6XG4gICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICYmIHRoaXMuX2V2YWx1YXRlTm90RXF1YWxzQ29uZGl0aW9uKGNvbnRyb2wsIG9wZXJhdGlvbik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJyRlcSc6XG4gICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICYmIHRoaXMuX2V2YWx1YXRlRXF1YWxzQ29uZGl0aW9uKGNvbnRyb2wsIG9wZXJhdGlvbik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJyRub2RlZic6XG4gICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICYmIHRoaXMuX2V2YWx1YXRlTm90RGVmQ29uZGl0aW9uKGNvbnRyb2wsIG9wZXJhdGlvbik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJyRkZWYnOlxuICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAmJiB0aGlzLl9ldmFsdWF0ZURlZkNvbmRpdGlvbihjb250cm9sLCBvcGVyYXRpb24pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGNvbnNvbGUud2FybihgVW5zdXBwb3J0ZWQgb3BlcmF0b3IgJyR7b3BlcmF0b3J9JyBvbiBkaXNhYmxlIGNvbmRpdGlvbmApO1xuICAgICAgICAgIHJlc3VsdCA9IGZhbHNlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBfZXZhbHVhdGVOb3RFcXVhbHNDb25kaXRpb24oY29udHJvbCwgY29uZGl0aW9uKSB7XG4gICAgcmV0dXJuICF0aGlzLl9ldmFsdWF0ZUVxdWFsc0NvbmRpdGlvbihjb250cm9sLCBjb25kaXRpb24pO1xuICB9XG5cbiAgX2V2YWx1YXRlRXF1YWxzQ29uZGl0aW9uKGNvbnRyb2wsIGNvbmRpdGlvbikge1xuICAgIGNvbnN0IG9wZXJhdG9yID0gT2JqZWN0LmtleXMoY29uZGl0aW9uKVswXTtcbiAgICBjb25zdCBvcGVyYW5kcyA9IGNvbmRpdGlvbltvcGVyYXRvcl07XG4gICAgY29uc3QgbW9kZWxBdHRyaWJ1dGVzID0gT2JqZWN0LmtleXMob3BlcmFuZHMpO1xuICAgIHJldHVybiBtb2RlbEF0dHJpYnV0ZXNcbiAgICAgIC5tYXAoKG1vZGVsQXR0cmlidXRlKSA9PiB7XG4gICAgICAgIGNvbnN0IHRlc3RWYWx1ZSA9IG9wZXJhbmRzW21vZGVsQXR0cmlidXRlXTtcbiAgICAgICAgbGV0IHZhbHVlID0gZ2V0KHRoaXMuX3ZhbHVlcywgbW9kZWxBdHRyaWJ1dGUpO1xuICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCAmJiBjb250cm9sLnR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgdmFsdWUgPSAnJztcbiAgICAgICAgfVxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh0ZXN0VmFsdWUpKSB7XG4gICAgICAgICAgcmV0dXJuIHRlc3RWYWx1ZS5pbmNsdWRlcyh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlID09PSB0ZXN0VmFsdWU7XG4gICAgICB9KVxuICAgICAgLnJlZHVjZSgoYWNjLCBjdXJyZW50KSA9PiBhY2MgfHwgY3VycmVudCk7XG4gIH1cblxuICBfZXZhbHVhdGVOb3REZWZDb25kaXRpb24oY29udHJvbCwgY29uZGl0aW9uKSB7XG4gICAgY29uc3Qgb3BlcmF0b3IgPSBPYmplY3Qua2V5cyhjb25kaXRpb24pWzBdO1xuICAgIGNvbnN0IG1vZGVsQXR0cmlidXRlID0gY29uZGl0aW9uW29wZXJhdG9yXTtcbiAgICByZXR1cm4gZ2V0KHRoaXMuX3ZhbHVlcywgbW9kZWxBdHRyaWJ1dGUpID09PSB1bmRlZmluZWQgfHwgZ2V0KHRoaXMuX3ZhbHVlcywgbW9kZWxBdHRyaWJ1dGUpID09PSBudWxsO1xuICB9XG5cbiAgX2V2YWx1YXRlRGVmQ29uZGl0aW9uKGNvbnRyb2wsIGNvbmRpdGlvbikge1xuICAgIHJldHVybiAhdGhpcy5fZXZhbHVhdGVOb3REZWZDb25kaXRpb24oY29udHJvbCwgY29uZGl0aW9uKTtcbiAgfVxuXG4gIF9yZW5kZXJQYXJ0KCkge1xuICAgIGlmICh0aGlzLl9jb25maXJtKSB7XG4gICAgICByZXR1cm4gaHRtbGA8ZGl2IGNsYXNzPVwiY29uZmlybS1ib3hcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImVycm9yXCI+VGhlIGNvbmZpZ3VyYXRpb24gaXMgbm90IHZhbGlkIGFuZCBjYW5ub3QgYmUgc2F2ZWQuPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb25maXJtLWJveF9hY3Rpb25zXCI+XG4gICAgICAgICAgPGd2LWJ1dHRvbiBAZ3YtYnV0dG9uOmNsaWNrPVwiJHt0aGlzLl9vbkNvbmZpcm1SZXNldH1cIiBvdXRsaW5lZCBpY29uPVwiZ2VuZXJhbDp1cGRhdGVcIiBkYW5nZXI+TG9zZSBjaGFuZ2VzPC9ndi1idXR0b24+XG4gICAgICAgICAgPGd2LWJ1dHRvbiBAZ3YtYnV0dG9uOmNsaWNrPVwiJHt0aGlzLl9vbkNvbmZpcm1FZGl0fVwiIGljb249XCJkZXNpZ246ZWRpdFwiPkVkaXQ8L2d2LWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5gO1xuICAgIH1cbiAgICBjb25zdCBrZXlzID0gdGhpcy5zY2hlbWEucHJvcGVydGllcyA/IE9iamVjdC5rZXlzKHRoaXMuc2NoZW1hLnByb3BlcnRpZXMpIDogW107XG4gICAgdGhpcy5faWdub3JlUHJvcGVydGllcyA9IFtdO1xuICAgIHJldHVybiByZXBlYXQoa2V5cywgKGtleSkgPT4gdGhpcy5fcmVuZGVyQ29udHJvbChrZXkpKTtcbiAgfVxuXG4gIGdldENvbnRyb2xzKCkge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCdndi1zY2hlbWEtZm9ybS1jb250cm9sJykpO1xuICB9XG5cbiAgZ2V0Q29udHJvbChpZCkge1xuICAgIHJldHVybiB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgW2lkPVwiJHtpZH1cIl1gKTtcbiAgfVxuXG4gIF9nZXRFcnJvcnMoKSB7XG4gICAgcmV0dXJuICh0aGlzLl92YWxpZGF0b3JSZXN1bHRzLmVycm9ycyB8fCBbXSkuZmlsdGVyKChlcnJvcikgPT4ge1xuICAgICAgbGV0IGlkID0gYCR7ZXJyb3IucHJvcGVydHkucmVwbGFjZSgnaW5zdGFuY2UuJywgJycpfWA7XG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkoZXJyb3IuYXJndW1lbnQpKSB7XG4gICAgICAgIGlkID0gYCR7aWR9LiR7ZXJyb3IuYXJndW1lbnR9YDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZXJyb3JLZXkgPSBgeC1zY2hlbWEtZm9ybS5lcnJvcnMuJHtpZH0uJHtlcnJvci5uYW1lfWA7XG4gICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBnZXQodGhpcy5zY2hlbWEsIGVycm9yS2V5KTtcbiAgICAgIGlmIChlcnJvck1lc3NhZ2UpIHtcbiAgICAgICAgZXJyb3IubWVzc2FnZSA9IGVycm9yTWVzc2FnZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAhdGhpcy5faWdub3JlUHJvcGVydGllcy5pbmNsdWRlcyhpZCk7XG4gICAgfSk7XG4gIH1cblxuICB2YWxpZGF0ZSgpIHtcbiAgICBpZiAodGhpcy5zY2hlbWEpIHtcbiAgICAgIC8vIEFkZGl0aW9uYWwgcHJvcGVydGllcyBzaG91bGQgbm90IGJsb2NrIHRoZSB2YWxpZGF0aW9uIG9mIHRoZSBmb3JtXG4gICAgICB0aGlzLl92YWxpZGF0b3JSZXN1bHRzID0gdGhpcy5fdmFsaWRhdG9yLnZhbGlkYXRlKHRoaXMuX3ZhbHVlcywgeyAuLi50aGlzLnNjaGVtYSwgYWRkaXRpb25hbFByb3BlcnRpZXM6IHRydWUgfSk7XG4gICAgICB0aGlzLmVycm9ycyA9IHRoaXMuX2dldEVycm9ycygpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fdmFsaWRhdG9yUmVzdWx0cztcbiAgfVxuXG4gIGlzVmFsaWQoKSB7XG4gICAgaWYgKHRoaXMuX3ZhbGlkYXRvclJlc3VsdHMudmFsaWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fZ2V0RXJyb3JzKCkgPT09IDA7XG4gIH1cblxuICBpc1RvdWNoKCkge1xuICAgIHJldHVybiB0aGlzLl90b3VjaCB8fCAodGhpcy5kaXJ0eSAmJiB0aGlzLnZhbGlkYXRlT25SZW5kZXIpO1xuICB9XG5cbiAgY2FuU3VibWl0KCkge1xuICAgIHJldHVybiB0aGlzLmlzVG91Y2goKSAmJiB0aGlzLmlzVmFsaWQoKTtcbiAgfVxuXG4gIF91cGRhdGVBY3Rpb25zKCkge1xuICAgIGNvbnN0IHN1Ym1pdEJ0biA9IHRoaXMuX2dldFN1Ym1pdEJ0bigpO1xuICAgIGlmIChzdWJtaXRCdG4gIT0gbnVsbCkge1xuICAgICAgaWYgKHRoaXMuY2FuU3VibWl0KCkpIHtcbiAgICAgICAgdGhpcy5fZ2V0U3VibWl0QnRuKCkucmVtb3ZlQXR0cmlidXRlKCdkaXNhYmxlZCcpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fZ2V0U3VibWl0QnRuKCkuc2V0QXR0cmlidXRlKCdkaXNhYmxlZCcsIHRydWUpO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCByZXNldEJ0biA9IHRoaXMuX2dldFJlc2V0QnRuKCk7XG4gICAgaWYgKHJlc2V0QnRuICE9IG51bGwpIHtcbiAgICAgIGlmICh0aGlzLmRpcnR5KSB7XG4gICAgICAgIHJlc2V0QnRuLnJlbW92ZUF0dHJpYnV0ZSgnZGlzYWJsZWQnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc2V0QnRuLnNldEF0dHJpYnV0ZSgnZGlzYWJsZWQnLCB0cnVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBfdXBkYXRlQ2hpbGRyZW4od2l0aFZhbGlkYXRpb24pIHtcbiAgICBpZiAod2l0aFZhbGlkYXRpb24pIHtcbiAgICAgIHRoaXMuX3ZhbGlkYXRvclJlc3VsdHMgPSB7fTtcbiAgICAgIHRoaXMuZXJyb3JzID0gbnVsbDtcbiAgICAgIHRoaXMucmVxdWVzdFZhbGlkYXRpb24oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fdXBkYXRlQWN0aW9uc1RpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMuX3VwZGF0ZUFjdGlvbnMoKSwgMCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgdXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcykge1xuICAgIGNsZWFyVGltZW91dCh0aGlzLl91cGRhdGVBY3Rpb25zVGltZW91dCk7XG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnX3ZhbHVlcycpKSB7XG4gICAgICB0aGlzLmdldENvbnRyb2xzKCkuZm9yRWFjaCgoY29udHJvbCkgPT4ge1xuICAgICAgICBjb250cm9sLnZhbHVlID0gZ2V0KHRoaXMuX3ZhbHVlcywgY29udHJvbC5pZCk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5fdXBkYXRlQ2hpbGRyZW4odGhpcy52YWxpZGF0ZU9uUmVuZGVyICYmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ192YWx1ZXMnKSB8fCBjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ3NjaGVtYScpKSk7XG4gIH1cblxuICBhc3luYyBnZXRVcGRhdGVDb21wbGV0ZSgpIHtcbiAgICBhd2FpdCBzdXBlci5nZXRVcGRhdGVDb21wbGV0ZSgpO1xuICAgIGF3YWl0IFByb21pc2UuYWxsKHRoaXMuZ2V0Q29udHJvbHMoKS5tYXAoKGUpID0+IGUudXBkYXRlQ29tcGxldGUpKTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICByZXR1cm4gaHRtbGA8Zm9ybSBjbGFzcz1cIiR7Y2xhc3NNYXAoeyBzY3JvbGxhYmxlOiB0aGlzLnNjcm9sbGFibGUgfSl9XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiJHtjbGFzc01hcCh7IGNvbnRhaW5lcjogdHJ1ZSwgY29uZmlybTogdGhpcy5fY29uZmlybSB9KX1cIj5cbiAgICAgICAgJHt0aGlzLmhhc0hlYWRlciA9PT0gdHJ1ZVxuICAgICAgICAgID8gaHRtbGBcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIke2NsYXNzTWFwKHsgdGl0bGU6IHRydWUsIGNlbnRlcjogdGhpcy5oYXNIZWFkZXIgJiYgIXRoaXMuaGFzRm9vdGVyIH0pfVwiPlxuICAgICAgICAgICAgICAgICAgPHNsb3QgbmFtZT1cInRpdGxlXCI+PC9zbG90PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCI+XG4gICAgICAgICAgICAgICAgICA8c2xvdCBuYW1lPVwiaGVhZGVyLWxlZnRcIj48L3Nsb3Q+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgJHt0aGlzLnJlYWRvbmx5ID09PSB0cnVlIHx8IHRoaXMuaGFzRm9vdGVyID09PSB0cnVlXG4gICAgICAgICAgICAgICAgICA/ICcnXG4gICAgICAgICAgICAgICAgICA6IGh0bWxgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGd2LWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJyZXNldFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBvdXRsaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgc21hbGxcbiAgICAgICAgICAgICAgICAgICAgICAgIEBndi1idXR0b246Y2xpY2s9XCIke3RoaXMuX29uUmVzZXR9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb249XCJnZW5lcmFsOnVwZGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT1cIlJlc2V0XCJcbiAgICAgICAgICAgICAgICAgICAgICA+PC9ndi1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPGd2LWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc21hbGxcbiAgICAgICAgICAgICAgICAgICAgICAgIEBndi1idXR0b246Y2xpY2s9XCIke3RoaXMuX29uU3VibWl0fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uPVwiY29kZTpjaGVja1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAudGl0bGU9XCIke3RoaXMuc3VibWl0TGFiZWx9XCJcbiAgICAgICAgICAgICAgICAgICAgICA+PC9ndi1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PiBgfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIGBcbiAgICAgICAgICA6ICcnfVxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPiR7dGhpcy5zY2hlbWEgIT0gbnVsbCA/IHRoaXMuX3JlbmRlclBhcnQoKSA6IGh0bWxgYH08L2Rpdj5cbiAgICAgICAgJHt0aGlzLmhhc0Zvb3RlciA9PT0gdHJ1ZSAmJiB0aGlzLnJlYWRvbmx5ICE9PSB0cnVlXG4gICAgICAgICAgPyBodG1sYFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnRcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cbiAgICAgICAgICAgICAgICAgIDxndi1idXR0b24gaWQ9XCJyZXNldFwiIG91dGxpbmVkIEBndi1idXR0b246Y2xpY2s9XCIke3RoaXMuX29uUmVzZXR9XCIgaWNvbj1cImdlbmVyYWw6dXBkYXRlXCIgdGl0bGU9XCJSZXNldFwiPlJlc2V0PC9ndi1idXR0b24+XG4gICAgICAgICAgICAgICAgICA8Z3YtYnV0dG9uIGlkPVwic3VibWl0XCIgQGd2LWJ1dHRvbjpjbGljaz1cIiR7dGhpcy5fb25TdWJtaXR9XCIgaWNvbj1cImNvZGU6Y2hlY2tcIiAudGl0bGU9XCIke3RoaXMuc3VibWl0TGFiZWx9XCJcbiAgICAgICAgICAgICAgICAgICAgPiR7dGhpcy5zdWJtaXRMYWJlbH08L2d2LWJ1dHRvblxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIGBcbiAgICAgICAgICA6ICcnfVxuICAgICAgPC9kaXY+XG4gICAgPC9mb3JtPmA7XG4gIH1cblxuICBzdGF0aWMgZ2V0IHN0eWxlcygpIHtcbiAgICByZXR1cm4gW1xuICAgICAgZW1wdHksXG4gICAgICAvLyBsYW5ndWFnZT1DU1NcbiAgICAgIGNzc2BcbiAgICAgICAgOmhvc3Qge1xuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgbWFyZ2luOiAwLjJyZW07XG4gICAgICAgICAgLS1iZ2M6IHZhcigtLWd2LXNjaGVtYS1mb3JtLS1iZ2MsICNmZmZmZmYpO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9ybSB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9ybS5zY3JvbGxhYmxlIHtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNvbnRhaW5lciB7XG4gICAgICAgICAgZmxleC1ncm93OiAxO1xuXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmdjKTtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgICAvKiBmb3IgRmlyZWZveCAqL1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAuaGVhZGVyLFxuICAgICAgICAuZm9vdGVyLFxuICAgICAgICAuY29udGVudCB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmdjKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb250ZW50IHtcbiAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgIC8qIGZvciBGaXJlZm94ICovXG4gICAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb250ZW50ID4gZ3Ytc2NoZW1hLWZvcm0tY29udHJvbCB7XG4gICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9ybS5zY3JvbGxhYmxlIC5jb250ZW50IHtcbiAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIGZvcm0uc2Nyb2xsYWJsZSAuY29udGVudCA+IGd2LXNjaGVtYS1mb3JtLWNvbnRyb2wge1xuICAgICAgICAgIG1heC13aWR0aDogNzc1cHg7XG4gICAgICAgICAgd2lkdGg6IDk1JTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5oZWFkZXIsXG4gICAgICAgIC5mb290ZXIge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICBtaW4taGVpZ2h0OiA0NXB4O1xuICAgICAgICAgIC0tZ3YtaWNvbi0tczogMjZweDtcbiAgICAgICAgICAtLWd2LWljb24tLWM6ICNiZmJmYmY7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICBwYWRkaW5nOiAwIDAuNXJlbTtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAuaGVhZGVyIHtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2Q5ZDlkOTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb290ZXIge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkOWQ5ZDk7XG4gICAgICAgIH1cblxuICAgICAgICBmb3JtLnNjcm9sbGFibGUgLmZvb3RlciB7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAuZm9vdGVyIC5sZWZ0LFxuICAgICAgICAuZm9vdGVyIC5yaWdodCB7XG4gICAgICAgICAgbWF4LXdpZHRoOiA0MDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5oZWFkZXIgLmxlZnQsXG4gICAgICAgIC5mb290ZXIgLmxlZnQsXG4gICAgICAgIC5oZWFkZXIgLnJpZ2h0LFxuICAgICAgICAuZm9vdGVyIC5yaWdodCB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAuaGVhZGVyIC5yaWdodCxcbiAgICAgICAgLmZvb3RlciAucmlnaHQge1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAuaGVhZGVyIC50aXRsZSB7XG4gICAgICAgICAgY29sb3I6ICMyODQ0NGY7XG4gICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5oZWFkZXIgLnRpdGxlLmNlbnRlciB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb25maXJtLWJveCB7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNvbmZpcm0tYm94X2FjdGlvbnMge1xuICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb25maXJtIC5oZWFkZXIgLmxlZnQsXG4gICAgICAgIC5jb25maXJtIC5oZWFkZXIgLnJpZ2h0LFxuICAgICAgICAuY29uZmlybSAuZm9vdGVyIC5sZWZ0LFxuICAgICAgICAuY29uZmlybSAuZm9vdGVyIC5yaWdodCB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgYCxcbiAgICBdO1xuICB9XG59XG5cbndpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmUoJ2d2LXNjaGVtYS1mb3JtJywgR3ZTY2hlbWFGb3JtKTtcbiJdfQ==
|
package/src/organisms/gv-tabs.js
CHANGED
|
@@ -13,8 +13,7 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import { css, LitElement } from 'lit
|
|
17
|
-
import { html } from 'lit-html';
|
|
16
|
+
import { css, LitElement, html } from 'lit';
|
|
18
17
|
import '../molecules/gv-option';
|
|
19
18
|
import { dispatchCustomEvent } from '../lib/events';
|
|
20
19
|
/**
|
|
@@ -176,4 +175,4 @@ export class GvTabs extends LitElement {
|
|
|
176
175
|
|
|
177
176
|
}
|
|
178
177
|
window.customElements.define('gv-tabs', GvTabs);
|
|
179
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL29yZ2FuaXNtcy9ndi10YWJzLmpzIl0sIm5hbWVzIjpbImNzcyIsIkxpdEVsZW1lbnQiLCJodG1sIiwiZGlzcGF0Y2hDdXN0b21FdmVudCIsIkd2VGFicyIsInByb3BlcnRpZXMiLCJvcHRpb25zIiwidHlwZSIsIkFycmF5IiwiX29wdGlvbnMiLCJhdHRyaWJ1dGUiLCJ2YWx1ZSIsIlN0cmluZyIsInJlZmxlY3QiLCJ2YWxpZGF0b3IiLCJGdW5jdGlvbiIsImRpc2FibGVkIiwiQm9vbGVhbiIsInNtYWxsIiwidHJ1bmNhdGUiLCJzdHlsZXMiLCJfZ2V0Q29udGVudCIsImNvbnRlbnQiLCJzaGFkb3dSb290IiwicXVlcnlTZWxlY3RvciIsImFzc2lnbmVkTm9kZXMiLCJmaXJzdFVwZGF0ZWQiLCJsZW5ndGgiLCJpZCIsImlzQXJyYXkiLCJtYXAiLCJvcHRpb24iLCJ0aXRsZSIsInVwZGF0ZWQiLCJmb3JFYWNoIiwiYyIsImNsYXNzTGlzdCIsInJlbW92ZSIsInRhcmdldCIsImFkZCIsIl9jaGFuZ2VUYWIiLCJmcm9tIiwidG8iLCJfb25DbGljayIsImRldGFpbCIsImZpbmQiLCJlIiwiY29udGFpbnMiLCJ0aGVuIiwiY2F0Y2giLCJfY29udGV4dHVhbE9wdGlvbnMiLCJsYWJlbCIsInN1YnN0cmluZyIsInJlbmRlciIsIndpbmRvdyIsImN1c3RvbUVsZW1lbnRzIiwiZGVmaW5lIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxHQUFULEVBQWNDLFVBQWQsUUFBZ0MsYUFBaEM7QUFDQSxTQUFTQyxJQUFULFFBQXFCLFVBQXJCO0FBQ0EsT0FBTyx3QkFBUDtBQUNBLFNBQVNDLG1CQUFULFFBQW9DLGVBQXBDO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNB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QixFQUF3Q3BELE1BQXhDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAxNSBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7IGNzcywgTGl0RWxlbWVudCB9IGZyb20gJ2xpdC1lbGVtZW50JztcbmltcG9ydCB7IGh0bWwgfSBmcm9tICdsaXQtaHRtbCc7XG5pbXBvcnQgJy4uL21vbGVjdWxlcy9ndi1vcHRpb24nO1xuaW1wb3J0IHsgZGlzcGF0Y2hDdXN0b21FdmVudCB9IGZyb20gJy4uL2xpYi9ldmVudHMnO1xuXG4vKipcbiAqIFRhYnMgY29tcG9uZW50XG4gKlxuICogKiAjIyBEZXRhaWxzXG4gKiAqIFRoaXMgY29tcG9uZW50IHVzZSBndi1vcHRpb24gY29tcG9uZW50IHRvIGdlbmVyYXRlIHRhYnMuXG4gKlxuICogQGF0dHIge0FycmF5PGlkOiBzdHJpbmcgfCB7aWQsIHRpdGxlPywgaWNvbj8sIGFjdGl2ZT8sIGRlc2NyaXB0aW9uPywgbGFiZWw/fT59IG9wdGlvbnMgLSBBbiBhcnJheSBvZiBvcHRpb25zIGZvciBndi1vcHRpb24gc3ViIGNvbXBvbmVudFxuICogQHNsb3QgY29udGVudCAtIExpc3Qgb2YgZWxlbWVudHMgZm9yIHRhYnMgY29udGVudC4gU2hvdWxkIGhhdmUgYW4gaWQgcmVsYXRlZCB0byBvcHRpb25zLlxuICpcbiAqIEBhdHRyIHtTdHJpbmd9IHZhbHVlIC0gdGhlIG9wZW5lZCB0YWIgaWRcbiAqIEBhdHRyIHtCb29sZWFufSBkaXNhYmxlZCAtIHRydWUgaWYgZGlzYWJsZWRcbiAqIEBhdHRyIHtCb29sZWFufSBzbWFsbCAtIHRydWUgaWYgeW91IHdhbnQgZGlzcGxheSB0YWJzIGJlbG93IG9mIHRpdGxlXG4gKiBAYXR0ciB7Qm9vbGVhbn0gdHJ1bmNhdGUgLSB0cnVlIGlmIHlvdSB3YW50IHRydW5jYXRlIHRhYnMgdGl0bGVcbiAqIEBhdHRyIHtGdW5jdGlvbn0gdmFsaWRhdG9yIC0gYSBmdW5jdGlvbiB0aGF0J3MgY2FsbHMgd2hlbiB1c2VyIGNoYW5nZSB0YWIsIHRoaXMgaXMgdXNlZnVsIHRvIHZhbGlkYXRlIHRhYiBjaGFuZ2UuXG4gKlxuICogQGNzc3Byb3Age0xlbmd0aH0gWy0tZ3YtdGFicy1vcHRpb25zLS1tPTBdIC0gVGFicyBvcHRpb25zIG1hcmdpblxuICovXG5leHBvcnQgY2xhc3MgR3ZUYWJzIGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHN0YXRpYyBnZXQgcHJvcGVydGllcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgb3B0aW9uczogeyB0eXBlOiBBcnJheSB9LFxuICAgICAgX29wdGlvbnM6IHsgdHlwZTogQXJyYXksIGF0dHJpYnV0ZTogZmFsc2UgfSxcbiAgICAgIHZhbHVlOiB7IHR5cGU6IFN0cmluZywgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgdmFsaWRhdG9yOiB7IHR5cGU6IEZ1bmN0aW9uIH0sXG4gICAgICBkaXNhYmxlZDogeyB0eXBlOiBCb29sZWFuIH0sXG4gICAgICBzbWFsbDogeyB0eXBlOiBCb29sZWFuIH0sXG4gICAgICB0cnVuY2F0ZTogeyB0eXBlOiBCb29sZWFuIH0sXG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBnZXQgc3R5bGVzKCkge1xuICAgIHJldHVybiBbXG4gICAgICAvLyBsYW5ndWFnZT1jc3NcbiAgICAgIGNzc2BcbiAgICAgICAgOmhvc3Qge1xuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIH1cblxuICAgICAgICA6OnNsb3R0ZWQoW3Nsb3Q9J2NvbnRlbnQnXSkge1xuICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDM1MG1zIGVhc2UtaW4tb3V0O1xuICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgbGVmdDogLTk5OTlweDtcbiAgICAgICAgICB0b3A6IC05OTk5cHg7XG4gICAgICAgIH1cblxuICAgICAgICA6OnNsb3R0ZWQoW3Nsb3Q9J2NvbnRlbnQnXS5jdXJyZW50KSB7XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIC5oZWFkZXIge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkOWQ5ZDk7XG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgfVxuXG4gICAgICAgIC50aXRsZSB7XG4gICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAuYWN0aW9ucyB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLnRhYnMge1xuICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICAgIC0tZ3Ytb3B0aW9uLS1iZHJzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgOmhvc3QoW3NtYWxsXSkgLnRhYnMge1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIH1cblxuICAgICAgICA6aG9zdChbc21hbGxdKSBndi1vcHRpb24ge1xuICAgICAgICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgZ3Ytb3B0aW9uIHtcbiAgICAgICAgICBtYXJnaW46IHZhcigtLWd2LXRhYnMtb3B0aW9ucy0tbSwgMCk7XG4gICAgICAgIH1cblxuICAgICAgICA6OnNsb3R0ZWQoZ3YtYnV0dG9uKSB7XG4gICAgICAgICAgcGFkZGluZy1ib3R0b206IDJweDtcbiAgICAgICAgfVxuICAgICAgYCxcbiAgICBdO1xuICB9XG5cbiAgX2dldENvbnRlbnQoKSB7XG4gICAgY29uc3QgY29udGVudCA9IHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdzbG90W25hbWU9XCJjb250ZW50XCJdJyk7XG4gICAgcmV0dXJuIGNvbnRlbnQuYXNzaWduZWROb2RlcygpO1xuICB9XG5cbiAgZmlyc3RVcGRhdGVkKCkge1xuICAgIGlmICh0aGlzLnZhbHVlID09IG51bGwgJiYgdGhpcy5vcHRpb25zICE9IG51bGwgJiYgdGhpcy5vcHRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLm9wdGlvbnNbMF0uaWQ7XG4gICAgfVxuICB9XG5cbiAgc2V0IG9wdGlvbnMob3B0aW9ucykge1xuICAgIGlmIChvcHRpb25zICYmIEFycmF5LmlzQXJyYXkob3B0aW9ucykpIHtcbiAgICAgIHRoaXMuX29wdGlvbnMgPSBvcHRpb25zLm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9uID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIHJldHVybiB7IGlkOiBvcHRpb24sIHRpdGxlOiBvcHRpb24gfTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygb3B0aW9uID09PSAnb2JqZWN0JyAmJiBvcHRpb24udGl0bGUgPT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybiB7IGlkOiBvcHRpb24uaWQsIHRpdGxlOiBvcHRpb24uaWQgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3B0aW9uO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IG9wdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX29wdGlvbnM7XG4gIH1cblxuICB1cGRhdGVkKCkge1xuICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLl9nZXRDb250ZW50KCk7XG4gICAgY29udGVudC5mb3JFYWNoKChjKSA9PiBjLmNsYXNzTGlzdC5yZW1vdmUoJ2N1cnJlbnQnKSk7XG4gICAgaWYgKHRoaXMudmFsdWUpIHtcbiAgICAgIGNvbnN0IHRhcmdldCA9IHRoaXMucXVlcnlTZWxlY3RvcihgIyR7dGhpcy52YWx1ZX1gKTtcbiAgICAgIGlmICh0YXJnZXQpIHtcbiAgICAgICAgdGFyZ2V0LmNsYXNzTGlzdC5hZGQoJ2N1cnJlbnQnKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29udGVudFswXS5jbGFzc0xpc3QuYWRkKCdjdXJyZW50Jyk7XG4gICAgfVxuICB9XG5cbiAgX2NoYW5nZVRhYihmcm9tLCBjb250ZW50LCB2YWx1ZSkge1xuICAgIGZyb20uY2xhc3NMaXN0LnJlbW92ZSgnY3VycmVudCcpO1xuICAgIGNvbnRlbnQuY2xhc3NMaXN0LmFkZCgnY3VycmVudCcpO1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICBkaXNwYXRjaEN1c3RvbUV2ZW50KHRoaXMsICdjaGFuZ2UnLCB7IHZhbHVlLCBmcm9tOiBmcm9tLmlkLCB0bzogY29udGVudC5pZCB9KTtcbiAgfVxuXG4gIF9vbkNsaWNrKHsgZGV0YWlsIH0pIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIGNvbnN0IGZyb20gPSB0aGlzLl9nZXRDb250ZW50KCkuZmluZCgoZSkgPT4gZS5jbGFzc0xpc3QuY29udGFpbnMoJ2N1cnJlbnQnKSk7XG4gICAgICBjb25zdCBjb250ZW50ID0gdGhpcy5xdWVyeVNlbGVjdG9yKGAjJHtkZXRhaWwuaWR9YCk7XG4gICAgICB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignZ3Ytb3B0aW9uJykudmFsdWUgPSBmcm9tLmlkO1xuICAgICAgaWYgKHRoaXMudmFsaWRhdG9yKSB7XG4gICAgICAgIHRoaXMudmFsaWRhdG9yKHsgZnJvbTogZnJvbS5pZCwgdG86IGNvbnRlbnQuaWQgfSlcbiAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9jaGFuZ2VUYWIoZnJvbSwgY29udGVudCwgZGV0YWlsLmlkKTtcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5jYXRjaCgoKSA9PiB7fSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9jaGFuZ2VUYWIoZnJvbSwgY29udGVudCwgZGV0YWlsLmlkKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXQgX2NvbnRleHR1YWxPcHRpb25zKCkge1xuICAgIGlmICh0aGlzLnRydW5jYXRlKSB7XG4gICAgICByZXR1cm4gdGhpcy5vcHRpb25zLm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnZhbHVlICE9PSBvcHRpb24uaWQpIHtcbiAgICAgICAgICBjb25zdCBsYWJlbCA9IG9wdGlvbi5sYWJlbCB8fCBvcHRpb24udGl0bGU7XG4gICAgICAgICAgcmV0dXJuIHsgLi4ub3B0aW9uLCBsYWJlbDogbGFiZWwuc3Vic3RyaW5nKDAsIDEpIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9wdGlvbjtcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5vcHRpb25zO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIHJldHVybiBodG1sYDxkaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJzXCI+XG4gICAgICAgICAgPHNsb3QgbmFtZT1cInRpdGxlXCIgY2xhc3M9XCJ0aXRsZVwiPjwvc2xvdD5cbiAgICAgICAgICA8Z3Ytb3B0aW9uIHNtYWxsIC5vcHRpb25zPVwiJHt0aGlzLl9jb250ZXh0dWFsT3B0aW9uc31cIiBAZ3Ytb3B0aW9uOnNlbGVjdD1cIiR7dGhpcy5fb25DbGlja31cIiAudmFsdWU9XCIke3RoaXMudmFsdWV9XCI+PC9ndi1vcHRpb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8c2xvdCBuYW1lPVwiY29udGVudFwiPjwvc2xvdD5cbiAgICA8L2Rpdj5gO1xuICB9XG59XG5cbndpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmUoJ2d2LXRhYnMnLCBHdlRhYnMpO1xuIl19
|
|
178
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL29yZ2FuaXNtcy9ndi10YWJzLmpzIl0sIm5hbWVzIjpbImNzcyIsIkxpdEVsZW1lbnQiLCJodG1sIiwiZGlzcGF0Y2hDdXN0b21FdmVudCIsIkd2VGFicyIsInByb3BlcnRpZXMiLCJvcHRpb25zIiwidHlwZSIsIkFycmF5IiwiX29wdGlvbnMiLCJhdHRyaWJ1dGUiLCJ2YWx1ZSIsIlN0cmluZyIsInJlZmxlY3QiLCJ2YWxpZGF0b3IiLCJGdW5jdGlvbiIsImRpc2FibGVkIiwiQm9vbGVhbiIsInNtYWxsIiwidHJ1bmNhdGUiLCJzdHlsZXMiLCJfZ2V0Q29udGVudCIsImNvbnRlbnQiLCJzaGFkb3dSb290IiwicXVlcnlTZWxlY3RvciIsImFzc2lnbmVkTm9kZXMiLCJmaXJzdFVwZGF0ZWQiLCJsZW5ndGgiLCJpZCIsImlzQXJyYXkiLCJtYXAiLCJvcHRpb24iLCJ0aXRsZSIsInVwZGF0ZWQiLCJmb3JFYWNoIiwiYyIsImNsYXNzTGlzdCIsInJlbW92ZSIsInRhcmdldCIsImFkZCIsIl9jaGFuZ2VUYWIiLCJmcm9tIiwidG8iLCJfb25DbGljayIsImRldGFpbCIsImZpbmQiLCJlIiwiY29udGFpbnMiLCJ0aGVuIiwiY2F0Y2giLCJfY29udGV4dHVhbE9wdGlvbnMiLCJsYWJlbCIsInN1YnN0cmluZyIsInJlbmRlciIsIndpbmRvdyIsImN1c3RvbUVsZW1lbnRzIiwiZGVmaW5lIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxHQUFULEVBQWNDLFVBQWQsRUFBMEJDLElBQTFCLFFBQXNDLEtBQXRDO0FBQ0EsT0FBTyx3QkFBUDtBQUNBLFNBQVNDLG1CQUFULFFBQW9DLGVBQXBDO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNB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Iiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAxNSBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7IGNzcywgTGl0RWxlbWVudCwgaHRtbCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgJy4uL21vbGVjdWxlcy9ndi1vcHRpb24nO1xuaW1wb3J0IHsgZGlzcGF0Y2hDdXN0b21FdmVudCB9IGZyb20gJy4uL2xpYi9ldmVudHMnO1xuXG4vKipcbiAqIFRhYnMgY29tcG9uZW50XG4gKlxuICogKiAjIyBEZXRhaWxzXG4gKiAqIFRoaXMgY29tcG9uZW50IHVzZSBndi1vcHRpb24gY29tcG9uZW50IHRvIGdlbmVyYXRlIHRhYnMuXG4gKlxuICogQGF0dHIge0FycmF5PGlkOiBzdHJpbmcgfCB7aWQsIHRpdGxlPywgaWNvbj8sIGFjdGl2ZT8sIGRlc2NyaXB0aW9uPywgbGFiZWw/fT59IG9wdGlvbnMgLSBBbiBhcnJheSBvZiBvcHRpb25zIGZvciBndi1vcHRpb24gc3ViIGNvbXBvbmVudFxuICogQHNsb3QgY29udGVudCAtIExpc3Qgb2YgZWxlbWVudHMgZm9yIHRhYnMgY29udGVudC4gU2hvdWxkIGhhdmUgYW4gaWQgcmVsYXRlZCB0byBvcHRpb25zLlxuICpcbiAqIEBhdHRyIHtTdHJpbmd9IHZhbHVlIC0gdGhlIG9wZW5lZCB0YWIgaWRcbiAqIEBhdHRyIHtCb29sZWFufSBkaXNhYmxlZCAtIHRydWUgaWYgZGlzYWJsZWRcbiAqIEBhdHRyIHtCb29sZWFufSBzbWFsbCAtIHRydWUgaWYgeW91IHdhbnQgZGlzcGxheSB0YWJzIGJlbG93IG9mIHRpdGxlXG4gKiBAYXR0ciB7Qm9vbGVhbn0gdHJ1bmNhdGUgLSB0cnVlIGlmIHlvdSB3YW50IHRydW5jYXRlIHRhYnMgdGl0bGVcbiAqIEBhdHRyIHtGdW5jdGlvbn0gdmFsaWRhdG9yIC0gYSBmdW5jdGlvbiB0aGF0J3MgY2FsbHMgd2hlbiB1c2VyIGNoYW5nZSB0YWIsIHRoaXMgaXMgdXNlZnVsIHRvIHZhbGlkYXRlIHRhYiBjaGFuZ2UuXG4gKlxuICogQGNzc3Byb3Age0xlbmd0aH0gWy0tZ3YtdGFicy1vcHRpb25zLS1tPTBdIC0gVGFicyBvcHRpb25zIG1hcmdpblxuICovXG5leHBvcnQgY2xhc3MgR3ZUYWJzIGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHN0YXRpYyBnZXQgcHJvcGVydGllcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgb3B0aW9uczogeyB0eXBlOiBBcnJheSB9LFxuICAgICAgX29wdGlvbnM6IHsgdHlwZTogQXJyYXksIGF0dHJpYnV0ZTogZmFsc2UgfSxcbiAgICAgIHZhbHVlOiB7IHR5cGU6IFN0cmluZywgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgdmFsaWRhdG9yOiB7IHR5cGU6IEZ1bmN0aW9uIH0sXG4gICAgICBkaXNhYmxlZDogeyB0eXBlOiBCb29sZWFuIH0sXG4gICAgICBzbWFsbDogeyB0eXBlOiBCb29sZWFuIH0sXG4gICAgICB0cnVuY2F0ZTogeyB0eXBlOiBCb29sZWFuIH0sXG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBnZXQgc3R5bGVzKCkge1xuICAgIHJldHVybiBbXG4gICAgICAvLyBsYW5ndWFnZT1jc3NcbiAgICAgIGNzc2BcbiAgICAgICAgOmhvc3Qge1xuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIH1cblxuICAgICAgICA6OnNsb3R0ZWQoW3Nsb3Q9J2NvbnRlbnQnXSkge1xuICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDM1MG1zIGVhc2UtaW4tb3V0O1xuICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgbGVmdDogLTk5OTlweDtcbiAgICAgICAgICB0b3A6IC05OTk5cHg7XG4gICAgICAgIH1cblxuICAgICAgICA6OnNsb3R0ZWQoW3Nsb3Q9J2NvbnRlbnQnXS5jdXJyZW50KSB7XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIC5oZWFkZXIge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkOWQ5ZDk7XG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgfVxuXG4gICAgICAgIC50aXRsZSB7XG4gICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAuYWN0aW9ucyB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLnRhYnMge1xuICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICAgIC0tZ3Ytb3B0aW9uLS1iZHJzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgOmhvc3QoW3NtYWxsXSkgLnRhYnMge1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIH1cblxuICAgICAgICA6aG9zdChbc21hbGxdKSBndi1vcHRpb24ge1xuICAgICAgICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgZ3Ytb3B0aW9uIHtcbiAgICAgICAgICBtYXJnaW46IHZhcigtLWd2LXRhYnMtb3B0aW9ucy0tbSwgMCk7XG4gICAgICAgIH1cblxuICAgICAgICA6OnNsb3R0ZWQoZ3YtYnV0dG9uKSB7XG4gICAgICAgICAgcGFkZGluZy1ib3R0b206IDJweDtcbiAgICAgICAgfVxuICAgICAgYCxcbiAgICBdO1xuICB9XG5cbiAgX2dldENvbnRlbnQoKSB7XG4gICAgY29uc3QgY29udGVudCA9IHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdzbG90W25hbWU9XCJjb250ZW50XCJdJyk7XG4gICAgcmV0dXJuIGNvbnRlbnQuYXNzaWduZWROb2RlcygpO1xuICB9XG5cbiAgZmlyc3RVcGRhdGVkKCkge1xuICAgIGlmICh0aGlzLnZhbHVlID09IG51bGwgJiYgdGhpcy5vcHRpb25zICE9IG51bGwgJiYgdGhpcy5vcHRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLm9wdGlvbnNbMF0uaWQ7XG4gICAgfVxuICB9XG5cbiAgc2V0IG9wdGlvbnMob3B0aW9ucykge1xuICAgIGlmIChvcHRpb25zICYmIEFycmF5LmlzQXJyYXkob3B0aW9ucykpIHtcbiAgICAgIHRoaXMuX29wdGlvbnMgPSBvcHRpb25zLm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9uID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIHJldHVybiB7IGlkOiBvcHRpb24sIHRpdGxlOiBvcHRpb24gfTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygb3B0aW9uID09PSAnb2JqZWN0JyAmJiBvcHRpb24udGl0bGUgPT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybiB7IGlkOiBvcHRpb24uaWQsIHRpdGxlOiBvcHRpb24uaWQgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3B0aW9uO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IG9wdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX29wdGlvbnM7XG4gIH1cblxuICB1cGRhdGVkKCkge1xuICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLl9nZXRDb250ZW50KCk7XG4gICAgY29udGVudC5mb3JFYWNoKChjKSA9PiBjLmNsYXNzTGlzdC5yZW1vdmUoJ2N1cnJlbnQnKSk7XG4gICAgaWYgKHRoaXMudmFsdWUpIHtcbiAgICAgIGNvbnN0IHRhcmdldCA9IHRoaXMucXVlcnlTZWxlY3RvcihgIyR7dGhpcy52YWx1ZX1gKTtcbiAgICAgIGlmICh0YXJnZXQpIHtcbiAgICAgICAgdGFyZ2V0LmNsYXNzTGlzdC5hZGQoJ2N1cnJlbnQnKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29udGVudFswXS5jbGFzc0xpc3QuYWRkKCdjdXJyZW50Jyk7XG4gICAgfVxuICB9XG5cbiAgX2NoYW5nZVRhYihmcm9tLCBjb250ZW50LCB2YWx1ZSkge1xuICAgIGZyb20uY2xhc3NMaXN0LnJlbW92ZSgnY3VycmVudCcpO1xuICAgIGNvbnRlbnQuY2xhc3NMaXN0LmFkZCgnY3VycmVudCcpO1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICBkaXNwYXRjaEN1c3RvbUV2ZW50KHRoaXMsICdjaGFuZ2UnLCB7IHZhbHVlLCBmcm9tOiBmcm9tLmlkLCB0bzogY29udGVudC5pZCB9KTtcbiAgfVxuXG4gIF9vbkNsaWNrKHsgZGV0YWlsIH0pIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIGNvbnN0IGZyb20gPSB0aGlzLl9nZXRDb250ZW50KCkuZmluZCgoZSkgPT4gZS5jbGFzc0xpc3QuY29udGFpbnMoJ2N1cnJlbnQnKSk7XG4gICAgICBjb25zdCBjb250ZW50ID0gdGhpcy5xdWVyeVNlbGVjdG9yKGAjJHtkZXRhaWwuaWR9YCk7XG4gICAgICB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignZ3Ytb3B0aW9uJykudmFsdWUgPSBmcm9tLmlkO1xuICAgICAgaWYgKHRoaXMudmFsaWRhdG9yKSB7XG4gICAgICAgIHRoaXMudmFsaWRhdG9yKHsgZnJvbTogZnJvbS5pZCwgdG86IGNvbnRlbnQuaWQgfSlcbiAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9jaGFuZ2VUYWIoZnJvbSwgY29udGVudCwgZGV0YWlsLmlkKTtcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5jYXRjaCgoKSA9PiB7fSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9jaGFuZ2VUYWIoZnJvbSwgY29udGVudCwgZGV0YWlsLmlkKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXQgX2NvbnRleHR1YWxPcHRpb25zKCkge1xuICAgIGlmICh0aGlzLnRydW5jYXRlKSB7XG4gICAgICByZXR1cm4gdGhpcy5vcHRpb25zLm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnZhbHVlICE9PSBvcHRpb24uaWQpIHtcbiAgICAgICAgICBjb25zdCBsYWJlbCA9IG9wdGlvbi5sYWJlbCB8fCBvcHRpb24udGl0bGU7XG4gICAgICAgICAgcmV0dXJuIHsgLi4ub3B0aW9uLCBsYWJlbDogbGFiZWwuc3Vic3RyaW5nKDAsIDEpIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9wdGlvbjtcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5vcHRpb25zO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIHJldHVybiBodG1sYDxkaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJzXCI+XG4gICAgICAgICAgPHNsb3QgbmFtZT1cInRpdGxlXCIgY2xhc3M9XCJ0aXRsZVwiPjwvc2xvdD5cbiAgICAgICAgICA8Z3Ytb3B0aW9uIHNtYWxsIC5vcHRpb25zPVwiJHt0aGlzLl9jb250ZXh0dWFsT3B0aW9uc31cIiBAZ3Ytb3B0aW9uOnNlbGVjdD1cIiR7dGhpcy5fb25DbGlja31cIiAudmFsdWU9XCIke3RoaXMudmFsdWV9XCI+PC9ndi1vcHRpb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8c2xvdCBuYW1lPVwiY29udGVudFwiPjwvc2xvdD5cbiAgICA8L2Rpdj5gO1xuICB9XG59XG5cbndpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmUoJ2d2LXRhYnMnLCBHdlRhYnMpO1xuIl19
|
|
@@ -13,10 +13,10 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import { LitElement, html, css } from 'lit
|
|
16
|
+
import { LitElement, html, css } from 'lit';
|
|
17
17
|
import '../molecules/gv-nav';
|
|
18
|
-
import { repeat } from 'lit
|
|
19
|
-
import { classMap } from 'lit
|
|
18
|
+
import { repeat } from 'lit/directives/repeat';
|
|
19
|
+
import { classMap } from 'lit/directives/class-map';
|
|
20
20
|
import { isSameRoutes } from '../lib/utils';
|
|
21
21
|
/**
|
|
22
22
|
* User menu
|
|
@@ -146,4 +146,4 @@ export class GvUserMenu extends LitElement {
|
|
|
146
146
|
|
|
147
147
|
}
|
|
148
148
|
window.customElements.define('gv-user-menu', GvUserMenu);
|
|
149
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL29yZ2FuaXNtcy9ndi11c2VyLW1lbnUuanMiXSwibmFtZXMiOlsiTGl0RWxlbWVudCIsImh0bWwiLCJjc3MiLCJyZXBlYXQiLCJjbGFzc01hcCIsImlzU2FtZVJvdXRlcyIsIkd2VXNlck1lbnUiLCJwcm9wZXJ0aWVzIiwiYXZhdGFyIiwidHlwZSIsIlN0cmluZyIsInJvdXRlcyIsIkFycmF5IiwiX3JvdXRlcyIsImF0dHJpYnV0ZSIsIl9pc0Nsb3NlZCIsIkJvb2xlYW4iLCJ1c2VybmFtZSIsInN0eWxlcyIsImNvbnN0cnVjdG9yIiwiX29uQ2xpY2siLCJlIiwicHJldmVudERlZmF1bHQiLCJfb25Nb3VzZUxlYXZlIiwiX29uU2VsZWN0IiwiX2hhc09uZUl0ZW0iLCJsZW5ndGgiLCJjYW5kaWRhdGUiLCJQcm9taXNlIiwicmVzb2x2ZSIsInRoZW4iLCJjYW5kaWRhdGVzIiwiYWxsIiwiZnV0dXJlUm91dGVzIiwiZmlsdGVyIiwiciIsIl9yZW5kZXJGaXJzdEl0ZW0iLCJmaXJzdEl0ZW0iLCJpY29uIiwicGF0aCIsInRpdGxlIiwicmVuZGVyIiwiY2xhc3NlcyIsImNsb3NlZCIsInJvdXRlIiwiaW5kZXgiLCJfcmVuZGVySXRlbSIsImNoaWxkUm91dGUiLCJzZXBhcmF0b3IiLCJhY3RpdmUiLCJzdHlsZSIsInRhcmdldCIsIndpbmRvdyIsImN1c3RvbUVsZW1lbnRzIiwiZGVmaW5lIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxVQUFULEVBQXFCQyxJQUFyQixFQUEyQkMsR0FBM0IsUUFBc0MsYUFBdEM7QUFDQSxPQUFPLHFCQUFQO0FBQ0EsU0FBU0MsTUFBVCxRQUF1Qiw0QkFBdkI7QUFDQSxTQUFTQyxRQUFULFFBQXlCLCtCQUF6QjtBQUNBLFNBQVND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QUFDSyxNQUFOLEdBQWUsUUFBZixHQUEwQixFQUR0RixZQUVBTCxLQUFLLENBQUNNLEtBRk4sc0JBS0VOLEtBQUssQ0FBQ04sSUFMUixZQU1FTSxLQUFLLENBQUNMLElBTlIsYUFPR0ssS0FBSyxDQUFDSixLQVBULGNBUUlJLEtBQUssQ0FBQ08sTUFSVixhQVNFLEtBQUszQixTQVRQLG9CQUFYO0FBWUQ7QUFDRjs7QUF6UXdDO0FBNFEzQzRCLE1BQU0sQ0FBQ0MsY0FBUCxDQUFzQkMsTUFBdEIsQ0FBNkIsY0FBN0IsRUFBNkNoRCxVQUE3QyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBMaXRFbGVtZW50LCBodG1sLCBjc3MgfSBmcm9tICdsaXQtZWxlbWVudCc7XG5pbXBvcnQgJy4uL21vbGVjdWxlcy9ndi1uYXYnO1xuaW1wb3J0IHsgcmVwZWF0IH0gZnJvbSAnbGl0LWh0bWwvZGlyZWN0aXZlcy9yZXBlYXQnO1xuaW1wb3J0IHsgY2xhc3NNYXAgfSBmcm9tICdsaXQtaHRtbC9kaXJlY3RpdmVzL2NsYXNzLW1hcCc7XG5pbXBvcnQgeyBpc1NhbWVSb3V0ZXMgfSBmcm9tICcuLi9saWIvdXRpbHMnO1xuXG4vKipcbiAqIFVzZXIgbWVudVxuICpcbiAqICMjIERldGFpbHNcbiAqICogaGFzIEB0aGVtZSBmYWNldFxuICpcbiAqIEBmaXJlcyBndi1saW5rOmNsaWNrIC0gQ3VzdG9tIGV2ZW50IHdoZW4gbmF2IGxpbmsgY2xpY2tcbiAqXG4gKiBAYXR0ciB7QXJyYXl9IHJvdXRlcyAtIGRlZmluaXRpb24gb2YgdXNlciByb3V0ZXMgW3tpY29uOiBTdHJpbmcsIHBhdGg6IFN0cmluZywgdGl0bGU6IFByb21pc2U8U3RyaW5nPiwgYWN0aXZlOiBCb29sZWFuLCByb3V0ZXM6IEFycmF5PGFueT5dXG4gKiBAYXR0ciB7U3RyaW5nfSB1c2VybmFtZSAtIG5hbWUgb2YgdGhlIHVzZXJcbiAqIEBhdHRyIHtTdHJpbmd9IGF2YXRhciAtIHVybCBvZiB0aGUgdXNlciBhdmF0YXJcbiAqXG4gKiBAY3NzcHJvcCB7Q29sb3J9IFstLWd2LXVzZXItbWVudS0tYz12YXIoLS1ndi10aGVtZS1mb250LWNvbG9yLWRhcmssICMyNjI2MjYpXSAtIENvbG9yXG4gKiBAY3NzcHJvcCB7Q29sb3J9IFstLWd2LXVzZXItbWVudS1ob3Zlci0tYz12YXIoLS1ndi10aGVtZS1jb2xvci1kYXJrLCAjMjg0NDRmKV0gLSBIb3ZlciBjb2xvclxuICogQGNzc3Byb3Age0NvbG9yfSBbLS1ndi11c2VyLW1lbnUtLWJnYz10cmFuc3BhcmVudF0gLSBCYWNrZ3JvdW5kIGNvbG9yXG4gKiBAY3NzcHJvcCB7Q29sb3J9IFstLWd2LXVzZXItbWVudS1saXN0LS1iZ2M9dmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvci1saWdodGVzdCwgI2ZmZmZmZildIC0gTGlzdCBiYWNrZ3JvdW5kIGNvbG9yXG4gKiBAY3NzcHJvcCB7Q29sb3J9IFstLWd2LXVzZXItbWVudS1ob3Zlci0tYmdjPXZhcigtLWd2LXRoZW1lLWNvbG9yLWxpZ2h0LCAjODZjM2QwKV0gLSBIb3ZlciBiYWNrZ3JvdW5kIGNvbG9yXG4gKiBAY3NzcHJvcCB7Q29sb3J9IFstLWd2LXVzZXItbWVudS0tYmRjPWxpZ2h0Z3JleV0gLSBCb3JkZXIgY29sb3JcbiAqIEBjc3Nwcm9wIHtTdHJpbmd9IFstLWd2LXVzZXItbWVudS0tdHNoPW5vbmVdIC0gVGV4dCBzaGFkb3dcbiAqIEBjc3Nwcm9wIHtDb2xvcn0gWy0tZ3YtdXNlci1tZW51LWljb24tLWM9dmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvci1kYXJrZXN0LCAjMDAwMDAwKV0gLSBJY29uIGNvbG9yXG4gKiBAY3NzcHJvcCB7TGVuZ3RofSBbLS1ndi11c2VyLW1lbnUtaWNvbi0tcz0xNnB4XSAtIEhlaWdodCBhbmQgaWNvbiB3aWR0aFxuICogQGNzc3Byb3Age0xlbmd0aH0gWy0tZ3YtdXNlci1tZW51LWxpbmstYS0tcGg9MHB4XSAtIExpbmsgaG9yaXpvbnRhbCBwYWRkaW5nXG4gKiBAY3NzcHJvcCB7U3RyaW5nfSBbLS1ndi11c2VyLW1lbnUtbGluay0tdGE9cmlnaHRdIC0gVGV4dCBhbGlnblxuICovXG5leHBvcnQgY2xhc3MgR3ZVc2VyTWVudSBleHRlbmRzIExpdEVsZW1lbnQge1xuICBzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGF2YXRhcjogeyB0eXBlOiBTdHJpbmcgfSxcbiAgICAgIHJvdXRlczogeyB0eXBlOiBBcnJheSB9LFxuICAgICAgX3JvdXRlczogeyB0eXBlOiBBcnJheSwgYXR0cmlidXRlOiBmYWxzZSB9LFxuICAgICAgX2lzQ2xvc2VkOiB7IHR5cGU6IEJvb2xlYW4sIGF0dHJpYnV0ZTogZmFsc2UgfSxcbiAgICAgIHVzZXJuYW1lOiB7IHR5cGU6IFN0cmluZyB9LFxuICAgIH07XG4gIH1cblxuICBzdGF0aWMgZ2V0IHN0eWxlcygpIHtcbiAgICByZXR1cm4gW1xuICAgICAgLy8gbGFuZ3VhZ2U9Y3NzXG4gICAgICBjc3NgXG4gICAgICAgIDpob3N0IHtcbiAgICAgICAgICAtLWJkYzogdmFyKC0tZ3YtdXNlci1tZW51LS1iZGMsIGxpZ2h0Z3JleSk7XG4gICAgICAgICAgLS1jOiB2YXIoLS1ndi11c2VyLW1lbnUtLWMsIHZhcigtLWd2LXRoZW1lLWZvbnQtY29sb3ItZGFyaywgIzI2MjYyNikpO1xuICAgICAgICAgIC0tYmdjOiB2YXIoLS1ndi11c2VyLW1lbnUtLWJnYywgdHJhbnNwYXJlbnQpO1xuICAgICAgICAgIC0tbGlzdC1iZ2M6IHZhcigtLWd2LXVzZXItbWVudS1saXN0LS1iZ2MsIHZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3ItbGlnaHRlc3QsICNmZmZmZmYpKTtcbiAgICAgICAgICAtLWhvdmVyLWJnYzogdmFyKC0tZ3YtdXNlci1tZW51LWhvdmVyLS1iZ2MsIHZhcigtLWd2LXRoZW1lLWNvbG9yLWxpZ2h0LCAjODZjM2QwKSk7XG4gICAgICAgICAgLS1ndi1saW5rLWFjdGl2ZS0tYzogdmFyKC0tZ3YtdXNlci1tZW51LWhvdmVyLS1jLCB2YXIoLS1ndi10aGVtZS1jb2xvci1kYXJrLCAjMjg0NDRmKSk7XG4gICAgICAgICAgLS1ndi1pY29uLS1jOiB2YXIoLS1ndi11c2VyLW1lbnUtaWNvbi0tYywgdmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvci1kYXJrZXN0LCAjMDAwMDAwKSk7XG4gICAgICAgICAgLS1ndi1pY29uLS1zOiB2YXIoLS1ndi11c2VyLW1lbnUtaWNvbi0tcywgMTZweCk7XG4gICAgICAgICAgLS1ndi1saW5rLWEtLXBoOiB2YXIoLS1ndi11c2VyLW1lbnUtbGluay1hLS1waCwgMHB4KTtcbiAgICAgICAgICAtLWd2LWxpbmstLXRhOiB2YXIoLS1ndi11c2VyLW1lbnUtbGluay0tdGEsIHJpZ2h0KTtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC51c2VyLW1lbnUge1xuICAgICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC51c2VyLW1lbnVfX3RpdGxlIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZ2MpO1xuICAgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tYmRjKTtcbiAgICAgICAgICBjb2xvcjogdmFyKC0tYyk7XG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiA0MHB4O1xuICAgICAgICAgIHBhZGRpbmc6IDhweCAyNHB4O1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgIG1pbi13aWR0aDogMTc1cHg7XG4gICAgICAgICAgdGV4dC1zaGFkb3c6IHZhcigtLWd2LXVzZXItbWVudS0tdHNoLCBub25lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIDo6c2xvdHRlZCgqKSB7XG4gICAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLnVzZXItbWVudV9fdGl0bGUubm8tdXNlciB7XG4gICAgICAgICAgcGFkZGluZzogNXB4IDI0cHg7XG4gICAgICAgIH1cblxuICAgICAgICAudXNlci1tZW51X190aXRsZSBndi1saW5rIHtcbiAgICAgICAgICAtLWd2LWxpbmstYS0tcGg6IDA7XG4gICAgICAgICAgLS1ndi1saW5rLWEtLXB2OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLnVzZXItbWVudV9fdGl0bGUgc3BhbiB7XG4gICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgbWFyZ2luOiAwIDAuNHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC51c2VyLW1lbnVfX3RpdGxlID4gZ3YtaWNvbiB7XG4gICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZSAwcztcbiAgICAgICAgfVxuXG4gICAgICAgIC51c2VyLW1lbnVfX2xpc3Qge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1saXN0LWJnYyk7XG4gICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UgMHM7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAudXNlci1tZW51X19saXN0X19pdGVtIHtcbiAgICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWJkYyk7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjVzIGVhc2U7XG4gICAgICAgICAgcGFkZGluZzogMnB4IDMwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAudXNlci1tZW51X19saXN0X19pdGVtOmxhc3QtY2hpbGQge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1iZGMpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnVzZXItbWVudV9fbGlzdF9faXRlbTpob3ZlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taG92ZXItYmdjKTtcbiAgICAgICAgICBib3JkZXItbGVmdDogMXB4IGRvdHRlZCB2YXIoLS1iZGMpO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIH1cblxuICAgICAgICBndi1saW5rIHtcbiAgICAgICAgICBtYXJnaW46IDBweDtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgLnNlcGFyYXRvciB7XG4gICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJkYyk7XG4gICAgICAgIH1cblxuICAgICAgICAuYWN0aXZlIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ndi10aGVtZS1uZXV0cmFsLWNvbG9yLWRhcmssICNkOWQ5ZDkpO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqIGZvciBhbmltYXRpb25zICovXG4gICAgICAgIC51c2VyLW1lbnVfX2xpc3Qge1xuICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCUpO1xuICAgICAgICAgIHotaW5kZXg6IDEwMDtcbiAgICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwcywgMHMsIDAuMnM7XG4gICAgICAgIH1cblxuICAgICAgICAudXNlci1tZW51X19saXN0X19ncm91cCB7XG4gICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJkYyk7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvci1saWdodCwgI2VmZWZlZik7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLnVzZXItbWVudV9fbGlzdF9fZ3JvdXBfX3RpdGxlIHtcbiAgICAgICAgICBmb250LXNpemU6IHNtYWxsO1xuICAgICAgICAgIGNvbG9yOiB2YXIoLS1ndi10aGVtZS1jb2xvci1kYXJrZXIsICMzODNlM2YpO1xuICAgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tYmRjKTtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAuY2xvc2VkIC51c2VyLW1lbnVfX2xpc3Qge1xuICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMmVtKTtcbiAgICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgfVxuXG4gICAgICAgIGd2LWljb24ge1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNsb3NlZCBndi1pY29uIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTgwZGVnKTtcbiAgICAgICAgfVxuICAgICAgYCxcbiAgICBdO1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLl9pc0Nsb3NlZCA9IHRydWU7XG4gIH1cblxuICBfb25DbGljayhlKSB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuX2lzQ2xvc2VkID0gIXRoaXMuX2lzQ2xvc2VkO1xuICB9XG5cbiAgX29uTW91c2VMZWF2ZSgpIHtcbiAgICB0aGlzLl9pc0Nsb3NlZCA9IHRydWU7XG4gIH1cblxuICBfb25TZWxlY3QoKSB7XG4gICAgdGhpcy5faXNDbG9zZWQgPSB0cnVlO1xuICB9XG5cbiAgX2hhc09uZUl0ZW0oKSB7XG4gICAgcmV0dXJuIHRoaXMudXNlcm5hbWUgPT0gbnVsbCAmJiB0aGlzLl9yb3V0ZXMgJiYgdGhpcy5fcm91dGVzLmxlbmd0aCA9PT0gMTtcbiAgfVxuXG4gIHNldCByb3V0ZXMoY2FuZGlkYXRlKSB7XG4gICAgaWYgKGNhbmRpZGF0ZSkge1xuICAgICAgUHJvbWlzZS5yZXNvbHZlKGNhbmRpZGF0ZSkudGhlbigoY2FuZGlkYXRlcykgPT4ge1xuICAgICAgICBpZiAoY2FuZGlkYXRlcykge1xuICAgICAgICAgIFByb21pc2UuYWxsKGNhbmRpZGF0ZXMpLnRoZW4oKGZ1dHVyZVJvdXRlcykgPT4ge1xuICAgICAgICAgICAgaWYgKCFpc1NhbWVSb3V0ZXModGhpcy5fcm91dGVzLCBmdXR1cmVSb3V0ZXMpKSB7XG4gICAgICAgICAgICAgIHRoaXMuX3JvdXRlcyA9IGZ1dHVyZVJvdXRlcy5maWx0ZXIoKHIpID0+IHIgIT0gbnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5fcm91dGVzID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3JvdXRlcyA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgX3JlbmRlckZpcnN0SXRlbSgpIHtcbiAgICBpZiAodGhpcy5fcm91dGVzKSB7XG4gICAgICBpZiAodGhpcy51c2VybmFtZSkge1xuICAgICAgICByZXR1cm4gaHRtbGA8bGkgY2xhc3M9XCJ1c2VyLW1lbnVfX3RpdGxlXCIgQGNsaWNrPSR7dGhpcy5fb25DbGlja30+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8c3Bhbj4ke3RoaXMudXNlcm5hbWV9PC9zcGFuPlxuICAgICAgICAgIDxndi1pY29uIHNoYXBlPVwiZGVzaWduOnRyaWFuZ2xlXCI+PC9ndi1pY29uPlxuICAgICAgICA8L2xpPmA7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuX2hhc09uZUl0ZW0oKSkge1xuICAgICAgICBjb25zdCBmaXJzdEl0ZW0gPSB0aGlzLl9yb3V0ZXNbMF07XG4gICAgICAgIHJldHVybiBodG1sYDxsaSBjbGFzcz1cInVzZXItbWVudV9fdGl0bGUgbm8tdXNlclwiIEBjbGljaz0ke3RoaXMuX29uQ2xpY2t9PlxuICAgICAgICAgIDxndi1saW5rIC5pY29uPVwiJHtmaXJzdEl0ZW0uaWNvbn1cIiAucGF0aD1cIiR7Zmlyc3RJdGVtLnBhdGh9XCIgLnRpdGxlPVwiJHtmaXJzdEl0ZW0udGl0bGV9XCIgQGNsaWNrPSR7dGhpcy5fb25TZWxlY3R9PjwvZ3YtbGluaz5cbiAgICAgICAgPC9saT5gO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaHRtbGBgO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IGNsYXNzZXMgPSB7IGNsb3NlZDogdGhpcy5faXNDbG9zZWQgfTtcbiAgICBpZiAodGhpcy5fcm91dGVzKSB7XG4gICAgICByZXR1cm4gaHRtbGBcbiAgICAgICAgPG5hdiBjbGFzcz1cIiR7Y2xhc3NNYXAoY2xhc3Nlcyl9XCI+XG4gICAgICAgICAgPHVsIGNsYXNzPVwidXNlci1tZW51XCIgQG1vdXNlbGVhdmU9JHt0aGlzLl9vbk1vdXNlTGVhdmV9PlxuICAgICAgICAgICAgJHt0aGlzLl9yZW5kZXJGaXJzdEl0ZW0oKX1cblxuICAgICAgICAgICAgPGxpIGNsYXNzPVwidXNlci1tZW51X19jb250ZW50XCI+XG4gICAgICAgICAgICAgIDx1bCBjbGFzcz1cInVzZXItbWVudV9fbGlzdFwiPlxuICAgICAgICAgICAgICAgICR7cmVwZWF0KFxuICAgICAgICAgICAgICAgICAgdGhpcy5fcm91dGVzLFxuICAgICAgICAgICAgICAgICAgKHJvdXRlKSA9PiByb3V0ZSxcbiAgICAgICAgICAgICAgICAgIChyb3V0ZSwgaW5kZXgpID0+IGh0bWxgICR7dGhpcy5faGFzT25lSXRlbSgpID8gaHRtbGBgIDogdGhpcy5fcmVuZGVySXRlbShyb3V0ZSl9IGAsXG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9uYXY+XG4gICAgICBgO1xuICAgIH1cbiAgICByZXR1cm4gaHRtbGBgO1xuICB9XG5cbiAgX3JlbmRlckl0ZW0ocm91dGUpIHtcbiAgICBpZiAocm91dGUucm91dGVzKSB7XG4gICAgICByZXR1cm4gaHRtbGA8dWwgY2xhc3M9XCJ1c2VyLW1lbnVfX2xpc3RfX2dyb3VwXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidXNlci1tZW51X19saXN0X19ncm91cF9fdGl0bGVcIj4ke3JvdXRlLnRpdGxlfTwvc3Bhbj5cbiAgICAgICAgJHtyZXBlYXQoXG4gICAgICAgICAgcm91dGUucm91dGVzLFxuICAgICAgICAgIChjaGlsZFJvdXRlKSA9PiBjaGlsZFJvdXRlLFxuICAgICAgICAgIChjaGlsZFJvdXRlLCBpbmRleCkgPT4gaHRtbGAgJHt0aGlzLl9yZW5kZXJJdGVtKGNoaWxkUm91dGUpfSBgLFxuICAgICAgICApfVxuICAgICAgPC91bD5gO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gaHRtbGA8bGlcbiAgICAgICAgY2xhc3M9XCJ1c2VyLW1lbnVfX2xpc3RfX2l0ZW0gJHtyb3V0ZS5zZXBhcmF0b3IgPyAnc2VwYXJhdG9yJyA6ICcnfSAke3JvdXRlLmFjdGl2ZSA/ICdhY3RpdmUnIDogJyd9XCJcbiAgICAgICAgc3R5bGU9XCIke3JvdXRlLnN0eWxlfVwiXG4gICAgICA+XG4gICAgICAgIDxndi1saW5rXG4gICAgICAgICAgLmljb249XCIke3JvdXRlLmljb259XCJcbiAgICAgICAgICAucGF0aD1cIiR7cm91dGUucGF0aH1cIlxuICAgICAgICAgIC50aXRsZT1cIiR7cm91dGUudGl0bGV9XCJcbiAgICAgICAgICAudGFyZ2V0PVwiJHtyb3V0ZS50YXJnZXR9XCJcbiAgICAgICAgICBAY2xpY2s9JHt0aGlzLl9vblNlbGVjdH1cbiAgICAgICAgPjwvZ3YtbGluaz5cbiAgICAgIDwvbGk+YDtcbiAgICB9XG4gIH1cbn1cblxud2luZG93LmN1c3RvbUVsZW1lbnRzLmRlZmluZSgnZ3YtdXNlci1tZW51JywgR3ZVc2VyTWVudSk7XG4iXX0=
|
|
149
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL29yZ2FuaXNtcy9ndi11c2VyLW1lbnUuanMiXSwibmFtZXMiOlsiTGl0RWxlbWVudCIsImh0bWwiLCJjc3MiLCJyZXBlYXQiLCJjbGFzc01hcCIsImlzU2FtZVJvdXRlcyIsIkd2VXNlck1lbnUiLCJwcm9wZXJ0aWVzIiwiYXZhdGFyIiwidHlwZSIsIlN0cmluZyIsInJvdXRlcyIsIkFycmF5IiwiX3JvdXRlcyIsImF0dHJpYnV0ZSIsIl9pc0Nsb3NlZCIsIkJvb2xlYW4iLCJ1c2VybmFtZSIsInN0eWxlcyIsImNvbnN0cnVjdG9yIiwiX29uQ2xpY2siLCJlIiwicHJldmVudERlZmF1bHQiLCJfb25Nb3VzZUxlYXZlIiwiX29uU2VsZWN0IiwiX2hhc09uZUl0ZW0iLCJsZW5ndGgiLCJjYW5kaWRhdGUiLCJQcm9taXNlIiwicmVzb2x2ZSIsInRoZW4iLCJjYW5kaWRhdGVzIiwiYWxsIiwiZnV0dXJlUm91dGVzIiwiZmlsdGVyIiwiciIsIl9yZW5kZXJGaXJzdEl0ZW0iLCJmaXJzdEl0ZW0iLCJpY29uIiwicGF0aCIsInRpdGxlIiwicmVuZGVyIiwiY2xhc3NlcyIsImNsb3NlZCIsInJvdXRlIiwiaW5kZXgiLCJfcmVuZGVySXRlbSIsImNoaWxkUm91dGUiLCJzZXBhcmF0b3IiLCJhY3RpdmUiLCJzdHlsZSIsInRhcmdldCIsIndpbmRvdyIsImN1c3RvbUVsZW1lbnRzIiwiZGVmaW5lIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxVQUFULEVBQXFCQyxJQUFyQixFQUEyQkMsR0FBM0IsUUFBc0MsS0FBdEM7QUFDQSxPQUFPLHFCQUFQO0FBQ0EsU0FBU0MsTUFBVCxRQUF1Qix1QkFBdkI7QUFDQSxTQUFTQyxRQUFULFFBQXlCLDBCQUF6QjtBQUNBLFNBQVNDLFlBQVQsUUFBNkIsY0FBN0I7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsT0FBTyxNQUFNQyxVQUFOLFNBQXlCTixVQUF6QixDQUFvQztBQUNwQixhQUFWTyxVQUFVLEdBQUc7QUFDdEIsV0FBTztBQUNMQyxNQUFBQSxNQUFNLEVBQUU7QUFBRUMsUUFBQUEsSUFBSSxFQUFFQztBQUFSLE9BREg7QUFFTEMsTUFBQUEsTUFBTSxFQUFFO0FBQUVGLFFBQUFBLElBQUksRUFBRUc7QUFBUixPQUZIO0FBR0xDLE1BQUFBLE9BQU8sRUFBRTtBQUFFSixRQUFBQSxJQUFJLEVBQUVHLEtBQVI7QUFBZUUsUUFBQUEsU0FBUyxFQUFFO0FBQTFCLE9BSEo7QUFJTEMsTUFBQUEsU0FBUyxFQUFFO0FBQUVOLFFBQUFBLElBQUksRUFBRU8sT0FBUjtBQUFpQkYsUUFBQUEsU0FBUyxFQUFFO0FBQTVCLE9BSk47QUFLTEcsTUFBQUEsUUFBUSxFQUFFO0FBQUVSLFFBQUFBLElBQUksRUFBRUM7QUFBUjtBQUxMLEtBQVA7QUFPRDs7QUFFZ0IsYUFBTlEsTUFBTSxHQUFHO0FBQ2xCLFdBQU8sQ0FDTDtBQUNBaEIsSUFBQUEsR0FBRyx5NEVBRkUsQ0FBUDtBQStJRDs7QUFFRGlCLEVBQUFBLFdBQVcsR0FBRztBQUNaO0FBQ0EsU0FBS0osU0FBTCxHQUFpQixJQUFqQjtBQUNEOztBQUVESyxFQUFBQSxRQUFRLENBQUNDLENBQUQsRUFBSTtBQUNWQSxJQUFBQSxDQUFDLENBQUNDLGNBQUY7QUFDQSxTQUFLUCxTQUFMLEdBQWlCLENBQUMsS0FBS0EsU0FBdkI7QUFDRDs7QUFFRFEsRUFBQUEsYUFBYSxHQUFHO0FBQ2QsU0FBS1IsU0FBTCxHQUFpQixJQUFqQjtBQUNEOztBQUVEUyxFQUFBQSxTQUFTLEdBQUc7QUFDVixTQUFLVCxTQUFMLEdBQWlCLElBQWpCO0FBQ0Q7O0FBRURVLEVBQUFBLFdBQVcsR0FBRztBQUNaLFdBQU8sS0FBS1IsUUFBTCxJQUFpQixJQUFqQixJQUF5QixLQUFLSixPQUE5QixJQUF5QyxLQUFLQSxPQUFMLENBQWFhLE1BQWIsS0FBd0IsQ0FBeEU7QUFDRDs7QUFFUyxNQUFOZixNQUFNLENBQUNnQixTQUFELEVBQVk7QUFDcEIsUUFBSUEsU0FBSixFQUFlO0FBQ2JDLE1BQUFBLE9BQU8sQ0FBQ0MsT0FBUixDQUFnQkYsU0FBaEIsRUFBMkJHLElBQTNCLENBQWlDQyxVQUFELElBQWdCO0FBQzlDLFlBQUlBLFVBQUosRUFBZ0I7QUFDZEgsVUFBQUEsT0FBTyxDQUFDSSxHQUFSLENBQVlELFVBQVosRUFBd0JELElBQXhCLENBQThCRyxZQUFELElBQWtCO0FBQzdDLGdCQUFJLENBQUM1QixZQUFZLENBQUMsS0FBS1EsT0FBTixFQUFlb0IsWUFBZixDQUFqQixFQUErQztBQUM3QyxtQkFBS3BCLE9BQUwsR0FBZW9CLFlBQVksQ0FBQ0MsTUFBYixDQUFxQkMsQ0FBRCxJQUFPQSxDQUFDLElBQUksSUFBaEMsQ0FBZjtBQUNEO0FBQ0YsV0FKRDtBQUtELFNBTkQsTUFNTztBQUNMLGVBQUt0QixPQUFMLEdBQWUsSUFBZjtBQUNEO0FBQ0YsT0FWRDtBQVdELEtBWkQsTUFZTztBQUNMLFdBQUtBLE9BQUwsR0FBZSxJQUFmO0FBQ0Q7QUFDRjs7QUFFRHVCLEVBQUFBLGdCQUFnQixHQUFHO0FBQ2pCLFFBQUksS0FBS3ZCLE9BQVQsRUFBa0I7QUFDaEIsVUFBSSxLQUFLSSxRQUFULEVBQW1CO0FBQ2pCLGVBQU9oQixJQUFJLHdDQUF1QyxLQUFLbUIsUUFBNUMsdUNBSUQsS0FBS0gsUUFKSiwyREFBWDtBQU9ELE9BUkQsTUFRTyxJQUFJLEtBQUtRLFdBQUwsRUFBSixFQUF3QjtBQUM3QixjQUFNWSxTQUFTLEdBQUcsS0FBS3hCLE9BQUwsQ0FBYSxDQUFiLENBQWxCO0FBQ0EsZUFBT1osSUFBSSxnREFBK0MsS0FBS21CLFFBQXBELHNCQUNTaUIsU0FBUyxDQUFDQyxJQURuQixZQUNtQ0QsU0FBUyxDQUFDRSxJQUQ3QyxhQUM4REYsU0FBUyxDQUFDRyxLQUR4RSxhQUN5RixLQUFLaEIsU0FEOUYsb0JBQVg7QUFHRDtBQUNGOztBQUNELFdBQU92QixJQUFJLEVBQVg7QUFDRDs7QUFFRHdDLEVBQUFBLE1BQU0sR0FBRztBQUNQLFVBQU1DLE9BQU8sR0FBRztBQUFFQyxNQUFBQSxNQUFNLEVBQUUsS0FBSzVCO0FBQWYsS0FBaEI7O0FBQ0EsUUFBSSxLQUFLRixPQUFULEVBQWtCO0FBQ2hCLGFBQU9aLElBQUksZ0JBQ0tHLFFBQVEsQ0FBQ3NDLE9BQUQsQ0FEYix5Q0FFNkIsS0FBS25CLGFBRmxDLE1BR0gsS0FBS2EsZ0JBQUwsRUFIRyxpRUFPQ2pDLE1BQU0sQ0FDTixLQUFLVSxPQURDLEVBRUwrQixLQUFELElBQVdBLEtBRkwsRUFHTixDQUFDQSxLQUFELEVBQVFDLEtBQVIsS0FBa0I1QyxJQUFJLElBQUksS0FBS3dCLFdBQUwsS0FBcUJ4QixJQUFJLEVBQXpCLEdBQThCLEtBQUs2QyxXQUFMLENBQWlCRixLQUFqQixDQUFsQyxHQUhoQixDQVBQLDRCQUFYO0FBaUJEOztBQUNELFdBQU8zQyxJQUFJLEVBQVg7QUFDRDs7QUFFRDZDLEVBQUFBLFdBQVcsQ0FBQ0YsS0FBRCxFQUFRO0FBQ2pCLFFBQUlBLEtBQUssQ0FBQ2pDLE1BQVYsRUFBa0I7QUFDaEIsYUFBT1YsSUFBSSxtRkFDcUMyQyxLQUFLLENBQUNKLEtBRDNDLFdBRVByQyxNQUFNLENBQ055QyxLQUFLLENBQUNqQyxNQURBLEVBRUxvQyxVQUFELElBQWdCQSxVQUZWLEVBR04sQ0FBQ0EsVUFBRCxFQUFhRixLQUFiLEtBQXVCNUMsSUFBSSxJQUFJLEtBQUs2QyxXQUFMLENBQWlCQyxVQUFqQixDQUFKLEdBSHJCLENBRkMsUUFBWDtBQVFELEtBVEQsTUFTTztBQUNMLGFBQU85QyxJQUFJLG9DQUNzQjJDLEtBQUssQ0FBQ0ksU0FBTixHQUFrQixXQUFsQixHQUFnQyxFQUR0RCxJQUM0REosS0FBSyxDQUFDSyxNQUFOLEdBQWUsUUFBZixHQUEwQixFQUR0RixZQUVBTCxLQUFLLENBQUNNLEtBRk4sc0JBS0VOLEtBQUssQ0FBQ04sSUFMUixZQU1FTSxLQUFLLENBQUNMLElBTlIsYUFPR0ssS0FBSyxDQUFDSixLQVBULGNBUUlJLEtBQUssQ0FBQ08sTUFSVixhQVNFLEtBQUszQixTQVRQLG9CQUFYO0FBWUQ7QUFDRjs7QUF6UXdDO0FBNFEzQzRCLE1BQU0sQ0FBQ0MsY0FBUCxDQUFzQkMsTUFBdEIsQ0FBNkIsY0FBN0IsRUFBNkNoRCxVQUE3QyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBMaXRFbGVtZW50LCBodG1sLCBjc3MgfSBmcm9tICdsaXQnO1xuaW1wb3J0ICcuLi9tb2xlY3VsZXMvZ3YtbmF2JztcbmltcG9ydCB7IHJlcGVhdCB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL3JlcGVhdCc7XG5pbXBvcnQgeyBjbGFzc01hcCB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL2NsYXNzLW1hcCc7XG5pbXBvcnQgeyBpc1NhbWVSb3V0ZXMgfSBmcm9tICcuLi9saWIvdXRpbHMnO1xuXG4vKipcbiAqIFVzZXIgbWVudVxuICpcbiAqICMjIERldGFpbHNcbiAqICogaGFzIEB0aGVtZSBmYWNldFxuICpcbiAqIEBmaXJlcyBndi1saW5rOmNsaWNrIC0gQ3VzdG9tIGV2ZW50IHdoZW4gbmF2IGxpbmsgY2xpY2tcbiAqXG4gKiBAYXR0ciB7QXJyYXl9IHJvdXRlcyAtIGRlZmluaXRpb24gb2YgdXNlciByb3V0ZXMgW3tpY29uOiBTdHJpbmcsIHBhdGg6IFN0cmluZywgdGl0bGU6IFByb21pc2U8U3RyaW5nPiwgYWN0aXZlOiBCb29sZWFuLCByb3V0ZXM6IEFycmF5PGFueT5dXG4gKiBAYXR0ciB7U3RyaW5nfSB1c2VybmFtZSAtIG5hbWUgb2YgdGhlIHVzZXJcbiAqIEBhdHRyIHtTdHJpbmd9IGF2YXRhciAtIHVybCBvZiB0aGUgdXNlciBhdmF0YXJcbiAqXG4gKiBAY3NzcHJvcCB7Q29sb3J9IFstLWd2LXVzZXItbWVudS0tYz12YXIoLS1ndi10aGVtZS1mb250LWNvbG9yLWRhcmssICMyNjI2MjYpXSAtIENvbG9yXG4gKiBAY3NzcHJvcCB7Q29sb3J9IFstLWd2LXVzZXItbWVudS1ob3Zlci0tYz12YXIoLS1ndi10aGVtZS1jb2xvci1kYXJrLCAjMjg0NDRmKV0gLSBIb3ZlciBjb2xvclxuICogQGNzc3Byb3Age0NvbG9yfSBbLS1ndi11c2VyLW1lbnUtLWJnYz10cmFuc3BhcmVudF0gLSBCYWNrZ3JvdW5kIGNvbG9yXG4gKiBAY3NzcHJvcCB7Q29sb3J9IFstLWd2LXVzZXItbWVudS1saXN0LS1iZ2M9dmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvci1saWdodGVzdCwgI2ZmZmZmZildIC0gTGlzdCBiYWNrZ3JvdW5kIGNvbG9yXG4gKiBAY3NzcHJvcCB7Q29sb3J9IFstLWd2LXVzZXItbWVudS1ob3Zlci0tYmdjPXZhcigtLWd2LXRoZW1lLWNvbG9yLWxpZ2h0LCAjODZjM2QwKV0gLSBIb3ZlciBiYWNrZ3JvdW5kIGNvbG9yXG4gKiBAY3NzcHJvcCB7Q29sb3J9IFstLWd2LXVzZXItbWVudS0tYmRjPWxpZ2h0Z3JleV0gLSBCb3JkZXIgY29sb3JcbiAqIEBjc3Nwcm9wIHtTdHJpbmd9IFstLWd2LXVzZXItbWVudS0tdHNoPW5vbmVdIC0gVGV4dCBzaGFkb3dcbiAqIEBjc3Nwcm9wIHtDb2xvcn0gWy0tZ3YtdXNlci1tZW51LWljb24tLWM9dmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvci1kYXJrZXN0LCAjMDAwMDAwKV0gLSBJY29uIGNvbG9yXG4gKiBAY3NzcHJvcCB7TGVuZ3RofSBbLS1ndi11c2VyLW1lbnUtaWNvbi0tcz0xNnB4XSAtIEhlaWdodCBhbmQgaWNvbiB3aWR0aFxuICogQGNzc3Byb3Age0xlbmd0aH0gWy0tZ3YtdXNlci1tZW51LWxpbmstYS0tcGg9MHB4XSAtIExpbmsgaG9yaXpvbnRhbCBwYWRkaW5nXG4gKiBAY3NzcHJvcCB7U3RyaW5nfSBbLS1ndi11c2VyLW1lbnUtbGluay0tdGE9cmlnaHRdIC0gVGV4dCBhbGlnblxuICovXG5leHBvcnQgY2xhc3MgR3ZVc2VyTWVudSBleHRlbmRzIExpdEVsZW1lbnQge1xuICBzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGF2YXRhcjogeyB0eXBlOiBTdHJpbmcgfSxcbiAgICAgIHJvdXRlczogeyB0eXBlOiBBcnJheSB9LFxuICAgICAgX3JvdXRlczogeyB0eXBlOiBBcnJheSwgYXR0cmlidXRlOiBmYWxzZSB9LFxuICAgICAgX2lzQ2xvc2VkOiB7IHR5cGU6IEJvb2xlYW4sIGF0dHJpYnV0ZTogZmFsc2UgfSxcbiAgICAgIHVzZXJuYW1lOiB7IHR5cGU6IFN0cmluZyB9LFxuICAgIH07XG4gIH1cblxuICBzdGF0aWMgZ2V0IHN0eWxlcygpIHtcbiAgICByZXR1cm4gW1xuICAgICAgLy8gbGFuZ3VhZ2U9Y3NzXG4gICAgICBjc3NgXG4gICAgICAgIDpob3N0IHtcbiAgICAgICAgICAtLWJkYzogdmFyKC0tZ3YtdXNlci1tZW51LS1iZGMsIGxpZ2h0Z3JleSk7XG4gICAgICAgICAgLS1jOiB2YXIoLS1ndi11c2VyLW1lbnUtLWMsIHZhcigtLWd2LXRoZW1lLWZvbnQtY29sb3ItZGFyaywgIzI2MjYyNikpO1xuICAgICAgICAgIC0tYmdjOiB2YXIoLS1ndi11c2VyLW1lbnUtLWJnYywgdHJhbnNwYXJlbnQpO1xuICAgICAgICAgIC0tbGlzdC1iZ2M6IHZhcigtLWd2LXVzZXItbWVudS1saXN0LS1iZ2MsIHZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3ItbGlnaHRlc3QsICNmZmZmZmYpKTtcbiAgICAgICAgICAtLWhvdmVyLWJnYzogdmFyKC0tZ3YtdXNlci1tZW51LWhvdmVyLS1iZ2MsIHZhcigtLWd2LXRoZW1lLWNvbG9yLWxpZ2h0LCAjODZjM2QwKSk7XG4gICAgICAgICAgLS1ndi1saW5rLWFjdGl2ZS0tYzogdmFyKC0tZ3YtdXNlci1tZW51LWhvdmVyLS1jLCB2YXIoLS1ndi10aGVtZS1jb2xvci1kYXJrLCAjMjg0NDRmKSk7XG4gICAgICAgICAgLS1ndi1pY29uLS1jOiB2YXIoLS1ndi11c2VyLW1lbnUtaWNvbi0tYywgdmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvci1kYXJrZXN0LCAjMDAwMDAwKSk7XG4gICAgICAgICAgLS1ndi1pY29uLS1zOiB2YXIoLS1ndi11c2VyLW1lbnUtaWNvbi0tcywgMTZweCk7XG4gICAgICAgICAgLS1ndi1saW5rLWEtLXBoOiB2YXIoLS1ndi11c2VyLW1lbnUtbGluay1hLS1waCwgMHB4KTtcbiAgICAgICAgICAtLWd2LWxpbmstLXRhOiB2YXIoLS1ndi11c2VyLW1lbnUtbGluay0tdGEsIHJpZ2h0KTtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC51c2VyLW1lbnUge1xuICAgICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC51c2VyLW1lbnVfX3RpdGxlIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZ2MpO1xuICAgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tYmRjKTtcbiAgICAgICAgICBjb2xvcjogdmFyKC0tYyk7XG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiA0MHB4O1xuICAgICAgICAgIHBhZGRpbmc6IDhweCAyNHB4O1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgIG1pbi13aWR0aDogMTc1cHg7XG4gICAgICAgICAgdGV4dC1zaGFkb3c6IHZhcigtLWd2LXVzZXItbWVudS0tdHNoLCBub25lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIDo6c2xvdHRlZCgqKSB7XG4gICAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLnVzZXItbWVudV9fdGl0bGUubm8tdXNlciB7XG4gICAgICAgICAgcGFkZGluZzogNXB4IDI0cHg7XG4gICAgICAgIH1cblxuICAgICAgICAudXNlci1tZW51X190aXRsZSBndi1saW5rIHtcbiAgICAgICAgICAtLWd2LWxpbmstYS0tcGg6IDA7XG4gICAgICAgICAgLS1ndi1saW5rLWEtLXB2OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLnVzZXItbWVudV9fdGl0bGUgc3BhbiB7XG4gICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgbWFyZ2luOiAwIDAuNHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC51c2VyLW1lbnVfX3RpdGxlID4gZ3YtaWNvbiB7XG4gICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZSAwcztcbiAgICAgICAgfVxuXG4gICAgICAgIC51c2VyLW1lbnVfX2xpc3Qge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1saXN0LWJnYyk7XG4gICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UgMHM7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAudXNlci1tZW51X19saXN0X19pdGVtIHtcbiAgICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWJkYyk7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjVzIGVhc2U7XG4gICAgICAgICAgcGFkZGluZzogMnB4IDMwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAudXNlci1tZW51X19saXN0X19pdGVtOmxhc3QtY2hpbGQge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1iZGMpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnVzZXItbWVudV9fbGlzdF9faXRlbTpob3ZlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taG92ZXItYmdjKTtcbiAgICAgICAgICBib3JkZXItbGVmdDogMXB4IGRvdHRlZCB2YXIoLS1iZGMpO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIH1cblxuICAgICAgICBndi1saW5rIHtcbiAgICAgICAgICBtYXJnaW46IDBweDtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgLnNlcGFyYXRvciB7XG4gICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJkYyk7XG4gICAgICAgIH1cblxuICAgICAgICAuYWN0aXZlIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ndi10aGVtZS1uZXV0cmFsLWNvbG9yLWRhcmssICNkOWQ5ZDkpO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqIGZvciBhbmltYXRpb25zICovXG4gICAgICAgIC51c2VyLW1lbnVfX2xpc3Qge1xuICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCUpO1xuICAgICAgICAgIHotaW5kZXg6IDEwMDtcbiAgICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwcywgMHMsIDAuMnM7XG4gICAgICAgIH1cblxuICAgICAgICAudXNlci1tZW51X19saXN0X19ncm91cCB7XG4gICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJkYyk7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvci1saWdodCwgI2VmZWZlZik7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLnVzZXItbWVudV9fbGlzdF9fZ3JvdXBfX3RpdGxlIHtcbiAgICAgICAgICBmb250LXNpemU6IHNtYWxsO1xuICAgICAgICAgIGNvbG9yOiB2YXIoLS1ndi10aGVtZS1jb2xvci1kYXJrZXIsICMzODNlM2YpO1xuICAgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tYmRjKTtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAuY2xvc2VkIC51c2VyLW1lbnVfX2xpc3Qge1xuICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMmVtKTtcbiAgICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgfVxuXG4gICAgICAgIGd2LWljb24ge1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNsb3NlZCBndi1pY29uIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTgwZGVnKTtcbiAgICAgICAgfVxuICAgICAgYCxcbiAgICBdO1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLl9pc0Nsb3NlZCA9IHRydWU7XG4gIH1cblxuICBfb25DbGljayhlKSB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuX2lzQ2xvc2VkID0gIXRoaXMuX2lzQ2xvc2VkO1xuICB9XG5cbiAgX29uTW91c2VMZWF2ZSgpIHtcbiAgICB0aGlzLl9pc0Nsb3NlZCA9IHRydWU7XG4gIH1cblxuICBfb25TZWxlY3QoKSB7XG4gICAgdGhpcy5faXNDbG9zZWQgPSB0cnVlO1xuICB9XG5cbiAgX2hhc09uZUl0ZW0oKSB7XG4gICAgcmV0dXJuIHRoaXMudXNlcm5hbWUgPT0gbnVsbCAmJiB0aGlzLl9yb3V0ZXMgJiYgdGhpcy5fcm91dGVzLmxlbmd0aCA9PT0gMTtcbiAgfVxuXG4gIHNldCByb3V0ZXMoY2FuZGlkYXRlKSB7XG4gICAgaWYgKGNhbmRpZGF0ZSkge1xuICAgICAgUHJvbWlzZS5yZXNvbHZlKGNhbmRpZGF0ZSkudGhlbigoY2FuZGlkYXRlcykgPT4ge1xuICAgICAgICBpZiAoY2FuZGlkYXRlcykge1xuICAgICAgICAgIFByb21pc2UuYWxsKGNhbmRpZGF0ZXMpLnRoZW4oKGZ1dHVyZVJvdXRlcykgPT4ge1xuICAgICAgICAgICAgaWYgKCFpc1NhbWVSb3V0ZXModGhpcy5fcm91dGVzLCBmdXR1cmVSb3V0ZXMpKSB7XG4gICAgICAgICAgICAgIHRoaXMuX3JvdXRlcyA9IGZ1dHVyZVJvdXRlcy5maWx0ZXIoKHIpID0+IHIgIT0gbnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5fcm91dGVzID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3JvdXRlcyA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgX3JlbmRlckZpcnN0SXRlbSgpIHtcbiAgICBpZiAodGhpcy5fcm91dGVzKSB7XG4gICAgICBpZiAodGhpcy51c2VybmFtZSkge1xuICAgICAgICByZXR1cm4gaHRtbGA8bGkgY2xhc3M9XCJ1c2VyLW1lbnVfX3RpdGxlXCIgQGNsaWNrPSR7dGhpcy5fb25DbGlja30+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8c3Bhbj4ke3RoaXMudXNlcm5hbWV9PC9zcGFuPlxuICAgICAgICAgIDxndi1pY29uIHNoYXBlPVwiZGVzaWduOnRyaWFuZ2xlXCI+PC9ndi1pY29uPlxuICAgICAgICA8L2xpPmA7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuX2hhc09uZUl0ZW0oKSkge1xuICAgICAgICBjb25zdCBmaXJzdEl0ZW0gPSB0aGlzLl9yb3V0ZXNbMF07XG4gICAgICAgIHJldHVybiBodG1sYDxsaSBjbGFzcz1cInVzZXItbWVudV9fdGl0bGUgbm8tdXNlclwiIEBjbGljaz0ke3RoaXMuX29uQ2xpY2t9PlxuICAgICAgICAgIDxndi1saW5rIC5pY29uPVwiJHtmaXJzdEl0ZW0uaWNvbn1cIiAucGF0aD1cIiR7Zmlyc3RJdGVtLnBhdGh9XCIgLnRpdGxlPVwiJHtmaXJzdEl0ZW0udGl0bGV9XCIgQGNsaWNrPSR7dGhpcy5fb25TZWxlY3R9PjwvZ3YtbGluaz5cbiAgICAgICAgPC9saT5gO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaHRtbGBgO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IGNsYXNzZXMgPSB7IGNsb3NlZDogdGhpcy5faXNDbG9zZWQgfTtcbiAgICBpZiAodGhpcy5fcm91dGVzKSB7XG4gICAgICByZXR1cm4gaHRtbGBcbiAgICAgICAgPG5hdiBjbGFzcz1cIiR7Y2xhc3NNYXAoY2xhc3Nlcyl9XCI+XG4gICAgICAgICAgPHVsIGNsYXNzPVwidXNlci1tZW51XCIgQG1vdXNlbGVhdmU9JHt0aGlzLl9vbk1vdXNlTGVhdmV9PlxuICAgICAgICAgICAgJHt0aGlzLl9yZW5kZXJGaXJzdEl0ZW0oKX1cblxuICAgICAgICAgICAgPGxpIGNsYXNzPVwidXNlci1tZW51X19jb250ZW50XCI+XG4gICAgICAgICAgICAgIDx1bCBjbGFzcz1cInVzZXItbWVudV9fbGlzdFwiPlxuICAgICAgICAgICAgICAgICR7cmVwZWF0KFxuICAgICAgICAgICAgICAgICAgdGhpcy5fcm91dGVzLFxuICAgICAgICAgICAgICAgICAgKHJvdXRlKSA9PiByb3V0ZSxcbiAgICAgICAgICAgICAgICAgIChyb3V0ZSwgaW5kZXgpID0+IGh0bWxgICR7dGhpcy5faGFzT25lSXRlbSgpID8gaHRtbGBgIDogdGhpcy5fcmVuZGVySXRlbShyb3V0ZSl9IGAsXG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9uYXY+XG4gICAgICBgO1xuICAgIH1cbiAgICByZXR1cm4gaHRtbGBgO1xuICB9XG5cbiAgX3JlbmRlckl0ZW0ocm91dGUpIHtcbiAgICBpZiAocm91dGUucm91dGVzKSB7XG4gICAgICByZXR1cm4gaHRtbGA8dWwgY2xhc3M9XCJ1c2VyLW1lbnVfX2xpc3RfX2dyb3VwXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidXNlci1tZW51X19saXN0X19ncm91cF9fdGl0bGVcIj4ke3JvdXRlLnRpdGxlfTwvc3Bhbj5cbiAgICAgICAgJHtyZXBlYXQoXG4gICAgICAgICAgcm91dGUucm91dGVzLFxuICAgICAgICAgIChjaGlsZFJvdXRlKSA9PiBjaGlsZFJvdXRlLFxuICAgICAgICAgIChjaGlsZFJvdXRlLCBpbmRleCkgPT4gaHRtbGAgJHt0aGlzLl9yZW5kZXJJdGVtKGNoaWxkUm91dGUpfSBgLFxuICAgICAgICApfVxuICAgICAgPC91bD5gO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gaHRtbGA8bGlcbiAgICAgICAgY2xhc3M9XCJ1c2VyLW1lbnVfX2xpc3RfX2l0ZW0gJHtyb3V0ZS5zZXBhcmF0b3IgPyAnc2VwYXJhdG9yJyA6ICcnfSAke3JvdXRlLmFjdGl2ZSA/ICdhY3RpdmUnIDogJyd9XCJcbiAgICAgICAgc3R5bGU9XCIke3JvdXRlLnN0eWxlfVwiXG4gICAgICA+XG4gICAgICAgIDxndi1saW5rXG4gICAgICAgICAgLmljb249XCIke3JvdXRlLmljb259XCJcbiAgICAgICAgICAucGF0aD1cIiR7cm91dGUucGF0aH1cIlxuICAgICAgICAgIC50aXRsZT1cIiR7cm91dGUudGl0bGV9XCJcbiAgICAgICAgICAudGFyZ2V0PVwiJHtyb3V0ZS50YXJnZXR9XCJcbiAgICAgICAgICBAY2xpY2s9JHt0aGlzLl9vblNlbGVjdH1cbiAgICAgICAgPjwvZ3YtbGluaz5cbiAgICAgIDwvbGk+YDtcbiAgICB9XG4gIH1cbn1cblxud2luZG93LmN1c3RvbUVsZW1lbnRzLmRlZmluZSgnZ3YtdXNlci1tZW51JywgR3ZVc2VyTWVudSk7XG4iXX0=
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import { css, html, LitElement } from 'lit
|
|
16
|
+
import { css, html, LitElement } from 'lit';
|
|
17
17
|
import '../molecules/gv-nav';
|
|
18
18
|
import '../atoms/gv-image';
|
|
19
19
|
import { isSameRoutes } from '../lib/utils';
|
|
@@ -79,4 +79,4 @@ export class GvVerticalMenu extends LitElement {
|
|
|
79
79
|
|
|
80
80
|
}
|
|
81
81
|
window.customElements.define('gv-vertical-menu', GvVerticalMenu);
|
|
82
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
82
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL29yZ2FuaXNtcy9ndi12ZXJ0aWNhbC1tZW51LmpzIl0sIm5hbWVzIjpbImNzcyIsImh0bWwiLCJMaXRFbGVtZW50IiwiaXNTYW1lUm91dGVzIiwiR3ZWZXJ0aWNhbE1lbnUiLCJwcm9wZXJ0aWVzIiwicm91dGVzIiwidHlwZSIsIkFycmF5IiwiX3JvdXRlcyIsImF0dHJpYnV0ZSIsImxvZ28iLCJTdHJpbmciLCJzdHlsZXMiLCJjb25zdHJ1Y3RvciIsImNhbmRpZGF0ZSIsIlByb21pc2UiLCJyZXNvbHZlIiwidGhlbiIsImNhbmRpZGF0ZXMiLCJhbGwiLCJmdXR1cmVSb3V0ZXMiLCJmaWx0ZXIiLCJyIiwicmVuZGVyIiwid2luZG93IiwiY3VzdG9tRWxlbWVudHMiLCJkZWZpbmUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNBLEdBQVQsRUFBY0MsSUFBZCxFQUFvQkMsVUFBcEIsUUFBc0MsS0FBdEM7QUFDQSxPQUFPLHFCQUFQO0FBQ0EsT0FBTyxtQkFBUDtBQUNBLFNBQVNDLFlBQVQsUUFBNkIsY0FBN0I7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLE9BQU8sTUFBTUMsY0FBTixTQUE2QkYsVUFBN0IsQ0FBd0M7QUFDeEIsYUFBVkcsVUFBVSxHQUFHO0FBQ3RCLFdBQU87QUFDTDtBQUNBQyxNQUFBQSxNQUFNLEVBQUU7QUFBRUMsUUFBQUEsSUFBSSxFQUFFQztBQUFSLE9BRkg7QUFHTEMsTUFBQUEsT0FBTyxFQUFFO0FBQUVGLFFBQUFBLElBQUksRUFBRUMsS0FBUjtBQUFlRSxRQUFBQSxTQUFTLEVBQUU7QUFBMUIsT0FISjtBQUlMQyxNQUFBQSxJQUFJLEVBQUU7QUFBRUosUUFBQUEsSUFBSSxFQUFFSztBQUFSO0FBSkQsS0FBUDtBQU1EOztBQUVnQixhQUFOQyxNQUFNLEdBQUc7QUFDbEIsV0FBTyxDQUNMO0FBQ0FiLElBQUFBLEdBQUcsK2xDQUZFLENBQVA7QUE2Q0Q7O0FBRURjLEVBQUFBLFdBQVcsR0FBRztBQUNaO0FBQ0E7O0FBQ0EsU0FBS0wsT0FBTCxHQUFlLEVBQWY7QUFDRDs7QUFFUyxNQUFOSCxNQUFNLENBQUNTLFNBQUQsRUFBWTtBQUNwQixRQUFJQSxTQUFKLEVBQWU7QUFDYkMsTUFBQUEsT0FBTyxDQUFDQyxPQUFSLENBQWdCRixTQUFoQixFQUEyQkcsSUFBM0IsQ0FBaUNDLFVBQUQsSUFBZ0I7QUFDOUMsWUFBSUEsVUFBSixFQUFnQjtBQUNkSCxVQUFBQSxPQUFPLENBQUNJLEdBQVIsQ0FBWUQsVUFBWixFQUF3QkQsSUFBeEIsQ0FBOEJHLFlBQUQsSUFBa0I7QUFDN0MsZ0JBQUksQ0FBQ2xCLFlBQVksQ0FBQyxLQUFLTSxPQUFOLEVBQWVZLFlBQWYsQ0FBakIsRUFBK0M7QUFDN0MsbUJBQUtaLE9BQUwsR0FBZVksWUFBWSxDQUFDQyxNQUFiLENBQXFCQyxDQUFELElBQU9BLENBQUMsSUFBSSxJQUFoQyxDQUFmO0FBQ0Q7QUFDRixXQUpEO0FBS0QsU0FORCxNQU1PO0FBQ0wsZUFBS2QsT0FBTCxHQUFlLElBQWY7QUFDRDtBQUNGLE9BVkQ7QUFXRCxLQVpELE1BWU87QUFDTCxXQUFLQSxPQUFMLEdBQWUsSUFBZjtBQUNEO0FBQ0Y7O0FBRURlLEVBQUFBLE1BQU0sR0FBRztBQUNQLFdBQU92QixJQUFJLGlDQUVMLEtBQUtVLElBQUwsR0FBWVYsSUFBSSxtQkFBbUIsS0FBS1UsSUFBeEIsZUFBaEIsR0FBOEQsRUFGekQsaURBSWMsS0FBS0YsT0FKbkIscUNBQVg7QUFRRDs7QUEzRjRDO0FBOEYvQ2dCLE1BQU0sQ0FBQ0MsY0FBUCxDQUFzQkMsTUFBdEIsQ0FBNkIsa0JBQTdCLEVBQWlEdkIsY0FBakQiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgY3NzLCBodG1sLCBMaXRFbGVtZW50IH0gZnJvbSAnbGl0JztcbmltcG9ydCAnLi4vbW9sZWN1bGVzL2d2LW5hdic7XG5pbXBvcnQgJy4uL2F0b21zL2d2LWltYWdlJztcbmltcG9ydCB7IGlzU2FtZVJvdXRlcyB9IGZyb20gJy4uL2xpYi91dGlscyc7XG5cbi8qKlxuICogQSB2ZXJ0aWNhbCBtZW51XG4gKlxuICogQGZpcmVzIGd2LWxpbms6Y2xpY2sgLSBDdXN0b20gZXZlbnQgd2hlbiBsaW5rIGNsaWNrXG4gKlxuICogQGF0dHIge0FycmF5fSByb3V0ZXMgLSBkZWZpbml0aW9uIG9mIHJvdXRlcyBbe2FjdGl2ZTogQm9vbGVhbiwgaWNvbjogU3RyaW5nLCBwYXRoOiBTdHJpbmcsIHRpdGxlOiBQcm9taXNlPFN0cmluZz5dXG4gKlxuICovXG5leHBvcnQgY2xhc3MgR3ZWZXJ0aWNhbE1lbnUgZXh0ZW5kcyBMaXRFbGVtZW50IHtcbiAgc3RhdGljIGdldCBwcm9wZXJ0aWVzKCkge1xuICAgIHJldHVybiB7XG4gICAgICAvKiogQHJlcXVpcmVkICoqL1xuICAgICAgcm91dGVzOiB7IHR5cGU6IEFycmF5IH0sXG4gICAgICBfcm91dGVzOiB7IHR5cGU6IEFycmF5LCBhdHRyaWJ1dGU6IGZhbHNlIH0sXG4gICAgICBsb2dvOiB7IHR5cGU6IFN0cmluZyB9LFxuICAgIH07XG4gIH1cblxuICBzdGF0aWMgZ2V0IHN0eWxlcygpIHtcbiAgICByZXR1cm4gW1xuICAgICAgLy8gbGFuZ3VhZ2U9Y3NzXG4gICAgICBjc3NgXG4gICAgICAgIDpob3N0IHtcbiAgICAgICAgICAtLWd2LWxpbmstLWM6IHZhcigtLWd2LW1lbnUtLWMsIHZhcigtLWd2LXRoZW1lLWZvbnQtY29sb3ItbGlnaHQsICNmZmZmZmYpKTtcbiAgICAgICAgICAtLWd2LWxpbmstYWN0aXZlLS1jOiB2YXIoLS1ndi1tZW51LS1jLCB2YXIoLS1ndi10aGVtZS1mb250LWNvbG9yLWxpZ2h0LCAjZmZmZmZmKSk7XG4gICAgICAgICAgLS1ndi1saW5rLS1iZ2M6IHZhcigtLWd2LW1lbnUtbGluay0tYmdjLCB0cmFuc3BhcmVudCk7XG4gICAgICAgICAgLS1ndi1saW5rLWFjdGl2ZS0tYmdjOiB2YXIoLS1ndi1tZW51LWxpbmstYWN0aXZlLS1iZ2MsIHRyYW5zcGFyZW50KTtcbiAgICAgICAgICAtLWd2LWxpbmstYWN0aXZlLS1iZHc6IHZhcigtLWd2LW1lbnUtbGluay1hY3RpdmUtLWJkdywgMCAwIDAgNHB4KTtcbiAgICAgICAgICAtLWd2LWxpbmstYWN0aXZlLS1iZGM6IHZhcigtLWd2LW1lbnUtbGluay1hY3RpdmUtLWJkYywgdmFyKC0tZ3YtdGhlbWUtY29sb3ItbGlnaHQsICM4NmMzZDApKTtcbiAgICAgICAgICAtLWd2LWxpbmstYWN0aXZlLS1iZHM6IHZhcigtLWd2LW1lbnUtbGluay1hY3RpdmUtLWJkcywgc29saWQpO1xuICAgICAgICAgIC0tcHI6IHZhcigtLWd2LXRoZW1lLWxheW91dC0tcHIsIDRyZW0pO1xuICAgICAgICAgIC0tcGw6IHZhcigtLWd2LXRoZW1lLWxheW91dC0tcGwsIDRyZW0pO1xuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1ndi10aGVtZS1mb250LXNpemUtcywgMTZweCk7XG4gICAgICAgICAgd2lkdGg6IHZhcigtLWd2LXRoZW1lLWxheW91dC1tZW51LXcsIDIwMHB4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5tZW51LWNvbnRhaW5lciB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWd2LW1lbnUtLWJnYywgdmFyKC0tZ3YtdGhlbWUtY29sb3ItZGFyaywgIzI4NDQ0ZikpO1xuICAgICAgICAgIGNvbG9yOiB2YXIoLS1ndi1tZW51LS1jLCB2YXIoLS1ndi10aGVtZS1mb250LWNvbG9yLWxpZ2h0LCAjZmZmZmZmKSk7XG4gICAgICAgIH1cblxuICAgICAgICBndi1pbWFnZSB7XG4gICAgICAgICAgaGVpZ2h0OiAyMDBweDtcbiAgICAgICAgICB3aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBndi1uYXYge1xuICAgICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDI1MG1zIGVhc2UtaW4tb3V0O1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgIH1cbiAgICAgIGAsXG4gICAgXTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgLyoqIEBwcm90ZWN0ZWQgKi9cbiAgICB0aGlzLl9yb3V0ZXMgPSBbXTtcbiAgfVxuXG4gIHNldCByb3V0ZXMoY2FuZGlkYXRlKSB7XG4gICAgaWYgKGNhbmRpZGF0ZSkge1xuICAgICAgUHJvbWlzZS5yZXNvbHZlKGNhbmRpZGF0ZSkudGhlbigoY2FuZGlkYXRlcykgPT4ge1xuICAgICAgICBpZiAoY2FuZGlkYXRlcykge1xuICAgICAgICAgIFByb21pc2UuYWxsKGNhbmRpZGF0ZXMpLnRoZW4oKGZ1dHVyZVJvdXRlcykgPT4ge1xuICAgICAgICAgICAgaWYgKCFpc1NhbWVSb3V0ZXModGhpcy5fcm91dGVzLCBmdXR1cmVSb3V0ZXMpKSB7XG4gICAgICAgICAgICAgIHRoaXMuX3JvdXRlcyA9IGZ1dHVyZVJvdXRlcy5maWx0ZXIoKHIpID0+IHIgIT0gbnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5fcm91dGVzID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3JvdXRlcyA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtY29udGFpbmVyXCI+XG4gICAgICAgICR7dGhpcy5sb2dvID8gaHRtbGA8Z3YtaW1hZ2UgLnNyYz1cIiR7dGhpcy5sb2dvfVwiPjwvZ3YtaW1hZ2U+YCA6ICcnfVxuICAgICAgICA8ZGl2IGNsYXNzPVwibmF2LWNvbnRhaW5lclwiPlxuICAgICAgICAgIDxndi1uYXYgLnJvdXRlcz1cIiR7dGhpcy5fcm91dGVzfVwiIHZlcnRpY2FsPjwvZ3YtbmF2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxud2luZG93LmN1c3RvbUVsZW1lbnRzLmRlZmluZSgnZ3YtdmVydGljYWwtbWVudScsIEd2VmVydGljYWxNZW51KTtcbiJdfQ==
|