@eo-sdk/client 7.14.0-rc.1 → 7.15.0-rc.1
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/app/eo-framework/media/media.component.d.ts +12 -2
- package/app/eo-framework/prepare-details/prepare-details.component.d.ts +6 -0
- package/app/eo-framework-core/api/plugins.service.d.ts +4 -1
- package/assets/_default/api/compare/index.html +1 -0
- package/assets/_default/api/error/index.html +1 -0
- package/assets/_default/api/img/index.html +1 -168
- package/assets/_default/api/mail/index.html +1 -0
- package/assets/_default/api/monaco/index.html +1 -13
- package/assets/_default/api/pdf/web/viewer.js +1 -1
- package/assets/_default/api/text/index.html +1 -0
- package/assets/_default/api/video/index.html +1 -22
- package/assets/_default/i18n/de.json +1 -0
- package/assets/_default/i18n/en.json +1 -0
- package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.js +24 -4
- package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.js.map +1 -1
- package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.min.js +2 -2
- package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.min.js.map +1 -1
- package/bundles/eo-sdk-client.umd.js +90 -46
- package/bundles/eo-sdk-client.umd.js.map +1 -1
- package/bundles/eo-sdk-client.umd.min.js +1 -1
- package/bundles/eo-sdk-client.umd.min.js.map +1 -1
- package/eo-sdk-client.metadata.json +1 -1
- package/esm2015/app/eo-client/about-state/about-state.component.js +3 -3
- package/esm2015/app/eo-client/favorite-state/favorite-state.component.js +2 -2
- package/esm2015/app/eo-client/inbox-state/inbox-state/inbox-state.component.js +2 -2
- package/esm2015/app/eo-framework/media/media.component.js +41 -37
- package/esm2015/app/eo-framework/prepare-details/prepare-details.component.js +21 -3
- package/esm2015/app/eo-framework-core/api/plugins.service.js +23 -8
- package/esm2015/projects/eo-sdk/core/lib/service/backend/backend.service.js +5 -3
- package/esm2015/projects/eo-sdk/core/lib/service/inbox/inbox.service.js +3 -2
- package/esm2015/projects/eo-sdk/core/lib/service/prepare/prepare.service.js +16 -1
- package/esm2015/projects/eo-sdk/core/lib/service/user/user.service.js +5 -3
- package/fesm2015/eo-sdk-client-projects-eo-sdk-core.js +24 -4
- package/fesm2015/eo-sdk-client-projects-eo-sdk-core.js.map +1 -1
- package/fesm2015/eo-sdk-client.js +85 -48
- package/fesm2015/eo-sdk-client.js.map +1 -1
- package/package.json +2 -2
- package/projects/eo-sdk/core/eo-sdk-client-projects-eo-sdk-core.metadata.json +1 -1
- package/projects/eo-sdk/core/lib/service/backend/backend.service.d.ts +1 -0
- package/projects/eo-sdk/core/lib/service/inbox/inbox.service.d.ts +1 -0
- package/projects/eo-sdk/core/lib/service/prepare/prepare.service.d.ts +10 -0
- package/projects/eo-sdk/core/lib/service/user/user.service.d.ts +2 -0
- package/projects/eo-sdk/core/package.json +1 -1
- package/assets/_default/api/img/index.js +0 -1
- package/assets/_default/api/img/viewer.js +0 -1
- package/assets/_default/api/monaco/min/vs/base/browser/ui/codicons/codicon/codicon.ttf +0 -0
- package/assets/_default/api/monaco/min/vs/base/worker/workerMain.js +0 -2
- package/assets/_default/api/monaco/min/vs/base/worker/workerMain.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/abap/abap.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/abap/abap.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/apex/apex.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/apex/apex.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/azcli/azcli.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/azcli/azcli.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/bat/bat.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/bat/bat.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/bicep/bicep.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/bicep/bicep.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/cameligo/cameligo.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/cameligo/cameligo.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/clojure/clojure.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/clojure/clojure.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/coffee/coffee.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/coffee/coffee.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/cpp/cpp.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/cpp/cpp.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/csharp/csharp.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/csharp/csharp.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/csp/csp.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/csp/csp.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/css/css.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/css/css.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/dart/dart.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/dart/dart.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/dockerfile/dockerfile.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/dockerfile/dockerfile.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/ecl/ecl.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/ecl/ecl.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/elixir/elixir.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/elixir/elixir.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/flow9/flow9.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/flow9/flow9.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/fsharp/fsharp.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/fsharp/fsharp.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/go/go.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/go/go.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/graphql/graphql.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/graphql/graphql.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/handlebars/handlebars.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/handlebars/handlebars.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/hcl/hcl.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/hcl/hcl.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/html/html.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/html/html.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/ini/ini.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/ini/ini.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/java/java.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/java/java.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/javascript/javascript.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/javascript/javascript.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/julia/julia.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/julia/julia.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/kotlin/kotlin.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/kotlin/kotlin.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/less/less.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/less/less.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/lexon/lexon.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/lexon/lexon.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/liquid/liquid.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/liquid/liquid.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/lua/lua.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/lua/lua.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/m3/m3.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/m3/m3.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/markdown/markdown.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/markdown/markdown.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/mips/mips.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/mips/mips.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/msdax/msdax.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/msdax/msdax.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/mysql/mysql.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/mysql/mysql.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/objective-c/objective-c.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/objective-c/objective-c.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/pascal/pascal.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/pascal/pascal.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/pascaligo/pascaligo.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/pascaligo/pascaligo.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/perl/perl.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/perl/perl.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/pgsql/pgsql.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/pgsql/pgsql.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/php/php.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/php/php.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/postiats/postiats.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/postiats/postiats.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/powerquery/powerquery.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/powerquery/powerquery.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/powershell/powershell.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/powershell/powershell.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/protobuf/protobuf.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/protobuf/protobuf.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/pug/pug.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/pug/pug.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/python/python.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/python/python.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/qsharp/qsharp.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/qsharp/qsharp.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/r/r.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/r/r.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/razor/razor.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/razor/razor.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/redis/redis.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/redis/redis.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/redshift/redshift.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/redshift/redshift.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/restructuredtext/restructuredtext.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/restructuredtext/restructuredtext.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/ruby/ruby.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/ruby/ruby.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/rust/rust.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/rust/rust.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/sb/sb.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/sb/sb.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/scala/scala.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/scala/scala.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/scheme/scheme.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/scheme/scheme.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/scss/scss.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/scss/scss.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/shell/shell.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/shell/shell.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/solidity/solidity.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/solidity/solidity.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/sophia/sophia.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/sophia/sophia.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/sparql/sparql.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/sparql/sparql.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/sql/sql.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/sql/sql.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/st/st.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/st/st.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/swift/swift.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/swift/swift.js.LICENSE.txt +0 -10
- package/assets/_default/api/monaco/min/vs/basic-languages/systemverilog/systemverilog.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/systemverilog/systemverilog.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/tcl/tcl.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/tcl/tcl.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/twig/twig.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/twig/twig.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/typescript/typescript.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/typescript/typescript.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/vb/vb.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/vb/vb.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/xml/xml.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/xml/xml.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/basic-languages/yaml/yaml.js +0 -2
- package/assets/_default/api/monaco/min/vs/basic-languages/yaml/yaml.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/editor/editor.main.css +0 -6
- package/assets/_default/api/monaco/min/vs/editor/editor.main.js +0 -2
- package/assets/_default/api/monaco/min/vs/editor/editor.main.js.LICENSE.txt +0 -43
- package/assets/_default/api/monaco/min/vs/editor/editor.main.nls.de.js +0 -2
- package/assets/_default/api/monaco/min/vs/editor/editor.main.nls.de.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/editor/editor.main.nls.es.js +0 -2
- package/assets/_default/api/monaco/min/vs/editor/editor.main.nls.es.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/editor/editor.main.nls.fr.js +0 -2
- package/assets/_default/api/monaco/min/vs/editor/editor.main.nls.fr.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/editor/editor.main.nls.it.js +0 -2
- package/assets/_default/api/monaco/min/vs/editor/editor.main.nls.it.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/editor/editor.main.nls.ja.js +0 -2
- package/assets/_default/api/monaco/min/vs/editor/editor.main.nls.ja.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/editor/editor.main.nls.js +0 -2
- package/assets/_default/api/monaco/min/vs/editor/editor.main.nls.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/editor/editor.main.nls.ko.js +0 -2
- package/assets/_default/api/monaco/min/vs/editor/editor.main.nls.ko.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/editor/editor.main.nls.ru.js +0 -2
- package/assets/_default/api/monaco/min/vs/editor/editor.main.nls.ru.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/editor/editor.main.nls.zh-cn.js +0 -2
- package/assets/_default/api/monaco/min/vs/editor/editor.main.nls.zh-cn.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/editor/editor.main.nls.zh-tw.js +0 -2
- package/assets/_default/api/monaco/min/vs/editor/editor.main.nls.zh-tw.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/language/css/cssMode.js +0 -2
- package/assets/_default/api/monaco/min/vs/language/css/cssMode.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/language/css/cssWorker.js +0 -2
- package/assets/_default/api/monaco/min/vs/language/css/cssWorker.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/language/html/htmlMode.js +0 -2
- package/assets/_default/api/monaco/min/vs/language/html/htmlMode.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/language/html/htmlWorker.js +0 -2
- package/assets/_default/api/monaco/min/vs/language/html/htmlWorker.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/language/json/jsonMode.js +0 -2
- package/assets/_default/api/monaco/min/vs/language/json/jsonMode.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/language/json/jsonWorker.js +0 -2
- package/assets/_default/api/monaco/min/vs/language/json/jsonWorker.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/language/typescript/tsMode.js +0 -2
- package/assets/_default/api/monaco/min/vs/language/typescript/tsMode.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/min/vs/language/typescript/tsWorker.js +0 -2
- package/assets/_default/api/monaco/min/vs/language/typescript/tsWorker.js.LICENSE.txt +0 -21
- package/assets/_default/api/monaco/min/vs/loader.js +0 -2
- package/assets/_default/api/monaco/min/vs/loader.js.LICENSE.txt +0 -6
- package/assets/_default/api/monaco/viewer.js +0 -1
- package/assets/_default/api/video/index.js +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { of as observableOf } from 'rxjs';
|
|
2
|
-
import { tap } from 'rxjs/operators';
|
|
2
|
+
import { filter, tap } from 'rxjs/operators';
|
|
3
3
|
import { Injectable } from '@angular/core';
|
|
4
4
|
import { HttpClient, HttpHeaders } from '@angular/common/http';
|
|
5
5
|
import { Config } from '../config/config.service';
|
|
@@ -19,6 +19,7 @@ export class BackendService {
|
|
|
19
19
|
this.http = http;
|
|
20
20
|
this.logger = logger;
|
|
21
21
|
this.config = config;
|
|
22
|
+
this.gridDataFilter = filter((v) => !v.__removed);
|
|
22
23
|
this.cache = new Map();
|
|
23
24
|
this.temp = new Map();
|
|
24
25
|
this.headers = this.setDefaultHeaders();
|
|
@@ -284,7 +285,8 @@ export class BackendService {
|
|
|
284
285
|
}
|
|
285
286
|
getFileNameFromHttpResponse(res, version) {
|
|
286
287
|
const contentDispositionHeader = res.headers.get('Content-Disposition') || '';
|
|
287
|
-
const encodedFileNameMatchResult = contentDispositionHeader.match('filename\\*=UTF-8\'\'(.*)')
|
|
288
|
+
const encodedFileNameMatchResult = contentDispositionHeader.match('filename\\*=UTF-8\'\'(.*)')
|
|
289
|
+
|| contentDispositionHeader.match('filename=\"(.*)\"');
|
|
288
290
|
const encodedFileName = encodedFileNameMatchResult ? encodedFileNameMatchResult[1] : null;
|
|
289
291
|
const filename = encodedFileName ? decodeURIComponent(encodedFileName) : 'unknown';
|
|
290
292
|
const index = !~filename.lastIndexOf('.') ? filename.length : filename.lastIndexOf('.');
|
|
@@ -312,4 +314,4 @@ BackendService.ctorParameters = () => [
|
|
|
312
314
|
{ type: Logger },
|
|
313
315
|
{ type: Config }
|
|
314
316
|
];
|
|
315
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2VuZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW8tc2RrL2NvcmUvc3JjL2xpYi9zZXJ2aWNlL2JhY2tlbmQvYmFja2VuZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxFQUFFLElBQUksWUFBWSxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBRXBELE9BQU8sRUFBTSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxVQUFVLEVBQUUsV0FBVyxFQUFlLE1BQU0sc0JBQXNCLENBQUM7QUFFM0UsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBRWhELE9BQU8sS0FBSyxTQUFTLE1BQU0sWUFBWSxDQUFDO0FBQ3hDLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUl4QyxPQUFPLEVBQUMsUUFBUSxFQUFFLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBeUJyRDs7OztHQUlHO0FBRUgsTUFBTSxPQUFPLGNBQWM7SUFPekI7O09BRUc7SUFDSCxZQUFvQixJQUFnQixFQUNoQixNQUFjLEVBQ2QsTUFBYztRQUZkLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFdBQU0sR0FBTixNQUFNLENBQVE7UUFUMUIsVUFBSyxHQUFHLElBQUksR0FBRyxFQUFlLENBQUM7UUFDL0IsU0FBSSxHQUFHLElBQUksR0FBRyxFQUEyQixDQUFDO1FBQzFDLFlBQU8sR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQVN6Qzs7O1dBR0c7UUFDSCxJQUFJLENBQUMsV0FBVyxHQUFHO1lBQ2pCLElBQUksRUFBRSxFQUFFO1lBQ1IsSUFBSSxFQUFFLElBQUk7U0FDWCxDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0ksY0FBYyxDQUFDLE9BQXFCO1FBQ3pDLElBQUksT0FBTyxFQUFFO1lBQ1gsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUN4QyxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQztZQUMzQixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFO2dCQUN6QiwwREFBMEQ7YUFDM0Q7WUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztTQUN0QztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksU0FBUyxDQUFDLEdBQVcsRUFBRSxLQUFhO1FBQ3pDLElBQUksS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDekIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDN0M7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksVUFBVTtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQ7O09BRUc7SUFDSSxjQUFjLENBQUMsY0FBNEI7UUFDaEQsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBQyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRDs7O09BR0c7SUFDSSxjQUFjO1FBQ25CLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRDs7O09BR0c7SUFDSSxhQUFhO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRDs7O09BR0c7SUFDSSxjQUFjO1FBQ25CLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRDs7O09BR0c7SUFDSSxZQUFZO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRDs7O09BR0c7SUFDSSxVQUFVO1FBQ2YsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFlBQVk7UUFDakIsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGFBQWE7UUFDbEIsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVEOztPQUVHO0lBQ0ksV0FBVyxDQUFDLEtBQWEsRUFBRTtRQUNoQyxPQUFPLElBQUksQ0FBQyxjQUFjLEVBQUUsR0FBRyxXQUFXLEdBQUcsRUFBRSxDQUFDO0lBQ2xELENBQUM7SUFFRDs7T0FFRztJQUNJLE9BQU87UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksR0FBRyxDQUFDLEdBQVcsRUFBRSxJQUFhLEVBQUUsY0FBNEI7UUFDakUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO0lBQ25HLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksR0FBRyxDQUFDLEdBQVcsRUFBRSxJQUFVLEVBQUUsSUFBYSxFQUFFLGNBQTRCO1FBQzdFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7SUFDekcsQ0FBQztJQUVEOztPQUVHO0lBQ0ksT0FBTyxDQUFDLEdBQVcsRUFBRSxJQUFhO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxFQUFDLFlBQVksRUFBRSxNQUFNLEVBQUMsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksSUFBSSxDQUFDLEdBQVcsRUFBRSxJQUFLLEVBQUUsSUFBYSxFQUFFLGNBQTRCO1FBQ3pFLE1BQU0sT0FBTyxHQUFHLElBQUksSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDOUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDakQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLE9BQU8sR0FBRyxHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO0lBQzFGLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksYUFBYSxDQUFDLEdBQVcsRUFBRSxRQUFrQixFQUFFLElBQWEsRUFBRSxjQUE0QjtRQUMvRixNQUFNLE9BQU8sR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQzlDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQyxPQUFPLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQy9CLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBQyxPQUFPLEVBQUUsT0FBTyxFQUFDLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDckUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLE9BQU8sR0FBRyxHQUFHLEVBQUUsRUFBRSxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLEdBQUcsQ0FBQyxHQUFXLEVBQUUsSUFBYSxFQUFFLGNBQTRCO1FBQ2pFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztJQUN0RyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNJLE1BQU0sQ0FBQyxJQUFXLEVBQUUsSUFBbUM7UUFDNUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUMsRUFBRSxFQUFFLElBQUksRUFBQyxFQUFFLEVBQUU7WUFDMUIsSUFBSSxFQUFFLEVBQUU7Z0JBQ04sTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7Z0JBQzFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUMsU0FBUyxFQUFFLElBQUksRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO2FBQzFFO2lCQUFNLElBQUksSUFBSSxFQUFFO2dCQUNmLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3BEO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxXQUFXLENBQUMsR0FBVztRQUM1QixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3ZCLE9BQU8sWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDMUM7YUFBTTtZQUNMLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUMsWUFBWSxFQUFFLE1BQU0sRUFBQyxDQUFDLENBQUMsSUFBSSxDQUNwRixHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDNUM7SUFDSCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLGVBQWUsQ0FBQyxFQUFVLEVBQUUsT0FBa0I7UUFDbkQsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUNyQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQzFCO2FBQU07WUFDTCxNQUFNLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ3BELFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUNwQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztZQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN4QixPQUFPLElBQUksQ0FBQztTQUNiO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLGVBQWUsQ0FBQyxVQUF1QixFQUFFLFNBQTRDLEVBQUUseUJBQW1DO1FBRS9ILFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDN0IsSUFBSSxTQUFTLENBQUMsT0FBTyxFQUFFO2dCQUVyQixJQUFJLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsUUFBUSxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsaUJBQWlCLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxrQkFBa0IsQ0FBQztnQkFDeEgsSUFBSSxTQUFTLEVBQUU7b0JBQ2IsR0FBRyxJQUFJLGNBQWMsU0FBUyxxQkFBcUIsU0FBUyxFQUFFLENBQUM7aUJBQ2hFO3FCQUFNO29CQUNMLEdBQUcsSUFBSSxtQkFBbUIsQ0FBQztpQkFDNUI7Z0JBQ0QsSUFBSSxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxTQUFTLENBQUMsRUFBRSxFQUFFO29CQUN6QyxHQUFHLElBQUksWUFBWSxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUM7aUJBQ3hDO2dCQUNELElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLHlCQUF5QixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUMxRTtpQkFBTTtnQkFDTCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyx3Q0FBd0MsRUFBRSxTQUFTLENBQUMsQ0FBQzthQUN4RTtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLFFBQVEsQ0FBQyxHQUFXLEVBQUUsT0FBZ0I7UUFDM0MsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFDLENBQUM7YUFDNUQsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDakIsU0FBUyxDQUFDLE1BQU0sQ0FDZCxHQUFHLENBQUMsSUFBSSxFQUNSLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQy9DLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTywyQkFBMkIsQ0FBQyxHQUFzQixFQUFFLE9BQWU7UUFDekUsTUFBTSx3QkFBd0IsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM5RSxNQUFNLDBCQUEwQixHQUFHLHdCQUF3QixDQUFDLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBQy9GLE1BQU0sZUFBZSxHQUFHLDBCQUEwQixDQUFDLENBQUMsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQzFGLE1BQU0sUUFBUSxHQUFHLGVBQWUsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNuRixNQUFNLEtBQUssR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4RixPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEtBQUssT0FBTyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztJQUNqRyxDQUFDO0lBR0Q7Ozs7T0FJRztJQUNLLGlCQUFpQjtRQUN2QixPQUFPLElBQUksV0FBVyxDQUFDO1lBQ3JCLGNBQWMsRUFBRSxrQkFBa0I7WUFDbEMsb0JBQW9CLEVBQUUsT0FBTztZQUM3QixzQkFBc0IsRUFBRSxPQUFPO1lBQy9CLGlCQUFpQixFQUFFLE1BQU07U0FDMUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7O1lBdFVGLFVBQVU7OztZQXZDSCxVQUFVO1lBS1YsTUFBTTtZQUhOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge29mIGFzIG9ic2VydmFibGVPZiwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQge21hcCwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7SHR0cENsaWVudCwgSHR0cEhlYWRlcnMsIEh0dHBSZXNwb25zZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQge0lIdHRwT3B0aW9uc30gZnJvbSAnLi4vLi4vaW50ZXJmYWNlL2h0dHAtb3B0aW9ucy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge0NvbmZpZ30gZnJvbSAnLi4vY29uZmlnL2NvbmZpZy5zZXJ2aWNlJztcclxuaW1wb3J0IHtEbXNPYmplY3R9IGZyb20gJy4uLy4uL21vZGVsL2Rtcy1vYmplY3QubW9kZWwnO1xyXG5pbXBvcnQgKiBhcyBGaWxlU2F2ZXIgZnJvbSAnZmlsZS1zYXZlcic7XHJcbmltcG9ydCB7TG9nZ2VyfSBmcm9tICcuLi9sb2dnZXIvbG9nZ2VyJztcclxuaW1wb3J0IHtBdXRoUHJvZmlsZX0gZnJvbSAnLi4vYXV0aC9hdXRoLXByb2ZpbGUuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtIdHRwUGFyYW1zfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7VXRpbHN9IGZyb20gJy4uLy4uL3V0aWwvdXRpbHMnO1xyXG5pbXBvcnQge2ZpbmFsaXplLCBzaGFyZVJlcGxheX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuLyoqXHJcbiAqIEh0dHBPcHRpb25zIGZvciBodHRwIHJlcXVlc3RcclxuICogQHBhcmFtIG9ic2VydmU6ICdib2R5JyB8ICdldmVudHMnIHwgJ3Jlc3BvbnNlJ1xyXG4gKiBAcGFyYW0gcmVzcG9uc2VUeXBlOiAnYXJyYXlidWZmZXInIHwgJ2Jsb2InIHwgJ2pzb24nIHwgJ3RleHQnXHJcbiAqL1xyXG4gZXhwb3J0IGludGVyZmFjZSBIdHRwT3B0aW9ucyB7XHJcbiAgaGVhZGVycz86XHJcbiAgICB8IEh0dHBIZWFkZXJzXHJcbiAgICB8IHtcclxuICAgICAgICBbaGVhZGVyOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXTtcclxuICAgICAgfTtcclxuICBvYnNlcnZlPzogYW55O1xyXG4gIHBhcmFtcz86XHJcbiAgICB8IEh0dHBQYXJhbXNcclxuICAgIHwge1xyXG4gICAgICAgIFtwYXJhbTogc3RyaW5nXTogc3RyaW5nIHwgc3RyaW5nW107XHJcbiAgICAgIH07XHJcbiAgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuO1xyXG4gIHJlc3BvbnNlVHlwZT86IGFueTtcclxuICB3aXRoQ3JlZGVudGlhbHM/OiBib29sZWFuO1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIGBCYWNrZW5kU2VydmljZWAgZW5jYXBzdWxhdGVzIHRoZSBjb21tdW5pY2F0aW9uIHdpdGggdGhlIHl1dXZpczxzdXA+JnJlZzs8L3N1cD4gUkFEIFJFU1QgZW5kcG9pbnRzLlxyXG4gKlxyXG4gKiBBcyB5dXV2aXM8c3VwPiZyZWc7PC9zdXA+IFJBRCBwcm92aWRlcyBkaWZmZXJlbnQgc2VydmljZXMsIHRoaXMgc2VydmljZSBpcyBhbHNvIGNhcGFibGUgb2YgcHJvdmlkaW5nIHRoZSBiYXNlIFVSSXMgZm9yIHRob3NlIHNlcnZpY2VzLlxyXG4gKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQmFja2VuZFNlcnZpY2Uge1xyXG5cclxuICBwcml2YXRlIGF1dGhQcm9maWxlOiBBdXRoUHJvZmlsZTtcclxuICBwcml2YXRlIGNhY2hlID0gbmV3IE1hcDxzdHJpbmcsIGFueT4oKTtcclxuICBwcml2YXRlIHRlbXAgPSBuZXcgTWFwPHN0cmluZywgT2JzZXJ2YWJsZTxhbnk+PigpO1xyXG4gIHByaXZhdGUgaGVhZGVycyA9IHRoaXMuc2V0RGVmYXVsdEhlYWRlcnMoKTtcclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgICAgICAgICAgICBwcml2YXRlIGxvZ2dlcjogTG9nZ2VyLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgY29uZmlnOiBDb25maWcpIHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIGRlZmF1bHQgcHJvZmlsZSBpcyBzdXBwb3NlZCB0byB1c2UgTlRMTVxyXG4gICAgICogQHR5cGUge2hvc3Q6IHN0cmluZzsgbnRsbTogYm9vbGVhbn1cclxuICAgICAqL1xyXG4gICAgdGhpcy5hdXRoUHJvZmlsZSA9IHtcclxuICAgICAgaG9zdDogJycsXHJcbiAgICAgIG50bG06IHRydWVcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgcHVibGljIHNldEF1dGhQcm9maWxlKHByb2ZpbGU/OiBBdXRoUHJvZmlsZSkge1xyXG4gICAgaWYgKHByb2ZpbGUpIHtcclxuICAgICAgdGhpcy5oZWFkZXJzID0gdGhpcy5zZXREZWZhdWx0SGVhZGVycygpO1xyXG4gICAgICB0aGlzLmF1dGhQcm9maWxlID0gcHJvZmlsZTtcclxuICAgICAgaWYgKHRoaXMuYXV0aFByb2ZpbGUuYXV0aCkge1xyXG4gICAgICAgIC8vIHRoaXMuc2V0SGVhZGVyKCdBdXRob3JpemF0aW9uJywgdGhpcy5hdXRoUHJvZmlsZS5hdXRoKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmhlYWRlcnMuZGVsZXRlKCdBdXRob3JpemF0aW9uJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGQgYSBuZXcgaGVhZGVyLlxyXG4gICAqIEBwYXJhbSBrZXkgVGhlIGhlYWRlcnMgbmFtZVxyXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWVcclxuICAgKi9cclxuICBwdWJsaWMgc2V0SGVhZGVyKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICBpZiAodmFsdWUgJiYgdmFsdWUubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuaGVhZGVycyA9IHRoaXMuaGVhZGVycy5zZXQoa2V5LCB2YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgdGhlIGN1cnJlbnQgaGVhZGVyc1xyXG4gICAqIEByZXR1cm5zIFRoZSBgSHR0cEhlYWRlcnNgIHRoYXQgYXJlIGN1cnJlbnRseSBzZXQgdXBcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0SGVhZGVycygpOiBIdHRwSGVhZGVycyB7XHJcbiAgICByZXR1cm4gdGhpcy5oZWFkZXJzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRIdHRwT3B0aW9ucyhyZXF1ZXN0T3B0aW9ucz86IEh0dHBPcHRpb25zKTogSHR0cE9wdGlvbnMge1xyXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe2hlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpfSwgcmVxdWVzdE9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgYmFzZSBVUkkgZm9yIHRoZSBETVMtU2VydmljZSBlbmRwb2ludFxyXG4gICAqIEByZXR1cm5zIEJhc2UgVVJJXHJcbiAgICovXHJcbiAgcHVibGljIGdldFNlcnZpY2VCYXNlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0SG9zdCgpICsgdGhpcy5jb25maWcuZ2V0VXJpKCdzZXJ2aWNlQmFzZScpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgYmFzZSBVUkkgZm9yIHRoZSBTZWFyY2gtU2VydmljZSBlbmRwb2ludFxyXG4gICAqIEByZXR1cm5zIEJhc2UgVVJJXHJcbiAgICovXHJcbiAgcHVibGljIGdldFNlYXJjaEJhc2UoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRIb3N0KCkgKyB0aGlzLmNvbmZpZy5nZXRVcmkoJ3NlYXJjaEJhc2UnKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIGJhc2UgVVJJIGZvciB0aGUgQ29udGV4dC1TZXJ2aWNlIGVuZHBvaW50XHJcbiAgICogQHJldHVybnMgQmFzZSBVUklcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0Q29udGV4dEJhc2UoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRIb3N0KCkgKyB0aGlzLmNvbmZpZy5nZXRVcmkoJ2NvbnRleHRCYXNlJyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXRzIHRoZSBiYXNlIFVSSSBmb3IgdGhlIEluYm94LVNlcnZpY2UgZW5kcG9pbnRcclxuICAgKiBAcmV0dXJucyBCYXNlIFVSSVxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRJbmJveEJhc2UoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRIb3N0KCkgKyB0aGlzLmNvbmZpZy5nZXRVcmkoJ2luYm94QmFzZScpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgYmFzZSBVUkkgZm9yIHRoZSBCUE0tU2VydmljZSBlbmRwb2ludFxyXG4gICAqIEByZXR1cm5zIEJhc2UgVVJJXHJcbiAgICovXHJcbiAgcHVibGljIGdldEJwbUJhc2UoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRIb3N0KCkgKyB0aGlzLmNvbmZpZy5nZXRVcmkoJ2JwbUJhc2UnKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIGJhc2UgVVJJIGZvciB0aGUgQWdlbnQtU2VydmljZSBlbmRwb2ludFxyXG4gICAqIEByZXR1cm5zIEJhc2UgVVJJXHJcbiAgICovXHJcbiAgcHVibGljIGdldEFnZW50QmFzZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmdldEhvc3QoKSArIHRoaXMuY29uZmlnLmdldFVyaSgnYWdlbnRCYXNlJyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXRzIHRoZSBiYXNlIFVSSSBmb3IgdGhlIFN0YXR1cy1TZXJ2aWNlIGVuZHBvaW50XHJcbiAgICogQHJldHVybnMgQmFzZSBVUklcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0U3RhdHVzQmFzZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmdldEhvc3QoKSArIHRoaXMuY29uZmlnLmdldFVyaSgnc3RhdHVzQmFzZScpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRJY29uQmFzZShpZDogc3RyaW5nID0gJycpIHtcclxuICAgIHJldHVybiB0aGlzLmdldFNlcnZpY2VCYXNlKCkgKyAnL3VpL2ljb24vJyArIGlkO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRIb3N0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYXV0aFByb2ZpbGUuaG9zdCB8fCAnJztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFdyYXBwZWQgSFRUUCBHRVQgbWV0aG9kXHJcbiAgICogQHBhcmFtIHVyaSBUaGUgUkVTVCBVUkkgdG8gYmUgcXVlcmllZFxyXG4gICAqIEBwYXJhbSBiYXNlIFRoZSBCYXNlIFVSSSAoYmFja2VuZCBzZXJ2aWNlKSB0byBiZSB1c2VkXHJcbiAgICogQHBhcmFtIHJlcXVlc3RPcHRpb25zIEFkZGl0aW9uYWwgcmVxdWVzdCBvcHRpb25zXHJcbiAgICogQHJldHVybnMgVGhlIGRhdGEgcmV0cmlldmVkIGZyb20gdGhlIGdpdmVuIGVuZHBvaW50XHJcbiAgICovXHJcbiAgcHVibGljIGdldCh1cmk6IHN0cmluZywgYmFzZT86IHN0cmluZywgcmVxdWVzdE9wdGlvbnM/OiBIdHRwT3B0aW9ucyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCgoYmFzZSB8fCB0aGlzLmdldFNlcnZpY2VCYXNlKCkpICsgdXJpLCB0aGlzLmdldEh0dHBPcHRpb25zKHJlcXVlc3RPcHRpb25zKSk7XHJcbiAgfVxyXG4gIFxyXG4gIC8qKlxyXG4gICAqIFdyYXBwZWQgSFRUUCBQVVQgbWV0aG9kXHJcbiAgICogQHBhcmFtIHVyaSBUaGUgdGFyZ2V0IFJFU1QgVVJJXHJcbiAgICogQHBhcmFtIGRhdGEgRGF0YSB0byBiZSAncG9zdGVkJ1xyXG4gICAqIEBwYXJhbSBiYXNlIFRoZSBCYXNlIFVSSSAoYmFja2VuZCBzZXJ2aWNlKSB0byBiZSB1c2VkXHJcbiAgICogQHBhcmFtIHJlcXVlc3RPcHRpb25zIEFkZGl0aW9uYWwgcmVxdWVzdCBvcHRpb25zXHJcbiAgICogQHJldHVybnMgVGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgdGFyZ2V0IFBVVCBlbmRwb2ludFxyXG4gICAqL1xyXG4gIHB1YmxpYyBwdXQodXJpOiBzdHJpbmcsIGRhdGE/OiBhbnksIGJhc2U/OiBzdHJpbmcsIHJlcXVlc3RPcHRpb25zPzogSHR0cE9wdGlvbnMpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoKGJhc2UgfHwgdGhpcy5nZXRTZXJ2aWNlQmFzZSgpKSArIHVyaSwgZGF0YSwgdGhpcy5nZXRIdHRwT3B0aW9ucyhyZXF1ZXN0T3B0aW9ucykpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRKc29uKHVyaTogc3RyaW5nLCBiYXNlPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmdldCh1cmksIGJhc2UgfHwgdGhpcy5nZXRTZXJ2aWNlQmFzZSgpLCB7cmVzcG9uc2VUeXBlOiAnanNvbid9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFdyYXBwZWQgSFRUUCBQT1NUIG1ldGhvZFxyXG4gICAqIEBwYXJhbSB1cmkgVGhlIHRhcmdldCBSRVNUIFVSSVxyXG4gICAqIEBwYXJhbSBkYXRhIERhdGEgdG8gYmUgJ3Bvc3RlZCdcclxuICAgKiBAcGFyYW0gYmFzZSBUaGUgQmFzZSBVUkkgKGJhY2tlbmQgc2VydmljZSkgdG8gYmUgdXNlZFxyXG4gICAqIEBwYXJhbSByZXF1ZXN0T3B0aW9ucyBBZGRpdGlvbmFsIHJlcXVlc3Qgb3B0aW9uc1xyXG4gICAqIEByZXR1cm5zIFRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIHRhcmdldCBQT1NUIGVuZHBvaW50XHJcbiAgICovXHJcbiAgcHVibGljIHBvc3QodXJpOiBzdHJpbmcsIGRhdGE/LCBiYXNlPzogc3RyaW5nLCByZXF1ZXN0T3B0aW9ucz86IEh0dHBPcHRpb25zKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IGJhc2VVcmkgPSBiYXNlIHx8IHRoaXMuZ2V0U2VydmljZUJhc2UoKTtcclxuICAgIGNvbnN0IHBheWxvYWQgPSBkYXRhID8gSlNPTi5zdHJpbmdpZnkoZGF0YSkgOiAnJztcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHtiYXNlVXJpfSR7dXJpfWAsIHBheWxvYWQsIHRoaXMuZ2V0SHR0cE9wdGlvbnMocmVxdWVzdE9wdGlvbnMpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFBlcmZvcm1zIGEgbXVsdGlwYXJ0IGZvcm0gZGF0YSBQT1NUIHJlcXVlc3QuXHJcbiAgICogQHBhcmFtIHVyaSBUaGUgdGFyZ2V0IFJFU1QgVVJJXHJcbiAgICogQHBhcmFtIGZvcm1EYXRhIEZvcm1EYXRhIHRvIGJlICdwb3N0ZWQnXHJcbiAgICogQHBhcmFtIGJhc2UgVGhlIEJhc2UgVVJJIChiYWNrZW5kIHNlcnZpY2UpIHRvIGJlIHVzZWRcclxuICAgKiBAcGFyYW0gcmVxdWVzdE9wdGlvbnMgQWRkaXRpb25hbCByZXF1ZXN0IG9wdGlvbnNcclxuICAgKiBAcmV0dXJucyBUaGUgcmV0dXJuIHZhbHVlIG9mIHRoZSB0YXJnZXQgUE9TVCBlbmRwb2ludFxyXG4gICAqL1xyXG4gIHB1YmxpYyBwb3N0TXVsdGlQYXJ0KHVyaTogc3RyaW5nLCBmb3JtRGF0YTogRm9ybURhdGEsIGJhc2U/OiBzdHJpbmcsIHJlcXVlc3RPcHRpb25zPzogSHR0cE9wdGlvbnMpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgYmFzZVVyaSA9IGJhc2UgfHwgdGhpcy5nZXRTZXJ2aWNlQmFzZSgpO1xyXG4gICAgY29uc3QgaGVhZGVycyA9IHRoaXMuZ2V0SGVhZGVycygpO1xyXG4gICAgaGVhZGVycy5kZWxldGUoJ0NvbnRlbnQtVHlwZScpO1xyXG4gICAgY29uc3QgcmVxT3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe2hlYWRlcnM6IGhlYWRlcnN9LCByZXF1ZXN0T3B0aW9ucyk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7YmFzZVVyaX0ke3VyaX1gLCBmb3JtRGF0YSwgcmVxT3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBXcmFwcGVkIEhUVFAgREVMRVRFIG1ldGhvZFxyXG4gICAqIEBwYXJhbSB1cmkgVGhlIHRhcmdldCBSRVNUIFVSSVxyXG4gICAqIEBwYXJhbSBiYXNlIFRoZSBCYXNlIFVSSSAoYmFja2VuZCBzZXJ2aWNlKSB0byBiZSB1c2VkXHJcbiAgICogQHBhcmFtIHJlcXVlc3RPcHRpb25zIEFkZGl0aW9uYWwgcmVxdWVzdCBvcHRpb25zXHJcbiAgICogQHJldHVybnMgVGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgdGFyZ2V0IERFTEVURSBlbmRwb2ludFxyXG4gICAqL1xyXG4gIHB1YmxpYyBkZWwodXJpOiBzdHJpbmcsIGJhc2U/OiBzdHJpbmcsIHJlcXVlc3RPcHRpb25zPzogSHR0cE9wdGlvbnMpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoKGJhc2UgfHwgdGhpcy5nZXRTZXJ2aWNlQmFzZSgpKSArIHVyaSwgdGhpcy5nZXRIdHRwT3B0aW9ucyhyZXF1ZXN0T3B0aW9ucykpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqIFNvZnQgdXBkYXRlIGZvciBsaXN0cyAtIGVuYWJsZXMgZ3JpZCB0byBoYW5kbGUgYWxsIGNoYW5nZXNcclxuICAgKiB0byBhZGQgbmV3IC0gb25seSBpdGVtIHNob3VsZCBiZSBzcGVjaWZpZWRcclxuICAgKiB0byByZW1vdmUgLSBvbmx5IGlkIHNob3VsZCBiZSBzcGVjaWZpZWRcclxuICAgKiB0byB1cGRhdGUgLSBib3RoIHBhcmFtcyBzaG91bGQgYmUgc3BlY2lmaWVkXHJcbiAgICpcclxuICAgKiBAcGFyYW0gYW55W10gbGlzdCBPcmlnaW5hbCBsaXN0IG9mIGl0ZW1zXHJcbiAgICogQHBhcmFtIGlkPzogc3RyaW5nOyBpdGVtPzogYW55IGRhdGFbXVxyXG4gICAqIEByZXR1cm5zIGFueVtdXHJcbiAgICovXHJcbiAgcHVibGljIHVwZGF0ZShsaXN0OiBhbnlbXSwgZGF0YTogeyBpZD86IHN0cmluZywgaXRlbT86IGFueSB9W10pIHtcclxuICAgIGRhdGEuZm9yRWFjaCgoe2lkLCBpdGVtfSkgPT4ge1xyXG4gICAgICBpZiAoaWQpIHtcclxuICAgICAgICBjb25zdCBfaXRlbSA9IGxpc3QuZmluZChsID0+IGwuaWQgPT09IGlkKTtcclxuICAgICAgICBPYmplY3QuYXNzaWduKF9pdGVtLCBpdGVtLCBpdGVtID8ge19fdXBkYXRlZDogdHJ1ZX0gOiB7X19yZW1vdmVkOiB0cnVlfSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoaXRlbSkge1xyXG4gICAgICAgIGxpc3QudW5zaGlmdChPYmplY3QuYXNzaWduKGl0ZW0sIHtfX2FkZGVkOiB0cnVlfSkpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBsaXN0O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqIENhY2hlIGZvciBzbWFsbCByZXF1ZXN0cyBsaWtlIGljb25zIGFuZCBjb25maWdzXHJcbiAgICpcclxuICAgKiBAcGFyYW0gc3RyaW5nIHVyaVxyXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8YW55PlxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRWaWFDYWNoZSh1cmk6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBpZiAodGhpcy5jYWNoZS5oYXModXJpKSkge1xyXG4gICAgICByZXR1cm4gb2JzZXJ2YWJsZU9mKHRoaXMuY2FjaGUuZ2V0KHVyaSkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZ2V0VmlhVGVtcENhY2hlKHVyaSwgKCkgPT4gdGhpcy5odHRwLmdldCh1cmksIHtyZXNwb25zZVR5cGU6ICd0ZXh0J30pLnBpcGUoXHJcbiAgICAgICAgdGFwKHRleHQgPT4gdGhpcy5jYWNoZS5zZXQodXJpLCB0ZXh0KSkpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKiBUZW1wb3JhcnkgQ2FjaGUgZm9yIG11bHRpcGxlIGlkZW50aWNhbCByZXF1ZXN0c1xyXG4gICAqXHJcbiAgICogQHBhcmFtIHN0cmluZyBpZFxyXG4gICAqIEBwYXJhbSBGdW5jdGlvbiByZXF1ZXN0XHJcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxhbnk+XHJcbiAgICovXHJcbiAgcHVibGljIGdldFZpYVRlbXBDYWNoZShpZDogc3RyaW5nLCByZXF1ZXN0PzogRnVuY3Rpb24pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgaWYgKHRoaXMudGVtcC5oYXMoaWQpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnRlbXAuZ2V0KGlkKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHJlc3AgPSAocmVxdWVzdCA/IHJlcXVlc3QoKSA6IHRoaXMuZ2V0KGlkKSkucGlwZShcclxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB0aGlzLnRlbXAuZGVsZXRlKGlkKSksXHJcbiAgICAgICAgc2hhcmVSZXBsYXkoMSlcclxuICAgICAgKTtcclxuICAgICAgdGhpcy50ZW1wLnNldChpZCwgcmVzcCk7XHJcbiAgICAgIHJldHVybiByZXNwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRG93bmxvYWQgdGhlIGNvbnRlbnQgb2YgZG1zIG9iamVjdHMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gRG1zT2JqZWN0W10gZG1zT2JqZWN0cyBBcnJheSBvZiBkbXMgb2JqZWN0cyB0byBiZSBkb3dubG9hZGVkXHJcbiAgICogQHBhcmFtIFwiUERGXCIgfCBcIlRJRkZcIiB8IFwiVEVYVFwiIHwgXCJKUEVHXCIgcmVuZGl0aW9uIFRoZSB0eXBlIG9mIHJlbmRpdGlvbiB0byBiZSBkb3dubG9hZGVkLiBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgb3JpZ2luYWwgY29udGVudCB3aWxsIGJlIGRvd25sb2FkZWQuXHJcbiAgICogUG9zc2libGUgcmVuZGl0aW9ucyBhcmUgYFBERmAsIGBUSUZGYCwgYFRFWFRgLCBgSlBFR2AuXHJcbiAgICovXHJcbiAgcHVibGljIGRvd25sb2FkQ29udGVudChkbXNPYmplY3RzOiBEbXNPYmplY3RbXSwgcmVuZGl0aW9uPzogJ1BERicgfCAnVElGRicgfCAnVEVYVCcgfCAnSlBFRycsIGZpbGVOYW1lV2l0aFZlcnNpb25OdW1iZXI/OiBib29sZWFuKSB7XHJcblxyXG4gICAgZG1zT2JqZWN0cy5mb3JFYWNoKGRtc09iamVjdCA9PiB7XHJcbiAgICAgIGlmIChkbXNPYmplY3QuY29udGVudCkge1xyXG5cclxuICAgICAgICBsZXQgdXJpID0gYCR7dGhpcy5nZXRTZXJ2aWNlQmFzZSgpfS9kbXMvJHtkbXNPYmplY3QuY29udGVudC5pZH0vY29udGVudD90eXBlPSR7ZG1zT2JqZWN0LmNvbnRlbnQudHlwZX0mYXNkb3dubG9hZD10cnVlYDtcclxuICAgICAgICBpZiAocmVuZGl0aW9uKSB7XHJcbiAgICAgICAgICB1cmkgKz0gYCZyZW5kaXRpb249JHtyZW5kaXRpb259Jl9pbnRlbnQ9RE9XTkxPQURfJHtyZW5kaXRpb259YDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdXJpICs9ICcmX2ludGVudD1ET1dOTE9BRCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChkbXNPYmplY3QuY29udGVudC5pZCA9PT0gZG1zT2JqZWN0LmlkKSB7XHJcbiAgICAgICAgICB1cmkgKz0gYCZ2ZXJzaW9uPSR7ZG1zT2JqZWN0LnZlcnNpb259YDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5kb3dubG9hZCh1cmksIGZpbGVOYW1lV2l0aFZlcnNpb25OdW1iZXIgPyBkbXNPYmplY3QudmVyc2lvbiA6IG51bGwpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKCdUaGUgcHJvdmlkZWQgZG1zIG9iamVjdCBoYXMgbm8gY29udGVudCcsIGRtc09iamVjdCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGRvd25sb2FkKHVyaTogc3RyaW5nLCB2ZXJzaW9uPzogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmh0dHAuZ2V0KHVyaSwge29ic2VydmU6ICdyZXNwb25zZScsIHJlc3BvbnNlVHlwZTogJ2Jsb2InfSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgRmlsZVNhdmVyLnNhdmVBcyhcclxuICAgICAgICAgIHJlcy5ib2R5LFxyXG4gICAgICAgICAgdGhpcy5nZXRGaWxlTmFtZUZyb21IdHRwUmVzcG9uc2UocmVzLCB2ZXJzaW9uKVxyXG4gICAgICAgICk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRGaWxlTmFtZUZyb21IdHRwUmVzcG9uc2UocmVzOiBIdHRwUmVzcG9uc2U8YW55PiwgdmVyc2lvbjogbnVtYmVyKSB7XHJcbiAgICBjb25zdCBjb250ZW50RGlzcG9zaXRpb25IZWFkZXIgPSByZXMuaGVhZGVycy5nZXQoJ0NvbnRlbnQtRGlzcG9zaXRpb24nKSB8fCAnJztcclxuICAgIGNvbnN0IGVuY29kZWRGaWxlTmFtZU1hdGNoUmVzdWx0ID0gY29udGVudERpc3Bvc2l0aW9uSGVhZGVyLm1hdGNoKCdmaWxlbmFtZVxcXFwqPVVURi04XFwnXFwnKC4qKScpO1xyXG4gICAgY29uc3QgZW5jb2RlZEZpbGVOYW1lID0gZW5jb2RlZEZpbGVOYW1lTWF0Y2hSZXN1bHQgPyBlbmNvZGVkRmlsZU5hbWVNYXRjaFJlc3VsdFsxXSA6IG51bGw7XHJcbiAgICBjb25zdCBmaWxlbmFtZSA9IGVuY29kZWRGaWxlTmFtZSA/IGRlY29kZVVSSUNvbXBvbmVudChlbmNvZGVkRmlsZU5hbWUpIDogJ3Vua25vd24nO1xyXG4gICAgY29uc3QgaW5kZXggPSAhfmZpbGVuYW1lLmxhc3RJbmRleE9mKCcuJykgPyBmaWxlbmFtZS5sZW5ndGggOiBmaWxlbmFtZS5sYXN0SW5kZXhPZignLicpO1xyXG4gICAgcmV0dXJuICF2ZXJzaW9uID8gZmlsZW5hbWUgOiBgJHtmaWxlbmFtZS5zbGljZSgwLCBpbmRleCl9X3Yke3ZlcnNpb259JHtmaWxlbmFtZS5zbGljZShpbmRleCl9YDtcclxuICB9XHJcblxyXG5cclxuICAvKipcclxuICAgKiBHZXR0ZXIgZm9yIHRoZSBIVFRQIEhlYWRlcnNcclxuICAgKlxyXG4gICAqIEByZXR1cm5zIEh0dHBIZWFkZXJzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzZXREZWZhdWx0SGVhZGVycygpOiBIdHRwSGVhZGVycyB7XHJcbiAgICByZXR1cm4gbmV3IEh0dHBIZWFkZXJzKHtcclxuICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcclxuICAgICAgJ1gtb3MtaW5jbHVkZS1saW5rcyc6ICdmYWxzZScsXHJcbiAgICAgICdYLW9zLWluY2x1ZGUtYWN0aW9ucyc6ICdmYWxzZScsXHJcbiAgICAgICdYLW9zLXN5bmMtaW5kZXgnOiAndHJ1ZSdcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
317
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2VuZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW8tc2RrL2NvcmUvc3JjL2xpYi9zZXJ2aWNlL2JhY2tlbmQvYmFja2VuZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxFQUFFLElBQUksWUFBWSxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBRXBELE9BQU8sRUFBQyxNQUFNLEVBQU8sR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsVUFBVSxFQUFFLFdBQVcsRUFBZSxNQUFNLHNCQUFzQixDQUFDO0FBRTNFLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUVoRCxPQUFPLEtBQUssU0FBUyxNQUFNLFlBQVksQ0FBQztBQUN4QyxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFJeEMsT0FBTyxFQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQXlCckQ7Ozs7R0FJRztBQUVILE1BQU0sT0FBTyxjQUFjO0lBU3pCOztPQUVHO0lBQ0gsWUFBb0IsSUFBZ0IsRUFDaEIsTUFBYyxFQUNkLE1BQWM7UUFGZCxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBWjNCLG1CQUFjLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUdqRCxVQUFLLEdBQUcsSUFBSSxHQUFHLEVBQWUsQ0FBQztRQUMvQixTQUFJLEdBQUcsSUFBSSxHQUFHLEVBQTJCLENBQUM7UUFDMUMsWUFBTyxHQUFHLElBQUksQ0FB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RixPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEtBQUssT0FBTyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztJQUNqRyxDQUFDO0lBR0Q7Ozs7T0FJRztJQUNLLGlCQUFpQjtRQUN2QixPQUFPLElBQUksV0FBVyxDQUFDO1lBQ3JCLGNBQWMsRUFBRSxrQkFBa0I7WUFDbEMsb0JBQW9CLEVBQUUsT0FBTztZQUM3QixzQkFBc0IsRUFBRSxPQUFPO1lBQy9CLGlCQUFpQixFQUFFLE1BQU07U0FDMUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7O1lBelVGLFVBQVU7OztZQXZDSCxVQUFVO1lBS1YsTUFBTTtZQUhOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge29mIGFzIG9ic2VydmFibGVPZiwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQge2ZpbHRlciwgbWFwLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtIdHRwQ2xpZW50LCBIdHRwSGVhZGVycywgSHR0cFJlc3BvbnNlfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7SUh0dHBPcHRpb25zfSBmcm9tICcuLi8uLi9pbnRlcmZhY2UvaHR0cC1vcHRpb25zLmludGVyZmFjZSc7XHJcbmltcG9ydCB7Q29uZmlnfSBmcm9tICcuLi9jb25maWcvY29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQge0Rtc09iamVjdH0gZnJvbSAnLi4vLi4vbW9kZWwvZG1zLW9iamVjdC5tb2RlbCc7XHJcbmltcG9ydCAqIGFzIEZpbGVTYXZlciBmcm9tICdmaWxlLXNhdmVyJztcclxuaW1wb3J0IHtMb2dnZXJ9IGZyb20gJy4uL2xvZ2dlci9sb2dnZXInO1xyXG5pbXBvcnQge0F1dGhQcm9maWxlfSBmcm9tICcuLi9hdXRoL2F1dGgtcHJvZmlsZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge0h0dHBQYXJhbXN9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHtVdGlsc30gZnJvbSAnLi4vLi4vdXRpbC91dGlscyc7XHJcbmltcG9ydCB7ZmluYWxpemUsIHNoYXJlUmVwbGF5fSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG4vKipcclxuICogSHR0cE9wdGlvbnMgZm9yIGh0dHAgcmVxdWVzdFxyXG4gKiBAcGFyYW0gb2JzZXJ2ZTogJ2JvZHknIHwgJ2V2ZW50cycgfCAncmVzcG9uc2UnXHJcbiAqIEBwYXJhbSByZXNwb25zZVR5cGU6ICdhcnJheWJ1ZmZlcicgfCAnYmxvYicgfCAnanNvbicgfCAndGV4dCdcclxuICovXHJcbiBleHBvcnQgaW50ZXJmYWNlIEh0dHBPcHRpb25zIHtcclxuICBoZWFkZXJzPzpcclxuICAgIHwgSHR0cEhlYWRlcnNcclxuICAgIHwge1xyXG4gICAgICAgIFtoZWFkZXI6IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdO1xyXG4gICAgICB9O1xyXG4gIG9ic2VydmU/OiBhbnk7XHJcbiAgcGFyYW1zPzpcclxuICAgIHwgSHR0cFBhcmFtc1xyXG4gICAgfCB7XHJcbiAgICAgICAgW3BhcmFtOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXTtcclxuICAgICAgfTtcclxuICByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW47XHJcbiAgcmVzcG9uc2VUeXBlPzogYW55O1xyXG4gIHdpdGhDcmVkZW50aWFscz86IGJvb2xlYW47XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogYEJhY2tlbmRTZXJ2aWNlYCBlbmNhcHN1bGF0ZXMgdGhlIGNvbW11bmljYXRpb24gd2l0aCB0aGUgeXV1dmlzPHN1cD4mcmVnOzwvc3VwPiBSQUQgUkVTVCBlbmRwb2ludHMuXHJcbiAqXHJcbiAqIEFzIHl1dXZpczxzdXA+JnJlZzs8L3N1cD4gUkFEIHByb3ZpZGVzIGRpZmZlcmVudCBzZXJ2aWNlcywgdGhpcyBzZXJ2aWNlIGlzIGFsc28gY2FwYWJsZSBvZiBwcm92aWRpbmcgdGhlIGJhc2UgVVJJcyBmb3IgdGhvc2Ugc2VydmljZXMuXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBCYWNrZW5kU2VydmljZSB7XHJcblxyXG4gIHB1YmxpYyBncmlkRGF0YUZpbHRlciA9IGZpbHRlcigodjogYW55KSA9PiAhdi5fX3JlbW92ZWQpO1xyXG5cclxuICBwcml2YXRlIGF1dGhQcm9maWxlOiBBdXRoUHJvZmlsZTtcclxuICBwcml2YXRlIGNhY2hlID0gbmV3IE1hcDxzdHJpbmcsIGFueT4oKTtcclxuICBwcml2YXRlIHRlbXAgPSBuZXcgTWFwPHN0cmluZywgT2JzZXJ2YWJsZTxhbnk+PigpO1xyXG4gIHByaXZhdGUgaGVhZGVycyA9IHRoaXMuc2V0RGVmYXVsdEhlYWRlcnMoKTtcclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgICAgICAgICAgICBwcml2YXRlIGxvZ2dlcjogTG9nZ2VyLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgY29uZmlnOiBDb25maWcpIHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIGRlZmF1bHQgcHJvZmlsZSBpcyBzdXBwb3NlZCB0byB1c2UgTlRMTVxyXG4gICAgICogQHR5cGUge2hvc3Q6IHN0cmluZzsgbnRsbTogYm9vbGVhbn1cclxuICAgICAqL1xyXG4gICAgdGhpcy5hdXRoUHJvZmlsZSA9IHtcclxuICAgICAgaG9zdDogJycsXHJcbiAgICAgIG50bG06IHRydWVcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgcHVibGljIHNldEF1dGhQcm9maWxlKHByb2ZpbGU/OiBBdXRoUHJvZmlsZSkge1xyXG4gICAgaWYgKHByb2ZpbGUpIHtcclxuICAgICAgdGhpcy5oZWFkZXJzID0gdGhpcy5zZXREZWZhdWx0SGVhZGVycygpO1xyXG4gICAgICB0aGlzLmF1dGhQcm9maWxlID0gcHJvZmlsZTtcclxuICAgICAgaWYgKHRoaXMuYXV0aFByb2ZpbGUuYXV0aCkge1xyXG4gICAgICAgIC8vIHRoaXMuc2V0SGVhZGVyKCdBdXRob3JpemF0aW9uJywgdGhpcy5hdXRoUHJvZmlsZS5hdXRoKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmhlYWRlcnMuZGVsZXRlKCdBdXRob3JpemF0aW9uJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGQgYSBuZXcgaGVhZGVyLlxyXG4gICAqIEBwYXJhbSBrZXkgVGhlIGhlYWRlcnMgbmFtZVxyXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWVcclxuICAgKi9cclxuICBwdWJsaWMgc2V0SGVhZGVyKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICBpZiAodmFsdWUgJiYgdmFsdWUubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuaGVhZGVycyA9IHRoaXMuaGVhZGVycy5zZXQoa2V5LCB2YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgdGhlIGN1cnJlbnQgaGVhZGVyc1xyXG4gICAqIEByZXR1cm5zIFRoZSBgSHR0cEhlYWRlcnNgIHRoYXQgYXJlIGN1cnJlbnRseSBzZXQgdXBcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0SGVhZGVycygpOiBIdHRwSGVhZGVycyB7XHJcbiAgICByZXR1cm4gdGhpcy5oZWFkZXJzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRIdHRwT3B0aW9ucyhyZXF1ZXN0T3B0aW9ucz86IEh0dHBPcHRpb25zKTogSHR0cE9wdGlvbnMge1xyXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe2hlYWRlcnM6IHRoaXMuZ2V0SGVhZGVycygpfSwgcmVxdWVzdE9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgYmFzZSBVUkkgZm9yIHRoZSBETVMtU2VydmljZSBlbmRwb2ludFxyXG4gICAqIEByZXR1cm5zIEJhc2UgVVJJXHJcbiAgICovXHJcbiAgcHVibGljIGdldFNlcnZpY2VCYXNlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0SG9zdCgpICsgdGhpcy5jb25maWcuZ2V0VXJpKCdzZXJ2aWNlQmFzZScpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgYmFzZSBVUkkgZm9yIHRoZSBTZWFyY2gtU2VydmljZSBlbmRwb2ludFxyXG4gICAqIEByZXR1cm5zIEJhc2UgVVJJXHJcbiAgICovXHJcbiAgcHVibGljIGdldFNlYXJjaEJhc2UoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRIb3N0KCkgKyB0aGlzLmNvbmZpZy5nZXRVcmkoJ3NlYXJjaEJhc2UnKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIGJhc2UgVVJJIGZvciB0aGUgQ29udGV4dC1TZXJ2aWNlIGVuZHBvaW50XHJcbiAgICogQHJldHVybnMgQmFzZSBVUklcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0Q29udGV4dEJhc2UoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRIb3N0KCkgKyB0aGlzLmNvbmZpZy5nZXRVcmkoJ2NvbnRleHRCYXNlJyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXRzIHRoZSBiYXNlIFVSSSBmb3IgdGhlIEluYm94LVNlcnZpY2UgZW5kcG9pbnRcclxuICAgKiBAcmV0dXJucyBCYXNlIFVSSVxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRJbmJveEJhc2UoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRIb3N0KCkgKyB0aGlzLmNvbmZpZy5nZXRVcmkoJ2luYm94QmFzZScpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgYmFzZSBVUkkgZm9yIHRoZSBCUE0tU2VydmljZSBlbmRwb2ludFxyXG4gICAqIEByZXR1cm5zIEJhc2UgVVJJXHJcbiAgICovXHJcbiAgcHVibGljIGdldEJwbUJhc2UoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRIb3N0KCkgKyB0aGlzLmNvbmZpZy5nZXRVcmkoJ2JwbUJhc2UnKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIGJhc2UgVVJJIGZvciB0aGUgQWdlbnQtU2VydmljZSBlbmRwb2ludFxyXG4gICAqIEByZXR1cm5zIEJhc2UgVVJJXHJcbiAgICovXHJcbiAgcHVibGljIGdldEFnZW50QmFzZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmdldEhvc3QoKSArIHRoaXMuY29uZmlnLmdldFVyaSgnYWdlbnRCYXNlJyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXRzIHRoZSBiYXNlIFVSSSBmb3IgdGhlIFN0YXR1cy1TZXJ2aWNlIGVuZHBvaW50XHJcbiAgICogQHJldHVybnMgQmFzZSBVUklcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0U3RhdHVzQmFzZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmdldEhvc3QoKSArIHRoaXMuY29uZmlnLmdldFVyaSgnc3RhdHVzQmFzZScpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRJY29uQmFzZShpZDogc3RyaW5nID0gJycpIHtcclxuICAgIHJldHVybiB0aGlzLmdldFNlcnZpY2VCYXNlKCkgKyAnL3VpL2ljb24vJyArIGlkO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRIb3N0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYXV0aFByb2ZpbGUuaG9zdCB8fCAnJztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFdyYXBwZWQgSFRUUCBHRVQgbWV0aG9kXHJcbiAgICogQHBhcmFtIHVyaSBUaGUgUkVTVCBVUkkgdG8gYmUgcXVlcmllZFxyXG4gICAqIEBwYXJhbSBiYXNlIFRoZSBCYXNlIFVSSSAoYmFja2VuZCBzZXJ2aWNlKSB0byBiZSB1c2VkXHJcbiAgICogQHBhcmFtIHJlcXVlc3RPcHRpb25zIEFkZGl0aW9uYWwgcmVxdWVzdCBvcHRpb25zXHJcbiAgICogQHJldHVybnMgVGhlIGRhdGEgcmV0cmlldmVkIGZyb20gdGhlIGdpdmVuIGVuZHBvaW50XHJcbiAgICovXHJcbiAgcHVibGljIGdldCh1cmk6IHN0cmluZywgYmFzZT86IHN0cmluZywgcmVxdWVzdE9wdGlvbnM/OiBIdHRwT3B0aW9ucyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCgoYmFzZSB8fCB0aGlzLmdldFNlcnZpY2VCYXNlKCkpICsgdXJpLCB0aGlzLmdldEh0dHBPcHRpb25zKHJlcXVlc3RPcHRpb25zKSk7XHJcbiAgfVxyXG4gIFxyXG4gIC8qKlxyXG4gICAqIFdyYXBwZWQgSFRUUCBQVVQgbWV0aG9kXHJcbiAgICogQHBhcmFtIHVyaSBUaGUgdGFyZ2V0IFJFU1QgVVJJXHJcbiAgICogQHBhcmFtIGRhdGEgRGF0YSB0byBiZSAncG9zdGVkJ1xyXG4gICAqIEBwYXJhbSBiYXNlIFRoZSBCYXNlIFVSSSAoYmFja2VuZCBzZXJ2aWNlKSB0byBiZSB1c2VkXHJcbiAgICogQHBhcmFtIHJlcXVlc3RPcHRpb25zIEFkZGl0aW9uYWwgcmVxdWVzdCBvcHRpb25zXHJcbiAgICogQHJldHVybnMgVGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgdGFyZ2V0IFBVVCBlbmRwb2ludFxyXG4gICAqL1xyXG4gIHB1YmxpYyBwdXQodXJpOiBzdHJpbmcsIGRhdGE/OiBhbnksIGJhc2U/OiBzdHJpbmcsIHJlcXVlc3RPcHRpb25zPzogSHR0cE9wdGlvbnMpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoKGJhc2UgfHwgdGhpcy5nZXRTZXJ2aWNlQmFzZSgpKSArIHVyaSwgZGF0YSwgdGhpcy5nZXRIdHRwT3B0aW9ucyhyZXF1ZXN0T3B0aW9ucykpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRKc29uKHVyaTogc3RyaW5nLCBiYXNlPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmdldCh1cmksIGJhc2UgfHwgdGhpcy5nZXRTZXJ2aWNlQmFzZSgpLCB7cmVzcG9uc2VUeXBlOiAnanNvbid9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFdyYXBwZWQgSFRUUCBQT1NUIG1ldGhvZFxyXG4gICAqIEBwYXJhbSB1cmkgVGhlIHRhcmdldCBSRVNUIFVSSVxyXG4gICAqIEBwYXJhbSBkYXRhIERhdGEgdG8gYmUgJ3Bvc3RlZCdcclxuICAgKiBAcGFyYW0gYmFzZSBUaGUgQmFzZSBVUkkgKGJhY2tlbmQgc2VydmljZSkgdG8gYmUgdXNlZFxyXG4gICAqIEBwYXJhbSByZXF1ZXN0T3B0aW9ucyBBZGRpdGlvbmFsIHJlcXVlc3Qgb3B0aW9uc1xyXG4gICAqIEByZXR1cm5zIFRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIHRhcmdldCBQT1NUIGVuZHBvaW50XHJcbiAgICovXHJcbiAgcHVibGljIHBvc3QodXJpOiBzdHJpbmcsIGRhdGE/LCBiYXNlPzogc3RyaW5nLCByZXF1ZXN0T3B0aW9ucz86IEh0dHBPcHRpb25zKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IGJhc2VVcmkgPSBiYXNlIHx8IHRoaXMuZ2V0U2VydmljZUJhc2UoKTtcclxuICAgIGNvbnN0IHBheWxvYWQgPSBkYXRhID8gSlNPTi5zdHJpbmdpZnkoZGF0YSkgOiAnJztcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHtiYXNlVXJpfSR7dXJpfWAsIHBheWxvYWQsIHRoaXMuZ2V0SHR0cE9wdGlvbnMocmVxdWVzdE9wdGlvbnMpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFBlcmZvcm1zIGEgbXVsdGlwYXJ0IGZvcm0gZGF0YSBQT1NUIHJlcXVlc3QuXHJcbiAgICogQHBhcmFtIHVyaSBUaGUgdGFyZ2V0IFJFU1QgVVJJXHJcbiAgICogQHBhcmFtIGZvcm1EYXRhIEZvcm1EYXRhIHRvIGJlICdwb3N0ZWQnXHJcbiAgICogQHBhcmFtIGJhc2UgVGhlIEJhc2UgVVJJIChiYWNrZW5kIHNlcnZpY2UpIHRvIGJlIHVzZWRcclxuICAgKiBAcGFyYW0gcmVxdWVzdE9wdGlvbnMgQWRkaXRpb25hbCByZXF1ZXN0IG9wdGlvbnNcclxuICAgKiBAcmV0dXJucyBUaGUgcmV0dXJuIHZhbHVlIG9mIHRoZSB0YXJnZXQgUE9TVCBlbmRwb2ludFxyXG4gICAqL1xyXG4gIHB1YmxpYyBwb3N0TXVsdGlQYXJ0KHVyaTogc3RyaW5nLCBmb3JtRGF0YTogRm9ybURhdGEsIGJhc2U/OiBzdHJpbmcsIHJlcXVlc3RPcHRpb25zPzogSHR0cE9wdGlvbnMpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgYmFzZVVyaSA9IGJhc2UgfHwgdGhpcy5nZXRTZXJ2aWNlQmFzZSgpO1xyXG4gICAgY29uc3QgaGVhZGVycyA9IHRoaXMuZ2V0SGVhZGVycygpO1xyXG4gICAgaGVhZGVycy5kZWxldGUoJ0NvbnRlbnQtVHlwZScpO1xyXG4gICAgY29uc3QgcmVxT3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe2hlYWRlcnM6IGhlYWRlcnN9LCByZXF1ZXN0T3B0aW9ucyk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7YmFzZVVyaX0ke3VyaX1gLCBmb3JtRGF0YSwgcmVxT3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBXcmFwcGVkIEhUVFAgREVMRVRFIG1ldGhvZFxyXG4gICAqIEBwYXJhbSB1cmkgVGhlIHRhcmdldCBSRVNUIFVSSVxyXG4gICAqIEBwYXJhbSBiYXNlIFRoZSBCYXNlIFVSSSAoYmFja2VuZCBzZXJ2aWNlKSB0byBiZSB1c2VkXHJcbiAgICogQHBhcmFtIHJlcXVlc3RPcHRpb25zIEFkZGl0aW9uYWwgcmVxdWVzdCBvcHRpb25zXHJcbiAgICogQHJldHVybnMgVGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgdGFyZ2V0IERFTEVURSBlbmRwb2ludFxyXG4gICAqL1xyXG4gIHB1YmxpYyBkZWwodXJpOiBzdHJpbmcsIGJhc2U/OiBzdHJpbmcsIHJlcXVlc3RPcHRpb25zPzogSHR0cE9wdGlvbnMpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoKGJhc2UgfHwgdGhpcy5nZXRTZXJ2aWNlQmFzZSgpKSArIHVyaSwgdGhpcy5nZXRIdHRwT3B0aW9ucyhyZXF1ZXN0T3B0aW9ucykpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqIFNvZnQgdXBkYXRlIGZvciBsaXN0cyAtIGVuYWJsZXMgZ3JpZCB0byBoYW5kbGUgYWxsIGNoYW5nZXNcclxuICAgKiB0byBhZGQgbmV3IC0gb25seSBpdGVtIHNob3VsZCBiZSBzcGVjaWZpZWRcclxuICAgKiB0byByZW1vdmUgLSBvbmx5IGlkIHNob3VsZCBiZSBzcGVjaWZpZWRcclxuICAgKiB0byB1cGRhdGUgLSBib3RoIHBhcmFtcyBzaG91bGQgYmUgc3BlY2lmaWVkXHJcbiAgICpcclxuICAgKiBAcGFyYW0gYW55W10gbGlzdCBPcmlnaW5hbCBsaXN0IG9mIGl0ZW1zXHJcbiAgICogQHBhcmFtIGlkPzogc3RyaW5nOyBpdGVtPzogYW55IGRhdGFbXVxyXG4gICAqIEByZXR1cm5zIGFueVtdXHJcbiAgICovXHJcbiAgcHVibGljIHVwZGF0ZShsaXN0OiBhbnlbXSwgZGF0YTogeyBpZD86IHN0cmluZywgaXRlbT86IGFueSB9W10pIHtcclxuICAgIGRhdGEuZm9yRWFjaCgoe2lkLCBpdGVtfSkgPT4ge1xyXG4gICAgICBpZiAoaWQpIHtcclxuICAgICAgICBjb25zdCBfaXRlbSA9IGxpc3QuZmluZChsID0+IGwuaWQgPT09IGlkKTtcclxuICAgICAgICBPYmplY3QuYXNzaWduKF9pdGVtLCBpdGVtLCBpdGVtID8ge19fdXBkYXRlZDogdHJ1ZX0gOiB7X19yZW1vdmVkOiB0cnVlfSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoaXRlbSkge1xyXG4gICAgICAgIGxpc3QudW5zaGlmdChPYmplY3QuYXNzaWduKGl0ZW0sIHtfX2FkZGVkOiB0cnVlfSkpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBsaXN0O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqIENhY2hlIGZvciBzbWFsbCByZXF1ZXN0cyBsaWtlIGljb25zIGFuZCBjb25maWdzXHJcbiAgICpcclxuICAgKiBAcGFyYW0gc3RyaW5nIHVyaVxyXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8YW55PlxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRWaWFDYWNoZSh1cmk6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBpZiAodGhpcy5jYWNoZS5oYXModXJpKSkge1xyXG4gICAgICByZXR1cm4gb2JzZXJ2YWJsZU9mKHRoaXMuY2FjaGUuZ2V0KHVyaSkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZ2V0VmlhVGVtcENhY2hlKHVyaSwgKCkgPT4gdGhpcy5odHRwLmdldCh1cmksIHtyZXNwb25zZVR5cGU6ICd0ZXh0J30pLnBpcGUoXHJcbiAgICAgICAgdGFwKHRleHQgPT4gdGhpcy5jYWNoZS5zZXQodXJpLCB0ZXh0KSkpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKiBUZW1wb3JhcnkgQ2FjaGUgZm9yIG11bHRpcGxlIGlkZW50aWNhbCByZXF1ZXN0c1xyXG4gICAqXHJcbiAgICogQHBhcmFtIHN0cmluZyBpZFxyXG4gICAqIEBwYXJhbSBGdW5jdGlvbiByZXF1ZXN0XHJcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxhbnk+XHJcbiAgICovXHJcbiAgcHVibGljIGdldFZpYVRlbXBDYWNoZShpZDogc3RyaW5nLCByZXF1ZXN0PzogRnVuY3Rpb24pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgaWYgKHRoaXMudGVtcC5oYXMoaWQpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnRlbXAuZ2V0KGlkKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHJlc3AgPSAocmVxdWVzdCA/IHJlcXVlc3QoKSA6IHRoaXMuZ2V0KGlkKSkucGlwZShcclxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB0aGlzLnRlbXAuZGVsZXRlKGlkKSksXHJcbiAgICAgICAgc2hhcmVSZXBsYXkoMSlcclxuICAgICAgKTtcclxuICAgICAgdGhpcy50ZW1wLnNldChpZCwgcmVzcCk7XHJcbiAgICAgIHJldHVybiByZXNwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRG93bmxvYWQgdGhlIGNvbnRlbnQgb2YgZG1zIG9iamVjdHMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gRG1zT2JqZWN0W10gZG1zT2JqZWN0cyBBcnJheSBvZiBkbXMgb2JqZWN0cyB0byBiZSBkb3dubG9hZGVkXHJcbiAgICogQHBhcmFtIFwiUERGXCIgfCBcIlRJRkZcIiB8IFwiVEVYVFwiIHwgXCJKUEVHXCIgcmVuZGl0aW9uIFRoZSB0eXBlIG9mIHJlbmRpdGlvbiB0byBiZSBkb3dubG9hZGVkLiBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgb3JpZ2luYWwgY29udGVudCB3aWxsIGJlIGRvd25sb2FkZWQuXHJcbiAgICogUG9zc2libGUgcmVuZGl0aW9ucyBhcmUgYFBERmAsIGBUSUZGYCwgYFRFWFRgLCBgSlBFR2AuXHJcbiAgICovXHJcbiAgcHVibGljIGRvd25sb2FkQ29udGVudChkbXNPYmplY3RzOiBEbXNPYmplY3RbXSwgcmVuZGl0aW9uPzogJ1BERicgfCAnVElGRicgfCAnVEVYVCcgfCAnSlBFRycsIGZpbGVOYW1lV2l0aFZlcnNpb25OdW1iZXI/OiBib29sZWFuKSB7XHJcblxyXG4gICAgZG1zT2JqZWN0cy5mb3JFYWNoKGRtc09iamVjdCA9PiB7XHJcbiAgICAgIGlmIChkbXNPYmplY3QuY29udGVudCkge1xyXG5cclxuICAgICAgICBsZXQgdXJpID0gYCR7dGhpcy5nZXRTZXJ2aWNlQmFzZSgpfS9kbXMvJHtkbXNPYmplY3QuY29udGVudC5pZH0vY29udGVudD90eXBlPSR7ZG1zT2JqZWN0LmNvbnRlbnQudHlwZX0mYXNkb3dubG9hZD10cnVlYDtcclxuICAgICAgICBpZiAocmVuZGl0aW9uKSB7XHJcbiAgICAgICAgICB1cmkgKz0gYCZyZW5kaXRpb249JHtyZW5kaXRpb259Jl9pbnRlbnQ9RE9XTkxPQURfJHtyZW5kaXRpb259YDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdXJpICs9ICcmX2ludGVudD1ET1dOTE9BRCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChkbXNPYmplY3QuY29udGVudC5pZCA9PT0gZG1zT2JqZWN0LmlkKSB7XHJcbiAgICAgICAgICB1cmkgKz0gYCZ2ZXJzaW9uPSR7ZG1zT2JqZWN0LnZlcnNpb259YDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5kb3dubG9hZCh1cmksIGZpbGVOYW1lV2l0aFZlcnNpb25OdW1iZXIgPyBkbXNPYmplY3QudmVyc2lvbiA6IG51bGwpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKCdUaGUgcHJvdmlkZWQgZG1zIG9iamVjdCBoYXMgbm8gY29udGVudCcsIGRtc09iamVjdCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGRvd25sb2FkKHVyaTogc3RyaW5nLCB2ZXJzaW9uPzogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmh0dHAuZ2V0KHVyaSwge29ic2VydmU6ICdyZXNwb25zZScsIHJlc3BvbnNlVHlwZTogJ2Jsb2InfSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgRmlsZVNhdmVyLnNhdmVBcyhcclxuICAgICAgICAgIHJlcy5ib2R5LFxyXG4gICAgICAgICAgdGhpcy5nZXRGaWxlTmFtZUZyb21IdHRwUmVzcG9uc2UocmVzLCB2ZXJzaW9uKVxyXG4gICAgICAgICk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRGaWxlTmFtZUZyb21IdHRwUmVzcG9uc2UocmVzOiBIdHRwUmVzcG9uc2U8YW55PiwgdmVyc2lvbjogbnVtYmVyKSB7XHJcbiAgICBjb25zdCBjb250ZW50RGlzcG9zaXRpb25IZWFkZXIgPSByZXMuaGVhZGVycy5nZXQoJ0NvbnRlbnQtRGlzcG9zaXRpb24nKSB8fCAnJztcclxuICAgIGNvbnN0IGVuY29kZWRGaWxlTmFtZU1hdGNoUmVzdWx0ID0gY29udGVudERpc3Bvc2l0aW9uSGVhZGVyLm1hdGNoKCdmaWxlbmFtZVxcXFwqPVVURi04XFwnXFwnKC4qKScpXHJcbiAgICAgIHx8IGNvbnRlbnREaXNwb3NpdGlvbkhlYWRlci5tYXRjaCgnZmlsZW5hbWU9XFxcIiguKilcXFwiJyk7XHJcbiAgICBjb25zdCBlbmNvZGVkRmlsZU5hbWUgPSBlbmNvZGVkRmlsZU5hbWVNYXRjaFJlc3VsdCA/IGVuY29kZWRGaWxlTmFtZU1hdGNoUmVzdWx0WzFdIDogbnVsbDtcclxuICAgIGNvbnN0IGZpbGVuYW1lID0gZW5jb2RlZEZpbGVOYW1lID8gZGVjb2RlVVJJQ29tcG9uZW50KGVuY29kZWRGaWxlTmFtZSkgOiAndW5rbm93bic7XHJcbiAgICBjb25zdCBpbmRleCA9ICF+ZmlsZW5hbWUubGFzdEluZGV4T2YoJy4nKSA/IGZpbGVuYW1lLmxlbmd0aCA6IGZpbGVuYW1lLmxhc3RJbmRleE9mKCcuJyk7XHJcbiAgICByZXR1cm4gIXZlcnNpb24gPyBmaWxlbmFtZSA6IGAke2ZpbGVuYW1lLnNsaWNlKDAsIGluZGV4KX1fdiR7dmVyc2lvbn0ke2ZpbGVuYW1lLnNsaWNlKGluZGV4KX1gO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHRlciBmb3IgdGhlIEhUVFAgSGVhZGVyc1xyXG4gICAqXHJcbiAgICogQHJldHVybnMgSHR0cEhlYWRlcnNcclxuICAgKi9cclxuICBwcml2YXRlIHNldERlZmF1bHRIZWFkZXJzKCk6IEh0dHBIZWFkZXJzIHtcclxuICAgIHJldHVybiBuZXcgSHR0cEhlYWRlcnMoe1xyXG4gICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxyXG4gICAgICAnWC1vcy1pbmNsdWRlLWxpbmtzJzogJ2ZhbHNlJyxcclxuICAgICAgJ1gtb3MtaW5jbHVkZS1hY3Rpb25zJzogJ2ZhbHNlJyxcclxuICAgICAgJ1gtb3Mtc3luYy1pbmRleCc6ICd0cnVlJ1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -15,7 +15,8 @@ export class InboxService {
|
|
|
15
15
|
this.inboxStateSource = new ReplaySubject(1);
|
|
16
16
|
this.inboxState$ = this.inboxStateSource.asObservable();
|
|
17
17
|
this.inboxItemsSource = new ReplaySubject(1);
|
|
18
|
-
this.
|
|
18
|
+
this.inboxItemsGridData$ = this.inboxItemsSource.asObservable();
|
|
19
|
+
this.inboxItems$ = this.inboxItemsGridData$.pipe(this.backend.gridDataFilter);
|
|
19
20
|
}
|
|
20
21
|
/**
|
|
21
22
|
* Fetches inbox items from the backend.
|
|
@@ -104,4 +105,4 @@ InboxService.decorators = [
|
|
|
104
105
|
InboxService.ctorParameters = () => [
|
|
105
106
|
{ type: BackendService }
|
|
106
107
|
];
|
|
107
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5ib3guc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VvLXNkay9jb3JlL3NyYy9saWIvc2VydmljZS9pbmJveC9pbmJveC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQWEsU0FBUyxFQUFTLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUYsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsS0FBSyxFQUFjLGFBQWEsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUN0RCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFDLFNBQVMsRUFBYSxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUV2Qzs7R0FFRztBQUVILE1BQU0sT0FBTyxZQUFZO0lBY3ZCLFlBQW9CLE9BQXVCO1FBQXZCLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBWjNDLDZCQUE2QjtRQUNyQixrQkFBYSxHQUFHLElBQUksQ0FBQztRQUdyQixxQkFBZ0IsR0FBRyxJQUFJLGFBQWEsQ0FBYSxDQUFDLENBQUMsQ0FBQztRQUNyRCxnQkFBVyxHQUEyQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFHMUUscUJBQWdCLEdBQUcsSUFBSSxhQUFhLENBQWMsQ0FBQyxDQUFDLENBQUM7UUFDdEQsd0JBQW1CLEdBQTRCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwRixnQkFBVyxHQUE0QixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7SUFHekcsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsV0FBVyxFQUFFO2FBQ3RCLElBQUksQ0FDSCxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNoRCxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDUixJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQztZQUN0QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQ0EsRUFDRCxVQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFTyxXQUFXO1FBQ2pCLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FDeEIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ1gsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQTtRQUN0RSxDQUFDLENBQUMsRUFDRixHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxHQUFHLEtBQUssRUFBRSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUM5QyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFDM0IsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQ2hCLENBQUE7SUFDSCxDQUFDO0lBRU8sT0FBTyxDQUFDLEtBQWM7UUFDNUIsT0FBTyxJQUFJLENBQUMsT0FBTzthQUNoQixPQUFPLENBQUMsYUFBYSxJQUFJLENBQUMsYUFBYSxTQUFTLEtBQUssSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUE7SUFDL0YsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7T0FFRztJQUNILGlCQUFpQjtRQUNmLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQ7O09BRUc7SUFDSyxlQUFlO1FBQ3JCLElBQUksQ0FBQyxPQUFPO2FBQ1QsT0FBTyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO2FBQzlDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFpQixDQUFDLENBQUM7YUFDbkMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2YsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUM7WUFDdEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDOUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLDhCQUE4QixDQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxVQUFVLENBQUMsSUFBZTtRQUN4QixPQUFPLElBQUksQ0FBQyxPQUFPO2FBQ2hCLEdBQUcsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO2FBQy9DLElBQUksQ0FDSCxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUMxQyxDQUFDO0lBQ04sQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLGdCQUFnQixDQUFDLEVBQVcsRUFBRSxJQUFVLEVBQUUsS0FBYTtRQUM1RCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsS0FBSyxJQUFJLENBQUMsRUFBQyxFQUFFLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQyxFQUFFO1lBQy9ELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQzdDO0lBQ0gsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsVUFBVSxDQUFDLElBQWU7UUFDeEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7SUFDM0UsQ0FBQzs7O1lBcEhGLFVBQVU7OztZQVBILGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge21hcCwgdGFwLCBjYXRjaEVycm9yLCBleHBhbmQsIGNvbmNhdE1hcCwgc2tpcFdoaWxlLCBmaWx0ZXJ9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtFTVBUWSwgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7QmFja2VuZFNlcnZpY2V9IGZyb20gJy4uL2JhY2tlbmQvYmFja2VuZC5zZXJ2aWNlJztcclxuaW1wb3J0IHtJbmJveEl0ZW0sIEluYm94U3RhdGV9IGZyb20gJy4uLy4uL21vZGVsL2luYm94LWl0ZW0ubW9kZWwnO1xyXG5pbXBvcnQge1V0aWxzfSBmcm9tICcuLi8uLi91dGlsL3V0aWxzJztcclxuXHJcbi8qKlxyXG4gKiBJbmJveFNlcnZpY2UgaGFuZGxlcyBpbnRlcmFjdGlvbiB3aXRoIHRoZSBpbmJveCBzZXJ2aWNlIG9uIHRoZSBiYWNrZW5kIHNpZGUuXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBJbmJveFNlcnZpY2Uge1xyXG5cclxuICAvLyBiYWNrZW5kcyBtYXhpbXVtIHBhZ2Ugc2l6ZVxyXG4gIHByaXZhdGUgTUFYX1BBR0VfU0laRSA9IDEwMDA7XHJcblxyXG4gIHByaXZhdGUgaW5ib3hTdGF0ZTogSW5ib3hTdGF0ZTtcclxuICBwcml2YXRlIGluYm94U3RhdGVTb3VyY2UgPSBuZXcgUmVwbGF5U3ViamVjdDxJbmJveFN0YXRlPigxKTtcclxuICBwdWJsaWMgaW5ib3hTdGF0ZSQ6IE9ic2VydmFibGU8SW5ib3hTdGF0ZT4gPSB0aGlzLmluYm94U3RhdGVTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIHByaXZhdGUgaW5ib3hJdGVtczogSW5ib3hJdGVtW107XHJcbiAgcHJpdmF0ZSBpbmJveEl0ZW1zU291cmNlID0gbmV3IFJlcGxheVN1YmplY3Q8SW5ib3hJdGVtW10+KDEpO1xyXG4gIHB1YmxpYyBpbmJveEl0ZW1zR3JpZERhdGEkOiBPYnNlcnZhYmxlPEluYm94SXRlbVtdPiA9IHRoaXMuaW5ib3hJdGVtc1NvdXJjZS5hc09ic2VydmFibGUoKTtcclxuICBwdWJsaWMgaW5ib3hJdGVtcyQ6IE9ic2VydmFibGU8SW5ib3hJdGVtW10+ID0gdGhpcy5pbmJveEl0ZW1zR3JpZERhdGEkLnBpcGUodGhpcy5iYWNrZW5kLmdyaWREYXRhRmlsdGVyKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBiYWNrZW5kOiBCYWNrZW5kU2VydmljZSkge1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyBpbmJveCBpdGVtcyBmcm9tIHRoZSBiYWNrZW5kLlxyXG4gICAqXHJcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZSBvZiBpbmJveCBpdGVtcy5cclxuICAgKi9cclxuICBnZXRJdGVtcygpOiBPYnNlcnZhYmxlPEluYm94SXRlbVtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRBbGxQYWdlcygpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcChyZXMgPT4gcmVzLm1hcChpdGVtID0+IG5ldyBJbmJveEl0ZW0oaXRlbSkpKSxcclxuICAgICAgICB0YXAocmVzID0+IHtcclxuICAgICAgICAgIHRoaXMuaW5ib3hJdGVtcyA9IHJlcztcclxuICAgICAgICAgIHRoaXMuaW5ib3hJdGVtc1NvdXJjZS5uZXh0KHRoaXMuaW5ib3hJdGVtcyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICksXHJcbiAgICAgICAgY2F0Y2hFcnJvcihVdGlscy50aHJvdygoKSA9PiB0aGlzLmluYm94SXRlbXNTb3VyY2UubmV4dChbXSkpKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEFsbFBhZ2VzKCk6IE9ic2VydmFibGU8YW55W10+IHtcclxuICAgIGxldCBpdGVtcyA9IFtdO1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0UGFnZSgpLnBpcGUoXHJcbiAgICAgIGV4cGFuZChyZXMgPT4ge1xyXG4gICAgICAgIHJldHVybiAhcmVzLmxhc3QgPyB0aGlzLmdldFBhZ2UocmVzLnBhZ2VhYmxlLnBhZ2VOdW1iZXIgKyAxKSA6IEVNUFRZXHJcbiAgICAgIH0pLFxyXG4gICAgICB0YXAocmVzID0+IGl0ZW1zID0gWy4uLml0ZW1zLCAuLi5yZXMuY29udGVudF0pLFxyXG4gICAgICBza2lwV2hpbGUocmVzID0+ICFyZXMubGFzdCksXHJcbiAgICAgIG1hcChfID0+IGl0ZW1zKVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRQYWdlKGluZGV4PzogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXHJcbiAgICAgIC5nZXRKc29uKGAvZ2V0P3NpemU9JHt0aGlzLk1BWF9QQUdFX1NJWkV9JnBhZ2U9JHtpbmRleCB8fCAwfWAsIHRoaXMuYmFja2VuZC5nZXRJbmJveEJhc2UoKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgc3RhdGUgaW5mb3JtYXRpb25zIGZvciB0aGUgdXNlcnMgaW5ib3hcclxuICAgKlxyXG4gICAqIEByZXR1cm5zIGluYm94IHN0YXRlIG9iamVjdFxyXG4gICAqL1xyXG4gIGdldFN0YXRlKCk6IEluYm94U3RhdGUge1xyXG4gICAgcmV0dXJuIHRoaXMuaW5ib3hTdGF0ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFB1YmxpYyBhY2Nlc3MgdG8gZmV0Y2ggaW5ib3hcclxuICAgKi9cclxuICByZWZyZXNoSW5ib3hTdGF0ZSgpIHtcclxuICAgIHRoaXMuZmV0Y2hJbmJveFN0YXRlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZSBpbmJveCBzdGF0ZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgZmV0Y2hJbmJveFN0YXRlKCkge1xyXG4gICAgdGhpcy5iYWNrZW5kXHJcbiAgICAgIC5nZXRKc29uKCcvc3RhdGUnLCB0aGlzLmJhY2tlbmQuZ2V0SW5ib3hCYXNlKCkpXHJcbiAgICAgIC5waXBlKG1hcChyZXMgPT4gcmVzIGFzIEluYm94U3RhdGUpKVxyXG4gICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgdGhpcy5pbmJveFN0YXRlID0gcmVzO1xyXG4gICAgICAgIHRoaXMuaW5ib3hTdGF0ZVNvdXJjZS5uZXh0KHRoaXMuaW5ib3hTdGF0ZSk7XHJcbiAgICAgIH0sIFV0aWxzLmxvZ0Vycm9yKG51bGwsICdGYWlsZWQgdG8gZmV0Y2ggaW5ib3ggc3RhdGUhJykpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlcyBhbiBpdGVtIGZyb20gdGhlIGluYm94LlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGl0ZW0gaW5ib3ggaXRlbSB0byBiZSByZW1vdmVkXHJcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxhbnk+XHJcbiAgICovXHJcbiAgcmVtb3ZlSXRlbShpdGVtOiBJbmJveEl0ZW0pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZFxyXG4gICAgICAuZGVsKCcvJyArIGl0ZW0uaWQsIHRoaXMuYmFja2VuZC5nZXRJbmJveEJhc2UoKSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFwKCgpID0+IHRoaXMudXBkYXRlSW5ib3hJdGVtcyhpdGVtLmlkKSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNvZnQgdXBkYXRlIGZvciBkYXRhIGluIHRoZSBpbmJveC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBpZFxyXG4gICAqIEBwYXJhbSBpdGVtXHJcbiAgICogQHBhcmFtIG11bHRpXHJcbiAgICovXHJcbiAgcHVibGljIHVwZGF0ZUluYm94SXRlbXMoaWQ/OiBzdHJpbmcsIGl0ZW0/OiBhbnksIG11bHRpPzogYW55W10pIHtcclxuICAgIGlmICh0aGlzLmJhY2tlbmQudXBkYXRlKHRoaXMuaW5ib3hJdGVtcywgbXVsdGkgfHwgW3tpZCwgaXRlbX1dKSkge1xyXG4gICAgICB0aGlzLmluYm94SXRlbXNTb3VyY2UubmV4dCh0aGlzLmluYm94SXRlbXMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWFya3MgYW4gaW5ib3ggaXRlbSBhcyByZWFkLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGl0ZW0gdGhlIGl0ZW0gdG8gYmUgbWFya2VkIGFzIHJlYWRcclxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPGFueT5cclxuICAgKi9cclxuICBtYXJrQXNSZWFkKGl0ZW06IEluYm94SXRlbSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLnB1dCgnL3JlYWQvJyArIGl0ZW0uaWQsIHRoaXMuYmFja2VuZC5nZXRJbmJveEJhc2UoKSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -274,6 +274,21 @@ export class PrepareService {
|
|
|
274
274
|
}
|
|
275
275
|
return uri;
|
|
276
276
|
}
|
|
277
|
+
/**
|
|
278
|
+
* Deletes a prepared creation object content element by index or the complete content.
|
|
279
|
+
* If you provide an index the content consists only of one element,
|
|
280
|
+
* the content is completely removed from the prepared creation object.
|
|
281
|
+
*
|
|
282
|
+
* @param preparedItemId ID of the item with the content to be removed
|
|
283
|
+
* @param index Parameter that determines which content element should be deleted.
|
|
284
|
+
* @returns Observable<PreparedItem> The updated prepared item
|
|
285
|
+
*/
|
|
286
|
+
deletePreparedItemContent(preparedItemId, index) {
|
|
287
|
+
const url = `/prepare/${preparedItemId}/content` + (index !== undefined ? `?index=${index}` : '');
|
|
288
|
+
return this.backend
|
|
289
|
+
.del(url)
|
|
290
|
+
.pipe(map(res => new PreparedItem(res)));
|
|
291
|
+
}
|
|
277
292
|
}
|
|
278
293
|
PrepareService.decorators = [
|
|
279
294
|
{ type: Injectable }
|
|
@@ -282,4 +297,4 @@ PrepareService.ctorParameters = () => [
|
|
|
282
297
|
{ type: BackendService },
|
|
283
298
|
{ type: UploadService }
|
|
284
299
|
];
|
|
285
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlcGFyZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW8tc2RrL2NvcmUvc3JjL2xpYi9zZXJ2aWNlL3ByZXBhcmUvcHJlcGFyZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2xELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQWEsYUFBYSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RCxPQUFPLEVBQUMsWUFBWSxFQUF1QixNQUFNLGlDQUFpQyxDQUFDO0FBQ25GLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFpQjdEOztHQUVHO0FBRUgsTUFBTSxPQUFPLGNBQWM7SUFVekIsWUFBb0IsT0FBdUIsRUFDdkIsYUFBNEI7UUFENUIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDdkIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFSeEMsd0JBQW1CLEdBQUcsSUFBSSxhQUFhLENBQWlCLENBQUMsQ0FBQyxDQUFDO1FBQzVELG1CQUFjLEdBQStCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUdwRiw0QkFBdUIsR0FBRyxJQUFJLGFBQWEsQ0FBUyxDQUFDLENBQUMsQ0FBQztRQUN4RCx1QkFBa0IsR0FBdUIsSUFBSSxDQUFDLHVCQUF1QixDQUFD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LEVBQUU7Z0JBQ3pDLFVBQVUsRUFBRSxDQUFDLGNBQWM7Z0JBQzNCLFNBQVMsRUFBRSxZQUFZLENBQUMsU0FBUyxJQUFJLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJO2FBQ2hILENBQUMsQ0FBQztTQUNKO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDOzs7WUFoVUYsVUFBVTs7O1lBekJILGNBQWM7WUFJZCxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHttZXJnZU1hcCwgbWFwLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtVdGlsc30gZnJvbSAnLi4vLi4vdXRpbC91dGlscyc7XHJcbmltcG9ydCB7QmFja2VuZFNlcnZpY2V9IGZyb20gJy4uL2JhY2tlbmQvYmFja2VuZC5zZXJ2aWNlJztcclxuaW1wb3J0IHtPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0fSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtPYmplY3RUeXBlfSBmcm9tICcuLi8uLi9tb2RlbC9vYmplY3QtdHlwZS5tb2RlbCc7XHJcbmltcG9ydCB7UHJlcGFyZWRJdGVtLCBQcmVwYXJlZEl0ZW1UZW1wbGF0ZX0gZnJvbSAnLi4vLi4vbW9kZWwvcHJlcGFyZWQtaXRlbS5tb2RlbCc7XHJcbmltcG9ydCB7VXBsb2FkU2VydmljZX0gZnJvbSAnLi4vdXBsb2FkL3VwbG9hZC5zZXJ2aWNlJztcclxuaW1wb3J0IHtVcGxvYWRUYXJnZXR9IGZyb20gJy4uLy4uL21vZGVsL3VwbG9hZC10YXJnZXQubW9kZWwnO1xyXG5pbXBvcnQge1VwbG9hZEZpbGVJdGVtfSBmcm9tICcuLi8uLi9tb2RlbC91cGxvYWQtZmlsZS1pdGVtLm1vZGVsJztcclxuaW1wb3J0IHtJUHJlcGFyZUNoaWxkVHlwZXN9IGZyb20gJy4vb2JqZWN0VHlwZXMuaW50ZXJmYWNlJztcclxuXHJcbi8qKlxyXG4gKiBAaWdub3JlXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFByZXBhcmVkUG9zdFBhcmFtIHtcclxuICBwYXJlbnRJZDogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIG9yIG5vdCB0byBjcmVhdGUgb25lIFByZXBhcmVkSXRlbSB1c2luZyBtdWx0aXBsZSBmaWxlcyB1cGxvYWRlZCAoZmFsc2UpXHJcbiAgICogb3IgY3JlYXRpbmcgYSBQcmVwYXJlZEl0ZW0gZm9yIGVhY2ggZmlsZSBwb3N0ZWQgdG8gdGhlIFVSTCAodHJ1ZSlcclxuICAgKi9cclxuICBjcmVhdGVNYW55PzogYm9vbGVhbjtcclxuICBjaGlsZFR5cGU/OiBzdHJpbmc7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDb2xsZWN0aW9uIG9mIFByZXBhcmUgU2VydmljZXNcclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFByZXBhcmVTZXJ2aWNlIHtcclxuXHJcbiAgcHJpdmF0ZSBwcmVwYXJlZEl0ZW1zOiBQcmVwYXJlZEl0ZW1bXTtcclxuICBwcml2YXRlIHByZXBhcmVkSXRlbXNTb3VyY2UgPSBuZXcgUmVwbGF5U3ViamVjdDxQcmVwYXJlZEl0ZW1bXT4oMSk7XHJcbiAgcHVibGljIHByZXBhcmVkSXRlbXMkOiBPYnNlcnZhYmxlPFByZXBhcmVkSXRlbVtdPiA9IHRoaXMucHJlcGFyZWRJdGVtc1NvdXJjZS5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgcHJpdmF0ZSBwcmVwYXJlZEl0ZW1Db3VudDogbnVtYmVyO1xyXG4gIHByaXZhdGUgcHJlcGFyZWRJdGVtQ291bnRTb3VyY2UgPSBuZXcgUmVwbGF5U3ViamVjdDxudW1iZXI+KDEpO1xyXG4gIHB1YmxpYyBwcmVwYXJlZEl0ZW1Db3VudCQ6IE9ic2VydmFibGU8bnVtYmVyPiA9IHRoaXMucHJlcGFyZWRJdGVtQ291bnRTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYmFja2VuZDogQmFja2VuZFNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSB1cGxvYWRTZXJ2aWNlOiBVcGxvYWRTZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQdWJsaWMgRmV0Y2ggUHJlcGFyZSBpdGVtc1xyXG4gICAqL1xyXG4gIHJlZnJlc2hQcmVwYXJlZEl0ZW1zQ291bnQoKSB7XHJcbiAgICB0aGlzLmZldGNoUHJlcGFyZWRJdGVtc0NvdW50KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIHRoZSBudW1iZXIgb2YgcHJlcGFyZWQgaXRlbXMgZm9yIHRoZSBjdXJyZW50IHVzZXIuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBmZXRjaFByZXBhcmVkSXRlbXNDb3VudCgpIHtcclxuICAgIHRoaXMuYmFja2VuZC5nZXRKc29uKCcvcHJlcGFyZS9zdGF0ZScpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzKSA9PiByZXMuY291bnQpXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgdGhpcy5wcmVwYXJlZEl0ZW1Db3VudCA9IHJlcztcclxuICAgICAgICB0aGlzLnByZXBhcmVkSXRlbUNvdW50U291cmNlLm5leHQodGhpcy5wcmVwYXJlZEl0ZW1Db3VudCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBhIHByZXBhcmVkIGl0ZW0gb24gdGhlIGJhY2tlZCBzaWRlLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHBhcmVudElkIFRoZSBJRCBvZiB0aGUgcGFyZW50IGRtcyBvYmplY3QgdG8gYWRkIHRoZSBwcmVwYXJlZCBpdGVtIHRvXHJcbiAgICogQHBhcmFtIGNoaWxkVHlwZSBUaGUgdHlwZSBvZiBvYmplY3QgdG8gYmUgY3JlYXRlZFxyXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8YW55PlxyXG4gICAqL1xyXG4gIHB1YmxpYyBjcmVhdGVQcmVwYXJlZEl0ZW0ocGFyZW50SWQ6IHN0cmluZywgY2hpbGRUeXBlPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXHJcbiAgICAgIC5wb3N0KHRoaXMuY3JlYXRlUHJlcGFyZWRJdGVtUG9zdFVybCh7XHJcbiAgICAgICAgcGFyZW50SWQ6IHBhcmVudElkLFxyXG4gICAgICAgIGNoaWxkVHlwZTogY2hpbGRUeXBlID8gY2hpbGRUeXBlIDogbnVsbFxyXG4gICAgICB9KSwge30pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLmdldFByZXBhcmVkSXRlbXMkKCkpXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBwcmVwYXJlZEl0ZW1JZFxyXG4gICAqIEBwYXJhbSBkYXRhXHJcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxhbnk+XHJcbiAgICovXHJcbiAgcHVibGljIHVwZGF0ZVByZXBhcmVkSXRlbUluZGV4RGF0YShwcmVwYXJlZEl0ZW1JZCwgZGF0YSkge1xyXG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZFxyXG4gICAgICAucHV0KCcvcHJlcGFyZS8nICsgcHJlcGFyZWRJdGVtSWQsIGRhdGEpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLmdldFByZXBhcmVkSXRlbXMkKCkpXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGFuIFVSTCBmb3IgY3JlYXRpbmcgYSBQcmVwYXJlZEl0ZW0uXHJcbiAgICpcclxuICAgKiBAcGFyYW0gcGFyYW1zIFBhcmFtcyBmb3IgZ2VuZXJhdGluZyBhcHByb3ByaWF0ZSB1cmkuXHJcbiAgICogQHJldHVybnMgc3RyaW5nIEEgUE9TVCBVUkwgZm9yIGNyZWF0aW5nIFByZXBhcmVkSXRlbXNcclxuICAgKi9cclxuICBwdWJsaWMgY3JlYXRlUHJlcGFyZWRJdGVtUG9zdFVybChwYXJhbXM6IFByZXBhcmVkUG9zdFBhcmFtKTogc3RyaW5nIHtcclxuXHJcbiAgICBsZXQgdXJsID0gcGFyYW1zLmNyZWF0ZU1hbnkgPyAnL3ByZXBhcmUvY3JlYXRlbWFueScgOiAnL3ByZXBhcmUvY3JlYXRlJztcclxuICAgIGlmIChwYXJhbXMpIHtcclxuICAgICAgdXJsID0gVXRpbHMuYnVpbGRVcmkodXJsLCBwYXJhbXMpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHVybDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBhIGxpc3Qgb2YgdGhlIHVzZXJzIHByZXBhcmVkIGl0ZW1zLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIG5vRm9ybXMgSWYgc2V0IHRvIHRydWUgdGhlIHByZXBhcmVkIGl0ZW1zIHdpbGwgYmUgZmV0Y2hlZCB3aXRob3V0IHRoZSBmb3JtIHdoaWNoIGlzIGZhc3RlclxyXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8UHJlcGFyZWRJdGVtW10+IEEgY29sbGVjdGlvbiBvZiBwcmVwYXJlZCBpdGVtIG9iamVjdHNcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0UHJlcGFyZWRJdGVtcyQobm9Gb3Jtcz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPFByZXBhcmVkSXRlbVtdPiB7XHJcbiAgICB0aGlzLmZldGNoUHJlcGFyZWRJdGVtcyhub0Zvcm1zKS5zdWJzY3JpYmUoKTtcclxuICAgIHJldHVybiB0aGlzLnByZXBhcmVkSXRlbXMkO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmUgUHJlcGFyZUl0ZW1zIGFuZCBmb3JtIHRoZW1cclxuICAgKlxyXG4gICAqIEBwYXJhbSBib29sZWFuIG5vRm9ybXNcclxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPFByZXBhcmVkSXRlbVtdPlxyXG4gICAqL1xyXG4gIHByaXZhdGUgZmV0Y2hQcmVwYXJlZEl0ZW1zKG5vRm9ybXM/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxQcmVwYXJlZEl0ZW1bXT4ge1xyXG4gICAgbGV0IHVyaSA9IChub0Zvcm1zKSA/ICcvcHJlcGFyZScgOiAnL3ByZXBhcmU/Zm9ybT10cnVlJztcclxuICAgIHJldHVybiB0aGlzLmJhY2tlbmRcclxuICAgICAgLmdldEpzb24odXJpKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlczogYW55KSA9PiByZXMubWFwKGkgPT4gbmV3IFByZXBhcmVkSXRlbShpKSkpLFxyXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLmZldGNoUHJlcGFyZWRJdGVtc0NvdW50KCkpLFxyXG4gICAgICAgIHRhcCgocHJlcGFyZWRJdGVtczogUHJlcGFyZWRJdGVtW10pID0+IHRoaXMucHJlcGFyZWRJdGVtc1NvdXJjZS5uZXh0KHByZXBhcmVkSXRlbXMuc29ydChVdGlscy5zb3J0VmFsdWVzKCdjcmVhdGVkJywgJ2Rlc2MnKSkpKVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlcyBhIHByZXBhcmVkIGl0ZW0uXHJcbiAgICpcclxuICAgKiBAcGFyYW0gcHJlcGFyZWRJdGVtSWQgSUQgb2YgdGhlIGl0ZW0gdG8gYmUgcmVtb3ZlZFxyXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8YW55PiBTZXJ2ZXIgcmVzcG9uc2VcclxuICAgKi9cclxuICBkZWxldGVQcmVwYXJlZEl0ZW0ocHJlcGFyZWRJdGVtSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXHJcbiAgICAgIC5kZWwoYC9wcmVwYXJlLyR7cHJlcGFyZWRJdGVtSWR9YClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuZ2V0UHJlcGFyZWRJdGVtcyQoKSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgYSBsaXN0IG9mIG9iamVjdCB0eXBlcyBhbGxvd2VkIHRvIGJlIHBsYWNlZCBkaXJlY3RseSBiZWxvdyByb290LlxyXG4gICAqXHJcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxPYmplY3RUeXBlW10+IEEgbGlzdCBvZiBzdXBwb3J0ZWQgb2JqZWN0IHR5cGVzXHJcbiAgICovXHJcbiAgcHVibGljIGdldFByZXBhcmVSb290VHlwZXMoKTogT2JzZXJ2YWJsZTxPYmplY3RUeXBlW10+IHtcclxuICAgIHJldHVybiB0aGlzLmJhY2tlbmRcclxuICAgICAgLmdldFZpYVRlbXBDYWNoZSgnL3ByZXBhcmUvdHlwZXMnKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlcykgPT4gcmVzLnR5cGVzLm1hcCgodHlwZSkgPT4gbmV3IE9iamVjdFR5cGUodHlwZSkpKVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyBhIGxpc3Qgb2YgYWxsb3dlZCBjaGlsZCBvYmplY3QgdHlwZXMgZm9yIGEgc2VsZWN0ZWQgcGFyZW50LlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHBhcmVudElkIFRoZSBpZCBvZiB0aGUgcGFyZW50IGRtcyBvYmplY3QgKGNvbnRleHQgZm9sZGVyKVxyXG4gICAqIEBwYXJhbSB3aXRoQ29udGVudE9ubHkgSWYgc2V0IHRvIHRydWUgb25seSBjaGlsZCB0eXBlcywgdGhhdCBzdXBwb3J0IGNvbnRlbnQgYXJlIHJldHVybmVkLlxyXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8SVByZXBhcmVDaGlsZFR5cGVzPiBBIGxpc3Qgb2Ygc3VwcG9ydGVkIG9iamVjdCB0eXBlc1xyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRQcmVwYXJlQ2hpbGRUeXBlcyhwYXJlbnRJZDogc3RyaW5nLCB3aXRoQ29udGVudE9ubHk/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxJUHJlcGFyZUNoaWxkVHlwZXM+IHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IHBhcmVudElkID8ge3BhcmVudElkLCB3aXRoY29udGVudDogd2l0aENvbnRlbnRPbmx5fSA6IHt3aXRoY29udGVudDogd2l0aENvbnRlbnRPbmx5fVxyXG4gICAgY29uc3QgdXJpID0gVXRpbHMuYnVpbGRVcmkoJy9wcmVwYXJlL3R5cGVzJywgcGFyYW1zKTtcclxuICAgIHJldHVybiB0aGlzLmJhY2tlbmRcclxuICAgICAgLmdldFZpYVRlbXBDYWNoZSh1cmkpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcChyZXMgPT4gKHtwYXJlbnQ6IHJlcy5wYXJlbnQsIHR5cGVzOiByZXMudHlwZXMubWFwKCh0eXBlKSA9PiBuZXcgT2JqZWN0VHlwZSh0eXBlKSl9KSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIGZldGNoIHRoZSBwcmV2aWV3IHVyaSBmb3IgYSBwcmVwYXJlZCBpdGVtXHJcbiAgICpcclxuICAgKiBAcGFyYW0gaWQgVGhlIGlkIG9mIHRoZSBwcmVwYXJlZCBpdGVtXHJcbiAgICogQHBhcmFtIGluZGV4IFdoZW4gYSBwcmVwYXJlZCBpdGVtIGNvbnRhaW5zIG1vcmUgdGhhbiBvbmUgY29udGVudHMsIHRoZSBpbmRleCBzcGVjaWZpZXMgd2hpY2ggY29udGVudFxyXG4gICAqIEBwYXJhbSByZW5kaXRpb24gVGFyZ2V0IHJlbmRpdGlvbiAoUERGKVxyXG4gICAqIHRvIHJldHJpZXZlIHRoZSBwcmV2aWV3IHVyaSBmb3JcclxuICAgKiBAcmV0dXJucyBzdHJpbmcgUHJldmlldyB1cmlcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0UHJldmlld1VyaShpZDogc3RyaW5nLCBpbmRleD86IG51bWJlciwgcmVuZGl0aW9uPzogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBVdGlscy5idWlsZFVyaShgJHt0aGlzLmJhY2tlbmQuZ2V0U2VydmljZUJhc2UoKX0vcHJlcGFyZS8ke2lkfS9jb250ZW50YCwge3JlbmRpdGlvbiwgaW5kZXh9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgdGhlIHByZXBhcmVkIGl0ZW1zIHRhcmdldCBvYmplY3QgdHlwZS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBvYmplY3RUeXBlIFRoZSB0YXJnZXQgb2JqZWN0IHR5cGVzIG5hbWVcclxuICAgKiBAcGFyYW0gcHJlcGFyZWRJdGVtSWQgVGhlIGlkIG9mIHRoZSBwcmVwYXJlZCBpdGVtIHRvIHNldCB0aGUgdHlwZSBmb3JcclxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPFByZXBhcmVkSXRlbT4gVGhlIHVwZGF0ZWQgcHJlcGFyZWQgaXRlbVxyXG4gICAqL1xyXG4gIHB1YmxpYyB1cGRhdGVDaGlsZFR5cGUob2JqZWN0VHlwZTogc3RyaW5nLCBwcmVwYXJlZEl0ZW1JZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxQcmVwYXJlZEl0ZW0+IHtcclxuICAgIHJldHVybiB0aGlzLmJhY2tlbmRcclxuICAgICAgLnB1dChgL3ByZXBhcmUvJHtwcmVwYXJlZEl0ZW1JZH0vJHtvYmplY3RUeXBlfT9mb3JtPXRydWUmY29udGVudG1ldGE9dHJ1ZWApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcChyZXMgPT4gbmV3IFByZXBhcmVkSXRlbShyZXMpKVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkIGEgdGVtcGxhdGUgdG8gYSBwcmVwYXJlZCBpdGVtLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHByZXBhcmVkSXRlbUlkIFRoZSBpZCBvZiB0aGUgcHJlcGFyZWQgaXRlbSB0byBhZGQgdGhlIHRlbXBsYXRlIHRvXHJcbiAgICogQHBhcmFtIHRlbXBsYXRlSWQgVGhlIGlkIG9mIHRoZSB0ZW1wbGF0ZSB0byBiZSBhZGRlZFxyXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8UHJlcGFyZWRJdGVtPiAgVGhlIHVwZGF0ZWQgcHJlcGFyZWQgaXRlbVxyXG4gICAqL1xyXG4gIHB1YmxpYyBhZGRUZW1wbGF0ZShwcmVwYXJlZEl0ZW1JZCwgdGVtcGxhdGVJZCk6IE9ic2VydmFibGU8UHJlcGFyZWRJdGVtPiB7XHJcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXHJcbiAgICAgIC5wdXQoYC9wcmVwYXJlLyR7cHJlcGFyZWRJdGVtSWR9L3RlbXBsYXRlP3RlbXBsYXRlaWQ9JHt0ZW1wbGF0ZUlkfWApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcChyZXMgPT4gbmV3IFByZXBhcmVkSXRlbShyZXMpKVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyBhIGxpc3Qgb2YgYXZhaWxhYmxlIHRlbXBsYXRlcyBmb3IgYSBnaXZlbiBvYmplY3QgdHlwZS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBPYnNlcnZhYmxlPFByZXBhcmVkSXRlbVRlbXBsYXRlW10+IG9iamVjdFR5cGVOYW1lXHJcbiAgICovXHJcbiAgcHVibGljIGdldFRlbXBsYXRlcyhvYmplY3RUeXBlTmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxQcmVwYXJlZEl0ZW1UZW1wbGF0ZVtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXHJcbiAgICAgIC5nZXRKc29uKCcvdGVtcGxhdGUvbGlzdD90eXBlPScgKyBvYmplY3RUeXBlTmFtZSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXM6IGFueSkgPT4gcmVzIGFzIFByZXBhcmVkSXRlbVRlbXBsYXRlW10pXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHVybCBvZiBhIHRlbXBsYXRlIHByZXZpZXdcclxuICAgKlxyXG4gICAqIEBwYXJhbSBpZCBUZW1wbGF0ZSBJRFxyXG4gICAqIEBwYXJhbSByZW5kaXRpb24gVGFyZ2V0IHJlbmRpdGlvbiAoUERGKVxyXG4gICAqIEByZXR1cm5zIHN0cmluZyBUaGUgdGVtcGxhdGUgcHJldmlldyB1cmwuXHJcbiAgICovXHJcbiAgcHVibGljIGdldFRlbXBsYXRlUHJldmlld1VyaShpZCwgcmVuZGl0aW9uPzogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBVdGlscy5idWlsZFVyaShgJHt0aGlzLmJhY2tlbmQuZ2V0U2VydmljZUJhc2UoKX0vdGVtcGxhdGUvJHtpZH0vY29udGVudGAsIHtyZW5kaXRpb259KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbW1pdCBhIHByZXBhcmVkIGl0ZW0uIFRoaXMgd2lsbCBjcmVhdGUgYW4gYWN0dWFsIGRtcyBvYmplY3QuXHJcbiAgICogVXBkYXRlcyB0aGUgcHJlcGFyZWQgY3JlYXRpb24gb2JqZWN0IHRhcmdldCB0eXBlXHJcbiAgICpcclxuICAgKiBAcGFyYW0gcHJlcGFyZWRJdGVtSWQgSUQgb2YgdGhlIHByZXBhcmVkIGl0ZW1cclxuICAgKiBAcGFyYW0gcHJlcGFyZWRJdGVtVHlwZSBOYW1lIG9mIHRoZSBwcmVwYXJlZCBpdGVtcyB0YXJnZXQgb2JqZWN0IHR5cGVcclxuICAgKiBAcGFyYW0gcHJlcGFyZWRJdGVtRGF0YSBPYmplY3QgaG9sZGluZyBkYXRhIG9mIHRoZSBwcmVwYXJlZCBpdGVtXHJcbiAgICogQHJldHVybnMgVGhlIGlkIG9mIHRoZSBjcmVhdGVkIGRtcyBvYmplY3RcclxuICAgKi9cclxuICBwdWJsaWMgY29tbWl0UHJlcGFyZWRJdGVtKHByZXBhcmVkSXRlbUlkLCBwcmVwYXJlZEl0ZW1UeXBlLCBwcmVwYXJlZEl0ZW1EYXRhKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmJhY2tlbmRcclxuICAgICAgLnB1dChgL3ByZXBhcmUvJHtwcmVwYXJlZEl0ZW1JZH0vJHtwcmVwYXJlZEl0ZW1UeXBlfWApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1lcmdlTWFwKCgpID0+IHRoaXMuYmFja2VuZC5wb3N0KGAvcHJlcGFyZS9jb21taXQvJHtwcmVwYXJlZEl0ZW1JZH1gLCBwcmVwYXJlZEl0ZW1EYXRhKSksXHJcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuZ2V0UHJlcGFyZWRJdGVtcyQoKSksXHJcbiAgICAgICAgbWFwKHJlcyA9PiByZXMuaWQpXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGxvYWQgQ29udGVudFxyXG4gICAqXHJcbiAgICogQHBhcmFtIHN0cmluZyBwcmVwYXJlZEl0ZW1JZFxyXG4gICAqIEBwYXJhbSBGaWxlIGZpbGVcclxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPGFueT5cclxuICAgKi9cclxuICB1cGxvYWRDb250ZW50KHByZXBhcmVkSXRlbUlkOiBzdHJpbmcsIGZpbGU6IEZpbGUpIHtcclxuICAgIGNvbnN0IHVyaSA9IGAke3RoaXMuYmFja2VuZC5nZXRTZXJ2aWNlQmFzZSgpfS9wcmVwYXJlLyR7cHJlcGFyZWRJdGVtSWR9L2NvbnRlbnQuanNvbj9mb3JtPXRydWUmY29udGVudG1ldGE9dHJ1ZWA7XHJcbiAgICByZXR1cm4gdGhpcy51cGxvYWRTZXJ2aWNlXHJcbiAgICAgIC51cGxvYWQodXJpLCBbZmlsZV0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIC8vIHRhcCgoKSA9PiB0aGlzLmdldFByZXBhcmVkSXRlbXMkKCkpXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGxvYWRzIGZpbGVzIHRvIGFuIHVwbG9hZCB0YXJnZXQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gdXBsb2FkVGFyZ2V0IFRoZSB1cGxvYWQgdGFyZ2V0IHRvIHVwbG9hZCBmaWxlcyB0b1xyXG4gICAqIEBwYXJhbSB1cGxvYWRGaWxlcyBGaWxlcyB0byBiZSB1cGxvYWRlZFxyXG4gICAqIEBwYXJhbSB1c2VCYXRjaFVwbG9hZCBGbGFnIGluZGljYXRpbmcgd2hldGhlciBvciBub3QgdG8gdXNlIGJhdGNoIHByb2Nlc3Npbmcgb24gdGhlIGJhY2tlbmQgc2lkZVxyXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8YW55PlxyXG4gICAqL1xyXG4gIHVwbG9hZFRvVGFyZ2V0KHVwbG9hZFRhcmdldDogVXBsb2FkVGFyZ2V0LCB1cGxvYWRGaWxlczogVXBsb2FkRmlsZUl0ZW1bXSwgdXNlQmF0Y2hVcGxvYWQ/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHJcbiAgICBjb25zdCBmaWxlcyA9IHVwbG9hZEZpbGVzLm1hcChmID0+IGYuX2ZpbGUpO1xyXG4gICAgcmV0dXJuIHRoaXMudXBsb2FkU2VydmljZVxyXG4gICAgICAudXBsb2FkKHRoaXMuZ2V0VXBsb2FkVGFyZ2V0KHVwbG9hZFRhcmdldCwgdXNlQmF0Y2hVcGxvYWQpLCBmaWxlcylcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuZ2V0UHJlcGFyZWRJdGVtcyQoKSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCB0aGUgdXJpIHRvIHBvc3QgZmlsZXMgdG8gYmFzZWQgb24gdGhlIHVwbG9hZCB0YXJnZXQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gdXBsb2FkVGFyZ2V0IFRoZSB0YXJnZXQgdG8gdXBsb2FkIGZpbGVzIHRvXHJcbiAgICogQHBhcmFtIHVzZUJhdGNoVXBsb2FkIEZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIG9yIG5vdCB0byB1cGxvYWQgYWxsIGZpbGVzIGluIGEgc2luZ2xlIHBvc3RcclxuICAgKiBAcmV0dXJucyBzdHJpbmcgdGhlIHVyaVxyXG4gICAqL1xyXG4gIHByaXZhdGUgZ2V0VXBsb2FkVGFyZ2V0KHVwbG9hZFRhcmdldDogVXBsb2FkVGFyZ2V0LCB1c2VCYXRjaFVwbG9hZD86IGJvb2xlYW4pOiBzdHJpbmcge1xyXG4gICAgbGV0IHVyaTtcclxuXHJcbiAgICBpZiAodXBsb2FkVGFyZ2V0LnR5cGUgPT09IFVwbG9hZFRhcmdldC5ST09UKSB7XHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiB1cGxvYWQgdG8gZ2VuZXJhbCBmaWxpbmcgbG9jYXRpb25cclxuICAgICAgICpcclxuICAgICAgICogQHR5cGUgc3RyaW5nXHJcbiAgICAgICAqL1xyXG4gICAgICB1cmkgPSB0aGlzLmJhY2tlbmQuZ2V0U2VydmljZUJhc2UoKSArIHRoaXMuY3JlYXRlUHJlcGFyZWRJdGVtUG9zdFVybCh7XHJcbiAgICAgICAgICBwYXJlbnRJZDogbnVsbCxcclxuICAgICAgICAgIGNyZWF0ZU1hbnk6ICF1c2VCYXRjaFVwbG9hZFxyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuXHJcbiAgICB9IGVsc2UgaWYgKHVwbG9hZFRhcmdldC50eXBlID09PSBVcGxvYWRUYXJnZXQuT0JKRUNUKSB7XHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiB1cGxvYWQgdG8gZG1zIG9iamVjdCwgbWVhbnMgYWRkaW5nIG9yIHJlcGxhY2luZyBjb250ZW50IGZpbGVcclxuICAgICAgICovXHJcbiAgICAgIGNvbnN0IHtyZWZlcmVuY2VPYmplY3R9ID0gdXBsb2FkVGFyZ2V0O1xyXG4gICAgICB1cmkgPSBgJHt0aGlzLmJhY2tlbmQuZ2V0U2VydmljZUJhc2UoKX0vZG1zLyR7cmVmZXJlbmNlT2JqZWN0LmlkfS9jb250ZW50cz90eXBlPSR7cmVmZXJlbmNlT2JqZWN0LnR5cGUubmFtZX1gO1xyXG5cclxuICAgIH0gZWxzZSBpZiAodXBsb2FkVGFyZ2V0LnR5cGUgPT09IFVwbG9hZFRhcmdldC5DT05URVhUIHx8IHVwbG9hZFRhcmdldC50eXBlID09PSBVcGxvYWRUYXJnZXQuQ09OVEVYVF9UUkVFKSB7XHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiB1cGxvYWQgdG8gY29udGV4dCBmb2xkZXIsIG1lYW5zIGFkZGluZyBhIG5ldyBkbXMgb2JqZWN0IHRvIGEgc3BlY2lmaWNcclxuICAgICAgICogY29udGV4dCBmb2xkZXIgLi4uXHJcbiAgICAgICAqIC4uLiBpZiB3ZSBnb3QgYSBzdWJGb2xkZXIgKG5vZGUgZnJvbSB0aGUgY29udGV4dCB0cmVlKSBzZXQgdXAgd2UnbGwgYWRkIHRoYXQgdG9vXHJcbiAgICAgICAqXHJcbiAgICAgICAqIEB0eXBlIHN0cmluZ1xyXG4gICAgICAgKi9cclxuICAgICAgdXJpID0gdGhpcy5iYWNrZW5kLmdldFNlcnZpY2VCYXNlKCkgKyB0aGlzLmNyZWF0ZVByZXBhcmVkSXRlbVBvc3RVcmwoe1xyXG4gICAgICAgIHBhcmVudElkOiB1cGxvYWRUYXJnZXQucmVmZXJlbmNlT2JqZWN0LmlkLFxyXG4gICAgICAgIGNyZWF0ZU1hbnk6ICF1c2VCYXRjaFVwbG9hZCxcclxuICAgICAgICBjaGlsZFR5cGU6IHVwbG9hZFRhcmdldC5zdWJGb2xkZXIgJiYgdXBsb2FkVGFyZ2V0LnN1YkZvbGRlci5kYXRhLnR5cGUgPyB1cGxvYWRUYXJnZXQuc3ViRm9sZGVyLmRhdGEudHlwZSA6IG51bGxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdXJpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
300
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlcGFyZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW8tc2RrL2NvcmUvc3JjL2xpYi9zZXJ2aWNlL3ByZXBhcmUvcHJlcGFyZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2xELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQWEsYUFBYSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RCxPQUFPLEVBQUMsWUFBWSxFQUF1QixNQUFNLGlDQUFpQyxDQUFDO0FBQ25GLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFpQjdEOztHQUVHO0FBRUgsTUFBTSxPQUFPLGNBQWM7SUFVekIsWUFBb0IsT0FBdUIsRUFDdkIsYUFBNEI7UUFENUIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDdkIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFSeEMsd0JBQW1CLEdBQUcsSUFBSSxhQUFhLENBQWlCLENBQUMsQ0FBQyxDQUFDO1FBQzVELG1CQUFjLEdBQStCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUdwRiw0QkFBdUIsR0FBRyxJQUFJLGFBQWEsQ0FBUyxDQUFDLENBQUMsQ0FBQztRQUN4RCx1QkFBa0IsR0FBdUIsSUFBSSxDQUFDLHVCQUF1QixDQUFD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LEVBQUU7Z0JBQ3pDLFVBQVUsRUFBRSxDQUFDLGNBQWM7Z0JBQzNCLFNBQVMsRUFBRSxZQUFZLENBQUMsU0FBUyxJQUFJLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJO2FBQ2hILENBQUMsQ0FBQztTQUNKO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSSx5QkFBeUIsQ0FBQyxjQUFzQixFQUFFLEtBQWM7UUFDckUsTUFBTSxHQUFHLEdBQUcsWUFBWSxjQUFjLFVBQVUsR0FBRyxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLFVBQVUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2xHLE9BQU8sSUFBSSxDQUFDLE9BQU87YUFDaEIsR0FBRyxDQUFDLEdBQUcsQ0FBQzthQUNSLElBQUksQ0FDSCxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUNsQyxDQUFDO0lBQ04sQ0FBQzs7O1lBbFZGLFVBQVU7OztZQXpCSCxjQUFjO1lBSWQsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7bWVyZ2VNYXAsIG1hcCwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7VXRpbHN9IGZyb20gJy4uLy4uL3V0aWwvdXRpbHMnO1xyXG5pbXBvcnQge0JhY2tlbmRTZXJ2aWNlfSBmcm9tICcuLi9iYWNrZW5kL2JhY2tlbmQuc2VydmljZSc7XHJcbmltcG9ydCB7T2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7T2JqZWN0VHlwZX0gZnJvbSAnLi4vLi4vbW9kZWwvb2JqZWN0LXR5cGUubW9kZWwnO1xyXG5pbXBvcnQge1ByZXBhcmVkSXRlbSwgUHJlcGFyZWRJdGVtVGVtcGxhdGV9IGZyb20gJy4uLy4uL21vZGVsL3ByZXBhcmVkLWl0ZW0ubW9kZWwnO1xyXG5pbXBvcnQge1VwbG9hZFNlcnZpY2V9IGZyb20gJy4uL3VwbG9hZC91cGxvYWQuc2VydmljZSc7XHJcbmltcG9ydCB7VXBsb2FkVGFyZ2V0fSBmcm9tICcuLi8uLi9tb2RlbC91cGxvYWQtdGFyZ2V0Lm1vZGVsJztcclxuaW1wb3J0IHtVcGxvYWRGaWxlSXRlbX0gZnJvbSAnLi4vLi4vbW9kZWwvdXBsb2FkLWZpbGUtaXRlbS5tb2RlbCc7XHJcbmltcG9ydCB7SVByZXBhcmVDaGlsZFR5cGVzfSBmcm9tICcuL29iamVjdFR5cGVzLmludGVyZmFjZSc7XHJcblxyXG4vKipcclxuICogQGlnbm9yZVxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBQcmVwYXJlZFBvc3RQYXJhbSB7XHJcbiAgcGFyZW50SWQ6IHN0cmluZztcclxuICAvKipcclxuICAgKiBmbGFnIGluZGljYXRpbmcgd2hldGhlciBvciBub3QgdG8gY3JlYXRlIG9uZSBQcmVwYXJlZEl0ZW0gdXNpbmcgbXVsdGlwbGUgZmlsZXMgdXBsb2FkZWQgKGZhbHNlKVxyXG4gICAqIG9yIGNyZWF0aW5nIGEgUHJlcGFyZWRJdGVtIGZvciBlYWNoIGZpbGUgcG9zdGVkIHRvIHRoZSBVUkwgKHRydWUpXHJcbiAgICovXHJcbiAgY3JlYXRlTWFueT86IGJvb2xlYW47XHJcbiAgY2hpbGRUeXBlPzogc3RyaW5nO1xyXG59XHJcblxyXG4vKipcclxuICogQ29sbGVjdGlvbiBvZiBQcmVwYXJlIFNlcnZpY2VzXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBQcmVwYXJlU2VydmljZSB7XHJcblxyXG4gIHByaXZhdGUgcHJlcGFyZWRJdGVtczogUHJlcGFyZWRJdGVtW107XHJcbiAgcHJpdmF0ZSBwcmVwYXJlZEl0ZW1zU291cmNlID0gbmV3IFJlcGxheVN1YmplY3Q8UHJlcGFyZWRJdGVtW10+KDEpO1xyXG4gIHB1YmxpYyBwcmVwYXJlZEl0ZW1zJDogT2JzZXJ2YWJsZTxQcmVwYXJlZEl0ZW1bXT4gPSB0aGlzLnByZXBhcmVkSXRlbXNTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIHByaXZhdGUgcHJlcGFyZWRJdGVtQ291bnQ6IG51bWJlcjtcclxuICBwcml2YXRlIHByZXBhcmVkSXRlbUNvdW50U291cmNlID0gbmV3IFJlcGxheVN1YmplY3Q8bnVtYmVyPigxKTtcclxuICBwdWJsaWMgcHJlcGFyZWRJdGVtQ291bnQkOiBPYnNlcnZhYmxlPG51bWJlcj4gPSB0aGlzLnByZXBhcmVkSXRlbUNvdW50U291cmNlLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGJhY2tlbmQ6IEJhY2tlbmRTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgdXBsb2FkU2VydmljZTogVXBsb2FkU2VydmljZSkge1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUHVibGljIEZldGNoIFByZXBhcmUgaXRlbXNcclxuICAgKi9cclxuICByZWZyZXNoUHJlcGFyZWRJdGVtc0NvdW50KCkge1xyXG4gICAgdGhpcy5mZXRjaFByZXBhcmVkSXRlbXNDb3VudCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyB0aGUgbnVtYmVyIG9mIHByZXBhcmVkIGl0ZW1zIGZvciB0aGUgY3VycmVudCB1c2VyLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgZmV0Y2hQcmVwYXJlZEl0ZW1zQ291bnQoKSB7XHJcbiAgICB0aGlzLmJhY2tlbmQuZ2V0SnNvbignL3ByZXBhcmUvc3RhdGUnKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlcykgPT4gcmVzLmNvdW50KVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICAgIHRoaXMucHJlcGFyZWRJdGVtQ291bnQgPSByZXM7XHJcbiAgICAgICAgdGhpcy5wcmVwYXJlZEl0ZW1Db3VudFNvdXJjZS5uZXh0KHRoaXMucHJlcGFyZWRJdGVtQ291bnQpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZXMgYSBwcmVwYXJlZCBpdGVtIG9uIHRoZSBiYWNrZWQgc2lkZS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBwYXJlbnRJZCBUaGUgSUQgb2YgdGhlIHBhcmVudCBkbXMgb2JqZWN0IHRvIGFkZCB0aGUgcHJlcGFyZWQgaXRlbSB0b1xyXG4gICAqIEBwYXJhbSBjaGlsZFR5cGUgVGhlIHR5cGUgb2Ygb2JqZWN0IHRvIGJlIGNyZWF0ZWRcclxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPGFueT5cclxuICAgKi9cclxuICBwdWJsaWMgY3JlYXRlUHJlcGFyZWRJdGVtKHBhcmVudElkOiBzdHJpbmcsIGNoaWxkVHlwZT86IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZFxyXG4gICAgICAucG9zdCh0aGlzLmNyZWF0ZVByZXBhcmVkSXRlbVBvc3RVcmwoe1xyXG4gICAgICAgIHBhcmVudElkOiBwYXJlbnRJZCxcclxuICAgICAgICBjaGlsZFR5cGU6IGNoaWxkVHlwZSA/IGNoaWxkVHlwZSA6IG51bGxcclxuICAgICAgfSksIHt9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5nZXRQcmVwYXJlZEl0ZW1zJCgpKVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0gcHJlcGFyZWRJdGVtSWRcclxuICAgKiBAcGFyYW0gZGF0YVxyXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8YW55PlxyXG4gICAqL1xyXG4gIHB1YmxpYyB1cGRhdGVQcmVwYXJlZEl0ZW1JbmRleERhdGEocHJlcGFyZWRJdGVtSWQsIGRhdGEpIHtcclxuICAgIHJldHVybiB0aGlzLmJhY2tlbmRcclxuICAgICAgLnB1dCgnL3ByZXBhcmUvJyArIHByZXBhcmVkSXRlbUlkLCBkYXRhKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5nZXRQcmVwYXJlZEl0ZW1zJCgpKVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBhbiBVUkwgZm9yIGNyZWF0aW5nIGEgUHJlcGFyZWRJdGVtLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHBhcmFtcyBQYXJhbXMgZm9yIGdlbmVyYXRpbmcgYXBwcm9wcmlhdGUgdXJpLlxyXG4gICAqIEByZXR1cm5zIHN0cmluZyBBIFBPU1QgVVJMIGZvciBjcmVhdGluZyBQcmVwYXJlZEl0ZW1zXHJcbiAgICovXHJcbiAgcHVibGljIGNyZWF0ZVByZXBhcmVkSXRlbVBvc3RVcmwocGFyYW1zOiBQcmVwYXJlZFBvc3RQYXJhbSk6IHN0cmluZyB7XHJcblxyXG4gICAgbGV0IHVybCA9IHBhcmFtcy5jcmVhdGVNYW55ID8gJy9wcmVwYXJlL2NyZWF0ZW1hbnknIDogJy9wcmVwYXJlL2NyZWF0ZSc7XHJcbiAgICBpZiAocGFyYW1zKSB7XHJcbiAgICAgIHVybCA9IFV0aWxzLmJ1aWxkVXJpKHVybCwgcGFyYW1zKTtcclxuICAgIH1cclxuICAgIHJldHVybiB1cmw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgYSBsaXN0IG9mIHRoZSB1c2VycyBwcmVwYXJlZCBpdGVtcy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBub0Zvcm1zIElmIHNldCB0byB0cnVlIHRoZSBwcmVwYXJlZCBpdGVtcyB3aWxsIGJlIGZldGNoZWQgd2l0aG91dCB0aGUgZm9ybSB3aGljaCBpcyBmYXN0ZXJcclxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPFByZXBhcmVkSXRlbVtdPiBBIGNvbGxlY3Rpb24gb2YgcHJlcGFyZWQgaXRlbSBvYmplY3RzXHJcbiAgICovXHJcbiAgcHVibGljIGdldFByZXBhcmVkSXRlbXMkKG5vRm9ybXM/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxQcmVwYXJlZEl0ZW1bXT4ge1xyXG4gICAgdGhpcy5mZXRjaFByZXBhcmVkSXRlbXMobm9Gb3Jtcykuc3Vic2NyaWJlKCk7XHJcbiAgICByZXR1cm4gdGhpcy5wcmVwYXJlZEl0ZW1zJDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlIFByZXBhcmVJdGVtcyBhbmQgZm9ybSB0aGVtXHJcbiAgICpcclxuICAgKiBAcGFyYW0gYm9vbGVhbiBub0Zvcm1zXHJcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxQcmVwYXJlZEl0ZW1bXT5cclxuICAgKi9cclxuICBwcml2YXRlIGZldGNoUHJlcGFyZWRJdGVtcyhub0Zvcm1zPzogYm9vbGVhbik6IE9ic2VydmFibGU8UHJlcGFyZWRJdGVtW10+IHtcclxuICAgIGxldCB1cmkgPSAobm9Gb3JtcykgPyAnL3ByZXBhcmUnIDogJy9wcmVwYXJlP2Zvcm09dHJ1ZSc7XHJcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXHJcbiAgICAgIC5nZXRKc29uKHVyaSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXM6IGFueSkgPT4gcmVzLm1hcChpID0+IG5ldyBQcmVwYXJlZEl0ZW0oaSkpKSxcclxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5mZXRjaFByZXBhcmVkSXRlbXNDb3VudCgpKSxcclxuICAgICAgICB0YXAoKHByZXBhcmVkSXRlbXM6IFByZXBhcmVkSXRlbVtdKSA9PiB0aGlzLnByZXBhcmVkSXRlbXNTb3VyY2UubmV4dChwcmVwYXJlZEl0ZW1zLnNvcnQoVXRpbHMuc29ydFZhbHVlcygnY3JlYXRlZCcsICdkZXNjJykpKSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZXMgYSBwcmVwYXJlZCBpdGVtLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHByZXBhcmVkSXRlbUlkIElEIG9mIHRoZSBpdGVtIHRvIGJlIHJlbW92ZWRcclxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPGFueT4gU2VydmVyIHJlc3BvbnNlXHJcbiAgICovXHJcbiAgZGVsZXRlUHJlcGFyZWRJdGVtKHByZXBhcmVkSXRlbUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZFxyXG4gICAgICAuZGVsKGAvcHJlcGFyZS8ke3ByZXBhcmVkSXRlbUlkfWApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLmdldFByZXBhcmVkSXRlbXMkKCkpXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIGEgbGlzdCBvZiBvYmplY3QgdHlwZXMgYWxsb3dlZCB0byBiZSBwbGFjZWQgZGlyZWN0bHkgYmVsb3cgcm9vdC5cclxuICAgKlxyXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8T2JqZWN0VHlwZVtdPiBBIGxpc3Qgb2Ygc3VwcG9ydGVkIG9iamVjdCB0eXBlc1xyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRQcmVwYXJlUm9vdFR5cGVzKCk6IE9ic2VydmFibGU8T2JqZWN0VHlwZVtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXHJcbiAgICAgIC5nZXRWaWFUZW1wQ2FjaGUoJy9wcmVwYXJlL3R5cGVzJylcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXMpID0+IHJlcy50eXBlcy5tYXAoKHR5cGUpID0+IG5ldyBPYmplY3RUeXBlKHR5cGUpKSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgYSBsaXN0IG9mIGFsbG93ZWQgY2hpbGQgb2JqZWN0IHR5cGVzIGZvciBhIHNlbGVjdGVkIHBhcmVudC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBwYXJlbnRJZCBUaGUgaWQgb2YgdGhlIHBhcmVudCBkbXMgb2JqZWN0IChjb250ZXh0IGZvbGRlcilcclxuICAgKiBAcGFyYW0gd2l0aENvbnRlbnRPbmx5IElmIHNldCB0byB0cnVlIG9ubHkgY2hpbGQgdHlwZXMsIHRoYXQgc3VwcG9ydCBjb250ZW50IGFyZSByZXR1cm5lZC5cclxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPElQcmVwYXJlQ2hpbGRUeXBlcz4gQSBsaXN0IG9mIHN1cHBvcnRlZCBvYmplY3QgdHlwZXNcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0UHJlcGFyZUNoaWxkVHlwZXMocGFyZW50SWQ6IHN0cmluZywgd2l0aENvbnRlbnRPbmx5PzogYm9vbGVhbik6IE9ic2VydmFibGU8SVByZXBhcmVDaGlsZFR5cGVzPiB7XHJcbiAgICBjb25zdCBwYXJhbXMgPSBwYXJlbnRJZCA/IHtwYXJlbnRJZCwgd2l0aGNvbnRlbnQ6IHdpdGhDb250ZW50T25seX0gOiB7d2l0aGNvbnRlbnQ6IHdpdGhDb250ZW50T25seX1cclxuICAgIGNvbnN0IHVyaSA9IFV0aWxzLmJ1aWxkVXJpKCcvcHJlcGFyZS90eXBlcycsIHBhcmFtcyk7XHJcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXHJcbiAgICAgIC5nZXRWaWFUZW1wQ2FjaGUodXJpKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAocmVzID0+ICh7cGFyZW50OiByZXMucGFyZW50LCB0eXBlczogcmVzLnR5cGVzLm1hcCgodHlwZSkgPT4gbmV3IE9iamVjdFR5cGUodHlwZSkpfSkpXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBmZXRjaCB0aGUgcHJldmlldyB1cmkgZm9yIGEgcHJlcGFyZWQgaXRlbVxyXG4gICAqXHJcbiAgICogQHBhcmFtIGlkIFRoZSBpZCBvZiB0aGUgcHJlcGFyZWQgaXRlbVxyXG4gICAqIEBwYXJhbSBpbmRleCBXaGVuIGEgcHJlcGFyZWQgaXRlbSBjb250YWlucyBtb3JlIHRoYW4gb25lIGNvbnRlbnRzLCB0aGUgaW5kZXggc3BlY2lmaWVzIHdoaWNoIGNvbnRlbnRcclxuICAgKiBAcGFyYW0gcmVuZGl0aW9uIFRhcmdldCByZW5kaXRpb24gKFBERilcclxuICAgKiB0byByZXRyaWV2ZSB0aGUgcHJldmlldyB1cmkgZm9yXHJcbiAgICogQHJldHVybnMgc3RyaW5nIFByZXZpZXcgdXJpXHJcbiAgICovXHJcbiAgcHVibGljIGdldFByZXZpZXdVcmkoaWQ6IHN0cmluZywgaW5kZXg/OiBudW1iZXIsIHJlbmRpdGlvbj86IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gVXRpbHMuYnVpbGRVcmkoYCR7dGhpcy5iYWNrZW5kLmdldFNlcnZpY2VCYXNlKCl9L3ByZXBhcmUvJHtpZH0vY29udGVudGAsIHtyZW5kaXRpb24sIGluZGV4fSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIHRoZSBwcmVwYXJlZCBpdGVtcyB0YXJnZXQgb2JqZWN0IHR5cGUuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gb2JqZWN0VHlwZSBUaGUgdGFyZ2V0IG9iamVjdCB0eXBlcyBuYW1lXHJcbiAgICogQHBhcmFtIHByZXBhcmVkSXRlbUlkIFRoZSBpZCBvZiB0aGUgcHJlcGFyZWQgaXRlbSB0byBzZXQgdGhlIHR5cGUgZm9yXHJcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxQcmVwYXJlZEl0ZW0+IFRoZSB1cGRhdGVkIHByZXBhcmVkIGl0ZW1cclxuICAgKi9cclxuICBwdWJsaWMgdXBkYXRlQ2hpbGRUeXBlKG9iamVjdFR5cGU6IHN0cmluZywgcHJlcGFyZWRJdGVtSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8UHJlcGFyZWRJdGVtPiB7XHJcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXHJcbiAgICAgIC5wdXQoYC9wcmVwYXJlLyR7cHJlcGFyZWRJdGVtSWR9LyR7b2JqZWN0VHlwZX0/Zm9ybT10cnVlJmNvbnRlbnRtZXRhPXRydWVgKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAocmVzID0+IG5ldyBQcmVwYXJlZEl0ZW0ocmVzKSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZCBhIHRlbXBsYXRlIHRvIGEgcHJlcGFyZWQgaXRlbS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBwcmVwYXJlZEl0ZW1JZCBUaGUgaWQgb2YgdGhlIHByZXBhcmVkIGl0ZW0gdG8gYWRkIHRoZSB0ZW1wbGF0ZSB0b1xyXG4gICAqIEBwYXJhbSB0ZW1wbGF0ZUlkIFRoZSBpZCBvZiB0aGUgdGVtcGxhdGUgdG8gYmUgYWRkZWRcclxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPFByZXBhcmVkSXRlbT4gIFRoZSB1cGRhdGVkIHByZXBhcmVkIGl0ZW1cclxuICAgKi9cclxuICBwdWJsaWMgYWRkVGVtcGxhdGUocHJlcGFyZWRJdGVtSWQsIHRlbXBsYXRlSWQpOiBPYnNlcnZhYmxlPFByZXBhcmVkSXRlbT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZFxyXG4gICAgICAucHV0KGAvcHJlcGFyZS8ke3ByZXBhcmVkSXRlbUlkfS90ZW1wbGF0ZT90ZW1wbGF0ZWlkPSR7dGVtcGxhdGVJZH1gKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAocmVzID0+IG5ldyBQcmVwYXJlZEl0ZW0ocmVzKSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgYSBsaXN0IG9mIGF2YWlsYWJsZSB0ZW1wbGF0ZXMgZm9yIGEgZ2l2ZW4gb2JqZWN0IHR5cGUuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gT2JzZXJ2YWJsZTxQcmVwYXJlZEl0ZW1UZW1wbGF0ZVtdPiBvYmplY3RUeXBlTmFtZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRUZW1wbGF0ZXMob2JqZWN0VHlwZU5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8UHJlcGFyZWRJdGVtVGVtcGxhdGVbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZFxyXG4gICAgICAuZ2V0SnNvbignL3RlbXBsYXRlL2xpc3Q/dHlwZT0nICsgb2JqZWN0VHlwZU5hbWUpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzOiBhbnkpID0+IHJlcyBhcyBQcmVwYXJlZEl0ZW1UZW1wbGF0ZVtdKVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB1cmwgb2YgYSB0ZW1wbGF0ZSBwcmV2aWV3XHJcbiAgICpcclxuICAgKiBAcGFyYW0gaWQgVGVtcGxhdGUgSURcclxuICAgKiBAcGFyYW0gcmVuZGl0aW9uIFRhcmdldCByZW5kaXRpb24gKFBERilcclxuICAgKiBAcmV0dXJucyBzdHJpbmcgVGhlIHRlbXBsYXRlIHByZXZpZXcgdXJsLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRUZW1wbGF0ZVByZXZpZXdVcmkoaWQsIHJlbmRpdGlvbj86IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gVXRpbHMuYnVpbGRVcmkoYCR7dGhpcy5iYWNrZW5kLmdldFNlcnZpY2VCYXNlKCl9L3RlbXBsYXRlLyR7aWR9L2NvbnRlbnRgLCB7cmVuZGl0aW9ufSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb21taXQgYSBwcmVwYXJlZCBpdGVtLiBUaGlzIHdpbGwgY3JlYXRlIGFuIGFjdHVhbCBkbXMgb2JqZWN0LlxyXG4gICAqIFVwZGF0ZXMgdGhlIHByZXBhcmVkIGNyZWF0aW9uIG9iamVjdCB0YXJnZXQgdHlwZVxyXG4gICAqXHJcbiAgICogQHBhcmFtIHByZXBhcmVkSXRlbUlkIElEIG9mIHRoZSBwcmVwYXJlZCBpdGVtXHJcbiAgICogQHBhcmFtIHByZXBhcmVkSXRlbVR5cGUgTmFtZSBvZiB0aGUgcHJlcGFyZWQgaXRlbXMgdGFyZ2V0IG9iamVjdCB0eXBlXHJcbiAgICogQHBhcmFtIHByZXBhcmVkSXRlbURhdGEgT2JqZWN0IGhvbGRpbmcgZGF0YSBvZiB0aGUgcHJlcGFyZWQgaXRlbVxyXG4gICAqIEByZXR1cm5zIFRoZSBpZCBvZiB0aGUgY3JlYXRlZCBkbXMgb2JqZWN0XHJcbiAgICovXHJcbiAgcHVibGljIGNvbW1pdFByZXBhcmVkSXRlbShwcmVwYXJlZEl0ZW1JZCwgcHJlcGFyZWRJdGVtVHlwZSwgcHJlcGFyZWRJdGVtRGF0YSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXHJcbiAgICAgIC5wdXQoYC9wcmVwYXJlLyR7cHJlcGFyZWRJdGVtSWR9LyR7cHJlcGFyZWRJdGVtVHlwZX1gKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtZXJnZU1hcCgoKSA9PiB0aGlzLmJhY2tlbmQucG9zdChgL3ByZXBhcmUvY29tbWl0LyR7cHJlcGFyZWRJdGVtSWR9YCwgcHJlcGFyZWRJdGVtRGF0YSkpLFxyXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLmdldFByZXBhcmVkSXRlbXMkKCkpLFxyXG4gICAgICAgIG1hcChyZXMgPT4gcmVzLmlkKVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBsb2FkIENvbnRlbnRcclxuICAgKlxyXG4gICAqIEBwYXJhbSBzdHJpbmcgcHJlcGFyZWRJdGVtSWRcclxuICAgKiBAcGFyYW0gRmlsZSBmaWxlXHJcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxhbnk+XHJcbiAgICovXHJcbiAgdXBsb2FkQ29udGVudChwcmVwYXJlZEl0ZW1JZDogc3RyaW5nLCBmaWxlOiBGaWxlKSB7XHJcbiAgICBjb25zdCB1cmkgPSBgJHt0aGlzLmJhY2tlbmQuZ2V0U2VydmljZUJhc2UoKX0vcHJlcGFyZS8ke3ByZXBhcmVkSXRlbUlkfS9jb250ZW50Lmpzb24/Zm9ybT10cnVlJmNvbnRlbnRtZXRhPXRydWVgO1xyXG4gICAgcmV0dXJuIHRoaXMudXBsb2FkU2VydmljZVxyXG4gICAgICAudXBsb2FkKHVyaSwgW2ZpbGVdKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICAvLyB0YXAoKCkgPT4gdGhpcy5nZXRQcmVwYXJlZEl0ZW1zJCgpKVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBsb2FkcyBmaWxlcyB0byBhbiB1cGxvYWQgdGFyZ2V0LlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHVwbG9hZFRhcmdldCBUaGUgdXBsb2FkIHRhcmdldCB0byB1cGxvYWQgZmlsZXMgdG9cclxuICAgKiBAcGFyYW0gdXBsb2FkRmlsZXMgRmlsZXMgdG8gYmUgdXBsb2FkZWRcclxuICAgKiBAcGFyYW0gdXNlQmF0Y2hVcGxvYWQgRmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgb3Igbm90IHRvIHVzZSBiYXRjaCBwcm9jZXNzaW5nIG9uIHRoZSBiYWNrZW5kIHNpZGVcclxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPGFueT5cclxuICAgKi9cclxuICB1cGxvYWRUb1RhcmdldCh1cGxvYWRUYXJnZXQ6IFVwbG9hZFRhcmdldCwgdXBsb2FkRmlsZXM6IFVwbG9hZEZpbGVJdGVtW10sIHVzZUJhdGNoVXBsb2FkPzogYm9vbGVhbik6IE9ic2VydmFibGU8YW55PiB7XHJcblxyXG4gICAgY29uc3QgZmlsZXMgPSB1cGxvYWRGaWxlcy5tYXAoZiA9PiBmLl9maWxlKTtcclxuICAgIHJldHVybiB0aGlzLnVwbG9hZFNlcnZpY2VcclxuICAgICAgLnVwbG9hZCh0aGlzLmdldFVwbG9hZFRhcmdldCh1cGxvYWRUYXJnZXQsIHVzZUJhdGNoVXBsb2FkKSwgZmlsZXMpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLmdldFByZXBhcmVkSXRlbXMkKCkpXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgdGhlIHVyaSB0byBwb3N0IGZpbGVzIHRvIGJhc2VkIG9uIHRoZSB1cGxvYWQgdGFyZ2V0LlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHVwbG9hZFRhcmdldCBUaGUgdGFyZ2V0IHRvIHVwbG9hZCBmaWxlcyB0b1xyXG4gICAqIEBwYXJhbSB1c2VCYXRjaFVwbG9hZCBGbGFnIGluZGljYXRpbmcgd2hldGhlciBvciBub3QgdG8gdXBsb2FkIGFsbCBmaWxlcyBpbiBhIHNpbmdsZSBwb3N0XHJcbiAgICogQHJldHVybnMgc3RyaW5nIHRoZSB1cmlcclxuICAgKi9cclxuICBwcml2YXRlIGdldFVwbG9hZFRhcmdldCh1cGxvYWRUYXJnZXQ6IFVwbG9hZFRhcmdldCwgdXNlQmF0Y2hVcGxvYWQ/OiBib29sZWFuKTogc3RyaW5nIHtcclxuICAgIGxldCB1cmk7XHJcblxyXG4gICAgaWYgKHVwbG9hZFRhcmdldC50eXBlID09PSBVcGxvYWRUYXJnZXQuUk9PVCkge1xyXG4gICAgICAvKipcclxuICAgICAgICogdXBsb2FkIHRvIGdlbmVyYWwgZmlsaW5nIGxvY2F0aW9uXHJcbiAgICAgICAqXHJcbiAgICAgICAqIEB0eXBlIHN0cmluZ1xyXG4gICAgICAgKi9cclxuICAgICAgdXJpID0gdGhpcy5iYWNrZW5kLmdldFNlcnZpY2VCYXNlKCkgKyB0aGlzLmNyZWF0ZVByZXBhcmVkSXRlbVBvc3RVcmwoe1xyXG4gICAgICAgICAgcGFyZW50SWQ6IG51bGwsXHJcbiAgICAgICAgICBjcmVhdGVNYW55OiAhdXNlQmF0Y2hVcGxvYWRcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcblxyXG4gICAgfSBlbHNlIGlmICh1cGxvYWRUYXJnZXQudHlwZSA9PT0gVXBsb2FkVGFyZ2V0Lk9CSkVDVCkge1xyXG4gICAgICAvKipcclxuICAgICAgICogdXBsb2FkIHRvIGRtcyBvYmplY3QsIG1lYW5zIGFkZGluZyBvciByZXBsYWNpbmcgY29udGVudCBmaWxlXHJcbiAgICAgICAqL1xyXG4gICAgICBjb25zdCB7cmVmZXJlbmNlT2JqZWN0fSA9IHVwbG9hZFRhcmdldDtcclxuICAgICAgdXJpID0gYCR7dGhpcy5iYWNrZW5kLmdldFNlcnZpY2VCYXNlKCl9L2Rtcy8ke3JlZmVyZW5jZU9iamVjdC5pZH0vY29udGVudHM/dHlwZT0ke3JlZmVyZW5jZU9iamVjdC50eXBlLm5hbWV9YDtcclxuXHJcbiAgICB9IGVsc2UgaWYgKHVwbG9hZFRhcmdldC50eXBlID09PSBVcGxvYWRUYXJnZXQuQ09OVEVYVCB8fCB1cGxvYWRUYXJnZXQudHlwZSA9PT0gVXBsb2FkVGFyZ2V0LkNPTlRFWFRfVFJFRSkge1xyXG4gICAgICAvKipcclxuICAgICAgICogdXBsb2FkIHRvIGNvbnRleHQgZm9sZGVyLCBtZWFucyBhZGRpbmcgYSBuZXcgZG1zIG9iamVjdCB0byBhIHNwZWNpZmljXHJcbiAgICAgICAqIGNvbnRleHQgZm9sZGVyIC4uLlxyXG4gICAgICAgKiAuLi4gaWYgd2UgZ290IGEgc3ViRm9sZGVyIChub2RlIGZyb20gdGhlIGNvbnRleHQgdHJlZSkgc2V0IHVwIHdlJ2xsIGFkZCB0aGF0IHRvb1xyXG4gICAgICAgKlxyXG4gICAgICAgKiBAdHlwZSBzdHJpbmdcclxuICAgICAgICovXHJcbiAgICAgIHVyaSA9IHRoaXMuYmFja2VuZC5nZXRTZXJ2aWNlQmFzZSgpICsgdGhpcy5jcmVhdGVQcmVwYXJlZEl0ZW1Qb3N0VXJsKHtcclxuICAgICAgICBwYXJlbnRJZDogdXBsb2FkVGFyZ2V0LnJlZmVyZW5jZU9iamVjdC5pZCxcclxuICAgICAgICBjcmVhdGVNYW55OiAhdXNlQmF0Y2hVcGxvYWQsXHJcbiAgICAgICAgY2hpbGRUeXBlOiB1cGxvYWRUYXJnZXQuc3ViRm9sZGVyICYmIHVwbG9hZFRhcmdldC5zdWJGb2xkZXIuZGF0YS50eXBlID8gdXBsb2FkVGFyZ2V0LnN1YkZvbGRlci5kYXRhLnR5cGUgOiBudWxsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHVyaTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlbGV0ZXMgYSBwcmVwYXJlZCBjcmVhdGlvbiBvYmplY3QgY29udGVudCBlbGVtZW50IGJ5IGluZGV4IG9yIHRoZSBjb21wbGV0ZSBjb250ZW50LlxyXG4gICAqIElmIHlvdSBwcm92aWRlIGFuIGluZGV4IHRoZSBjb250ZW50IGNvbnNpc3RzIG9ubHkgb2Ygb25lIGVsZW1lbnQsXHJcbiAgICogdGhlIGNvbnRlbnQgaXMgY29tcGxldGVseSByZW1vdmVkIGZyb20gdGhlIHByZXBhcmVkIGNyZWF0aW9uIG9iamVjdC5cclxuICAgKiBcclxuICAgKiBAcGFyYW0gcHJlcGFyZWRJdGVtSWQgSUQgb2YgdGhlIGl0ZW0gd2l0aCB0aGUgY29udGVudCB0byBiZSByZW1vdmVkXHJcbiAgICogQHBhcmFtIGluZGV4IFBhcmFtZXRlciB0aGF0IGRldGVybWluZXMgd2hpY2ggY29udGVudCBlbGVtZW50IHNob3VsZCBiZSBkZWxldGVkLlxyXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8UHJlcGFyZWRJdGVtPiBUaGUgdXBkYXRlZCBwcmVwYXJlZCBpdGVtXHJcbiAgICovXHJcbiAgcHVibGljIGRlbGV0ZVByZXBhcmVkSXRlbUNvbnRlbnQocHJlcGFyZWRJdGVtSWQ6IHN0cmluZywgaW5kZXg/OiBudW1iZXIpOiBPYnNlcnZhYmxlPFByZXBhcmVkSXRlbT4ge1xyXG4gICAgY29uc3QgdXJsID0gYC9wcmVwYXJlLyR7cHJlcGFyZWRJdGVtSWR9L2NvbnRlbnRgICsgKGluZGV4ICE9PSB1bmRlZmluZWQgPyBgP2luZGV4PSR7aW5kZXh9YCA6ICcnKTtcclxuICAgIHJldHVybiB0aGlzLmJhY2tlbmRcclxuICAgICAgLmRlbCh1cmwpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcChyZXMgPT4gbmV3IFByZXBhcmVkSXRlbShyZXMpKVxyXG4gICAgICApO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -45,13 +45,15 @@ export class UserService {
|
|
|
45
45
|
/**
|
|
46
46
|
* Observable emitting current users favorites
|
|
47
47
|
*/
|
|
48
|
-
this.
|
|
48
|
+
this.favoritesGridData$ = this.favoritesSource.asObservable().pipe(debounceTime(100), filter(v => v));
|
|
49
|
+
this.favorites$ = this.favoritesGridData$.pipe(this.backend.gridDataFilter);
|
|
49
50
|
this.notifications = null;
|
|
50
51
|
this.notificationsSource = new BehaviorSubject(this.notifications);
|
|
51
52
|
/**
|
|
52
53
|
* Observable emitting current users notifications
|
|
53
54
|
*/
|
|
54
|
-
this.
|
|
55
|
+
this.notificationsGridData$ = this.notificationsSource.asObservable().pipe(debounceTime(100), filter(v => v));
|
|
56
|
+
this.notifications$ = this.notificationsGridData$.pipe(this.backend.gridDataFilter);
|
|
55
57
|
}
|
|
56
58
|
/**
|
|
57
59
|
* Gets the current user.
|
|
@@ -297,4 +299,4 @@ UserService.ctorParameters = () => [
|
|
|
297
299
|
{ type: SystemService },
|
|
298
300
|
{ type: Config }
|
|
299
301
|
];
|
|
300
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW8tc2RrL2NvcmUvc3JjL2xpYi9zZXJ2aWNlL3VzZXIvdXNlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFhLGVBQWUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQy9ELE9BQU8sRUFBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUVyRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDeEMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUN2QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUVoRDs7Ozs7Ozs7OztHQVVHO0FBRUgsTUFBTSxPQUFPLFdBQVc7SUF5QnRCOztPQUVHO0lBQ0gsWUFBb0IsT0FBdUIsRUFDdkIsU0FBMkIsRUFDM0IsTUFBYyxFQUNkLFlBQTBCLEVBQzFCLE1BQXFC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LENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVNLFlBQVksQ0FBQyxTQUFpQjtRQUNuQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFHRDs7T0FFRztJQUNILGNBQWMsQ0FBQyxPQUFnQztRQUM3QyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRDs7T0FFRztJQUNLLGtCQUFrQjtRQUN4QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0RyxDQUFDOzs7WUFqVEYsVUFBVTs7O1lBckJILGNBQWM7WUFGZCxnQkFBZ0I7WUFLaEIsTUFBTTtZQUlOLFlBQVk7WUFIWixhQUFhO1lBRmIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7T2JzZXJ2YWJsZSwgQmVoYXZpb3JTdWJqZWN0LCBmb3JrSm9pbiwgb2Z9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge21hcCwgdGFwLCBkZWJvdW5jZVRpbWUsIGZpbHRlcn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQge0NoYW5nZVBhc3N3b3JkSW50ZXJmYWNlfSBmcm9tICcuLi8uLi9pbnRlcmZhY2UvY2hhbmdlLXBhc3N3b3JkLmludGVyZmFjZSc7XHJcbmltcG9ydCB7QmFja2VuZFNlcnZpY2V9IGZyb20gJy4uL2JhY2tlbmQvYmFja2VuZC5zZXJ2aWNlJztcclxuaW1wb3J0IHtFb1VzZXJ9IGZyb20gJy4uLy4uL21vZGVsL2VvLXVzZXIubW9kZWwnO1xyXG5pbXBvcnQge0NvbmZpZ30gZnJvbSAnLi4vY29uZmlnL2NvbmZpZy5zZXJ2aWNlJztcclxuaW1wb3J0IHtMb2dnZXJ9IGZyb20gJy4uL2xvZ2dlci9sb2dnZXInO1xyXG5pbXBvcnQge1N5c3RlbVNlcnZpY2V9IGZyb20gJy4uL3N5c3RlbS9zeXN0ZW0uc2VydmljZSc7XHJcbmltcG9ydCB7VXRpbHN9IGZyb20gJy4uLy4uL3V0aWwvdXRpbHMnO1xyXG5pbXBvcnQge0VuYWlvRXZlbnR9IGZyb20gJy4uL2V2ZW50cy9ldmVudHMnO1xyXG5pbXBvcnQge0V2ZW50U2VydmljZX0gZnJvbSAnLi4vZXZlbnRzL2V2ZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQge0RpcmVjdGlvbn0gZnJvbSAnLi4vY29uZmlnL2NvbmZpZy5lbnVtJztcclxuXHJcbi8qKlxyXG4gKiBBcHBsaWNhdGlvbnMgdXNlciBzZXJ2aWNlLlxyXG4gKiBUbyBnZXQgdGhlIGN1cnJlbnQgdXNlciB5b3UgaGF2ZSB0byBzdWJzY3JpYmUgdG8gdGhlIHNlcnZpY2VzIGB1c2VyJGAgb2JzZXJ2YWJsZS5cclxuICpcclxuICogYGBgamF2YXNjcmlwdFxyXG4gKiB1c2VyU2VydmljZS51c2VyJC5zdWJzY3JpYmUoKHVzZXIpID0+IHRoaXMudXNlciA9IHVzZXIpO1xyXG4gKiBgYGBcclxuICpcclxuICogVGhpcyB3YXkgeW91ciBjb21wb25lbnQgd2lsbCBiZSBwcm92aWRlZCB3aXRoIGFuIHVwLXRvLWRhdGUgdXNlciBvYmplY3Qgbm8gbWF0dGVyXHJcbiAqIHdoaWNoIGNvbXBvbmVudCBjaGFuZ2VzIG9uIG9mIHRoZSB1c2VycyBwcm9wZXJ0aWVzLlxyXG4gKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgVXNlclNlcnZpY2Uge1xyXG5cclxuICBVU0VSX0ZFVENIX1VSSSA9ICcvdXNlcj9mYXZvcml0ZXM9dHJ1ZSZwcml2aWxlZ2VzPXRydWUmcm9sZXM9dHJ1ZSZkZXB1dGllcz10cnVlJnN1YnN0aXR1dGVzT2Y9dHJ1ZSc7XHJcblxyXG4gIHByaXZhdGUgdXNlcjogRW9Vc2VyID0gbnVsbDtcclxuICBwcml2YXRlIHVzZXJTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEVvVXNlcj4odGhpcy51c2VyKTtcclxuICAvKipcclxuICAgKiBPYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSBjdXJyZW50IHVzZXJcclxuICAgKi9cclxuICBwdWJsaWMgdXNlciQ6IE9ic2VydmFibGU8YW55PiA9IHRoaXMudXNlclNvdXJjZS5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgcHJpdmF0ZSBmYXZvcml0ZXMgPSBudWxsO1xyXG4gIHByaXZhdGUgZmF2b3JpdGVzU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KHRoaXMuZmF2b3JpdGVzKTtcclxuICAvKipcclxuICAgKiBPYnNlcnZhYmxlIGVtaXR0aW5nIGN1cnJlbnQgdXNlcnMgZmF2b3JpdGVzXHJcbiAgICovXHJcbiAgcHVibGljIGZhdm9yaXRlcyQ6IE9ic2VydmFibGU8YW55PiA9IHRoaXMuZmF2b3JpdGVzU291cmNlLmFzT2JzZXJ2YWJsZSgpLnBpcGUoZGVib3VuY2VUaW1lKDEwMCksIGZpbHRlcih2ID0+IHYpKTtcclxuXHJcbiAgcHJpdmF0ZSBub3RpZmljYXRpb25zID0gbnVsbDtcclxuICBwcml2YXRlIG5vdGlmaWNhdGlvbnNTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4odGhpcy5ub3RpZmljYXRpb25zKTtcclxuICAvKipcclxuICAgKiBPYnNlcnZhYmxlIGVtaXR0aW5nIGN1cnJlbnQgdXNlcnMgbm90aWZpY2F0aW9uc1xyXG4gICAqL1xyXG4gIHB1YmxpYyBub3RpZmljYXRpb25zJDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5ub3RpZmljYXRpb25zU291cmNlLmFzT2JzZXJ2YWJsZSgpLnBpcGUoZGVib3VuY2VUaW1lKDEwMCksIGZpbHRlcih2ID0+IHYpKTtcclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYmFja2VuZDogQmFja2VuZFNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBsb2dnZXI6IExvZ2dlcixcclxuICAgICAgICAgICAgICBwcml2YXRlIGV2ZW50U2VydmljZTogRXZlbnRTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgc3lzdGVtOiBTeXN0ZW1TZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgY29uZmlnOiBDb25maWcpIHtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIGN1cnJlbnQgdXNlci5cclxuICAgKiBAcmV0dXJucyBUaGUgY3VycmVudCB1c2VyIG9yIE5VTEwgaWYgbm8gdXNlciBpcyBsb2dnZWQgaW5cclxuICAgKi9cclxuICBwdWJsaWMgZ2V0Q3VycmVudFVzZXIoKTogRW9Vc2VyIHtcclxuICAgIHJldHVybiB0aGlzLnVzZXI7XHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0IHByZXNlbmNlIG9mIHRoZSBjdXJyZW50IHVzZXJcclxuICAgKiBAcGFyYW0gcHJlc2VudCBWYWx1ZSB0byBzZXQgdGhlIHVzZXJzIHByZXNlbmNlIHRvXHJcbiAgICovXHJcbiAgcHVibGljIHNldFByZXNlbmNlKHByZXNlbnQ6IGJvb2xlYW4pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cclxuICAgIGlmIChwcmVzZW50ICE9PSB0aGlzLnVzZXIucHJlc2VudCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5iYWNrZW5kLnB1dCgnL3VzZXI/cHJlc2VuY2U9JyArIHByZXNlbnQpXHJcbiAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICB0YXAoXyA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMudXNlci5wcmVzZW50ID0gcHJlc2VudDtcclxuICAgICAgICAgICAgdGhpcy51c2VyU291cmNlLm5leHQodGhpcy51c2VyKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIG9mKG51bGwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgZGVwdXRpZXMgZm9yIHRoZSBjdXJyZW50IHVzZXJcclxuICAgKiBAcGFyYW0gZGVwdXRpZXNOYW1lcyBOYW1lcyBvZiB0aGUgdXNlcnMgdG8gYmUgc2V0IGFzIGRlcHV0aWVzXHJcbiAgICovXHJcbiAgcHVibGljIHNldERlcHV0aWVzKGRlcHV0aWVzTmFtZXM6IHN0cmluZ1tdKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmJhY2tlbmQucHV0KGAvdXNlci9kZXB1dHk/dXNlcj0ke2RlcHV0aWVzTmFtZXMuam9pbignJnVzZXI9Jyl9YCkucGlwZShcclxuICAgICAgdGFwKCgpID0+IHRoaXMucmVmcmVzaEN1cnJlbnRVc2VyKCkuc3Vic2NyaWJlKCkpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hhbmdlIHRoZSB1c2VycyBjbGllbnQgbG9jYWxlXHJcbiAgICogQHBhcmFtIGlzbyBJU08gbG9jYWxlIHN0cmluZyB0byBiZSBzZXQgYXMgbmV3IGNsaWVudCBsb2NhbGVcclxuICAgKi9cclxuICBwdWJsaWMgY2hhbmdlQ2xpZW50TG9jYWxlKGlzbzogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnVzZXIudXNlclNldHRpbmdzWydjbGllbnRsb2NhbGUnXSA9IGlzbztcclxuICAgIHRoaXMuYmFja2VuZFxyXG4gICAgICAucHV0KCcvdXNlci9jb25maWcvd2ViJywgdGhpcy51c2VyLnVzZXJTZXR0aW5ncylcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ0NoYW5nZWQgY2xpZW50IGxvY2FsZSB0byBcXCcnICsgaXNvICsgJ1xcJycpO1xyXG4gICAgICAgIHRoaXMudHJhbnNsYXRlLnVzZShpc28pO1xyXG4gICAgICAgIHRoaXMudXNlci51aURpcmVjdGlvbiA9ICh0aGlzLmNvbmZpZy5nZXRDbGllbnRMb2NhbGVzKCkuZmluZChsID0+IGwuaXNvID09PSBpc28pIHx8IHt9KS5kaXIgfHwgRGlyZWN0aW9uLkxUUjtcclxuICAgICAgICB0aGlzLnVzZXJTb3VyY2UubmV4dCh0aGlzLnVzZXIpO1xyXG4gICAgICAgIHRoaXMuZXZlbnRTZXJ2aWNlLnRyaWdnZXIoRW5haW9FdmVudC5DTElFTlRfTE9DQUxFX0NIQU5HRUQsIGlzbyk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hhbmdlIHRoZSB1c2VycyBzY2hlbWEgbG9jYWxlXHJcbiAgICogQHBhcmFtIGlzbyBJU08gbG9jYWxlIHN0cmluZyB0byBiZSBzZXQgYXMgbmV3IHNjaGVtYSBsb2NhbGVcclxuICAgKi9cclxuICBwdWJsaWMgY2hhbmdlU2NoZW1hTG9jYWxlKGlzbzogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnVzZXIuc2NoZW1hTG9jYWxlID0gaXNvO1xyXG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZFxyXG4gICAgICAucHV0KCcvdXNlci9sb2NhbGUvJyArIHRoaXMudXNlci5zY2hlbWFMb2NhbGUpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHRhcCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnQ2hhbmdlZCBzY2hlbWEgbG9jYWxlIHRvIFxcJycgKyBpc28gKyAnXFwnJyk7XHJcbiAgICAgICAgICB0aGlzLnVzZXJTb3VyY2UubmV4dCh0aGlzLnVzZXIpO1xyXG4gICAgICAgICAgdGhpcy5iYWNrZW5kLnNldEhlYWRlcignQWNjZXB0LUxhbmd1YWdlJywgdGhpcy51c2VyLmdldFNjaGVtYUxvY2FsZSgpKTtcclxuICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdMb2FkaW5nIHN5c3RlbSBkZWZpbml0aW9uIGZvciBuZXcgbG9jYWxlLicpO1xyXG4gICAgICAgICAgdGhpcy5zeXN0ZW0uZ2V0U3lzdGVtRGVmaW5pdGlvbih0aGlzLnVzZXIpLnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgdGhpcy5ldmVudFNlcnZpY2UudHJpZ2dlcihFbmFpb0V2ZW50LlNDSEVNQV9MT0NBTEVfQ0hBTkdFRCwgaXNvKTtcclxuICAgICAgICB9KSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXQgYSBuZXcgY3VycmVudCB1c2VyXHJcbiAgICogQHBhcmFtIHVzZXIgVGhlIHVzZXIgdG8gYmUgc2V0IGFzIGN1cnJlbnQgdXNlclxyXG4gICAqL1xyXG4gIHB1YmxpYyBzZXRDdXJyZW50VXNlcih1c2VyOiBFb1VzZXIpIHtcclxuICAgIHRoaXMudXNlciA9IHVzZXI7XHJcbiAgICB0aGlzLnVzZXIuc2V0SW1hZ2VCYXNlKHRoaXMuYmFja2VuZC5nZXRTZXJ2aWNlQmFzZSgpKTtcclxuICAgIHRoaXMuYmFja2VuZC5zZXRIZWFkZXIoJ0FjY2VwdC1MYW5ndWFnZScsIHRoaXMudXNlci5nZXRTY2hlbWFMb2NhbGUoKSk7XHJcblxyXG4gICAgY29uc3QgbGFuZ3VhZ2VzID0gdGhpcy5jb25maWcuZ2V0Q2xpZW50TG9jYWxlcygpLm1hcChsYW5nID0+IGxhbmcuaXNvKTtcclxuICAgIGNvbnN0IHVzZXJMYW5nID0gdXNlci5nZXRDbGllbnRMb2NhbGUoKTtcclxuICAgIGlmIChsYW5ndWFnZXMuaW5kZXhPZih1c2VyTGFuZykgIT09IC0xKSB7XHJcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdTZXR0aW5nIGNsaWVudCBsb2NhbGUgdG8gXFwnJyArIHVzZXJMYW5nICsgJ1xcJycpO1xyXG4gICAgICB0aGlzLnRyYW5zbGF0ZS51c2UodXNlckxhbmcpO1xyXG4gICAgICB0aGlzLnVzZXIudWlEaXJlY3Rpb24gPSAodGhpcy5jb25maWcuZ2V0Q2xpZW50TG9jYWxlcygpLmZpbmQobCA9PiBsLmlzbyA9PT0gdXNlckxhbmcpIHx8IHt9KS5kaXIgfHwgRGlyZWN0aW9uLkxUUjtcclxuICAgIH1cclxuICAgIHRoaXMudXNlclNvdXJjZS5uZXh0KHRoaXMudXNlcik7XHJcblxyXG4gICAgdGhpcy5mYXZvcml0ZXMgPSBudWxsO1xyXG4gICAgdGhpcy5mYXZvcml0ZXNTb3VyY2UubmV4dCh0aGlzLmZhdm9yaXRlcyk7XHJcblxyXG4gICAgdGhpcy5ub3RpZmljYXRpb25zID0gbnVsbDtcclxuICAgIHRoaXMubm90aWZpY2F0aW9uc1NvdXJjZS5uZXh0KHRoaXMubm90aWZpY2F0aW9ucyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIHRoZSBjdXJyZW50IHVzZXJzIGZhdm9yaXRlc1xyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRGYXZvcml0ZXMoKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHJcbiAgICAvLyBvbmx5IGZhdm9yaXRlIG9iamVjdHMgb2YgdHlwZSAnRE1TX09CSkVDVCcsIGFyZSBhY2NlcHRlZFxyXG4gICAgLy8gcmVhZCBtb3JlOiBodHRwOi8vamlyYS5vcHRpbWFsLXN5c3RlbXMuZGUvYnJvd3NlL0NPT0wtMjMxNlxyXG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZFxyXG4gICAgICAuZ2V0SnNvbignL3VzZXIvZmF2b3JpdGVzJylcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKHJlcyA9PiByZXMgJiYgcmVzLmZpbHRlcihyID0+IHIuZmF2b3JpdGV0eXBlID09PSAnRE1TX09CSkVDVCcpKSxcclxuICAgICAgICB0YXAocmVzID0+IHtcclxuICAgICAgICAgIHRoaXMuZmF2b3JpdGVzID0gcmVzO1xyXG4gICAgICAgICAgdGhpcy5mYXZvcml0ZXNTb3VyY2UubmV4dCh0aGlzLmZhdm9yaXRlcyk7XHJcbiAgICAgICAgfSkpO1xyXG5cclxuICAgIC8vIC5tYXAocmVzID0+IHtcclxuICAgIC8vICAgbGV0IGRtc09iamVjdCA9IHRoaXMucmVzb2x2ZU9iamVjdFR5cGVzKG5ldyBEbXNPYmplY3QocmVzKSk7XHJcbiAgICAvLyAgIHJldHVybiBkbXNPYmplY3Q7XHJcbiAgICAvLyB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNvZnQgdXBkYXRlIGZvciB0aGUgdXNlcnMgZmF2b3JpdGVzXHJcbiAgICogQHBhcmFtIGlkIElEIG9mIHRoZSBmYXZvcml0ZSB0byBiZSB1cGRhdGVkXHJcbiAgICogQHBhcmFtIGl0ZW0gVGhlIG5ldyBmYXZvcml0ZSBpdGVtXHJcbiAgICogQHBhcmFtIG11bHRpIFdoZXRoZXIgb3Igbm90IHRvIHVwZGF0ZSBtdWx0aXBsZSBpdGVtc1xyXG4gICAqL1xyXG4gIHB1YmxpYyB1cGRhdGVGYXZvcml0ZXMoaWQ/OiBzdHJpbmcsIGl0ZW0/OiBhbnksIG11bHRpPzogYW55W10pIHtcclxuICAgIGlmICh0aGlzLmJhY2tlbmQudXBkYXRlKHRoaXMuZmF2b3JpdGVzLCBtdWx0aSB8fCBbe2lkLCBpdGVtfV0pKSB7XHJcbiAgICAgIHRoaXMuZmF2b3JpdGVzU291cmNlLm5leHQodGhpcy5mYXZvcml0ZXMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgdXNlcnMgbm90aWZpY2F0aW9ucyAocmVzdWJtaXNzaW9ucyBhbmQgc3Vic2NyaXB0aW9ucylcclxuICAgKiBAcmV0dXJucyBSZXNvbHZlZCBieSBsaXN0IG9mIHRoZSB1c2VycyBub3RpZmljYXRpb25zXHJcbiAgICovXHJcbiAgcHVibGljIGdldE5vdGlmaWNhdGlvbnMoKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IG5vdGlmaWNhdGlvbkRhdGEgPSBbXHJcbiAgICAgIHRoaXMuZ2V0U3Vic2NyaXB0aW9uKCksXHJcbiAgICAgIHRoaXMuZ2V0UmVzdWJtaXNzaW9uKClcclxuICAgIF07XHJcbiAgICByZXR1cm4gZm9ya0pvaW4obm90aWZpY2F0aW9uRGF0YSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXRzIHRoZSB1c2VycyByZXN1Ym1pc3Npb25zXHJcbiAgICogQHJldHVybnMgQ29sbGVjdGlvbiBvZiB1c2VycyByZXN1Ym1pc3Npb25zXHJcbiAgICovXHJcbiAgcHVibGljIGdldFJlc3VibWlzc2lvbigpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5nZXRKc29uKCcvbWVzc2FnZXByb3ZpZGVyL3Jlc3VibWlzc2lvbi9saXN0JykucGlwZShcclxuICAgICAgdGFwKHJlc3BvbnNlID0+IHtcclxuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnMgPSByZXNwb25zZTtcclxuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnNTb3VyY2UubmV4dCh0aGlzLm5vdGlmaWNhdGlvbnMpO1xyXG4gICAgICB9KSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXRzIHRoZSB1c2VycyBzdWJzY3JpcHRpb25zXHJcbiAgICogQHJldHVybnMgQ29sbGVjdGlvbiBvZiB1c2VycyBzdWJzY3JpcHRpb25zXHJcbiAgICovXHJcbiAgcHVibGljIGdldFN1YnNjcmlwdGlvbigpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZFxyXG4gICAgICAuZ2V0SnNvbignL21lc3NhZ2Vwcm92aWRlci9zdWJzY3JpcHRpb24vbGlzdCcpLnBpcGUoXHJcbiAgICAgICAgdGFwKHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9ucyA9IHJlc3BvbnNlO1xyXG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zU291cmNlLm5leHQodGhpcy5ub3RpZmljYXRpb25zKTtcclxuICAgICAgICB9KSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmVzIGEgbm90aWZpY2F0aW9uXHJcbiAgICogQHBhcmFtIGlkIElEIG9mIHRoZSBub3RpZmljYXRpb24gdG8gYmUgcmVtb3ZlZFxyXG4gICAqIEBwYXJhbSB0eXBlIFRoZSBub3RpZmljYXRpb25zIHR5cGUgKCdTVUJTQ1JJUFRJT04nLCAnUkVTVUJNSVNTSU9OJylcclxuICAgKi9cclxuICBwdWJsaWMgcmVtb3ZlTm90aWZpY2F0aW9ucyhpZDogc3RyaW5nLCB0eXBlOiBzdHJpbmcpIHtcclxuICAgIGxldCBtZXNzYWdldHlwZTogc3RyaW5nO1xyXG4gICAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICAgIGNhc2UgJ1NVQlNDUklQVElPTic6XHJcbiAgICAgICAgbWVzc2FnZXR5cGUgPSAnc3Vic2NyaXB0aW9uJztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnUkVTVUJNSVNTSU9OJzpcclxuICAgICAgICBtZXNzYWdldHlwZSA9ICdyZXN1Ym1pc3Npb24nO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmJhY2tlbmQuZGVsKGAvbWVzc2FnZXByb3ZpZGVyLyR7bWVzc2FnZXR5cGV9L2AgKyBpZCkucGlwZSh0YXAocmVzID0+IHRoaXMudXBkYXRlTm90aWZpY2F0aW9ucygnJykpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNvZnQgdXBkYXRlIGZvciB1c2VycyBub3RpZmljYXRpb25zXHJcbiAgICovXHJcbiAgcHVibGljIHVwZGF0ZU5vdGlmaWNhdGlvbnMoaWQ/OiBzdHJpbmcsIGl0ZW0/OiBhbnksIG11bHRpPzogYW55W10pIHtcclxuICAgIGlmICh0aGlzLmJhY2tlbmQudXBkYXRlKHRoaXMubm90aWZpY2F0aW9ucywgbXVsdGkgfHwgW3tpZCwgaXRlbX1dKSkge1xyXG4gICAgICB0aGlzLm5vdGlmaWNhdGlvbnNTb3VyY2UubmV4dCh0aGlzLm5vdGlmaWNhdGlvbnMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgVVJJIHRvIGEgdXNlcnMgYXZhdGFyIGltYWdlXHJcbiAgICogQHBhcmFtIHVzZXJJZCBUaGUgdXNlcnMgSURcclxuICAgKiBAcmV0dXJucyBVUkkgdG8gdGhlIHVzZXIgaW1hZ2VcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0VXNlckltYWdlVXJpKHVzZXJJZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gYCR7dGhpcy5iYWNrZW5kLmdldFNlcnZpY2VCYXNlKCl9L29yZ2FuaXphdGlvbi9pbWFnZS8ke3VzZXJJZH1gO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlcyBhIGZhdm9yaXRlIGl0ZW1cclxuICAgKiBAcGFyYW0gZmF2b3JpdGVJZCBJRCBvZiB0aGUgZmF2b3JpdGUgaXRlbSB0byBiZSByZW1vdmVkXHJcbiAgICovXHJcbiAgcHVibGljIHJlbW92ZUZhdm9yaXRlKGZhdm9yaXRlSWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5kZWwoJy91c2VyL2Zhdm9yaXRlLycgKyBmYXZvcml0ZUlkKS5waXBlKHRhcChyZXMgPT4gdGhpcy51cGRhdGVGYXZvcml0ZXMoZmF2b3JpdGVJZCkpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZSBhIG5ldyBmYXZvcml0ZSBpdGVtIGZvciB0aGUgY3VycmVudCB1c2VyXHJcbiAgICogQHBhcmFtIGlkIElEIG9mIHRoZSBkbXMgb2JqZWN0IHRvIGJlIHNldCB1cCBhcyBmYXZvcml0ZVxyXG4gICAqIEBwYXJhbSB0eXBlIFRoZSBvYmplY3QgdHlwZSBvZiB0aGUgZG1zIG9iamVjdFxyXG4gICAqIEBwYXJhbSB0aXRsZSBUaGUgZmF2b3JpdGVzIHRpdGxlXHJcbiAgICovXHJcbiAgcHVibGljIGNyZWF0ZUZhdm9yaXRlKGlkOiBzdHJpbmcsIHR5cGU6IHN0cmluZywgdGl0bGU6IHN0cmluZykge1xyXG4gICAgY29uc3QgdXJpID0gVXRpbHMuYnVpbGRVcmkoJy9kbXMvZmF2b3JpdGUvJyArIGlkLCB7dHlwZSwgdGl0bGV9KTtcclxuICAgIHJldHVybiB0aGlzLmJhY2tlbmQucG9zdCh1cmksIHt9KS5waXBlKHRhcChyZXMgPT4gdGhpcy5nZXRGYXZvcml0ZXMoKS5zdWJzY3JpYmUoKSkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIHB1YmxpYyByZW1vdmVGYXZvcml0ZXNGb3JUYXJnZXQoaWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5kZWwoJy9kbXMvZmF2b3JpdGUvJyArIGlkKS5waXBlKHRhcChcclxuICAgICAgcmVzID0+IHtcclxuICAgICAgICBjb25zdCB0b1JlbW92ZSA9IHRoaXMuZmF2b3JpdGVzLmZpbHRlcihpID0+IGkudGFyZ2V0LmlkID09PSBpZCkubWFwKGkgPT4gT2JqZWN0LmFzc2lnbih7XHJcbiAgICAgICAgICBpZDogaS5pZFxyXG4gICAgICAgIH0pKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUZhdm9yaXRlcyhudWxsLCBudWxsLCB0b1JlbW92ZSk7XHJcbiAgICAgIH0pKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoYW5nZXMgdGhlIHVzZXJzIHByZWZlcnJlZCBsb2NrIG1vZGUgYW5kIHBlcnNpc3RzIGl0IG9uIHRoZSBzZXJ2ZXJcclxuICAgKiBAcGFyYW0gbG9jayBUaGUgdmFsdWUgdG8gc2V0IHRoZSBsb2NrIHNldHRpbmdzIHRvXHJcbiAgICovXHJcbiAgcHVibGljIGNoYW5nZUxvY2tTZXR0aW5nKGxvY2s6IHN0cmluZykge1xyXG4gICAgdGhpcy51c2VyLnVzZXJTZXR0aW5ncy5hbHdheXNsb2NrID0gbG9jaztcclxuICAgIHJldHVybiB0aGlzLmJhY2tlbmQucHV0KCcvdXNlci9jb25maWcvd2ViJywgdGhpcy51c2VyLnVzZXJTZXR0aW5ncykucGlwZShtYXAoKCkgPT4ge1xyXG4gICAgICB0aGlzLnJlZnJlc2hDdXJyZW50VXNlcigpLnN1YnNjcmliZSgpO1xyXG4gICAgfSkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhc1ByaXZpbGVnZShwcml2aWxlZ2U6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICEhdGhpcy51c2VyLnByaXZpbGVnZXMuZmluZChwcml2ID0+IHByaXYubmFtZSA9PT0gcHJpdmlsZWdlKTtcclxuICB9XHJcblxyXG5cclxuICAvKipcclxuICAgKiBDaGFuZ2VzIHRoZSB1c2VycyBwYXNzd29yZCBhbmQgcGVyc2lzdHMgaXQgb24gdGhlIHNlcnZlclxyXG4gICAqL1xyXG4gIGNoYW5nZVBhc3N3b3JkKHBheWxvYWQ6IENoYW5nZVBhc3N3b3JkSW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmJhY2tlbmQucHV0KGAvdXNlci9wYXNzd29yZGAsIHBheWxvYWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyB0aGUgc2V0dGluZ3MgZm9yIHRoZSBjdXJyZW50IHVzZXIgYW5kIHN0b3JlcyB0aGUgbmV3IFVzZXIgb2JqZWN0IG9uIHRoZSBzZXNzaW9uXHJcbiAgICovXHJcbiAgcHJpdmF0ZSByZWZyZXNoQ3VycmVudFVzZXIoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLmdldCh0aGlzLlVTRVJfRkVUQ0hfVVJJKS5waXBlKG1hcChyZXMgPT4gdGhpcy5zZXRDdXJyZW50VXNlcihuZXcgRW9Vc2VyKHJlcykpKSk7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
|
|
302
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW8tc2RrL2NvcmUvc3JjL2xpYi9zZXJ2aWNlL3VzZXIvdXNlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFhLGVBQWUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQy9ELE9BQU8sRUFBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUVyRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDeEMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUN2QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUVoRDs7Ozs7Ozs7OztHQVVHO0FBRUgsTUFBTSxPQUFPLFdBQVc7SUEyQnRCOztPQUVHO0lBQ0gsWUFBb0IsT0FBdUIsRUFDdkIsU0FBMkIsRUFDM0IsTUFBYyxFQUNkLFlBQTBCLEVBQzFCLE1BQXFC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QyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDaEYsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDeEMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFFTSxZQUFZLENBQUMsU0FBaUI7UUFDbkMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBR0Q7O09BRUc7SUFDSCxjQUFjLENBQUMsT0FBZ0M7UUFDN0MsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxrQkFBa0I7UUFDeEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEcsQ0FBQzs7O1lBblRGLFVBQVU7OztZQXJCSCxjQUFjO1lBRmQsZ0JBQWdCO1lBS2hCLE1BQU07WUFJTixZQUFZO1lBSFosYUFBYTtZQUZiLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge09ic2VydmFibGUsIEJlaGF2aW9yU3ViamVjdCwgZm9ya0pvaW4sIG9mfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHttYXAsIHRhcCwgZGVib3VuY2VUaW1lLCBmaWx0ZXJ9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHtDaGFuZ2VQYXNzd29yZEludGVyZmFjZX0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlL2NoYW5nZS1wYXNzd29yZC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge0JhY2tlbmRTZXJ2aWNlfSBmcm9tICcuLi9iYWNrZW5kL2JhY2tlbmQuc2VydmljZSc7XHJcbmltcG9ydCB7RW9Vc2VyfSBmcm9tICcuLi8uLi9tb2RlbC9lby11c2VyLm1vZGVsJztcclxuaW1wb3J0IHtDb25maWd9IGZyb20gJy4uL2NvbmZpZy9jb25maWcuc2VydmljZSc7XHJcbmltcG9ydCB7TG9nZ2VyfSBmcm9tICcuLi9sb2dnZXIvbG9nZ2VyJztcclxuaW1wb3J0IHtTeXN0ZW1TZXJ2aWNlfSBmcm9tICcuLi9zeXN0ZW0vc3lzdGVtLnNlcnZpY2UnO1xyXG5pbXBvcnQge1V0aWxzfSBmcm9tICcuLi8uLi91dGlsL3V0aWxzJztcclxuaW1wb3J0IHtFbmFpb0V2ZW50fSBmcm9tICcuLi9ldmVudHMvZXZlbnRzJztcclxuaW1wb3J0IHtFdmVudFNlcnZpY2V9IGZyb20gJy4uL2V2ZW50cy9ldmVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHtEaXJlY3Rpb259IGZyb20gJy4uL2NvbmZpZy9jb25maWcuZW51bSc7XHJcblxyXG4vKipcclxuICogQXBwbGljYXRpb25zIHVzZXIgc2VydmljZS5cclxuICogVG8gZ2V0IHRoZSBjdXJyZW50IHVzZXIgeW91IGhhdmUgdG8gc3Vic2NyaWJlIHRvIHRoZSBzZXJ2aWNlcyBgdXNlciRgIG9ic2VydmFibGUuXHJcbiAqXHJcbiAqIGBgYGphdmFzY3JpcHRcclxuICogdXNlclNlcnZpY2UudXNlciQuc3Vic2NyaWJlKCh1c2VyKSA9PiB0aGlzLnVzZXIgPSB1c2VyKTtcclxuICogYGBgXHJcbiAqXHJcbiAqIFRoaXMgd2F5IHlvdXIgY29tcG9uZW50IHdpbGwgYmUgcHJvdmlkZWQgd2l0aCBhbiB1cC10by1kYXRlIHVzZXIgb2JqZWN0IG5vIG1hdHRlclxyXG4gKiB3aGljaCBjb21wb25lbnQgY2hhbmdlcyBvbiBvZiB0aGUgdXNlcnMgcHJvcGVydGllcy5cclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFVzZXJTZXJ2aWNlIHtcclxuXHJcbiAgVVNFUl9GRVRDSF9VUkkgPSAnL3VzZXI/ZmF2b3JpdGVzPXRydWUmcHJpdmlsZWdlcz10cnVlJnJvbGVzPXRydWUmZGVwdXRpZXM9dHJ1ZSZzdWJzdGl0dXRlc09mPXRydWUnO1xyXG5cclxuICBwcml2YXRlIHVzZXI6IEVvVXNlciA9IG51bGw7XHJcbiAgcHJpdmF0ZSB1c2VyU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxFb1VzZXI+KHRoaXMudXNlcik7XHJcbiAgLyoqXHJcbiAgICogT2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgY3VycmVudCB1c2VyXHJcbiAgICovXHJcbiAgcHVibGljIHVzZXIkOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLnVzZXJTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIHByaXZhdGUgZmF2b3JpdGVzID0gbnVsbDtcclxuICBwcml2YXRlIGZhdm9yaXRlc1NvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55Pih0aGlzLmZhdm9yaXRlcyk7XHJcbiAgLyoqXHJcbiAgICogT2JzZXJ2YWJsZSBlbWl0dGluZyBjdXJyZW50IHVzZXJzIGZhdm9yaXRlc1xyXG4gICAqL1xyXG4gIHB1YmxpYyBmYXZvcml0ZXNHcmlkRGF0YSQ6IE9ic2VydmFibGU8YW55PiA9IHRoaXMuZmF2b3JpdGVzU291cmNlLmFzT2JzZXJ2YWJsZSgpLnBpcGUoZGVib3VuY2VUaW1lKDEwMCksIGZpbHRlcih2ID0+IHYpKTtcclxuICBwdWJsaWMgZmF2b3JpdGVzJDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5mYXZvcml0ZXNHcmlkRGF0YSQucGlwZSh0aGlzLmJhY2tlbmQuZ3JpZERhdGFGaWx0ZXIpO1xyXG5cclxuICBwcml2YXRlIG5vdGlmaWNhdGlvbnMgPSBudWxsO1xyXG4gIHByaXZhdGUgbm90aWZpY2F0aW9uc1NvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55Pih0aGlzLm5vdGlmaWNhdGlvbnMpO1xyXG4gIC8qKlxyXG4gICAqIE9ic2VydmFibGUgZW1pdHRpbmcgY3VycmVudCB1c2VycyBub3RpZmljYXRpb25zXHJcbiAgICovXHJcbiAgcHVibGljIG5vdGlmaWNhdGlvbnNHcmlkRGF0YSQ6IE9ic2VydmFibGU8YW55PiA9IHRoaXMubm90aWZpY2F0aW9uc1NvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKGRlYm91bmNlVGltZSgxMDApLCBmaWx0ZXIodiA9PiB2KSk7XHJcbiAgcHVibGljIG5vdGlmaWNhdGlvbnMkOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLm5vdGlmaWNhdGlvbnNHcmlkRGF0YSQucGlwZSh0aGlzLmJhY2tlbmQuZ3JpZERhdGFGaWx0ZXIpO1xyXG5cclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBiYWNrZW5kOiBCYWNrZW5kU2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIGxvZ2dlcjogTG9nZ2VyLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgZXZlbnRTZXJ2aWNlOiBFdmVudFNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBzeXN0ZW06IFN5c3RlbVNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBjb25maWc6IENvbmZpZykge1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgY3VycmVudCB1c2VyLlxyXG4gICAqIEByZXR1cm5zIFRoZSBjdXJyZW50IHVzZXIgb3IgTlVMTCBpZiBubyB1c2VyIGlzIGxvZ2dlZCBpblxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRDdXJyZW50VXNlcigpOiBFb1VzZXIge1xyXG4gICAgcmV0dXJuIHRoaXMudXNlcjtcclxuICB9XHJcblxyXG5cclxuICAvKipcclxuICAgKiBTZXQgcHJlc2VuY2Ugb2YgdGhlIGN1cnJlbnQgdXNlclxyXG4gICAqIEBwYXJhbSBwcmVzZW50IFZhbHVlIHRvIHNldCB0aGUgdXNlcnMgcHJlc2VuY2UgdG9cclxuICAgKi9cclxuICBwdWJsaWMgc2V0UHJlc2VuY2UocHJlc2VudDogYm9vbGVhbik6IE9ic2VydmFibGU8YW55PiB7XHJcblxyXG4gICAgaWYgKHByZXNlbnQgIT09IHRoaXMudXNlci5wcmVzZW50KSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmJhY2tlbmQucHV0KCcvdXNlcj9wcmVzZW5jZT0nICsgcHJlc2VudClcclxuICAgICAgICAucGlwZShcclxuICAgICAgICAgIHRhcChfID0+IHtcclxuICAgICAgICAgICAgdGhpcy51c2VyLnByZXNlbnQgPSBwcmVzZW50O1xyXG4gICAgICAgICAgICB0aGlzLnVzZXJTb3VyY2UubmV4dCh0aGlzLnVzZXIpO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICApXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gb2YobnVsbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSBkZXB1dGllcyBmb3IgdGhlIGN1cnJlbnQgdXNlclxyXG4gICAqIEBwYXJhbSBkZXB1dGllc05hbWVzIE5hbWVzIG9mIHRoZSB1c2VycyB0byBiZSBzZXQgYXMgZGVwdXRpZXNcclxuICAgKi9cclxuICBwdWJsaWMgc2V0RGVwdXRpZXMoZGVwdXRpZXNOYW1lczogc3RyaW5nW10pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5wdXQoYC91c2VyL2RlcHV0eT91c2VyPSR7ZGVwdXRpZXNOYW1lcy5qb2luKCcmdXNlcj0nKX1gKS5waXBlKFxyXG4gICAgICB0YXAoKCkgPT4gdGhpcy5yZWZyZXNoQ3VycmVudFVzZXIoKS5zdWJzY3JpYmUoKSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGFuZ2UgdGhlIHVzZXJzIGNsaWVudCBsb2NhbGVcclxuICAgKiBAcGFyYW0gaXNvIElTTyBsb2NhbGUgc3RyaW5nIHRvIGJlIHNldCBhcyBuZXcgY2xpZW50IGxvY2FsZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBjaGFuZ2VDbGllbnRMb2NhbGUoaXNvOiBzdHJpbmcpIHtcclxuICAgIHRoaXMudXNlci51c2VyU2V0dGluZ3NbJ2NsaWVudGxvY2FsZSddID0gaXNvO1xyXG4gICAgdGhpcy5iYWNrZW5kXHJcbiAgICAgIC5wdXQoJy91c2VyL2NvbmZpZy93ZWInLCB0aGlzLnVzZXIudXNlclNldHRpbmdzKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnQ2hhbmdlZCBjbGllbnQgbG9jYWxlIHRvIFxcJycgKyBpc28gKyAnXFwnJyk7XHJcbiAgICAgICAgdGhpcy50cmFuc2xhdGUudXNlKGlzbyk7XHJcbiAgICAgICAgdGhpcy51c2VyLnVpRGlyZWN0aW9uID0gKHRoaXMuY29uZmlnLmdldENsaWVudExvY2FsZXMoKS5maW5kKGwgPT4gbC5pc28gPT09IGlzbykgfHwge30pLmRpciB8fCBEaXJlY3Rpb24uTFRSO1xyXG4gICAgICAgIHRoaXMudXNlclNvdXJjZS5uZXh0KHRoaXMudXNlcik7XHJcbiAgICAgICAgdGhpcy5ldmVudFNlcnZpY2UudHJpZ2dlcihFbmFpb0V2ZW50LkNMSUVOVF9MT0NBTEVfQ0hBTkdFRCwgaXNvKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGFuZ2UgdGhlIHVzZXJzIHNjaGVtYSBsb2NhbGVcclxuICAgKiBAcGFyYW0gaXNvIElTTyBsb2NhbGUgc3RyaW5nIHRvIGJlIHNldCBhcyBuZXcgc2NoZW1hIGxvY2FsZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBjaGFuZ2VTY2hlbWFMb2NhbGUoaXNvOiBzdHJpbmcpIHtcclxuICAgIHRoaXMudXNlci5zY2hlbWFMb2NhbGUgPSBpc287XHJcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXHJcbiAgICAgIC5wdXQoJy91c2VyL2xvY2FsZS8nICsgdGhpcy51c2VyLnNjaGVtYUxvY2FsZSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFwKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdDaGFuZ2VkIHNjaGVtYSBsb2NhbGUgdG8gXFwnJyArIGlzbyArICdcXCcnKTtcclxuICAgICAgICAgIHRoaXMudXNlclNvdXJjZS5uZXh0KHRoaXMudXNlcik7XHJcbiAgICAgICAgICB0aGlzLmJhY2tlbmQuc2V0SGVhZGVyKCdBY2NlcHQtTGFuZ3VhZ2UnLCB0aGlzLnVzZXIuZ2V0U2NoZW1hTG9jYWxlKCkpO1xyXG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ0xvYWRpbmcgc3lzdGVtIGRlZmluaXRpb24gZm9yIG5ldyBsb2NhbGUuJyk7XHJcbiAgICAgICAgICB0aGlzLnN5c3RlbS5nZXRTeXN0ZW1EZWZpbml0aW9uKHRoaXMudXNlcikuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgICB0aGlzLmV2ZW50U2VydmljZS50cmlnZ2VyKEVuYWlvRXZlbnQuU0NIRU1BX0xPQ0FMRV9DSEFOR0VELCBpc28pO1xyXG4gICAgICAgIH0pKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldCBhIG5ldyBjdXJyZW50IHVzZXJcclxuICAgKiBAcGFyYW0gdXNlciBUaGUgdXNlciB0byBiZSBzZXQgYXMgY3VycmVudCB1c2VyXHJcbiAgICovXHJcbiAgcHVibGljIHNldEN1cnJlbnRVc2VyKHVzZXI6IEVvVXNlcikge1xyXG4gICAgdGhpcy51c2VyID0gdXNlcjtcclxuICAgIHRoaXMudXNlci5zZXRJbWFnZUJhc2UodGhpcy5iYWNrZW5kLmdldFNlcnZpY2VCYXNlKCkpO1xyXG4gICAgdGhpcy5iYWNrZW5kLnNldEhlYWRlcignQWNjZXB0LUxhbmd1YWdlJywgdGhpcy51c2VyLmdldFNjaGVtYUxvY2FsZSgpKTtcclxuXHJcbiAgICBjb25zdCBsYW5ndWFnZXMgPSB0aGlzLmNvbmZpZy5nZXRDbGllbnRMb2NhbGVzKCkubWFwKGxhbmcgPT4gbGFuZy5pc28pO1xyXG4gICAgY29uc3QgdXNlckxhbmcgPSB1c2VyLmdldENsaWVudExvY2FsZSgpO1xyXG4gICAgaWYgKGxhbmd1YWdlcy5pbmRleE9mKHVzZXJMYW5nKSAhPT0gLTEpIHtcclxuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ1NldHRpbmcgY2xpZW50IGxvY2FsZSB0byBcXCcnICsgdXNlckxhbmcgKyAnXFwnJyk7XHJcbiAgICAgIHRoaXMudHJhbnNsYXRlLnVzZSh1c2VyTGFuZyk7XHJcbiAgICAgIHRoaXMudXNlci51aURpcmVjdGlvbiA9ICh0aGlzLmNvbmZpZy5nZXRDbGllbnRMb2NhbGVzKCkuZmluZChsID0+IGwuaXNvID09PSB1c2VyTGFuZykgfHwge30pLmRpciB8fCBEaXJlY3Rpb24uTFRSO1xyXG4gICAgfVxyXG4gICAgdGhpcy51c2VyU291cmNlLm5leHQodGhpcy51c2VyKTtcclxuXHJcbiAgICB0aGlzLmZhdm9yaXRlcyA9IG51bGw7XHJcbiAgICB0aGlzLmZhdm9yaXRlc1NvdXJjZS5uZXh0KHRoaXMuZmF2b3JpdGVzKTtcclxuXHJcbiAgICB0aGlzLm5vdGlmaWNhdGlvbnMgPSBudWxsO1xyXG4gICAgdGhpcy5ub3RpZmljYXRpb25zU291cmNlLm5leHQodGhpcy5ub3RpZmljYXRpb25zKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgdGhlIGN1cnJlbnQgdXNlcnMgZmF2b3JpdGVzXHJcbiAgICovXHJcbiAgcHVibGljIGdldEZhdm9yaXRlcygpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cclxuICAgIC8vIG9ubHkgZmF2b3JpdGUgb2JqZWN0cyBvZiB0eXBlICdETVNfT0JKRUNUJywgYXJlIGFjY2VwdGVkXHJcbiAgICAvLyByZWFkIG1vcmU6IGh0dHA6Ly9qaXJhLm9wdGltYWwtc3lzdGVtcy5kZS9icm93c2UvQ09PTC0yMzE2XHJcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXHJcbiAgICAgIC5nZXRKc29uKCcvdXNlci9mYXZvcml0ZXMnKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAocmVzID0+IHJlcyAmJiByZXMuZmlsdGVyKHIgPT4gci5mYXZvcml0ZXR5cGUgPT09ICdETVNfT0JKRUNUJykpLFxyXG4gICAgICAgIHRhcChyZXMgPT4ge1xyXG4gICAgICAgICAgdGhpcy5mYXZvcml0ZXMgPSByZXM7XHJcbiAgICAgICAgICB0aGlzLmZhdm9yaXRlc1NvdXJjZS5uZXh0KHRoaXMuZmF2b3JpdGVzKTtcclxuICAgICAgICB9KSk7XHJcblxyXG4gICAgLy8gLm1hcChyZXMgPT4ge1xyXG4gICAgLy8gICBsZXQgZG1zT2JqZWN0ID0gdGhpcy5yZXNvbHZlT2JqZWN0VHlwZXMobmV3IERtc09iamVjdChyZXMpKTtcclxuICAgIC8vICAgcmV0dXJuIGRtc09iamVjdDtcclxuICAgIC8vIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU29mdCB1cGRhdGUgZm9yIHRoZSB1c2VycyBmYXZvcml0ZXNcclxuICAgKiBAcGFyYW0gaWQgSUQgb2YgdGhlIGZhdm9yaXRlIHRvIGJlIHVwZGF0ZWRcclxuICAgKiBAcGFyYW0gaXRlbSBUaGUgbmV3IGZhdm9yaXRlIGl0ZW1cclxuICAgKiBAcGFyYW0gbXVsdGkgV2hldGhlciBvciBub3QgdG8gdXBkYXRlIG11bHRpcGxlIGl0ZW1zXHJcbiAgICovXHJcbiAgcHVibGljIHVwZGF0ZUZhdm9yaXRlcyhpZD86IHN0cmluZywgaXRlbT86IGFueSwgbXVsdGk/OiBhbnlbXSkge1xyXG4gICAgaWYgKHRoaXMuYmFja2VuZC51cGRhdGUodGhpcy5mYXZvcml0ZXMsIG11bHRpIHx8IFt7aWQsIGl0ZW19XSkpIHtcclxuICAgICAgdGhpcy5mYXZvcml0ZXNTb3VyY2UubmV4dCh0aGlzLmZhdm9yaXRlcyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXRzIHRoZSB1c2VycyBub3RpZmljYXRpb25zIChyZXN1Ym1pc3Npb25zIGFuZCBzdWJzY3JpcHRpb25zKVxyXG4gICAqIEByZXR1cm5zIFJlc29sdmVkIGJ5IGxpc3Qgb2YgdGhlIHVzZXJzIG5vdGlmaWNhdGlvbnNcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0Tm90aWZpY2F0aW9ucygpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3Qgbm90aWZpY2F0aW9uRGF0YSA9IFtcclxuICAgICAgdGhpcy5nZXRTdWJzY3JpcHRpb24oKSxcclxuICAgICAgdGhpcy5nZXRSZXN1Ym1pc3Npb24oKVxyXG4gICAgXTtcclxuICAgIHJldHVybiBmb3JrSm9pbihub3RpZmljYXRpb25EYXRhKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIHVzZXJzIHJlc3VibWlzc2lvbnNcclxuICAgKiBAcmV0dXJucyBDb2xsZWN0aW9uIG9mIHVzZXJzIHJlc3VibWlzc2lvbnNcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0UmVzdWJtaXNzaW9uKCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLmdldEpzb24oJy9tZXNzYWdlcHJvdmlkZXIvcmVzdWJtaXNzaW9uL2xpc3QnKS5waXBlKFxyXG4gICAgICB0YXAocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9ucyA9IHJlc3BvbnNlO1xyXG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9uc1NvdXJjZS5uZXh0KHRoaXMubm90aWZpY2F0aW9ucyk7XHJcbiAgICAgIH0pKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIHVzZXJzIHN1YnNjcmlwdGlvbnNcclxuICAgKiBAcmV0dXJucyBDb2xsZWN0aW9uIG9mIHVzZXJzIHN1YnNjcmlwdGlvbnNcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0U3Vic2NyaXB0aW9uKCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXHJcbiAgICAgIC5nZXRKc29uKCcvbWVzc2FnZXByb3ZpZGVyL3N1YnNjcmlwdGlvbi9saXN0JykucGlwZShcclxuICAgICAgICB0YXAocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zID0gcmVzcG9uc2U7XHJcbiAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnNTb3VyY2UubmV4dCh0aGlzLm5vdGlmaWNhdGlvbnMpO1xyXG4gICAgICAgIH0pKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZXMgYSBub3RpZmljYXRpb25cclxuICAgKiBAcGFyYW0gaWQgSUQgb2YgdGhlIG5vdGlmaWNhdGlvbiB0byBiZSByZW1vdmVkXHJcbiAgICogQHBhcmFtIHR5cGUgVGhlIG5vdGlmaWNhdGlvbnMgdHlwZSAoJ1NVQlNDUklQVElPTicsICdSRVNVQk1JU1NJT04nKVxyXG4gICAqL1xyXG4gIHB1YmxpYyByZW1vdmVOb3RpZmljYXRpb25zKGlkOiBzdHJpbmcsIHR5cGU6IHN0cmluZykge1xyXG4gICAgbGV0IG1lc3NhZ2V0eXBlOiBzdHJpbmc7XHJcbiAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgY2FzZSAnU1VCU0NSSVBUSU9OJzpcclxuICAgICAgICBtZXNzYWdldHlwZSA9ICdzdWJzY3JpcHRpb24nO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdSRVNVQk1JU1NJT04nOlxyXG4gICAgICAgIG1lc3NhZ2V0eXBlID0gJ3Jlc3VibWlzc2lvbic7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5kZWwoYC9tZXNzYWdlcHJvdmlkZXIvJHttZXNzYWdldHlwZX0vYCArIGlkKS5waXBlKHRhcChyZXMgPT4gdGhpcy51cGRhdGVOb3RpZmljYXRpb25zKCcnKSkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU29mdCB1cGRhdGUgZm9yIHVzZXJzIG5vdGlmaWNhdGlvbnNcclxuICAgKi9cclxuICBwdWJsaWMgdXBkYXRlTm90aWZpY2F0aW9ucyhpZD86IHN0cmluZywgaXRlbT86IGFueSwgbXVsdGk/OiBhbnlbXSkge1xyXG4gICAgaWYgKHRoaXMuYmFja2VuZC51cGRhdGUodGhpcy5ub3RpZmljYXRpb25zLCBtdWx0aSB8fCBbe2lkLCBpdGVtfV0pKSB7XHJcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uc1NvdXJjZS5uZXh0KHRoaXMubm90aWZpY2F0aW9ucyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXRzIHRoZSBVUkkgdG8gYSB1c2VycyBhdmF0YXIgaW1hZ2VcclxuICAgKiBAcGFyYW0gdXNlcklkIFRoZSB1c2VycyBJRFxyXG4gICAqIEByZXR1cm5zIFVSSSB0byB0aGUgdXNlciBpbWFnZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRVc2VySW1hZ2VVcmkodXNlcklkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiBgJHt0aGlzLmJhY2tlbmQuZ2V0U2VydmljZUJhc2UoKX0vb3JnYW5pemF0aW9uL2ltYWdlLyR7dXNlcklkfWA7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmVzIGEgZmF2b3JpdGUgaXRlbVxyXG4gICAqIEBwYXJhbSBmYXZvcml0ZUlkIElEIG9mIHRoZSBmYXZvcml0ZSBpdGVtIHRvIGJlIHJlbW92ZWRcclxuICAgKi9cclxuICBwdWJsaWMgcmVtb3ZlRmF2b3JpdGUoZmF2b3JpdGVJZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLmRlbCgnL3VzZXIvZmF2b3JpdGUvJyArIGZhdm9yaXRlSWQpLnBpcGUodGFwKHJlcyA9PiB0aGlzLnVwZGF0ZUZhdm9yaXRlcyhmYXZvcml0ZUlkKSkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlIGEgbmV3IGZhdm9yaXRlIGl0ZW0gZm9yIHRoZSBjdXJyZW50IHVzZXJcclxuICAgKiBAcGFyYW0gaWQgSUQgb2YgdGhlIGRtcyBvYmplY3QgdG8gYmUgc2V0IHVwIGFzIGZhdm9yaXRlXHJcbiAgICogQHBhcmFtIHR5cGUgVGhlIG9iamVjdCB0eXBlIG9mIHRoZSBkbXMgb2JqZWN0XHJcbiAgICogQHBhcmFtIHRpdGxlIFRoZSBmYXZvcml0ZXMgdGl0bGVcclxuICAgKi9cclxuICBwdWJsaWMgY3JlYXRlRmF2b3JpdGUoaWQ6IHN0cmluZywgdHlwZTogc3RyaW5nLCB0aXRsZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCB1cmkgPSBVdGlscy5idWlsZFVyaSgnL2Rtcy9mYXZvcml0ZS8nICsgaWQsIHt0eXBlLCB0aXRsZX0pO1xyXG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5wb3N0KHVyaSwge30pLnBpcGUodGFwKHJlcyA9PiB0aGlzLmdldEZhdm9yaXRlcygpLnN1YnNjcmliZSgpKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgcHVibGljIHJlbW92ZUZhdm9yaXRlc0ZvclRhcmdldChpZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLmRlbCgnL2Rtcy9mYXZvcml0ZS8nICsgaWQpLnBpcGUodGFwKFxyXG4gICAgICByZXMgPT4ge1xyXG4gICAgICAgIGNvbnN0IHRvUmVtb3ZlID0gdGhpcy5mYXZvcml0ZXMuZmlsdGVyKGkgPT4gaS50YXJnZXQuaWQgPT09IGlkKS5tYXAoaSA9PiBPYmplY3QuYXNzaWduKHtcclxuICAgICAgICAgIGlkOiBpLmlkXHJcbiAgICAgICAgfSkpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlRmF2b3JpdGVzKG51bGwsIG51bGwsIHRvUmVtb3ZlKTtcclxuICAgICAgfSkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hhbmdlcyB0aGUgdXNlcnMgcHJlZmVycmVkIGxvY2sgbW9kZSBhbmQgcGVyc2lzdHMgaXQgb24gdGhlIHNlcnZlclxyXG4gICAqIEBwYXJhbSBsb2NrIFRoZSB2YWx1ZSB0byBzZXQgdGhlIGxvY2sgc2V0dGluZ3MgdG9cclxuICAgKi9cclxuICBwdWJsaWMgY2hhbmdlTG9ja1NldHRpbmcobG9jazogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnVzZXIudXNlclNldHRpbmdzLmFsd2F5c2xvY2sgPSBsb2NrO1xyXG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5wdXQoJy91c2VyL2NvbmZpZy93ZWInLCB0aGlzLnVzZXIudXNlclNldHRpbmdzKS5waXBlKG1hcCgoKSA9PiB7XHJcbiAgICAgIHRoaXMucmVmcmVzaEN1cnJlbnRVc2VyKCkuc3Vic2NyaWJlKCk7XHJcbiAgICB9KSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFzUHJpdmlsZWdlKHByaXZpbGVnZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gISF0aGlzLnVzZXIucHJpdmlsZWdlcy5maW5kKHByaXYgPT4gcHJpdi5uYW1lID09PSBwcml2aWxlZ2UpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIENoYW5nZXMgdGhlIHVzZXJzIHBhc3N3b3JkIGFuZCBwZXJzaXN0cyBpdCBvbiB0aGUgc2VydmVyXHJcbiAgICovXHJcbiAgY2hhbmdlUGFzc3dvcmQocGF5bG9hZDogQ2hhbmdlUGFzc3dvcmRJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5wdXQoYC91c2VyL3Bhc3N3b3JkYCwgcGF5bG9hZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIHRoZSBzZXR0aW5ncyBmb3IgdGhlIGN1cnJlbnQgdXNlciBhbmQgc3RvcmVzIHRoZSBuZXcgVXNlciBvYmplY3Qgb24gdGhlIHNlc3Npb25cclxuICAgKi9cclxuICBwcml2YXRlIHJlZnJlc2hDdXJyZW50VXNlcigpIHtcclxuICAgIHJldHVybiB0aGlzLmJhY2tlbmQuZ2V0KHRoaXMuVVNFUl9GRVRDSF9VUkkpLnBpcGUobWFwKHJlcyA9PiB0aGlzLnNldEN1cnJlbnRVc2VyKG5ldyBFb1VzZXIocmVzKSkpKTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
@@ -855,6 +855,7 @@ class BackendService {
|
|
|
855
855
|
this.http = http;
|
|
856
856
|
this.logger = logger;
|
|
857
857
|
this.config = config;
|
|
858
|
+
this.gridDataFilter = filter((v) => !v.__removed);
|
|
858
859
|
this.cache = new Map();
|
|
859
860
|
this.temp = new Map();
|
|
860
861
|
this.headers = this.setDefaultHeaders();
|
|
@@ -1120,7 +1121,8 @@ class BackendService {
|
|
|
1120
1121
|
}
|
|
1121
1122
|
getFileNameFromHttpResponse(res, version) {
|
|
1122
1123
|
const contentDispositionHeader = res.headers.get('Content-Disposition') || '';
|
|
1123
|
-
const encodedFileNameMatchResult = contentDispositionHeader.match('filename\\*=UTF-8\'\'(.*)')
|
|
1124
|
+
const encodedFileNameMatchResult = contentDispositionHeader.match('filename\\*=UTF-8\'\'(.*)')
|
|
1125
|
+
|| contentDispositionHeader.match('filename=\"(.*)\"');
|
|
1124
1126
|
const encodedFileName = encodedFileNameMatchResult ? encodedFileNameMatchResult[1] : null;
|
|
1125
1127
|
const filename = encodedFileName ? decodeURIComponent(encodedFileName) : 'unknown';
|
|
1126
1128
|
const index = !~filename.lastIndexOf('.') ? filename.length : filename.lastIndexOf('.');
|
|
@@ -1565,13 +1567,15 @@ class UserService {
|
|
|
1565
1567
|
/**
|
|
1566
1568
|
* Observable emitting current users favorites
|
|
1567
1569
|
*/
|
|
1568
|
-
this.
|
|
1570
|
+
this.favoritesGridData$ = this.favoritesSource.asObservable().pipe(debounceTime(100), filter(v => v));
|
|
1571
|
+
this.favorites$ = this.favoritesGridData$.pipe(this.backend.gridDataFilter);
|
|
1569
1572
|
this.notifications = null;
|
|
1570
1573
|
this.notificationsSource = new BehaviorSubject(this.notifications);
|
|
1571
1574
|
/**
|
|
1572
1575
|
* Observable emitting current users notifications
|
|
1573
1576
|
*/
|
|
1574
|
-
this.
|
|
1577
|
+
this.notificationsGridData$ = this.notificationsSource.asObservable().pipe(debounceTime(100), filter(v => v));
|
|
1578
|
+
this.notifications$ = this.notificationsGridData$.pipe(this.backend.gridDataFilter);
|
|
1575
1579
|
}
|
|
1576
1580
|
/**
|
|
1577
1581
|
* Gets the current user.
|
|
@@ -2203,6 +2207,21 @@ class PrepareService {
|
|
|
2203
2207
|
}
|
|
2204
2208
|
return uri;
|
|
2205
2209
|
}
|
|
2210
|
+
/**
|
|
2211
|
+
* Deletes a prepared creation object content element by index or the complete content.
|
|
2212
|
+
* If you provide an index the content consists only of one element,
|
|
2213
|
+
* the content is completely removed from the prepared creation object.
|
|
2214
|
+
*
|
|
2215
|
+
* @param preparedItemId ID of the item with the content to be removed
|
|
2216
|
+
* @param index Parameter that determines which content element should be deleted.
|
|
2217
|
+
* @returns Observable<PreparedItem> The updated prepared item
|
|
2218
|
+
*/
|
|
2219
|
+
deletePreparedItemContent(preparedItemId, index) {
|
|
2220
|
+
const url = `/prepare/${preparedItemId}/content` + (index !== undefined ? `?index=${index}` : '');
|
|
2221
|
+
return this.backend
|
|
2222
|
+
.del(url)
|
|
2223
|
+
.pipe(map(res => new PreparedItem(res)));
|
|
2224
|
+
}
|
|
2206
2225
|
}
|
|
2207
2226
|
PrepareService.decorators = [
|
|
2208
2227
|
{ type: Injectable }
|
|
@@ -2262,7 +2281,8 @@ class InboxService {
|
|
|
2262
2281
|
this.inboxStateSource = new ReplaySubject(1);
|
|
2263
2282
|
this.inboxState$ = this.inboxStateSource.asObservable();
|
|
2264
2283
|
this.inboxItemsSource = new ReplaySubject(1);
|
|
2265
|
-
this.
|
|
2284
|
+
this.inboxItemsGridData$ = this.inboxItemsSource.asObservable();
|
|
2285
|
+
this.inboxItems$ = this.inboxItemsGridData$.pipe(this.backend.gridDataFilter);
|
|
2266
2286
|
}
|
|
2267
2287
|
/**
|
|
2268
2288
|
* Fetches inbox items from the backend.
|