New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@protobuf-ts/runtime-angular

Package Overview
Dependencies
Maintainers
1
Versions
89
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@protobuf-ts/runtime-angular - npm Package Compare versions

Comparing version 2.0.4 to 2.0.5

2

bundles/protobuf-ts-runtime-angular.umd.js
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@protobuf-ts/runtime'), require('@angular/common/http'), require('@protobuf-ts/runtime-rpc'), require('rxjs'), require('@protobuf-ts/twirp-transport'), require('rxjs/operators')) :
typeof define === 'function' && define.amd ? define('@protobuf-ts/runtime-angular', ['exports', '@angular/core', '@angular/common', '@protobuf-ts/runtime', '@angular/common/http', '@protobuf-ts/runtime-rpc', 'rxjs', '@protobuf-ts/twirp-transport', 'rxjs/operators'], factory) :
(global = global || self, factory((global['protobuf-ts'] = global['protobuf-ts'] || {}, global['protobuf-ts']['runtime-angular'] = {}), global.ng.core, global.ng.common, global.protobufTs.runtime, global.ng.common.http, global.protobufTs.runtimeRpc, global.rxjs, global.protobufTs.twirpTransport, global.rxjs.operators));
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global['protobuf-ts'] = global['protobuf-ts'] || {}, global['protobuf-ts']['runtime-angular'] = {}), global.ng.core, global.ng.common, global.protobufTs.runtime, global.ng.common.http, global.protobufTs.runtimeRpc, global.rxjs, global.protobufTs.twirpTransport, global.rxjs.operators));
}(this, (function (exports, core, common, runtime, http, runtimeRpc, rxjs, twirpTransport, operators) { 'use strict';

@@ -6,0 +6,0 @@

@@ -1,2 +0,2 @@

!function(r,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("@angular/common"),require("@protobuf-ts/runtime"),require("@angular/common/http"),require("@protobuf-ts/runtime-rpc"),require("rxjs"),require("@protobuf-ts/twirp-transport"),require("rxjs/operators")):"function"==typeof define&&define.amd?define("@protobuf-ts/runtime-angular",["exports","@angular/core","@angular/common","@protobuf-ts/runtime","@angular/common/http","@protobuf-ts/runtime-rpc","rxjs","@protobuf-ts/twirp-transport","rxjs/operators"],e):e(((r=r||self)["protobuf-ts"]=r["protobuf-ts"]||{},r["protobuf-ts"]["runtime-angular"]={}),r.ng.core,r.ng.common,r.protobufTs.runtime,r.ng.common.http,r.protobufTs.runtimeRpc,r.rxjs,r.protobufTs.twirpTransport,r.rxjs.operators)}(this,(function(r,e,t,o,n,i,a,s,u){"use strict";var p=function(){function r(r){this.locale=r}return r.prototype.transform=function(r,e,n,i){if(void 0===e&&(e="mediumDate"),null==r||""===r||r!=r)return null;if(function(r){if("object"!=typeof r||null===r)return!1;if("number"!=typeof r.year)return!1;if("number"!=typeof r.month)return!1;if("number"!=typeof r.day)return!1;if("number"!=typeof r.hours)return!1;if("number"!=typeof r.minutes)return!1;if("number"!=typeof r.seconds)return!1;if("number"!=typeof r.nanos)return!1;if(!o.isOneofGroup(r.timeOffset))return!1;var e=r.timeOffset.oneofKind;return(void 0===e||"timeZone"==e||"utcOffset"==e)&&(void 0===r.timeOffset.utcOffset||function(r){if("object"!=typeof r||null===r)return!1;if("number"!=typeof r.nanos)return!1;var e=typeof r.seconds;return"number"==e||"string"==e||"bigint"==e}(r.timeOffset.utcOffset))}(r)){var a=new Date(r.year,r.month-1,r.day,r.hours,r.minutes,r.seconds,r.nanos/1e3);if(r.timeOffset){if("timeZone"===r.timeOffset.oneofKind)throw new Error("Do not understand IANA time zone. Cannot convert to javascript Date.");if("utcOffset"===r.timeOffset.oneofKind){var s=o.PbLong.from(r.timeOffset.utcOffset.seconds).toNumber()/60,u=a.getTimezoneOffset();a.setMinutes(a.getMinutes()+(s-u))}}return t.formatDate(a,e,null!=i?i:this.locale,n)}if(function(r){if("object"!=typeof r||null===r)return!1;if("number"!=typeof r.nanos)return!1;var e=typeof r.seconds;return"number"==e||"string"==e||"bigint"==e}(r)){var p=o.PbLong.from(r.seconds).toNumber();a=new Date(1e3*p+Math.ceil(r.nanos/1e6));return t.formatDate(a,e,null!=i?i:this.locale,n)}return t.formatDate(r,e,null!=i?i:this.locale,n)},r}();p.decorators=[{type:e.Pipe,args:[{name:"date",pure:!0}]}],p.ctorParameters=function(){return[{type:String,decorators:[{type:e.Inject,args:[e.LOCALE_ID]}]}]};var f=function(){};f.decorators=[{type:e.NgModule,args:[{declarations:[p],exports:[p]}]}];var c=new e.InjectionToken("RpcTransport");
!function(r,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("@angular/common"),require("@protobuf-ts/runtime"),require("@angular/common/http"),require("@protobuf-ts/runtime-rpc"),require("rxjs"),require("@protobuf-ts/twirp-transport"),require("rxjs/operators")):"function"==typeof define&&define.amd?define("@protobuf-ts/runtime-angular",["exports","@angular/core","@angular/common","@protobuf-ts/runtime","@angular/common/http","@protobuf-ts/runtime-rpc","rxjs","@protobuf-ts/twirp-transport","rxjs/operators"],e):e(((r="undefined"!=typeof globalThis?globalThis:r||self)["protobuf-ts"]=r["protobuf-ts"]||{},r["protobuf-ts"]["runtime-angular"]={}),r.ng.core,r.ng.common,r.protobufTs.runtime,r.ng.common.http,r.protobufTs.runtimeRpc,r.rxjs,r.protobufTs.twirpTransport,r.rxjs.operators)}(this,(function(r,e,t,o,n,i,a,s,u){"use strict";var p=function(){function r(r){this.locale=r}return r.prototype.transform=function(r,e,n,i){if(void 0===e&&(e="mediumDate"),null==r||""===r||r!=r)return null;if(function(r){if("object"!=typeof r||null===r)return!1;if("number"!=typeof r.year)return!1;if("number"!=typeof r.month)return!1;if("number"!=typeof r.day)return!1;if("number"!=typeof r.hours)return!1;if("number"!=typeof r.minutes)return!1;if("number"!=typeof r.seconds)return!1;if("number"!=typeof r.nanos)return!1;if(!o.isOneofGroup(r.timeOffset))return!1;var e=r.timeOffset.oneofKind;return(void 0===e||"timeZone"==e||"utcOffset"==e)&&(void 0===r.timeOffset.utcOffset||function(r){if("object"!=typeof r||null===r)return!1;if("number"!=typeof r.nanos)return!1;var e=typeof r.seconds;return"number"==e||"string"==e||"bigint"==e}(r.timeOffset.utcOffset))}(r)){var a=new Date(r.year,r.month-1,r.day,r.hours,r.minutes,r.seconds,r.nanos/1e3);if(r.timeOffset){if("timeZone"===r.timeOffset.oneofKind)throw new Error("Do not understand IANA time zone. Cannot convert to javascript Date.");if("utcOffset"===r.timeOffset.oneofKind){var s=o.PbLong.from(r.timeOffset.utcOffset.seconds).toNumber()/60,u=a.getTimezoneOffset();a.setMinutes(a.getMinutes()+(s-u))}}return t.formatDate(a,e,null!=i?i:this.locale,n)}if(function(r){if("object"!=typeof r||null===r)return!1;if("number"!=typeof r.nanos)return!1;var e=typeof r.seconds;return"number"==e||"string"==e||"bigint"==e}(r)){var p=o.PbLong.from(r.seconds).toNumber();a=new Date(1e3*p+Math.ceil(r.nanos/1e6));return t.formatDate(a,e,null!=i?i:this.locale,n)}return t.formatDate(r,e,null!=i?i:this.locale,n)},r}();p.decorators=[{type:e.Pipe,args:[{name:"date",pure:!0}]}],p.ctorParameters=function(){return[{type:String,decorators:[{type:e.Inject,args:[e.LOCALE_ID]}]}]};var f=function(){};f.decorators=[{type:e.NgModule,args:[{declarations:[p],exports:[p]}]}];var c=new e.InjectionToken("RpcTransport");
/*! *****************************************************************************

@@ -15,3 +15,3 @@ Copyright (c) Microsoft Corporation.

PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */Object.create;function l(r){var e="function"==typeof Symbol&&Symbol.iterator,t=e&&r[e],o=0;if(t)return t.call(r);if(r&&"number"==typeof r.length)return{next:function(){return r&&o>=r.length&&(r=void 0),{value:r&&r[o++],done:!r}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function d(r,e){var t="function"==typeof Symbol&&r[Symbol.iterator];if(!t)return r;var o,n,i=t.call(r),a=[];try{for(;(void 0===e||e-- >0)&&!(o=i.next()).done;)a.push(o.value)}catch(r){n={error:r}}finally{try{o&&!o.done&&(t=i.return)&&t.call(i)}finally{if(n)throw n.error}}return a}Object.create;var m=new e.InjectionToken("TwirpOptions"),y=function(){function r(r,e){this.defaultOptions=r,this.http=e}return r.prototype.mergeOptions=function(r){return i.mergeRpcOptions(this.defaultOptions,r)},r.prototype.unary=function(r,e,t){var p,f=t,c=this.makeUrl(r,f),d=f.sendJson?r.I.toJsonString(e,f.jsonOptions):r.I.toBinary(e,f.binaryOptions).buffer,m=new i.Deferred,y=new i.Deferred,v=new i.Deferred,h=new i.Deferred,g=t.abort?t.abort.aborted?a.of(void 0):a.fromEvent(t.abort,"abort"):a.NEVER;return this.http.request("POST",c,{body:d,headers:w(!!f.sendJson,f.meta),responseType:"arraybuffer",observe:"response"}).pipe(u.takeUntil(g)).toPromise().then((function(e){var n;if(void 0!==e||!(null===(n=t.abort)||void 0===n?void 0:n.aborted)){if(m.resolve(function(r){var e,t,o,n,i={};try{for(var a=l(r.keys()),s=a.next();!s.done;s=a.next()){var u=s.value;if("content-type"!==u.toLowerCase()&&"content-length"!==u.toLowerCase()){var p=r.getAll(u);if(p)try{for(var f=(o=void 0,l(p)),c=f.next();!c.done;c=f.next()){var d=c.value;i.hasOwnProperty(u)?i[u].push(d):i[u]=d}}catch(r){o={error:r}}finally{try{c&&!c.done&&(n=f.return)&&n.call(f)}finally{if(o)throw o.error}}}}}catch(r){e={error:r}}finally{try{s&&!s.done&&(t=a.return)&&t.call(a)}finally{if(e)throw e.error}}return i}(e.headers)),!e.body)throw new i.RpcError("premature end of response",s.TwirpErrorCode[s.TwirpErrorCode.dataloss]);if(!e.ok)throw b(e.body);if(f.sendJson)try{return r.O.fromJsonString(o.utf8read(new Uint8Array(e.body)),f.jsonOptions)}catch(r){throw new i.RpcError("unable to read response body as json",s.TwirpErrorCode[s.TwirpErrorCode.dataloss])}try{return r.O.fromBinary(new Uint8Array(e.body),f.binaryOptions)}catch(r){throw new i.RpcError("unable to read response body",s.TwirpErrorCode[s.TwirpErrorCode.dataloss])}}}),(function(r){if(r instanceof n.HttpErrorResponse){if(r.error instanceof ArrayBuffer)throw b(r.error);throw new i.RpcError(r.message,s.TwirpErrorCode[s.TwirpErrorCode.unknown])}throw new i.RpcError("unknown error",s.TwirpErrorCode[s.TwirpErrorCode.unknown])})).then((function(r){var e;if(void 0===r&&(null===(e=t.abort)||void 0===e?void 0:e.aborted))throw new i.RpcError("request cancelled",s.TwirpErrorCode[s.TwirpErrorCode.cancelled]);y.resolve(r),v.resolve({code:"OK",detail:""}),h.resolve({})})).catch((function(r){var e=r instanceof i.RpcError?r:new i.RpcError(r instanceof Error?r.message:r,s.TwirpErrorCode[s.TwirpErrorCode.internal]);m.rejectPending(e),y.rejectPending(e),v.rejectPending(e),h.rejectPending(e)})),new i.UnaryCall(r,null!==(p=f.meta)&&void 0!==p?p:{},e,m.promise,y.promise,v.promise,h.promise)},r.prototype.makeUrl=function(r,e){var t=e.baseUrl;t.endsWith("/")&&(t=t.substring(0,t.length-1));var n=r.name;return!0!==e.useProtoMethodName&&(n=(n=o.lowerCamelCase(n)).substring(0,1).toUpperCase()+n.substring(1)),t+"/"+r.service.typeName+"/"+n},r.prototype.clientStreaming=function(){throw new i.RpcError("Client streaming is not supported by Twirp",s.TwirpErrorCode[s.TwirpErrorCode.unimplemented])},r.prototype.duplex=function(){throw new i.RpcError("Duplex streaming is not supported by Twirp",s.TwirpErrorCode[s.TwirpErrorCode.unimplemented])},r.prototype.serverStreaming=function(){throw new i.RpcError("Server streaming is not supported by Twirp",s.TwirpErrorCode[s.TwirpErrorCode.unimplemented])},r}();function w(r,e){var t,o,i,a,s=new n.HttpHeaders;if(e)try{for(var u=l(Object.entries(e)),p=u.next();!p.done;p=u.next()){var f=d(p.value,2),c=f[0],m=f[1];if("string"==typeof m)s=s.append(c,m);else try{for(var y=(i=void 0,l(m)),w=y.next();!w.done;w=y.next()){var b=w.value;s=s.append(c,b)}}catch(r){i={error:r}}finally{try{w&&!w.done&&(a=y.return)&&a.call(y)}finally{if(i)throw i.error}}}}catch(r){t={error:r}}finally{try{p&&!p.done&&(o=u.return)&&o.call(u)}finally{if(t)throw t.error}}return s=(s=s.set("Content-Type",r?"application/json":"application/protobuf")).set("Accept",r?"application/json":"application/protobuf, application/json")}function b(r){var e,t,n;try{n=JSON.parse(o.utf8read(new Uint8Array(r)))}catch(r){return new i.RpcError("cannot read twirp error response",s.TwirpErrorCode[s.TwirpErrorCode.internal])}if(!o.isJsonObject(n)||"string"!=typeof n.code||"string"!=typeof n.msg)return new i.RpcError("cannot read twirp error response",s.TwirpErrorCode[s.TwirpErrorCode.internal]);var a={};if(o.isJsonObject(n.meta))try{for(var u=l(Object.entries(n.meta)),p=u.next();!p.done;p=u.next()){var f=d(p.value,2),c=f[0],m=f[1];"string"==typeof m&&(a[c]=m)}}catch(r){e={error:r}}finally{try{p&&!p.done&&(t=u.return)&&t.call(u)}finally{if(e)throw e.error}}return new i.RpcError(n.msg,n.code,a)}y.decorators=[{type:e.Injectable}],y.ctorParameters=function(){return[{type:void 0,decorators:[{type:e.Inject,args:[m]}]},{type:n.HttpClient}]};var v=function(){function r(){}return r.forRoot=function(e){return{ngModule:r,providers:[{provide:m,useValue:e},{provide:c,useExisting:y}]}},r}();v.decorators=[{type:e.NgModule,args:[{imports:[n.HttpClientModule],providers:[y]}]}],r.PbDatePipe=p,r.PbDatePipeModule=f,r.RPC_TRANSPORT=c,r.TWIRP_TRANSPORT_OPTIONS=m,r.TwirpModule=v,r.TwirpTransport=y,Object.defineProperty(r,"__esModule",{value:!0})}));
***************************************************************************** */Object.create;function l(r){var e="function"==typeof Symbol&&Symbol.iterator,t=e&&r[e],o=0;if(t)return t.call(r);if(r&&"number"==typeof r.length)return{next:function(){return r&&o>=r.length&&(r=void 0),{value:r&&r[o++],done:!r}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function d(r,e){var t="function"==typeof Symbol&&r[Symbol.iterator];if(!t)return r;var o,n,i=t.call(r),a=[];try{for(;(void 0===e||e-- >0)&&!(o=i.next()).done;)a.push(o.value)}catch(r){n={error:r}}finally{try{o&&!o.done&&(t=i.return)&&t.call(i)}finally{if(n)throw n.error}}return a}Object.create;var y=new e.InjectionToken("TwirpOptions"),m=function(){function r(r,e){this.defaultOptions=r,this.http=e}return r.prototype.mergeOptions=function(r){return i.mergeRpcOptions(this.defaultOptions,r)},r.prototype.unary=function(r,e,t){var p,f=t,c=this.makeUrl(r,f),d=f.sendJson?r.I.toJsonString(e,f.jsonOptions):r.I.toBinary(e,f.binaryOptions).buffer,y=new i.Deferred,m=new i.Deferred,v=new i.Deferred,h=new i.Deferred,g=t.abort?t.abort.aborted?a.of(void 0):a.fromEvent(t.abort,"abort"):a.NEVER;return this.http.request("POST",c,{body:d,headers:w(!!f.sendJson,f.meta),responseType:"arraybuffer",observe:"response"}).pipe(u.takeUntil(g)).toPromise().then((function(e){var n;if(void 0!==e||!(null===(n=t.abort)||void 0===n?void 0:n.aborted)){if(y.resolve(function(r){var e,t,o,n,i={};try{for(var a=l(r.keys()),s=a.next();!s.done;s=a.next()){var u=s.value;if("content-type"!==u.toLowerCase()&&"content-length"!==u.toLowerCase()){var p=r.getAll(u);if(p)try{for(var f=(o=void 0,l(p)),c=f.next();!c.done;c=f.next()){var d=c.value;i.hasOwnProperty(u)?i[u].push(d):i[u]=d}}catch(r){o={error:r}}finally{try{c&&!c.done&&(n=f.return)&&n.call(f)}finally{if(o)throw o.error}}}}}catch(r){e={error:r}}finally{try{s&&!s.done&&(t=a.return)&&t.call(a)}finally{if(e)throw e.error}}return i}(e.headers)),!e.body)throw new i.RpcError("premature end of response",s.TwirpErrorCode[s.TwirpErrorCode.dataloss]);if(!e.ok)throw b(e.body);if(f.sendJson)try{return r.O.fromJsonString(o.utf8read(new Uint8Array(e.body)),f.jsonOptions)}catch(r){throw new i.RpcError("unable to read response body as json",s.TwirpErrorCode[s.TwirpErrorCode.dataloss])}try{return r.O.fromBinary(new Uint8Array(e.body),f.binaryOptions)}catch(r){throw new i.RpcError("unable to read response body",s.TwirpErrorCode[s.TwirpErrorCode.dataloss])}}}),(function(r){if(r instanceof n.HttpErrorResponse){if(r.error instanceof ArrayBuffer)throw b(r.error);throw new i.RpcError(r.message,s.TwirpErrorCode[s.TwirpErrorCode.unknown])}throw new i.RpcError("unknown error",s.TwirpErrorCode[s.TwirpErrorCode.unknown])})).then((function(r){var e;if(void 0===r&&(null===(e=t.abort)||void 0===e?void 0:e.aborted))throw new i.RpcError("request cancelled",s.TwirpErrorCode[s.TwirpErrorCode.cancelled]);m.resolve(r),v.resolve({code:"OK",detail:""}),h.resolve({})})).catch((function(r){var e=r instanceof i.RpcError?r:new i.RpcError(r instanceof Error?r.message:r,s.TwirpErrorCode[s.TwirpErrorCode.internal]);y.rejectPending(e),m.rejectPending(e),v.rejectPending(e),h.rejectPending(e)})),new i.UnaryCall(r,null!==(p=f.meta)&&void 0!==p?p:{},e,y.promise,m.promise,v.promise,h.promise)},r.prototype.makeUrl=function(r,e){var t=e.baseUrl;t.endsWith("/")&&(t=t.substring(0,t.length-1));var n=r.name;return!0!==e.useProtoMethodName&&(n=(n=o.lowerCamelCase(n)).substring(0,1).toUpperCase()+n.substring(1)),t+"/"+r.service.typeName+"/"+n},r.prototype.clientStreaming=function(){throw new i.RpcError("Client streaming is not supported by Twirp",s.TwirpErrorCode[s.TwirpErrorCode.unimplemented])},r.prototype.duplex=function(){throw new i.RpcError("Duplex streaming is not supported by Twirp",s.TwirpErrorCode[s.TwirpErrorCode.unimplemented])},r.prototype.serverStreaming=function(){throw new i.RpcError("Server streaming is not supported by Twirp",s.TwirpErrorCode[s.TwirpErrorCode.unimplemented])},r}();function w(r,e){var t,o,i,a,s=new n.HttpHeaders;if(e)try{for(var u=l(Object.entries(e)),p=u.next();!p.done;p=u.next()){var f=d(p.value,2),c=f[0],y=f[1];if("string"==typeof y)s=s.append(c,y);else try{for(var m=(i=void 0,l(y)),w=m.next();!w.done;w=m.next()){var b=w.value;s=s.append(c,b)}}catch(r){i={error:r}}finally{try{w&&!w.done&&(a=m.return)&&a.call(m)}finally{if(i)throw i.error}}}}catch(r){t={error:r}}finally{try{p&&!p.done&&(o=u.return)&&o.call(u)}finally{if(t)throw t.error}}return s=(s=s.set("Content-Type",r?"application/json":"application/protobuf")).set("Accept",r?"application/json":"application/protobuf, application/json")}function b(r){var e,t,n;try{n=JSON.parse(o.utf8read(new Uint8Array(r)))}catch(r){return new i.RpcError("cannot read twirp error response",s.TwirpErrorCode[s.TwirpErrorCode.internal])}if(!o.isJsonObject(n)||"string"!=typeof n.code||"string"!=typeof n.msg)return new i.RpcError("cannot read twirp error response",s.TwirpErrorCode[s.TwirpErrorCode.internal]);var a={};if(o.isJsonObject(n.meta))try{for(var u=l(Object.entries(n.meta)),p=u.next();!p.done;p=u.next()){var f=d(p.value,2),c=f[0],y=f[1];"string"==typeof y&&(a[c]=y)}}catch(r){e={error:r}}finally{try{p&&!p.done&&(t=u.return)&&t.call(u)}finally{if(e)throw e.error}}return new i.RpcError(n.msg,n.code,a)}m.decorators=[{type:e.Injectable}],m.ctorParameters=function(){return[{type:void 0,decorators:[{type:e.Inject,args:[y]}]},{type:n.HttpClient}]};var v=function(){function r(){}return r.forRoot=function(e){return{ngModule:r,providers:[{provide:y,useValue:e},{provide:c,useExisting:m}]}},r}();v.decorators=[{type:e.NgModule,args:[{imports:[n.HttpClientModule],providers:[m]}]}],r.PbDatePipe=p,r.PbDatePipeModule=f,r.RPC_TRANSPORT=c,r.TWIRP_TRANSPORT_OPTIONS=y,r.TwirpModule=v,r.TwirpTransport=m,Object.defineProperty(r,"__esModule",{value:!0})}));
//# sourceMappingURL=protobuf-ts-runtime-angular.umd.min.js.map

@@ -84,2 +84,2 @@ import { Inject, LOCALE_ID, Pipe } from "@angular/core";

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGItZGF0ZS1waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9wYi1kYXRlLXBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFnQixNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFDLFlBQVksRUFBRSxNQUFNLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUcxRDs7O0dBR0c7QUFFSCxNQUFNLE9BQU8sVUFBVTtJQUdyQixZQUFnRCxNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUM5RCxDQUFDO0lBR0QsU0FBUyxDQUFDLEtBQVUsRUFBRSxNQUFNLEdBQUcsWUFBWSxFQUFFLFFBQWlCLEVBQUUsTUFBZTtRQUM3RSxJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxLQUFLLEVBQUUsSUFBSSxLQUFLLEtBQUssS0FBSyxFQUFFO1lBQ3BELE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxJQUFJLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN2QixJQUFJLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQztZQUN6SCxJQUFJLEtBQUssQ0FBQyxVQUFVLEVBQUU7Z0JBQ3BCLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxTQUFTLEtBQUssVUFBVSxFQUFFO29CQUM3QyxNQUFNLElBQUksS0FBSyxDQUFDLHNFQUFzRSxDQUFDLENBQUM7aUJBQ3pGO3FCQUFN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QyxHQUFHLENBQUMsVUFBVSxDQUFDO1FBQy9CLE9BQU8sS0FBSyxDQUFDO0lBQ2YsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUM7SUFDakMsSUFBSSxDQUFDLEtBQUssU0FBUyxJQUFJLENBQUMsSUFBSSxVQUFVLElBQUksQ0FBQyxJQUFJLFdBQVc7UUFDeEQsT0FBTyxLQUFLLENBQUM7SUFDZixPQUFPLEdBQUcsQ0FBQyxVQUFVLENBQUMsU0FBUyxLQUFLLFNBQVMsSUFBSSxZQUFZLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUMxRixDQUFDO0FBa0ZELFNBQVMsWUFBWSxDQUFDLEdBQVE7SUFDNUIsSUFBSSxPQUFPLEdBQUcsSUFBSSxRQUFRLElBQUksR0FBRyxLQUFLLElBQUk7UUFDeEMsT0FBTyxLQUFLLENBQUM7SUFDZixJQUFJLE9BQU8sR0FBRyxDQUFDLEtBQUssS0FBSyxRQUFRO1FBQy9CLE9BQU8sS0FBSyxDQUFDO0lBQ2YsSUFBSSxFQUFFLEdBQUcsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDO0lBQzVCLE9BQU8sRUFBRSxJQUFJLFFBQVEsSUFBSSxFQUFFLElBQUksUUFBUSxJQUFJLEVBQUUsSUFBSSxRQUFRLENBQUM7QUFDNUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0LCBMT0NBTEVfSUQsIFBpcGUsIFBpcGVUcmFuc2Zvcm19IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge2Zvcm1hdERhdGV9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7aXNPbmVvZkdyb3VwLCBQYkxvbmd9IGZyb20gXCJAcHJvdG9idWYtdHMvcnVudGltZVwiO1xuXG5cbi8qKlxuICogVGhlIGBQYkRhdGVQaXBlYCB3b3JrcyBleGFjdGx5IGxpa2UgdGhlIG9yaWdpbmFsIGFuZ3VsYXIgYERhdGVQaXBlYCxcbiAqIGJ1dCBhbHNvIHVuZGVyc3RhbmRzIGBnb29nbGUucHJvdG9idWYuVGltZXN0YW1wYCBhbmQgYGdvb2dsZS50eXBlLkRhdGVUaW1lYC5cbiAqL1xuQFBpcGUoe25hbWU6ICdkYXRlJywgcHVyZTogdHJ1ZX0pXG5leHBvcnQgY2xhc3MgUGJEYXRlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXG5cbiAgY29uc3RydWN0b3IoQEluamVjdChMT0NBTEVfSUQpIHByaXZhdGUgcmVhZG9ubHkgbG9jYWxlOiBzdHJpbmcpIHtcbiAgfVxuXG5cbiAgdHJhbnNmb3JtKHZhbHVlOiBhbnksIGZvcm1hdCA9ICdtZWRpdW1EYXRlJywgdGltZXpvbmU/OiBzdHJpbmcsIGxvY2FsZT86IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICAgIGlmICh2YWx1ZSA9PSBudWxsIHx8IHZhbHVlID09PSAnJyB8fCB2YWx1ZSAhPT0gdmFsdWUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBpZiAoaXNQYkRhdGVUaW1lKHZhbHVlKSkge1xuICAgICAgbGV0IGR0ID0gbmV3IERhdGUodmFsdWUueWVhciwgdmFsdWUubW9udGggLSAxLCB2YWx1ZS5kYXksIHZhbHVlLmhvdXJzLCB2YWx1ZS5taW51dGVzLCB2YWx1ZS5zZWNvbmRzLCB2YWx1ZS5uYW5vcyAvIDEwMDApO1xuICAgICAgaWYgKHZhbHVlLnRpbWVPZmZzZXQpIHtcbiAgICAgICAgaWYgKHZhbHVlLnRpbWVPZmZzZXQub25lb2ZLaW5kID09PSBcInRpbWVab25lXCIpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJEbyBub3QgdW5kZXJzdGFuZCBJQU5BIHRpbWUgem9uZS4gQ2Fubm90IGNvbnZlcnQgdG8gamF2YXNjcmlwdCBEYXRlLlwiKTtcbiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZS50aW1lT2Zmc2V0Lm9uZW9mS2luZCA9PT0gXCJ1dGNPZmZzZXRcIikge1xuICAgICAgICAgIGxldCBwYk9mZnNldCA9IFBiTG9uZy5mcm9tKHZhbHVlLnRpbWVPZmZzZXQudXRjT2Zmc2V0LnNlY29uZHMpLnRvTnVtYmVyKCkgLyA2MDtcbiAgICAgICAgICBsZXQganNPZmZzZXQgPSBkdC5nZXRUaW1lem9uZU9mZnNldCgpO1xuICAgICAgICAgIGR0LnNldE1pbnV0ZXMoZHQuZ2V0TWludXRlcygpICsgKHBiT2Zmc2V0IC0ganNPZmZzZXQpKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZm9ybWF0RGF0ZShkdCwgZm9ybWF0LCBsb2NhbGUgPz8gdGhpcy5sb2NhbGUsIHRpbWV6b25lKTtcbiAgICB9XG4gICAgaWYgKGlzUGJUaW1lc3RhbXAodmFsdWUpKSB7XG4gICAgICBsZXQgdHNTZWNvbmRzID0gUGJMb25nLmZyb20odmFsdWUuc2Vjb25kcykudG9OdW1iZXIoKTtcbiAgICAgIGxldCBkdCA9IG5ldyBEYXRlKHRzU2Vjb25kcyAqIDEwMDAgKyBNYXRoLmNlaWwodmFsdWUubmFub3MgLyAxMDAwMDAwKSk7XG4gICAgICByZXR1cm4gZm9ybWF0RGF0ZShkdCwgZm9ybWF0LCBsb2NhbGUgPz8gdGhpcy5sb2NhbGUsIHRpbWV6b25lKTtcbiAgICB9XG4gICAgcmV0dXJuIGZvcm1hdERhdGUodmFsdWUsIGZvcm1hdCwgbG9jYWxlID8/IHRoaXMubG9jYWxlLCB0aW1lem9uZSk7XG4gIH1cblxufVxuXG5cbmZ1bmN0aW9uIGlzUGJUaW1lc3RhbXAoYXJnOiBhbnkpOiBhcmcgaXMgUGJUaW1lc3RhbXAge1xuICBpZiAodHlwZW9mIGFyZyAhPSBcIm9iamVjdFwiIHx8IGFyZyA9PT0gbnVsbClcbiAgICByZXR1cm4gZmFsc2U7XG4gIGlmICh0eXBlb2YgYXJnLm5hbm9zICE9PSBcIm51bWJlclwiKVxuICAgIHJldHVybiBmYWxzZTtcbiAgbGV0IHN0ID0gdHlwZW9mIGFyZy5zZWNvbmRzO1xuICByZXR1cm4gc3QgPT0gXCJudW1iZXJcIiB8fCBzdCA9PSBcInN0cmluZ1wiIHx8IHN0ID09IFwiYmlnaW50XCI7XG59XG5cblxuLyoqXG4gKiBAZ2VuZXJhdGVkIGZyb20gcHJvdG9idWYgbWVzc2FnZSBnb29nbGUucHJvdG9idWYuVGltZXN0YW1wXG4gKi9cbmludGVyZmFjZSBQYlRpbWVzdGFtcCB7XG4gIC8qKlxuICAgKiBSZXByZXNlbnRzIHNlY29uZHMgb2YgVVRDIHRpbWUgc2luY2UgVW5peCBlcG9jaFxuICAgKiAxOTcwLTAxLTAxVDAwOjAwOjAwWi4gTXVzdCBiZSBmcm9tIDAwMDEtMDEtMDFUMDA6MDA6MDBaIHRvXG4gICAqIDk5OTktMTItMzFUMjM6NTk6NTlaIGluY2x1c2l2ZS5cbiAgICpcbiAgICogQGdlbmVyYXRlZCBmcm9tIHByb3RvYnVmIGZpZWxkOiBpbnQ2NCBzZWNvbmRzID0gMTtcbiAgICovXG4gIHNlY29uZHM6IG51bWJlciB8IHN0cmluZyB8IGJpZ2ludDtcbiAgLyoqXG4gICAqIE5vbi1uZWdhdGl2ZSBmcmFjdGlvbnMgb2YgYSBzZWNvbmQgYXQgbmFub3NlY29uZCByZXNvbHV0aW9uLiBOZWdhdGl2ZVxuICAgKiBzZWNvbmQgdmFsdWVzIHdpdGggZnJhY3Rpb25zIG11c3Qgc3RpbGwgaGF2ZSBub24tbmVnYXRpdmUgbmFub3MgdmFsdWVzXG4gICAqIHRoYXQgY291bnQgZm9yd2FyZCBpbiB0aW1lLiBNdXN0IGJlIGZyb20gMCB0byA5OTksOTk5LDk5OVxuICAgKiBpbmNsdXNpdmUuXG4gICAqXG4gICAqIEBnZW5lcmF0ZWQgZnJvbSBwcm90b2J1ZiBmaWVsZDogaW50MzIgbmFub3MgPSAyO1xuICAgKi9cbiAgbmFub3M6IG51bWJlcjtcbn1cblxuXG5mdW5jdGlvbiBpc1BiRGF0ZVRpbWUoYXJnOiBhbnkpOiBhcmcgaXMgUGJEYXRlVGltZSB7XG4gIGlmICh0eXBlb2YgYXJnICE9IFwib2JqZWN0XCIgfHwgYXJnID09PSBudWxsKVxuICAgIHJldHVybiBmYWxzZTtcbiAgaWYgKHR5cGVvZiBhcmcueWVhciAhPSBcIm51bWJlclwiKVxuICAgIHJldHVybiBmYWxzZTtcbiAgaWYgKHR5cGVvZiBhcmcubW9udGggIT0gXCJudW1iZXJcIilcbiAgICByZXR1cm4gZmFsc2U7XG4gIGlmICh0eXBlb2YgYXJnLmRheSAhPSBcIm51bWJlclwiKVxuICAgIHJldHVybiBmYWxzZTtcbiAgaWYgKHR5cGVvZiBhcmcuaG91cnMgIT0gXCJudW1iZXJcIilcbiAgICByZXR1cm4gZmFsc2U7XG4gIGlmICh0eXBlb2YgYXJnLm1pbnV0ZXMgIT0gXCJudW1iZXJcIilcbiAgICByZXR1cm4gZmFsc2U7XG4gIGlmICh0eXBlb2YgYXJnLnNlY29uZHMgIT0gXCJudW1iZXJcIilcbiAgICByZXR1cm4gZmFsc2U7XG4gIGlmICh0eXBlb2YgYXJnLm5hbm9zICE9IFwibnVtYmVyXCIpXG4gICAgcmV0dXJuIGZhbHNlO1xuICBpZiAoIWlzT25lb2ZHcm91cChhcmcudGltZU9mZnNldCkpXG4gICAgcmV0dXJuIGZhbHNlO1xuICBsZXQgayA9IGFyZy50aW1lT2Zmc2V0Lm9uZW9mS2luZDtcbiAgaWYgKGsgIT09IHVuZGVmaW5lZCAmJiBrICE9IFwidGltZVpvbmVcIiAmJiBrICE9IFwidXRjT2Zmc2V0XCIpXG4gICAgcmV0dXJuIGZhbHNlO1xuICByZXR1cm4gYXJnLnRpbWVPZmZzZXQudXRjT2Zmc2V0ID09PSB1bmRlZmluZWQgfHwgaXNQYkR1cmF0aW9uKGFyZy50aW1lT2Zmc2V0LnV0Y09mZnNldCk7XG59XG5cblxuLyoqXG4gKiBAZ2VuZXJhdGVkIGZyb20gcHJvdG9idWYgbWVzc2FnZSBnb29nbGUudHlwZS5EYXRlVGltZVxuICovXG5pbnRlcmZhY2UgUGJEYXRlVGltZSB7XG4gIC8qKlxuICAgKiBPcHRpb25hbC4gWWVhciBvZiBkYXRlLiBNdXN0IGJlIGZyb20gMSB0byA5OTk5LCBvciAwIGlmIHNwZWNpZnlpbmcgYVxuICAgKiBkYXRldGltZSB3aXRob3V0IGEgeWVhci5cbiAgICpcbiAgICogQGdlbmVyYXRlZCBmcm9tIHByb3RvYnVmIGZpZWxkOiBpbnQzMiB5ZWFyID0gMTtcbiAgICovXG4gIHllYXI6IG51bWJlcjtcbiAgLyoqXG4gICAqIFJlcXVpcmVkLiBNb250aCBvZiB5ZWFyLiBNdXN0IGJlIGZyb20gMSB0byAxMi5cbiAgICpcbiAgICogQGdlbmVyYXRlZCBmcm9tIHByb3RvYnVmIGZpZWxkOiBpbnQzMiBtb250aCA9IDI7XG4gICAqL1xuICBtb250aDogbnVtYmVyO1xuICAvKipcbiAgICogUmVxdWlyZWQuIERheSBvZiBtb250aC4gTXVzdCBiZSBmcm9tIDEgdG8gMzEgYW5kIHZhbGlkIGZvciB0aGUgeWVhciBhbmRcbiAgICogbW9udGguXG4gICAqXG4gICAqIEBnZW5lcmF0ZWQgZnJvbSBwcm90b2J1ZiBmaWVsZDogaW50MzIgZGF5ID0gMztcbiAgICovXG4gIGRheTogbnVtYmVyO1xuICAvKipcbiAgICogUmVxdWlyZWQuIEhvdXJzIG9mIGRheSBpbiAyNCBob3VyIGZvcm1hdC4gU2hvdWxkIGJlIGZyb20gMCB0byAyMy4gQW4gQVBJXG4gICAqIG1heSBjaG9vc2UgdG8gYWxsb3cgdGhlIHZhbHVlIFwiMjQ6MDA6MDBcIiBmb3Igc2NlbmFyaW9zIGxpa2UgYnVzaW5lc3NcbiAgICogY2xvc2luZyB0aW1lLlxuICAgKlxuICAgKiBAZ2VuZXJhdGVkIGZyb20gcHJvdG9idWYgZmllbGQ6IGludDMyIGhvdXJzID0gNDtcbiAgICovXG4gIGhvdXJzOiBudW1iZXI7XG4gIC8qKlxuICAgKiBSZXF1aXJlZC4gTWludXRlcyBvZiBob3VyIG9mIGRheS4gTXVzdCBiZSBmcm9tIDAgdG8gNTkuXG4gICAqXG4gICAqIEBnZW5lcmF0ZWQgZnJvbSBwcm90b2J1ZiBmaWVsZDogaW50MzIgbWludXRlcyA9IDU7XG4gICAqL1xuICBtaW51dGVzOiBudW1iZXI7XG4gIC8qKlxuICAgKiBSZXF1aXJlZC4gU2Vjb25kcyBvZiBtaW51dGVzIG9mIHRoZSB0aW1lLiBNdXN0IG5vcm1hbGx5IGJlIGZyb20gMCB0byA1OS4gQW5cbiAgICogQVBJIG1heSBhbGxvdyB0aGUgdmFsdWUgNjAgaWYgaXQgYWxsb3dzIGxlYXAtc2Vjb25kcy5cbiAgICpcbiAgICogQGdlbmVyYXRlZCBmcm9tIHByb3RvYnVmIGZpZWxkOiBpbnQzMiBzZWNvbmRzID0gNjtcbiAgICovXG4gIHNlY29uZHM6IG51bWJlcjtcbiAgLyoqXG4gICAqIFJlcXVpcmVkLiBGcmFjdGlvbnMgb2Ygc2Vjb25kcyBpbiBuYW5vc2Vjb25kcy4gTXVzdCBiZSBmcm9tIDAgdG9cbiAgICogOTk5LDk5OSw5OTkuXG4gICAqXG4gICAqIEBnZW5lcmF0ZWQgZnJvbSBwcm90b2J1ZiBmaWVsZDogaW50MzIgbmFub3MgPSA3O1xuICAgKi9cbiAgbmFub3M6IG51bWJlcjtcbiAgLyoqXG4gICAqIEBnZW5lcmF0ZWQgZnJvbSBwcm90b2J1ZiBvbmVvZjogdGltZV9vZmZzZXRcbiAgICovXG4gIHRpbWVPZmZzZXQ6IHtcbiAgICBvbmVvZktpbmQ6IFwidXRjT2Zmc2V0XCI7XG4gICAgLyoqXG4gICAgICogVVRDIG9mZnNldC4gTXVzdCBiZSB3aG9sZSBzZWNvbmRzLCBiZXR3ZWVuIC0xOCBob3VycyBhbmQgKzE4IGhvdXJzLlxuICAgICAqIEZvciBleGFtcGxlLCBhIFVUQyBvZmZzZXQgb2YgLTQ6MDAgd291bGQgYmUgcmVwcmVzZW50ZWQgYXNcbiAgICAgKiB7IHNlY29uZHM6IC0xNDQwMCB9LlxuICAgICAqXG4gICAgICogQGdlbmVyYXRlZCBmcm9tIHByb3RvYnVmIGZpZWxkOiBnb29nbGUucHJvdG9idWYuRHVyYXRpb24gdXRjX29mZnNldCA9IDg7XG4gICAgICovXG4gICAgdXRjT2Zmc2V0OiBQYkR1cmF0aW9uO1xuICB9IHwge1xuICAgIG9uZW9mS2luZDogXCJ0aW1lWm9uZVwiO1xuICAgIC8qKlxuICAgICAqIFRpbWUgem9uZS5cbiAgICAgKlxuICAgICAqIEBnZW5lcmF0ZWQgZnJvbSBwcm90b2J1ZiBmaWVsZDogZ29vZ2xlLnR5cGUuVGltZVpvbmUgdGltZV96b25lID0gOTtcbiAgICAgKi9cbiAgICB0aW1lWm9uZTogYW55O1xuICB9IHwge1xuICAgIG9uZW9mS2luZDogdW5kZWZpbmVkO1xuICB9O1xufVxuXG5cbmZ1bmN0aW9uIGlzUGJEdXJhdGlvbihhcmc6IGFueSk6IGFyZyBpcyBQYkR1cmF0aW9uIHtcbiAgaWYgKHR5cGVvZiBhcmcgIT0gXCJvYmplY3RcIiB8fCBhcmcgPT09IG51bGwpXG4gICAgcmV0dXJuIGZhbHNlO1xuICBpZiAodHlwZW9mIGFyZy5uYW5vcyAhPT0gXCJudW1iZXJcIilcbiAgICByZXR1cm4gZmFsc2U7XG4gIGxldCBzdCA9IHR5cGVvZiBhcmcuc2Vjb25kcztcbiAgcmV0dXJuIHN0ID09IFwibnVtYmVyXCIgfHwgc3QgPT0gXCJzdHJpbmdcIiB8fCBzdCA9PSBcImJpZ2ludFwiO1xufVxuXG5cbi8qKlxuICogQGdlbmVyYXRlZCBmcm9tIHByb3RvYnVmIG1lc3NhZ2UgZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uXG4gKi9cbmludGVyZmFjZSBQYkR1cmF0aW9uIHtcbiAgLyoqXG4gICAqIFNpZ25lZCBzZWNvbmRzIG9mIHRoZSBzcGFuIG9mIHRpbWUuIE11c3QgYmUgZnJvbSAtMzE1LDU3NiwwMDAsMDAwXG4gICAqIHRvICszMTUsNTc2LDAwMCwwMDAgaW5jbHVzaXZlLiBOb3RlOiB0aGVzZSBib3VuZHMgYXJlIGNvbXB1dGVkIGZyb206XG4gICAqIDYwIHNlYy9taW4gKiA2MCBtaW4vaHIgKiAyNCBoci9kYXkgKiAzNjUuMjUgZGF5cy95ZWFyICogMTAwMDAgeWVhcnNcbiAgICpcbiAgICogQGdlbmVyYXRlZCBmcm9tIHByb3RvYnVmIGZpZWxkOiBpbnQ2NCBzZWNvbmRzID0gMTtcbiAgICovXG4gIHNlY29uZHM6IG51bWJlciB8IHN0cmluZyB8IGJpZ2ludDtcbiAgLyoqXG4gICAqIFNpZ25lZCBmcmFjdGlvbnMgb2YgYSBzZWNvbmQgYXQgbmFub3NlY29uZCByZXNvbHV0aW9uIG9mIHRoZSBzcGFuXG4gICAqIG9mIHRpbWUuIER1cmF0aW9ucyBsZXNzIHRoYW4gb25lIHNlY29uZCBhcmUgcmVwcmVzZW50ZWQgd2l0aCBhIDBcbiAgICogYHNlY29uZHNgIGZpZWxkIGFuZCBhIHBvc2l0aXZlIG9yIG5lZ2F0aXZlIGBuYW5vc2AgZmllbGQuIEZvciBkdXJhdGlvbnNcbiAgICogb2Ygb25lIHNlY29uZCBvciBtb3JlLCBhIG5vbi16ZXJvIHZhbHVlIGZvciB0aGUgYG5hbm9zYCBmaWVsZCBtdXN0IGJlXG4gICAqIG9mIHRoZSBzYW1lIHNpZ24gYXMgdGhlIGBzZWNvbmRzYCBmaWVsZC4gTXVzdCBiZSBmcm9tIC05OTksOTk5LDk5OVxuICAgKiB0byArOTk5LDk5OSw5OTkgaW5jbHVzaXZlLlxuICAgKlxuICAgKiBAZ2VuZXJhdGVkIGZyb20gcHJvdG9idWYgZmllbGQ6IGludDMyIG5hbm9zID0gMjtcbiAgICovXG4gIG5hbm9zOiBudW1iZXI7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGItZGF0ZS1waXBlLmpzIiwic291cmNlUm9vdCI6Ii9Vc2Vycy90cy9QaHBzdG9ybVByb2plY3RzL3Byb3RvYnVmLXRzL3BhY2thZ2VzL3J1bnRpbWUtYW5ndWxhci9zcmMvIiwic291cmNlcyI6WyJsaWIvcGItZGF0ZS1waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBZ0IsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxZQUFZLEVBQUUsTUFBTSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFHMUQ7OztHQUdHO0FBRUgsTUFBTSxPQUFPLFVBQVU7SUFHckIsWUFBZ0QsTUFBYztRQUFkLFdBQU0sR0FBTixNQUFNLENBQVE7SUFDOUQsQ0FBQztJQUdELFNBQVMsQ0FBQyxLQUFVLEVBQUUsTUFBTSxHQUFHLFlBQVksRUFBRSxRQUFpQixFQUFFLE1BQWU7UUFDN0UsSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLEtBQUssS0FBSyxFQUFFLElBQUksS0FBSyxLQUFLLEtBQUssRUFBRTtZQUNwRCxPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDdkIsSUFBSSxFQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDekgsSUFBSSxLQUFLLENBQUMsVUFBVSxFQUFFO2dCQUNwQixJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsU0FBUyxLQUFLLFVBQVUsRUFBRTtvQkFDN0MsTUFBTSxJQUFJLEtBQUssQ0FBQyxzRUFBc0UsQ0FBQyxDQUFDO2lCQUN6RjtxQkFBTSxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsU0FBUyxLQUFLLFdBQVcsRUFBRTtvQkFDckQsSUFBSSxRQUFRLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUM7b0JBQy9FLElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO29CQUN0QyxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFBO2lCQUN2RDthQUNGO1lBQ0QsT0FBTyxVQUFVLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLGFBQU4sTUFBTSxjQUFOLE1BQU0sR0FBSSxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1NBQ2hFO1FBQ0QsSUFBSSxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDeEIsSUFBSSxTQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDdEQsSUFBSSxFQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUN2RSxPQUFPLFVBQVUsQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBTixNQUFNLGNBQU4sTUFBTSxHQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7U0FDaEU7UUFDRCxPQUFPLFVBQVUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBTixNQUFNLGNBQU4sTUFBTSxHQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDcEUsQ0FBQzs7O1lBL0JGLElBQUksU0FBQyxFQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBQzs7O3lDQUlqQixNQUFNLFNBQUMsU0FBUzs7QUFnQy9CLFNBQVMsYUFBYSxDQUFDLEdBQVE7SUFDN0IsSUFBSSxPQUFPLEdBQUcsSUFBSSxRQUFRLElBQUksR0FBRyxLQUFLLElBQUk7UUFDeEMsT0FBTyxLQUFLLENBQUM7SUFDZixJQUFJLE9BQU8sR0FBRyxDQUFDLEtBQUssS0FBSyxRQUFRO1FBQy9CLE9BQU8sS0FBSyxDQUFDO0lBQ2YsSUFBSSxFQUFFLEdBQUcsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDO0lBQzVCLE9BQU8sRUFBRSxJQUFJLFFBQVEsSUFBSSxFQUFFLElBQUksUUFBUSxJQUFJLEVBQUUsSUFBSSxRQUFRLENBQUM7QUFDNUQsQ0FBQztBQTJCRCxTQUFTLFlBQVksQ0FBQyxHQUFRO0lBQzVCLElBQUksT0FBTyxHQUFHLElBQUksUUFBUSxJQUFJLEdBQUcsS0FBSyxJQUFJO1FBQ3hDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsSUFBSSxPQUFPLEdBQUcsQ0FBQyxJQUFJLElBQUksUUFBUTtRQUM3QixPQUFPLEtBQUssQ0FBQztJQUNmLElBQUksT0FBTyxHQUFHLENBQUMsS0FBSyxJQUFJLFFBQVE7UUFDOUIsT0FBTyxLQUFLLENBQUM7SUFDZixJQUFJLE9BQU8sR0FBRyxDQUFDLEdBQUcsSUFBSSxRQUFRO1FBQzVCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsSUFBSSxPQUFPLEdBQUcsQ0FBQyxLQUFLLElBQUksUUFBUTtRQUM5QixPQUFPLEtBQUssQ0FBQztJQUNmLElBQUksT0FBTyxHQUFHLENBQUMsT0FBTyxJQUFJLFFBQVE7UUFDaEMsT0FBTyxLQUFLLENBQUM7SUFDZixJQUFJLE9BQU8sR0FBRyxDQUFDLE9BQU8sSUFBSSxRQUFRO1FBQ2hDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsSUFBSSxPQUFPLEdBQUcsQ0FBQyxLQUFLLElBQUksUUFBUTtRQUM5QixPQUFPLEtBQUssQ0FBQztJQUNmLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQztRQUMvQixPQUFPLEtBQUssQ0FBQztJQUNmLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDO0lBQ2pDLElBQUksQ0FBQyxLQUFLLFNBQVMsSUFBSSxDQUFDLElBQUksVUFBVSxJQUFJLENBQUMsSUFBSSxXQUFXO1FBQ3hELE9BQU8sS0FBSyxDQUFDO0lBQ2YsT0FBTyxHQUFHLENBQUMsVUFBVSxDQUFDLFNBQVMsS0FBSyxTQUFTLElBQUksWUFBWSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDMUYsQ0FBQztBQWtGRCxTQUFTLFlBQVksQ0FBQyxHQUFRO0lBQzVCLElBQUksT0FBTyxHQUFHLElBQUksUUFBUSxJQUFJLEdBQUcsS0FBSyxJQUFJO1FBQ3hDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsSUFBSSxPQUFPLEdBQUcsQ0FBQyxLQUFLLEtBQUssUUFBUTtRQUMvQixPQUFPLEtBQUssQ0FBQztJQUNmLElBQUksRUFBRSxHQUFHLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQztJQUM1QixPQUFPLEVBQUUsSUFBSSxRQUFRLElBQUksRUFBRSxJQUFJLFFBQVEsSUFBSSxFQUFFLElBQUksUUFBUSxDQUFDO0FBQzVELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdCwgTE9DQUxFX0lELCBQaXBlLCBQaXBlVHJhbnNmb3JtfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtmb3JtYXREYXRlfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQge2lzT25lb2ZHcm91cCwgUGJMb25nfSBmcm9tIFwiQHByb3RvYnVmLXRzL3J1bnRpbWVcIjtcblxuXG4vKipcbiAqIFRoZSBgUGJEYXRlUGlwZWAgd29ya3MgZXhhY3RseSBsaWtlIHRoZSBvcmlnaW5hbCBhbmd1bGFyIGBEYXRlUGlwZWAsXG4gKiBidXQgYWxzbyB1bmRlcnN0YW5kcyBgZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcGAgYW5kIGBnb29nbGUudHlwZS5EYXRlVGltZWAuXG4gKi9cbkBQaXBlKHtuYW1lOiAnZGF0ZScsIHB1cmU6IHRydWV9KVxuZXhwb3J0IGNsYXNzIFBiRGF0ZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcblxuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoTE9DQUxFX0lEKSBwcml2YXRlIHJlYWRvbmx5IGxvY2FsZTogc3RyaW5nKSB7XG4gIH1cblxuXG4gIHRyYW5zZm9ybSh2YWx1ZTogYW55LCBmb3JtYXQgPSAnbWVkaXVtRGF0ZScsIHRpbWV6b25lPzogc3RyaW5nLCBsb2NhbGU/OiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBpZiAodmFsdWUgPT0gbnVsbCB8fCB2YWx1ZSA9PT0gJycgfHwgdmFsdWUgIT09IHZhbHVlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgaWYgKGlzUGJEYXRlVGltZSh2YWx1ZSkpIHtcbiAgICAgIGxldCBkdCA9IG5ldyBEYXRlKHZhbHVlLnllYXIsIHZhbHVlLm1vbnRoIC0gMSwgdmFsdWUuZGF5LCB2YWx1ZS5ob3VycywgdmFsdWUubWludXRlcywgdmFsdWUuc2Vjb25kcywgdmFsdWUubmFub3MgLyAxMDAwKTtcbiAgICAgIGlmICh2YWx1ZS50aW1lT2Zmc2V0KSB7XG4gICAgICAgIGlmICh2YWx1ZS50aW1lT2Zmc2V0Lm9uZW9mS2luZCA9PT0gXCJ0aW1lWm9uZVwiKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRG8gbm90IHVuZGVyc3RhbmQgSUFOQSB0aW1lIHpvbmUuIENhbm5vdCBjb252ZXJ0IHRvIGphdmFzY3JpcHQgRGF0ZS5cIik7XG4gICAgICAgIH0gZWxzZSBpZiAodmFsdWUudGltZU9mZnNldC5vbmVvZktpbmQgPT09IFwidXRjT2Zmc2V0XCIpIHtcbiAgICAgICAgICBsZXQgcGJPZmZzZXQgPSBQYkxvbmcuZnJvbSh2YWx1ZS50aW1lT2Zmc2V0LnV0Y09mZnNldC5zZWNvbmRzKS50b051bWJlcigpIC8gNjA7XG4gICAgICAgICAgbGV0IGpzT2Zmc2V0ID0gZHQuZ2V0VGltZXpvbmVPZmZzZXQoKTtcbiAgICAgICAgICBkdC5zZXRNaW51dGVzKGR0LmdldE1pbnV0ZXMoKSArIChwYk9mZnNldCAtIGpzT2Zmc2V0KSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGZvcm1hdERhdGUoZHQsIGZvcm1hdCwgbG9jYWxlID8/IHRoaXMubG9jYWxlLCB0aW1lem9uZSk7XG4gICAgfVxuICAgIGlmIChpc1BiVGltZXN0YW1wKHZhbHVlKSkge1xuICAgICAgbGV0IHRzU2Vjb25kcyA9IFBiTG9uZy5mcm9tKHZhbHVlLnNlY29uZHMpLnRvTnVtYmVyKCk7XG4gICAgICBsZXQgZHQgPSBuZXcgRGF0ZSh0c1NlY29uZHMgKiAxMDAwICsgTWF0aC5jZWlsKHZhbHVlLm5hbm9zIC8gMTAwMDAwMCkpO1xuICAgICAgcmV0dXJuIGZvcm1hdERhdGUoZHQsIGZvcm1hdCwgbG9jYWxlID8/IHRoaXMubG9jYWxlLCB0aW1lem9uZSk7XG4gICAgfVxuICAgIHJldHVybiBmb3JtYXREYXRlKHZhbHVlLCBmb3JtYXQsIGxvY2FsZSA/PyB0aGlzLmxvY2FsZSwgdGltZXpvbmUpO1xuICB9XG5cbn1cblxuXG5mdW5jdGlvbiBpc1BiVGltZXN0YW1wKGFyZzogYW55KTogYXJnIGlzIFBiVGltZXN0YW1wIHtcbiAgaWYgKHR5cGVvZiBhcmcgIT0gXCJvYmplY3RcIiB8fCBhcmcgPT09IG51bGwpXG4gICAgcmV0dXJuIGZhbHNlO1xuICBpZiAodHlwZW9mIGFyZy5uYW5vcyAhPT0gXCJudW1iZXJcIilcbiAgICByZXR1cm4gZmFsc2U7XG4gIGxldCBzdCA9IHR5cGVvZiBhcmcuc2Vjb25kcztcbiAgcmV0dXJuIHN0ID09IFwibnVtYmVyXCIgfHwgc3QgPT0gXCJzdHJpbmdcIiB8fCBzdCA9PSBcImJpZ2ludFwiO1xufVxuXG5cbi8qKlxuICogQGdlbmVyYXRlZCBmcm9tIHByb3RvYnVmIG1lc3NhZ2UgZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcFxuICovXG5pbnRlcmZhY2UgUGJUaW1lc3RhbXAge1xuICAvKipcbiAgICogUmVwcmVzZW50cyBzZWNvbmRzIG9mIFVUQyB0aW1lIHNpbmNlIFVuaXggZXBvY2hcbiAgICogMTk3MC0wMS0wMVQwMDowMDowMFouIE11c3QgYmUgZnJvbSAwMDAxLTAxLTAxVDAwOjAwOjAwWiB0b1xuICAgKiA5OTk5LTEyLTMxVDIzOjU5OjU5WiBpbmNsdXNpdmUuXG4gICAqXG4gICAqIEBnZW5lcmF0ZWQgZnJvbSBwcm90b2J1ZiBmaWVsZDogaW50NjQgc2Vjb25kcyA9IDE7XG4gICAqL1xuICBzZWNvbmRzOiBudW1iZXIgfCBzdHJpbmcgfCBiaWdpbnQ7XG4gIC8qKlxuICAgKiBOb24tbmVnYXRpdmUgZnJhY3Rpb25zIG9mIGEgc2Vjb25kIGF0IG5hbm9zZWNvbmQgcmVzb2x1dGlvbi4gTmVnYXRpdmVcbiAgICogc2Vjb25kIHZhbHVlcyB3aXRoIGZyYWN0aW9ucyBtdXN0IHN0aWxsIGhhdmUgbm9uLW5lZ2F0aXZlIG5hbm9zIHZhbHVlc1xuICAgKiB0aGF0IGNvdW50IGZvcndhcmQgaW4gdGltZS4gTXVzdCBiZSBmcm9tIDAgdG8gOTk5LDk5OSw5OTlcbiAgICogaW5jbHVzaXZlLlxuICAgKlxuICAgKiBAZ2VuZXJhdGVkIGZyb20gcHJvdG9idWYgZmllbGQ6IGludDMyIG5hbm9zID0gMjtcbiAgICovXG4gIG5hbm9zOiBudW1iZXI7XG59XG5cblxuZnVuY3Rpb24gaXNQYkRhdGVUaW1lKGFyZzogYW55KTogYXJnIGlzIFBiRGF0ZVRpbWUge1xuICBpZiAodHlwZW9mIGFyZyAhPSBcIm9iamVjdFwiIHx8IGFyZyA9PT0gbnVsbClcbiAgICByZXR1cm4gZmFsc2U7XG4gIGlmICh0eXBlb2YgYXJnLnllYXIgIT0gXCJudW1iZXJcIilcbiAgICByZXR1cm4gZmFsc2U7XG4gIGlmICh0eXBlb2YgYXJnLm1vbnRoICE9IFwibnVtYmVyXCIpXG4gICAgcmV0dXJuIGZhbHNlO1xuICBpZiAodHlwZW9mIGFyZy5kYXkgIT0gXCJudW1iZXJcIilcbiAgICByZXR1cm4gZmFsc2U7XG4gIGlmICh0eXBlb2YgYXJnLmhvdXJzICE9IFwibnVtYmVyXCIpXG4gICAgcmV0dXJuIGZhbHNlO1xuICBpZiAodHlwZW9mIGFyZy5taW51dGVzICE9IFwibnVtYmVyXCIpXG4gICAgcmV0dXJuIGZhbHNlO1xuICBpZiAodHlwZW9mIGFyZy5zZWNvbmRzICE9IFwibnVtYmVyXCIpXG4gICAgcmV0dXJuIGZhbHNlO1xuICBpZiAodHlwZW9mIGFyZy5uYW5vcyAhPSBcIm51bWJlclwiKVxuICAgIHJldHVybiBmYWxzZTtcbiAgaWYgKCFpc09uZW9mR3JvdXAoYXJnLnRpbWVPZmZzZXQpKVxuICAgIHJldHVybiBmYWxzZTtcbiAgbGV0IGsgPSBhcmcudGltZU9mZnNldC5vbmVvZktpbmQ7XG4gIGlmIChrICE9PSB1bmRlZmluZWQgJiYgayAhPSBcInRpbWVab25lXCIgJiYgayAhPSBcInV0Y09mZnNldFwiKVxuICAgIHJldHVybiBmYWxzZTtcbiAgcmV0dXJuIGFyZy50aW1lT2Zmc2V0LnV0Y09mZnNldCA9PT0gdW5kZWZpbmVkIHx8IGlzUGJEdXJhdGlvbihhcmcudGltZU9mZnNldC51dGNPZmZzZXQpO1xufVxuXG5cbi8qKlxuICogQGdlbmVyYXRlZCBmcm9tIHByb3RvYnVmIG1lc3NhZ2UgZ29vZ2xlLnR5cGUuRGF0ZVRpbWVcbiAqL1xuaW50ZXJmYWNlIFBiRGF0ZVRpbWUge1xuICAvKipcbiAgICogT3B0aW9uYWwuIFllYXIgb2YgZGF0ZS4gTXVzdCBiZSBmcm9tIDEgdG8gOTk5OSwgb3IgMCBpZiBzcGVjaWZ5aW5nIGFcbiAgICogZGF0ZXRpbWUgd2l0aG91dCBhIHllYXIuXG4gICAqXG4gICAqIEBnZW5lcmF0ZWQgZnJvbSBwcm90b2J1ZiBmaWVsZDogaW50MzIgeWVhciA9IDE7XG4gICAqL1xuICB5ZWFyOiBudW1iZXI7XG4gIC8qKlxuICAgKiBSZXF1aXJlZC4gTW9udGggb2YgeWVhci4gTXVzdCBiZSBmcm9tIDEgdG8gMTIuXG4gICAqXG4gICAqIEBnZW5lcmF0ZWQgZnJvbSBwcm90b2J1ZiBmaWVsZDogaW50MzIgbW9udGggPSAyO1xuICAgKi9cbiAgbW9udGg6IG51bWJlcjtcbiAgLyoqXG4gICAqIFJlcXVpcmVkLiBEYXkgb2YgbW9udGguIE11c3QgYmUgZnJvbSAxIHRvIDMxIGFuZCB2YWxpZCBmb3IgdGhlIHllYXIgYW5kXG4gICAqIG1vbnRoLlxuICAgKlxuICAgKiBAZ2VuZXJhdGVkIGZyb20gcHJvdG9idWYgZmllbGQ6IGludDMyIGRheSA9IDM7XG4gICAqL1xuICBkYXk6IG51bWJlcjtcbiAgLyoqXG4gICAqIFJlcXVpcmVkLiBIb3VycyBvZiBkYXkgaW4gMjQgaG91ciBmb3JtYXQuIFNob3VsZCBiZSBmcm9tIDAgdG8gMjMuIEFuIEFQSVxuICAgKiBtYXkgY2hvb3NlIHRvIGFsbG93IHRoZSB2YWx1ZSBcIjI0OjAwOjAwXCIgZm9yIHNjZW5hcmlvcyBsaWtlIGJ1c2luZXNzXG4gICAqIGNsb3NpbmcgdGltZS5cbiAgICpcbiAgICogQGdlbmVyYXRlZCBmcm9tIHByb3RvYnVmIGZpZWxkOiBpbnQzMiBob3VycyA9IDQ7XG4gICAqL1xuICBob3VyczogbnVtYmVyO1xuICAvKipcbiAgICogUmVxdWlyZWQuIE1pbnV0ZXMgb2YgaG91ciBvZiBkYXkuIE11c3QgYmUgZnJvbSAwIHRvIDU5LlxuICAgKlxuICAgKiBAZ2VuZXJhdGVkIGZyb20gcHJvdG9idWYgZmllbGQ6IGludDMyIG1pbnV0ZXMgPSA1O1xuICAgKi9cbiAgbWludXRlczogbnVtYmVyO1xuICAvKipcbiAgICogUmVxdWlyZWQuIFNlY29uZHMgb2YgbWludXRlcyBvZiB0aGUgdGltZS4gTXVzdCBub3JtYWxseSBiZSBmcm9tIDAgdG8gNTkuIEFuXG4gICAqIEFQSSBtYXkgYWxsb3cgdGhlIHZhbHVlIDYwIGlmIGl0IGFsbG93cyBsZWFwLXNlY29uZHMuXG4gICAqXG4gICAqIEBnZW5lcmF0ZWQgZnJvbSBwcm90b2J1ZiBmaWVsZDogaW50MzIgc2Vjb25kcyA9IDY7XG4gICAqL1xuICBzZWNvbmRzOiBudW1iZXI7XG4gIC8qKlxuICAgKiBSZXF1aXJlZC4gRnJhY3Rpb25zIG9mIHNlY29uZHMgaW4gbmFub3NlY29uZHMuIE11c3QgYmUgZnJvbSAwIHRvXG4gICAqIDk5OSw5OTksOTk5LlxuICAgKlxuICAgKiBAZ2VuZXJhdGVkIGZyb20gcHJvdG9idWYgZmllbGQ6IGludDMyIG5hbm9zID0gNztcbiAgICovXG4gIG5hbm9zOiBudW1iZXI7XG4gIC8qKlxuICAgKiBAZ2VuZXJhdGVkIGZyb20gcHJvdG9idWYgb25lb2Y6IHRpbWVfb2Zmc2V0XG4gICAqL1xuICB0aW1lT2Zmc2V0OiB7XG4gICAgb25lb2ZLaW5kOiBcInV0Y09mZnNldFwiO1xuICAgIC8qKlxuICAgICAqIFVUQyBvZmZzZXQuIE11c3QgYmUgd2hvbGUgc2Vjb25kcywgYmV0d2VlbiAtMTggaG91cnMgYW5kICsxOCBob3Vycy5cbiAgICAgKiBGb3IgZXhhbXBsZSwgYSBVVEMgb2Zmc2V0IG9mIC00OjAwIHdvdWxkIGJlIHJlcHJlc2VudGVkIGFzXG4gICAgICogeyBzZWNvbmRzOiAtMTQ0MDAgfS5cbiAgICAgKlxuICAgICAqIEBnZW5lcmF0ZWQgZnJvbSBwcm90b2J1ZiBmaWVsZDogZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uIHV0Y19vZmZzZXQgPSA4O1xuICAgICAqL1xuICAgIHV0Y09mZnNldDogUGJEdXJhdGlvbjtcbiAgfSB8IHtcbiAgICBvbmVvZktpbmQ6IFwidGltZVpvbmVcIjtcbiAgICAvKipcbiAgICAgKiBUaW1lIHpvbmUuXG4gICAgICpcbiAgICAgKiBAZ2VuZXJhdGVkIGZyb20gcHJvdG9idWYgZmllbGQ6IGdvb2dsZS50eXBlLlRpbWVab25lIHRpbWVfem9uZSA9IDk7XG4gICAgICovXG4gICAgdGltZVpvbmU6IGFueTtcbiAgfSB8IHtcbiAgICBvbmVvZktpbmQ6IHVuZGVmaW5lZDtcbiAgfTtcbn1cblxuXG5mdW5jdGlvbiBpc1BiRHVyYXRpb24oYXJnOiBhbnkpOiBhcmcgaXMgUGJEdXJhdGlvbiB7XG4gIGlmICh0eXBlb2YgYXJnICE9IFwib2JqZWN0XCIgfHwgYXJnID09PSBudWxsKVxuICAgIHJldHVybiBmYWxzZTtcbiAgaWYgKHR5cGVvZiBhcmcubmFub3MgIT09IFwibnVtYmVyXCIpXG4gICAgcmV0dXJuIGZhbHNlO1xuICBsZXQgc3QgPSB0eXBlb2YgYXJnLnNlY29uZHM7XG4gIHJldHVybiBzdCA9PSBcIm51bWJlclwiIHx8IHN0ID09IFwic3RyaW5nXCIgfHwgc3QgPT0gXCJiaWdpbnRcIjtcbn1cblxuXG4vKipcbiAqIEBnZW5lcmF0ZWQgZnJvbSBwcm90b2J1ZiBtZXNzYWdlIGdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvblxuICovXG5pbnRlcmZhY2UgUGJEdXJhdGlvbiB7XG4gIC8qKlxuICAgKiBTaWduZWQgc2Vjb25kcyBvZiB0aGUgc3BhbiBvZiB0aW1lLiBNdXN0IGJlIGZyb20gLTMxNSw1NzYsMDAwLDAwMFxuICAgKiB0byArMzE1LDU3NiwwMDAsMDAwIGluY2x1c2l2ZS4gTm90ZTogdGhlc2UgYm91bmRzIGFyZSBjb21wdXRlZCBmcm9tOlxuICAgKiA2MCBzZWMvbWluICogNjAgbWluL2hyICogMjQgaHIvZGF5ICogMzY1LjI1IGRheXMveWVhciAqIDEwMDAwIHllYXJzXG4gICAqXG4gICAqIEBnZW5lcmF0ZWQgZnJvbSBwcm90b2J1ZiBmaWVsZDogaW50NjQgc2Vjb25kcyA9IDE7XG4gICAqL1xuICBzZWNvbmRzOiBudW1iZXIgfCBzdHJpbmcgfCBiaWdpbnQ7XG4gIC8qKlxuICAgKiBTaWduZWQgZnJhY3Rpb25zIG9mIGEgc2Vjb25kIGF0IG5hbm9zZWNvbmQgcmVzb2x1dGlvbiBvZiB0aGUgc3BhblxuICAgKiBvZiB0aW1lLiBEdXJhdGlvbnMgbGVzcyB0aGFuIG9uZSBzZWNvbmQgYXJlIHJlcHJlc2VudGVkIHdpdGggYSAwXG4gICAqIGBzZWNvbmRzYCBmaWVsZCBhbmQgYSBwb3NpdGl2ZSBvciBuZWdhdGl2ZSBgbmFub3NgIGZpZWxkLiBGb3IgZHVyYXRpb25zXG4gICAqIG9mIG9uZSBzZWNvbmQgb3IgbW9yZSwgYSBub24temVybyB2YWx1ZSBmb3IgdGhlIGBuYW5vc2AgZmllbGQgbXVzdCBiZVxuICAgKiBvZiB0aGUgc2FtZSBzaWduIGFzIHRoZSBgc2Vjb25kc2AgZmllbGQuIE11c3QgYmUgZnJvbSAtOTk5LDk5OSw5OTlcbiAgICogdG8gKzk5OSw5OTksOTk5IGluY2x1c2l2ZS5cbiAgICpcbiAgICogQGdlbmVyYXRlZCBmcm9tIHByb3RvYnVmIGZpZWxkOiBpbnQzMiBuYW5vcyA9IDI7XG4gICAqL1xuICBuYW5vczogbnVtYmVyO1xufVxuIl19

@@ -11,2 +11,2 @@ import { NgModule } from "@angular/core";

];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGItZGF0ZS1waXBlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvcGItZGF0ZS1waXBlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQU0xQyxNQUFNLE9BQU8sZ0JBQWdCOzs7WUFKNUIsUUFBUSxTQUFDO2dCQUNSLFlBQVksRUFBRSxDQUFDLFVBQVUsQ0FBQztnQkFDMUIsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFDO2FBQ3RCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7UGJEYXRlUGlwZX0gZnJvbSBcIi4vcGItZGF0ZS1waXBlXCI7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1BiRGF0ZVBpcGVdLFxuICBleHBvcnRzOiBbUGJEYXRlUGlwZV0sXG59KVxuZXhwb3J0IGNsYXNzIFBiRGF0ZVBpcGVNb2R1bGUge1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGItZGF0ZS1waXBlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIvVXNlcnMvdHMvUGhwc3Rvcm1Qcm9qZWN0cy9wcm90b2J1Zi10cy9wYWNrYWdlcy9ydW50aW1lLWFuZ3VsYXIvc3JjLyIsInNvdXJjZXMiOlsibGliL3BiLWRhdGUtcGlwZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFNMUMsTUFBTSxPQUFPLGdCQUFnQjs7O1lBSjVCLFFBQVEsU0FBQztnQkFDUixZQUFZLEVBQUUsQ0FBQyxVQUFVLENBQUM7Z0JBQzFCLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQzthQUN0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge1BiRGF0ZVBpcGV9IGZyb20gXCIuL3BiLWRhdGUtcGlwZVwiO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtQYkRhdGVQaXBlXSxcbiAgZXhwb3J0czogW1BiRGF0ZVBpcGVdLFxufSlcbmV4cG9ydCBjbGFzcyBQYkRhdGVQaXBlTW9kdWxlIHtcbn1cbiJdfQ==
import { InjectionToken } from "@angular/core";
export const RPC_TRANSPORT = new InjectionToken('RpcTransport');
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnBjLXRyYW5zcG9ydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvcnBjLXRyYW5zcG9ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBSTdDLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxJQUFJLGNBQWMsQ0FBZSxjQUFjLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0aW9uVG9rZW59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge1JwY1RyYW5zcG9ydH0gZnJvbSBcIkBwcm90b2J1Zi10cy9ydW50aW1lLXJwY1wiO1xuXG5cbmV4cG9ydCBjb25zdCBSUENfVFJBTlNQT1JUID0gbmV3IEluamVjdGlvblRva2VuPFJwY1RyYW5zcG9ydD4oJ1JwY1RyYW5zcG9ydCcpO1xuXG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnBjLXRyYW5zcG9ydC5qcyIsInNvdXJjZVJvb3QiOiIvVXNlcnMvdHMvUGhwc3Rvcm1Qcm9qZWN0cy9wcm90b2J1Zi10cy9wYWNrYWdlcy9ydW50aW1lLWFuZ3VsYXIvc3JjLyIsInNvdXJjZXMiOlsibGliL3JwYy10cmFuc3BvcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUk3QyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxjQUFjLENBQWUsY0FBYyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGlvblRva2VufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtScGNUcmFuc3BvcnR9IGZyb20gXCJAcHJvdG9idWYtdHMvcnVudGltZS1ycGNcIjtcblxuXG5leHBvcnQgY29uc3QgUlBDX1RSQU5TUE9SVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxScGNUcmFuc3BvcnQ+KCdScGNUcmFuc3BvcnQnKTtcblxuIl19

@@ -9,2 +9,2 @@ import { InjectionToken } from "@angular/core";

export const TWIRP_TRANSPORT_OPTIONS = new InjectionToken('TwirpOptions');
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHdpcnAtdHJhbnNwb3J0LW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3R3aXJwLXRyYW5zcG9ydC1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHL0M7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLGNBQWMsQ0FBZSxjQUFjLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFR3aXJwT3B0aW9ucyB9IGZyb20gXCJAcHJvdG9idWYtdHMvdHdpcnAtdHJhbnNwb3J0XCI7XG5cbi8qKlxuICogSW5qZWN0aW9uIHRva2VuIGZvciBgVHdpcnBPcHRpb25zYCBmb3IgdGhlIGBUd2lycFRyYW5zcG9ydGAuXG4gKlxuICogRm9yIGVhc3kgc2V0dXAsIGp1c3QgYWRkIFR3aXJwQW5ndWxhck1vZHVsZS5mb3JSb290KCkgdG8gdGhlIFwiaW1wb3J0c1wiXG4gKiBvZiB5b3VyIGBBcHBDb21wb25lbnRgLiBUaGUgbWV0aG9kIHRha2VzIGEgYFR3aXJwT3B0aW9uc2AgYXJndW1lbnQuXG4gKi9cbmV4cG9ydCBjb25zdCBUV0lSUF9UUkFOU1BPUlRfT1BUSU9OUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxUd2lycE9wdGlvbnM+KCdUd2lycE9wdGlvbnMnKTtcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHdpcnAtdHJhbnNwb3J0LW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiL1VzZXJzL3RzL1BocHN0b3JtUHJvamVjdHMvcHJvdG9idWYtdHMvcGFja2FnZXMvcnVudGltZS1hbmd1bGFyL3NyYy8iLCJzb3VyY2VzIjpbImxpYi90d2lycC10cmFuc3BvcnQtb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxjQUFjLENBQWUsY0FBYyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBUd2lycE9wdGlvbnMgfSBmcm9tIFwiQHByb3RvYnVmLXRzL3R3aXJwLXRyYW5zcG9ydFwiO1xuXG4vKipcbiAqIEluamVjdGlvbiB0b2tlbiBmb3IgYFR3aXJwT3B0aW9uc2AgZm9yIHRoZSBgVHdpcnBUcmFuc3BvcnRgLlxuICpcbiAqIEZvciBlYXN5IHNldHVwLCBqdXN0IGFkZCBUd2lycEFuZ3VsYXJNb2R1bGUuZm9yUm9vdCgpIHRvIHRoZSBcImltcG9ydHNcIlxuICogb2YgeW91ciBgQXBwQ29tcG9uZW50YC4gVGhlIG1ldGhvZCB0YWtlcyBhIGBUd2lycE9wdGlvbnNgIGFyZ3VtZW50LlxuICovXG5leHBvcnQgY29uc3QgVFdJUlBfVFJBTlNQT1JUX09QVElPTlMgPSBuZXcgSW5qZWN0aW9uVG9rZW48VHdpcnBPcHRpb25zPignVHdpcnBPcHRpb25zJyk7XG4iXX0=

@@ -204,2 +204,2 @@ import { HttpClient, HttpErrorResponse, HttpHeaders } from "@angular/common/http";

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHdpcnAtdHJhbnNwb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3R3aXJwLXRyYW5zcG9ydC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEYsT0FBTyxFQUVMLFFBQVEsRUFFUixlQUFlLEVBRWYsUUFBUSxFQU1SLFNBQVMsRUFDVixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBQyxZQUFZLEVBQWEsY0FBYyxFQUFFLFFBQVEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZGLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUMsY0FBYyxFQUFlLE1BQU0sOEJBQThCLENBQUM7QUFDMUUsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBR3pDOzs7Ozs7Ozs7O0dBVUc7QUFFSCxNQUFNLE9BQU8sY0FBYztJQUt6QixZQUE2QyxPQUFxQixFQUFFLElBQWdCO1FBQ2xGLElBQUksQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDO1FBQzlCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFFRCxZQUFZLENBQUMsT0FBNkI7UUFDeEMsT0FBTyxlQUFlLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsS0FBSyxDQUFxQyxNQUFrQixFQUFFLEtBQVEsRUFBRSxPQUFtQjs7UUFDekYsSUFBSSxHQUFHLEdBQUcsT0FBdUIs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RDs7O0dBR0c7QUFDSCxTQUFTLGdDQUFnQyxDQUFDLE9BQW9CO0lBQzVELElBQUksSUFBSSxHQUFnQixFQUFFLENBQUM7SUFDM0IsS0FBSyxJQUFJLEdBQUcsSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDOUIsSUFBSSxHQUFHLENBQUMsV0FBVyxFQUFFLEtBQUssY0FBYztZQUN0QyxTQUFTO1FBQ1gsSUFBSSxHQUFHLENBQUMsV0FBVyxFQUFFLEtBQUssZ0JBQWdCO1lBQ3hDLFNBQVM7UUFDWCxJQUFJLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxNQUFNO1lBQ1QsU0FBUztRQUNYLEtBQUssSUFBSSxHQUFHLElBQUksTUFBTSxFQUFFO1lBQ3RCLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUM7Z0JBQ3pCLElBQUksQ0FBQyxHQUFHLENBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7O2dCQUVsQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO1NBQ25CO0tBQ0Y7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0h0dHBDbGllbnQsIEh0dHBFcnJvclJlc3BvbnNlLCBIdHRwSGVhZGVyc30gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XG5pbXBvcnQge1xuICBDbGllbnRTdHJlYW1pbmdDYWxsLFxuICBEZWZlcnJlZCxcbiAgRHVwbGV4U3RyZWFtaW5nQ2FsbCxcbiAgbWVyZ2VScGNPcHRpb25zLFxuICBNZXRob2RJbmZvLFxuICBScGNFcnJvcixcbiAgUnBjTWV0YWRhdGEsXG4gIFJwY09wdGlvbnMsXG4gIFJwY1N0YXR1cyxcbiAgUnBjVHJhbnNwb3J0LFxuICBTZXJ2ZXJTdHJlYW1pbmdDYWxsLFxuICBVbmFyeUNhbGxcbn0gZnJvbSBcIkBwcm90b2J1Zi10cy9ydW50aW1lLXJwY1wiO1xuaW1wb3J0IHtpc0pzb25PYmplY3QsIEpzb25WYWx1ZSwgbG93ZXJDYW1lbENhc2UsIHV0ZjhyZWFkfSBmcm9tIFwiQHByb3RvYnVmLXRzL3J1bnRpbWVcIjtcbmltcG9ydCB7ZnJvbUV2ZW50LCBORVZFUiwgb2Z9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge1R3aXJwRXJyb3JDb2RlLCBUd2lycE9wdGlvbnN9IGZyb20gXCJAcHJvdG9idWYtdHMvdHdpcnAtdHJhbnNwb3J0XCI7XG5pbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7VFdJUlBfVFJBTlNQT1JUX09QVElPTlN9IGZyb20gXCIuL3R3aXJwLXRyYW5zcG9ydC1vcHRpb25zXCI7XG5pbXBvcnQge3Rha2VVbnRpbH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5cblxuLyoqXG4gKiBJbXBsZW1lbnRzIHRoZSBUd2lycCBwcm90b2NvbCwgc3VwcG9ydGluZyBKU09OIG9yIGJpbmFyeSBmb3JtYXQgb25cbiAqIHRoZSB3aXJlLiBTZWUgaHR0cHM6Ly90d2l0Y2h0di5naXRodWIuaW8vdHdpcnAvZG9jcy9zcGVjX3Y1Lmh0bWxcbiAqXG4gKiBVc2VzIGBIdHRwQ2xpZW50YCBvZiBAYW5ndWxhci9jb21tb24vaHR0cCBmb3IgcmVxdWVzdHMuXG4gKlxuICogVGhpcyBpcyBhbiBpbmplY3RhYmxlIHNlcnZpY2UuIFRvIGluamVjdCwgeW91IG11c3QgcHJvdmlkZSB0aGVcbiAqIGluamVjdGlvbiB0b2tlbiBUV0lSUF9UUkFOU1BPUlRfT1BUSU9OUy4gRm9yIGVhc3kgaW50ZWdyYXRpb24sXG4gKiBqdXN0IGFkZCBUd2lycEFuZ3VsYXJNb2R1bGUuZm9yUm9vdCgpIHRvIHRoZSBcImltcG9ydHNcIiBvZiB5b3VyXG4gKiBgQXBwQ29tcG9uZW50YC4gVGhlIG1ldGhvZCB0YWtlcyBhIGBUd2lycE9wdGlvbnNgIGFyZ3VtZW50LlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVHdpcnBUcmFuc3BvcnQgaW1wbGVtZW50cyBScGNUcmFuc3BvcnQge1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBkZWZhdWx0T3B0aW9uczogVHdpcnBPcHRpb25zO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaHR0cDogSHR0cENsaWVudDtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KFRXSVJQX1RSQU5TUE9SVF9PUFRJT05TKSBvcHRpb25zOiBUd2lycE9wdGlvbnMsIGh0dHA6IEh0dHBDbGllbnQpIHtcbiAgICB0aGlzLmRlZmF1bHRPcHRpb25zID0gb3B0aW9ucztcbiAgICB0aGlzLmh0dHAgPSBodHRwO1xuICB9XG5cbiAgbWVyZ2VPcHRpb25zKG9wdGlvbnM/OiBQYXJ0aWFsPFJwY09wdGlvbnM+KTogUnBjT3B0aW9ucyB7XG4gICAgcmV0dXJuIG1lcmdlUnBjT3B0aW9ucyh0aGlzLmRlZmF1bHRPcHRpb25zLCBvcHRpb25zKTtcbiAgfVxuXG4gIHVuYXJ5PEkgZXh0ZW5kcyBvYmplY3QsIE8gZXh0ZW5kcyBvYmplY3Q+KG1ldGhvZDogTWV0aG9kSW5mbywgaW5wdXQ6IEksIG9wdGlvbnM6IFJwY09wdGlvbnMpOiBVbmFyeUNhbGw8SSwgTz4ge1xuICAgIGxldCBvcHQgPSBvcHRpb25zIGFzIFR3aXJwT3B0aW9ucyxcbiAgICAgIHVybCA9IHRoaXMubWFrZVVybChtZXRob2QsIG9wdCksXG4gICAgICByZXF1ZXN0Qm9keSA9IG9wdC5zZW5kSnNvbiA/IG1ldGhvZC5JLnRvSnNvblN0cmluZyhpbnB1dCwgb3B0Lmpzb25PcHRpb25zKSA6IG1ldGhvZC5JLnRvQmluYXJ5KGlucHV0LCBvcHQuYmluYXJ5T3B0aW9ucykuYnVmZmVyLFxuICAgICAgZGVmSGVhZGVyID0gbmV3IERlZmVycmVkPFJwY01ldGFkYXRhPigpLFxuICAgICAgZGVmTWVzc2FnZSA9IG5ldyBEZWZlcnJlZDxPPigpLFxuICAgICAgZGVmU3RhdHVzID0gbmV3IERlZmVycmVkPFJwY1N0YXR1cz4oKSxcbiAgICAgIGRlZlRyYWlsZXIgPSBuZXcgRGVmZXJyZWQ8UnBjTWV0YWRhdGE+KCksXG4gICAgICBhYm9ydE9ic2VydmFibGUgPSAhb3B0aW9ucy5hYm9ydCA/IE5FVkVSIDogKFxuICAgICAgICBvcHRpb25zLmFib3J0LmFib3J0ZWRcbiAgICAgICAgICA/IG9mKHVuZGVmaW5lZClcbiAgICAgICAgICA6IGZyb21FdmVudChvcHRpb25zLmFib3J0LCBcImFib3J0XCIpXG4gICAgICApO1xuXG4gICAgdGhpcy5odHRwLnJlcXVlc3QoJ1BPU1QnLCB1cmwsIHtcbiAgICAgIGJvZHk6IHJlcXVlc3RCb2R5LFxuICAgICAgaGVhZGVyczogY3JlYXRlVHdpcnBSZXF1ZXN0SGVhZGVyKCEhb3B0LnNlbmRKc29uLCBvcHQubWV0YSksXG4gICAgICByZXNwb25zZVR5cGU6IFwiYXJyYXlidWZmZXJcIixcbiAgICAgIG9ic2VydmU6IFwicmVzcG9uc2VcIixcbiAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbChhYm9ydE9ic2VydmFibGUpXG4gICAgICApXG4gICAgICAudG9Qcm9taXNlKClcbiAgICAgIC50aGVuKG5nUmVzcG9uc2UgPT4ge1xuXG4gICAgICAgIGlmIChuZ1Jlc3BvbnNlID09PSB1bmRlZmluZWQgJiYgb3B0aW9ucy5hYm9ydD8uYWJvcnRlZClcbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgICAgIGRlZkhlYWRlci5yZXNvbHZlKHBhcnNlTWV0YWRhdGFGcm9tUmVzcG9uc2VIZWFkZXJzKG5nUmVzcG9uc2UuaGVhZGVycykpO1xuXG4gICAgICAgIGlmICghbmdSZXNwb25zZS5ib2R5KVxuICAgICAgICAgIHRocm93IG5ldyBScGNFcnJvcigncHJlbWF0dXJlIGVuZCBvZiByZXNwb25zZScsIFR3aXJwRXJyb3JDb2RlW1R3aXJwRXJyb3JDb2RlLmRhdGFsb3NzXSk7XG5cbiAgICAgICAgaWYgKCFuZ1Jlc3BvbnNlLm9rKVxuICAgICAgICAgIHRocm93IHBhcnNlVHdpcnBFcnJvclJlc3BvbnNlKG5nUmVzcG9uc2UuYm9keSk7XG5cbiAgICAgICAgaWYgKG9wdC5zZW5kSnNvbikge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gbWV0aG9kLk8uZnJvbUpzb25TdHJpbmcodXRmOHJlYWQobmV3IFVpbnQ4QXJyYXkobmdSZXNwb25zZS5ib2R5KSksIG9wdC5qc29uT3B0aW9ucyk7XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFJwY0Vycm9yKCd1bmFibGUgdG8gcmVhZCByZXNwb25zZSBib2R5IGFzIGpzb24nLCBUd2lycEVycm9yQ29kZVtUd2lycEVycm9yQ29kZS5kYXRhbG9zc10pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmV0dXJuIG1ldGhvZC5PLmZyb21CaW5hcnkobmV3IFVpbnQ4QXJyYXkobmdSZXNwb25zZS5ib2R5KSwgb3B0LmJpbmFyeU9wdGlvbnMpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFJwY0Vycm9yKCd1bmFibGUgdG8gcmVhZCByZXNwb25zZSBib2R5JywgVHdpcnBFcnJvckNvZGVbVHdpcnBFcnJvckNvZGUuZGF0YWxvc3NdKTtcbiAgICAgICAgfVxuXG4gICAgICB9LCByZWFzb24gPT4ge1xuICAgICAgICBpZiAocmVhc29uIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICAgICAgICBpZiAocmVhc29uLmVycm9yIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpXG4gICAgICAgICAgICB0aHJvdyBwYXJzZVR3aXJwRXJyb3JSZXNwb25zZShyZWFzb24uZXJyb3IpO1xuICAgICAgICAgIHRocm93IG5ldyBScGNFcnJvcihyZWFzb24ubWVzc2FnZSwgVHdpcnBFcnJvckNvZGVbVHdpcnBFcnJvckNvZGUudW5rbm93bl0pO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBScGNFcnJvcihcInVua25vd24gZXJyb3JcIiwgVHdpcnBFcnJvckNvZGVbVHdpcnBFcnJvckNvZGUudW5rbm93bl0pO1xuICAgICAgfSlcblxuICAgICAgLnRoZW4obWVzc2FnZSA9PiB7XG4gICAgICAgIGlmIChtZXNzYWdlID09PSB1bmRlZmluZWQgJiYgIG9wdGlvbnMuYWJvcnQ/LmFib3J0ZWQpXG4gICAgICAgICAgdGhyb3cgbmV3IFJwY0Vycm9yKFwicmVxdWVzdCBjYW5jZWxsZWRcIiwgVHdpcnBFcnJvckNvZGVbVHdpcnBFcnJvckNvZGUuY2FuY2VsbGVkXSk7XG4gICAgICAgIGRlZk1lc3NhZ2UucmVzb2x2ZShtZXNzYWdlKTtcbiAgICAgICAgZGVmU3RhdHVzLnJlc29sdmUoe2NvZGU6ICdPSycsIGRldGFpbDogJyd9KTtcbiAgICAgICAgZGVmVHJhaWxlci5yZXNvbHZlKHt9KTtcblxuICAgICAgfSlcblxuICAgICAgLmNhdGNoKChyZWFzb246IGFueSkgPT4ge1xuICAgICAgICAvLyBScGNFcnJvcnMgYXJlIHRocm93biBieSB1cywgZXZlcnl0aGluZyBlbHNlIGlzIGFuIGludGVybmFsIGVycm9yXG4gICAgICAgIGxldCBlcnJvciA9IHJlYXNvbiBpbnN0YW5jZW9mIFJwY0Vycm9yID8gcmVhc29uXG4gICAgICAgICAgOiBuZXcgUnBjRXJyb3IocmVhc29uIGluc3RhbmNlb2YgRXJyb3IgPyByZWFzb24ubWVzc2FnZSA6IHJlYXNvbiwgVHdpcnBFcnJvckNvZGVbVHdpcnBFcnJvckNvZGUuaW50ZXJuYWxdKTtcbiAgICAgICAgZGVmSGVhZGVyLnJlamVjdFBlbmRpbmcoZXJyb3IpO1xuICAgICAgICBkZWZNZXNzYWdlLnJlamVjdFBlbmRpbmcoZXJyb3IpO1xuICAgICAgICBkZWZTdGF0dXMucmVqZWN0UGVuZGluZyhlcnJvcik7XG4gICAgICAgIGRlZlRyYWlsZXIucmVqZWN0UGVuZGluZyhlcnJvcik7XG4gICAgICB9KTtcblxuICAgIHJldHVybiBuZXcgVW5hcnlDYWxsPEksIE8+KFxuICAgICAgbWV0aG9kLFxuICAgICAgb3B0Lm1ldGEgPz8ge30sXG4gICAgICBpbnB1dCxcbiAgICAgIGRlZkhlYWRlci5wcm9taXNlLFxuICAgICAgZGVmTWVzc2FnZS5wcm9taXNlLFxuICAgICAgZGVmU3RhdHVzLnByb21pc2UsXG4gICAgICBkZWZUcmFpbGVyLnByb21pc2UsXG4gICAgKTtcbiAgfVxuXG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBVUkkgZm9yIGEgUlBDIGNhbGwuXG4gICAqXG4gICAqIFRha2VzIHRoZSBgYmFzZVVybGAgb3B0aW9uIGFuZCBhcHBlbmRzOlxuICAgKiAtIHNsYXNoIFwiL1wiXG4gICAqIC0gcGFja2FnZSBuYW1lXG4gICAqIC0gZG90IFwiLlwiXG4gICAqIC0gc2VydmljZSBuYW1lXG4gICAqIC0gc2xhc2ggXCIvXCJcbiAgICogLSBtZXRob2QgbmFtZVxuICAgKlxuICAgKiBJZiB0aGUgc2VydmljZSB3YXMgZGVjbGFyZWQgd2l0aG91dCBhIHBhY2thZ2UsIHRoZSBwYWNrYWdlIG5hbWUgYW5kIGRvdFxuICAgKiBhcmUgb21pdHRlZC5cbiAgICpcbiAgICogVGhlIG1ldGhvZCBuYW1lIGlzIENhbWVsQ2FzZWQganVzdCBhcyBpdCB3b3VsZCBiZSBpbiBHbywgdW5sZXNzIHRoZVxuICAgKiBvcHRpb24gYHVzZVByb3RvTWV0aG9kTmFtZWAgaXMgYHRydWVgLlxuICAgKi9cbiAgcHJvdGVjdGVkIG1ha2VVcmwobWV0aG9kOiBNZXRob2RJbmZvLCBvcHRpb25zOiBUd2lycE9wdGlvbnMpOiBzdHJpbmcge1xuICAgIGxldCBiYXNlID0gb3B0aW9ucy5iYXNlVXJsO1xuICAgIGlmIChiYXNlLmVuZHNXaXRoKCcvJykpXG4gICAgICBiYXNlID0gYmFzZS5zdWJzdHJpbmcoMCwgYmFzZS5sZW5ndGggLSAxKTtcbiAgICBsZXQgbWV0aG9kTmFtZSA9IG1ldGhvZC5uYW1lO1xuICAgIGlmIChvcHRpb25zLnVzZVByb3RvTWV0aG9kTmFtZSAhPT0gdHJ1ZSkge1xuICAgICAgbWV0aG9kTmFtZSA9IGxvd2VyQ2FtZWxDYXNlKG1ldGhvZE5hbWUpO1xuICAgICAgbWV0aG9kTmFtZSA9IG1ldGhvZE5hbWUuc3Vic3RyaW5nKDAsIDEpLnRvVXBwZXJDYXNlKCkgKyBtZXRob2ROYW1lLnN1YnN0cmluZygxKTtcbiAgICB9XG4gICAgcmV0dXJuIGAke2Jhc2V9LyR7bWV0aG9kLnNlcnZpY2UudHlwZU5hbWV9LyR7bWV0aG9kTmFtZX1gO1xuICB9XG5cblxuICBjbGllbnRTdHJlYW1pbmc8SSBleHRlbmRzIG9iamVjdCwgTyBleHRlbmRzIG9iamVjdD4oLypzZXJ2aWNlOiBTZXJ2aWNlSW5mbywgbWV0aG9kOiBNZXRob2RJbmZvPEksIE8+LCBvcHRpb25zOiBScGNPcHRpb25zKi8pOiBDbGllbnRTdHJlYW1pbmdDYWxsPEksIE8+IHtcbiAgICB0aHJvdyBuZXcgUnBjRXJyb3IoJ0NsaWVudCBzdHJlYW1pbmcgaXMgbm90IHN1cHBvcnRlZCBieSBUd2lycCcsIFR3aXJwRXJyb3JDb2RlW1R3aXJwRXJyb3JDb2RlLnVuaW1wbGVtZW50ZWRdKTtcbiAgfVxuXG4gIGR1cGxleDxJIGV4dGVuZHMgb2JqZWN0LCBPIGV4dGVuZHMgb2JqZWN0PigvKnNlcnZpY2U6IFNlcnZpY2VJbmZvLCBtZXRob2Q6IE1ldGhvZEluZm88SSwgTz4sIG9wdGlvbnM6IFJwY09wdGlvbnMqLyk6IER1cGxleFN0cmVhbWluZ0NhbGw8SSwgTz4ge1xuICAgIHRocm93IG5ldyBScGNFcnJvcignRHVwbGV4IHN0cmVhbWluZyBpcyBub3Qgc3VwcG9ydGVkIGJ5IFR3aXJwJywgVHdpcnBFcnJvckNvZGVbVHdpcnBFcnJvckNvZGUudW5pbXBsZW1lbnRlZF0pO1xuICB9XG5cbiAgc2VydmVyU3RyZWFtaW5nPEkgZXh0ZW5kcyBvYmplY3QsIE8gZXh0ZW5kcyBvYmplY3Q+KC8qc2VydmljZTogU2VydmljZUluZm8sIG1ldGhvZDogTWV0aG9kSW5mbzxJLCBPPiwgaW5wdXQ6IEksIG9wdGlvbnM/OiBScGNPcHRpb25zKi8pOiBTZXJ2ZXJTdHJlYW1pbmdDYWxsPEksIE8+IHtcbiAgICB0aHJvdyBuZXcgUnBjRXJyb3IoJ1NlcnZlciBzdHJlYW1pbmcgaXMgbm90IHN1cHBvcnRlZCBieSBUd2lycCcsIFR3aXJwRXJyb3JDb2RlW1R3aXJwRXJyb3JDb2RlLnVuaW1wbGVtZW50ZWRdKTtcbiAgfVxuXG59XG5cblxuLyoqXG4gKiBDcmVhdGUgQW5ndWxhciBoZWFkZXJzIGZvciBhIFR3aXJwIHJlcXVlc3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUd2lycFJlcXVlc3RIZWFkZXIoc2VuZEpzb246IGJvb2xlYW4sIG1ldGE/OiBScGNNZXRhZGF0YSk6IEh0dHBIZWFkZXJzIHtcbiAgbGV0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKTtcbiAgLy8gYWRkIG1ldGEgYXMgaGVhZGVyc1xuICBpZiAobWV0YSkge1xuICAgIGZvciAobGV0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyhtZXRhKSkge1xuICAgICAgaWYgKHR5cGVvZiB2ID09IFwic3RyaW5nXCIpXG4gICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLmFwcGVuZChrLCB2KTtcbiAgICAgIGVsc2VcbiAgICAgICAgZm9yIChsZXQgaSBvZiB2KVxuICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLmFwcGVuZChrLCBpKTtcbiAgICB9XG4gIH1cbiAgLy8gc2V0IHN0YW5kYXJkIGhlYWRlcnMgKHBvc3NpYmx5IG92ZXJ3cml0aW5nIG1ldGEpXG4gIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQ29udGVudC1UeXBlJywgc2VuZEpzb24gPyBcImFwcGxpY2F0aW9uL2pzb25cIiA6IFwiYXBwbGljYXRpb24vcHJvdG9idWZcIik7XG4gIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQWNjZXB0Jywgc2VuZEpzb24gPyBcImFwcGxpY2F0aW9uL2pzb25cIiA6IFwiYXBwbGljYXRpb24vcHJvdG9idWYsIGFwcGxpY2F0aW9uL2pzb25cIik7XG4gIHJldHVybiBoZWFkZXJzO1xufVxuXG5cbi8qKlxuICogUGFyc2UgVHdpcnAgZXJyb3IgbWVzc2FnZSBmcm9tIEpTT04gKGdpdmVuIGFzIGFycmF5IGJ1ZmZlcikgYW5kIGNyZWF0ZVxuICogUnBjRXJyb3IgZnJvbSB0aGUgVHdpcnAgZXJyb3IuXG4gKlxuICogc2VlIGh0dHBzOi8vdHdpdGNodHYuZ2l0aHViLmlvL3R3aXJwL2RvY3Mvc3BlY192NS5odG1sXG4gKi9cbmZ1bmN0aW9uIHBhcnNlVHdpcnBFcnJvclJlc3BvbnNlKGRhdGE6IEFycmF5QnVmZmVyKTogUnBjRXJyb3Ige1xuICBsZXQganNvbjogSnNvblZhbHVlO1xuICB0cnkge1xuICAgIGpzb24gPSBKU09OLnBhcnNlKHV0ZjhyZWFkKG5ldyBVaW50OEFycmF5KGRhdGEpKSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gbmV3IFJwY0Vycm9yKCdjYW5ub3QgcmVhZCB0d2lycCBlcnJvciByZXNwb25zZScsIFR3aXJwRXJyb3JDb2RlW1R3aXJwRXJyb3JDb2RlLmludGVybmFsXSk7XG4gIH1cbiAgaWYgKCFpc0pzb25PYmplY3QoanNvbikgfHwgdHlwZW9mIGpzb24uY29kZSAhPT0gXCJzdHJpbmdcIiB8fCB0eXBlb2YganNvbi5tc2cgIT09IFwic3RyaW5nXCIpXG4gICAgcmV0dXJuIG5ldyBScGNFcnJvcignY2Fubm90IHJlYWQgdHdpcnAgZXJyb3IgcmVzcG9uc2UnLCBUd2lycEVycm9yQ29kZVtUd2lycEVycm9yQ29kZS5pbnRlcm5hbF0pO1xuICBsZXQgbWV0YTogUnBjTWV0YWRhdGEgPSB7fTtcbiAgaWYgKGlzSnNvbk9iamVjdChqc29uLm1ldGEpKSB7XG4gICAgZm9yIChsZXQgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKGpzb24ubWV0YSkpIHtcbiAgICAgIGlmICh0eXBlb2YgdiA9PSBcInN0cmluZ1wiKVxuICAgICAgICBtZXRhW2tdID0gdjtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG5ldyBScGNFcnJvcihqc29uLm1zZywganNvbi5jb2RlLCBtZXRhKTtcbn1cblxuXG4vKipcbiAqIFBhcnNlcyBBbmd1bGFyIHJlc3BvbnNlIGhlYWRlcnMgdG8gUnBjTWV0YURhdGEuXG4gKiBEcm9wcyB0aGUgaGVhZGVycyBDb250ZW50LVR5cGUgYW5kIENvbnRlbnQtTGVuZ3RoLlxuICovXG5mdW5jdGlvbiBwYXJzZU1ldGFkYXRhRnJvbVJlc3BvbnNlSGVhZGVycyhoZWFkZXJzOiBIdHRwSGVhZGVycyk6IFJwY01ldGFkYXRhIHtcbiAgbGV0IG1ldGE6IFJwY01ldGFkYXRhID0ge307XG4gIGZvciAobGV0IGtleSBvZiBoZWFkZXJzLmtleXMoKSkge1xuICAgIGlmIChrZXkudG9Mb3dlckNhc2UoKSA9PT0gJ2NvbnRlbnQtdHlwZScpXG4gICAgICBjb250aW51ZTtcbiAgICBpZiAoa2V5LnRvTG93ZXJDYXNlKCkgPT09ICdjb250ZW50LWxlbmd0aCcpXG4gICAgICBjb250aW51ZTtcbiAgICBsZXQgdmFsdWVzID0gaGVhZGVycy5nZXRBbGwoa2V5KTtcbiAgICBpZiAoIXZhbHVlcylcbiAgICAgIGNvbnRpbnVlO1xuICAgIGZvciAobGV0IHZhbCBvZiB2YWx1ZXMpIHtcbiAgICAgIGlmIChtZXRhLmhhc093blByb3BlcnR5KGtleSkpXG4gICAgICAgIChtZXRhW2tleV0gYXMgc3RyaW5nW10pLnB1c2godmFsKTtcbiAgICAgIGVsc2VcbiAgICAgICAgbWV0YVtrZXldID0gdmFsO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbWV0YTtcbn1cblxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHdpcnAtdHJhbnNwb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiL1VzZXJzL3RzL1BocHN0b3JtUHJvamVjdHMvcHJvdG9idWYtdHMvcGFja2FnZXMvcnVudGltZS1hbmd1bGFyL3NyYy8iLCJzb3VyY2VzIjpbImxpYi90d2lycC10cmFuc3BvcnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ2hGLE9BQU8sRUFFTCxRQUFRLEVBRVIsZUFBZSxFQUVmLFFBQVEsRUFNUixTQUFTLEVBQ1YsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUMsWUFBWSxFQUFhLGNBQWMsRUFBRSxRQUFRLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RixPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFDLGNBQWMsRUFBZSxNQUFNLDhCQUE4QixDQUFDO0FBQzFFLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUd6Qzs7Ozs7Ozs7OztHQVVHO0FBRUgsTUFBTSxPQUFPLGNBQWM7SUFLekIsWUFBNkMsT0FBcUIsRUFBRSxJQUFnQjtRQUNsRixJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQztRQUM5QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQsWUFBWSxDQUFDLE9BQTZCO1FBQ3hDLE9BQU8sZUFBZSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELEtBQUssQ0FBcUMs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LEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNqRCxDQUFDO0FBR0Q7OztHQUdHO0FBQ0gsU0FBUyxnQ0FBZ0MsQ0FBQyxPQUFvQjtJQUM1RCxJQUFJLElBQUksR0FBZ0IsRUFBRSxDQUFDO0lBQzNCLEtBQUssSUFBSSxHQUFHLElBQUksT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFO1FBQzlCLElBQUksR0FBRyxDQUFDLFdBQVcsRUFBRSxLQUFLLGNBQWM7WUFDdEMsU0FBUztRQUNYLElBQUksR0FBRyxDQUFDLFdBQVcsRUFBRSxLQUFLLGdCQUFnQjtZQUN4QyxTQUFTO1FBQ1gsSUFBSSxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsTUFBTTtZQUNULFNBQVM7UUFDWCxLQUFLLElBQUksR0FBRyxJQUFJLE1BQU0sRUFBRTtZQUN0QixJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDO2dCQUN6QixJQUFJLENBQUMsR0FBRyxDQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDOztnQkFFbEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQztTQUNuQjtLQUNGO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtIdHRwQ2xpZW50LCBIdHRwRXJyb3JSZXNwb25zZSwgSHR0cEhlYWRlcnN9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xuaW1wb3J0IHtcbiAgQ2xpZW50U3RyZWFtaW5nQ2FsbCxcbiAgRGVmZXJyZWQsXG4gIER1cGxleFN0cmVhbWluZ0NhbGwsXG4gIG1lcmdlUnBjT3B0aW9ucyxcbiAgTWV0aG9kSW5mbyxcbiAgUnBjRXJyb3IsXG4gIFJwY01ldGFkYXRhLFxuICBScGNPcHRpb25zLFxuICBScGNTdGF0dXMsXG4gIFJwY1RyYW5zcG9ydCxcbiAgU2VydmVyU3RyZWFtaW5nQ2FsbCxcbiAgVW5hcnlDYWxsXG59IGZyb20gXCJAcHJvdG9idWYtdHMvcnVudGltZS1ycGNcIjtcbmltcG9ydCB7aXNKc29uT2JqZWN0LCBKc29uVmFsdWUsIGxvd2VyQ2FtZWxDYXNlLCB1dGY4cmVhZH0gZnJvbSBcIkBwcm90b2J1Zi10cy9ydW50aW1lXCI7XG5pbXBvcnQge2Zyb21FdmVudCwgTkVWRVIsIG9mfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHtUd2lycEVycm9yQ29kZSwgVHdpcnBPcHRpb25zfSBmcm9tIFwiQHByb3RvYnVmLXRzL3R3aXJwLXRyYW5zcG9ydFwiO1xuaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge1RXSVJQX1RSQU5TUE9SVF9PUFRJT05TfSBmcm9tIFwiLi90d2lycC10cmFuc3BvcnQtb3B0aW9uc1wiO1xuaW1wb3J0IHt0YWtlVW50aWx9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuXG5cbi8qKlxuICogSW1wbGVtZW50cyB0aGUgVHdpcnAgcHJvdG9jb2wsIHN1cHBvcnRpbmcgSlNPTiBvciBiaW5hcnkgZm9ybWF0IG9uXG4gKiB0aGUgd2lyZS4gU2VlIGh0dHBzOi8vdHdpdGNodHYuZ2l0aHViLmlvL3R3aXJwL2RvY3Mvc3BlY192NS5odG1sXG4gKlxuICogVXNlcyBgSHR0cENsaWVudGAgb2YgQGFuZ3VsYXIvY29tbW9uL2h0dHAgZm9yIHJlcXVlc3RzLlxuICpcbiAqIFRoaXMgaXMgYW4gaW5qZWN0YWJsZSBzZXJ2aWNlLiBUbyBpbmplY3QsIHlvdSBtdXN0IHByb3ZpZGUgdGhlXG4gKiBpbmplY3Rpb24gdG9rZW4gVFdJUlBfVFJBTlNQT1JUX09QVElPTlMuIEZvciBlYXN5IGludGVncmF0aW9uLFxuICoganVzdCBhZGQgVHdpcnBBbmd1bGFyTW9kdWxlLmZvclJvb3QoKSB0byB0aGUgXCJpbXBvcnRzXCIgb2YgeW91clxuICogYEFwcENvbXBvbmVudGAuIFRoZSBtZXRob2QgdGFrZXMgYSBgVHdpcnBPcHRpb25zYCBhcmd1bWVudC5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFR3aXJwVHJhbnNwb3J0IGltcGxlbWVudHMgUnBjVHJhbnNwb3J0IHtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGVmYXVsdE9wdGlvbnM6IFR3aXJwT3B0aW9ucztcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnQ7XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChUV0lSUF9UUkFOU1BPUlRfT1BUSU9OUykgb3B0aW9uczogVHdpcnBPcHRpb25zLCBodHRwOiBIdHRwQ2xpZW50KSB7XG4gICAgdGhpcy5kZWZhdWx0T3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgdGhpcy5odHRwID0gaHR0cDtcbiAgfVxuXG4gIG1lcmdlT3B0aW9ucyhvcHRpb25zPzogUGFydGlhbDxScGNPcHRpb25zPik6IFJwY09wdGlvbnMge1xuICAgIHJldHVybiBtZXJnZVJwY09wdGlvbnModGhpcy5kZWZhdWx0T3B0aW9ucywgb3B0aW9ucyk7XG4gIH1cblxuICB1bmFyeTxJIGV4dGVuZHMgb2JqZWN0LCBPIGV4dGVuZHMgb2JqZWN0PihtZXRob2Q6IE1ldGhvZEluZm8sIGlucHV0OiBJLCBvcHRpb25zOiBScGNPcHRpb25zKTogVW5hcnlDYWxsPEksIE8+IHtcbiAgICBsZXQgb3B0ID0gb3B0aW9ucyBhcyBUd2lycE9wdGlvbnMsXG4gICAgICB1cmwgPSB0aGlzLm1ha2VVcmwobWV0aG9kLCBvcHQpLFxuICAgICAgcmVxdWVzdEJvZHkgPSBvcHQuc2VuZEpzb24gPyBtZXRob2QuSS50b0pzb25TdHJpbmcoaW5wdXQsIG9wdC5qc29uT3B0aW9ucykgOiBtZXRob2QuSS50b0JpbmFyeShpbnB1dCwgb3B0LmJpbmFyeU9wdGlvbnMpLmJ1ZmZlcixcbiAgICAgIGRlZkhlYWRlciA9IG5ldyBEZWZlcnJlZDxScGNNZXRhZGF0YT4oKSxcbiAgICAgIGRlZk1lc3NhZ2UgPSBuZXcgRGVmZXJyZWQ8Tz4oKSxcbiAgICAgIGRlZlN0YXR1cyA9IG5ldyBEZWZlcnJlZDxScGNTdGF0dXM+KCksXG4gICAgICBkZWZUcmFpbGVyID0gbmV3IERlZmVycmVkPFJwY01ldGFkYXRhPigpLFxuICAgICAgYWJvcnRPYnNlcnZhYmxlID0gIW9wdGlvbnMuYWJvcnQgPyBORVZFUiA6IChcbiAgICAgICAgb3B0aW9ucy5hYm9ydC5hYm9ydGVkXG4gICAgICAgICAgPyBvZih1bmRlZmluZWQpXG4gICAgICAgICAgOiBmcm9tRXZlbnQob3B0aW9ucy5hYm9ydCwgXCJhYm9ydFwiKVxuICAgICAgKTtcblxuICAgIHRoaXMuaHR0cC5yZXF1ZXN0KCdQT1NUJywgdXJsLCB7XG4gICAgICBib2R5OiByZXF1ZXN0Qm9keSxcbiAgICAgIGhlYWRlcnM6IGNyZWF0ZVR3aXJwUmVxdWVzdEhlYWRlcighIW9wdC5zZW5kSnNvbiwgb3B0Lm1ldGEpLFxuICAgICAgcmVzcG9uc2VUeXBlOiBcImFycmF5YnVmZmVyXCIsXG4gICAgICBvYnNlcnZlOiBcInJlc3BvbnNlXCIsXG4gICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwoYWJvcnRPYnNlcnZhYmxlKVxuICAgICAgKVxuICAgICAgLnRvUHJvbWlzZSgpXG4gICAgICAudGhlbihuZ1Jlc3BvbnNlID0+IHtcblxuICAgICAgICBpZiAobmdSZXNwb25zZSA9PT0gdW5kZWZpbmVkICYmIG9wdGlvbnMuYWJvcnQ/LmFib3J0ZWQpXG4gICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgICAgICBkZWZIZWFkZXIucmVzb2x2ZShwYXJzZU1ldGFkYXRhRnJvbVJlc3BvbnNlSGVhZGVycyhuZ1Jlc3BvbnNlLmhlYWRlcnMpKTtcblxuICAgICAgICBpZiAoIW5nUmVzcG9uc2UuYm9keSlcbiAgICAgICAgICB0aHJvdyBuZXcgUnBjRXJyb3IoJ3ByZW1hdHVyZSBlbmQgb2YgcmVzcG9uc2UnLCBUd2lycEVycm9yQ29kZVtUd2lycEVycm9yQ29kZS5kYXRhbG9zc10pO1xuXG4gICAgICAgIGlmICghbmdSZXNwb25zZS5vaylcbiAgICAgICAgICB0aHJvdyBwYXJzZVR3aXJwRXJyb3JSZXNwb25zZShuZ1Jlc3BvbnNlLmJvZHkpO1xuXG4gICAgICAgIGlmIChvcHQuc2VuZEpzb24pIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIG1ldGhvZC5PLmZyb21Kc29uU3RyaW5nKHV0ZjhyZWFkKG5ldyBVaW50OEFycmF5KG5nUmVzcG9uc2UuYm9keSkpLCBvcHQuanNvbk9wdGlvbnMpO1xuICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBScGNFcnJvcigndW5hYmxlIHRvIHJlYWQgcmVzcG9uc2UgYm9keSBhcyBqc29uJywgVHdpcnBFcnJvckNvZGVbVHdpcnBFcnJvckNvZGUuZGF0YWxvc3NdKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiBtZXRob2QuTy5mcm9tQmluYXJ5KG5ldyBVaW50OEFycmF5KG5nUmVzcG9uc2UuYm9keSksIG9wdC5iaW5hcnlPcHRpb25zKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIHRocm93IG5ldyBScGNFcnJvcigndW5hYmxlIHRvIHJlYWQgcmVzcG9uc2UgYm9keScsIFR3aXJwRXJyb3JDb2RlW1R3aXJwRXJyb3JDb2RlLmRhdGFsb3NzXSk7XG4gICAgICAgIH1cblxuICAgICAgfSwgcmVhc29uID0+IHtcbiAgICAgICAgaWYgKHJlYXNvbiBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlKSB7XG4gICAgICAgICAgaWYgKHJlYXNvbi5lcnJvciBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKVxuICAgICAgICAgICAgdGhyb3cgcGFyc2VUd2lycEVycm9yUmVzcG9uc2UocmVhc29uLmVycm9yKTtcbiAgICAgICAgICB0aHJvdyBuZXcgUnBjRXJyb3IocmVhc29uLm1lc3NhZ2UsIFR3aXJwRXJyb3JDb2RlW1R3aXJwRXJyb3JDb2RlLnVua25vd25dKTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgUnBjRXJyb3IoXCJ1bmtub3duIGVycm9yXCIsIFR3aXJwRXJyb3JDb2RlW1R3aXJwRXJyb3JDb2RlLnVua25vd25dKTtcbiAgICAgIH0pXG5cbiAgICAgIC50aGVuKG1lc3NhZ2UgPT4ge1xuICAgICAgICBpZiAobWVzc2FnZSA9PT0gdW5kZWZpbmVkICYmICBvcHRpb25zLmFib3J0Py5hYm9ydGVkKVxuICAgICAgICAgIHRocm93IG5ldyBScGNFcnJvcihcInJlcXVlc3QgY2FuY2VsbGVkXCIsIFR3aXJwRXJyb3JDb2RlW1R3aXJwRXJyb3JDb2RlLmNhbmNlbGxlZF0pO1xuICAgICAgICBkZWZNZXNzYWdlLnJlc29sdmUobWVzc2FnZSk7XG4gICAgICAgIGRlZlN0YXR1cy5yZXNvbHZlKHtjb2RlOiAnT0snLCBkZXRhaWw6ICcnfSk7XG4gICAgICAgIGRlZlRyYWlsZXIucmVzb2x2ZSh7fSk7XG5cbiAgICAgIH0pXG5cbiAgICAgIC5jYXRjaCgocmVhc29uOiBhbnkpID0+IHtcbiAgICAgICAgLy8gUnBjRXJyb3JzIGFyZSB0aHJvd24gYnkgdXMsIGV2ZXJ5dGhpbmcgZWxzZSBpcyBhbiBpbnRlcm5hbCBlcnJvclxuICAgICAgICBsZXQgZXJyb3IgPSByZWFzb24gaW5zdGFuY2VvZiBScGNFcnJvciA/IHJlYXNvblxuICAgICAgICAgIDogbmV3IFJwY0Vycm9yKHJlYXNvbiBpbnN0YW5jZW9mIEVycm9yID8gcmVhc29uLm1lc3NhZ2UgOiByZWFzb24sIFR3aXJwRXJyb3JDb2RlW1R3aXJwRXJyb3JDb2RlLmludGVybmFsXSk7XG4gICAgICAgIGRlZkhlYWRlci5yZWplY3RQZW5kaW5nKGVycm9yKTtcbiAgICAgICAgZGVmTWVzc2FnZS5yZWplY3RQZW5kaW5nKGVycm9yKTtcbiAgICAgICAgZGVmU3RhdHVzLnJlamVjdFBlbmRpbmcoZXJyb3IpO1xuICAgICAgICBkZWZUcmFpbGVyLnJlamVjdFBlbmRpbmcoZXJyb3IpO1xuICAgICAgfSk7XG5cbiAgICByZXR1cm4gbmV3IFVuYXJ5Q2FsbDxJLCBPPihcbiAgICAgIG1ldGhvZCxcbiAgICAgIG9wdC5tZXRhID8/IHt9LFxuICAgICAgaW5wdXQsXG4gICAgICBkZWZIZWFkZXIucHJvbWlzZSxcbiAgICAgIGRlZk1lc3NhZ2UucHJvbWlzZSxcbiAgICAgIGRlZlN0YXR1cy5wcm9taXNlLFxuICAgICAgZGVmVHJhaWxlci5wcm9taXNlLFxuICAgICk7XG4gIH1cblxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gVVJJIGZvciBhIFJQQyBjYWxsLlxuICAgKlxuICAgKiBUYWtlcyB0aGUgYGJhc2VVcmxgIG9wdGlvbiBhbmQgYXBwZW5kczpcbiAgICogLSBzbGFzaCBcIi9cIlxuICAgKiAtIHBhY2thZ2UgbmFtZVxuICAgKiAtIGRvdCBcIi5cIlxuICAgKiAtIHNlcnZpY2UgbmFtZVxuICAgKiAtIHNsYXNoIFwiL1wiXG4gICAqIC0gbWV0aG9kIG5hbWVcbiAgICpcbiAgICogSWYgdGhlIHNlcnZpY2Ugd2FzIGRlY2xhcmVkIHdpdGhvdXQgYSBwYWNrYWdlLCB0aGUgcGFja2FnZSBuYW1lIGFuZCBkb3RcbiAgICogYXJlIG9taXR0ZWQuXG4gICAqXG4gICAqIFRoZSBtZXRob2QgbmFtZSBpcyBDYW1lbENhc2VkIGp1c3QgYXMgaXQgd291bGQgYmUgaW4gR28sIHVubGVzcyB0aGVcbiAgICogb3B0aW9uIGB1c2VQcm90b01ldGhvZE5hbWVgIGlzIGB0cnVlYC5cbiAgICovXG4gIHByb3RlY3RlZCBtYWtlVXJsKG1ldGhvZDogTWV0aG9kSW5mbywgb3B0aW9uczogVHdpcnBPcHRpb25zKTogc3RyaW5nIHtcbiAgICBsZXQgYmFzZSA9IG9wdGlvbnMuYmFzZVVybDtcbiAgICBpZiAoYmFzZS5lbmRzV2l0aCgnLycpKVxuICAgICAgYmFzZSA9IGJhc2Uuc3Vic3RyaW5nKDAsIGJhc2UubGVuZ3RoIC0gMSk7XG4gICAgbGV0IG1ldGhvZE5hbWUgPSBtZXRob2QubmFtZTtcbiAgICBpZiAob3B0aW9ucy51c2VQcm90b01ldGhvZE5hbWUgIT09IHRydWUpIHtcbiAgICAgIG1ldGhvZE5hbWUgPSBsb3dlckNhbWVsQ2FzZShtZXRob2ROYW1lKTtcbiAgICAgIG1ldGhvZE5hbWUgPSBtZXRob2ROYW1lLnN1YnN0cmluZygwLCAxKS50b1VwcGVyQ2FzZSgpICsgbWV0aG9kTmFtZS5zdWJzdHJpbmcoMSk7XG4gICAgfVxuICAgIHJldHVybiBgJHtiYXNlfS8ke21ldGhvZC5zZXJ2aWNlLnR5cGVOYW1lfS8ke21ldGhvZE5hbWV9YDtcbiAgfVxuXG5cbiAgY2xpZW50U3RyZWFtaW5nPEkgZXh0ZW5kcyBvYmplY3QsIE8gZXh0ZW5kcyBvYmplY3Q+KC8qc2VydmljZTogU2VydmljZUluZm8sIG1ldGhvZDogTWV0aG9kSW5mbzxJLCBPPiwgb3B0aW9uczogUnBjT3B0aW9ucyovKTogQ2xpZW50U3RyZWFtaW5nQ2FsbDxJLCBPPiB7XG4gICAgdGhyb3cgbmV3IFJwY0Vycm9yKCdDbGllbnQgc3RyZWFtaW5nIGlzIG5vdCBzdXBwb3J0ZWQgYnkgVHdpcnAnLCBUd2lycEVycm9yQ29kZVtUd2lycEVycm9yQ29kZS51bmltcGxlbWVudGVkXSk7XG4gIH1cblxuICBkdXBsZXg8SSBleHRlbmRzIG9iamVjdCwgTyBleHRlbmRzIG9iamVjdD4oLypzZXJ2aWNlOiBTZXJ2aWNlSW5mbywgbWV0aG9kOiBNZXRob2RJbmZvPEksIE8+LCBvcHRpb25zOiBScGNPcHRpb25zKi8pOiBEdXBsZXhTdHJlYW1pbmdDYWxsPEksIE8+IHtcbiAgICB0aHJvdyBuZXcgUnBjRXJyb3IoJ0R1cGxleCBzdHJlYW1pbmcgaXMgbm90IHN1cHBvcnRlZCBieSBUd2lycCcsIFR3aXJwRXJyb3JDb2RlW1R3aXJwRXJyb3JDb2RlLnVuaW1wbGVtZW50ZWRdKTtcbiAgfVxuXG4gIHNlcnZlclN0cmVhbWluZzxJIGV4dGVuZHMgb2JqZWN0LCBPIGV4dGVuZHMgb2JqZWN0PigvKnNlcnZpY2U6IFNlcnZpY2VJbmZvLCBtZXRob2Q6IE1ldGhvZEluZm88SSwgTz4sIGlucHV0OiBJLCBvcHRpb25zPzogUnBjT3B0aW9ucyovKTogU2VydmVyU3RyZWFtaW5nQ2FsbDxJLCBPPiB7XG4gICAgdGhyb3cgbmV3IFJwY0Vycm9yKCdTZXJ2ZXIgc3RyZWFtaW5nIGlzIG5vdCBzdXBwb3J0ZWQgYnkgVHdpcnAnLCBUd2lycEVycm9yQ29kZVtUd2lycEVycm9yQ29kZS51bmltcGxlbWVudGVkXSk7XG4gIH1cblxufVxuXG5cbi8qKlxuICogQ3JlYXRlIEFuZ3VsYXIgaGVhZGVycyBmb3IgYSBUd2lycCByZXF1ZXN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVHdpcnBSZXF1ZXN0SGVhZGVyKHNlbmRKc29uOiBib29sZWFuLCBtZXRhPzogUnBjTWV0YWRhdGEpOiBIdHRwSGVhZGVycyB7XG4gIGxldCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XG4gIC8vIGFkZCBtZXRhIGFzIGhlYWRlcnNcbiAgaWYgKG1ldGEpIHtcbiAgICBmb3IgKGxldCBbaywgdl0gb2YgT2JqZWN0LmVudHJpZXMobWV0YSkpIHtcbiAgICAgIGlmICh0eXBlb2YgdiA9PSBcInN0cmluZ1wiKVxuICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5hcHBlbmQoaywgdik7XG4gICAgICBlbHNlXG4gICAgICAgIGZvciAobGV0IGkgb2YgdilcbiAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5hcHBlbmQoaywgaSk7XG4gICAgfVxuICB9XG4gIC8vIHNldCBzdGFuZGFyZCBoZWFkZXJzIChwb3NzaWJseSBvdmVyd3JpdGluZyBtZXRhKVxuICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0NvbnRlbnQtVHlwZScsIHNlbmRKc29uID8gXCJhcHBsaWNhdGlvbi9qc29uXCIgOiBcImFwcGxpY2F0aW9uL3Byb3RvYnVmXCIpO1xuICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0FjY2VwdCcsIHNlbmRKc29uID8gXCJhcHBsaWNhdGlvbi9qc29uXCIgOiBcImFwcGxpY2F0aW9uL3Byb3RvYnVmLCBhcHBsaWNhdGlvbi9qc29uXCIpO1xuICByZXR1cm4gaGVhZGVycztcbn1cblxuXG4vKipcbiAqIFBhcnNlIFR3aXJwIGVycm9yIG1lc3NhZ2UgZnJvbSBKU09OIChnaXZlbiBhcyBhcnJheSBidWZmZXIpIGFuZCBjcmVhdGVcbiAqIFJwY0Vycm9yIGZyb20gdGhlIFR3aXJwIGVycm9yLlxuICpcbiAqIHNlZSBodHRwczovL3R3aXRjaHR2LmdpdGh1Yi5pby90d2lycC9kb2NzL3NwZWNfdjUuaHRtbFxuICovXG5mdW5jdGlvbiBwYXJzZVR3aXJwRXJyb3JSZXNwb25zZShkYXRhOiBBcnJheUJ1ZmZlcik6IFJwY0Vycm9yIHtcbiAgbGV0IGpzb246IEpzb25WYWx1ZTtcbiAgdHJ5IHtcbiAgICBqc29uID0gSlNPTi5wYXJzZSh1dGY4cmVhZChuZXcgVWludDhBcnJheShkYXRhKSkpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIG5ldyBScGNFcnJvcignY2Fubm90IHJlYWQgdHdpcnAgZXJyb3IgcmVzcG9uc2UnLCBUd2lycEVycm9yQ29kZVtUd2lycEVycm9yQ29kZS5pbnRlcm5hbF0pO1xuICB9XG4gIGlmICghaXNKc29uT2JqZWN0KGpzb24pIHx8IHR5cGVvZiBqc29uLmNvZGUgIT09IFwic3RyaW5nXCIgfHwgdHlwZW9mIGpzb24ubXNnICE9PSBcInN0cmluZ1wiKVxuICAgIHJldHVybiBuZXcgUnBjRXJyb3IoJ2Nhbm5vdCByZWFkIHR3aXJwIGVycm9yIHJlc3BvbnNlJywgVHdpcnBFcnJvckNvZGVbVHdpcnBFcnJvckNvZGUuaW50ZXJuYWxdKTtcbiAgbGV0IG1ldGE6IFJwY01ldGFkYXRhID0ge307XG4gIGlmIChpc0pzb25PYmplY3QoanNvbi5tZXRhKSkge1xuICAgIGZvciAobGV0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyhqc29uLm1ldGEpKSB7XG4gICAgICBpZiAodHlwZW9mIHYgPT0gXCJzdHJpbmdcIilcbiAgICAgICAgbWV0YVtrXSA9IHY7XG4gICAgfVxuICB9XG4gIHJldHVybiBuZXcgUnBjRXJyb3IoanNvbi5tc2csIGpzb24uY29kZSwgbWV0YSk7XG59XG5cblxuLyoqXG4gKiBQYXJzZXMgQW5ndWxhciByZXNwb25zZSBoZWFkZXJzIHRvIFJwY01ldGFEYXRhLlxuICogRHJvcHMgdGhlIGhlYWRlcnMgQ29udGVudC1UeXBlIGFuZCBDb250ZW50LUxlbmd0aC5cbiAqL1xuZnVuY3Rpb24gcGFyc2VNZXRhZGF0YUZyb21SZXNwb25zZUhlYWRlcnMoaGVhZGVyczogSHR0cEhlYWRlcnMpOiBScGNNZXRhZGF0YSB7XG4gIGxldCBtZXRhOiBScGNNZXRhZGF0YSA9IHt9O1xuICBmb3IgKGxldCBrZXkgb2YgaGVhZGVycy5rZXlzKCkpIHtcbiAgICBpZiAoa2V5LnRvTG93ZXJDYXNlKCkgPT09ICdjb250ZW50LXR5cGUnKVxuICAgICAgY29udGludWU7XG4gICAgaWYgKGtleS50b0xvd2VyQ2FzZSgpID09PSAnY29udGVudC1sZW5ndGgnKVxuICAgICAgY29udGludWU7XG4gICAgbGV0IHZhbHVlcyA9IGhlYWRlcnMuZ2V0QWxsKGtleSk7XG4gICAgaWYgKCF2YWx1ZXMpXG4gICAgICBjb250aW51ZTtcbiAgICBmb3IgKGxldCB2YWwgb2YgdmFsdWVzKSB7XG4gICAgICBpZiAobWV0YS5oYXNPd25Qcm9wZXJ0eShrZXkpKVxuICAgICAgICAobWV0YVtrZXldIGFzIHN0cmluZ1tdKS5wdXNoKHZhbCk7XG4gICAgICBlbHNlXG4gICAgICAgIG1ldGFba2V5XSA9IHZhbDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG1ldGE7XG59XG5cbiJdfQ==

@@ -31,2 +31,2 @@ import { NgModule } from "@angular/core";

];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHdpcnAubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90d2lycC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUdoRDs7O0dBR0c7QUFTSCxNQUFNLE9BQU8sV0FBVztJQUVmLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBMEI7UUFDOUMsT0FBTztZQUNMLFFBQVEsRUFBRSxXQUFXO1lBQ3JCLFNBQVMsRUFBRTtnQkFDVCxFQUFDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFDO2dCQUMxRCxFQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBQzthQUN0RDtTQUNGLENBQUM7SUFDSixDQUFDOzs7WUFsQkYsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxnQkFBZ0I7aUJBQ2pCO2dCQUNELFNBQVMsRUFBRTtvQkFDVCxjQUFjO2lCQUNmO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBUd2lycFRyYW5zcG9ydCB9IGZyb20gXCIuL3R3aXJwLXRyYW5zcG9ydC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBUd2lycE9wdGlvbnMgfSBmcm9tIFwiQHByb3RvYnVmLXRzL3R3aXJwLXRyYW5zcG9ydFwiO1xuaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xuaW1wb3J0IHsgVFdJUlBfVFJBTlNQT1JUX09QVElPTlMgfSBmcm9tIFwiLi90d2lycC10cmFuc3BvcnQtb3B0aW9uc1wiO1xuaW1wb3J0IHsgUlBDX1RSQU5TUE9SVCB9IGZyb20gXCIuL3JwYy10cmFuc3BvcnRcIjtcblxuXG4vKipcbiAqIFByb3ZpZGVzIHRoZSBUd2lycCB0cmFuc3BvcnQgYFR3aXJwVHJhbnNwb3J0YCwgd2hpY2ggdXNlc1xuICogYEh0dHBDbGllbnRgIG9mIEBhbmd1bGFyL2NvbW1vbi9odHRwIGZvciByZXF1ZXN0cy5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIEh0dHBDbGllbnRNb2R1bGUsXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIFR3aXJwVHJhbnNwb3J0LFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFR3aXJwTW9kdWxlIHtcblxuICBwdWJsaWMgc3RhdGljIGZvclJvb3QodHdpcnBPcHRpb25zOiBUd2lycE9wdGlvbnMpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFR3aXJwTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBUd2lycE1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7cHJvdmlkZTogVFdJUlBfVFJBTlNQT1JUX09QVElPTlMsIHVzZVZhbHVlOiB0d2lycE9wdGlvbnN9LFxuICAgICAgICB7cHJvdmlkZTogUlBDX1RSQU5TUE9SVCwgdXNlRXhpc3Rpbmc6IFR3aXJwVHJhbnNwb3J0fVxuICAgICAgXVxuICAgIH07XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHdpcnAubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Ii9Vc2Vycy90cy9QaHBzdG9ybVByb2plY3RzL3Byb3RvYnVmLXRzL3BhY2thZ2VzL3J1bnRpbWUtYW5ndWxhci9zcmMvIiwic291cmNlcyI6WyJsaWIvdHdpcnAubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHaEQ7OztHQUdHO0FBU0gsTUFBTSxPQUFPLFdBQVc7SUFFZixNQUFNLENBQUMsT0FBTyxDQUFDLFlBQTBCO1FBQzlDLE9BQU87WUFDTCxRQUFRLEVBQUUsV0FBVztZQUNyQixTQUFTLEVBQUU7Z0JBQ1QsRUFBQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBQztnQkFDMUQsRUFBQyxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUM7YUFDdEQ7U0FDRixDQUFDO0lBQ0osQ0FBQzs7O1lBbEJGLFFBQVEsU0FBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsZ0JBQWdCO2lCQUNqQjtnQkFDRCxTQUFTLEVBQUU7b0JBQ1QsY0FBYztpQkFDZjthQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgVHdpcnBUcmFuc3BvcnQgfSBmcm9tIFwiLi90d2lycC10cmFuc3BvcnQuc2VydmljZVwiO1xuaW1wb3J0IHsgVHdpcnBPcHRpb25zIH0gZnJvbSBcIkBwcm90b2J1Zi10cy90d2lycC10cmFuc3BvcnRcIjtcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcbmltcG9ydCB7IFRXSVJQX1RSQU5TUE9SVF9PUFRJT05TIH0gZnJvbSBcIi4vdHdpcnAtdHJhbnNwb3J0LW9wdGlvbnNcIjtcbmltcG9ydCB7IFJQQ19UUkFOU1BPUlQgfSBmcm9tIFwiLi9ycGMtdHJhbnNwb3J0XCI7XG5cblxuLyoqXG4gKiBQcm92aWRlcyB0aGUgVHdpcnAgdHJhbnNwb3J0IGBUd2lycFRyYW5zcG9ydGAsIHdoaWNoIHVzZXNcbiAqIGBIdHRwQ2xpZW50YCBvZiBAYW5ndWxhci9jb21tb24vaHR0cCBmb3IgcmVxdWVzdHMuXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBIdHRwQ2xpZW50TW9kdWxlLFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICBUd2lycFRyYW5zcG9ydCxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBUd2lycE1vZHVsZSB7XG5cbiAgcHVibGljIHN0YXRpYyBmb3JSb290KHR3aXJwT3B0aW9uczogVHdpcnBPcHRpb25zKTogTW9kdWxlV2l0aFByb3ZpZGVyczxUd2lycE1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogVHdpcnBNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge3Byb3ZpZGU6IFRXSVJQX1RSQU5TUE9SVF9PUFRJT05TLCB1c2VWYWx1ZTogdHdpcnBPcHRpb25zfSxcbiAgICAgICAge3Byb3ZpZGU6IFJQQ19UUkFOU1BPUlQsIHVzZUV4aXN0aW5nOiBUd2lycFRyYW5zcG9ydH1cbiAgICAgIF1cbiAgICB9O1xuICB9XG59XG4iXX0=

@@ -5,2 +5,2 @@ /**

export * from './public-api';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdG9idWYtdHMtcnVudGltZS1hbmd1bGFyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3RvYnVmLXRzLXJ1bnRpbWUtYW5ndWxhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdG9idWYtdHMtcnVudGltZS1hbmd1bGFyLmpzIiwic291cmNlUm9vdCI6Ii9Vc2Vycy90cy9QaHBzdG9ybVByb2plY3RzL3Byb3RvYnVmLXRzL3BhY2thZ2VzL3J1bnRpbWUtYW5ndWxhci9zcmMvIiwic291cmNlcyI6WyJwcm90b2J1Zi10cy1ydW50aW1lLWFuZ3VsYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==

@@ -7,2 +7,2 @@ export { PbDatePipe } from "./lib/pb-date-pipe";

export { TWIRP_TRANSPORT_OPTIONS } from "./lib/twirp-transport-options";
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLCtCQUErQixDQUFBO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IFBiRGF0ZVBpcGUgfSBmcm9tIFwiLi9saWIvcGItZGF0ZS1waXBlXCI7XG5leHBvcnQgeyBQYkRhdGVQaXBlTW9kdWxlIH0gZnJvbSBcIi4vbGliL3BiLWRhdGUtcGlwZS5tb2R1bGVcIjtcbmV4cG9ydCB7IFJQQ19UUkFOU1BPUlQgfSBmcm9tIFwiLi9saWIvcnBjLXRyYW5zcG9ydFwiO1xuZXhwb3J0IHsgVHdpcnBUcmFuc3BvcnQgfSBmcm9tIFwiLi9saWIvdHdpcnAtdHJhbnNwb3J0LnNlcnZpY2VcIlxuZXhwb3J0IHsgVHdpcnBNb2R1bGUgfSBmcm9tIFwiLi9saWIvdHdpcnAubW9kdWxlXCI7XG5leHBvcnQgeyBUV0lSUF9UUkFOU1BPUlRfT1BUSU9OUyB9IGZyb20gXCIuL2xpYi90d2lycC10cmFuc3BvcnQtb3B0aW9uc1wiO1xuXG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIvVXNlcnMvdHMvUGhwc3Rvcm1Qcm9qZWN0cy9wcm90b2J1Zi10cy9wYWNrYWdlcy9ydW50aW1lLWFuZ3VsYXIvc3JjLyIsInNvdXJjZXMiOlsicHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQTtBQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDakQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0JBQStCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBQYkRhdGVQaXBlIH0gZnJvbSBcIi4vbGliL3BiLWRhdGUtcGlwZVwiO1xuZXhwb3J0IHsgUGJEYXRlUGlwZU1vZHVsZSB9IGZyb20gXCIuL2xpYi9wYi1kYXRlLXBpcGUubW9kdWxlXCI7XG5leHBvcnQgeyBSUENfVFJBTlNQT1JUIH0gZnJvbSBcIi4vbGliL3JwYy10cmFuc3BvcnRcIjtcbmV4cG9ydCB7IFR3aXJwVHJhbnNwb3J0IH0gZnJvbSBcIi4vbGliL3R3aXJwLXRyYW5zcG9ydC5zZXJ2aWNlXCJcbmV4cG9ydCB7IFR3aXJwTW9kdWxlIH0gZnJvbSBcIi4vbGliL3R3aXJwLm1vZHVsZVwiO1xuZXhwb3J0IHsgVFdJUlBfVFJBTlNQT1JUX09QVElPTlMgfSBmcm9tIFwiLi9saWIvdHdpcnAtdHJhbnNwb3J0LW9wdGlvbnNcIjtcblxuIl19
{
"name": "@protobuf-ts/runtime-angular",
"version": "2.0.4",
"version": "2.0.5",
"description": "Runtime library for using the protoc plugin \"protobuf-ts\" with Angular",

@@ -28,5 +28,5 @@ "license": "Apache-2.0",

"@angular/core": "8 - 11",
"@protobuf-ts/runtime": "2.0.4",
"@protobuf-ts/runtime-rpc": "2.0.4",
"@protobuf-ts/twirp-transport": "2.0.4",
"@protobuf-ts/runtime": "2.0.5",
"@protobuf-ts/runtime-rpc": "2.0.5",
"@protobuf-ts/twirp-transport": "2.0.5",
"rxjs": "^6.5"

@@ -33,0 +33,0 @@ },

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc