@farris/bef
Advanced tools
Comparing version 0.0.12-20210922114600-dev to 0.0.12-20210922153825-dev
@@ -1,2 +0,2 @@ | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@ecp-caf/caf-common"),require("date-fns"),require("rxjs"),require("rxjs/operators"),require("rxjs/operators/map"),require("@angular/core"),require("@farris/devkit"),require("@angular/common/http")):"function"==typeof define&&define.amd?define("@farris/bef",["exports","@ecp-caf/caf-common","date-fns","rxjs","rxjs/operators","rxjs/operators/map","@angular/core","@farris/devkit","@angular/common/http"],t):t((e.farris=e.farris||{},e.farris.bef={}),e.cafCommon,e.dateFns,e.rxjs,e.rxjs.operators,e.rxjs["operators/map"],e.ng.core,e.devkit,e.ng.common.http)}(this,function(e,t,n,b,d,s,i,I,a){"use strict";var S=(r.Added="Added",r.Modify="Modify",r.Deleted="Deleted",r);function r(){}var p=new i.InjectionToken("@farris/be BE_SERVER_URL"),u=new i.InjectionToken("@farris/be BE_SESSION_HANDLING_STRATEGY_TOKEN"),C=(o.getPropInfo=function(e,t){var r,n,o,i=I.FieldMetadataUtil.getNgFields(e);Object.keys(i).forEach(function(e){e===t&&(r="NgField",n=null,o=i[e])});var a=I.FieldMetadataUtil.getNgObjects(e);Object.keys(a).forEach(function(e){e===t&&(r="NgObject",n=a[e].type,o=a[e])});var s=I.FieldMetadataUtil.getNgList(e);Object.keys(s).forEach(function(e){e===t&&(r="NgList",n=s[e].type,o=s[e])});var p=I.FieldMetadataUtil.getNgDynamic(e);return Object.keys(p).forEach(function(e){e===t&&(r="NgDynamic",n=p[e].type,o=p[e])}),{propType:r,propEntityType:n,propMetadata:o}},o.getPrimaryKey=function(e){var t=I.FieldMetadataUtil.getPrimaryFieldMetadata(e);return t?t.dataField:""},o.isObjectProp=function(e,t){var r=!1,n=I.FieldMetadataUtil.getNgObjects(e);return Object.keys(n).forEach(function(e){e===t&&(r=!0)}),r},o.isDynamicProp=function(e,t){var r=!1,n=I.FieldMetadataUtil.getNgDynamic(e);return Object.keys(n).forEach(function(e){e===t&&(r=!0)}),r},o.appendInitialData=function(e,t){var r=Object.assign({},t);delete r.id,delete r.parentID,e.initialData=r},o);function o(){}var c=(h.prototype.build=function(e){var t=this;return this.changeDetail={ChangeType:S.Modify,ChangeInfo:{DataId:""}},e.forEach(function(e){t.buildChangeDetail(e)}),this.changeDetail},h.prototype.buildChangeDetail=function(l){var d=l.path.concat();this.changeDetail.ChangeInfo.DataId||(this.changeDetail.ChangeInfo.DataId=d[0].split(":")[1]);for(var f=this.changeDetail,g=this.entityType,e=function(e){var t=v.getChangeInfo(f),r=d[e],n=C.getPropInfo(g,r),o=n.propType,i=n.propEntityType,a=n.propMetadata.dataField||r;if("NgField"===o){if(r===C.getPrimaryKey(g))return"continue";if(l.type!==I.ModifyType.ValueChange)throw Error("简单类型的属性上不支持ValueChange类型之外的变更");t[a]=l.value,f=null}else if("NgObject"===o)if(d[e+1].split(":")[1],d[e+1].split(":")[0]){var s=t[a],p=d.slice(0,e+1);s=(y=v.entityCollection.getEntityByPath(p))?y.toJSON(!0):{},t[a]=s,g=f=null}else c=(c=t[a])||{ChangeType:S.Modify,ChangeInfo:{}},t[a]=c,f=c,g=i;else if("NgList"===o){f.ChangeInfo[a]||(f.ChangeInfo[a]=[]);var u=f.ChangeInfo[a];if(e!==d.length-1){var c,h=d[e+1].split(":")[1];return(c=u.find(function(e){return e.ChangeInfo.DataId===h}))||(c=v.createEmptyChangeDetail(S.Modify,h),u.push(c)),f=c,g=i,"continue"}l.type===I.ModifyType.Add||l.type===I.ModifyType.Insert||(l.type,I.ModifyType.Remove),g=f=null}else if("NgDynamic"===o){p=d.slice(0,e+1);var y=v.entityCollection.getEntityByPath(p);t[a]={ChangeType:S.Modify,ChangeInfo:y?y.toJSON(!0):{}},g=f=null}},v=this,t=1;t<d.length&&f;t+=2)e(t)},h.prototype.getChangeInfo=function(e){return e.hasOwnProperty("ChangeInfo")?e.ChangeInfo:e},h.prototype.createEmptyChangeDetail=function(e,t){return{ChangeType:e,ChangeInfo:{DataId:t}}},h);function h(e,t){this.entityType=e,this.entityCollection=t}var y=(l.prototype.handle=function(e,t,r){this.handleChangeDetails(e,t,r)},l.prototype.handleChangeDetails=function(n,o,e){var i=this;e&&e.forEach(function(e){var t=e.ChangeInfo.dataId||e.ChangeInfo.DataId,r=i.getEntityById(o,t);r&&i.handleChangeDetail(n,r,e)})},l.prototype.handleChangeDetail=function(u,c,e){var h=this;if(e&&c&&e.ChangeType===S.Modify){var y=e.ChangeInfo;Object.keys(y).forEach(function(e){var t=C.getPropInfo(u,e),r=t.propType,n=t.propEntityType;if("NgField"===r)c[e]=y[e];else if("NgObject"===r){var o=c[e];if(o.primaryKey){var i=y[e];o.load(i)}else{var a=y[e];h.handleChangeDetail(n,o,a)}}else if("NgList"===r){var s=c[e],p=y[e];h.handleChangeDetails(n,s,p)}})}},l.prototype.getEntityById=function(e,t){return(e instanceof I.EntityCollection?e.getEntityById(t):e.get(t))||null},l);function l(){}var f=(g.prototype.getUserSessionId=function(){return this.sessionService.getUserSessionId()},g.prototype.getCurrentSessionId=function(e){var t;if(this.sessionService)if(e&&e.hasOwnProperty("tabId")){var r=e.tabId;t=this.sessionService.getCurrentSeesionId(r)}else t=this.sessionService.getCurrentSeesionId();return t=t||this.getUserSessionId()},g.decorators=[{type:i.Injectable}],g.ctorParameters=function(){return[{type:t.SessionService,decorators:[{type:i.Optional}]}]},g);function g(e){this.sessionService=e}var v=(m.prototype.getItem=function(e){return this.getAllBeSessions()[e]},m.prototype.setItem=function(e,t){var r=this.getAllBeSessions();r[e]=t,this.setAllBeSessions(r)},m.prototype.removeItem=function(e){var t=this.getAllBeSessions();t[e]&&delete t[e],this.setAllBeSessions(t)},m.prototype.clear=function(e,t){!0===this.isInFramework()?this.removeItemsByFrmSessionId(e):this.removeItem(t)},m.prototype.removeItemsByFrmSessionId=function(t){var r=this.getAllBeSessions();Object.keys(r).forEach(function(e){!0===e.startsWith(t)&&delete r[e]}),this.setAllBeSessions(r)},m.prototype.getAllBeSessions=function(){var e=window.sessionStorage.getItem(this.sessionStorageKey);return e?JSON.parse(e):{}},m.prototype.setAllBeSessions=function(e){var t=JSON.stringify(e);window.sessionStorage.setItem(this.sessionStorageKey,t)},m.prototype.isInFramework=function(){var e=window.location.hash;return!!e&&-1!==e.indexOf("tabId=")},m);function m(){this.sessionStorageKey="BE_SESSION_ID"}var E=function(e,t){return(E=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)};function x(e,t){function r(){this.constructor=e}E(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var B=function(){return(B=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)};function P(e){var t="function"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function R(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,i=r.call(e),a=[];try{for(;(void 0===t||0<t--)&&!(n=i.next()).done;)a.push(n.value)}catch(s){o={error:s}}finally{try{n&&!n.done&&(r=i["return"])&&r.call(i)}finally{if(o)throw o.error}}return a}function D(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(R(arguments[t]));return e}var q=(O.convertToHeaders=function(t){if(1==(t=t||new a.HttpHeaders)instanceof a.HttpHeaders)return t;if(0<Object.keys(t).length){var r=new a.HttpHeaders;Object.keys(t).forEach(function(e){r=r.append(e,t[e])}),t=r}else t=new a.HttpHeaders;return t},O.appendSessionId=function(e,t){return e.append("SessionId",t)},O.appendCafRuntimeCommonVariable=function(e,t){return e.append("X-CAF-Runtime-CommonVariable",t)},O.appendCafRuntimeContext=function(e,t){return e.append("X-CAF-Runtime-Context",t)},O.appendContextType=function(e,t){return t=t||"application/json",e.append("Content-Type",t)},O.appendRequireMessage=function(e,t){return void 0===t&&(t=!0),e.append("Bff-Require-Message",t.toString())},O.appendFuncInstId=function(e,t){return e.append("Func-Inst-Id",t)},O.toJson=function(r){if(!(r instanceof a.HttpHeaders))return null;var n={};return r.keys().forEach(function(e){var t=r.getAll(e);1<t.length?n[e]=t:n[e]=t[0]||""}),n},O);function O(){}var w=(M.buildParams=function(e){var t=new a.HttpParams;for(var r in e)if(e.hasOwnProperty(r)){var n=e[r].toString();t=t.append(r,n)}return t},M);function M(){}var T=(j.hasRequestInfo=function(e){if(!e||!e.body)return!1;var t=e.body;return!(!t.requestInfo||!t.requestInfo.dataChange)||!!t.dataChange},j.hasRequestInfoWithR=function(e){if(!e||!e.body)return!1;var t=e.body;return!(!t.RequestInfo||!t.RequestInfo.dataChange)||!!t.dataChange},j.buildRequestInfo=function(e){return{dataChange:e.entityManager.buildAllEntityChangeDetails(),variableChange:e.variableManager.buildChangeDetail()}},j.buildBodyWithRequestInfo=function(e,t){if(e.RequestInfo||e.requestInfo)return e;var r=this.buildRequestInfo(t);return Object.assign({},e,{requestInfo:r})},j);function j(){}var A=(U.unWrapResponseInfo=function(e){if(!e)return e;if(!1===e.hasOwnProperty("returnValue"))return e.hasOwnProperty("result")&&e.hasOwnProperty("pagination")?e.result:e;var t=e.returnValue;return t&&t.hasOwnProperty("result")&&t.hasOwnProperty("pagination")?t.result:e.returnValue},U.isReported401Error=function(e){return 401===e.status},U.parseBackEndMessage=function(e){return e&&e.message&&Array.isArray(e.message)&&0<e.message.length?e.message:null},U.parseBackEndError=function(e){var t=e&&e.error;return t&&t.hasOwnProperty("extensionMessage")&&t.extensionMessage&&t.extensionMessage.hasOwnProperty("UIMsg")&&t.extensionMessage.UIMsg&&0<t.extensionMessage.UIMsg.length?JSON.parse(t.extensionMessage.UIMsg):null},U);function U(){}var H=(V.prototype.getService=function(){for(var e=window;!e.gspframeworkService&&e!==window.top&&this.isSameOrigin(e);)e=window.parent;return e.gspframeworkService&&e.gspframeworkService.rtf||{}},V.prototype.isSameOrigin=function(e){var t=window.location.host;try{if(e&&e.location&&"undefined"!=typeof e.location.host)return e.location.host===t}catch(r){return!1}return!1},Object.defineProperty(V.prototype,"params",{get:function(){return this.rtf&&this.rtf.hasOwnProperty("session")&&"function"==typeof this.rtf.session.getCommonVariable?this.rtf.session.getCommonVariable():null},enumerable:!0,configurable:!0}),Object.defineProperty(V.prototype,"httpService",{get:function(){return this.rtf&&this.rtf.hasOwnProperty("http")&&"function"==typeof this.rtf.http.request?this.rtf.http:null},enumerable:!0,configurable:!0}),V.prototype.request=function(e,t,r){return void 0===r&&(r={}),this.defaultHttpClient.request(e,t,r)},V.decorators=[{type:i.Injectable}],V.ctorParameters=function(){return[{type:a.HttpClient}]},V);function V(e){this.defaultHttpClient=e,this.httpClient=e,this.rtf=this.getService()}var k=(F.prototype.getFrmSessionId=function(e){return this.frmSessionService.getCurrentSessionId(e)},Object.defineProperty(F.prototype,"frmSessionId",{get:function(){return this.frmSessionService.getCurrentSessionId()},enumerable:!0,configurable:!0}),F.prototype.getFrameworkSessionId=function(e){return this.getFrmSessionId(e)},F.prototype.getSessionIdFromStorage=function(e){var t=this.getSessionStorageKey(e);return this.storageStrategy.getItem(t)},F);function F(e,t){this.storageStrategy=e,this.frmSessionService=t}var N,_=(x(L,N=k),L.prototype.getSessionId=function(){var e=this.getSessionIdFromStorage();return e?b.of(e):this.createSession()},L.prototype.setSessionId=function(e){var t=this.getSessionStorageKey();this.storageStrategy.setItem(t,e)},L.prototype.clearSessionId=function(){var e=this.getSessionStorageKey();this.storageStrategy.clear(this.frmSessionId,e)},L.prototype.extendRequestHeaders=function(e,t){var r=this.getFrameworkSessionId(t),n=this.getSessionIdFromStorage(t);return e=q.appendCafRuntimeCommonVariable(e,r),n&&(e=q.appendCafRuntimeContext(e,n),e=q.appendSessionId(e,n)),e=q.appendFuncInstId(e,this.beSessionUri)},L.prototype.handleReponseHeaders=function(e){console.log(e)},L.prototype.createSession=function(){var t=this,e={responseType:"text"};return this.frmSessionId&&(this.injector.get(I.AppContext,null),e.headers=new a.HttpHeaders({SessionId:this.frmSessionId}),e.headers=e.headers.append("X-CAF-Runtime-CommonVariable",this.frmSessionId),e.headers=e.headers.append("Func-Inst-Id",this.beSessionUri),e.headers=q.toJson(e.headers)),this.httpService.request("POST",this.beSessionUri,e).pipe(d.tap(function(e){t.setSessionId(e)}))},L.prototype.extendHttpHeader=function(){},L.prototype.getSessionStorageKey=function(e){return(e?this.getFrameworkSessionId(e):this.frmSessionId)+"_"+this.beSessionUri},L);function L(e,t,r,n,o){var i=N.call(this,e,t)||this;return i.beSessionUri=n,i.httpClient=r,i.httpService=new H(i.httpClient),i.injector=o,i}var K,G=(x(J,K=k),J.prototype.getSessionId=function(){var e=this.getSessionStorageKey(),t=this.storageStrategy.getItem(e);return b.of(t)},J.prototype.setSessionId=function(e){var t=this.getSessionStorageKey();this.storageStrategy.setItem(t,e)},J.prototype.clearSessionId=function(){var e=this.getSessionStorageKey();this.storageStrategy.removeItem(e)},J.prototype.extendRequestHeaders=function(e,t){var r=this.getFrameworkSessionId(t),n=this.getSessionIdFromStorage(t),o=this.injector.get(I.AppContext,null);if(o){var i=o.Token;e=q.appendFuncInstId(e,i)}return e=q.appendCafRuntimeCommonVariable(e,r),n&&(e=q.appendCafRuntimeContext(e,n)),e},J.prototype.handleReponseHeaders=function(e){console.log(e)},J.prototype.getSessionStorageKey=function(e){return(e?this.getFrameworkSessionId(e):this.frmSessionId)+"_"+this.beSessionUri},J);function J(e,t,r,n){var o=K.call(this,e,t)||this;return o.beSessionUri=r,o.injector=n,o}var W=(z.prototype.create=function(e,t,r,n,o){var i=this.createStorageStrategy(),a=this.createBeSessionUri(r);return"UnifiedSession"===e?new G(i,t,a,o):new _(i,t,n,a,o)},z.prototype.createStorageStrategy=function(){return new v},z.prototype.createBeSessionUri=function(e){return e+"/service/createsession"},z.decorators=[{type:i.Injectable}],z);function z(){}var Q=(Object.defineProperty(Y.prototype,"token",{get:function(){return this.handlingStrategy.getFrameworkSessionId()},enumerable:!0,configurable:!0}),Y.prototype.getBeSessionId=function(){return this.handlingStrategy.getSessionId()},Y.prototype.setBeSessionId=function(e){this.handlingStrategy.setSessionId(e),this.setSessionId(e)},Y.prototype.clearBeSessionId=function(){this.handlingStrategy.clearSessionId()},Y.prototype.extendRequestHeaders=function(e,t){return this.handlingStrategy.extendRequestHeaders(e,t)},Y.prototype.handleResponseHeaders=function(e){return this.handlingStrategy.handleReponseHeaders(e)},Y.prototype.createBeSession=function(){return this.handlingStrategy.createSession()},Y.prototype.setSessionId=function(e){var t=this.injector.get(I.AppContext,null,i.InjectFlags.Optional);t&&e&&t.params.set("sessionId",e)},Y.prototype.createHandlingStrategy=function(e,t,r,n){var o;return o=(o=e?e.get(u,null,i.InjectFlags.Optional):"SeparatedSession")||"SeparatedSession",(new W).create(o,r,n,t,e)},Y.decorators=[{type:i.Injectable}],Y.ctorParameters=function(){return[{type:a.HttpClient},{type:String},{type:f},{type:i.Injector}]},Y);function Y(e,t,r,n){this.beBaseUri=t,this.injector=n,this.handlingStrategy=this.createHandlingStrategy(n,e,r,t)}var X,Z="@farris/bef NG_VARIABLE",$=I.makePropDecorator(Z,function(e){return e}),ee=(x(te,X=I.Repository),Object.defineProperty(te.prototype,"restService",{get:function(){return this.dataService.restService},enumerable:!0,configurable:!0}),Object.defineProperty(te.prototype,"changeBuilder",{get:function(){return this.entityManager.changeBuilder},enumerable:!0,configurable:!0}),Object.defineProperty(te.prototype,"changeHandler",{get:function(){return this.entityManager.changeHandler},enumerable:!0,configurable:!0}),te.prototype.getList=function(){return this.dataService.getList(null,null,null,null)},te.prototype.getById=function(e){return this.dataService.getById(e)},te.prototype.updateById=function(e){return this.dataService.updateById(e)},te.prototype.create=function(e){return this.dataService.create(e)},te.prototype.append=function(e){return this.dataService.append(e)},te.prototype.appendByPath=function(e){return this.dataService.appendByPath(e)},te.prototype.removeById=function(e,t){return this.dataService.removeById(e,t)},te.prototype.removeByIds=function(e,t){return this.dataService.removeByIds(e,t)},te.prototype.removeByPath=function(e,t){return this.dataService.removeByPath(e,t)},te.prototype.updateChangesById=function(e){return this.dataService.updateChangesById(e)},te.prototype.updateChangesByPath=function(e,t){throw new Error("Not Implement")},te.prototype.updateAllChanges=function(){return this.dataService.updateAllChanges()},te.prototype.applyChanges=function(){return this.dataService.applyChanges()},te.prototype.updateDataAndVariableChanges=function(){var e={FilterConditions:[],SortConditions:[],IsUsePagination:!0,Pagination:{PageIndex:1,PageSize:1,PageCount:0,TotalCount:0}},t=JSON.stringify(e),r=this.restService.buildRequestInfo();if(this.isEmptyRequestInfo(r))return b.of(null);var n=this.restService.baseUri+"/extension/query?entityFilter="+t,o={body:r};return this.restService.invoke(n,"PUT",null,o,!1,!0,!0)},te.prototype.applyChangesById=function(e){return this.dataService.applyChangesById(e)},te.prototype.cancelChanges=function(e){return this.dataService.cancelChanges(e)},te.prototype.clearAllEntityChanges=function(){return this.entityManager.clearAllEntityChanges()},te.prototype.getDataChangeDetails=function(){return this.entityManager.buildAllEntityChangeDetails()},te.prototype.handleDataChangeDetails=function(e){return this.entityManager.handleDataChangeDetails(e)},te.prototype.getVariableChangeDetail=function(){return this.variableManager.buildChangeDetail()},te.prototype.handleVariableChangeDetail=function(e){this.variableManager.handleChangeDetail(e)},te.prototype.isEmptyRequestInfo=function(e){return!e||(!e.dataChange||e.dataChange.length<1)&&(!e.variableChange||Object.keys(e.variableChange).length<1)},te.decorators=[{type:i.Injectable}],te.ctorParameters=function(){return[]},te);function te(){return X.call(this)||this}var re,ne=(x(oe,re=I.EntityManager),oe.prototype.buildAllEntityChangeDetails=function(){var r=this,n=[];return this.entityCollection.getAllEntities().forEach(function(e){if(0!==e.changes.length){var t=r.changeBuilder.build(e.changes);t&&t.ChangeInfo&&t.ChangeInfo.DataId&&n.push(t)}}),n},oe.prototype.buildEntityChangeDetailById=function(e){var t=this.entityCollection.getEntityById(e);return 0===t.changes.length?null:this.changeBuilder.build(t.changes)},oe.prototype.handleDataChangeDetails=function(e){this.changeHandler.handle(this.entityType,this.entityCollection,e)},oe.prototype.reset=function(){this.entityCollection.clear()},oe);function oe(e){var t=re.call(this,e)||this;return t.changeBuilder=new c(t.entityCollection.entityType,t.entityCollection),t.changeHandler=new y,t}var ie=(ae.createEmpty=function(e,t){var r={ChangeType:e,ChangeInfo:{}};return t&&(r.ChangeInfo.DataId=t),r},ae.getChangeInfo=function(e){return!0===this.isChangeDetail(e)?e.ChangeInfo:e},ae.isChangeDetail=function(e){var t=Object.keys(e);return 2===t.length&&-1<t.indexOf("ChangeType")&&-1<t.indexOf("ChangeInfo")},ae);function ae(){}var se=(pe.prototype.handleChangeDetail=function(e){var o=this,i=e.ChangeInfo;Object.keys(i).forEach(function(e){var t=o.ngVariableMap.get(e);if(t){var r=t.mapping,n=i[e];o.innerValueMap.get(e)!==n&&(o.setValueToUIState(r,n),o.innerValueMap.set(e,n))}})},pe.prototype.buildChangeDetail=function(){var i=this,a=ie.createEmpty(S.Modify);return this.ngVariableMap.forEach(function(e,t){var r=e.mapping,n=i.getValueFromUIState(r),o=i.innerValueMap.get(t);!1===i.isValueEqual(n,o)&&(i.innerValueMap.set(t,n),i.appendToChangeInfo(a,t,n))}),0===Object.keys(a.ChangeInfo).length?null:a},pe.prototype.reset=function(){this.innerValueMap.clear()},pe.prototype.appendToChangeInfo=function(e,t,r){if(!0===this.isUdtVariable(r)){var n=ie.createEmpty(S.Modify);n.ChangeInfo=r,e.ChangeInfo[t]=n}else e.ChangeInfo[t]=r},pe.prototype.getValueFromUIState=function(e){var t=this.getRootUIState(),r=e.split(".").reduce(function(e,t){return e?e[t]:null},t);return r instanceof Date?n.format(r,"yyyy-MM-dd HH:mm:ss"):r},pe.prototype.getRootUIState=function(){var e=this.appContext.frameContextManager.getRootFrameContext();if(this.injector){var t=this.injector.get(I.FrameContext,null);t&&(e=t.getVirtualRootFrameContext()||e)}if(e)return e.uiState},pe.prototype.isValueEqual=function(e,t){return JSON.stringify(e)===JSON.stringify(t)},pe.prototype.isUdtVariable=function(e){return e&&e.constructor&&"[object Object]"===e.toString()&&e.constructor.prototype.hasOwnProperty("isPrototypeOf")},pe.prototype.setValueToUIState=function(e,t){this.getRootUIState()[e]=t},pe.ctorParameters=function(){return[{type:I.AppContext},{type:undefined},{type:i.Injector,decorators:[{type:i.Optional}]}]},pe);function pe(e,t,r){var n=this;this.appContext=e,this.ngVariables=t,this.injector=r,this.ngVariableMap=new Map,this.innerValueMap=new Map,Object.keys(t).forEach(function(e){n.ngVariableMap.set(e,t[e])})}var ue=(ce.buildRequestInfo=function(e){return{dataChange:e.entityManager.buildAllEntityChangeDetails(),variableChange:e.variableManager.buildChangeDetail()}},ce);function ce(){}var he=(ye.convertToPathArray=function(e,t){var n=this,r=I.BindingPathConverter.toBindingPathArray(e),o=[],i=t.list.currentItem;return o.push(i.primaryKeyValue),r.forEach(function(e){var t=I.PropertyUtil.getPropertyByName(i.properties,e);if(t.type!==I.BindingPropertyType.List)throw new Error(t.name+"不是子表对应的属性");var r=i[e];i=r.currentItem,o.push(n.trimTrailingS(e)),o.push(i.primaryKeyValue)}),o},ye.convertToPathUrl=function(e,t){var r=this.convertToPathArray(e,t);return r.pop(),"/"+r.join("/")},ye.convertToObjectCodes=function(e,t){for(var r=this.convertToPathArray(e,t),n=r.length,o=[],i=1;i<n;i+=2)o.push(r[i]);return o},ye.convertToDataIdsForUpdate=function(e,t){for(var r=this.convertToPathArray(e,t),n=r.length,o=[],i=0;i<n;i+=2)o.push(r[i]);return o},ye.convertToDataIdsForAdd=function(e,t){var r=this.convertToDataIdsForUpdate(e,t);return r.pop(),r},ye.convertPathToUrl=function(e){for(var t=e.split("/"),r=t.length-1;0<r;r--)t[r]&&t[r].endsWith("s")&&(t[r]=t[r].substr(0,t[r].length-1).toLowerCase());return t.join("/")},ye.trimTrailingS=function(e){return e.substr(0,e.length-1)},ye.convertPathsToNodeCodes=function(e){var t=[];return!e||e.length<1||e.filter(function(e){return!!e&&-1===e.indexOf(":")}).forEach(function(e){t.push(e)}),t},ye.convertPathsToIds=function(e){var t=[];return!e||e.length<1||e.filter(function(e){return!!e&&-1!==e.indexOf(":")}).forEach(function(e){t.push(e.split(":")[1])}),t},ye);function ye(){}var le=(Object.defineProperty(de.prototype,"restProxy",{get:function(){return this.repository.restService.proxy},enumerable:!0,configurable:!0}),de.prototype.getList=function(e,t,r,n){var p=this;0!==r&&(r=r||this.repository.entityCollection.pageSize,n=n||this.repository.entityCollection.pageIndex);var o=this.buildEntityFilter(e,t,r,n),i=this.restService.buildRequestInfo();return this.restProxy.extendQuery(o,i).pipe(d.map(function(e){var t=e.returnValue,r=t.result,n=[];r.forEach(function(e){var t=p.repository.buildEntity(e);C.appendInitialData(t,e),n.push(t)});var o=t.pagination;if(o&&0<Object.keys(o).length){var i=o.pageSize,a=o.pageIndex,s=o.totalCount;p.repository.entityCollection.updatePaginationInfoByPath("/",{pageIndex:a,pageSize:i,totalCount:s})}else p.repository.entityCollection.updatePaginationInfoByPath("/",{pageIndex:1,pageSize:0,totalCount:n.length});return p.repository.entityCollection.loadEntities(n),n}))},de.prototype.filter=function(e,t,r,n){var p=this;0!==r&&(r=r||this.repository.entityCollection.pageSize,n=n||this.repository.entityCollection.pageIndex);var o=this.buildEntityFilter(e,t,r,n),i=this.restService.buildRequestInfo();return this.restProxy.filter(o,i).pipe(d.map(function(e){var t=e.returnValue,r=t.result,n=[];r.forEach(function(e){var t=p.repository.buildEntity(e);C.appendInitialData(t,e),n.push(t)});var o=t.pagination;if(o&&0<Object.keys(o).length){var i=o.pageSize,a=o.pageIndex,s=o.totalCount;p.repository.entityCollection.updatePaginationInfoByPath("/",{pageIndex:a,pageSize:i,totalCount:s})}else p.repository.entityCollection.updatePaginationInfoByPath("/",{pageIndex:1,pageSize:0,totalCount:n.length});return p.repository.entityCollection.loadEntities(n),n}))},de.prototype.buildEntityFilter=function(e,t,r,n){return e||t||r||n?(e&&0<e.length&&(e[e.length-1].Relation=0),{FilterConditions:e,SortConditions:t,IsUsePagination:0!==r,Pagination:{PageIndex:n,PageSize:r,PageCount:0,TotalCount:0}}):null},de.prototype.getById=function(e){var n=this,t=this.restService.buildRequestInfo();return this.restService.extendRetrieve(e,t).pipe(d.map(function(e){var t=e.returnValue,r=n.repository.buildEntity(t);return n.repository.entityCollection.loadEntities([r]),r}))},de.prototype.getPagedById=function(o){var i=this,e=this.restService.buildRequestInfo(),t=this.repository.entityCollection.getPaginationConfigByPath("/"),r=this.buildChildPagination(t),n=this.buildRetrieveParam(r);return this.restService.serviceRetrieve(o,n,e).pipe(d.map(function(e){var t=e.dataResult,r=e.paginations;i.updatePagination(r);var n=i.repository.entityCollection.getEntityById(o);return i.reloadEntityData(n,t),n}))},de.prototype.queryChild=function(s,e,t,r,n){var p=this,o=this.restService.buildRequestInfo(),u=he.convertPathsToNodeCodes(s),i=u.map(function(e){return e.substring(0,e.length-1)}),a=he.convertPathsToIds(s),c=B({nodeCodes:i,ids:a,pagination:{pageIndex:e,pageSize:t}},o),h=u[u.length-1];return h=h.substring(0,h.length-1),this.restService.queryChild(c).pipe(d.map(function(e){console.log(e);var t=e.returnValue;if(!t)return null;var r=t.result,n=void 0===r?[]:r,o=t.pagination,i=void 0===o?{}:o,a=[];n.forEach(function(e){var t=new(I.FieldMetadataUtil.getNgList(p.repository.entityType)[u[u.length-1]].type)(e);C.appendInitialData(t,e),a.push(t)}),u=u.map(function(e){return e.charAt(0).toLocaleLowerCase()+e.substr(1)}),p.repository.entityCollection.resetEntities(s,a),p.repository.entityCollection.setPaginationConfigByPath("/"+h,i)}))},de.prototype.buildChildPagination=function(r){var n={};return Object.keys(r).forEach(function(e){var t=r[e];"object"==typeof t&&(n[e]=t)}),n},de.prototype.updatePagination=function(t){var r=this;t&&Object.keys(t).forEach(function(e){r.repository.entityCollection.setPaginationConfigByPath("/"+e,t[e])})},de.prototype.buildRetrieveParam=function(n){var e={};if(n&&0<Object.keys(n).length){var o=[];Object.keys(n).forEach(function(e){var t=n[e],r={};r[e]={pagination:{pageSize:t.pageSize||0,pageIndex:1}},o.push(r)}),e.filters=o}return e},de.prototype.editById=function(n){var o=this;if(!this.repository.entityCollection.getEntityById(n))return b.of(null);var e=ue.buildRequestInfo(this.repository);return this.restProxy.edit(n,e).pipe(d.map(function(e){var t=e.returnValue.data,r=o.repository.entityCollection.getEntityById(n);return r&&t&&o.reloadEntityData(r,t),r}))},de.prototype.updateById=function(n){var o=this;if(!this.repository.entityCollection.getEntityById(n))return b.of(null);var e=this.restService.buildRequestInfo();return this.restService.extendRetrieve(n,e).pipe(d.map(function(e){var t=e.returnValue,r=o.repository.entityCollection.getEntityById(n);return o.reloadEntityData(r,t),r}))},de.prototype.reloadEntityData=function(e,t){e&&(this.appContext.changeDetectionController.detach(),this.repository.entityCollection.updateEntity(e,t),e.changes.splice(0,e.changes.length),this.appContext.changeDetectionController.reattach())},de.prototype.create=function(e){var n=this,t=this.restService.buildRequestInfo();return this.restService.create(e,t).pipe(d.map(function(e){var t=e.returnValue,r=n.repository.buildEntity(t);return C.appendInitialData(r,t),n.repository.entityCollection.loadEntities([r]),r}))},de.prototype.append=function(e){var n=this,t=this.restService.buildRequestInfo();return this.restService.create(e,t).pipe(d.map(function(e){var t=e.returnValue,r=n.repository.buildEntity(t);return n.repository.entityCollection.addEntity(r),r}))},de.prototype.insert=function(n,e){var o=this,t=this.buildRequestInfo();return this.restProxy.create(e,t).pipe(d.map(function(e){var t=e.returnValue,r=o.repository.buildEntity(t);return o.repository.entityCollection.insertEntity(r,n),r}))},de.prototype.appendByPath=function(r){var n=this,e=this.restService.buildRequestInfo();return this.restService.createByPath(r,e).pipe(d.map(function(e){var t=e.returnValue;return n.repository.entityManager.appendEntityByPath(r,t,t)}))},de.prototype.insertByPath=function(r,n){var o=this,e=this.buildRequestInfo();return this.restProxy.createByPath(r,e).pipe(d.map(function(e){var t=e.returnValue;return o.repository.entityManager.insertEntityByPath(r,t,t,n)}))},de.prototype.removeById=function(e,t){var r=this;t=t===undefined||t;var n=ue.buildRequestInfo(this.repository);return t?this.restProxy.deleteAndSave(e,n).pipe(d.switchMap(function(){return r.repository.entityCollection.removeEntityById(e),b.of(!0)})):this.restService.extendDelete(e,n).pipe(d.switchMap(function(){return r.repository.entityCollection.removeEntityById(e),r.repository.dataChangeHistory.addChange({dataId:e,changeType:I.DataChangeType.Delete}),b.of(!0)}))},de.prototype.removeAndSaveById=function(e){var t=this,r=ue.buildRequestInfo(this.repository);return this.restProxy.deleteAndSave(e,r).pipe(d.switchMap(function(){return t.repository.entityCollection.removeEntityById(e),b.of(!0)}))},de.prototype.removeByIds=function(r,e){var n=this;e=e===undefined||e;var t=this.restService.buildRequestInfo();return this.restService.extendBatchDelete(r,t).pipe(d.switchMap(function(){if(e)return n.applyChangesByIdArray(r).pipe(d.tap(function(e){e&&n.repository.entityCollection.removeEntities(function(e){return n.checkEntityValueExists(e,r)})}));if(n.repository.entityCollection.removeEntities(function(e){return n.checkEntityValueExists(e,r)}),r&&0<r.length){var t=[];r.forEach(function(e){t.push({dataId:e,changeType:I.DataChangeType.Delete})}),n.repository.dataChangeHistory.addChanges(t)}return b.of(!0)}))},de.prototype.checkEntityValueExists=function(e,t){for(var r=!1,n=0;n<t.length;n++)if(e.primaryValue===t[n]){r=!0;break}return r},de.prototype.removeByPath=function(e,t){var r=this,n=this.restService.buildRequestInfo();return this.restService.extendDeletByPath(e,t,n).pipe(d.map(function(){return r.repository.entityManager.removeEntityByPath(e,t),r.repository.dataChangeHistory.addChange({fpath:e,dataId:t,changeType:I.DataChangeType.Delete}),!0}))},de.prototype.batchRemoveByPath=function(t,r){var n=this,e=this.restService.buildRequestInfo();return this.restService.batchDeleteByPath(t,r,e).pipe(d.map(function(){var e=r.split(",");return 0<e.length&&e.forEach(function(e){n.repository.entityManager.removeEntityByPath(t,e),n.repository.dataChangeHistory.addChange({fPath:t,dataId:e,changeType:I.DataChangeType.Delete})}),!0}))},de.prototype.updateChangesById=function(e){var t=this,r=this.repository.entityCollection.getEntityById(e);if(!r.changes)return b.of(!0);if(0===r.changes.length)return b.of(!0);var n=this.repository.entityManager.buildEntityChangeDetailById(e),o=this.restService.buildRequestInfo();return this.restService.update(n,o).pipe(d.tap(function(){t.repository.entityManager.clearEntityChangesById(e)}),d.map(function(){return!0}))},de.prototype.updateChangesByPath=function(e,t){throw new Error("Not Implement")},de.prototype.updateAllChanges=function(){var r=this,n=[],e=this.repository.entityCollection.toArray();return 0===e.length?b.of(!0):(e.forEach(function(e){var t=r.updateChangesById(e.primaryValue);n.push(t)}),b.zip.apply(void 0,D(n)).pipe(d.map(function(){return!0})))},de.prototype.applyChanges=function(){var e=this,t=this.restService.buildRequestInfo();return this.restService.save(t).pipe(d.tap(function(){e.repository.entityManager.clearAllEntityChanges(),e.repository.dataChangeHistory.clear()}),d.map(function(){return!0}))},de.prototype.applyChangesByIdArray=function(e){var t=this,r=this.restService.buildRequestInfo();return this.restService.save(r).pipe(d.tap(function(){t.repository.entityManager.clearEntityChangesByArray(e),t.repository.dataChangeHistory.clearByIds(e)}),d.map(function(){return!0}))},de.prototype.applyChangesById=function(e){var t=this,r=this.restService.buildRequestInfo();return this.restService.save(r).pipe(d.tap(function(){t.repository.entityManager.clearEntityChangesById(e),t.repository.dataChangeHistory.clearByIds([e])}),d.map(function(){return!0}))},de.prototype.cancelChanges=function(e){var t=this;return this.restService.cancel(e).pipe(d.tap(function(){t.repository.entityManager.clearAllEntityChanges(),t.repository.dataChangeHistory.clear()}),d.map(function(){return!0}))},de.prototype.batchAppendByPath=function(o,e){var i=this,t=this.buildRequestInfo();return this.restProxy.batchAppendByPath(o,e,t).pipe(d.map(function(e){var t=e.returnValue,r=i.repository.entityManager.createEntitiesByPath(o,t),n=o.split("/").filter(function(e){return e});return i.repository.entityManager.appendEntitiesByPath(n,r),r}))},de.prototype.batchAppend=function(e){var n=this,t=this.buildRequestInfo();return this.restProxy.batchAppend(e,t).pipe(d.map(function(e){var t=e.returnValue,r=n.repository.buildEntities(t);return n.repository.entityCollection.addEntities(r),r}))},de.prototype.buildRequestInfo=function(){return{dataChange:this.repository.entityManager.buildAllEntityChangeDetails(),variableChange:this.repository.variableManager.buildChangeDetail()}},de);function de(e,t){this.injector=e,this.repository=t;var r=e.get(f),n=e.get(a.HttpClient),o=e.get(p)+"/"+this.repository.apiUri,i=e.get(I.EventBus);this.restService=new we(n,o,r,this.repository,i),this.appContext=e.get(I.AppContext)}var fe=(ge.handleMessage=function(e,t,r){var n={ns:t.get(I.NAMESPACE,null),appContext:t.get(I.AppContext,null)},o=this.buildBackEndMessages(e),i=new I.BackEndMessage.Message(o,n),a=t.get(I.BACK_END_MESSAGE_HANDLER_TOKEN,null);a&&a.handle(i,r)},ge.isBackEndMessageHandlerExist=function(e){return!!e.get(I.BACK_END_MESSAGE_HANDLER_TOKEN,null)},ge.getFormlessMessages=function(e){return(this.buildBackEndMessages(e)||[]).filter(function(e){return!e.location||!e.location.columns||e.location.columns.length<1||!e.location.nodeCode})},ge.buildBackEndMessages=function(e){if(!e||e.length<1||!Array.isArray(e))return null;var r=[];return e.forEach(function(e){var t={level:e.level,message:e.message};e.hasOwnProperty("location")&&e.location&&(t.location={nodeCode:e.location.nodeCode,rows:e.location.dataIds,columns:e.location.columnNames}),r.push(t)}),r},ge);function ge(){}var ve=(Ie.getSessionId=function(e,t){var r=e.ApplicationId+"_"+t.beBaseUri;return this.createSessionHistory.includes(r)?b.of(null):(this.createSessionHistory.push(r),t.getBeSessionId())},Ie.createSessionHistory=[],Ie.decorators=[{type:i.Injectable}],Ie);function Ie(){}var Se=(be.prototype.onResponse=function(e,t){e&&e.innerDataChange&&!0!==t&&this.context.handleDataChangeDetails(e.innerDataChange),e&&e.innerVariableChange&&this.context.handleVariableChangeDetail(e.innerVariableChange);var r=A.parseBackEndMessage(e);return fe.handleMessage(r,this.context.getInjector()),this.context.clearAllEntityChanges(),e&&e.hasOwnProperty("returnValue")?e.returnValue:e},be.prototype.onError=function(e,t,r){var n,o,i=this.context.appContext.getFormAppContext(),a=i.ApplicationId,s=window.DEVKIT_LOADING_SERVICE,p=A.parseBackEndError(e);if(fe.handleMessage(p,this.context.getInjector()),s&&s instanceof Array&&0<s.length)try{for(var u=P(s),c=u.next();!c.done;c=u.next()){var h=c.value;"function"==typeof h.clearAll&&h.clearAll()}}catch(S){n={error:S}}finally{try{c&&!c.done&&(o=u["return"])&&o.call(u)}finally{if(n)throw n.error}}if(t)return b.throwError(e);var y=this.context.restService.eventBus,l=!!(window[a]||{}).isExceptionHandlerExist,d=A.parseBackEndError(e),f=fe.getFormlessMessages(d),g=f&&0<f.length||!1,v=!(e&&e.error&&e.error.extensionMessage&&fe.isBackEndMessageHandlerExist(this.context.getInjector())&&!g),I=!!y&&l&&v;return fe.handleMessage(d,this.context.getInjector(),{hasThrowError:I,isException:!0,eventBus:y,error:e,formAppContext:i}),y&&l&&!A.isReported401Error(e)?(v&&y.post("Exception","","onException",e,i),r?b.of(null):b.EMPTY):b.throwError(e)},be.prototype.extendHeaders=function(t,r){var n=this,e=this.context.appContext.getFormAppContext();return ve.getSessionId(e,this.context.restService.sessionService).pipe(d.switchMap(function(e){return t=n.context.restService.sessionService.extendRequestHeaders(t,r),b.of(t)}))},be.prototype.extendUrl=function(e,t){if(!t)return e;for(var r in t)if(t.hasOwnProperty(r)){var n=JSON.stringify(t[r]);e=-1===e.indexOf("?")?e+"?"+r+"="+n:e+"&"+r+"="+n}return e},be.prototype.extendBody=function(t){var r=this;return!t||"object"!=typeof t||Object.keys(t).length<1||(Object.keys(t).forEach(function(e){"requestInfo"===e&&(t.requestInfo=r.context.restService.buildRequestInfo())}),1===Object.keys(t).length&&(t=Object.values(t)[0])),t},be.prototype.parseHeaders=function(e){var t="BEFSessionID";e.headers&&e.headers.has(t)&&this.context.restService.sessionService.setBeSessionId(e.headers.get(t))},be);function be(e){this.context=e}var Ce,me=(x(Ee,Ce=ee),Object.defineProperty(Ee.prototype,"proxy",{get:function(){return this.befProxy},set:function(e){this.befProxy=e,this.befProxy.setProxyExtend(new Se(this))},enumerable:!0,configurable:!0}),Ee.prototype.getEntities=function(e,t,r,n){return this.dataService.getList(e,t,r,n)},Ee.prototype.filter=function(e,t,r,n){return void 0===e&&(e=[]),void 0===t&&(t=[]),this.dataService.filter(e,t,r,n)},Ee.prototype.getPagedById=function(e){return this.dataService.getPagedById(e)},Ee.prototype.queryChild=function(e,t,r,n,o){return this.dataService.queryChild(e,t,r,n,o)},Ee.prototype.getEntityById=function(e){return this.dataService.getById(e)},Ee.prototype.updateEntityById=function(e){return this.dataService.updateById(e)},Ee.prototype.editEntityById=function(e){return this.dataService.editById(e)},Ee.prototype.createEntity=function(e){return this.dataService.create(e)},Ee.prototype.appendEntity=function(e){return this.dataService.append(e)},Ee.prototype.insert=function(e,t){return this.dataService.insert(e,t)},Ee.prototype.insertByPath=function(e,t){return this.dataService.insertByPath(e,t)},Ee.prototype.appendEntityByPath=function(e){return this.dataService.appendByPath(e)},Ee.prototype.removeEntityById=function(e,t){return this.dataService.removeById(e,t)},Ee.prototype.removeEntityAndSaveById=function(e){return this.dataService.removeAndSaveById(e)},Ee.prototype.removeEntityByPath=function(e,t){return this.dataService.removeByPath(e,t)},Ee.prototype.batchRemoveByPath=function(e,t){return this.dataService.batchRemoveByPath(e,t)},Ee.prototype.saveEntityById=function(e){return this.dataService.applyChangesById(e)},Ee.prototype.saveEntities=function(){return this.dataService.applyChanges()},Ee.prototype.cancelEntityChanges=function(){return this.dataService.cancelChanges()},Ee.prototype.batchAppendByPath=function(e,t){return this.dataService.batchAppendByPath(e,t)},Ee.prototype.batchAppend=function(e){return this.dataService.batchAppend(e)},Ee.prototype.reset=function(){this.entityManager.reset(),this.variableManager.reset(),this.restService.sessionService.clearBeSessionId()},Ee.prototype.getInjector=function(){return this.injector},Ee.decorators=[{type:i.Injectable}],Ee.ctorParameters=function(){return[{type:i.Injector}]},Ee);function Ee(e){var t=Ce.call(this)||this;t.injector=e,t.entityManager=new ne(t.entityCollection),t.appContext=t.injector.get(I.AppContext);var r=I.MetadataUtil.getPropsMetadatasByName(t.constructor,Z);return t.variableManager=new se(t.appContext,r,t.injector),t.dataService=new le(t.injector,t),t.serverUri=e.get(p),t}var xe=(Be.prototype.extendUri=function(e){return this.serverUri+"/"+e},Be.decorators=[{type:i.Injectable}],Be.ctorParameters=function(){return[{type:String,decorators:[{type:i.Inject,args:[p]}]}]},Be);function Be(e){this.serverUri=e}var Pe="DELETE",Re="PUT",De="POST",qe=(Oe.prototype.setBaseUri=function(e){this.baseUri=e},Oe.prototype.setProxyExtend=function(e){this.proxyExtend=e},Oe.prototype.query=function(e){var t=this.baseUri;return e&&(t=t+"?entityFilter="+JSON.stringify(e)),this.request(t,"GET")},Oe.prototype.extendQuery=function(e,t){var r=this.baseUri+"/extension/query";if(e){var n=JSON.stringify(e);r=r+"?entityFilter="+(n=I.encodeUrl(n))}var o=t,i=this.addBodyToOptions({},o);return this.request(r,Re,null,i,!1)},Oe.prototype.filter=function(e,t){var r=this.baseUri+"/extension/filter",n={requestInfo:t};e&&(n={entityFilter:e,requestInfo:t});var o=this.addBodyToOptions({},n);return this.request(r,De,null,o,!1)},Oe.prototype.retrieve=function(e){var t=this.baseUri+"/"+e;return this.request(t,"GET")},Oe.prototype.serviceRetrieve=function(e,t,r){var n=this.baseUri+"/service/retrieve/"+e,o={body:{retrieveParam:t,requestInfo:r}};return this.request(n,Re,null,o)},Oe.prototype.queryChild=function(e){var t=this.baseUri+"/service/querychild",r={body:e};return this.request(t,Re,null,r)},Oe.prototype.extendRetrieve=function(e,t){var r=this.baseUri+"/extension/retrieve/"+e,n=t,o=this.addBodyToOptions({},n);return this.request(r,Re,null,o)},Oe.prototype.edit=function(e,t){var r=this.baseUri+"/service/edit/"+e,n=t,o=this.addBodyToOptions({},n);return this.request(r,Re,null,o)},Oe.prototype.create=function(e,t){var r={defaultValue:e,requestInfo:t},n=this.addBodyToOptions({},r);return this.request(this.baseUri,De,null,n)},Oe.prototype.createByPath=function(e,t){var r=he.convertPathToUrl(e),n=""+this.baseUri+r,o=t,i=this.addBodyToOptions({},o);return this.request(n,De,null,i)},Oe.prototype.update=function(e,t){var r={changeDetail:e,requestInfo:t},n=this.addBodyToOptions({},r);return this.request(this.baseUri,"PATCH",null,n)},Oe.prototype.save=function(e){var t=e,r=this.addBodyToOptions({},t);return this.request(this.baseUri,Re,null,r)},Oe.prototype["delete"]=function(e){var t=this.baseUri+"/"+e;return this.request(t,Pe)},Oe.prototype.deleteAndSave=function(e,t){var r=this.baseUri+"/service/delete/"+e,n=t,o=this.addBodyToOptions({},n);return this.request(r,Re,null,o)},Oe.prototype.extendDelete=function(e,t){var r=this.baseUri+"/extension/delete/"+e,n=t,o=this.addBodyToOptions({},n);return this.request(r,Re,null,o)},Oe.prototype.deletByPath=function(e,t){var r=he.convertPathToUrl(e),n=""+this.baseUri+r+"/"+t;return this.request(n,Pe)},Oe.prototype.extendDeletByPath=function(e,t,r){var n=he.convertPathToUrl(e),o=this.baseUri+"/extension"+n+"/"+t,i=r,a=this.addBodyToOptions({},i);return this.request(o,Re,null,a)},Oe.prototype.batchDeleteByPath=function(e,t,r){var n=he.convertPathToUrl(e);if(n.split("/").length<3)throw Error("根据path删除实体数据出错了。传入的path["+e+"]格式不对");var o=this.baseUri+"/extension"+n+"/batch",i={ids:t.split(","),requestInfo:r},a=this.addBodyToOptions({},i);return this.request(o,Re,null,a)},Oe.prototype.batchDelete=function(e){var t={ids:e.join(",")};return this.request(this.baseUri,Pe,t)},Oe.prototype.extendBatchDelete=function(e,t){var r=this.baseUri+"/extension/batchdelete",n={ids:e.join(",")},o=t,i=this.addBodyToOptions({},o);return this.request(r,Re,n,i)},Oe.prototype.cancel=function(e){var t=this.baseUri+"/service/cancel";return this.request(t,De,null,null,!1,!1,!1,e)},Oe.prototype.batchAppendByPath=function(e,t,r){var n=he.convertPathToUrl(e),o=""+this.baseUri+n+"/batch",i={requestInfo:r,retrieveDefaultParam:{defaultValues:t}},a=this.addBodyToOptions({},i);return this.request(o,De,null,a)},Oe.prototype.batchAppend=function(e,t){var r=this.baseUri+"/batch",n={requestInfo:t,retrieveDefaultParam:{defaultValues:e}},o=this.addBodyToOptions({},n);return this.request(r,De,null,o)},Oe.prototype.request=function(t,r,e,n,o,i,a,s){var p=this;n=n||{},void 0!==o&&"boolean"==typeof o||(o=!1),void 0!==i&&"boolean"==typeof i||(i=!1),e&&(n.params=e),n.headers=q.convertToHeaders(n.headers);var u=this.hasRequestInfo(n);return n&&n.body&&n.body.hasOwnProperty("RequestInfo")&&(n.body.requestInfo=n.body.RequestInfo,delete n.body.RequestInfo),this.proxyExtend.extendHeaders(n.headers,s).pipe(d.switchMap(function(e){return n.headers=q.toJson(e),n.observe="response",p.httpService.request(r,t,n)}),d.tap(function(e){return p.proxyExtend.parseHeaders(e)}),d.map(function(e){return e.body}),d.map(function(e){return u?(p.proxyExtend.onResponse(e,a),e):p.unWrapResponseInfo(e)}),d.catchError(function(e){return p.proxyExtend.onError(e,o,i)}))},Oe.prototype.invoke=function(t,r,n){var o=this;return n.params&&(t=this.proxyExtend.extendUrl(t,n.params),n.params=null),n.body&&(n.body=this.proxyExtend.extendBody(n.body)),n.headers=q.convertToHeaders(n.headers),this.proxyExtend.extendHeaders(n.headers).pipe(d.switchMap(function(e){return n.headers=q.toJson(e),n.observe="response",o.httpService.request(r,t,n).pipe(d.tap(function(e){return o.proxyExtend.parseHeaders(e)}),d.map(function(e){return e.body}),d.map(function(e){return o.proxyExtend.onResponse(e)}),d.catchError(function(e){return o.proxyExtend.onError(e,!1,!1)}))}))},Oe.prototype.addBodyToOptions=function(e,t){return e=e||{},Object.assign(e,{body:t})},Oe.prototype.buildParams=function(e){return w.buildParams(e)},Oe.prototype.hasRequestInfo=function(e){return T.hasRequestInfo(e)||T.hasRequestInfoWithR(e)},Oe.prototype.unWrapResponseInfo=function(e){return A.unWrapResponseInfo(e)},Oe.decorators=[{type:i.Injectable}],Oe.ctorParameters=function(){return[{type:a.HttpClient},{type:xe}]},Oe);function Oe(e,t){this.httpClient=e,this.uriService=t,this.httpService=new H(this.httpClient)}var we=(Object.defineProperty(Me.prototype,"proxy",{get:function(){return this.repository.proxy?this.repository.proxy:this.createBefProxy()},enumerable:!0,configurable:!0}),Me.prototype.createBefProxy=function(){var e=this.repository.serverUri,t=new xe(e),r=new qe(this.httpClient,t);r.setBaseUri(this.baseUri);var n=new Se(this.repository);return r.setProxyExtend(n),r},Me.prototype.query=function(e){return this.proxy.query(e)},Me.prototype.extendQuery=function(e,t){return this.proxy.extendQuery(e,t)},Me.prototype.serviceRetrieve=function(e,t,r){return this.proxy.serviceRetrieve(e,t,r)},Me.prototype.queryChild=function(e){return this.proxy.queryChild(e)},Me.prototype.retrieve=function(e){return this.proxy.retrieve(e)},Me.prototype.extendRetrieve=function(e,t){return this.proxy.extendRetrieve(e,t)},Me.prototype.create=function(e,t){return this.proxy.create(e,t)},Me.prototype.createByPath=function(e,t){return this.proxy.createByPath(e,t)},Me.prototype.update=function(e,t){return this.proxy.update(e,t)},Me.prototype.save=function(e){return this.proxy.save(e)},Me.prototype["delete"]=function(e){return this.proxy["delete"](e)},Me.prototype.extendDelete=function(e,t){return this.proxy.extendDelete(e,t)},Me.prototype.deletByPath=function(e,t){return this.proxy.deletByPath(e,t)},Me.prototype.extendDeletByPath=function(e,t,r){return this.proxy.extendDeletByPath(e,t,r)},Me.prototype.batchDeleteByPath=function(e,t,r){return this.proxy.batchDeleteByPath(e,t,r)},Me.prototype.batchDelete=function(e){return this.proxy.batchDelete(e)},Me.prototype.extendBatchDelete=function(e,t){return this.proxy.extendBatchDelete(e,t)},Me.prototype.cancel=function(e){return this.proxy.cancel(e)},Me.prototype.request=function(e,t,r,n,o,i,a){return this.innerRequest(e,t,r,n,o,i,a,!1)},Me.prototype.invoke=function(e,t,r,n,o,i,a){if(n&&n.body&&n.body.RequestInfo)throw new Error("请使用requestInfo提交变更");return this.innerRequest(e,t,r,n,o,i,a,!0)},Me.prototype.innerRequest=function(t,r,e,n,o,i,a,s){var p=this;n=n||{};var u="BEFSessionID";void 0!==o&&"boolean"==typeof o||(o=!1),void 0!==i&&"boolean"==typeof i||(i=!1),void 0!==s&&"boolean"==typeof s||(s=!1);var c=s?this.existRequestInfo:this.hasRequestInfo;e&&(n.params=e);var h=c(n),y=q.convertToHeaders(n.headers),l=this.repository.appContext.getFormAppContext();return ve.getSessionId(l,this.sessionService).pipe(d.switchMap(function(e){return y=p.sessionService.extendRequestHeaders(y),n.headers=q.toJson(y),n.observe="response",p.httpService.request(r,t,n)}),d.tap(function(e){e.headers&&e.headers.has(u)&&p.sessionService.setBeSessionId(e.headers.get(u))}),d.map(function(e){return e.body}),d.map(function(e){var t=A.parseBackEndMessage(e);return fe.handleMessage(t,p.repository.getInjector()),p.handleReponseInfo(e,h,a)}),d.catchError(function(e){return p.handleErrors(e,o,i)}))},Me.prototype.handleReponseInfo=function(e,t,r){return t?(e&&e.innerDataChange&&!0!==r&&this.repository.handleDataChangeDetails(e.innerDataChange),e&&e.innerVariableChange&&this.repository.handleVariableChangeDetail(e.innerVariableChange),this.repository.clearAllEntityChanges(),e):this.unWrapResponseInfo(e)},Me.prototype.handleErrors=function(e,t,r){if(this.clearLoading(),t)return b.throwError(e);var n=this.repository.appContext.getFormAppContext(),o=n.ApplicationId,i=window[o]||{},a=A.parseBackEndError(e),s=fe.getFormlessMessages(a),p=!!i.isExceptionHandlerExist,u=s&&0<s.length||!1,c=!(e&&e.error&&e.error.extensionMessage&&fe.isBackEndMessageHandlerExist(this.repository.getInjector())&&!u),h=!!this.eventBus&&p&&c;return fe.handleMessage(a,this.repository.getInjector(),{hasThrowError:h,isException:!0,eventBus:this.eventBus,error:e,formAppContext:n}),this.eventBus&&p&&!A.isReported401Error(e)?(c&&this.eventBus.post("Exception","","onException",e,n),r?b.of(null):b.EMPTY):b.throwError(e)},Me.prototype.clearLoading=function(){var e,t;if(!1!==(window.DEVKIT_LOADING_SERVICE&&window.DEVKIT_LOADING_SERVICE instanceof Array&&0<window.DEVKIT_LOADING_SERVICE.length||!1)){var r=window.DEVKIT_LOADING_SERVICE;try{for(var n=P(r),o=n.next();!o.done;o=n.next()){var i=o.value;"function"==typeof i.clearAll&&i.clearAll()}}catch(a){e={error:a}}finally{try{o&&!o.done&&(t=n["return"])&&t.call(n)}finally{if(e)throw e.error}}}},Me.prototype.unWrapResponseInfo=function(e){return A.unWrapResponseInfo(e)},Me.prototype.hasRequestInfo=function(e){return T.hasRequestInfoWithR(e)},Me.prototype.existRequestInfo=function(e){return T.hasRequestInfo(e)},Me.prototype.buildParams=function(e){return w.buildParams(e)},Me.prototype.buildBodyWithRequestInfo=function(e){return T.buildBodyWithRequestInfo(e,this.repository)},Me.prototype.buildRequestInfo=function(){return T.buildRequestInfo(this.repository)},Me.decorators=[{type:i.Injectable}],Me.ctorParameters=function(){return[{type:a.HttpClient},{type:String},{type:f},{type:me},{type:I.EventBus}]},Me);function Me(e,t,r,n,o){this.httpClient=e,this.httpService=new H(this.httpClient),this.baseUri=t;var i=n.getInjector();this.sessionService=new Q(e,t,r,i),this.repository=n,this.eventBus=o}var Te=(je.prototype.getData=function(e,t){var r=e.split(".")[0],n=e.split(".")[1];return t=t||{},!0===this.ifEnableExtendLoadMethod(e)?this.extendGetHelpData(n,r,t):this.getHelpData(n,r,t)},je.prototype.saveUserSettings=function(e){return this.befRepository.restService.invoke("/api/runtime/bcc/v1.0/datagrid/settings","POST",null,{body:e},!1)},je.prototype.getUserSettings=function(e){var t="/api/runtime/bcc/v1.0/datagrid/settings/"+e;return this.befRepository.restService.invoke(t,"GET",null,null,!1)},je.prototype.ifEnableExtendLoadMethod=function(e){if(this.context&&this.context.hasOwnProperty("enableExtendLoadMethod"))return this.context.enableExtendLoadMethod;var t=!1;if(this.frameContext){var r=e+"@"+this.frameContext.repository.apiUri;t=this.frameContext.getParam(r)}return t},je.prototype.getHelpData=function(e,t,r){var n=this,o=this.befRepository.restService.baseUri+"/elementhelps/"+e;return this.befRepository.updateDataAndVariableChanges().pipe(d.switchMap(function(){return n.befRepository.restService.invoke(o,"GET",{nodeCode:t,queryParam:JSON.stringify(r)},null,!1)}))},je.prototype.extendGetHelpData=function(e,t,r){var n=this.befRepository.restService.baseUri+"/extension/elementhelps",o={body:{labelId:e,nodeCode:t,queryParam:r,requestInfo:this.befRepository.restService.buildRequestInfo()}};return this.befRepository.restService.invoke(n,"PUT",null,o,!1,!0,!0).pipe(d.map(function(e){return e&&e.returnValue||null}))},je.prototype.convert2TreeDataWithPathCode=function(n,t,r){var o=this;void 0===t&&(t=1),void 0===r&&(r="01");var e=n.filter(function(e){return e.layer===t&&e.pathcode===r});if(1<t&&(e=n.filter(function(e){return e.layer===t&&e.pathcode.substr(0,2*(t-1))===r})),e.length){var i=e.map(function(e){return{data:e,children:[]}});return i.forEach(function(e){var t,r=o.convert2TreeDataWithPathCode(n,e.data.layer+1,e.data.pathcode);(t=e.children).push.apply(t,D(r))}),i}},je.decorators=[{type:i.Injectable}],je.ctorParameters=function(){return[{type:I.Repository},{type:I.FrameContext,decorators:[{type:i.Optional}]}]},je);function je(e,t){this.frameContext=t,this.befRepository=e}var Ae=(Ue.prototype.createSession=function(e){var t=this.sessionService.getUserSessionId();return t?this.befRepository.restService.invoke(e,"POST",null,{headers:new a.HttpHeaders({SessionId:t}),responseType:"text"},!1).pipe(d.switchMap(function(e){return b.of({status:!0,payload:e})})):b.of({status:!1,payload:"用户登录信息已过期,请重新登录"})},Ue.prototype.getData=function(e,t){var r=this,n={};t.condition&&(n=t.condition),"/"===e[e.length-1]&&(e=e.substr(0,e.length-1));var o=e+"/extension/query",i=e+"/service/createsession";if(n){var a=JSON.stringify(n);o=o+"?entityFilter="+a}return this.createSession(i).pipe(d.switchMap(function(e){if(e.status)return e.payload,r.befRepository.restService.invoke(o,"PUT",null,{},!1);throw new Error(e.payload)}),s.map(function(e){var t=e.returnValue,r={items:t.result};return t.pagination?Object.assign({},r,{total:t.pagination.totalCount,pageInfo:{pageSize:t.pagination.pageSize,pageIndex:t.pagination.pageIndex,enablePager:!0}}):r}))},Ue.decorators=[{type:i.Injectable}],Ue.ctorParameters=function(){return[{type:I.Repository},{type:f}]},Ue);function Ue(e,t){this.sessionService=t,this.befRepository=e}var He=(Ve.isExistUnsaveData=function(e){var t=!1;if(!e||!e.entityCollection)throw"Current Object is null or it's entityCollection is null.";var r=e.entityCollection.toArray();if(e.dataChangeHistory.isChanged())return!0;for(var n=0;n<r.length;n++)if(0<r[n].changes.length){t=!0;break}return t},Ve);function Ve(){}var ke=(Fe.prototype.toString=function(){return this.url},Fe);function Fe(e,t){void 0===t&&(t=null);var r=this;this.url=e,this.paths=t,this.paths&&Object.keys(t).forEach(function(e){-1!==r.url.indexOf("{"+e+"}")&&(r.url=r.url.replace("{"+e+"}",""+t[e]))})}var Ne=(_e.prototype.getData=function(e,t,r){void 0===t&&(t={}),void 0===r&&(r="GET");var n=new a.HttpHeaders({"content-type":"application/json"});return"get"!==r.toLowerCase()?this.befRest.restService.invoke(e,r,null,{headers:n,body:t}):this.befRest.restService.invoke(e,r,t,{headers:n})},_e.decorators=[{type:i.Injectable}],_e.ctorParameters=function(){return[{type:I.Repository}]},_e);function _e(e){this.befRest=e}var Le=(Ke.prototype.getData=function(e,t,r){void 0===t&&(t={}),void 0===r&&(r="GET");var n=new a.HttpHeaders({"content-type":"application/json"});return this.befRest.restService.invoke(e,r,t,{headers:n})},Ke.decorators=[{type:i.Injectable}],Ke.ctorParameters=function(){return[{type:I.Repository}]},Ke);function Ke(e){this.befRest=e}e.VERSION="ver.",e.ChangeDetailType=S,e.BE_SERVER_URI_TOKEN=p,e.BE_SESSION_HANDLING_STRATEGY_TOKEN=u,e.BefChangeBuilder=c,e.BefChangeHandler=y,e.BefSessionService=Q,e.BefRestService=we,e.BefProxy=qe,e.BefLookupRestService=Te,e.BefLookupDefaultService=Ae,e.BefRepository=me,e.FrameworkSessionService=f,e.NG_VARIABLE=Z,e.NgVariable=$,e.BefRepositoryUtil=He,e.BefDataPathUtil=he,e.UriService=xe,e.Uri=ke,e.DefaultComboHttpService=Ne,e.DefaultDynamiControlGroupHttpService=Le,e.ɵa=ee,Object.defineProperty(e,"__esModule",{value:!0})}); | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@ecp-caf/caf-common"),require("date-fns"),require("rxjs"),require("rxjs/operators"),require("rxjs/operators/map"),require("@angular/core"),require("@farris/devkit"),require("@angular/common/http")):"function"==typeof define&&define.amd?define("@farris/bef",["exports","@ecp-caf/caf-common","date-fns","rxjs","rxjs/operators","rxjs/operators/map","@angular/core","@farris/devkit","@angular/common/http"],t):t((e.farris=e.farris||{},e.farris.bef={}),e.cafCommon,e.dateFns,e.rxjs,e.rxjs.operators,e.rxjs["operators/map"],e.ng.core,e.devkit,e.ng.common.http)}(this,function(e,t,n,b,d,s,i,I,a){"use strict";var S=(r.Added="Added",r.Modify="Modify",r.Deleted="Deleted",r);function r(){}var p=new i.InjectionToken("@farris/be BE_SERVER_URL"),u=new i.InjectionToken("@farris/be BE_SESSION_HANDLING_STRATEGY_TOKEN"),C=(o.getPropInfo=function(e,t){var r,n,o,i=I.FieldMetadataUtil.getNgFields(e);Object.keys(i).forEach(function(e){e===t&&(r="NgField",n=null,o=i[e])});var a=I.FieldMetadataUtil.getNgObjects(e);Object.keys(a).forEach(function(e){e===t&&(r="NgObject",n=a[e].type,o=a[e])});var s=I.FieldMetadataUtil.getNgList(e);Object.keys(s).forEach(function(e){e===t&&(r="NgList",n=s[e].type,o=s[e])});var p=I.FieldMetadataUtil.getNgDynamic(e);return Object.keys(p).forEach(function(e){e===t&&(r="NgDynamic",n=p[e].type,o=p[e])}),{propType:r,propEntityType:n,propMetadata:o}},o.getPrimaryKey=function(e){var t=I.FieldMetadataUtil.getPrimaryFieldMetadata(e);return t?t.dataField:""},o.isObjectProp=function(e,t){var r=!1,n=I.FieldMetadataUtil.getNgObjects(e);return Object.keys(n).forEach(function(e){e===t&&(r=!0)}),r},o.isDynamicProp=function(e,t){var r=!1,n=I.FieldMetadataUtil.getNgDynamic(e);return Object.keys(n).forEach(function(e){e===t&&(r=!0)}),r},o.appendInitialData=function(e,t){var r=Object.assign({},t);delete r.id,delete r.parentID,e.initialData=r},o);function o(){}var c=(h.prototype.build=function(e){var t=this;return this.changeDetail={ChangeType:S.Modify,ChangeInfo:{DataId:""}},e.forEach(function(e){t.buildChangeDetail(e)}),this.changeDetail},h.prototype.buildChangeDetail=function(y){var d=y.path.concat();this.changeDetail.ChangeInfo.DataId||(this.changeDetail.ChangeInfo.DataId=d[0].split(":")[1]);for(var f=this.changeDetail,g=this.entityType,e=function(e){var t=v.getChangeInfo(f),r=d[e],n=C.getPropInfo(g,r),o=n.propType,i=n.propEntityType,a=n.propMetadata.dataField||r;if("NgField"===o){if(r===C.getPrimaryKey(g))return"continue";if(y.type!==I.ModifyType.ValueChange)throw Error("简单类型的属性上不支持ValueChange类型之外的变更");t[a]=y.value,f=null}else if("NgObject"===o)if(d[e+1].split(":")[1],d[e+1].split(":")[0]){var s=t[a],p=d.slice(0,e+1);s=(l=v.entityCollection.getEntityByPath(p))?l.toJSON(!0):{},t[a]=s,g=f=null}else c=(c=t[a])||{ChangeType:S.Modify,ChangeInfo:{}},t[a]=c,f=c,g=i;else if("NgList"===o){f.ChangeInfo[a]||(f.ChangeInfo[a]=[]);var u=f.ChangeInfo[a];if(e!==d.length-1){var c,h=d[e+1].split(":")[1];return(c=u.find(function(e){return e.ChangeInfo.DataId===h}))||(c=v.createEmptyChangeDetail(S.Modify,h),u.push(c)),f=c,g=i,"continue"}y.type===I.ModifyType.Add||y.type===I.ModifyType.Insert||(y.type,I.ModifyType.Remove),g=f=null}else if("NgDynamic"===o){p=d.slice(0,e+1);var l=v.entityCollection.getEntityByPath(p);t[a]={ChangeType:S.Modify,ChangeInfo:l?l.toJSON(!0):{}},g=f=null}},v=this,t=1;t<d.length&&f;t+=2)e(t)},h.prototype.getChangeInfo=function(e){return e.hasOwnProperty("ChangeInfo")?e.ChangeInfo:e},h.prototype.createEmptyChangeDetail=function(e,t){return{ChangeType:e,ChangeInfo:{DataId:t}}},h);function h(e,t){this.entityType=e,this.entityCollection=t}var l=(y.prototype.handle=function(e,t,r){this.handleChangeDetails(e,t,r)},y.prototype.handleChangeDetails=function(n,o,e){var i=this;e&&e.forEach(function(e){var t=e.ChangeInfo.dataId||e.ChangeInfo.DataId,r=i.getEntityById(o,t);r&&i.handleChangeDetail(n,r,e)})},y.prototype.handleChangeDetail=function(u,c,e){var h=this;if(e&&c&&e.ChangeType===S.Modify){var l=e.ChangeInfo;Object.keys(l).forEach(function(e){var t=C.getPropInfo(u,e),r=t.propType,n=t.propEntityType;if("NgField"===r)c[e]=l[e];else if("NgObject"===r){var o=c[e];if(o.primaryKey){var i=l[e];o.load(i)}else{var a=l[e];h.handleChangeDetail(n,o,a)}}else if("NgList"===r){var s=c[e],p=l[e];h.handleChangeDetails(n,s,p)}})}},y.prototype.getEntityById=function(e,t){return(e instanceof I.EntityCollection?e.getEntityById(t):e.get(t))||null},y);function y(){}var f=(g.prototype.getUserSessionId=function(){return this.sessionService.getUserSessionId()},g.prototype.getCurrentSessionId=function(e){var t;if(this.sessionService)if(e&&e.hasOwnProperty("tabId")){var r=e.tabId;t=this.sessionService.getCurrentSeesionId(r)}else t=this.sessionService.getCurrentSeesionId();return t=t||this.getUserSessionId()},g.decorators=[{type:i.Injectable}],g.ctorParameters=function(){return[{type:t.SessionService,decorators:[{type:i.Optional}]}]},g);function g(e){this.sessionService=e}var v=(m.prototype.getItem=function(e){return this.getAllBeSessions()[e]},m.prototype.setItem=function(e,t){var r=this.getAllBeSessions();r[e]=t,this.setAllBeSessions(r)},m.prototype.removeItem=function(e){var t=this.getAllBeSessions();t[e]&&delete t[e],this.setAllBeSessions(t)},m.prototype.clear=function(e,t){!0===this.isInFramework()?this.removeItemsByFrmSessionId(e):this.removeItem(t)},m.prototype.removeItemsByFrmSessionId=function(t){var r=this.getAllBeSessions();Object.keys(r).forEach(function(e){!0===e.startsWith(t)&&delete r[e]}),this.setAllBeSessions(r)},m.prototype.getAllBeSessions=function(){var e=window.sessionStorage.getItem(this.sessionStorageKey);return e?JSON.parse(e):{}},m.prototype.setAllBeSessions=function(e){var t=JSON.stringify(e);window.sessionStorage.setItem(this.sessionStorageKey,t)},m.prototype.isInFramework=function(){var e=window.location.hash;return!!e&&-1!==e.indexOf("tabId=")},m);function m(){this.sessionStorageKey="BE_SESSION_ID"}var E=function(e,t){return(E=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)};function x(e,t){function r(){this.constructor=e}E(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var B=function(){return(B=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)};function P(e){var t="function"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function R(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,i=r.call(e),a=[];try{for(;(void 0===t||0<t--)&&!(n=i.next()).done;)a.push(n.value)}catch(s){o={error:s}}finally{try{n&&!n.done&&(r=i["return"])&&r.call(i)}finally{if(o)throw o.error}}return a}function D(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(R(arguments[t]));return e}var q=(O.convertToHeaders=function(t){if(1==(t=t||new a.HttpHeaders)instanceof a.HttpHeaders)return t;if(0<Object.keys(t).length){var r=new a.HttpHeaders;Object.keys(t).forEach(function(e){r=r.append(e,t[e])}),t=r}else t=new a.HttpHeaders;return t},O.appendSessionId=function(e,t){return e.append("SessionId",t)},O.appendCafRuntimeCommonVariable=function(e,t){return e.append("X-CAF-Runtime-CommonVariable",t)},O.appendCafRuntimeContext=function(e,t){return e.append("X-CAF-Runtime-Context",t)},O.appendContextType=function(e,t){return t=t||"application/json",e.append("Content-Type",t)},O.appendRequireMessage=function(e,t){return void 0===t&&(t=!0),e.append("Bff-Require-Message",t.toString())},O.appendFuncInstId=function(e,t){return e.append("Func-Inst-Id",t)},O.toJson=function(r){if(!(r instanceof a.HttpHeaders))return null;var n={};return r.keys().forEach(function(e){var t=r.getAll(e);1<t.length?n[e]=t:n[e]=t[0]||""}),n},O);function O(){}var w=(M.buildParams=function(e){var t=new a.HttpParams;for(var r in e)if(e.hasOwnProperty(r)){var n=e[r].toString();t=t.append(r,n)}return t},M);function M(){}var T=(j.hasRequestInfo=function(e){if(!e||!e.body)return!1;var t=e.body;return!(!t.requestInfo||!t.requestInfo.dataChange)||!!t.dataChange},j.hasRequestInfoWithR=function(e){if(!e||!e.body)return!1;var t=e.body;return!(!t.RequestInfo||!t.RequestInfo.dataChange)||!!t.dataChange},j.buildRequestInfo=function(e){return{dataChange:e.entityManager.buildAllEntityChangeDetails(),variableChange:e.variableManager.buildChangeDetail()}},j.buildBodyWithRequestInfo=function(e,t){if(e.RequestInfo||e.requestInfo)return e;var r=this.buildRequestInfo(t);return Object.assign({},e,{requestInfo:r})},j);function j(){}var A=(U.unWrapResponseInfo=function(e){if(!e)return e;if(!1===e.hasOwnProperty("returnValue"))return e.hasOwnProperty("result")&&e.hasOwnProperty("pagination")?e.result:e;var t=e.returnValue;return t&&t.hasOwnProperty("result")&&t.hasOwnProperty("pagination")?t.result:e.returnValue},U.isReported401Error=function(e){return 401===e.status},U.parseBackEndMessage=function(e){return e&&e.message&&Array.isArray(e.message)&&0<e.message.length?e.message:null},U.parseBackEndError=function(e){var t=e&&e.error;return t&&t.hasOwnProperty("extensionMessage")&&t.extensionMessage&&t.extensionMessage.hasOwnProperty("UIMsg")&&t.extensionMessage.UIMsg&&0<t.extensionMessage.UIMsg.length?JSON.parse(t.extensionMessage.UIMsg):null},U);function U(){}var V=(H.prototype.getService=function(){for(var e=window;!e.gspframeworkService&&e!==window.top&&this.isSameOrigin(e);)e=window.parent;return e.gspframeworkService&&e.gspframeworkService.rtf||{}},H.prototype.isSameOrigin=function(e){var t=window.location.host;try{if(e&&e.location&&"undefined"!=typeof e.location.host)return e.location.host===t}catch(r){return!1}return!1},Object.defineProperty(H.prototype,"params",{get:function(){return this.rtf&&this.rtf.hasOwnProperty("session")&&"function"==typeof this.rtf.session.getCommonVariable?this.rtf.session.getCommonVariable():null},enumerable:!0,configurable:!0}),Object.defineProperty(H.prototype,"httpService",{get:function(){return this.rtf&&this.rtf.hasOwnProperty("http")&&"function"==typeof this.rtf.http.request?this.rtf.http:null},enumerable:!0,configurable:!0}),H.prototype.request=function(e,t,r){return void 0===r&&(r={}),this.defaultHttpClient.request(e,t,r)},H.decorators=[{type:i.Injectable}],H.ctorParameters=function(){return[{type:a.HttpClient}]},H);function H(e){this.defaultHttpClient=e,this.httpClient=e,this.rtf=this.getService()}var k=(F.prototype.getFrmSessionId=function(e){return this.frmSessionService.getCurrentSessionId(e)},Object.defineProperty(F.prototype,"frmSessionId",{get:function(){return this.frmSessionService.getCurrentSessionId()},enumerable:!0,configurable:!0}),F.prototype.getFrameworkSessionId=function(e){return this.getFrmSessionId(e)},F.prototype.getSessionIdFromStorage=function(e){var t=this.getSessionStorageKey(e);return this.storageStrategy.getItem(t)},F);function F(e,t){this.storageStrategy=e,this.frmSessionService=t}var N,_=(x(L,N=k),L.prototype.getSessionId=function(){var e=this.getSessionIdFromStorage();return e?b.of(e):this.createSession()},L.prototype.setSessionId=function(e){var t=this.getSessionStorageKey();this.storageStrategy.setItem(t,e)},L.prototype.clearSessionId=function(){var e=this.getSessionStorageKey();this.storageStrategy.clear(this.frmSessionId,e)},L.prototype.extendRequestHeaders=function(e,t){var r=this.getFrameworkSessionId(t),n=this.getSessionIdFromStorage(t);return e=q.appendCafRuntimeCommonVariable(e,r),n&&(e=q.appendCafRuntimeContext(e,n),e=q.appendSessionId(e,n)),e=q.appendFuncInstId(e,this.beSessionUri)},L.prototype.handleReponseHeaders=function(e){console.log(e)},L.prototype.createSession=function(){var t=this,e={responseType:"text"};return this.frmSessionId&&(this.injector.get(I.AppContext,null),e.headers=new a.HttpHeaders({SessionId:this.frmSessionId}),e.headers=e.headers.append("X-CAF-Runtime-CommonVariable",this.frmSessionId),e.headers=e.headers.append("Func-Inst-Id",this.beSessionUri),e.headers=q.toJson(e.headers)),this.httpService.request("POST",this.beSessionUri,e).pipe(d.tap(function(e){t.setSessionId(e)}))},L.prototype.extendHttpHeader=function(){},L.prototype.getSessionStorageKey=function(e){return(e?this.getFrameworkSessionId(e):this.frmSessionId)+"_"+this.beSessionUri},L);function L(e,t,r,n,o){var i=N.call(this,e,t)||this;return i.beSessionUri=n,i.httpClient=r,i.httpService=new V(i.httpClient),i.injector=o,i}var K,G=(x(J,K=k),J.prototype.getSessionId=function(){var e=this.getSessionStorageKey(),t=this.storageStrategy.getItem(e);return b.of(t)},J.prototype.setSessionId=function(e){var t=this.getSessionStorageKey();this.storageStrategy.setItem(t,e)},J.prototype.clearSessionId=function(){var e=this.getSessionStorageKey();this.storageStrategy.removeItem(e)},J.prototype.extendRequestHeaders=function(e,t){var r=this.getFrameworkSessionId(t),n=this.getSessionIdFromStorage(t),o=this.injector.get(I.AppContext,null);if(o){var i=o.Token;e=q.appendFuncInstId(e,i)}return e=q.appendCafRuntimeCommonVariable(e,r),n&&(e=q.appendCafRuntimeContext(e,n)),e},J.prototype.handleReponseHeaders=function(e){console.log(e)},J.prototype.getSessionStorageKey=function(e){return(e?this.getFrameworkSessionId(e):this.frmSessionId)+"_"+this.beSessionUri},J);function J(e,t,r,n){var o=K.call(this,e,t)||this;return o.beSessionUri=r,o.injector=n,o}var W=(z.prototype.create=function(e,t,r,n,o){var i=this.createStorageStrategy(),a=this.createBeSessionUri(r);return"UnifiedSession"===e?new G(i,t,a,o):new _(i,t,n,a,o)},z.prototype.createStorageStrategy=function(){return new v},z.prototype.createBeSessionUri=function(e){return e+"/service/createsession"},z.decorators=[{type:i.Injectable}],z);function z(){}var Q=(Object.defineProperty(Y.prototype,"token",{get:function(){return this.handlingStrategy.getFrameworkSessionId()},enumerable:!0,configurable:!0}),Y.prototype.getBeSessionId=function(){return this.handlingStrategy.getSessionId()},Y.prototype.setBeSessionId=function(e){this.handlingStrategy.setSessionId(e),this.setSessionId(e)},Y.prototype.clearBeSessionId=function(){this.handlingStrategy.clearSessionId()},Y.prototype.extendRequestHeaders=function(e,t){return this.handlingStrategy.extendRequestHeaders(e,t)},Y.prototype.handleResponseHeaders=function(e){return this.handlingStrategy.handleReponseHeaders(e)},Y.prototype.createBeSession=function(){return this.handlingStrategy.createSession()},Y.prototype.setSessionId=function(e){var t=this.injector.get(I.AppContext,null,i.InjectFlags.Optional);t&&e&&t.params.set("sessionId",e)},Y.prototype.createHandlingStrategy=function(e,t,r,n){var o;return o=(o=e?e.get(u,null,i.InjectFlags.Optional):"SeparatedSession")||"SeparatedSession",(new W).create(o,r,n,t,e)},Y.decorators=[{type:i.Injectable}],Y.ctorParameters=function(){return[{type:a.HttpClient},{type:String},{type:f},{type:i.Injector}]},Y);function Y(e,t,r,n){this.beBaseUri=t,this.injector=n,this.handlingStrategy=this.createHandlingStrategy(n,e,r,t)}var X,Z="@farris/bef NG_VARIABLE",$=I.makePropDecorator(Z,function(e){return e}),ee=(x(te,X=I.Repository),Object.defineProperty(te.prototype,"restService",{get:function(){return this.dataService.restService},enumerable:!0,configurable:!0}),Object.defineProperty(te.prototype,"changeBuilder",{get:function(){return this.entityManager.changeBuilder},enumerable:!0,configurable:!0}),Object.defineProperty(te.prototype,"changeHandler",{get:function(){return this.entityManager.changeHandler},enumerable:!0,configurable:!0}),te.prototype.getList=function(){return this.dataService.getList(null,null,null,null)},te.prototype.getById=function(e){return this.dataService.getById(e)},te.prototype.updateById=function(e){return this.dataService.updateById(e)},te.prototype.create=function(e){return this.dataService.create(e)},te.prototype.append=function(e){return this.dataService.append(e)},te.prototype.appendByPath=function(e){return this.dataService.appendByPath(e)},te.prototype.removeById=function(e,t){return this.dataService.removeById(e,t)},te.prototype.removeByIds=function(e,t){return this.dataService.removeByIds(e,t)},te.prototype.removeByPath=function(e,t){return this.dataService.removeByPath(e,t)},te.prototype.updateChangesById=function(e){return this.dataService.updateChangesById(e)},te.prototype.updateChangesByPath=function(e,t){throw new Error("Not Implement")},te.prototype.updateAllChanges=function(){return this.dataService.updateAllChanges()},te.prototype.applyChanges=function(){return this.dataService.applyChanges()},te.prototype.updateDataAndVariableChanges=function(){var e={FilterConditions:[],SortConditions:[],IsUsePagination:!0,Pagination:{PageIndex:1,PageSize:1,PageCount:0,TotalCount:0}},t=JSON.stringify(e),r=this.restService.buildRequestInfo();if(this.isEmptyRequestInfo(r))return b.of(null);var n=this.restService.baseUri+"/extension/query?entityFilter="+t,o={body:r};return this.restService.invoke(n,"PUT",null,o,!1,!0,!0)},te.prototype.applyChangesById=function(e){return this.dataService.applyChangesById(e)},te.prototype.cancelChanges=function(e){return this.dataService.cancelChanges(e)},te.prototype.clearAllEntityChanges=function(){return this.entityManager.clearAllEntityChanges()},te.prototype.getDataChangeDetails=function(){return this.entityManager.buildAllEntityChangeDetails()},te.prototype.handleDataChangeDetails=function(e){return this.entityManager.handleDataChangeDetails(e)},te.prototype.getVariableChangeDetail=function(){return this.variableManager.buildChangeDetail()},te.prototype.handleVariableChangeDetail=function(e){this.variableManager.handleChangeDetail(e)},te.prototype.isEmptyRequestInfo=function(e){return!e||(!e.dataChange||e.dataChange.length<1)&&(!e.variableChange||Object.keys(e.variableChange).length<1)},te.decorators=[{type:i.Injectable}],te.ctorParameters=function(){return[]},te);function te(){return X.call(this)||this}var re,ne=(x(oe,re=I.EntityManager),oe.prototype.buildAllEntityChangeDetails=function(){var r=this,n=[];return this.entityCollection.getAllEntities().forEach(function(e){if(0!==e.changes.length){var t=r.changeBuilder.build(e.changes);t&&t.ChangeInfo&&t.ChangeInfo.DataId&&n.push(t)}}),n},oe.prototype.buildEntityChangeDetailById=function(e){var t=this.entityCollection.getEntityById(e);return 0===t.changes.length?null:this.changeBuilder.build(t.changes)},oe.prototype.handleDataChangeDetails=function(e){this.changeHandler.handle(this.entityType,this.entityCollection,e)},oe.prototype.reset=function(){this.entityCollection.clear()},oe);function oe(e){var t=re.call(this,e)||this;return t.changeBuilder=new c(t.entityCollection.entityType,t.entityCollection),t.changeHandler=new l,t}var ie=(ae.createEmpty=function(e,t){var r={ChangeType:e,ChangeInfo:{}};return t&&(r.ChangeInfo.DataId=t),r},ae.getChangeInfo=function(e){return!0===this.isChangeDetail(e)?e.ChangeInfo:e},ae.isChangeDetail=function(e){var t=Object.keys(e);return 2===t.length&&-1<t.indexOf("ChangeType")&&-1<t.indexOf("ChangeInfo")},ae);function ae(){}var se=(pe.prototype.handleChangeDetail=function(e){var o=this,i=e.ChangeInfo;Object.keys(i).forEach(function(e){var t=o.ngVariableMap.get(e);if(t){var r=t.mapping,n=i[e];o.innerValueMap.get(e)!==n&&(o.setValueToUIState(r,n),o.innerValueMap.set(e,n))}})},pe.prototype.buildChangeDetail=function(){var i=this,a=ie.createEmpty(S.Modify);return this.ngVariableMap.forEach(function(e,t){var r=e.mapping,n=i.getValueFromUIState(r),o=i.innerValueMap.get(t);!1===i.isValueEqual(n,o)&&i.appendToChangeInfo(a,t,n)}),0===Object.keys(a.ChangeInfo).length?null:a},pe.prototype.reset=function(){this.innerValueMap.clear()},pe.prototype.clearChanges=function(){var i=this;this.ngVariableMap.forEach(function(e,t){var r=e.mapping,n=i.getValueFromUIState(r),o=i.innerValueMap.get(t);!1===i.isValueEqual(n,o)&&i.innerValueMap.set(t,n)})},pe.prototype.appendToChangeInfo=function(e,t,r){if(!0===this.isUdtVariable(r)){var n=ie.createEmpty(S.Modify);n.ChangeInfo=r,e.ChangeInfo[t]=n}else e.ChangeInfo[t]=r},pe.prototype.getValueFromUIState=function(e){var t=this.getRootUIState(),r=e.split(".").reduce(function(e,t){return e?e[t]:null},t);return r instanceof Date?n.format(r,"yyyy-MM-dd HH:mm:ss"):r},pe.prototype.getRootUIState=function(){var e=this.appContext.frameContextManager.getRootFrameContext();if(this.injector){var t=this.injector.get(I.FrameContext,null);t&&(e=t.getVirtualRootFrameContext()||e)}if(e)return e.uiState},pe.prototype.isValueEqual=function(e,t){return JSON.stringify(e)===JSON.stringify(t)},pe.prototype.isUdtVariable=function(e){return e&&e.constructor&&"[object Object]"===e.toString()&&e.constructor.prototype.hasOwnProperty("isPrototypeOf")},pe.prototype.setValueToUIState=function(e,t){this.getRootUIState()[e]=t},pe.ctorParameters=function(){return[{type:I.AppContext},{type:undefined},{type:i.Injector,decorators:[{type:i.Optional}]}]},pe);function pe(e,t,r){var n=this;this.appContext=e,this.ngVariables=t,this.injector=r,this.ngVariableMap=new Map,this.innerValueMap=new Map,Object.keys(t).forEach(function(e){n.ngVariableMap.set(e,t[e])})}var ue=(ce.buildRequestInfo=function(e){return{dataChange:e.entityManager.buildAllEntityChangeDetails(),variableChange:e.variableManager.buildChangeDetail()}},ce);function ce(){}var he=(le.convertToPathArray=function(e,t){var n=this,r=I.BindingPathConverter.toBindingPathArray(e),o=[],i=t.list.currentItem;return o.push(i.primaryKeyValue),r.forEach(function(e){var t=I.PropertyUtil.getPropertyByName(i.properties,e);if(t.type!==I.BindingPropertyType.List)throw new Error(t.name+"不是子表对应的属性");var r=i[e];i=r.currentItem,o.push(n.trimTrailingS(e)),o.push(i.primaryKeyValue)}),o},le.convertToPathUrl=function(e,t){var r=this.convertToPathArray(e,t);return r.pop(),"/"+r.join("/")},le.convertToObjectCodes=function(e,t){for(var r=this.convertToPathArray(e,t),n=r.length,o=[],i=1;i<n;i+=2)o.push(r[i]);return o},le.convertToDataIdsForUpdate=function(e,t){for(var r=this.convertToPathArray(e,t),n=r.length,o=[],i=0;i<n;i+=2)o.push(r[i]);return o},le.convertToDataIdsForAdd=function(e,t){var r=this.convertToDataIdsForUpdate(e,t);return r.pop(),r},le.convertPathToUrl=function(e){for(var t=e.split("/"),r=t.length-1;0<r;r--)t[r]&&t[r].endsWith("s")&&(t[r]=t[r].substr(0,t[r].length-1).toLowerCase());return t.join("/")},le.trimTrailingS=function(e){return e.substr(0,e.length-1)},le.convertPathsToNodeCodes=function(e){var t=[];return!e||e.length<1||e.filter(function(e){return!!e&&-1===e.indexOf(":")}).forEach(function(e){t.push(e)}),t},le.convertPathsToIds=function(e){var t=[];return!e||e.length<1||e.filter(function(e){return!!e&&-1!==e.indexOf(":")}).forEach(function(e){t.push(e.split(":")[1])}),t},le);function le(){}var ye=(Object.defineProperty(de.prototype,"restProxy",{get:function(){return this.repository.restService.proxy},enumerable:!0,configurable:!0}),de.prototype.getList=function(e,t,r,n){var p=this;0!==r&&(r=r||this.repository.entityCollection.pageSize,n=n||this.repository.entityCollection.pageIndex);var o=this.buildEntityFilter(e,t,r,n),i=this.restService.buildRequestInfo();return this.restProxy.extendQuery(o,i).pipe(d.map(function(e){var t=e.returnValue,r=t.result,n=[];r.forEach(function(e){var t=p.repository.buildEntity(e);C.appendInitialData(t,e),n.push(t)});var o=t.pagination;if(o&&0<Object.keys(o).length){var i=o.pageSize,a=o.pageIndex,s=o.totalCount;p.repository.entityCollection.updatePaginationInfoByPath("/",{pageIndex:a,pageSize:i,totalCount:s})}else p.repository.entityCollection.updatePaginationInfoByPath("/",{pageIndex:1,pageSize:0,totalCount:n.length});return p.repository.entityCollection.loadEntities(n),n}))},de.prototype.filter=function(e,t,r,n){var p=this;0!==r&&(r=r||this.repository.entityCollection.pageSize,n=n||this.repository.entityCollection.pageIndex);var o=this.buildEntityFilter(e,t,r,n),i=this.restService.buildRequestInfo();return this.restProxy.filter(o,i).pipe(d.map(function(e){var t=e.returnValue,r=t.result,n=[];r.forEach(function(e){var t=p.repository.buildEntity(e);C.appendInitialData(t,e),n.push(t)});var o=t.pagination;if(o&&0<Object.keys(o).length){var i=o.pageSize,a=o.pageIndex,s=o.totalCount;p.repository.entityCollection.updatePaginationInfoByPath("/",{pageIndex:a,pageSize:i,totalCount:s})}else p.repository.entityCollection.updatePaginationInfoByPath("/",{pageIndex:1,pageSize:0,totalCount:n.length});return p.repository.entityCollection.loadEntities(n),n}))},de.prototype.buildEntityFilter=function(e,t,r,n){return e||t||r||n?(e&&0<e.length&&(e[e.length-1].Relation=0),{FilterConditions:e,SortConditions:t,IsUsePagination:0!==r,Pagination:{PageIndex:n,PageSize:r,PageCount:0,TotalCount:0}}):null},de.prototype.getById=function(e){var n=this,t=this.restService.buildRequestInfo();return this.restService.extendRetrieve(e,t).pipe(d.map(function(e){var t=e.returnValue,r=n.repository.buildEntity(t);return n.repository.entityCollection.loadEntities([r]),r}))},de.prototype.getPagedById=function(o){var i=this,e=this.restService.buildRequestInfo(),t=this.repository.entityCollection.getPaginationConfigByPath("/"),r=this.buildChildPagination(t),n=this.buildRetrieveParam(r);return this.restService.serviceRetrieve(o,n,e).pipe(d.map(function(e){var t=e.dataResult,r=e.paginations;i.updatePagination(r);var n=i.repository.entityCollection.getEntityById(o);return i.reloadEntityData(n,t),n}))},de.prototype.queryChild=function(s,e,t,r,n){var p=this,o=this.restService.buildRequestInfo(),u=he.convertPathsToNodeCodes(s),i=u.map(function(e){return e.substring(0,e.length-1)}),a=he.convertPathsToIds(s),c=B({nodeCodes:i,ids:a,pagination:{pageIndex:e,pageSize:t}},o),h=u[u.length-1];return h=h.substring(0,h.length-1),this.restService.queryChild(c).pipe(d.map(function(e){console.log(e);var t=e.returnValue;if(!t)return null;var r=t.result,n=void 0===r?[]:r,o=t.pagination,i=void 0===o?{}:o,a=[];n.forEach(function(e){var t=new(I.FieldMetadataUtil.getNgList(p.repository.entityType)[u[u.length-1]].type)(e);C.appendInitialData(t,e),a.push(t)}),u=u.map(function(e){return e.charAt(0).toLocaleLowerCase()+e.substr(1)}),p.repository.entityCollection.resetEntities(s,a),p.repository.entityCollection.setPaginationConfigByPath("/"+h,i)}))},de.prototype.buildChildPagination=function(r){var n={};return Object.keys(r).forEach(function(e){var t=r[e];"object"==typeof t&&(n[e]=t)}),n},de.prototype.updatePagination=function(t){var r=this;t&&Object.keys(t).forEach(function(e){r.repository.entityCollection.setPaginationConfigByPath("/"+e,t[e])})},de.prototype.buildRetrieveParam=function(n){var e={};if(n&&0<Object.keys(n).length){var o=[];Object.keys(n).forEach(function(e){var t=n[e],r={};r[e]={pagination:{pageSize:t.pageSize||0,pageIndex:1}},o.push(r)}),e.filters=o}return e},de.prototype.editById=function(n){var o=this;if(!this.repository.entityCollection.getEntityById(n))return b.of(null);var e=ue.buildRequestInfo(this.repository);return this.restProxy.edit(n,e).pipe(d.map(function(e){var t=e.returnValue.data,r=o.repository.entityCollection.getEntityById(n);return r&&t&&o.reloadEntityData(r,t),r}))},de.prototype.updateById=function(n){var o=this;if(!this.repository.entityCollection.getEntityById(n))return b.of(null);var e=this.restService.buildRequestInfo();return this.restService.extendRetrieve(n,e).pipe(d.map(function(e){var t=e.returnValue,r=o.repository.entityCollection.getEntityById(n);return o.reloadEntityData(r,t),r}))},de.prototype.reloadEntityData=function(e,t){e&&(this.appContext.changeDetectionController.detach(),this.repository.entityCollection.updateEntity(e,t),e.changes.splice(0,e.changes.length),this.appContext.changeDetectionController.reattach())},de.prototype.create=function(e){var n=this,t=this.restService.buildRequestInfo();return this.restService.create(e,t).pipe(d.map(function(e){var t=e.returnValue,r=n.repository.buildEntity(t);return C.appendInitialData(r,t),n.repository.entityCollection.loadEntities([r]),r}))},de.prototype.append=function(e){var n=this,t=this.restService.buildRequestInfo();return this.restService.create(e,t).pipe(d.map(function(e){var t=e.returnValue,r=n.repository.buildEntity(t);return n.repository.entityCollection.addEntity(r),r}))},de.prototype.insert=function(n,e){var o=this,t=this.buildRequestInfo();return this.restProxy.create(e,t).pipe(d.map(function(e){var t=e.returnValue,r=o.repository.buildEntity(t);return o.repository.entityCollection.insertEntity(r,n),r}))},de.prototype.appendByPath=function(r){var n=this,e=this.restService.buildRequestInfo();return this.restService.createByPath(r,e).pipe(d.map(function(e){var t=e.returnValue;return n.repository.entityManager.appendEntityByPath(r,t,t)}))},de.prototype.insertByPath=function(r,n){var o=this,e=this.buildRequestInfo();return this.restProxy.createByPath(r,e).pipe(d.map(function(e){var t=e.returnValue;return o.repository.entityManager.insertEntityByPath(r,t,t,n)}))},de.prototype.removeById=function(e,t){var r=this;t=t===undefined||t;var n=ue.buildRequestInfo(this.repository);return t?this.restProxy.deleteAndSave(e,n).pipe(d.switchMap(function(){return r.repository.entityCollection.removeEntityById(e),b.of(!0)})):this.restService.extendDelete(e,n).pipe(d.switchMap(function(){return r.repository.entityCollection.removeEntityById(e),r.repository.dataChangeHistory.addChange({dataId:e,changeType:I.DataChangeType.Delete}),b.of(!0)}))},de.prototype.removeAndSaveById=function(e){var t=this,r=ue.buildRequestInfo(this.repository);return this.restProxy.deleteAndSave(e,r).pipe(d.switchMap(function(){return t.repository.entityCollection.removeEntityById(e),b.of(!0)}))},de.prototype.removeByIds=function(r,e){var n=this;e=e===undefined||e;var t=this.restService.buildRequestInfo();return this.restService.extendBatchDelete(r,t).pipe(d.switchMap(function(){if(e)return n.applyChangesByIdArray(r).pipe(d.tap(function(e){e&&n.repository.entityCollection.removeEntities(function(e){return n.checkEntityValueExists(e,r)})}));if(n.repository.entityCollection.removeEntities(function(e){return n.checkEntityValueExists(e,r)}),r&&0<r.length){var t=[];r.forEach(function(e){t.push({dataId:e,changeType:I.DataChangeType.Delete})}),n.repository.dataChangeHistory.addChanges(t)}return b.of(!0)}))},de.prototype.checkEntityValueExists=function(e,t){for(var r=!1,n=0;n<t.length;n++)if(e.primaryValue===t[n]){r=!0;break}return r},de.prototype.removeByPath=function(e,t){var r=this,n=this.restService.buildRequestInfo();return this.restService.extendDeletByPath(e,t,n).pipe(d.map(function(){return r.repository.entityManager.removeEntityByPath(e,t),r.repository.dataChangeHistory.addChange({fpath:e,dataId:t,changeType:I.DataChangeType.Delete}),!0}))},de.prototype.batchRemoveByPath=function(t,r){var n=this,e=this.restService.buildRequestInfo();return this.restService.batchDeleteByPath(t,r,e).pipe(d.map(function(){var e=r.split(",");return 0<e.length&&e.forEach(function(e){n.repository.entityManager.removeEntityByPath(t,e),n.repository.dataChangeHistory.addChange({fPath:t,dataId:e,changeType:I.DataChangeType.Delete})}),!0}))},de.prototype.updateChangesById=function(e){var t=this,r=this.repository.entityCollection.getEntityById(e);if(!r.changes)return b.of(!0);if(0===r.changes.length)return b.of(!0);var n=this.repository.entityManager.buildEntityChangeDetailById(e),o=this.restService.buildRequestInfo();return this.restService.update(n,o).pipe(d.tap(function(){t.repository.entityManager.clearEntityChangesById(e)}),d.map(function(){return!0}))},de.prototype.updateChangesByPath=function(e,t){throw new Error("Not Implement")},de.prototype.updateAllChanges=function(){var r=this,n=[],e=this.repository.entityCollection.toArray();return 0===e.length?b.of(!0):(e.forEach(function(e){var t=r.updateChangesById(e.primaryValue);n.push(t)}),b.zip.apply(void 0,D(n)).pipe(d.map(function(){return!0})))},de.prototype.applyChanges=function(){var e=this,t=this.restService.buildRequestInfo();return this.restService.save(t).pipe(d.tap(function(){e.repository.entityManager.clearAllEntityChanges(),e.repository.clearAllVariableChanges(),e.repository.dataChangeHistory.clear()}),d.map(function(){return!0}))},de.prototype.applyChangesByIdArray=function(e){var t=this,r=this.restService.buildRequestInfo();return this.restService.save(r).pipe(d.tap(function(){t.repository.entityManager.clearEntityChangesByArray(e),t.repository.dataChangeHistory.clearByIds(e)}),d.map(function(){return!0}))},de.prototype.applyChangesById=function(e){var t=this,r=this.restService.buildRequestInfo();return this.restService.save(r).pipe(d.tap(function(){t.repository.entityManager.clearEntityChangesById(e),t.repository.dataChangeHistory.clearByIds([e])}),d.map(function(){return!0}))},de.prototype.cancelChanges=function(e){var t=this;return this.restService.cancel(e).pipe(d.tap(function(){t.repository.entityManager.clearAllEntityChanges(),t.repository.dataChangeHistory.clear()}),d.map(function(){return!0}))},de.prototype.batchAppendByPath=function(o,e){var i=this,t=this.buildRequestInfo();return this.restProxy.batchAppendByPath(o,e,t).pipe(d.map(function(e){var t=e.returnValue,r=i.repository.entityManager.createEntitiesByPath(o,t),n=o.split("/").filter(function(e){return e});return i.repository.entityManager.appendEntitiesByPath(n,r),r}))},de.prototype.batchAppend=function(e){var n=this,t=this.buildRequestInfo();return this.restProxy.batchAppend(e,t).pipe(d.map(function(e){var t=e.returnValue,r=n.repository.buildEntities(t);return n.repository.entityCollection.addEntities(r),r}))},de.prototype.buildRequestInfo=function(){return{dataChange:this.repository.entityManager.buildAllEntityChangeDetails(),variableChange:this.repository.variableManager.buildChangeDetail()}},de);function de(e,t){this.injector=e,this.repository=t;var r=e.get(f),n=e.get(a.HttpClient),o=e.get(p)+"/"+this.repository.apiUri,i=e.get(I.EventBus);this.restService=new we(n,o,r,this.repository,i),this.appContext=e.get(I.AppContext)}var fe=(ge.handleMessage=function(e,t,r){var n={ns:t.get(I.NAMESPACE,null),appContext:t.get(I.AppContext,null)},o=this.buildBackEndMessages(e),i=new I.BackEndMessage.Message(o,n),a=t.get(I.BACK_END_MESSAGE_HANDLER_TOKEN,null);a&&a.handle(i,r)},ge.isBackEndMessageHandlerExist=function(e){return!!e.get(I.BACK_END_MESSAGE_HANDLER_TOKEN,null)},ge.getFormlessMessages=function(e){return(this.buildBackEndMessages(e)||[]).filter(function(e){return!e.location||!e.location.columns||e.location.columns.length<1||!e.location.nodeCode})},ge.buildBackEndMessages=function(e){if(!e||e.length<1||!Array.isArray(e))return null;var r=[];return e.forEach(function(e){var t={level:e.level,message:e.message};e.hasOwnProperty("location")&&e.location&&(t.location={nodeCode:e.location.nodeCode,rows:e.location.dataIds,columns:e.location.columnNames}),r.push(t)}),r},ge);function ge(){}var ve=(Ie.getSessionId=function(e,t){var r=e.ApplicationId+"_"+t.beBaseUri;return this.createSessionHistory.includes(r)?b.of(null):(this.createSessionHistory.push(r),t.getBeSessionId())},Ie.createSessionHistory=[],Ie.decorators=[{type:i.Injectable}],Ie);function Ie(){}var Se=(be.prototype.onResponse=function(e,t){e&&e.innerDataChange&&!0!==t&&this.context.handleDataChangeDetails(e.innerDataChange),e&&e.innerVariableChange&&this.context.handleVariableChangeDetail(e.innerVariableChange);var r=A.parseBackEndMessage(e);return fe.handleMessage(r,this.context.getInjector()),this.context.clearAllEntityChanges(),this.context.clearAllVariableChanges(),e&&e.hasOwnProperty("returnValue")?e.returnValue:e},be.prototype.onError=function(e,t,r){var n,o,i=this.context.appContext.getFormAppContext(),a=i.ApplicationId,s=window.DEVKIT_LOADING_SERVICE,p=A.parseBackEndError(e);if(fe.handleMessage(p,this.context.getInjector()),s&&s instanceof Array&&0<s.length)try{for(var u=P(s),c=u.next();!c.done;c=u.next()){var h=c.value;"function"==typeof h.clearAll&&h.clearAll()}}catch(S){n={error:S}}finally{try{c&&!c.done&&(o=u["return"])&&o.call(u)}finally{if(n)throw n.error}}if(t)return b.throwError(e);var l=this.context.restService.eventBus,y=!!(window[a]||{}).isExceptionHandlerExist,d=A.parseBackEndError(e),f=fe.getFormlessMessages(d),g=f&&0<f.length||!1,v=!(e&&e.error&&e.error.extensionMessage&&fe.isBackEndMessageHandlerExist(this.context.getInjector())&&!g),I=!!l&&y&&v;return fe.handleMessage(d,this.context.getInjector(),{hasThrowError:I,isException:!0,eventBus:l,error:e,formAppContext:i}),l&&y&&!A.isReported401Error(e)?(v&&l.post("Exception","","onException",e,i),r?b.of(null):b.EMPTY):b.throwError(e)},be.prototype.extendHeaders=function(t,r){var n=this,e=this.context.appContext.getFormAppContext();return ve.getSessionId(e,this.context.restService.sessionService).pipe(d.switchMap(function(e){return t=n.context.restService.sessionService.extendRequestHeaders(t,r),b.of(t)}))},be.prototype.extendUrl=function(e,t){if(!t)return e;for(var r in t)if(t.hasOwnProperty(r)){var n=JSON.stringify(t[r]);e=-1===e.indexOf("?")?e+"?"+r+"="+n:e+"&"+r+"="+n}return e},be.prototype.extendBody=function(t){var r=this;return!t||"object"!=typeof t||Object.keys(t).length<1||(Object.keys(t).forEach(function(e){"requestInfo"===e&&(t.requestInfo=r.context.restService.buildRequestInfo())}),1===Object.keys(t).length&&(t=Object.values(t)[0])),t},be.prototype.parseHeaders=function(e){var t="BEFSessionID";e.headers&&e.headers.has(t)&&this.context.restService.sessionService.setBeSessionId(e.headers.get(t))},be);function be(e){this.context=e}var Ce,me=(x(Ee,Ce=ee),Object.defineProperty(Ee.prototype,"proxy",{get:function(){return this.befProxy},set:function(e){this.befProxy=e,this.befProxy.setProxyExtend(new Se(this))},enumerable:!0,configurable:!0}),Ee.prototype.getEntities=function(e,t,r,n){return this.dataService.getList(e,t,r,n)},Ee.prototype.filter=function(e,t,r,n){return void 0===e&&(e=[]),void 0===t&&(t=[]),this.dataService.filter(e,t,r,n)},Ee.prototype.getPagedById=function(e){return this.dataService.getPagedById(e)},Ee.prototype.queryChild=function(e,t,r,n,o){return this.dataService.queryChild(e,t,r,n,o)},Ee.prototype.getEntityById=function(e){return this.dataService.getById(e)},Ee.prototype.updateEntityById=function(e){return this.dataService.updateById(e)},Ee.prototype.editEntityById=function(e){return this.dataService.editById(e)},Ee.prototype.createEntity=function(e){return this.dataService.create(e)},Ee.prototype.appendEntity=function(e){return this.dataService.append(e)},Ee.prototype.insert=function(e,t){return this.dataService.insert(e,t)},Ee.prototype.insertByPath=function(e,t){return this.dataService.insertByPath(e,t)},Ee.prototype.appendEntityByPath=function(e){return this.dataService.appendByPath(e)},Ee.prototype.removeEntityById=function(e,t){return this.dataService.removeById(e,t)},Ee.prototype.removeEntityAndSaveById=function(e){return this.dataService.removeAndSaveById(e)},Ee.prototype.removeEntityByPath=function(e,t){return this.dataService.removeByPath(e,t)},Ee.prototype.batchRemoveByPath=function(e,t){return this.dataService.batchRemoveByPath(e,t)},Ee.prototype.saveEntityById=function(e){return this.dataService.applyChangesById(e)},Ee.prototype.saveEntities=function(){return this.dataService.applyChanges()},Ee.prototype.cancelEntityChanges=function(){return this.dataService.cancelChanges()},Ee.prototype.batchAppendByPath=function(e,t){return this.dataService.batchAppendByPath(e,t)},Ee.prototype.batchAppend=function(e){return this.dataService.batchAppend(e)},Ee.prototype.reset=function(){this.entityManager.reset(),this.variableManager.reset(),this.restService.sessionService.clearBeSessionId()},Ee.prototype.getInjector=function(){return this.injector},Ee.prototype.clearAllVariableChanges=function(){this.variableManager.clearChanges()},Ee.decorators=[{type:i.Injectable}],Ee.ctorParameters=function(){return[{type:i.Injector}]},Ee);function Ee(e){var t=Ce.call(this)||this;t.injector=e,t.entityManager=new ne(t.entityCollection),t.appContext=t.injector.get(I.AppContext);var r=I.MetadataUtil.getPropsMetadatasByName(t.constructor,Z);return t.variableManager=new se(t.appContext,r,t.injector),t.dataService=new ye(t.injector,t),t.serverUri=e.get(p),t}var xe=(Be.prototype.extendUri=function(e){return this.serverUri+"/"+e},Be.decorators=[{type:i.Injectable}],Be.ctorParameters=function(){return[{type:String,decorators:[{type:i.Inject,args:[p]}]}]},Be);function Be(e){this.serverUri=e}var Pe="DELETE",Re="PUT",De="POST",qe=(Oe.prototype.setBaseUri=function(e){this.baseUri=e},Oe.prototype.setProxyExtend=function(e){this.proxyExtend=e},Oe.prototype.query=function(e){var t=this.baseUri;return e&&(t=t+"?entityFilter="+JSON.stringify(e)),this.request(t,"GET")},Oe.prototype.extendQuery=function(e,t){var r=this.baseUri+"/extension/query";if(e){var n=JSON.stringify(e);r=r+"?entityFilter="+(n=I.encodeUrl(n))}var o=t,i=this.addBodyToOptions({},o);return this.request(r,Re,null,i,!1)},Oe.prototype.filter=function(e,t){var r=this.baseUri+"/extension/filter",n={requestInfo:t};e&&(n={entityFilter:e,requestInfo:t});var o=this.addBodyToOptions({},n);return this.request(r,De,null,o,!1)},Oe.prototype.retrieve=function(e){var t=this.baseUri+"/"+e;return this.request(t,"GET")},Oe.prototype.serviceRetrieve=function(e,t,r){var n=this.baseUri+"/service/retrieve/"+e,o={body:{retrieveParam:t,requestInfo:r}};return this.request(n,Re,null,o)},Oe.prototype.queryChild=function(e){var t=this.baseUri+"/service/querychild",r={body:e};return this.request(t,Re,null,r)},Oe.prototype.extendRetrieve=function(e,t){var r=this.baseUri+"/extension/retrieve/"+e,n=t,o=this.addBodyToOptions({},n);return this.request(r,Re,null,o)},Oe.prototype.edit=function(e,t){var r=this.baseUri+"/service/edit/"+e,n=t,o=this.addBodyToOptions({},n);return this.request(r,Re,null,o)},Oe.prototype.create=function(e,t){var r={defaultValue:e,requestInfo:t},n=this.addBodyToOptions({},r);return this.request(this.baseUri,De,null,n)},Oe.prototype.createByPath=function(e,t){var r=he.convertPathToUrl(e),n=""+this.baseUri+r,o=t,i=this.addBodyToOptions({},o);return this.request(n,De,null,i)},Oe.prototype.update=function(e,t){var r={changeDetail:e,requestInfo:t},n=this.addBodyToOptions({},r);return this.request(this.baseUri,"PATCH",null,n)},Oe.prototype.save=function(e){var t=e,r=this.addBodyToOptions({},t);return this.request(this.baseUri,Re,null,r)},Oe.prototype["delete"]=function(e){var t=this.baseUri+"/"+e;return this.request(t,Pe)},Oe.prototype.deleteAndSave=function(e,t){var r=this.baseUri+"/service/delete/"+e,n=t,o=this.addBodyToOptions({},n);return this.request(r,Re,null,o)},Oe.prototype.extendDelete=function(e,t){var r=this.baseUri+"/extension/delete/"+e,n=t,o=this.addBodyToOptions({},n);return this.request(r,Re,null,o)},Oe.prototype.deletByPath=function(e,t){var r=he.convertPathToUrl(e),n=""+this.baseUri+r+"/"+t;return this.request(n,Pe)},Oe.prototype.extendDeletByPath=function(e,t,r){var n=he.convertPathToUrl(e),o=this.baseUri+"/extension"+n+"/"+t,i=r,a=this.addBodyToOptions({},i);return this.request(o,Re,null,a)},Oe.prototype.batchDeleteByPath=function(e,t,r){var n=he.convertPathToUrl(e);if(n.split("/").length<3)throw Error("根据path删除实体数据出错了。传入的path["+e+"]格式不对");var o=this.baseUri+"/extension"+n+"/batch",i={ids:t.split(","),requestInfo:r},a=this.addBodyToOptions({},i);return this.request(o,Re,null,a)},Oe.prototype.batchDelete=function(e){var t={ids:e.join(",")};return this.request(this.baseUri,Pe,t)},Oe.prototype.extendBatchDelete=function(e,t){var r=this.baseUri+"/extension/batchdelete",n={ids:e.join(",")},o=t,i=this.addBodyToOptions({},o);return this.request(r,Re,n,i)},Oe.prototype.cancel=function(e){var t=this.baseUri+"/service/cancel";return this.request(t,De,null,null,!1,!1,!1,e)},Oe.prototype.batchAppendByPath=function(e,t,r){var n=he.convertPathToUrl(e),o=""+this.baseUri+n+"/batch",i={requestInfo:r,retrieveDefaultParam:{defaultValues:t}},a=this.addBodyToOptions({},i);return this.request(o,De,null,a)},Oe.prototype.batchAppend=function(e,t){var r=this.baseUri+"/batch",n={requestInfo:t,retrieveDefaultParam:{defaultValues:e}},o=this.addBodyToOptions({},n);return this.request(r,De,null,o)},Oe.prototype.request=function(t,r,e,n,o,i,a,s){var p=this;n=n||{},void 0!==o&&"boolean"==typeof o||(o=!1),void 0!==i&&"boolean"==typeof i||(i=!1),e&&(n.params=e),n.headers=q.convertToHeaders(n.headers);var u=this.hasRequestInfo(n);return n&&n.body&&n.body.hasOwnProperty("RequestInfo")&&(n.body.requestInfo=n.body.RequestInfo,delete n.body.RequestInfo),this.proxyExtend.extendHeaders(n.headers,s).pipe(d.switchMap(function(e){return n.headers=q.toJson(e),n.observe="response",p.httpService.request(r,t,n)}),d.tap(function(e){return p.proxyExtend.parseHeaders(e)}),d.map(function(e){return e.body}),d.map(function(e){return u?(p.proxyExtend.onResponse(e,a),e):p.unWrapResponseInfo(e)}),d.catchError(function(e){return p.proxyExtend.onError(e,o,i)}))},Oe.prototype.invoke=function(t,r,n){var o=this;return n.params&&(t=this.proxyExtend.extendUrl(t,n.params),n.params=null),n.body&&(n.body=this.proxyExtend.extendBody(n.body)),n.headers=q.convertToHeaders(n.headers),this.proxyExtend.extendHeaders(n.headers).pipe(d.switchMap(function(e){return n.headers=q.toJson(e),n.observe="response",o.httpService.request(r,t,n).pipe(d.tap(function(e){return o.proxyExtend.parseHeaders(e)}),d.map(function(e){return e.body}),d.map(function(e){return o.proxyExtend.onResponse(e)}),d.catchError(function(e){return o.proxyExtend.onError(e,!1,!1)}))}))},Oe.prototype.addBodyToOptions=function(e,t){return e=e||{},Object.assign(e,{body:t})},Oe.prototype.buildParams=function(e){return w.buildParams(e)},Oe.prototype.hasRequestInfo=function(e){return T.hasRequestInfo(e)||T.hasRequestInfoWithR(e)},Oe.prototype.unWrapResponseInfo=function(e){return A.unWrapResponseInfo(e)},Oe.decorators=[{type:i.Injectable}],Oe.ctorParameters=function(){return[{type:a.HttpClient},{type:xe}]},Oe);function Oe(e,t){this.httpClient=e,this.uriService=t,this.httpService=new V(this.httpClient)}var we=(Object.defineProperty(Me.prototype,"proxy",{get:function(){return this.repository.proxy?this.repository.proxy:this.createBefProxy()},enumerable:!0,configurable:!0}),Me.prototype.createBefProxy=function(){var e=this.repository.serverUri,t=new xe(e),r=new qe(this.httpClient,t);r.setBaseUri(this.baseUri);var n=new Se(this.repository);return r.setProxyExtend(n),r},Me.prototype.query=function(e){return this.proxy.query(e)},Me.prototype.extendQuery=function(e,t){return this.proxy.extendQuery(e,t)},Me.prototype.serviceRetrieve=function(e,t,r){return this.proxy.serviceRetrieve(e,t,r)},Me.prototype.queryChild=function(e){return this.proxy.queryChild(e)},Me.prototype.retrieve=function(e){return this.proxy.retrieve(e)},Me.prototype.extendRetrieve=function(e,t){return this.proxy.extendRetrieve(e,t)},Me.prototype.create=function(e,t){return this.proxy.create(e,t)},Me.prototype.createByPath=function(e,t){return this.proxy.createByPath(e,t)},Me.prototype.update=function(e,t){return this.proxy.update(e,t)},Me.prototype.save=function(e){return this.proxy.save(e)},Me.prototype["delete"]=function(e){return this.proxy["delete"](e)},Me.prototype.extendDelete=function(e,t){return this.proxy.extendDelete(e,t)},Me.prototype.deletByPath=function(e,t){return this.proxy.deletByPath(e,t)},Me.prototype.extendDeletByPath=function(e,t,r){return this.proxy.extendDeletByPath(e,t,r)},Me.prototype.batchDeleteByPath=function(e,t,r){return this.proxy.batchDeleteByPath(e,t,r)},Me.prototype.batchDelete=function(e){return this.proxy.batchDelete(e)},Me.prototype.extendBatchDelete=function(e,t){return this.proxy.extendBatchDelete(e,t)},Me.prototype.cancel=function(e){return this.proxy.cancel(e)},Me.prototype.request=function(e,t,r,n,o,i,a){return this.innerRequest(e,t,r,n,o,i,a,!1)},Me.prototype.invoke=function(e,t,r,n,o,i,a){if(n&&n.body&&n.body.RequestInfo)throw new Error("请使用requestInfo提交变更");return this.innerRequest(e,t,r,n,o,i,a,!0)},Me.prototype.innerRequest=function(t,r,e,n,o,i,a,s){var p=this;n=n||{};var u="BEFSessionID";void 0!==o&&"boolean"==typeof o||(o=!1),void 0!==i&&"boolean"==typeof i||(i=!1),void 0!==s&&"boolean"==typeof s||(s=!1);var c=s?this.existRequestInfo:this.hasRequestInfo;e&&(n.params=e);var h=c(n),l=q.convertToHeaders(n.headers),y=this.repository.appContext.getFormAppContext();return ve.getSessionId(y,this.sessionService).pipe(d.switchMap(function(e){return l=p.sessionService.extendRequestHeaders(l),n.headers=q.toJson(l),n.observe="response",p.httpService.request(r,t,n)}),d.tap(function(e){e.headers&&e.headers.has(u)&&p.sessionService.setBeSessionId(e.headers.get(u))}),d.map(function(e){return e.body}),d.map(function(e){var t=A.parseBackEndMessage(e);return fe.handleMessage(t,p.repository.getInjector()),p.handleReponseInfo(e,h,a)}),d.catchError(function(e){return p.handleErrors(e,o,i)}))},Me.prototype.handleReponseInfo=function(e,t,r){return t?(e&&e.innerDataChange&&!0!==r&&this.repository.handleDataChangeDetails(e.innerDataChange),e&&e.innerVariableChange&&this.repository.handleVariableChangeDetail(e.innerVariableChange),this.repository.clearAllEntityChanges(),this.repository.clearAllVariableChanges(),e):this.unWrapResponseInfo(e)},Me.prototype.handleErrors=function(e,t,r){if(this.clearLoading(),t)return b.throwError(e);var n=this.repository.appContext.getFormAppContext(),o=n.ApplicationId,i=window[o]||{},a=A.parseBackEndError(e),s=fe.getFormlessMessages(a),p=!!i.isExceptionHandlerExist,u=s&&0<s.length||!1,c=!(e&&e.error&&e.error.extensionMessage&&fe.isBackEndMessageHandlerExist(this.repository.getInjector())&&!u),h=!!this.eventBus&&p&&c;return fe.handleMessage(a,this.repository.getInjector(),{hasThrowError:h,isException:!0,eventBus:this.eventBus,error:e,formAppContext:n}),this.eventBus&&p&&!A.isReported401Error(e)?(c&&this.eventBus.post("Exception","","onException",e,n),r?b.of(null):b.EMPTY):b.throwError(e)},Me.prototype.clearLoading=function(){var e,t;if(!1!==(window.DEVKIT_LOADING_SERVICE&&window.DEVKIT_LOADING_SERVICE instanceof Array&&0<window.DEVKIT_LOADING_SERVICE.length||!1)){var r=window.DEVKIT_LOADING_SERVICE;try{for(var n=P(r),o=n.next();!o.done;o=n.next()){var i=o.value;"function"==typeof i.clearAll&&i.clearAll()}}catch(a){e={error:a}}finally{try{o&&!o.done&&(t=n["return"])&&t.call(n)}finally{if(e)throw e.error}}}},Me.prototype.unWrapResponseInfo=function(e){return A.unWrapResponseInfo(e)},Me.prototype.hasRequestInfo=function(e){return T.hasRequestInfoWithR(e)},Me.prototype.existRequestInfo=function(e){return T.hasRequestInfo(e)},Me.prototype.buildParams=function(e){return w.buildParams(e)},Me.prototype.buildBodyWithRequestInfo=function(e){return T.buildBodyWithRequestInfo(e,this.repository)},Me.prototype.buildRequestInfo=function(){return T.buildRequestInfo(this.repository)},Me.decorators=[{type:i.Injectable}],Me.ctorParameters=function(){return[{type:a.HttpClient},{type:String},{type:f},{type:me},{type:I.EventBus}]},Me);function Me(e,t,r,n,o){this.httpClient=e,this.httpService=new V(this.httpClient),this.baseUri=t;var i=n.getInjector();this.sessionService=new Q(e,t,r,i),this.repository=n,this.eventBus=o}var Te=(je.prototype.getData=function(e,t){var r=e.split(".")[0],n=e.split(".")[1];return t=t||{},!0===this.ifEnableExtendLoadMethod(e)?this.extendGetHelpData(n,r,t):this.getHelpData(n,r,t)},je.prototype.saveUserSettings=function(e){return this.befRepository.restService.invoke("/api/runtime/bcc/v1.0/datagrid/settings","POST",null,{body:e},!1)},je.prototype.getUserSettings=function(e){var t="/api/runtime/bcc/v1.0/datagrid/settings/"+e;return this.befRepository.restService.invoke(t,"GET",null,null,!1)},je.prototype.ifEnableExtendLoadMethod=function(e){if(this.context&&this.context.hasOwnProperty("enableExtendLoadMethod"))return this.context.enableExtendLoadMethod;var t=!1;if(this.frameContext){var r=e+"@"+this.frameContext.repository.apiUri;t=this.frameContext.getParam(r)}return t},je.prototype.getHelpData=function(e,t,r){var n=this,o=this.befRepository.restService.baseUri+"/elementhelps/"+e;return this.befRepository.updateDataAndVariableChanges().pipe(d.switchMap(function(){return n.befRepository.restService.invoke(o,"GET",{nodeCode:t,queryParam:JSON.stringify(r)},null,!1)}))},je.prototype.extendGetHelpData=function(e,t,r){var n=this.befRepository.restService.baseUri+"/extension/elementhelps",o={body:{labelId:e,nodeCode:t,queryParam:r,requestInfo:this.befRepository.restService.buildRequestInfo()}};return this.befRepository.restService.invoke(n,"PUT",null,o,!1,!0,!0).pipe(d.map(function(e){return e&&e.returnValue||null}))},je.prototype.convert2TreeDataWithPathCode=function(n,t,r){var o=this;void 0===t&&(t=1),void 0===r&&(r="01");var e=n.filter(function(e){return e.layer===t&&e.pathcode===r});if(1<t&&(e=n.filter(function(e){return e.layer===t&&e.pathcode.substr(0,2*(t-1))===r})),e.length){var i=e.map(function(e){return{data:e,children:[]}});return i.forEach(function(e){var t,r=o.convert2TreeDataWithPathCode(n,e.data.layer+1,e.data.pathcode);(t=e.children).push.apply(t,D(r))}),i}},je.decorators=[{type:i.Injectable}],je.ctorParameters=function(){return[{type:I.Repository},{type:I.FrameContext,decorators:[{type:i.Optional}]}]},je);function je(e,t){this.frameContext=t,this.befRepository=e}var Ae=(Ue.prototype.createSession=function(e){var t=this.sessionService.getUserSessionId();return t?this.befRepository.restService.invoke(e,"POST",null,{headers:new a.HttpHeaders({SessionId:t}),responseType:"text"},!1).pipe(d.switchMap(function(e){return b.of({status:!0,payload:e})})):b.of({status:!1,payload:"用户登录信息已过期,请重新登录"})},Ue.prototype.getData=function(e,t){var r=this,n={};t.condition&&(n=t.condition),"/"===e[e.length-1]&&(e=e.substr(0,e.length-1));var o=e+"/extension/query",i=e+"/service/createsession";if(n){var a=JSON.stringify(n);o=o+"?entityFilter="+a}return this.createSession(i).pipe(d.switchMap(function(e){if(e.status)return e.payload,r.befRepository.restService.invoke(o,"PUT",null,{},!1);throw new Error(e.payload)}),s.map(function(e){var t=e.returnValue,r={items:t.result};return t.pagination?Object.assign({},r,{total:t.pagination.totalCount,pageInfo:{pageSize:t.pagination.pageSize,pageIndex:t.pagination.pageIndex,enablePager:!0}}):r}))},Ue.decorators=[{type:i.Injectable}],Ue.ctorParameters=function(){return[{type:I.Repository},{type:f}]},Ue);function Ue(e,t){this.sessionService=t,this.befRepository=e}var Ve=(He.isExistUnsaveData=function(e){var t=!1;if(!e||!e.entityCollection)throw"Current Object is null or it's entityCollection is null.";var r=e.entityCollection.toArray();if(e.dataChangeHistory.isChanged())return!0;for(var n=0;n<r.length;n++)if(0<r[n].changes.length){t=!0;break}return t},He);function He(){}var ke=(Fe.prototype.toString=function(){return this.url},Fe);function Fe(e,t){void 0===t&&(t=null);var r=this;this.url=e,this.paths=t,this.paths&&Object.keys(t).forEach(function(e){-1!==r.url.indexOf("{"+e+"}")&&(r.url=r.url.replace("{"+e+"}",""+t[e]))})}var Ne=(_e.prototype.getData=function(e,t,r){void 0===t&&(t={}),void 0===r&&(r="GET");var n=new a.HttpHeaders({"content-type":"application/json"});return"get"!==r.toLowerCase()?this.befRest.restService.invoke(e,r,null,{headers:n,body:t}):this.befRest.restService.invoke(e,r,t,{headers:n})},_e.decorators=[{type:i.Injectable}],_e.ctorParameters=function(){return[{type:I.Repository}]},_e);function _e(e){this.befRest=e}var Le=(Ke.prototype.getData=function(e,t,r){void 0===t&&(t={}),void 0===r&&(r="GET");var n=new a.HttpHeaders({"content-type":"application/json"});return this.befRest.restService.invoke(e,r,t,{headers:n})},Ke.decorators=[{type:i.Injectable}],Ke.ctorParameters=function(){return[{type:I.Repository}]},Ke);function Ke(e){this.befRest=e}e.VERSION="ver.",e.ChangeDetailType=S,e.BE_SERVER_URI_TOKEN=p,e.BE_SESSION_HANDLING_STRATEGY_TOKEN=u,e.BefChangeBuilder=c,e.BefChangeHandler=l,e.BefSessionService=Q,e.BefRestService=we,e.BefProxy=qe,e.BefLookupRestService=Te,e.BefLookupDefaultService=Ae,e.BefRepository=me,e.FrameworkSessionService=f,e.NG_VARIABLE=Z,e.NgVariable=$,e.BefRepositoryUtil=Ve,e.BefDataPathUtil=he,e.UriService=xe,e.Uri=ke,e.DefaultComboHttpService=Ne,e.DefaultDynamiControlGroupHttpService=Le,e.ɵa=ee,Object.defineProperty(e,"__esModule",{value:!0})}); | ||
//# sourceMappingURL=farris-bef.umd.min.js.map |
@@ -36,2 +36,3 @@ /** | ||
this.context.clearAllEntityChanges(); | ||
this.context.clearAllVariableChanges(); | ||
if (response && response.hasOwnProperty('returnValue')) { | ||
@@ -195,2 +196,2 @@ return response.returnValue; | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVmX3Byb3h5X2V4dGVuZC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BmYXJyaXMvYmVmLyIsInNvdXJjZXMiOlsibGliL2JlZl9wcm94eV9leHRlbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFjLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFJekQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUMzQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFHbEUsTUFBTSxPQUFPLGNBQWM7Ozs7SUFDekIsWUFBb0IsT0FBOEI7UUFBOUIsWUFBTyxHQUFQLE9BQU8sQ0FBdUI7SUFBSSxDQUFDOzs7Ozs7O0lBTWhELFVBQVUsQ0FBQyxRQUFzQixFQUFFLGFBQXVCO1FBQy9ELElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxlQUFlLElBQUksYUFBYSxLQUFLLElBQUksRUFBRTtZQUNsRSxJQUFJLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQztTQUNoRTtRQUNELElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxtQkFBbUIsRUFBRTtZQUM1QyxJQUFJLENBQUMsT0FBTyxDQUFDLDBCQUEwQixDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1NBQ3ZFOztjQUNLLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUM7UUFDL0Qsa0JBQWtCLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIs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cnJvciwgT2JzZXJ2YWJsZSwgb2YsIEVNUFRZIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEVudGl0eSB9IGZyb20gJ0BmYXJyaXMvZGV2a2l0JztcclxuaW1wb3J0IHsgSVByb3h5RXh0ZW5kLCBSZXNwb25zZUluZm8gfSBmcm9tICcuL3R5cGVzJztcclxuaW1wb3J0IHsgQmVmUmVwb3NpdG9yeSB9IGZyb20gJy4vYmVmX3JlcG9zaXRvcnknO1xyXG5pbXBvcnQgeyBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEh0dHBQYXJhbXMsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBSZXNwb25zZUluZm9VdGlsIH0gZnJvbSAnLi91dGlscyc7XHJcbmltcG9ydCB7IEJhY2tFbmRNZXNzYWdlVXRpbCB9IGZyb20gJy4vdXRpbHMvYmFja19lbmRfbWVzc2FnZS51dGlsJztcclxuaW1wb3J0IHsgQmVmU2Vzc2lvbk1hbmFnZXIgfSBmcm9tICcuL3Nlc3Npb24vYmVmX3Nlc3Npb25fbWFuYWdlcic7XHJcblxyXG4vLyB0c2xpbnQ6ZGlzYWJsZTogbWF4LWxpbmUtbGVuZ3RoIHRzbGludDpkaXNhYmxlOiBuby1zdHJpbmctbGl0ZXJhbFxyXG5leHBvcnQgY2xhc3MgQmVmUHJveHlFeHRlbmQgaW1wbGVtZW50cyBJUHJveHlFeHRlbmQge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29udGV4dDogQmVmUmVwb3NpdG9yeTxFbnRpdHk+KSB7IH1cclxuICAvKipcclxuICAgKiDor7fmsYLnu5Pmnpzov5Tlm55cclxuICAgKiBAcGFyYW0gcmVzcG9uc2UgcmVzcG9uc2VcclxuICAgKiBAcGFyYW0gaWdub3JlQ2hhbmdlcyDlv73nlaXlj5jmm7RcclxuICAgKi9cclxuICBwdWJsaWMgb25SZXNwb25zZShyZXNwb25zZTogUmVzcG9uc2VJbmZvLCBpZ25vcmVDaGFuZ2VzPzogYm9vbGVhbikge1xyXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLmlubmVyRGF0YUNoYW5nZSAmJiBpZ25vcmVDaGFuZ2VzICE9PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMuY29udGV4dC5oYW5kbGVEYXRhQ2hhbmdlRGV0YWlscyhyZXNwb25zZS5pbm5lckRhdGFDaGFuZ2UpO1xyXG4gICAgfVxyXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLmlubmVyVmFyaWFibGVDaGFuZ2UpIHtcclxuICAgICAgdGhpcy5jb250ZXh0LmhhbmRsZVZhcmlhYmxlQ2hhbmdlRGV0YWlsKHJlc3BvbnNlLmlubmVyVmFyaWFibGVDaGFuZ2UpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgbWVzc2FnZXMgPSBSZXNwb25zZUluZm9VdGlsLnBhcnNlQmFja0VuZE1lc3NhZ2UocmVzcG9uc2UpO1xyXG4gICAgQmFja0VuZE1lc3NhZ2VVdGlsLmhhbmRsZU1lc3NhZ2UobWVzc2FnZXMsIHRoaXMuY29udGV4dC5nZXRJbmplY3RvcigpKTtcclxuICAgIHRoaXMuY29udGV4dC5jbGVhckFsbEVudGl0eUNoYW5nZXMoKTtcclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgncmV0dXJuVmFsdWUnKSkge1xyXG4gICAgICByZXR1cm4gcmVzcG9uc2UucmV0dXJuVmFsdWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIOWPkeeUn+mUmeivr1xyXG4gICAqIEBwYXJhbSBlcnJvciBlcnJvclxyXG4gICAqIEBwYXJhbSBzZWxmSGFuZEVycm9yIOiHquWumuS5iemUmeivr+WkhOeQhlxyXG4gICAqIEBwYXJhbSBpZ25vcmVFcnJvciDlv73nlaXplJnor69cclxuICAgKi9cclxuICBwdWJsaWMgb25FcnJvcihlcnJvcjogYW55LCBzZWxmSGFuZEVycm9yOiBib29sZWFuLCBpZ25vcmVFcnJvcjogYm9vbGVhbik6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBjb25zdCBmb3JtQXBwQ29udGV4dCA9IHRoaXMuY29udGV4dC5hcHBDb250ZXh0LmdldEZvcm1BcHBDb250ZXh0KCk7XHJcbiAgICBjb25zdCBhcHBsaWNhdGlvbklkID0gZm9ybUFwcENvbnRleHQuQXBwbGljYXRpb25JZDtcclxuICAgIGNvbnN0IGxvYWRpbmdTZXJ2aWNlcyA9IHdpbmRvd1snREVWS0lUX0xPQURJTkdfU0VSVklDRSddO1xyXG4gICAgY29uc3QgbWVzc2FnZXMgPSBSZXNwb25zZUluZm9VdGlsLnBhcnNlQmFja0VuZEVycm9yKGVycm9yKTtcclxuICAgIEJhY2tFbmRNZXNzYWdlVXRpbC5oYW5kbGVNZXNzYWdlKG1lc3NhZ2VzLCB0aGlzLmNvbnRleHQuZ2V0SW5qZWN0b3IoKSk7XHJcbiAgICBpZiAobG9hZGluZ1NlcnZpY2VzICYmIGxvYWRpbmdTZXJ2aWNlcyBpbnN0YW5jZW9mIEFycmF5ICYmIGxvYWRpbmdTZXJ2aWNlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGZvciAoY29uc3QgbG9hZGluZ1NlcnZpY2Ugb2YgbG9hZGluZ1NlcnZpY2VzKSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiAobG9hZGluZ1NlcnZpY2UuY2xlYXJBbGwpID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICBsb2FkaW5nU2VydmljZS5jbGVhckFsbCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmICghIXNlbGZIYW5kRXJyb3IpIHtcclxuICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgZXZlbnRCdXMgPSB0aGlzLmNvbnRleHQucmVzdFNlcnZpY2UuZXZlbnRCdXM7XHJcbiAgICAgIGNvbnN0IGFwcGxpY2F0aW9uQ29udGV4dDogYW55ID0gd2luZG93W2FwcGxpY2F0aW9uSWRdIHx8IHt9O1xyXG4gICAgICBjb25zdCBpc0V4Y2VwdGlvbkhhbmRsZXJFeGlzdCA9ICEhYXBwbGljYXRpb25Db250ZXh0LmlzRXhjZXB0aW9uSGFuZGxlckV4aXN0O1xyXG4gICAgICBjb25zdCBtZXNzYWdlcyA9IFJlc3BvbnNlSW5mb1V0aWwucGFyc2VCYWNrRW5kRXJyb3IoZXJyb3IpO1xyXG4gICAgICBjb25zdCBiaXpNZXNzYWdlcyA9IEJhY2tFbmRNZXNzYWdlVXRpbC5nZXRGb3JtbGVzc01lc3NhZ2VzKG1lc3NhZ2VzKTtcclxuICAgICAgY29uc3QgaXNFeGlzdEZvcm1sZXNzTWVzc2FnZSA9IGJpek1lc3NhZ2VzICYmIGJpek1lc3NhZ2VzLmxlbmd0aCA+IDAgfHwgZmFsc2U7XHJcbiAgICAgIGNvbnN0IG5lZWRUaHJvd0V4Y2VwdGlvbiA9ICEoZXJyb3IgJiYgZXJyb3IuZXJyb3IgJiYgZXJyb3IuZXJyb3IuZXh0ZW5zaW9uTWVzc2FnZSAmJiBCYWNrRW5kTWVzc2FnZVV0aWwuaXNCYWNrRW5kTWVzc2FnZUhhbmRsZXJFeGlzdCh0aGlzLmNvbnRleHQuZ2V0SW5qZWN0b3IoKSkgJiYgIWlzRXhpc3RGb3JtbGVzc01lc3NhZ2UpO1xyXG4gICAgICBjb25zdCB3aWxsVGhyb3dFeGNlcHRpb24gPSAhIWV2ZW50QnVzICYmIGlzRXhjZXB0aW9uSGFuZGxlckV4aXN0ICYmIG5lZWRUaHJvd0V4Y2VwdGlvbjtcclxuICAgICAgQmFja0VuZE1lc3NhZ2VVdGlsLmhhbmRsZU1lc3NhZ2UobWVzc2FnZXMsIHRoaXMuY29udGV4dC5nZXRJbmplY3RvcigpLCB7IGhhc1Rocm93RXJyb3I6IHdpbGxUaHJvd0V4Y2VwdGlvbiwgaXNFeGNlcHRpb246IHRydWUsIGV2ZW50QnVzOiBldmVudEJ1cywgZXJyb3IsIGZvcm1BcHBDb250ZXh0IH0pO1xyXG4gICAgICBpZiAoISFldmVudEJ1cyAmJiBpc0V4Y2VwdGlvbkhhbmRsZXJFeGlzdCkge1xyXG4gICAgICAgIGlmIChSZXNwb25zZUluZm9VdGlsLmlzUmVwb3J0ZWQ0MDFFcnJvcihlcnJvcikpIHtcclxuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG5lZWRUaHJvd0V4Y2VwdGlvbikge1xyXG4gICAgICAgICAgZXZlbnRCdXMucG9zdCgnRXhjZXB0aW9uJywgJycsICdvbkV4Y2VwdGlvbicsIGVycm9yLCBmb3JtQXBwQ29udGV4dCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpZ25vcmVFcnJvcikge1xyXG4gICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gRU1QVFk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICAvKipcclxuICAgKiDmianlsZVodHRwIGhlYWRlcnNcclxuICAgKiBAcGFyYW0gaGVhZGVycyBoZWFkZXJzXHJcbiAgICovXHJcbiAgcHVibGljIGV4dGVuZEhlYWRlcnMoaGVhZGVyczogSHR0cEhlYWRlcnMsIHJ1bnRpbWVDb250ZXh0PzogYW55KTogT2JzZXJ2YWJsZTx7IFtwcm9wTmFtZTogc3RyaW5nXTogYW55IH0+IHtcclxuICAgIGNvbnN0IGZvcm1BcHBDb250ZXh0ID0gdGhpcy5jb250ZXh0LmFwcENvbnRleHQuZ2V0Rm9ybUFwcENvbnRleHQoKTtcclxuICAgIGNvbnN0ICRnZXRTZXNzaW9uSWQgPSBCZWZTZXNzaW9uTWFuYWdlci5nZXRTZXNzaW9uSWQoZm9ybUFwcENvbnRleHQsIHRoaXMuY29udGV4dC5yZXN0U2VydmljZS5zZXNzaW9uU2VydmljZSk7XHJcbiAgICByZXR1cm4gJGdldFNlc3Npb25JZC5waXBlKFxyXG4gICAgICBzd2l0Y2hNYXAoc2Vzc2lvbklkID0+IHtcclxuICAgICAgICBoZWFkZXJzID0gdGhpcy5jb250ZXh0LnJlc3RTZXJ2aWNlLnNlc3Npb25TZXJ2aWNlLmV4dGVuZFJlcXVlc3RIZWFkZXJzKGhlYWRlcnMsIHJ1bnRpbWVDb250ZXh0KTtcclxuICAgICAgICByZXR1cm4gb2YoaGVhZGVycyk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuICAvKipcclxuICAgKiDmianlsZXor7fmsYLlj4LmlbBcclxuICAgKiBAcGFyYW0gcGFyYW1zIOWPguaVsFxyXG4gICAqL1xyXG4gIHB1YmxpYyBleHRlbmRVcmwodXJsOiBzdHJpbmcsIHBhcmFtczogeyBbcHJvcE5hbWU6IHN0cmluZ106IGFueSB9KTogc3RyaW5nIHtcclxuICAgIGlmICghcGFyYW1zKSB7XHJcbiAgICAgIHJldHVybiB1cmw7XHJcbiAgICB9XHJcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBwYXJhbXMpIHtcclxuICAgICAgaWYgKHBhcmFtcy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XHJcbiAgICAgICAgY29uc3QgdmFsdWUgPSBKU09OLnN0cmluZ2lmeShwYXJhbXNba2V5XSk7XHJcbiAgICAgICAgaWYgKHVybC5pbmRleE9mKCc/JykgPT09IC0xKSB7XHJcbiAgICAgICAgICB1cmwgPSBgJHt1cmx9PyR7a2V5fT0ke3ZhbHVlfWA7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHVybCA9IGAke3VybH0mJHtrZXl9PSR7dmFsdWV9YDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB1cmw7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIOaJqeWxleivt+axguS9k1xyXG4gICAqIEBwYXJhbSBib2R5IGJvZHlcclxuICAgKi9cclxuICBwdWJsaWMgZXh0ZW5kQm9keShib2R5KTogeyBbcHJvcE5hbWU6IHN0cmluZ106IGFueSB9IHtcclxuICAgIGlmICghYm9keSB8fCB0eXBlb2YgYm9keSAhPT0gJ29iamVjdCcgfHwgT2JqZWN0LmtleXMoYm9keSkubGVuZ3RoIDwgMSkge1xyXG4gICAgICByZXR1cm4gYm9keTtcclxuICAgIH1cclxuICAgIE9iamVjdC5rZXlzKGJvZHkpLmZvckVhY2gobmFtZSA9PiB7XHJcbiAgICAgIGlmIChuYW1lID09PSAncmVxdWVzdEluZm8nKSB7XHJcbiAgICAgICAgYm9keVsncmVxdWVzdEluZm8nXSA9IHRoaXMuY29udGV4dC5yZXN0U2VydmljZS5idWlsZFJlcXVlc3RJbmZvKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgLy8g5YW85a65SueJiOWQjuerr2JvZHnlj6rmnInkuIDkuKprZXnml7Zib2R55Y+q5LygdmFsdWXnmoTmg4XlhrVcclxuICAgIGlmIChPYmplY3Qua2V5cyhib2R5KS5sZW5ndGggPT09IDEpIHtcclxuICAgICAgYm9keSA9IE9iamVjdC52YWx1ZXMoYm9keSlbMF07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYm9keTtcclxuICB9XHJcbiAgcHVibGljIHBhcnNlSGVhZGVycyhyZXNwb25zZTogYW55KSB7XHJcbiAgICBjb25zdCBzZXNzaW9uSWRLZXkgPSAnQkVGU2Vzc2lvbklEJztcclxuICAgIGlmIChyZXNwb25zZS5oZWFkZXJzICYmIHJlc3BvbnNlLmhlYWRlcnMuaGFzKHNlc3Npb25JZEtleSkpIHtcclxuICAgICAgdGhpcy5jb250ZXh0LnJlc3RTZXJ2aWNlLnNlc3Npb25TZXJ2aWNlLnNldEJlU2Vzc2lvbklkKHJlc3BvbnNlLmhlYWRlcnMuZ2V0KHNlc3Npb25JZEtleSkpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVmX3Byb3h5X2V4dGVuZC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BmYXJyaXMvYmVmLyIsInNvdXJjZXMiOlsibGliL2JlZl9wcm94eV9leHRlbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFjLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFJekQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUMzQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFHbEUsTUFBTSxPQUFPLGNBQWM7Ozs7SUFDekIsWUFBb0IsT0FBOEI7UUFBOUIsWUFBTyxHQUFQLE9BQU8sQ0FBdUI7SUFBSSxDQUFDOzs7Ozs7O0lBTWhELFVBQVUsQ0FBQyxRQUFzQixFQUFFLGFBQXVCO1FBQy9ELElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxlQUFlLElBQUksYUFBYSxLQUFLLElBQUksRUFBRTtZQUNsRSxJQUFJLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQztTQUNoRTtRQUNELElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxtQkFBbUIsRUFBRTtZQUM1QyxJQUFJLENBQUMsT0FBTyxDQUFDLDBCQUEwQixDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1NBQ3ZFOztjQUNLLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUM7UUFDL0Qsa0JBQWtCLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIs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LGlDQUFzQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRocm93RXJyb3IsIE9ic2VydmFibGUsIG9mLCBFTVBUWSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBFbnRpdHkgfSBmcm9tICdAZmFycmlzL2RldmtpdCc7XHJcbmltcG9ydCB7IElQcm94eUV4dGVuZCwgUmVzcG9uc2VJbmZvIH0gZnJvbSAnLi90eXBlcyc7XHJcbmltcG9ydCB7IEJlZlJlcG9zaXRvcnkgfSBmcm9tICcuL2JlZl9yZXBvc2l0b3J5JztcclxuaW1wb3J0IHsgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBIdHRwUGFyYW1zLCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgUmVzcG9uc2VJbmZvVXRpbCB9IGZyb20gJy4vdXRpbHMnO1xyXG5pbXBvcnQgeyBCYWNrRW5kTWVzc2FnZVV0aWwgfSBmcm9tICcuL3V0aWxzL2JhY2tfZW5kX21lc3NhZ2UudXRpbCc7XHJcbmltcG9ydCB7IEJlZlNlc3Npb25NYW5hZ2VyIH0gZnJvbSAnLi9zZXNzaW9uL2JlZl9zZXNzaW9uX21hbmFnZXInO1xyXG5cclxuLy8gdHNsaW50OmRpc2FibGU6IG1heC1saW5lLWxlbmd0aCB0c2xpbnQ6ZGlzYWJsZTogbm8tc3RyaW5nLWxpdGVyYWxcclxuZXhwb3J0IGNsYXNzIEJlZlByb3h5RXh0ZW5kIGltcGxlbWVudHMgSVByb3h5RXh0ZW5kIHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbnRleHQ6IEJlZlJlcG9zaXRvcnk8RW50aXR5PikgeyB9XHJcbiAgLyoqXHJcbiAgICog6K+35rGC57uT5p6c6L+U5ZueXHJcbiAgICogQHBhcmFtIHJlc3BvbnNlIHJlc3BvbnNlXHJcbiAgICogQHBhcmFtIGlnbm9yZUNoYW5nZXMg5b+955Wl5Y+Y5pu0XHJcbiAgICovXHJcbiAgcHVibGljIG9uUmVzcG9uc2UocmVzcG9uc2U6IFJlc3BvbnNlSW5mbywgaWdub3JlQ2hhbmdlcz86IGJvb2xlYW4pIHtcclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS5pbm5lckRhdGFDaGFuZ2UgJiYgaWdub3JlQ2hhbmdlcyAhPT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLmNvbnRleHQuaGFuZGxlRGF0YUNoYW5nZURldGFpbHMocmVzcG9uc2UuaW5uZXJEYXRhQ2hhbmdlKTtcclxuICAgIH1cclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS5pbm5lclZhcmlhYmxlQ2hhbmdlKSB7XHJcbiAgICAgIHRoaXMuY29udGV4dC5oYW5kbGVWYXJpYWJsZUNoYW5nZURldGFpbChyZXNwb25zZS5pbm5lclZhcmlhYmxlQ2hhbmdlKTtcclxuICAgIH1cclxuICAgIGNvbnN0IG1lc3NhZ2VzID0gUmVzcG9uc2VJbmZvVXRpbC5wYXJzZUJhY2tFbmRNZXNzYWdlKHJlc3BvbnNlKTtcclxuICAgIEJhY2tFbmRNZXNzYWdlVXRpbC5oYW5kbGVNZXNzYWdlKG1lc3NhZ2VzLCB0aGlzLmNvbnRleHQuZ2V0SW5qZWN0b3IoKSk7XHJcbiAgICB0aGlzLmNvbnRleHQuY2xlYXJBbGxFbnRpdHlDaGFuZ2VzKCk7XHJcbiAgICB0aGlzLmNvbnRleHQuY2xlYXJBbGxWYXJpYWJsZUNoYW5nZXMoKTtcclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgncmV0dXJuVmFsdWUnKSkge1xyXG4gICAgICByZXR1cm4gcmVzcG9uc2UucmV0dXJuVmFsdWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIOWPkeeUn+mUmeivr1xyXG4gICAqIEBwYXJhbSBlcnJvciBlcnJvclxyXG4gICAqIEBwYXJhbSBzZWxmSGFuZEVycm9yIOiHquWumuS5iemUmeivr+WkhOeQhlxyXG4gICAqIEBwYXJhbSBpZ25vcmVFcnJvciDlv73nlaXplJnor69cclxuICAgKi9cclxuICBwdWJsaWMgb25FcnJvcihlcnJvcjogYW55LCBzZWxmSGFuZEVycm9yOiBib29sZWFuLCBpZ25vcmVFcnJvcjogYm9vbGVhbik6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBjb25zdCBmb3JtQXBwQ29udGV4dCA9IHRoaXMuY29udGV4dC5hcHBDb250ZXh0LmdldEZvcm1BcHBDb250ZXh0KCk7XHJcbiAgICBjb25zdCBhcHBsaWNhdGlvbklkID0gZm9ybUFwcENvbnRleHQuQXBwbGljYXRpb25JZDtcclxuICAgIGNvbnN0IGxvYWRpbmdTZXJ2aWNlcyA9IHdpbmRvd1snREVWS0lUX0xPQURJTkdfU0VSVklDRSddO1xyXG4gICAgY29uc3QgbWVzc2FnZXMgPSBSZXNwb25zZUluZm9VdGlsLnBhcnNlQmFja0VuZEVycm9yKGVycm9yKTtcclxuICAgIEJhY2tFbmRNZXNzYWdlVXRpbC5oYW5kbGVNZXNzYWdlKG1lc3NhZ2VzLCB0aGlzLmNvbnRleHQuZ2V0SW5qZWN0b3IoKSk7XHJcbiAgICBpZiAobG9hZGluZ1NlcnZpY2VzICYmIGxvYWRpbmdTZXJ2aWNlcyBpbnN0YW5jZW9mIEFycmF5ICYmIGxvYWRpbmdTZXJ2aWNlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGZvciAoY29uc3QgbG9hZGluZ1NlcnZpY2Ugb2YgbG9hZGluZ1NlcnZpY2VzKSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiAobG9hZGluZ1NlcnZpY2UuY2xlYXJBbGwpID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICBsb2FkaW5nU2VydmljZS5jbGVhckFsbCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmICghIXNlbGZIYW5kRXJyb3IpIHtcclxuICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgZXZlbnRCdXMgPSB0aGlzLmNvbnRleHQucmVzdFNlcnZpY2UuZXZlbnRCdXM7XHJcbiAgICAgIGNvbnN0IGFwcGxpY2F0aW9uQ29udGV4dDogYW55ID0gd2luZG93W2FwcGxpY2F0aW9uSWRdIHx8IHt9O1xyXG4gICAgICBjb25zdCBpc0V4Y2VwdGlvbkhhbmRsZXJFeGlzdCA9ICEhYXBwbGljYXRpb25Db250ZXh0LmlzRXhjZXB0aW9uSGFuZGxlckV4aXN0O1xyXG4gICAgICBjb25zdCBtZXNzYWdlcyA9IFJlc3BvbnNlSW5mb1V0aWwucGFyc2VCYWNrRW5kRXJyb3IoZXJyb3IpO1xyXG4gICAgICBjb25zdCBiaXpNZXNzYWdlcyA9IEJhY2tFbmRNZXNzYWdlVXRpbC5nZXRGb3JtbGVzc01lc3NhZ2VzKG1lc3NhZ2VzKTtcclxuICAgICAgY29uc3QgaXNFeGlzdEZvcm1sZXNzTWVzc2FnZSA9IGJpek1lc3NhZ2VzICYmIGJpek1lc3NhZ2VzLmxlbmd0aCA+IDAgfHwgZmFsc2U7XHJcbiAgICAgIGNvbnN0IG5lZWRUaHJvd0V4Y2VwdGlvbiA9ICEoZXJyb3IgJiYgZXJyb3IuZXJyb3IgJiYgZXJyb3IuZXJyb3IuZXh0ZW5zaW9uTWVzc2FnZSAmJiBCYWNrRW5kTWVzc2FnZVV0aWwuaXNCYWNrRW5kTWVzc2FnZUhhbmRsZXJFeGlzdCh0aGlzLmNvbnRleHQuZ2V0SW5qZWN0b3IoKSkgJiYgIWlzRXhpc3RGb3JtbGVzc01lc3NhZ2UpO1xyXG4gICAgICBjb25zdCB3aWxsVGhyb3dFeGNlcHRpb24gPSAhIWV2ZW50QnVzICYmIGlzRXhjZXB0aW9uSGFuZGxlckV4aXN0ICYmIG5lZWRUaHJvd0V4Y2VwdGlvbjtcclxuICAgICAgQmFja0VuZE1lc3NhZ2VVdGlsLmhhbmRsZU1lc3NhZ2UobWVzc2FnZXMsIHRoaXMuY29udGV4dC5nZXRJbmplY3RvcigpLCB7IGhhc1Rocm93RXJyb3I6IHdpbGxUaHJvd0V4Y2VwdGlvbiwgaXNFeGNlcHRpb246IHRydWUsIGV2ZW50QnVzOiBldmVudEJ1cywgZXJyb3IsIGZvcm1BcHBDb250ZXh0IH0pO1xyXG4gICAgICBpZiAoISFldmVudEJ1cyAmJiBpc0V4Y2VwdGlvbkhhbmRsZXJFeGlzdCkge1xyXG4gICAgICAgIGlmIChSZXNwb25zZUluZm9VdGlsLmlzUmVwb3J0ZWQ0MDFFcnJvcihlcnJvcikpIHtcclxuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG5lZWRUaHJvd0V4Y2VwdGlvbikge1xyXG4gICAgICAgICAgZXZlbnRCdXMucG9zdCgnRXhjZXB0aW9uJywgJycsICdvbkV4Y2VwdGlvbicsIGVycm9yLCBmb3JtQXBwQ29udGV4dCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpZ25vcmVFcnJvcikge1xyXG4gICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gRU1QVFk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICAvKipcclxuICAgKiDmianlsZVodHRwIGhlYWRlcnNcclxuICAgKiBAcGFyYW0gaGVhZGVycyBoZWFkZXJzXHJcbiAgICovXHJcbiAgcHVibGljIGV4dGVuZEhlYWRlcnMoaGVhZGVyczogSHR0cEhlYWRlcnMsIHJ1bnRpbWVDb250ZXh0PzogYW55KTogT2JzZXJ2YWJsZTx7IFtwcm9wTmFtZTogc3RyaW5nXTogYW55IH0+IHtcclxuICAgIGNvbnN0IGZvcm1BcHBDb250ZXh0ID0gdGhpcy5jb250ZXh0LmFwcENvbnRleHQuZ2V0Rm9ybUFwcENvbnRleHQoKTtcclxuICAgIGNvbnN0ICRnZXRTZXNzaW9uSWQgPSBCZWZTZXNzaW9uTWFuYWdlci5nZXRTZXNzaW9uSWQoZm9ybUFwcENvbnRleHQsIHRoaXMuY29udGV4dC5yZXN0U2VydmljZS5zZXNzaW9uU2VydmljZSk7XHJcbiAgICByZXR1cm4gJGdldFNlc3Npb25JZC5waXBlKFxyXG4gICAgICBzd2l0Y2hNYXAoc2Vzc2lvbklkID0+IHtcclxuICAgICAgICBoZWFkZXJzID0gdGhpcy5jb250ZXh0LnJlc3RTZXJ2aWNlLnNlc3Npb25TZXJ2aWNlLmV4dGVuZFJlcXVlc3RIZWFkZXJzKGhlYWRlcnMsIHJ1bnRpbWVDb250ZXh0KTtcclxuICAgICAgICByZXR1cm4gb2YoaGVhZGVycyk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuICAvKipcclxuICAgKiDmianlsZXor7fmsYLlj4LmlbBcclxuICAgKiBAcGFyYW0gcGFyYW1zIOWPguaVsFxyXG4gICAqL1xyXG4gIHB1YmxpYyBleHRlbmRVcmwodXJsOiBzdHJpbmcsIHBhcmFtczogeyBbcHJvcE5hbWU6IHN0cmluZ106IGFueSB9KTogc3RyaW5nIHtcclxuICAgIGlmICghcGFyYW1zKSB7XHJcbiAgICAgIHJldHVybiB1cmw7XHJcbiAgICB9XHJcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBwYXJhbXMpIHtcclxuICAgICAgaWYgKHBhcmFtcy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XHJcbiAgICAgICAgY29uc3QgdmFsdWUgPSBKU09OLnN0cmluZ2lmeShwYXJhbXNba2V5XSk7XHJcbiAgICAgICAgaWYgKHVybC5pbmRleE9mKCc/JykgPT09IC0xKSB7XHJcbiAgICAgICAgICB1cmwgPSBgJHt1cmx9PyR7a2V5fT0ke3ZhbHVlfWA7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHVybCA9IGAke3VybH0mJHtrZXl9PSR7dmFsdWV9YDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB1cmw7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIOaJqeWxleivt+axguS9k1xyXG4gICAqIEBwYXJhbSBib2R5IGJvZHlcclxuICAgKi9cclxuICBwdWJsaWMgZXh0ZW5kQm9keShib2R5KTogeyBbcHJvcE5hbWU6IHN0cmluZ106IGFueSB9IHtcclxuICAgIGlmICghYm9keSB8fCB0eXBlb2YgYm9keSAhPT0gJ29iamVjdCcgfHwgT2JqZWN0LmtleXMoYm9keSkubGVuZ3RoIDwgMSkge1xyXG4gICAgICByZXR1cm4gYm9keTtcclxuICAgIH1cclxuICAgIE9iamVjdC5rZXlzKGJvZHkpLmZvckVhY2gobmFtZSA9PiB7XHJcbiAgICAgIGlmIChuYW1lID09PSAncmVxdWVzdEluZm8nKSB7XHJcbiAgICAgICAgYm9keVsncmVxdWVzdEluZm8nXSA9IHRoaXMuY29udGV4dC5yZXN0U2VydmljZS5idWlsZFJlcXVlc3RJbmZvKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgLy8g5YW85a65SueJiOWQjuerr2JvZHnlj6rmnInkuIDkuKprZXnml7Zib2R55Y+q5LygdmFsdWXnmoTmg4XlhrVcclxuICAgIGlmIChPYmplY3Qua2V5cyhib2R5KS5sZW5ndGggPT09IDEpIHtcclxuICAgICAgYm9keSA9IE9iamVjdC52YWx1ZXMoYm9keSlbMF07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYm9keTtcclxuICB9XHJcbiAgcHVibGljIHBhcnNlSGVhZGVycyhyZXNwb25zZTogYW55KSB7XHJcbiAgICBjb25zdCBzZXNzaW9uSWRLZXkgPSAnQkVGU2Vzc2lvbklEJztcclxuICAgIGlmIChyZXNwb25zZS5oZWFkZXJzICYmIHJlc3BvbnNlLmhlYWRlcnMuaGFzKHNlc3Npb25JZEtleSkpIHtcclxuICAgICAgdGhpcy5jb250ZXh0LnJlc3RTZXJ2aWNlLnNlc3Npb25TZXJ2aWNlLnNldEJlU2Vzc2lvbklkKHJlc3BvbnNlLmhlYWRlcnMuZ2V0KHNlc3Npb25JZEtleSkpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0= |
@@ -265,2 +265,9 @@ /** | ||
} | ||
/** | ||
* 清空vo变量变更 | ||
* @return {?} | ||
*/ | ||
clearAllVariableChanges() { | ||
this.variableManager.clearChanges(); | ||
} | ||
} | ||
@@ -310,2 +317,2 @@ BefRepository.decorators = [ | ||
export { BefRepository }; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVmX3JlcG9zaXRvcnkuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZmFycmlzL2JlZi8iLCJzb3VyY2VzIjpbImxpYi9iZWZfcmVwb3NpdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBV0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHckQsT0FBTyxFQUFFLFlBQVksRUFBVSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzNDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sVUFBVSxDQUFDOzs7Ozs7O0FBSy9DLE1BQ2UsYUFBZ0MsU0FBUSx1QkFBMEI7Ozs7O0lBb0MvRSxZQUFvQixRQUFrQjtRQUNwQyxLQUFLLEVBQUUsQ0FBQztRQURVLGFBQVEsR0FBUixRQUFRLENBQVU7UUFHcEMsV0FBVztRQUNYLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUVqRSxXQUFXO1FBQ1gsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBYSxVQUFVLENBQUMsQ0FBQzs7Y0FDdEQsV0FBVyxHQUFHLFlBQVksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQztRQUN2RixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTNGLGlCQUFpQjtRQUNqQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFTLG1CQUFtQixDQUFDLENBQUM7SUFDN0QsQ0FBQzs7Ozs7O0lBNUNELElBQVcsS0FBSyxDQUFDLEtBQUs7UUFDcEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN6RCxDQUFDOzs7O0lBQ0QsSUFBVyxLQUFLO1FBQ2QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7Ozs7Ozs7OztJQTJDTSxXQUFXLENBQUMsTUFBYSxFQUFFLElBQVcsRUFBRSxRQUF1QixFQUFFLFNBQXdCO1FBQzlGLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDckUsQ0FBQzs7Ozs7Ozs7O0lBUU0sTUFBTSxDQUFDLFNBQWdCLEVBQUUsRUFBRSxRQUFlLEVBQUUsRUFBRSxRQUF1QixFQUFFLFNBQXdCO1FBQ3BHLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDckUsQ0FBQzs7Ozs7OztJQU1NLFlBQVksQ0FBQyxFQUFVO1FBQzVCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDM0MsQ0FBQzs7Ozs7Ozs7OztJQVVNLFVBQVUsQ0FBQyxLQUFlLEVBQUUsU0FBaUIsRUFBRSxRQUFnQixFQUFFLE1BQWUsRUFBRSxJQUFhO1FBQ3BHLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQy9FLENBQUM7Ozs7OztJQUtNLGFBQWEsQ0FBQyxFQUFVO1FBQzdCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdEMsQ0FBQzs7Ozs7O0lBS00sZ0JBQWdCLENBQUMsRUFBVTtRQUNoQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7Ozs7OztJQUtNLGNBQWMsQ0FBQyxFQUFVO1FBQzlCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdkMsQ0FBQzs7Ozs7O0lBTU0sWUFBWSxDQUFDLFlBQWtCO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDL0MsQ0FBQzs7Ozs7O0lBS00sWUFBWSxDQUFDLFlBQWtCO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDL0MsQ0FBQzs7Ozs7O0lBRU0sTUFBTSxDQUFDLFFBQWdCLEVBQUUsWUFBa0I7UUFDaEQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDekQsQ0FBQzs7Ozs7O0lBQ00sWUFBWSxDQUFDLElBQVksRUFBRSxRQUFnQjtRQUNoRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN2RCxDQUFDOzs7Ozs7SUFLTSxrQkFBa0IsQ0FBQyxLQUFhO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUMsQ0FBQzs7Ozs7OztJQUtNLGdCQUFnQixDQUFDLEVBQVUsRUFBRSxNQUFnQjtRQUNsRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNqRCxDQUFDOzs7Ozs7SUFLTSx1QkFBdUIsQ0FBQyxFQUFVO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNoRCxDQUFDOzs7Ozs7O0lBS00sa0JBQWtCLENBQUMsS0FBYSxFQUFFLEVBQVU7UUFDakQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDbEQsQ0FBQzs7Ozs7OztJQU1NLGlCQUFpQixDQUFDLEtBQWEsRUFBRSxHQUFXO1FBQ2pELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDeEQsQ0FBQzs7Ozs7O0lBSU0sY0FBYyxDQUFDLEVBQVU7UUFDOUIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQy9DLENBQUM7Ozs7O0lBS00sWUFBWTtRQUNqQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDekMsQ0FBQzs7Ozs7SUFLTSxtQkFBbUI7UUFDeEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzFDLENBQUM7Ozs7Ozs7O0lBUU0saUJBQWlCLENBQUMsSUFBWSxFQUFDLGFBQXlCO1FBQzdELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUMsYUFBYSxDQUFDLENBQUM7SUFDaEUsQ0FBQzs7Ozs7O0lBTU0sV0FBVyxDQUFDLGFBQXlCO1FBQzFDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDckQsQ0FBQzs7Ozs7SUFJTSxLQUFLO1FBQ1YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDckQsQ0FBQzs7Ozs7O0lBTU0sV0FBVztRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQzs7O1lBN05GLFVBQVU7Ozs7WUFqQlUsUUFBUTs7Ozs7OztJQW9CM0IsaUNBQTJCOzs7Ozs7SUFlM0Isc0NBQTBDOzs7Ozs7SUFNMUMsd0NBQTJDOztJQUUzQyxtQ0FBOEI7Ozs7Ozs7SUFLOUIsb0NBQXlDOztJQUV6QyxrQ0FBeUI7Ozs7O0lBSWIsaUNBQTBCOztBQTRMeEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQEF1dGhvcjogV2l0dFxyXG4gKiBARGF0ZTogMjAxOC0xMC0xMSAxNzozNDoyNlxyXG4gKiBATGFzdCBNb2RpZmllZCBieTogYWFsaXp6d2VsbFxyXG4gKiBATGFzdCBNb2RpZmllZCB0aW1lOiAyMDE5LTA5LTExIDE3OjIzOjE1XHJcbiAqIEB0b2RvXHJcbiAqIDHjgIHkv67mlLljb21tYW5kLXNlcnZpY2Vz5Lit55qERGF0YVNlcnZpY2XvvIzosIPnlKjmlrDnmoRBUEnvvJtcclxuICogMuOAgeenu+mZpERlcHJlY2F0ZWRCZWZSZXBvc2l0b3J577yM5ZCv55So5pawQVBJ77ybXHJcbiAqIDPjgIHkv67mlLlSZXBvc2l0b3J55oq96LGh57G777yM5re75Yqg5pawQVBJ77ybXHJcbiAqIDTjgIHlr7lwYXRo5YGa5aSE55CG77yM5L+u5pS55Li65pWw57uE44CCXHJcbiAqL1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBNZXRhZGF0YVV0aWwsIEVudGl0eSwgQXBwQ29udGV4dCB9IGZyb20gJ0BmYXJyaXMvZGV2a2l0JztcclxuXHJcbmltcG9ydCB7IE5HX1ZBUklBQkxFIH0gZnJvbSAnLi9kZWNvcmF0b3JzJztcclxuaW1wb3J0IHsgRGVwcmVjYXRlZEJlZlJlcG9zaXRvcnkgfSBmcm9tICcuL2RlcHJlY2F0ZWQvZGVwcmVjYXRlZF9iZWZfcmVwb3NpdG9yeSc7XHJcbmltcG9ydCB7IEJlZkVudGl0eU1hbmFnZXIgfSBmcm9tICcuL2JlZl9lbnRpdHlfbWFuYWdlcic7XHJcbmltcG9ydCB7IEJlZlZhcmlhYmxlTWFuYWdlciB9IGZyb20gJy4vYmVmX3ZhcmlhYmxlX21hbmFnZXInO1xyXG5pbXBvcnQgeyBCZWZEYXRhU2VydmljZSB9IGZyb20gJy4vYmVmX2RhdGFfc2VydmljZSc7XHJcbmltcG9ydCB7IEJlZlByb3h5IH0gZnJvbSAnLi9iZWZfcHJveHknO1xyXG5pbXBvcnQgeyBCZWZQcm94eUV4dGVuZCB9IGZyb20gJy4vYmVmX3Byb3h5X2V4dGVuZCc7XHJcbmltcG9ydCB7IEJFX1NFUlZFUl9VUklfVE9LRU4gfSBmcm9tICcuL3Rva2Vucyc7XHJcbi8qKlxyXG4gKiBCRUblrp7kvZPku5PlgqhcclxuICogdGhpcy5hcGlVcmnvvJphcGkvc2NtL3NkL3YxLjAvZW1wc2VydmljZe+8jOWJjeWQjuWdh+S4jeW4pi9cclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuYWJzdHJhY3QgY2xhc3MgQmVmUmVwb3NpdG9yeTxUIGV4dGVuZHMgRW50aXR5PiBleHRlbmRzIERlcHJlY2F0ZWRCZWZSZXBvc2l0b3J5PFQ+IHtcclxuXHJcbiAgcHJpdmF0ZSBiZWZQcm94eTogQmVmUHJveHk7XHJcbiAgLyoqXHJcbiAgICogQmVm5Luj55CGXHJcbiAgICovXHJcbiAgcHVibGljIHNldCBwcm94eSh2YWx1ZSkge1xyXG4gICAgdGhpcy5iZWZQcm94eSA9IHZhbHVlO1xyXG4gICAgdGhpcy5iZWZQcm94eS5zZXRQcm94eUV4dGVuZChuZXcgQmVmUHJveHlFeHRlbmQodGhpcykpO1xyXG4gIH1cclxuICBwdWJsaWMgZ2V0IHByb3h5KCk6IEJlZlByb3h5IHtcclxuICAgIHJldHVybiB0aGlzLmJlZlByb3h5O1xyXG4gIH1cclxuICAvKipcclxuICAgKiDlrp7kvZPnrqHnkIblmahcclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBwdWJsaWMgZW50aXR5TWFuYWdlcjogQmVmRW50aXR5TWFuYWdlcjxUPjtcclxuXHJcbiAgLyoqXHJcbiAgICog5Y+Y6YeP566h55CG5ZmoXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgcHVibGljIHZhcmlhYmxlTWFuYWdlcjogQmVmVmFyaWFibGVNYW5hZ2VyO1xyXG5cclxuICBwdWJsaWMgYXBwQ29udGV4dDogQXBwQ29udGV4dDtcclxuICAvKipcclxuICAgKiDlj5bmlbDmnI3liqFcclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZGF0YVNlcnZpY2U6IEJlZkRhdGFTZXJ2aWNlPFQ+O1xyXG5cclxuICBwdWJsaWMgc2VydmVyVXJpOiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICog5p6E6YCg5Ye95pWwXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICAgIHN1cGVyKCk7XHJcblxyXG4gICAgLy8g5Yid5aeL5YyW5a6e5L2T566h55CG5ZmoXHJcbiAgICB0aGlzLmVudGl0eU1hbmFnZXIgPSBuZXcgQmVmRW50aXR5TWFuYWdlcih0aGlzLmVudGl0eUNvbGxlY3Rpb24pO1xyXG5cclxuICAgIC8vIOWIneWni+WMluWPmOmHj+euoeeQhuWZqFxyXG4gICAgdGhpcy5hcHBDb250ZXh0ID0gdGhpcy5pbmplY3Rvci5nZXQ8QXBwQ29udGV4dD4oQXBwQ29udGV4dCk7XHJcbiAgICBjb25zdCBuZ1ZhcmlhYmxlcyA9IE1ldGFkYXRhVXRpbC5nZXRQcm9wc01ldGFkYXRhc0J5TmFtZSh0aGlzLmNvbnN0cnVjdG9yLCBOR19WQVJJQUJMRSk7XHJcbiAgICB0aGlzLnZhcmlhYmxlTWFuYWdlciA9IG5ldyBCZWZWYXJpYWJsZU1hbmFnZXIodGhpcy5hcHBDb250ZXh0LCBuZ1ZhcmlhYmxlcywgdGhpcy5pbmplY3Rvcik7XHJcblxyXG4gICAgLy8g5Yid5aeL5YyWRGF0YVNlcnZpY2VcclxuICAgIHRoaXMuZGF0YVNlcnZpY2UgPSBuZXcgQmVmRGF0YVNlcnZpY2UodGhpcy5pbmplY3RvciwgdGhpcyk7XHJcbiAgICB0aGlzLnNlcnZlclVyaSA9IGluamVjdG9yLmdldDxzdHJpbmc+KEJFX1NFUlZFUl9VUklfVE9LRU4pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog6I635Y+W5a6e5L2T5pWw57uEXHJcbiAgICovXHJcbiAgcHVibGljIGdldEVudGl0aWVzKGZpbHRlcjogYW55W10sIHNvcnQ6IGFueVtdLCBwYWdlU2l6ZTogbnVtYmVyIHwgbnVsbCwgcGFnZUluZGV4OiBudW1iZXIgfCBudWxsKTogT2JzZXJ2YWJsZTxUW10+IHtcclxuICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLmdldExpc3QoZmlsdGVyLCBzb3J0LCBwYWdlU2l6ZSwgcGFnZUluZGV4KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICog6I635Y+W5a6e5L2T5YiX6KGoXHJcbiAgICogQHBhcmFtIGZpbHRlciDov4fmu6TmnaHku7ZcclxuICAgKiBAcGFyYW0gc29ydHMg5o6S5bqP5p2h5Lu2XHJcbiAgICogQHBhcmFtIHBhZ2VTaXplIOWIhumhteWkp+Wwj1xyXG4gICAqIEBwYXJhbSBwYWdlSW5kZXgg5b2T5YmN5YiG6aG1XHJcbiAgICovXHJcbiAgcHVibGljIGZpbHRlcihmaWx0ZXI6IGFueVtdID0gW10sIHNvcnRzOiBhbnlbXSA9IFtdLCBwYWdlU2l6ZTogbnVtYmVyIHwgbnVsbCwgcGFnZUluZGV4OiBudW1iZXIgfCBudWxsKTogT2JzZXJ2YWJsZTxUW10+IHtcclxuICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLmZpbHRlcihmaWx0ZXIsIHNvcnRzLCBwYWdlU2l6ZSwgcGFnZUluZGV4KTtcclxuICB9XHJcbiAgLy8gI2VuZHJlZ2lvblxyXG4gIC8qKlxyXG4gICAqIOmAmui/h2lk6I635Y+W5a6e5L2T5pWw5o2u5Y+K5bim5YiG6aG155qE5a2Q6KGo5pWw5o2uXHJcbiAgICogQHBhcmFtIGlkIGlkXHJcbiAgICovXHJcbiAgcHVibGljIGdldFBhZ2VkQnlJZChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxUPiB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5nZXRQYWdlZEJ5SWQoaWQpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiDliIbpobXmn6Xor6Lku47ooagv5LuO5LuO6KGo5pWw5o2uXHJcbiAgICogQHBhcmFtIHBhdGgg57uR5a6a6Lev5b6EXHJcbiAgICogQHBhcmFtIGlkcyDnu5Hlrprot6/lvoTlr7nlupTnmoTkuLvplK5cclxuICAgKiBAcGFyYW0gcGFnZUluZGV4IOmhteeggVxyXG4gICAqIEBwYXJhbSBwYWdlU2l6ZSDliIbpobXlpKflsI9cclxuICAgKiBAcGFyYW0gZmlsdGVyIOi/h+a7pOadoeS7tlxyXG4gICAqIEBwYXJhbSBzb3J0IOaOkuW6j1xyXG4gICAqL1xyXG4gIHB1YmxpYyBxdWVyeUNoaWxkKHBhdGhzOiBzdHJpbmdbXSwgcGFnZUluZGV4OiBudW1iZXIsIHBhZ2VTaXplOiBudW1iZXIsIGZpbHRlcj86IHN0cmluZywgc29ydD86IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UucXVlcnlDaGlsZChwYXRocywgcGFnZUluZGV4LCBwYWdlU2l6ZSwgZmlsdGVyLCBzb3J0KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICog6I635Y+W5Li76ZSu5Li6aWTnmoTlrp7kvZNcclxuICAgKiBAcGFyYW0gaWQg5a6e5L2TaWRcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0RW50aXR5QnlJZChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxUPiB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5nZXRCeUlkKGlkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOabtOaWsOWunuS9k+aVsOaNrlxyXG4gICAqL1xyXG4gIHB1YmxpYyB1cGRhdGVFbnRpdHlCeUlkKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFQ+IHtcclxuICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLnVwZGF0ZUJ5SWQoaWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5pu05paw5a6e5L2T5pWw5o2u5bm25Yqg6ZSBXHJcbiAgICovXHJcbiAgcHVibGljIGVkaXRFbnRpdHlCeUlkKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFQ+IHtcclxuICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLmVkaXRCeUlkKGlkKTtcclxuICB9XHJcblxyXG5cclxuICAvKipcclxuICAgKiDliJvlu7rlrp7kvZNcclxuICAgKi9cclxuICBwdWJsaWMgY3JlYXRlRW50aXR5KGRlZmF1bHRWYWx1ZT86IGFueSk6IE9ic2VydmFibGU8VD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UuY3JlYXRlKGRlZmF1bHRWYWx1ZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDov73liqDlrp7kvZNcclxuICAgKi9cclxuICBwdWJsaWMgYXBwZW5kRW50aXR5KGRlZmF1bHRWYWx1ZT86IGFueSk6IE9ic2VydmFibGU8VD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UuYXBwZW5kKGRlZmF1bHRWYWx1ZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaW5zZXJ0KHBvc2l0aW9uOiAxIHwgLTEsIGRlZmF1bHRWYWx1ZT86IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5pbnNlcnQocG9zaXRpb24sIGRlZmF1bHRWYWx1ZSk7XHJcbiAgfVxyXG4gIHB1YmxpYyBpbnNlcnRCeVBhdGgocGF0aDogc3RyaW5nLCBwb3NpdGlvbjogMSB8IC0xKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLmluc2VydEJ5UGF0aChwYXRoLCBwb3NpdGlvbik7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIOWIm+W7uuWtkOWunuS9k++8jOW5tui/veWKoFxyXG4gICAqIEBwYXJhbSBmcGF0aCDniLbot6/lvoTvvIzmoLzlvI/lvaLlpoLvvJovMS9lZHVz77yI5LuO6KGo77yJ5oiWLzEvZWR1cy8yL2dyYWRlc++8iOS7juS7juihqO+8iVxyXG4gICAqL1xyXG4gIHB1YmxpYyBhcHBlbmRFbnRpdHlCeVBhdGgoZnBhdGg6IHN0cmluZyk6IE9ic2VydmFibGU8RW50aXR5PiB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5hcHBlbmRCeVBhdGgoZnBhdGgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5qC55o2uaWTliKDpmaTlrp7kvZNcclxuICAgKi9cclxuICBwdWJsaWMgcmVtb3ZlRW50aXR5QnlJZChpZDogc3RyaW5nLCBpZlNhdmU/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5yZW1vdmVCeUlkKGlkLCBpZlNhdmUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5qC55o2uaWTliKDpmaTlrp7kvZPlubbmiafooYzkv53lrZhcclxuICAgKi9cclxuICBwdWJsaWMgcmVtb3ZlRW50aXR5QW5kU2F2ZUJ5SWQoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UucmVtb3ZlQW5kU2F2ZUJ5SWQoaWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5Yig6Zmk5a2Q57qnXHJcbiAgICovXHJcbiAgcHVibGljIHJlbW92ZUVudGl0eUJ5UGF0aChmcGF0aDogc3RyaW5nLCBpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5yZW1vdmVCeVBhdGgoZnBhdGgsIGlkKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICog5om56YeP5Yig6Zmk5a2Q57qnXHJcbiAgICogQHBhcmFtIGZQYXRoIOi3r+W+hFxyXG4gICAqIEBwYXJhbSBpZHMgICDlrZDpm4ZpZOmbhuWQiFxyXG4gICAqL1xyXG4gIHB1YmxpYyBiYXRjaFJlbW92ZUJ5UGF0aChmUGF0aDogc3RyaW5nLCBpZHM6IHN0cmluZyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UuYmF0Y2hSZW1vdmVCeVBhdGgoZlBhdGgsIGlkcyk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIOS/neWtmOS4u+mUruS4umlk55qE5a6e5L2TXHJcbiAgICovXHJcbiAgcHVibGljIHNhdmVFbnRpdHlCeUlkKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLmFwcGx5Q2hhbmdlc0J5SWQoaWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5om56YeP5L+d5a2YXHJcbiAgICovXHJcbiAgcHVibGljIHNhdmVFbnRpdGllcygpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLmFwcGx5Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5Y+W5raI5a6e5L2T5Y+Y5pu0XHJcbiAgICovXHJcbiAgcHVibGljIGNhbmNlbEVudGl0eUNoYW5nZXMoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5jYW5jZWxDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDmibnph4/mlrDlop7ku47ooagv5LuO5LuO6KGo5pWw5o2uXHJcbiAgICogQHBhcmFtIHBhdGgg5a6e5L2T57uR5a6a6Lev5b6E77yMbGlrZSAxL2NoaWxkcyBvciAxL2NoaWxkcy8xMS9jaGlsZGNoaWxkc1xyXG4gICAqIEBwYXJhbSBkZWZhdWx0VmFsdWVzIOm7mOiupOWunuS9k+aVsOaNruaVsOe7hFxyXG4gICAqIEBkZXNjcmlwdGlvbiDlkI7nq6/mjqXlj6Plj6rmlK/mjIHmibnph4/mlrDlop7lrZDooajvvIzmibnph4/mlrDlop7kuLvooajnm67liY3kuI3mlK/mjIFcclxuICAgKi9cclxuICBwdWJsaWMgYmF0Y2hBcHBlbmRCeVBhdGgocGF0aDogc3RyaW5nLGRlZmF1bHRWYWx1ZXM6IEFycmF5PGFueT4pOiBPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5iYXRjaEFwcGVuZEJ5UGF0aChwYXRoLGRlZmF1bHRWYWx1ZXMpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiDmibnph4/mlrDlop7kuLvooajmlbDmja5cclxuICAgKiBAcGFyYW0gZGVmYXVsdFZhbHVlcyDpu5jorqTlgLxcclxuICAgKiBAcmV0dXJucyBcclxuICAgKi9cclxuICBwdWJsaWMgYmF0Y2hBcHBlbmQoZGVmYXVsdFZhbHVlczogQXJyYXk8YW55Pik6IE9ic2VydmFibGU8YW55PntcclxuICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLmJhdGNoQXBwZW5kKGRlZmF1bHRWYWx1ZXMpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiDmuIXnqbpSZXBvc2l0b3nlhoXnmoTmlbDmja7lkozlj5jph49cclxuICAgKi9cclxuICBwdWJsaWMgcmVzZXQoKSB7XHJcbiAgICB0aGlzLmVudGl0eU1hbmFnZXIucmVzZXQoKTtcclxuICAgIHRoaXMudmFyaWFibGVNYW5hZ2VyLnJlc2V0KCk7XHJcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLnNlc3Npb25TZXJ2aWNlLmNsZWFyQmVTZXNzaW9uSWQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOiOt+WPlkluamVjdG9y77yI5aSW6YOo6K+35Yu/5L2/55So77yJXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgcHVibGljIGdldEluamVjdG9yKCk6IEluamVjdG9yIHtcclxuICAgIHJldHVybiB0aGlzLmluamVjdG9yO1xyXG4gIH1cclxuICBcclxufVxyXG5cclxuZXhwb3J0IHsgQmVmUmVwb3NpdG9yeSB9O1xyXG4iXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVmX3JlcG9zaXRvcnkuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZmFycmlzL2JlZi8iLCJzb3VyY2VzIjpbImxpYi9iZWZfcmVwb3NpdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBV0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHckQsT0FBTyxFQUFFLFlBQVksRUFBVSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzNDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sVUFBVSxDQUFDOzs7Ozs7O0FBSy9DLE1BQ2UsYUFBZ0MsU0FBUSx1QkFBMEI7Ozs7O0lBb0MvRSxZQUFvQixRQUFrQjtRQUNwQyxLQUFLLEVBQUUsQ0FBQztRQURVLGFBQVEsR0FBUixRQUFRLENBQVU7UUFHcEMsV0FBVztRQUNYLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUVqRSxXQUFXO1FBQ1gsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBYSxVQUFVLENBQUMsQ0FBQzs7Y0FDdEQsV0FBVyxHQUFHLFlBQVksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQztRQUN2RixJQUFJ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QUFXLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDckQsQ0FBQzs7Ozs7SUFJTSxLQUFLO1FBQ1YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDckQsQ0FBQzs7Ozs7O0lBTU0sV0FBVztRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQzs7Ozs7SUFJTSx1QkFBdUI7UUFDNUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QyxDQUFDOzs7WUFuT0YsVUFBVTs7OztZQWpCVSxRQUFROzs7Ozs7O0lBb0IzQixpQ0FBMkI7Ozs7OztJQWUzQixzQ0FBMEM7Ozs7OztJQU0xQyx3Q0FBMkM7O0lBRTNDLG1DQUE4Qjs7Ozs7OztJQUs5QixvQ0FBeUM7O0lBRXpDLGtDQUF5Qjs7Ozs7SUFJYixpQ0FBMEI7O0FBa014QyxPQUFPLEVBQUUsYUFBYSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBAQXV0aG9yOiBXaXR0XHJcbiAqIEBEYXRlOiAyMDE4LTEwLTExIDE3OjM0OjI2XHJcbiAqIEBMYXN0IE1vZGlmaWVkIGJ5OiBhYWxpenp3ZWxsXHJcbiAqIEBMYXN0IE1vZGlmaWVkIHRpbWU6IDIwMTktMDktMTEgMTc6MjM6MTVcclxuICogQHRvZG9cclxuICogMeOAgeS/ruaUuWNvbW1hbmQtc2VydmljZXPkuK3nmoREYXRhU2VydmljZe+8jOiwg+eUqOaWsOeahEFQSe+8m1xyXG4gKiAy44CB56e76ZmkRGVwcmVjYXRlZEJlZlJlcG9zaXRvcnnvvIzlkK/nlKjmlrBBUEnvvJtcclxuICogM+OAgeS/ruaUuVJlcG9zaXRvcnnmir3osaHnsbvvvIzmt7vliqDmlrBBUEnvvJtcclxuICogNOOAgeWvuXBhdGjlgZrlpITnkIbvvIzkv67mlLnkuLrmlbDnu4TjgIJcclxuICovXHJcbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IE1ldGFkYXRhVXRpbCwgRW50aXR5LCBBcHBDb250ZXh0IH0gZnJvbSAnQGZhcnJpcy9kZXZraXQnO1xyXG5cclxuaW1wb3J0IHsgTkdfVkFSSUFCTEUgfSBmcm9tICcuL2RlY29yYXRvcnMnO1xyXG5pbXBvcnQgeyBEZXByZWNhdGVkQmVmUmVwb3NpdG9yeSB9IGZyb20gJy4vZGVwcmVjYXRlZC9kZXByZWNhdGVkX2JlZl9yZXBvc2l0b3J5JztcclxuaW1wb3J0IHsgQmVmRW50aXR5TWFuYWdlciB9IGZyb20gJy4vYmVmX2VudGl0eV9tYW5hZ2VyJztcclxuaW1wb3J0IHsgQmVmVmFyaWFibGVNYW5hZ2VyIH0gZnJvbSAnLi9iZWZfdmFyaWFibGVfbWFuYWdlcic7XHJcbmltcG9ydCB7IEJlZkRhdGFTZXJ2aWNlIH0gZnJvbSAnLi9iZWZfZGF0YV9zZXJ2aWNlJztcclxuaW1wb3J0IHsgQmVmUHJveHkgfSBmcm9tICcuL2JlZl9wcm94eSc7XHJcbmltcG9ydCB7IEJlZlByb3h5RXh0ZW5kIH0gZnJvbSAnLi9iZWZfcHJveHlfZXh0ZW5kJztcclxuaW1wb3J0IHsgQkVfU0VSVkVSX1VSSV9UT0tFTiB9IGZyb20gJy4vdG9rZW5zJztcclxuLyoqXHJcbiAqIEJFRuWunuS9k+S7k+WCqFxyXG4gKiB0aGlzLmFwaVVyae+8mmFwaS9zY20vc2QvdjEuMC9lbXBzZXJ2aWNl77yM5YmN5ZCO5Z2H5LiN5bimL1xyXG4gKi9cclxuQEluamVjdGFibGUoKVxyXG5hYnN0cmFjdCBjbGFzcyBCZWZSZXBvc2l0b3J5PFQgZXh0ZW5kcyBFbnRpdHk+IGV4dGVuZHMgRGVwcmVjYXRlZEJlZlJlcG9zaXRvcnk8VD4ge1xyXG5cclxuICBwcml2YXRlIGJlZlByb3h5OiBCZWZQcm94eTtcclxuICAvKipcclxuICAgKiBCZWbku6PnkIZcclxuICAgKi9cclxuICBwdWJsaWMgc2V0IHByb3h5KHZhbHVlKSB7XHJcbiAgICB0aGlzLmJlZlByb3h5ID0gdmFsdWU7XHJcbiAgICB0aGlzLmJlZlByb3h5LnNldFByb3h5RXh0ZW5kKG5ldyBCZWZQcm94eUV4dGVuZCh0aGlzKSk7XHJcbiAgfVxyXG4gIHB1YmxpYyBnZXQgcHJveHkoKTogQmVmUHJveHkge1xyXG4gICAgcmV0dXJuIHRoaXMuYmVmUHJveHk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIOWunuS9k+euoeeQhuWZqFxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIHB1YmxpYyBlbnRpdHlNYW5hZ2VyOiBCZWZFbnRpdHlNYW5hZ2VyPFQ+O1xyXG5cclxuICAvKipcclxuICAgKiDlj5jph4/nrqHnkIblmahcclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBwdWJsaWMgdmFyaWFibGVNYW5hZ2VyOiBCZWZWYXJpYWJsZU1hbmFnZXI7XHJcblxyXG4gIHB1YmxpYyBhcHBDb250ZXh0OiBBcHBDb250ZXh0O1xyXG4gIC8qKlxyXG4gICAqIOWPluaVsOacjeWKoVxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBkYXRhU2VydmljZTogQmVmRGF0YVNlcnZpY2U8VD47XHJcblxyXG4gIHB1YmxpYyBzZXJ2ZXJVcmk6IHN0cmluZztcclxuICAvKipcclxuICAgKiDmnoTpgKDlh73mlbBcclxuICAgKi9cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGluamVjdG9yOiBJbmplY3Rvcikge1xyXG4gICAgc3VwZXIoKTtcclxuXHJcbiAgICAvLyDliJ3lp4vljJblrp7kvZPnrqHnkIblmahcclxuICAgIHRoaXMuZW50aXR5TWFuYWdlciA9IG5ldyBCZWZFbnRpdHlNYW5hZ2VyKHRoaXMuZW50aXR5Q29sbGVjdGlvbik7XHJcblxyXG4gICAgLy8g5Yid5aeL5YyW5Y+Y6YeP566h55CG5ZmoXHJcbiAgICB0aGlzLmFwcENvbnRleHQgPSB0aGlzLmluamVjdG9yLmdldDxBcHBDb250ZXh0PihBcHBDb250ZXh0KTtcclxuICAgIGNvbnN0IG5nVmFyaWFibGVzID0gTWV0YWRhdGFVdGlsLmdldFByb3BzTWV0YWRhdGFzQnlOYW1lKHRoaXMuY29uc3RydWN0b3IsIE5HX1ZBUklBQkxFKTtcclxuICAgIHRoaXMudmFyaWFibGVNYW5hZ2VyID0gbmV3IEJlZlZhcmlhYmxlTWFuYWdlcih0aGlzLmFwcENvbnRleHQsIG5nVmFyaWFibGVzLCB0aGlzLmluamVjdG9yKTtcclxuXHJcbiAgICAvLyDliJ3lp4vljJZEYXRhU2VydmljZVxyXG4gICAgdGhpcy5kYXRhU2VydmljZSA9IG5ldyBCZWZEYXRhU2VydmljZSh0aGlzLmluamVjdG9yLCB0aGlzKTtcclxuICAgIHRoaXMuc2VydmVyVXJpID0gaW5qZWN0b3IuZ2V0PHN0cmluZz4oQkVfU0VSVkVSX1VSSV9UT0tFTik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDojrflj5blrp7kvZPmlbDnu4RcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0RW50aXRpZXMoZmlsdGVyOiBhbnlbXSwgc29ydDogYW55W10sIHBhZ2VTaXplOiBudW1iZXIgfCBudWxsLCBwYWdlSW5kZXg6IG51bWJlciB8IG51bGwpOiBPYnNlcnZhYmxlPFRbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UuZ2V0TGlzdChmaWx0ZXIsIHNvcnQsIHBhZ2VTaXplLCBwYWdlSW5kZXgpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiDojrflj5blrp7kvZPliJfooahcclxuICAgKiBAcGFyYW0gZmlsdGVyIOi/h+a7pOadoeS7tlxyXG4gICAqIEBwYXJhbSBzb3J0cyDmjpLluo/mnaHku7ZcclxuICAgKiBAcGFyYW0gcGFnZVNpemUg5YiG6aG15aSn5bCPXHJcbiAgICogQHBhcmFtIHBhZ2VJbmRleCDlvZPliY3liIbpobVcclxuICAgKi9cclxuICBwdWJsaWMgZmlsdGVyKGZpbHRlcjogYW55W10gPSBbXSwgc29ydHM6IGFueVtdID0gW10sIHBhZ2VTaXplOiBudW1iZXIgfCBudWxsLCBwYWdlSW5kZXg6IG51bWJlciB8IG51bGwpOiBPYnNlcnZhYmxlPFRbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UuZmlsdGVyKGZpbHRlciwgc29ydHMsIHBhZ2VTaXplLCBwYWdlSW5kZXgpO1xyXG4gIH1cclxuICAvLyAjZW5kcmVnaW9uXHJcbiAgLyoqXHJcbiAgICog6YCa6L+HaWTojrflj5blrp7kvZPmlbDmja7lj4rluKbliIbpobXnmoTlrZDooajmlbDmja5cclxuICAgKiBAcGFyYW0gaWQgaWRcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0UGFnZWRCeUlkKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFQ+IHtcclxuICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLmdldFBhZ2VkQnlJZChpZCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIOWIhumhteafpeivouS7juihqC/ku47ku47ooajmlbDmja5cclxuICAgKiBAcGFyYW0gcGF0aCDnu5Hlrprot6/lvoRcclxuICAgKiBAcGFyYW0gaWRzIOe7keWumui3r+W+hOWvueW6lOeahOS4u+mUrlxyXG4gICAqIEBwYXJhbSBwYWdlSW5kZXgg6aG156CBXHJcbiAgICogQHBhcmFtIHBhZ2VTaXplIOWIhumhteWkp+Wwj1xyXG4gICAqIEBwYXJhbSBmaWx0ZXIg6L+H5ruk5p2h5Lu2XHJcbiAgICogQHBhcmFtIHNvcnQg5o6S5bqPXHJcbiAgICovXHJcbiAgcHVibGljIHF1ZXJ5Q2hpbGQocGF0aHM6IHN0cmluZ1tdLCBwYWdlSW5kZXg6IG51bWJlciwgcGFnZVNpemU6IG51bWJlciwgZmlsdGVyPzogc3RyaW5nLCBzb3J0Pzogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5xdWVyeUNoaWxkKHBhdGhzLCBwYWdlSW5kZXgsIHBhZ2VTaXplLCBmaWx0ZXIsIHNvcnQpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiDojrflj5bkuLvplK7kuLppZOeahOWunuS9k1xyXG4gICAqIEBwYXJhbSBpZCDlrp7kvZNpZFxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRFbnRpdHlCeUlkKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFQ+IHtcclxuICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLmdldEJ5SWQoaWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5pu05paw5a6e5L2T5pWw5o2uXHJcbiAgICovXHJcbiAgcHVibGljIHVwZGF0ZUVudGl0eUJ5SWQoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UudXBkYXRlQnlJZChpZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDmm7TmlrDlrp7kvZPmlbDmja7lubbliqDplIFcclxuICAgKi9cclxuICBwdWJsaWMgZWRpdEVudGl0eUJ5SWQoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UuZWRpdEJ5SWQoaWQpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIOWIm+W7uuWunuS9k1xyXG4gICAqL1xyXG4gIHB1YmxpYyBjcmVhdGVFbnRpdHkoZGVmYXVsdFZhbHVlPzogYW55KTogT2JzZXJ2YWJsZTxUPiB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5jcmVhdGUoZGVmYXVsdFZhbHVlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOi/veWKoOWunuS9k1xyXG4gICAqL1xyXG4gIHB1YmxpYyBhcHBlbmRFbnRpdHkoZGVmYXVsdFZhbHVlPzogYW55KTogT2JzZXJ2YWJsZTxUPiB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5hcHBlbmQoZGVmYXVsdFZhbHVlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpbnNlcnQocG9zaXRpb246IDEgfCAtMSwgZGVmYXVsdFZhbHVlPzogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLmluc2VydChwb3NpdGlvbiwgZGVmYXVsdFZhbHVlKTtcclxuICB9XHJcbiAgcHVibGljIGluc2VydEJ5UGF0aChwYXRoOiBzdHJpbmcsIHBvc2l0aW9uOiAxIHwgLTEpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UuaW5zZXJ0QnlQYXRoKHBhdGgsIHBvc2l0aW9uKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICog5Yib5bu65a2Q5a6e5L2T77yM5bm26L+95YqgXHJcbiAgICogQHBhcmFtIGZwYXRoIOeItui3r+W+hO+8jOagvOW8j+W9ouWmgu+8mi8xL2VkdXPvvIjku47ooajvvInmiJYvMS9lZHVzLzIvZ3JhZGVz77yI5LuO5LuO6KGo77yJXHJcbiAgICovXHJcbiAgcHVibGljIGFwcGVuZEVudGl0eUJ5UGF0aChmcGF0aDogc3RyaW5nKTogT2JzZXJ2YWJsZTxFbnRpdHk+IHtcclxuICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLmFwcGVuZEJ5UGF0aChmcGF0aCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDmoLnmja5pZOWIoOmZpOWunuS9k1xyXG4gICAqL1xyXG4gIHB1YmxpYyByZW1vdmVFbnRpdHlCeUlkKGlkOiBzdHJpbmcsIGlmU2F2ZT86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLnJlbW92ZUJ5SWQoaWQsIGlmU2F2ZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDmoLnmja5pZOWIoOmZpOWunuS9k+W5tuaJp+ihjOS/neWtmFxyXG4gICAqL1xyXG4gIHB1YmxpYyByZW1vdmVFbnRpdHlBbmRTYXZlQnlJZChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5yZW1vdmVBbmRTYXZlQnlJZChpZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDliKDpmaTlrZDnuqdcclxuICAgKi9cclxuICBwdWJsaWMgcmVtb3ZlRW50aXR5QnlQYXRoKGZwYXRoOiBzdHJpbmcsIGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLnJlbW92ZUJ5UGF0aChmcGF0aCwgaWQpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiDmibnph4/liKDpmaTlrZDnuqdcclxuICAgKiBAcGFyYW0gZlBhdGgg6Lev5b6EXHJcbiAgICogQHBhcmFtIGlkcyAgIOWtkOmbhmlk6ZuG5ZCIXHJcbiAgICovXHJcbiAgcHVibGljIGJhdGNoUmVtb3ZlQnlQYXRoKGZQYXRoOiBzdHJpbmcsIGlkczogc3RyaW5nKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5iYXRjaFJlbW92ZUJ5UGF0aChmUGF0aCwgaWRzKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICog5L+d5a2Y5Li76ZSu5Li6aWTnmoTlrp7kvZNcclxuICAgKi9cclxuICBwdWJsaWMgc2F2ZUVudGl0eUJ5SWQoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UuYXBwbHlDaGFuZ2VzQnlJZChpZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDmibnph4/kv53lrZhcclxuICAgKi9cclxuICBwdWJsaWMgc2F2ZUVudGl0aWVzKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UuYXBwbHlDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDlj5bmtojlrp7kvZPlj5jmm7RcclxuICAgKi9cclxuICBwdWJsaWMgY2FuY2VsRW50aXR5Q2hhbmdlcygpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLmNhbmNlbENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOaJuemHj+aWsOWinuS7juihqC/ku47ku47ooajmlbDmja5cclxuICAgKiBAcGFyYW0gcGF0aCDlrp7kvZPnu5Hlrprot6/lvoTvvIxsaWtlIDEvY2hpbGRzIG9yIDEvY2hpbGRzLzExL2NoaWxkY2hpbGRzXHJcbiAgICogQHBhcmFtIGRlZmF1bHRWYWx1ZXMg6buY6K6k5a6e5L2T5pWw5o2u5pWw57uEXHJcbiAgICogQGRlc2NyaXB0aW9uIOWQjuerr+aOpeWPo+WPquaUr+aMgeaJuemHj+aWsOWinuWtkOihqO+8jOaJuemHj+aWsOWinuS4u+ihqOebruWJjeS4jeaUr+aMgVxyXG4gICAqL1xyXG4gIHB1YmxpYyBiYXRjaEFwcGVuZEJ5UGF0aChwYXRoOiBzdHJpbmcsZGVmYXVsdFZhbHVlczogQXJyYXk8YW55Pik6IE9ic2VydmFibGU8YW55PntcclxuICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLmJhdGNoQXBwZW5kQnlQYXRoKHBhdGgsZGVmYXVsdFZhbHVlcyk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIOaJuemHj+aWsOWinuS4u+ihqOaVsOaNrlxyXG4gICAqIEBwYXJhbSBkZWZhdWx0VmFsdWVzIOm7mOiupOWAvFxyXG4gICAqIEByZXR1cm5zIFxyXG4gICAqL1xyXG4gIHB1YmxpYyBiYXRjaEFwcGVuZChkZWZhdWx0VmFsdWVzOiBBcnJheTxhbnk+KTogT2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UuYmF0Y2hBcHBlbmQoZGVmYXVsdFZhbHVlcyk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIOa4heepulJlcG9zaXRveeWGheeahOaVsOaNruWSjOWPmOmHj1xyXG4gICAqL1xyXG4gIHB1YmxpYyByZXNldCgpIHtcclxuICAgIHRoaXMuZW50aXR5TWFuYWdlci5yZXNldCgpO1xyXG4gICAgdGhpcy52YXJpYWJsZU1hbmFnZXIucmVzZXQoKTtcclxuICAgIHRoaXMucmVzdFNlcnZpY2Uuc2Vzc2lvblNlcnZpY2UuY2xlYXJCZVNlc3Npb25JZCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog6I635Y+WSW5qZWN0b3LvvIjlpJbpg6jor7fli7/kvb/nlKjvvIlcclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0SW5qZWN0b3IoKTogSW5qZWN0b3Ige1xyXG4gICAgcmV0dXJuIHRoaXMuaW5qZWN0b3I7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIOa4heepunZv5Y+Y6YeP5Y+Y5pu0XHJcbiAgICovXHJcbiAgcHVibGljIGNsZWFyQWxsVmFyaWFibGVDaGFuZ2VzKCl7XHJcbiAgICB0aGlzLnZhcmlhYmxlTWFuYWdlci5jbGVhckNoYW5nZXMoKTtcclxuICB9XHJcbiAgXHJcbn1cclxuXHJcbmV4cG9ydCB7IEJlZlJlcG9zaXRvcnkgfTtcclxuIl19 |
@@ -402,2 +402,3 @@ /** | ||
this.repository.clearAllEntityChanges(); | ||
this.repository.clearAllVariableChanges(); | ||
return result; | ||
@@ -585,2 +586,2 @@ } | ||
export { BefRestService }; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVmX3Jlc3Rfc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BmYXJyaXMvYmVmLyIsInNvdXJjZXMiOlsibGliL2JlZl9yZXN0X3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFPQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQTJCLE1BQU0sc0JBQXNCLENBQUM7QUFDM0UsT0FBTyxFQUFjLFVBQVUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRSxPQUFPLEVBQVUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVwRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7TUFFNUQsR0FBRyxHQUFHLEtBQUs7O01BQ1gsTUFBTSxHQUFHLFFBQVE7O01BQ2pCLEdBQUcsR0FBRyxLQUFLOztNQUNYLElBQUksR0FBRyxNQUFNOztNQUNiLEtBQUssR0FBRyxPQUFPOzs7OztBQU1yQixNQUNNLGNBQWM7Ozs7Ozs7OztJQStCbEIsWUFDRSxVQUFzQixFQUFFLE9BQWUsRUFDdkMsaUJBQTBDLEVBQzFDLFVBQWlDLEVBQ2pDLFFBQW1CO1FBRW5CLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDOztjQUNqQixRQUFRLEdBQUcsVUFBVSxDQUFDLFdBQVcsRUFBRTtRQUN6QyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksaUJBQWlCLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUM5RixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUMzQixDQUFDOzs7Ozs7SUFRRCxJQUFXLEtBQUs7UUFDZCxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRTtZQUMzQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO1NBQzlCO2FBQU07WUFDTCxPQUFPLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUM5QjtJQUNILENBQUM7Ozs7OztJQUtPLGNBQWM7O2NBQ2QsU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUzs7Y0FDckMsVUFBVSxHQUFHLElBQUksVUFBVSxDQUFDLFNBQVMsQ0FBQzs7Y0FDdEMsWUFBWSxHQUFHLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDO1FBQzlELFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDOztjQUNoQyxNQUFNLEdBQUcsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUNsRCxZQUFZLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BDLE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7Ozs7Ozs7OztJQVdNLEtBQUssQ0FBQyxZQUFrQjtRQUM3QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7Ozs7Ozs7O0lBTU0sV0FBVyxDQUFDLFlBQWlCLEVBQUUsV0FBd0I7UUFDNUQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDM0QsQ0FBQzs7Ozs7Ozs7SUFNTSxlQUFlLENBQUMsRUFBVSxFQUFFLGFBQWtCLEVBQUUsV0FBd0I7UUFDN0UsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxFQUFFLEVBQUUsYUFBYSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7Ozs7OztJQUtNLFVBQVUsQ0FBQyxNQUFXO1FBQzNCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdkMsQ0FBQzs7Ozs7OztJQUtNLFFBQVEsQ0FBQyxFQUFVO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDakMsQ0FBQzs7Ozs7Ozs7SUFNTSxjQUFjLENBQUMsRUFBVSxFQUFFLFdBQXdCO1FBQ3hELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3BELENBQUM7Ozs7Ozs7O0lBTU0sTUFBTSxDQUFDLFlBQWtCLEVBQUUsV0FBeUI7UUFDekQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDdEQsQ0FBQzs7Ozs7Ozs7SUFNTSxZQUFZLENBQUMsS0FBYSxFQUFFLFdBQXlCO1FBQzFELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3JELENBQUM7Ozs7Ozs7O0lBTUQsTUFBTSxDQUFDLFlBQTBCLEVBQUUsV0FBeUI7UUFDMUQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDdEQsQ0FBQzs7Ozs7OztJQU1NLElBQUksQ0FBQyxXQUF5QjtRQUNuQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7Ozs7Ozs7SUFNTSxNQUFNLENBQUMsRUFBVTtRQUN0QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQy9CLENBQUM7Ozs7Ozs7O0lBTU0sWUFBWSxDQUFDLEVBQVUsRUFBRSxXQUF3QjtRQUN0RCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNsRCxDQUFDOzs7Ozs7OztJQU1NLFdBQVcsQ0FBQyxLQUFhLEVBQUUsRUFBVTtRQUMxQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMzQyxDQUFDOzs7Ozs7Ozs7SUFNTSxpQkFBaUIsQ0FBQyxLQUFhLEVBQUUsRUFBVSxFQUFFLFdBQXdCO1FBQzFFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzlELENBQUM7Ozs7Ozs7SUFDTSxpQkFBaUIsQ0FBQyxLQUFhLEVBQUUsR0FBVyxFQUFFLFdBQXdCO1FBQzNFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQy9ELENBQUM7Ozs7Ozs7SUFLTSxXQUFXLENBQUMsR0FBYTtRQUM5QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7Ozs7Ozs7O0lBTU0saUJBQWlCLENBQUMsR0FBYSxFQUFFLFdBQXdCO1FBQzlELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDeEQsQ0FBQzs7Ozs7OztJQU9NLE1BQU0sQ0FBQyxPQUFhO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDcEMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0lBV00sT0FBTyxDQUNaLEdBQVcsRUFBRSxNQUFjLEVBQUUsTUFBWSxFQUFFLE9BQWEsRUFDeEQsYUFBdUIsRUFBRSxXQUFxQixFQUFFLGFBQXVCO1FBRXZFLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDM0csQ0FBQzs7Ozs7Ozs7Ozs7OztJQWFNLE1BQU0sQ0FBQyxHQUFXLEVBQUUsTUFBYyxFQUFFLE1BQVksRUFBRSxPQUFhLEVBQ3BFLGFBQXVCLEVBQUUsV0FBcUIsRUFBRSxhQUF1QjtRQUN2RSxJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3ZELE1BQU0sSUFBSSxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztTQUN2QztRQUNELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDMUcsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7SUFLTyxZQUFZLENBQ2xCLEdBQVcsRUFBRSxNQUFjLEVBQUUsTUFBWSxFQUFFLE9BQWEsRUFDeEQsYUFBdUIsRUFBRSxXQUFxQixFQUFFLGFBQXVCLEVBQ3ZFLGdDQUEwQztRQUUxQyxPQUFPLEdBQUcsT0FBTyxJQUFJLEVBQUUsQ0FBQzs7Y0FDbEIsZUFBZSxHQUFHLGNBQWM7UUFFdEMsV0FBVztRQUNYLElBQUksT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLFdBQVcsSUFBSSxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssU0FBUyxFQUFFO1lBQ2xGLGFBQWEsR0FBRyxLQUFLLENBQUM7U0FDdkI7UUFFRCxhQUFhO1FBQ2IsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLEtBQUssV0FBVyxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsS0FBSyxTQUFTLEVBQUU7WUFDOUUsV0FBVyxHQUFHLEtBQUssQ0FBQztTQUNyQjtRQUVELHFCQUFxQjtRQUNyQixJQUFJLE9BQU8sQ0FBQyxnQ0FBZ0MsQ0FBQyxLQUFLLFdBQVcsSUFBSSxPQUFPLENBQUMsZ0NBQWdDLENBQUMsS0FBSyxTQUFTLEVBQUU7WUFDeEgsZ0NBQWdDLEdBQUcsS0FBSyxDQUFDO1NBQzFDOztjQUNLLHNCQUFzQixHQUFHLGdDQUFnQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjO1FBRTdHLFNBQVM7UUFDVCxJQUFJLE1BQU0sRUFBRTtZQUNWLCtDQUErQztZQUMvQyxPQUFPLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztTQUN6Qjs7O2NBR0ssY0FBYyxHQUFHLHNCQUFzQixDQUFDLE9BQU8sQ0FBQzs7WUFDbEQsT0FBTyxHQUFHLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDOzs7Y0FHeEQsY0FBYyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLGlCQUFpQixFQUFFO1FBQ3JFLE9BQU8saUJBQWlCLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsSUFBSSxDQUM3RSxTQUFTOzs7O1FBQUMsQ0FBQyxTQUFpQixFQUFFLEVBQUU7WUFDOUIsT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDNUQsT0FBTyxDQUFDLE9BQU8sR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2pELE9BQU8sQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDO1lBQzdCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN4RCxDQUFDLEVBQUMsRUFDRixHQUFHOzs7O1FBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRTtZQUNwQixJQUFJLFFBQVEsQ0FBQyxPQUFPLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUU7Z0JBQzdELElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7YUFDM0U7UUFDSCxDQUFDLEVBQUMsRUFDRixHQUFHOzs7O1FBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUMsRUFDckMsR0FBRzs7OztRQUFDLENBQUMsTUFBVyxFQUFFLEVBQUU7O2tCQUNaLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUM7WUFDN0Qsa0JBQWtCLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFDMUUsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLGNBQWMsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUN2RSxDQUFDLEVBQUMsRUFDRixVQUFVOzs7O1FBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUV4QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUM5RCxDQUFDLEVBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzs7Ozs7Ozs7SUFLTSxpQkFBaUIsQ0FBQyxNQUFXLEVBQUUsY0FBdUIsRUFBRSxhQUFzQjtRQUNuRixJQUFJLGNBQWMsRUFBRTtZQUNsQiwyQkFBMkI7WUFDM0IsaUJBQWlCO1lBQ2pCLGFBQWE7WUFDYixVQUFVO1lBQ1YsSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLGVBQWUsSUFBSSxhQUFhLEtBQUssSUFBSSxFQUFFO2dCQUM5RCxJQUFJLENBQUMsVUFBVSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQzthQUNqRTtZQUNELElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRTtnQkFDeEMsSUFBSSxDQUFDLFVBQVUsQ0FBQywwQkFBMEIsQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQzthQUN4RTtZQUNELElBQUksQ0FBQyxVQUFVLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUN4QyxPQUFPLE1BQU0sQ0FBQztTQUNmO2FBQU07WUFDTCw0QkFBNEI7WUFDNUIsMEJBQTBCO1lBQzFCLHNCQUFzQjtZQUN0QixrQkFBa0I7WUFDbEIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDeEM7SUFDSCxDQUFDOzs7Ozs7OztJQUtNLFlBQVksQ0FBQyxLQUFVLEVBQUUsYUFBc0IsRUFBRSxXQUFvQjtRQUMxRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFcEIsSUFBSSxDQUFDLENBQUMsYUFBYSxFQUFFO1lBQ25CLE9BQU8sVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzFCO2FBQU07O2tCQUNDLGNBQWMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsRUFBRTs7a0JBQy9ELGFBQWEsR0FBRyxjQUFjLENBQUMsYUFBYTs7a0JBQzVDLGtCQUFrQixHQUFRLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFOztrQkFDckQsUUFBUSxHQUFHLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQzs7a0JBQ3BELFdBQVcsR0FBRyxrQkFBa0IsQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUM7O2tCQUM5RCx1QkFBdUIsR0FBRyxDQUFDLENBQUMsa0JBQWtCLENBQUMsdUJBQXVCOztrQkFDdEUsc0JBQXNCLEdBQUcsV0FBVyxJQUFJLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLEtBQUs7O2tCQUN2RSxrQkFBa0IsR0FBRyxDQUFDLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsSUFBSSxrQkFBa0IsQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQzs7a0JBQ3pMLGtCQUFrQixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLHVCQUF1QixJQUFJLGtCQUFrQjtZQUMzRixrQkFBa0IsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLEVBQUUsRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQztZQUNwTCxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLHVCQUF1QixFQUFFO2dCQUM5QyxJQUFJLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxFQUFFO29CQUM5QyxPQUFPLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDMUI7Z0JBQ0QsSUFBSSxrQkFBa0IsRUFBRTtvQkFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLGNBQWMsQ0FBQyxDQUFDO2lCQUMzRTtnQkFDRCxJQUFJLFdBQVcsRUFBRTtvQkFDZixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDakI7cUJBQU07b0JBQ0wsT0FBTyxLQUFLLENBQUM7aUJBQ2Q7YUFDRjtpQkFBTTtnQkFDTCxPQUFPLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUMxQjtTQUNGO0lBRUgsQ0FBQzs7Ozs7Ozs7SUFTTyxZQUFZOztjQUNaLGVBQWUsR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUM7WUFDdEQsTUFBTSxDQUFDLHdCQUF3QixDQUFDLFlBQVksS0FBSztZQUNqRCxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLEtBQUs7UUFFdEQsSUFBSSxlQUFlLEtBQUssS0FBSyxFQUFFO1lBQzdCLE9BQU87U0FDUjs7Y0FFSyxlQUFlLEdBQVUsTUFBTSxDQUFDLHdCQUF3QixDQUFDO1FBQy9ELEtBQUssTUFBTSxPQUFPLElBQUksZUFBZSxFQUFFO1lBQ3JDLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxVQUFVLEVBQUU7Z0JBQzVDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQzthQUNwQjtTQUNGO0lBQ0gsQ0FBQzs7Ozs7OztJQUtPLGtCQUFrQixDQUFDLE1BQVc7UUFDcEMsT0FBTyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyRCxDQUFDOzs7Ozs7O0lBS08sY0FBYyxDQUFDLE9BQVk7UUFDakMsT0FBTyxlQUFlLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEQsQ0FBQzs7Ozs7OztJQUlPLGdCQUFnQixDQUFDLE9BQVk7UUFDbkMsT0FBTyxlQUFlLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pELENBQUM7Ozs7Ozs7SUFNTyxXQUFXLENBQUMsTUFBVztRQUM3QixPQUFPLGFBQWEsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDM0MsQ0FBQzs7Ozs7OztJQU1NLHdCQUF3QixDQUFDLElBQVM7UUFDdkMsT0FBTyxlQUFlLENBQUMsd0JBQXdCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN6RSxDQUFDOzs7OztJQUtNLGdCQUFnQjtRQUNyQixPQUFPLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDM0QsQ0FBQzs7O1lBNWJGLFVBQVU7Ozs7WUExQkYsVUFBVTs7WUFNVix1QkFBdUI7WUFEdkIsYUFBYTtZQUZMLFFBQVE7Ozs7Ozs7SUEwQnZCLG9DQUEwQzs7Ozs7O0lBSzFDLG9DQUErQjs7Ozs7SUFDL0IscUNBQWlDOzs7OztJQUtqQyx3Q0FBeUM7Ozs7O0lBS3pDLGlDQUF1Qjs7Ozs7SUFLdkIsa0NBQTBCOztBQTBhNUIsT0FBTyxFQUFFLGNBQWMsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQEF1dGhvcjogV2l0dFxyXG4gKiBARGF0ZTogMjAxOS0wMi0yMyAxMzo1Nzo0N1xyXG4gKiBATGFzdCBNb2RpZmllZCBieTogYWFsaXp6d2VsbFxyXG4gKiBATGFzdCBNb2RpZmllZCB0aW1lOiAyMDE5LTA5LTI0IDE0OjEwOjQwXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycywgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciwgb2YsIEVNUFRZIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHN3aXRjaE1hcCwgbWFwLCBjYXRjaEVycm9yLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEVudGl0eSwgRXZlbnRCdXMgfSBmcm9tICdAZmFycmlzL2RldmtpdCc7XHJcbmltcG9ydCB7IEh0dHBIZWFkZXJVdGlsLCBIdHRwUGFyYW1VdGlsLCBSZXF1ZXN0SW5mb1V0aWwsIFJlc3BvbnNlSW5mb1V0aWwgfSBmcm9tICcuL3V0aWxzL2luZGV4JztcclxuaW1wb3J0IHsgQmVmUmVwb3NpdG9yeSB9IGZyb20gJy4vYmVmX3JlcG9zaXRvcnknO1xyXG5pbXBvcnQgeyBGcmFtZXdvcmtTZXNzaW9uU2VydmljZSB9IGZyb20gJy4vZnJhbWV3b3JrX3Nlc3Npb25fc2VydmljZSc7XHJcbmltcG9ydCB7IEJlZlNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi9zZXNzaW9uL2luZGV4JztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0YWlsLCBSZXF1ZXN0SW5mbywgUmVzcG9uc2VJbmZvIH0gZnJvbSAnLi90eXBlcyc7XHJcbmltcG9ydCB7IEJlZlByb3h5IH0gZnJvbSAnLi9iZWZfcHJveHknO1xyXG5pbXBvcnQgeyBVcmlTZXJ2aWNlIH0gZnJvbSAnLi91cmlfc2VydmljZSc7XHJcbmltcG9ydCB7IEJlZlByb3h5RXh0ZW5kIH0gZnJvbSAnLi9iZWZfcHJveHlfZXh0ZW5kJztcclxuaW1wb3J0IHsgSHR0cFNlcnZpY2UgfSBmcm9tICcuL2h0dHBfc2VydmljZSc7XHJcbmltcG9ydCB7IEJhY2tFbmRNZXNzYWdlVXRpbCB9IGZyb20gJy4vdXRpbHMvYmFja19lbmRfbWVzc2FnZS51dGlsJztcclxuaW1wb3J0IHsgQmVmU2Vzc2lvbk1hbmFnZXIgfSBmcm9tICcuL3Nlc3Npb24vYmVmX3Nlc3Npb25fbWFuYWdlcic7XHJcblxyXG5jb25zdCBHRVQgPSAnR0VUJztcclxuY29uc3QgREVMRVRFID0gJ0RFTEVURSc7XHJcbmNvbnN0IFBVVCA9ICdQVVQnO1xyXG5jb25zdCBQT1NUID0gJ1BPU1QnO1xyXG5jb25zdCBQQVRDSCA9ICdQQVRDSCc7XHJcblxyXG4vKipcclxuICogQkVG5Y+W5pWw5pyN5YqhXHJcbiAqIOivpeacjeWKoeeUsUJlZlJlcG9zaXRvcnnlrp7kvovljJbvvIzkuI3lgZrms6jlhaXvvIzmr4/kuKpCZWZSZXBvc2l0b3J55oul5pyJ5LiA5LiqQmVmUmVzdFNlcnZpY2Xlrp7kvovjgIJcclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuY2xhc3MgQmVmUmVzdFNlcnZpY2Uge1xyXG5cclxuICBwcml2YXRlIHJlcG9zaXRvcnk6IEJlZlJlcG9zaXRvcnk8RW50aXR5PjtcclxuXHJcbiAgLyoqXHJcbiAgICogaHR0cENsaWVudFxyXG4gICAqL1xyXG4gIHByaXZhdGUgaHR0cENsaWVudDogSHR0cENsaWVudDtcclxuICBwcml2YXRlIGh0dHBTZXJ2aWNlOiBIdHRwU2VydmljZTtcclxuXHJcbiAgLyoqXHJcbiAgICog5Lya6K+d5pyN5YqhXHJcbiAgICovXHJcbiAgcHVibGljIHNlc3Npb25TZXJ2aWNlOiBCZWZTZXNzaW9uU2VydmljZTtcclxuXHJcbiAgLyoqXHJcbiAgICog5o6l5Y+j5qC5VXJpXHJcbiAgICovXHJcbiAgcHVibGljIGJhc2VVcmk6IHN0cmluZztcclxuXHJcbiAgLyoqXHJcbiAgICog5LqL5Lu25oC757q/XHJcbiAgICovXHJcbiAgcHVibGljIGV2ZW50QnVzOiBFdmVudEJ1cztcclxuXHJcbiAgLyoqXHJcbiAgICog5p6E6YCg5Ye95pWwXHJcbiAgICogQHBhcmFtIGh0dHBDbGllbnQgaHR0cOacjeWKoVxyXG4gICAqIEBwYXJhbSBzZXJ2ZXJVcmkg5bqU55So5pyN5Yqh5Zmo5Zyw5Z2AXHJcbiAgICogQHBhcmFtIGJlVXJpIEJFIEFQSeWcsOWdgFxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgaHR0cENsaWVudDogSHR0cENsaWVudCwgYmFzZVVyaTogc3RyaW5nLFxyXG4gICAgZnJtU2Vzc2lvblNlcnZpY2U6IEZyYW1ld29ya1Nlc3Npb25TZXJ2aWNlLFxyXG4gICAgcmVwb3NpdG9yeTogQmVmUmVwb3NpdG9yeTxFbnRpdHk+LFxyXG4gICAgZXZlbnRCdXM/OiBFdmVudEJ1c1xyXG4gICkge1xyXG4gICAgdGhpcy5odHRwQ2xpZW50ID0gaHR0cENsaWVudDtcclxuICAgIHRoaXMuaHR0cFNlcnZpY2UgPSBuZXcgSHR0cFNlcnZpY2UodGhpcy5odHRwQ2xpZW50KTtcclxuICAgIHRoaXMuYmFzZVVyaSA9IGJhc2VVcmk7XHJcbiAgICBjb25zdCBpbmplY3RvciA9IHJlcG9zaXRvcnkuZ2V0SW5qZWN0b3IoKTtcclxuICAgIHRoaXMuc2Vzc2lvblNlcnZpY2UgPSBuZXcgQmVmU2Vzc2lvblNlcnZpY2UoaHR0cENsaWVudCwgYmFzZVVyaSwgZnJtU2Vzc2lvblNlcnZpY2UsIGluamVjdG9yKTtcclxuICAgIHRoaXMucmVwb3NpdG9yeSA9IHJlcG9zaXRvcnk7XHJcbiAgICB0aGlzLmV2ZW50QnVzID0gZXZlbnRCdXM7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8gI3JlZ2lvbiDku6PnkIbnm7jlhbNcclxuXHJcbiAgLyoqXHJcbiAgICog6I635Y+WQmVm5Luj55CGXHJcbiAgICovXHJcbiAgcHVibGljIGdldCBwcm94eSgpOiBCZWZQcm94eSB7XHJcbiAgICBpZiAoISF0aGlzLnJlcG9zaXRvcnkucHJveHkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMucmVwb3NpdG9yeS5wcm94eTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUJlZlByb3h5KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDliJvlu7pCZWbku6PnkIZcclxuICAgKi9cclxuICBwcml2YXRlIGNyZWF0ZUJlZlByb3h5KCkge1xyXG4gICAgY29uc3Qgc2VydmVyVXJpID0gdGhpcy5yZXBvc2l0b3J5LnNlcnZlclVyaTtcclxuICAgIGNvbnN0IHVyaVNlcnZpY2UgPSBuZXcgVXJpU2VydmljZShzZXJ2ZXJVcmkpO1xyXG4gICAgY29uc3QgZGVmYXVsdFByb3h5ID0gbmV3IEJlZlByb3h5KHRoaXMuaHR0cENsaWVudCwgdXJpU2VydmljZSk7XHJcbiAgICBkZWZhdWx0UHJveHkuc2V0QmFzZVVyaSh0aGlzLmJhc2VVcmkpO1xyXG4gICAgY29uc3QgZXh0ZW5kID0gbmV3IEJlZlByb3h5RXh0ZW5kKHRoaXMucmVwb3NpdG9yeSk7XHJcbiAgICBkZWZhdWx0UHJveHkuc2V0UHJveHlFeHRlbmQoZXh0ZW5kKTtcclxuICAgIHJldHVybiBkZWZhdWx0UHJveHk7XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uXHJcblxyXG5cclxuICAvLyAjcmVnaW9uIOWfuuacrENSVUTmlrnms5VcclxuXHJcbiAgLyoqXHJcbiAgICog5bey5bqf5byD77yM6K+35L2/55SocmVwb3NpdG9yeS5wcm94eeWvueW6lOaWueazleS7o+abv1xyXG4gICAqIEBkZXByZWNhdGVkXHJcbiAgICovXHJcbiAgcHVibGljIHF1ZXJ5KGVudGl0eUZpbHRlcj86IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5wcm94eS5xdWVyeShlbnRpdHlGaWx0ZXIpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5bey5bqf5byD77yM6K+35L2/55SocmVwb3NpdG9yeS5wcm94eeWvueW6lOaWueazleS7o+abv1xyXG4gICAqIEBkZXByZWNhdGVkXHJcbiAgICovXHJcbiAgcHVibGljIGV4dGVuZFF1ZXJ5KGVudGl0eUZpbHRlcjogYW55LCByZXF1ZXN0SW5mbzogUmVxdWVzdEluZm8pOiBPYnNlcnZhYmxlPFJlc3BvbnNlSW5mbz4ge1xyXG4gICAgcmV0dXJuIHRoaXMucHJveHkuZXh0ZW5kUXVlcnkoZW50aXR5RmlsdGVyLCByZXF1ZXN0SW5mbyk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIOWIhumhteafpeivouWQhOS7juihqOaVsOaNrlxyXG4gICAqIEBwYXJhbSBpZCDkuLvooahpZFxyXG4gICAqIEBwYXJhbSByZXRyaWV2ZVBhcmFtIOWPguaVsFxyXG4gICAqL1xyXG4gIHB1YmxpYyBzZXJ2aWNlUmV0cmlldmUoaWQ6IHN0cmluZywgcmV0cmlldmVQYXJhbTogYW55LCByZXF1ZXN0SW5mbzogUmVxdWVzdEluZm8pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMucHJveHkuc2VydmljZVJldHJpZXZlKGlkLCByZXRyaWV2ZVBhcmFtLCByZXF1ZXN0SW5mbyk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIOWIhumhteafpeivouS7juihqC/ku47ku47ooajmlbDmja5cclxuICAgKiBAcGFyYW0gcGFyYW1zIOafpeivouWPguaVsFxyXG4gICAqL1xyXG4gIHB1YmxpYyBxdWVyeUNoaWxkKHBhcmFtczogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5wcm94eS5xdWVyeUNoaWxkKHBhcmFtcyk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIOW3suW6n+W8g++8jOivt+S9v+eUqHJlcG9zaXRvcnkucHJveHnlr7nlupTmlrnms5Xku6Pmm79cclxuICAgKiBAZGVwcmVjYXRlZFxyXG4gICAqL1xyXG4gIHB1YmxpYyByZXRyaWV2ZShpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLnByb3h5LnJldHJpZXZlKGlkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOW3suW6n+W8g++8jOivt+S9v+eUqHJlcG9zaXRvcnkucHJveHnlr7nlupTmlrnms5Xku6Pmm79cclxuICAgKiBAZGVwcmVjYXRlZFxyXG4gICAqL1xyXG4gIHB1YmxpYyBleHRlbmRSZXRyaWV2ZShpZDogc3RyaW5nLCByZXF1ZXN0SW5mbzogUmVxdWVzdEluZm8pOiBPYnNlcnZhYmxlPFJlc3BvbnNlSW5mbz4ge1xyXG4gICAgcmV0dXJuIHRoaXMucHJveHkuZXh0ZW5kUmV0cmlldmUoaWQsIHJlcXVlc3RJbmZvKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOW3suW6n+W8g++8jOivt+S9v+eUqHJlcG9zaXRvcnkucHJveHnlr7nlupTmlrnms5Xku6Pmm79cclxuICAgKiBAZGVwcmVjYXRlZFxyXG4gICAqL1xyXG4gIHB1YmxpYyBjcmVhdGUoZGVmYXVsdFZhbHVlPzogYW55LCByZXF1ZXN0SW5mbz86IFJlcXVlc3RJbmZvKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLnByb3h5LmNyZWF0ZShkZWZhdWx0VmFsdWUsIHJlcXVlc3RJbmZvKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOW3suW6n+W8g++8jOivt+S9v+eUqHJlcG9zaXRvcnkucHJveHnlr7nlupTmlrnms5Xku6Pmm79cclxuICAgKiBAZGVwcmVjYXRlZFxyXG4gICAqL1xyXG4gIHB1YmxpYyBjcmVhdGVCeVBhdGgoZnBhdGg6IHN0cmluZywgcmVxdWVzdEluZm8/OiBSZXF1ZXN0SW5mbyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5wcm94eS5jcmVhdGVCeVBhdGgoZnBhdGgsIHJlcXVlc3RJbmZvKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOW3suW6n+W8g++8jOivt+S9v+eUqHJlcG9zaXRvcnkucHJveHnlr7nlupTmlrnms5Xku6Pmm79cclxuICAgKiBAZGVwcmVjYXRlZFxyXG4gICAqL1xyXG4gIHVwZGF0ZShjaGFuZ2VEZXRhaWw6IENoYW5nZURldGFpbCwgcmVxdWVzdEluZm8/OiBSZXF1ZXN0SW5mbyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5wcm94eS51cGRhdGUoY2hhbmdlRGV0YWlsLCByZXF1ZXN0SW5mbyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDlt7Llup/lvIPvvIzor7fkvb/nlKhyZXBvc2l0b3J5LnByb3h55a+55bqU5pa55rOV5Luj5pu/XHJcbiAgICogQGRlcHJlY2F0ZWRcclxuICAgKi9cclxuICBwdWJsaWMgc2F2ZShyZXF1ZXN0SW5mbz86IFJlcXVlc3RJbmZvKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLnByb3h5LnNhdmUocmVxdWVzdEluZm8pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5bey5bqf5byD77yM6K+35L2/55SocmVwb3NpdG9yeS5wcm94eeWvueW6lOaWueazleS7o+abv1xyXG4gICAqIEBkZXByZWNhdGVkXHJcbiAgICovXHJcbiAgcHVibGljIGRlbGV0ZShpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLnByb3h5LmRlbGV0ZShpZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDlt7Llup/lvIPvvIzor7fkvb/nlKhyZXBvc2l0b3J5LnByb3h55a+55bqU5pa55rOV5Luj5pu/XHJcbiAgICogQGRlcHJlY2F0ZWRcclxuICAgKi9cclxuICBwdWJsaWMgZXh0ZW5kRGVsZXRlKGlkOiBzdHJpbmcsIHJlcXVlc3RJbmZvOiBSZXF1ZXN0SW5mbyk6IE9ic2VydmFibGU8UmVzcG9uc2VJbmZvPiB7XHJcbiAgICByZXR1cm4gdGhpcy5wcm94eS5leHRlbmREZWxldGUoaWQsIHJlcXVlc3RJbmZvKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOW3suW6n+W8g++8jOivt+S9v+eUqHJlcG9zaXRvcnkucHJveHnlr7nlupTmlrnms5Xku6Pmm79cclxuICAgKiBAZGVwcmVjYXRlZFxyXG4gICAqL1xyXG4gIHB1YmxpYyBkZWxldEJ5UGF0aChmcGF0aDogc3RyaW5nLCBpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLnByb3h5LmRlbGV0QnlQYXRoKGZwYXRoLCBpZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDlt7Llup/lvIPvvIzor7fkvb/nlKhyZXBvc2l0b3J5LnByb3h55a+55bqU5pa55rOV5Luj5pu/XHJcbiAgICogQGRlcHJlY2F0ZWRcclxuICAgKi9cclxuICBwdWJsaWMgZXh0ZW5kRGVsZXRCeVBhdGgoZnBhdGg6IHN0cmluZywgaWQ6IHN0cmluZywgcmVxdWVzdEluZm86IFJlcXVlc3RJbmZvKTogT2JzZXJ2YWJsZTxSZXNwb25zZUluZm8+IHtcclxuICAgIHJldHVybiB0aGlzLnByb3h5LmV4dGVuZERlbGV0QnlQYXRoKGZwYXRoLCBpZCwgcmVxdWVzdEluZm8pO1xyXG4gIH1cclxuICBwdWJsaWMgYmF0Y2hEZWxldGVCeVBhdGgoZlBhdGg6IHN0cmluZywgaWRzOiBzdHJpbmcsIHJlcXVlc3RJbmZvOiBSZXF1ZXN0SW5mbyk6IE9ic2VydmFibGU8UmVzcG9uc2VJbmZvPiB7XHJcbiAgICByZXR1cm4gdGhpcy5wcm94eS5iYXRjaERlbGV0ZUJ5UGF0aChmUGF0aCwgaWRzLCByZXF1ZXN0SW5mbyk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIOW3suW6n+W8g++8jOivt+S9v+eUqHJlcG9zaXRvcnkucHJveHnlr7nlupTmlrnms5Xku6Pmm79cclxuICAgKiBAZGVwcmVjYXRlZFxyXG4gICAqL1xyXG4gIHB1YmxpYyBiYXRjaERlbGV0ZShpZHM6IHN0cmluZ1tdKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLnByb3h5LmJhdGNoRGVsZXRlKGlkcyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDlt7Llup/lvIPvvIzor7fkvb/nlKhyZXBvc2l0b3J5LnByb3h55a+55bqU5pa55rOV5Luj5pu/XHJcbiAgICogQGRlcHJlY2F0ZWRcclxuICAgKi9cclxuICBwdWJsaWMgZXh0ZW5kQmF0Y2hEZWxldGUoaWRzOiBzdHJpbmdbXSwgcmVxdWVzdEluZm86IFJlcXVlc3RJbmZvKTogT2JzZXJ2YWJsZTxSZXNwb25zZUluZm8+IHtcclxuICAgIHJldHVybiB0aGlzLnByb3h5LmV4dGVuZEJhdGNoRGVsZXRlKGlkcywgcmVxdWVzdEluZm8pO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIOW3suW6n+W8g++8jOivt+S9v+eUqHJlcG9zaXRvcnkucHJveHnlr7nlupTmlrnms5Xku6Pmm79cclxuICAgKiBAZGVwcmVjYXRlZFxyXG4gICAqL1xyXG4gIHB1YmxpYyBjYW5jZWwob3B0aW9ucz86IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5wcm94eS5jYW5jZWwob3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uXHJcblxyXG5cclxuICAvLyAjcmVnaW9uIHJlcXVlc3Tmlrnms5VcclxuXHJcbiAgLyoqXHJcbiAgICog5bey5bqf5byD77yM6K+35L2/55SocmVwb3NpdG9yeS5wcm94eeWvueW6lOaWueazleS7o+abv1xyXG4gICAqIEBkZXByZWNhdGVkXHJcbiAgICovXHJcbiAgcHVibGljIHJlcXVlc3QoXHJcbiAgICB1cmw6IHN0cmluZywgbWV0aG9kOiBzdHJpbmcsIHBhcmFtcz86IGFueSwgb3B0aW9ucz86IGFueSxcclxuICAgIHNlbGZIYW5kRXJyb3I/OiBib29sZWFuLCBpZ25vcmVFcnJvcj86IGJvb2xlYW4sIGlnbm9yZUNoYW5nZXM/OiBib29sZWFuXHJcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmlubmVyUmVxdWVzdCh1cmwsIG1ldGhvZCwgcGFyYW1zLCBvcHRpb25zLCBzZWxmSGFuZEVycm9yLCBpZ25vcmVFcnJvciwgaWdub3JlQ2hhbmdlcywgZmFsc2UpO1xyXG4gIH1cclxuICAvLyB0c2xpbnQ6ZGlzYWJsZTogYWxpZ25cclxuXHJcbiAgLyoqXHJcbiAgICog6LCD55So5ZCO56uv5pa55rOVXHJcbiAgICogQHBhcmFtIHVybCB1cmxcclxuICAgKiBAcGFyYW0gbWV0aG9kIG1ldGhvZFxyXG4gICAqIEBwYXJhbSBwYXJhbXMgcGFyYW1zXHJcbiAgICogQHBhcmFtIG9wdGlvbnMgb3B0aW9uc1xyXG4gICAqIEBwYXJhbSBzZWxmSGFuZEVycm9yIOiHquW3seWkhOeQhuW8guW4uFxyXG4gICAqIEBwYXJhbSBpZ25vcmVFcnJvciDlv73nlaXplJnor69cclxuICAgKiBAcGFyYW0gaWdub3JlQ2hhbmdlcyDlv73nlaXlj5jmm7RcclxuICAgKi9cclxuICBwdWJsaWMgaW52b2tlKHVybDogc3RyaW5nLCBtZXRob2Q6IHN0cmluZywgcGFyYW1zPzogYW55LCBvcHRpb25zPzogYW55LFxyXG4gICAgc2VsZkhhbmRFcnJvcj86IGJvb2xlYW4sIGlnbm9yZUVycm9yPzogYm9vbGVhbiwgaWdub3JlQ2hhbmdlcz86IGJvb2xlYW4pIHtcclxuICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMuYm9keSAmJiBvcHRpb25zLmJvZHkuUmVxdWVzdEluZm8pIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCfor7fkvb/nlKhyZXF1ZXN0SW5mb+aPkOS6pOWPmOabtCcpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuaW5uZXJSZXF1ZXN0KHVybCwgbWV0aG9kLCBwYXJhbXMsIG9wdGlvbnMsIHNlbGZIYW5kRXJyb3IsIGlnbm9yZUVycm9yLCBpZ25vcmVDaGFuZ2VzLCB0cnVlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOWGhemDqOeahHJlcXVlc3Tmlrnms5VcclxuICAgKi9cclxuICBwcml2YXRlIGlubmVyUmVxdWVzdChcclxuICAgIHVybDogc3RyaW5nLCBtZXRob2Q6IHN0cmluZywgcGFyYW1zPzogYW55LCBvcHRpb25zPzogYW55LFxyXG4gICAgc2VsZkhhbmRFcnJvcj86IGJvb2xlYW4sIGlnbm9yZUVycm9yPzogYm9vbGVhbiwgaWdub3JlQ2hhbmdlcz86IGJvb2xlYW4sXHJcbiAgICB1c2VDb3JyZWN0UmVxdWVzdEluZm9DaGVja01ldGhvZD86IGJvb2xlYW5cclxuICApIHtcclxuICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xyXG4gICAgY29uc3QgYmVmU2Vzc2lvbklkS2V5ID0gJ0JFRlNlc3Npb25JRCc7XHJcblxyXG4gICAgLy8g5piv5ZCm6Ieq5bex5aSE55CG5byC5bi4XHJcbiAgICBpZiAodHlwZW9mIChzZWxmSGFuZEVycm9yKSA9PT0gJ3VuZGVmaW5lZCcgfHwgdHlwZW9mIChzZWxmSGFuZEVycm9yKSAhPT0gJ2Jvb2xlYW4nKSB7XHJcbiAgICAgIHNlbGZIYW5kRXJyb3IgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyDmmK/lkKblv73nlaXlvILluLjnu6fnu63miafooYxcclxuICAgIGlmICh0eXBlb2YgKGlnbm9yZUVycm9yKSA9PT0gJ3VuZGVmaW5lZCcgfHwgdHlwZW9mIChpZ25vcmVFcnJvcikgIT09ICdib29sZWFuJykge1xyXG4gICAgICBpZ25vcmVFcnJvciA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIOmAieaLqeajgOafpVJlcXVlc3RJbmZv55qE5pa55rOVXHJcbiAgICBpZiAodHlwZW9mICh1c2VDb3JyZWN0UmVxdWVzdEluZm9DaGVja01ldGhvZCkgPT09ICd1bmRlZmluZWQnIHx8IHR5cGVvZiAodXNlQ29ycmVjdFJlcXVlc3RJbmZvQ2hlY2tNZXRob2QpICE9PSAnYm9vbGVhbicpIHtcclxuICAgICAgdXNlQ29ycmVjdFJlcXVlc3RJbmZvQ2hlY2tNZXRob2QgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIGNvbnN0IGNoZWNrUmVxdWVzdEluZm9NZXRob2QgPSB1c2VDb3JyZWN0UmVxdWVzdEluZm9DaGVja01ldGhvZCA/IHRoaXMuZXhpc3RSZXF1ZXN0SW5mbyA6IHRoaXMuaGFzUmVxdWVzdEluZm87XHJcblxyXG4gICAgLy8gcGFyYW1zXHJcbiAgICBpZiAocGFyYW1zKSB7XHJcbiAgICAgIC8vIGNvbnN0IGh0dHBQYXJhbXMgPSB0aGlzLmJ1aWxkUGFyYW1zKHBhcmFtcyk7XHJcbiAgICAgIG9wdGlvbnMucGFyYW1zID0gcGFyYW1zO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIOW4puaciXJlcXVlc3RJbmZv55qE6K+35rGC77yM6K+35rGC5oiQ5Yqf5ZCO5riF56m65Y+Y5pu06ZuGXHJcbiAgICBjb25zdCBoYXNSZXF1ZXN0SW5mbyA9IGNoZWNrUmVxdWVzdEluZm9NZXRob2Qob3B0aW9ucyk7XHJcbiAgICBsZXQgaGVhZGVycyA9IEh0dHBIZWFkZXJVdGlsLmNvbnZlcnRUb0hlYWRlcnMob3B0aW9ucy5oZWFkZXJzKTtcclxuXHJcbiAgICAvLyDkuLLogZRzZXNzaW9u5rWB5ZKMaHR0cOa1gVxyXG4gICAgY29uc3QgZm9ybUFwcENvbnRleHQgPSB0aGlzLnJlcG9zaXRvcnkuYXBwQ29udGV4dC5nZXRGb3JtQXBwQ29udGV4dCgpO1xyXG4gICAgcmV0dXJuIEJlZlNlc3Npb25NYW5hZ2VyLmdldFNlc3Npb25JZChmb3JtQXBwQ29udGV4dCwgdGhpcy5zZXNzaW9uU2VydmljZSkucGlwZShcclxuICAgICAgc3dpdGNoTWFwKChzZXNzaW9uSWQ6IHN0cmluZykgPT4ge1xyXG4gICAgICAgIGhlYWRlcnMgPSB0aGlzLnNlc3Npb25TZXJ2aWNlLmV4dGVuZFJlcXVlc3RIZWFkZXJzKGhlYWRlcnMpO1xyXG4gICAgICAgIG9wdGlvbnMuaGVhZGVycyA9IEh0dHBIZWFkZXJVdGlsLnRvSnNvbihoZWFkZXJzKTtcclxuICAgICAgICBvcHRpb25zLm9ic2VydmUgPSAncmVzcG9uc2UnO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLnJlcXVlc3QobWV0aG9kLCB1cmwsIG9wdGlvbnMpO1xyXG4gICAgICB9KSxcclxuICAgICAgdGFwKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3BvbnNlLmhlYWRlcnMgJiYgcmVzcG9uc2UuaGVhZGVycy5oYXMoYmVmU2Vzc2lvbklkS2V5KSkge1xyXG4gICAgICAgICAgdGhpcy5zZXNzaW9uU2VydmljZS5zZXRCZVNlc3Npb25JZChyZXNwb25zZS5oZWFkZXJzLmdldChiZWZTZXNzaW9uSWRLZXkpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHJlc3BvbnNlLmJvZHkpLFxyXG4gICAgICBtYXAoKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgICAgY29uc3QgbWVzc2FnZXMgPSBSZXNwb25zZUluZm9VdGlsLnBhcnNlQmFja0VuZE1lc3NhZ2UocmVzdWx0KTtcclxuICAgICAgICBCYWNrRW5kTWVzc2FnZVV0aWwuaGFuZGxlTWVzc2FnZShtZXNzYWdlcywgdGhpcy5yZXBvc2l0b3J5LmdldEluamVjdG9yKCkpO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcG9uc2VJbmZvKHJlc3VsdCwgaGFzUmVxdWVzdEluZm8sIGlnbm9yZUNoYW5nZXMpO1xyXG4gICAgICB9KSxcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IGFueSkgPT4ge1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5oYW5kbGVFcnJvcnMoZXJyb3IsIHNlbGZIYW5kRXJyb3IsIGlnbm9yZUVycm9yKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDlpITnkIbov5Tlm57nu5PmnpxcclxuICAgKi9cclxuICBwdWJsaWMgaGFuZGxlUmVwb25zZUluZm8ocmVzdWx0OiBhbnksIGhhc1JlcXVlc3RJbmZvOiBib29sZWFuLCBpZ25vcmVDaGFuZ2VzOiBib29sZWFuKTogYW55IHtcclxuICAgIGlmIChoYXNSZXF1ZXN0SW5mbykge1xyXG4gICAgICAvLyDlpoLmnpzmnInluKbmnIlSZXF1ZXN0SW5mb++8jOWImeaMieaWsOe7k+aehOWkhOeQhlxyXG4gICAgICAvLyAx44CB5bqU55So5pyN5Yqh5Zmo56uv6L+U5Zue55qE5Y+Y5pu077ybXHJcbiAgICAgIC8vIDLjgIHmuIXnqbrmnKzlnLDlj5jmm7Tpm4bvvJtcclxuICAgICAgLy8gM+OAgei/lOWbnuaWsOe7k+aehFxyXG4gICAgICBpZiAocmVzdWx0ICYmIHJlc3VsdC5pbm5lckRhdGFDaGFuZ2UgJiYgaWdub3JlQ2hhbmdlcyAhPT0gdHJ1ZSkge1xyXG4gICAgICAgIHRoaXMucmVwb3NpdG9yeS5oYW5kbGVEYXRhQ2hhbmdlRGV0YWlscyhyZXN1bHQuaW5uZXJEYXRhQ2hhbmdlKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAocmVzdWx0ICYmIHJlc3VsdC5pbm5lclZhcmlhYmxlQ2hhbmdlKSB7XHJcbiAgICAgICAgdGhpcy5yZXBvc2l0b3J5LmhhbmRsZVZhcmlhYmxlQ2hhbmdlRGV0YWlsKHJlc3VsdC5pbm5lclZhcmlhYmxlQ2hhbmdlKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnJlcG9zaXRvcnkuY2xlYXJBbGxFbnRpdHlDaGFuZ2VzKCk7XHJcbiAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyDlpoLmnpzmnInmsqHmnIlSZXF1ZXN0SW5mb++8jOWImeaMieiAgeeahOaWueW8j+WkhOeQhlxyXG4gICAgICAvLyAx44CB5LiN5aSE55CG5pyN5Yqh5Zmo56uv6L+U5Zue55qE5Y+Y5pu077ya6Lef6ICB55qE6KGM5Li65LiA5qC377ybXHJcbiAgICAgIC8vIDLjgIHkuI3muIXnkIbmnKzlnLDlj5jmm7TvvJrlm6DkuLrlj5jmm7TmsqHmnInmj5DkuqTvvJtcclxuICAgICAgLy8gM+OAgei/lOWbnuiAgeeahOe7k+aehO+8muWFvOWuueiAgeeahOS7o+eggVxyXG4gICAgICByZXR1cm4gdGhpcy51bldyYXBSZXNwb25zZUluZm8ocmVzdWx0KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOmUmeivr+WkhOeQhlxyXG4gICAqL1xyXG4gIHB1YmxpYyBoYW5kbGVFcnJvcnMoZXJyb3I6IGFueSwgc2VsZkhhbmRFcnJvcjogYm9vbGVhbiwgaWdub3JlRXJyb3I6IGJvb2xlYW4pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgdGhpcy5jbGVhckxvYWRpbmcoKTtcclxuXHJcbiAgICBpZiAoISFzZWxmSGFuZEVycm9yKSB7XHJcbiAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGZvcm1BcHBDb250ZXh0ID0gdGhpcy5yZXBvc2l0b3J5LmFwcENvbnRleHQuZ2V0Rm9ybUFwcENvbnRleHQoKTtcclxuICAgICAgY29uc3QgYXBwbGljYXRpb25JZCA9IGZvcm1BcHBDb250ZXh0LkFwcGxpY2F0aW9uSWQ7XHJcbiAgICAgIGNvbnN0IGFwcGxpY2F0aW9uQ29udGV4dDogYW55ID0gd2luZG93W2FwcGxpY2F0aW9uSWRdIHx8IHt9O1xyXG4gICAgICBjb25zdCBtZXNzYWdlcyA9IFJlc3BvbnNlSW5mb1V0aWwucGFyc2VCYWNrRW5kRXJyb3IoZXJyb3IpO1xyXG4gICAgICBjb25zdCBiaXpNZXNzYWdlcyA9IEJhY2tFbmRNZXNzYWdlVXRpbC5nZXRGb3JtbGVzc01lc3NhZ2VzKG1lc3NhZ2VzKTtcclxuICAgICAgY29uc3QgaXNFeGNlcHRpb25IYW5kbGVyRXhpc3QgPSAhIWFwcGxpY2F0aW9uQ29udGV4dC5pc0V4Y2VwdGlvbkhhbmRsZXJFeGlzdDtcclxuICAgICAgY29uc3QgaXNFeGlzdEZvcm1sZXNzTWVzc2FnZSA9IGJpek1lc3NhZ2VzICYmIGJpek1lc3NhZ2VzLmxlbmd0aCA+IDAgfHwgZmFsc2U7XHJcbiAgICAgIGNvbnN0IG5lZWRUaHJvd0V4Y2VwdGlvbiA9ICEoZXJyb3IgJiYgZXJyb3IuZXJyb3IgJiYgZXJyb3IuZXJyb3IuZXh0ZW5zaW9uTWVzc2FnZSAmJiBCYWNrRW5kTWVzc2FnZVV0aWwuaXNCYWNrRW5kTWVzc2FnZUhhbmRsZXJFeGlzdCh0aGlzLnJlcG9zaXRvcnkuZ2V0SW5qZWN0b3IoKSkgJiYgIWlzRXhpc3RGb3JtbGVzc01lc3NhZ2UpO1xyXG4gICAgICBjb25zdCB3aWxsVGhyb3dFeGNlcHRpb24gPSAhIXRoaXMuZXZlbnRCdXMgJiYgaXNFeGNlcHRpb25IYW5kbGVyRXhpc3QgJiYgbmVlZFRocm93RXhjZXB0aW9uO1xyXG4gICAgICBCYWNrRW5kTWVzc2FnZVV0aWwuaGFuZGxlTWVzc2FnZShtZXNzYWdlcywgdGhpcy5yZXBvc2l0b3J5LmdldEluamVjdG9yKCksIHsgaGFzVGhyb3dFcnJvcjogd2lsbFRocm93RXhjZXB0aW9uLCBpc0V4Y2VwdGlvbjogdHJ1ZSwgZXZlbnRCdXM6IHRoaXMuZXZlbnRCdXMsIGVycm9yLCBmb3JtQXBwQ29udGV4dCB9KTtcclxuICAgICAgaWYgKCEhdGhpcy5ldmVudEJ1cyAmJiBpc0V4Y2VwdGlvbkhhbmRsZXJFeGlzdCkge1xyXG4gICAgICAgIGlmIChSZXNwb25zZUluZm9VdGlsLmlzUmVwb3J0ZWQ0MDFFcnJvcihlcnJvcikpIHtcclxuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG5lZWRUaHJvd0V4Y2VwdGlvbikge1xyXG4gICAgICAgICAgdGhpcy5ldmVudEJ1cy5wb3N0KCdFeGNlcHRpb24nLCAnJywgJ29uRXhjZXB0aW9uJywgZXJyb3IsIGZvcm1BcHBDb250ZXh0KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGlnbm9yZUVycm9yKSB7XHJcbiAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiBFTVBUWTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIH1cclxuICAvLyAjZW5kcmVnaW9uXHJcblxyXG5cclxuICAvLyAjcmVnaW9uIOW3peWFt+aWueazlVxyXG5cclxuICAvKipcclxuICAgKiDmuIXnqbpMb2FkaW5nXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBjbGVhckxvYWRpbmcoKTogdm9pZCB7XHJcbiAgICBjb25zdCBpZkxvYWRpbmdFeGlzdHMgPSB3aW5kb3dbJ0RFVktJVF9MT0FESU5HX1NFUlZJQ0UnXSAmJlxyXG4gICAgICB3aW5kb3dbJ0RFVktJVF9MT0FESU5HX1NFUlZJQ0UnXSBpbnN0YW5jZW9mIEFycmF5ICYmXHJcbiAgICAgIHdpbmRvd1snREVWS0lUX0xPQURJTkdfU0VSVklDRSddLmxlbmd0aCA+IDAgfHwgZmFsc2U7XHJcblxyXG4gICAgaWYgKGlmTG9hZGluZ0V4aXN0cyA9PT0gZmFsc2UpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGxvYWRpbmdTZXJ2aWNlczogYW55W10gPSB3aW5kb3dbJ0RFVktJVF9MT0FESU5HX1NFUlZJQ0UnXTtcclxuICAgIGZvciAoY29uc3Qgc2VydmljZSBvZiBsb2FkaW5nU2VydmljZXMpIHtcclxuICAgICAgaWYgKHR5cGVvZiAoc2VydmljZS5jbGVhckFsbCkgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICBzZXJ2aWNlLmNsZWFyQWxsKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOWkhOeQhui/lOWbnuWAvO+8jOWFvOWuueiAgeeJiOacrFxyXG4gICAqL1xyXG4gIHByaXZhdGUgdW5XcmFwUmVzcG9uc2VJbmZvKHJlc3VsdDogYW55KTogYW55IHtcclxuICAgIHJldHVybiBSZXNwb25zZUluZm9VdGlsLnVuV3JhcFJlc3BvbnNlSW5mbyhyZXN1bHQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5piv5ZCm5bim5pyJUmVxdWVzdEluZm9cclxuICAgKi9cclxuICBwcml2YXRlIGhhc1JlcXVlc3RJbmZvKG9wdGlvbnM6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIFJlcXVlc3RJbmZvVXRpbC5oYXNSZXF1ZXN0SW5mb1dpdGhSKG9wdGlvbnMpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiDmmK/lkKbluKbmnIlyZXF1ZXN0SW5mb1xyXG4gICAqL1xyXG4gIHByaXZhdGUgZXhpc3RSZXF1ZXN0SW5mbyhvcHRpb25zOiBhbnkpIHtcclxuICAgIHJldHVybiBSZXF1ZXN0SW5mb1V0aWwuaGFzUmVxdWVzdEluZm8ob3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDmnoTpgKBIdHRwUGFyYW1z5a+56LGhXHJcbiAgICogQHBhcmFtIHBhcmFtcyDor7fmsYLlj4LmlbBcclxuICAgKi9cclxuICBwcml2YXRlIGJ1aWxkUGFyYW1zKHBhcmFtczogYW55KTogSHR0cFBhcmFtcyB7XHJcbiAgICByZXR1cm4gSHR0cFBhcmFtVXRpbC5idWlsZFBhcmFtcyhwYXJhbXMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5p6E6YCg5bimUmVxdWVzdEluZm/nmoRCb2R577yI6YCC55So5LqO5aSa5Liq5Y+C5pWw55qE5oOF5Ya177yM5aaC5p6c5Y+q5pyJ5LiA5LiqUmVxdWVzdEluZm/lj4LmlbDvvIxib2R5PVJlcXVlc3RJbmZv77yJXHJcbiAgICogQGJvZHkg5pyq5pC65bimUmVxdWVzdEluZm/nmoRib2R577yM5qC85byP5b2i5aaCOiB7a2V5MTogdmFsdWUxLCBrZXkyOiB2YWx1ZTJ9XHJcbiAgICovXHJcbiAgcHVibGljIGJ1aWxkQm9keVdpdGhSZXF1ZXN0SW5mbyhib2R5OiBhbnkpOiBhbnkge1xyXG4gICAgcmV0dXJuIFJlcXVlc3RJbmZvVXRpbC5idWlsZEJvZHlXaXRoUmVxdWVzdEluZm8oYm9keSwgdGhpcy5yZXBvc2l0b3J5KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOaehOmAoFJlcXVlc3RJbmZvXHJcbiAgICovXHJcbiAgcHVibGljIGJ1aWxkUmVxdWVzdEluZm8oKTogUmVxdWVzdEluZm8ge1xyXG4gICAgcmV0dXJuIFJlcXVlc3RJbmZvVXRpbC5idWlsZFJlcXVlc3RJbmZvKHRoaXMucmVwb3NpdG9yeSk7XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uXHJcblxyXG59XHJcblxyXG5leHBvcnQgeyBCZWZSZXN0U2VydmljZSB9O1xyXG5cclxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVmX3Jlc3Rfc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BmYXJyaXMvYmVmLyIsInNvdXJjZXMiOlsibGliL2JlZl9yZXN0X3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFPQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQTJCLE1BQU0sc0JBQXNCLENBQUM7QUFDM0UsT0FBTyxFQUFjLFVBQVUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRSxPQUFPLEVBQVUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVwRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7TUFFNUQsR0FBRyxHQUFHLEtBQUs7O01BQ1gs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Q0FBQztJQUNqRCxDQUFDOzs7Ozs7O0lBTU8sV0FBVyxDQUFDLE1BQVc7UUFDN0IsT0FBTyxhQUFhLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzNDLENBQUM7Ozs7Ozs7SUFNTSx3QkFBd0IsQ0FBQyxJQUFTO1FBQ3ZDLE9BQU8sZUFBZSxDQUFDLHdCQUF3QixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDekUsQ0FBQzs7Ozs7SUFLTSxnQkFBZ0I7UUFDckIsT0FBTyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzNELENBQUM7OztZQTdiRixVQUFVOzs7O1lBMUJGLFVBQVU7O1lBTVYsdUJBQXVCO1lBRHZCLGFBQWE7WUFGTCxRQUFROzs7Ozs7O0lBMEJ2QixvQ0FBMEM7Ozs7OztJQUsxQyxvQ0FBK0I7Ozs7O0lBQy9CLHFDQUFpQzs7Ozs7SUFLakMsd0NBQXlDOzs7OztJQUt6QyxpQ0FBdUI7Ozs7O0lBS3ZCLGtDQUEwQjs7QUEyYTVCLE9BQU8sRUFBRSxjQUFjLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIEBBdXRob3I6IFdpdHRcclxuICogQERhdGU6IDIwMTktMDItMjMgMTM6NTc6NDdcclxuICogQExhc3QgTW9kaWZpZWQgYnk6IGFhbGl6endlbGxcclxuICogQExhc3QgTW9kaWZpZWQgdGltZTogMjAxOS0wOS0yNCAxNDoxMDo0MFxyXG4gKi9cclxuXHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIHRocm93RXJyb3IsIG9mLCBFTVBUWSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBzd2l0Y2hNYXAsIG1hcCwgY2F0Y2hFcnJvciwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBFbnRpdHksIEV2ZW50QnVzIH0gZnJvbSAnQGZhcnJpcy9kZXZraXQnO1xyXG5pbXBvcnQgeyBIdHRwSGVhZGVyVXRpbCwgSHR0cFBhcmFtVXRpbCwgUmVxdWVzdEluZm9VdGlsLCBSZXNwb25zZUluZm9VdGlsIH0gZnJvbSAnLi91dGlscy9pbmRleCc7XHJcbmltcG9ydCB7IEJlZlJlcG9zaXRvcnkgfSBmcm9tICcuL2JlZl9yZXBvc2l0b3J5JztcclxuaW1wb3J0IHsgRnJhbWV3b3JrU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuL2ZyYW1ld29ya19zZXNzaW9uX3NlcnZpY2UnO1xyXG5pbXBvcnQgeyBCZWZTZXNzaW9uU2VydmljZSB9IGZyb20gJy4vc2Vzc2lvbi9pbmRleCc7XHJcbmltcG9ydCB7IENoYW5nZURldGFpbCwgUmVxdWVzdEluZm8sIFJlc3BvbnNlSW5mbyB9IGZyb20gJy4vdHlwZXMnO1xyXG5pbXBvcnQgeyBCZWZQcm94eSB9IGZyb20gJy4vYmVmX3Byb3h5JztcclxuaW1wb3J0IHsgVXJpU2VydmljZSB9IGZyb20gJy4vdXJpX3NlcnZpY2UnO1xyXG5pbXBvcnQgeyBCZWZQcm94eUV4dGVuZCB9IGZyb20gJy4vYmVmX3Byb3h5X2V4dGVuZCc7XHJcbmltcG9ydCB7IEh0dHBTZXJ2aWNlIH0gZnJvbSAnLi9odHRwX3NlcnZpY2UnO1xyXG5pbXBvcnQgeyBCYWNrRW5kTWVzc2FnZVV0aWwgfSBmcm9tICcuL3V0aWxzL2JhY2tfZW5kX21lc3NhZ2UudXRpbCc7XHJcbmltcG9ydCB7IEJlZlNlc3Npb25NYW5hZ2VyIH0gZnJvbSAnLi9zZXNzaW9uL2JlZl9zZXNzaW9uX21hbmFnZXInO1xyXG5cclxuY29uc3QgR0VUID0gJ0dFVCc7XHJcbmNvbnN0IERFTEVURSA9ICdERUxFVEUnO1xyXG5jb25zdCBQVVQgPSAnUFVUJztcclxuY29uc3QgUE9TVCA9ICdQT1NUJztcclxuY29uc3QgUEFUQ0ggPSAnUEFUQ0gnO1xyXG5cclxuLyoqXHJcbiAqIEJFRuWPluaVsOacjeWKoVxyXG4gKiDor6XmnI3liqHnlLFCZWZSZXBvc2l0b3J55a6e5L6L5YyW77yM5LiN5YGa5rOo5YWl77yM5q+P5LiqQmVmUmVwb3NpdG9yeeaLpeacieS4gOS4qkJlZlJlc3RTZXJ2aWNl5a6e5L6L44CCXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmNsYXNzIEJlZlJlc3RTZXJ2aWNlIHtcclxuXHJcbiAgcHJpdmF0ZSByZXBvc2l0b3J5OiBCZWZSZXBvc2l0b3J5PEVudGl0eT47XHJcblxyXG4gIC8qKlxyXG4gICAqIGh0dHBDbGllbnRcclxuICAgKi9cclxuICBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQ7XHJcbiAgcHJpdmF0ZSBodHRwU2VydmljZTogSHR0cFNlcnZpY2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIOS8muivneacjeWKoVxyXG4gICAqL1xyXG4gIHB1YmxpYyBzZXNzaW9uU2VydmljZTogQmVmU2Vzc2lvblNlcnZpY2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIOaOpeWPo+aguVVyaVxyXG4gICAqL1xyXG4gIHB1YmxpYyBiYXNlVXJpOiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIOS6i+S7tuaAu+e6v1xyXG4gICAqL1xyXG4gIHB1YmxpYyBldmVudEJ1czogRXZlbnRCdXM7XHJcblxyXG4gIC8qKlxyXG4gICAqIOaehOmAoOWHveaVsFxyXG4gICAqIEBwYXJhbSBodHRwQ2xpZW50IGh0dHDmnI3liqFcclxuICAgKiBAcGFyYW0gc2VydmVyVXJpIOW6lOeUqOacjeWKoeWZqOWcsOWdgFxyXG4gICAqIEBwYXJhbSBiZVVyaSBCRSBBUEnlnLDlnYBcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsIGJhc2VVcmk6IHN0cmluZyxcclxuICAgIGZybVNlc3Npb25TZXJ2aWNlOiBGcmFtZXdvcmtTZXNzaW9uU2VydmljZSxcclxuICAgIHJlcG9zaXRvcnk6IEJlZlJlcG9zaXRvcnk8RW50aXR5PixcclxuICAgIGV2ZW50QnVzPzogRXZlbnRCdXNcclxuICApIHtcclxuICAgIHRoaXMuaHR0cENsaWVudCA9IGh0dHBDbGllbnQ7XHJcbiAgICB0aGlzLmh0dHBTZXJ2aWNlID0gbmV3IEh0dHBTZXJ2aWNlKHRoaXMuaHR0cENsaWVudCk7XHJcbiAgICB0aGlzLmJhc2VVcmkgPSBiYXNlVXJpO1xyXG4gICAgY29uc3QgaW5qZWN0b3IgPSByZXBvc2l0b3J5LmdldEluamVjdG9yKCk7XHJcbiAgICB0aGlzLnNlc3Npb25TZXJ2aWNlID0gbmV3IEJlZlNlc3Npb25TZXJ2aWNlKGh0dHBDbGllbnQsIGJhc2VVcmksIGZybVNlc3Npb25TZXJ2aWNlLCBpbmplY3Rvcik7XHJcbiAgICB0aGlzLnJlcG9zaXRvcnkgPSByZXBvc2l0b3J5O1xyXG4gICAgdGhpcy5ldmVudEJ1cyA9IGV2ZW50QnVzO1xyXG4gIH1cclxuXHJcblxyXG4gIC8vICNyZWdpb24g5Luj55CG55u45YWzXHJcblxyXG4gIC8qKlxyXG4gICAqIOiOt+WPlkJlZuS7o+eQhlxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXQgcHJveHkoKTogQmVmUHJveHkge1xyXG4gICAgaWYgKCEhdGhpcy5yZXBvc2l0b3J5LnByb3h5KSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnJlcG9zaXRvcnkucHJveHk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5jcmVhdGVCZWZQcm94eSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5Yib5bu6QmVm5Luj55CGXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBjcmVhdGVCZWZQcm94eSgpIHtcclxuICAgIGNvbnN0IHNlcnZlclVyaSA9IHRoaXMucmVwb3NpdG9yeS5zZXJ2ZXJVcmk7XHJcbiAgICBjb25zdCB1cmlTZXJ2aWNlID0gbmV3IFVyaVNlcnZpY2Uoc2VydmVyVXJpKTtcclxuICAgIGNvbnN0IGRlZmF1bHRQcm94eSA9IG5ldyBCZWZQcm94eSh0aGlzLmh0dHBDbGllbnQsIHVyaVNlcnZpY2UpO1xyXG4gICAgZGVmYXVsdFByb3h5LnNldEJhc2VVcmkodGhpcy5iYXNlVXJpKTtcclxuICAgIGNvbnN0IGV4dGVuZCA9IG5ldyBCZWZQcm94eUV4dGVuZCh0aGlzLnJlcG9zaXRvcnkpO1xyXG4gICAgZGVmYXVsdFByb3h5LnNldFByb3h5RXh0ZW5kKGV4dGVuZCk7XHJcbiAgICByZXR1cm4gZGVmYXVsdFByb3h5O1xyXG4gIH1cclxuXHJcbiAgLy8gI2VuZHJlZ2lvblxyXG5cclxuXHJcbiAgLy8gI3JlZ2lvbiDln7rmnKxDUlVE5pa55rOVXHJcblxyXG4gIC8qKlxyXG4gICAqIOW3suW6n+W8g++8jOivt+S9v+eUqHJlcG9zaXRvcnkucHJveHnlr7nlupTmlrnms5Xku6Pmm79cclxuICAgKiBAZGVwcmVjYXRlZFxyXG4gICAqL1xyXG4gIHB1YmxpYyBxdWVyeShlbnRpdHlGaWx0ZXI/OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMucHJveHkucXVlcnkoZW50aXR5RmlsdGVyKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOW3suW6n+W8g++8jOivt+S9v+eUqHJlcG9zaXRvcnkucHJveHnlr7nlupTmlrnms5Xku6Pmm79cclxuICAgKiBAZGVwcmVjYXRlZFxyXG4gICAqL1xyXG4gIHB1YmxpYyBleHRlbmRRdWVyeShlbnRpdHlGaWx0ZXI6IGFueSwgcmVxdWVzdEluZm86IFJlcXVlc3RJbmZvKTogT2JzZXJ2YWJsZTxSZXNwb25zZUluZm8+IHtcclxuICAgIHJldHVybiB0aGlzLnByb3h5LmV4dGVuZFF1ZXJ5KGVudGl0eUZpbHRlciwgcmVxdWVzdEluZm8pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiDliIbpobXmn6Xor6LlkITku47ooajmlbDmja5cclxuICAgKiBAcGFyYW0gaWQg5Li76KGoaWRcclxuICAgKiBAcGFyYW0gcmV0cmlldmVQYXJhbSDlj4LmlbBcclxuICAgKi9cclxuICBwdWJsaWMgc2VydmljZVJldHJpZXZlKGlkOiBzdHJpbmcsIHJldHJpZXZlUGFyYW06IGFueSwgcmVxdWVzdEluZm86IFJlcXVlc3RJbmZvKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLnByb3h5LnNlcnZpY2VSZXRyaWV2ZShpZCwgcmV0cmlldmVQYXJhbSwgcmVxdWVzdEluZm8pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiDliIbpobXmn6Xor6Lku47ooagv5LuO5LuO6KGo5pWw5o2uXHJcbiAgICogQHBhcmFtIHBhcmFtcyDmn6Xor6Llj4LmlbBcclxuICAgKi9cclxuICBwdWJsaWMgcXVlcnlDaGlsZChwYXJhbXM6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMucHJveHkucXVlcnlDaGlsZChwYXJhbXMpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiDlt7Llup/lvIPvvIzor7fkvb/nlKhyZXBvc2l0b3J5LnByb3h55a+55bqU5pa55rOV5Luj5pu/XHJcbiAgICogQGRlcHJlY2F0ZWRcclxuICAgKi9cclxuICBwdWJsaWMgcmV0cmlldmUoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5wcm94eS5yZXRyaWV2ZShpZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDlt7Llup/lvIPvvIzor7fkvb/nlKhyZXBvc2l0b3J5LnByb3h55a+55bqU5pa55rOV5Luj5pu/XHJcbiAgICogQGRlcHJlY2F0ZWRcclxuICAgKi9cclxuICBwdWJsaWMgZXh0ZW5kUmV0cmlldmUoaWQ6IHN0cmluZywgcmVxdWVzdEluZm86IFJlcXVlc3RJbmZvKTogT2JzZXJ2YWJsZTxSZXNwb25zZUluZm8+IHtcclxuICAgIHJldHVybiB0aGlzLnByb3h5LmV4dGVuZFJldHJpZXZlKGlkLCByZXF1ZXN0SW5mbyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDlt7Llup/lvIPvvIzor7fkvb/nlKhyZXBvc2l0b3J5LnByb3h55a+55bqU5pa55rOV5Luj5pu/XHJcbiAgICogQGRlcHJlY2F0ZWRcclxuICAgKi9cclxuICBwdWJsaWMgY3JlYXRlKGRlZmF1bHRWYWx1ZT86IGFueSwgcmVxdWVzdEluZm8/OiBSZXF1ZXN0SW5mbyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5wcm94eS5jcmVhdGUoZGVmYXVsdFZhbHVlLCByZXF1ZXN0SW5mbyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDlt7Llup/lvIPvvIzor7fkvb/nlKhyZXBvc2l0b3J5LnByb3h55a+55bqU5pa55rOV5Luj5pu/XHJcbiAgICogQGRlcHJlY2F0ZWRcclxuICAgKi9cclxuICBwdWJsaWMgY3JlYXRlQnlQYXRoKGZwYXRoOiBzdHJpbmcsIHJlcXVlc3RJbmZvPzogUmVxdWVzdEluZm8pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMucHJveHkuY3JlYXRlQnlQYXRoKGZwYXRoLCByZXF1ZXN0SW5mbyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDlt7Llup/lvIPvvIzor7fkvb/nlKhyZXBvc2l0b3J5LnByb3h55a+55bqU5pa55rOV5Luj5pu/XHJcbiAgICogQGRlcHJlY2F0ZWRcclxuICAgKi9cclxuICB1cGRhdGUoY2hhbmdlRGV0YWlsOiBDaGFuZ2VEZXRhaWwsIHJlcXVlc3RJbmZvPzogUmVxdWVzdEluZm8pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMucHJveHkudXBkYXRlKGNoYW5nZURldGFpbCwgcmVxdWVzdEluZm8pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5bey5bqf5byD77yM6K+35L2/55SocmVwb3NpdG9yeS5wcm94eeWvueW6lOaWueazleS7o+abv1xyXG4gICAqIEBkZXByZWNhdGVkXHJcbiAgICovXHJcbiAgcHVibGljIHNhdmUocmVxdWVzdEluZm8/OiBSZXF1ZXN0SW5mbyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5wcm94eS5zYXZlKHJlcXVlc3RJbmZvKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOW3suW6n+W8g++8jOivt+S9v+eUqHJlcG9zaXRvcnkucHJveHnlr7nlupTmlrnms5Xku6Pmm79cclxuICAgKiBAZGVwcmVjYXRlZFxyXG4gICAqL1xyXG4gIHB1YmxpYyBkZWxldGUoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5wcm94eS5kZWxldGUoaWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5bey5bqf5byD77yM6K+35L2/55SocmVwb3NpdG9yeS5wcm94eeWvueW6lOaWueazleS7o+abv1xyXG4gICAqIEBkZXByZWNhdGVkXHJcbiAgICovXHJcbiAgcHVibGljIGV4dGVuZERlbGV0ZShpZDogc3RyaW5nLCByZXF1ZXN0SW5mbzogUmVxdWVzdEluZm8pOiBPYnNlcnZhYmxlPFJlc3BvbnNlSW5mbz4ge1xyXG4gICAgcmV0dXJuIHRoaXMucHJveHkuZXh0ZW5kRGVsZXRlKGlkLCByZXF1ZXN0SW5mbyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDlt7Llup/lvIPvvIzor7fkvb/nlKhyZXBvc2l0b3J5LnByb3h55a+55bqU5pa55rOV5Luj5pu/XHJcbiAgICogQGRlcHJlY2F0ZWRcclxuICAgKi9cclxuICBwdWJsaWMgZGVsZXRCeVBhdGgoZnBhdGg6IHN0cmluZywgaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5wcm94eS5kZWxldEJ5UGF0aChmcGF0aCwgaWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5bey5bqf5byD77yM6K+35L2/55SocmVwb3NpdG9yeS5wcm94eeWvueW6lOaWueazleS7o+abv1xyXG4gICAqIEBkZXByZWNhdGVkXHJcbiAgICovXHJcbiAgcHVibGljIGV4dGVuZERlbGV0QnlQYXRoKGZwYXRoOiBzdHJpbmcsIGlkOiBzdHJpbmcsIHJlcXVlc3RJbmZvOiBSZXF1ZXN0SW5mbyk6IE9ic2VydmFibGU8UmVzcG9uc2VJbmZvPiB7XHJcbiAgICByZXR1cm4gdGhpcy5wcm94eS5leHRlbmREZWxldEJ5UGF0aChmcGF0aCwgaWQsIHJlcXVlc3RJbmZvKTtcclxuICB9XHJcbiAgcHVibGljIGJhdGNoRGVsZXRlQnlQYXRoKGZQYXRoOiBzdHJpbmcsIGlkczogc3RyaW5nLCByZXF1ZXN0SW5mbzogUmVxdWVzdEluZm8pOiBPYnNlcnZhYmxlPFJlc3BvbnNlSW5mbz4ge1xyXG4gICAgcmV0dXJuIHRoaXMucHJveHkuYmF0Y2hEZWxldGVCeVBhdGgoZlBhdGgsIGlkcywgcmVxdWVzdEluZm8pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiDlt7Llup/lvIPvvIzor7fkvb/nlKhyZXBvc2l0b3J5LnByb3h55a+55bqU5pa55rOV5Luj5pu/XHJcbiAgICogQGRlcHJlY2F0ZWRcclxuICAgKi9cclxuICBwdWJsaWMgYmF0Y2hEZWxldGUoaWRzOiBzdHJpbmdbXSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5wcm94eS5iYXRjaERlbGV0ZShpZHMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5bey5bqf5byD77yM6K+35L2/55SocmVwb3NpdG9yeS5wcm94eeWvueW6lOaWueazleS7o+abv1xyXG4gICAqIEBkZXByZWNhdGVkXHJcbiAgICovXHJcbiAgcHVibGljIGV4dGVuZEJhdGNoRGVsZXRlKGlkczogc3RyaW5nW10sIHJlcXVlc3RJbmZvOiBSZXF1ZXN0SW5mbyk6IE9ic2VydmFibGU8UmVzcG9uc2VJbmZvPiB7XHJcbiAgICByZXR1cm4gdGhpcy5wcm94eS5leHRlbmRCYXRjaERlbGV0ZShpZHMsIHJlcXVlc3RJbmZvKTtcclxuICB9XHJcblxyXG5cclxuICAvKipcclxuICAgKiDlt7Llup/lvIPvvIzor7fkvb/nlKhyZXBvc2l0b3J5LnByb3h55a+55bqU5pa55rOV5Luj5pu/XHJcbiAgICogQGRlcHJlY2F0ZWRcclxuICAgKi9cclxuICBwdWJsaWMgY2FuY2VsKG9wdGlvbnM/OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMucHJveHkuY2FuY2VsKG9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgLy8gI2VuZHJlZ2lvblxyXG5cclxuXHJcbiAgLy8gI3JlZ2lvbiByZXF1ZXN05pa55rOVXHJcblxyXG4gIC8qKlxyXG4gICAqIOW3suW6n+W8g++8jOivt+S9v+eUqHJlcG9zaXRvcnkucHJveHnlr7nlupTmlrnms5Xku6Pmm79cclxuICAgKiBAZGVwcmVjYXRlZFxyXG4gICAqL1xyXG4gIHB1YmxpYyByZXF1ZXN0KFxyXG4gICAgdXJsOiBzdHJpbmcsIG1ldGhvZDogc3RyaW5nLCBwYXJhbXM/OiBhbnksIG9wdGlvbnM/OiBhbnksXHJcbiAgICBzZWxmSGFuZEVycm9yPzogYm9vbGVhbiwgaWdub3JlRXJyb3I/OiBib29sZWFuLCBpZ25vcmVDaGFuZ2VzPzogYm9vbGVhblxyXG4gICk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5pbm5lclJlcXVlc3QodXJsLCBtZXRob2QsIHBhcmFtcywgb3B0aW9ucywgc2VsZkhhbmRFcnJvciwgaWdub3JlRXJyb3IsIGlnbm9yZUNoYW5nZXMsIGZhbHNlKTtcclxuICB9XHJcbiAgLy8gdHNsaW50OmRpc2FibGU6IGFsaWduXHJcblxyXG4gIC8qKlxyXG4gICAqIOiwg+eUqOWQjuerr+aWueazlVxyXG4gICAqIEBwYXJhbSB1cmwgdXJsXHJcbiAgICogQHBhcmFtIG1ldGhvZCBtZXRob2RcclxuICAgKiBAcGFyYW0gcGFyYW1zIHBhcmFtc1xyXG4gICAqIEBwYXJhbSBvcHRpb25zIG9wdGlvbnNcclxuICAgKiBAcGFyYW0gc2VsZkhhbmRFcnJvciDoh6rlt7HlpITnkIblvILluLhcclxuICAgKiBAcGFyYW0gaWdub3JlRXJyb3Ig5b+955Wl6ZSZ6K+vXHJcbiAgICogQHBhcmFtIGlnbm9yZUNoYW5nZXMg5b+955Wl5Y+Y5pu0XHJcbiAgICovXHJcbiAgcHVibGljIGludm9rZSh1cmw6IHN0cmluZywgbWV0aG9kOiBzdHJpbmcsIHBhcmFtcz86IGFueSwgb3B0aW9ucz86IGFueSxcclxuICAgIHNlbGZIYW5kRXJyb3I/OiBib29sZWFuLCBpZ25vcmVFcnJvcj86IGJvb2xlYW4sIGlnbm9yZUNoYW5nZXM/OiBib29sZWFuKSB7XHJcbiAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLmJvZHkgJiYgb3B0aW9ucy5ib2R5LlJlcXVlc3RJbmZvKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcign6K+35L2/55SocmVxdWVzdEluZm/mj5DkuqTlj5jmm7QnKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmlubmVyUmVxdWVzdCh1cmwsIG1ldGhvZCwgcGFyYW1zLCBvcHRpb25zLCBzZWxmSGFuZEVycm9yLCBpZ25vcmVFcnJvciwgaWdub3JlQ2hhbmdlcywgdHJ1ZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDlhoXpg6jnmoRyZXF1ZXN05pa55rOVXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBpbm5lclJlcXVlc3QoXHJcbiAgICB1cmw6IHN0cmluZywgbWV0aG9kOiBzdHJpbmcsIHBhcmFtcz86IGFueSwgb3B0aW9ucz86IGFueSxcclxuICAgIHNlbGZIYW5kRXJyb3I/OiBib29sZWFuLCBpZ25vcmVFcnJvcj86IGJvb2xlYW4sIGlnbm9yZUNoYW5nZXM/OiBib29sZWFuLFxyXG4gICAgdXNlQ29ycmVjdFJlcXVlc3RJbmZvQ2hlY2tNZXRob2Q/OiBib29sZWFuXHJcbiAgKSB7XHJcbiAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcclxuICAgIGNvbnN0IGJlZlNlc3Npb25JZEtleSA9ICdCRUZTZXNzaW9uSUQnO1xyXG5cclxuICAgIC8vIOaYr+WQpuiHquW3seWkhOeQhuW8guW4uFxyXG4gICAgaWYgKHR5cGVvZiAoc2VsZkhhbmRFcnJvcikgPT09ICd1bmRlZmluZWQnIHx8IHR5cGVvZiAoc2VsZkhhbmRFcnJvcikgIT09ICdib29sZWFuJykge1xyXG4gICAgICBzZWxmSGFuZEVycm9yID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgLy8g5piv5ZCm5b+955Wl5byC5bi457un57ut5omn6KGMXHJcbiAgICBpZiAodHlwZW9mIChpZ25vcmVFcnJvcikgPT09ICd1bmRlZmluZWQnIHx8IHR5cGVvZiAoaWdub3JlRXJyb3IpICE9PSAnYm9vbGVhbicpIHtcclxuICAgICAgaWdub3JlRXJyb3IgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyDpgInmi6nmo4Dmn6VSZXF1ZXN0SW5mb+eahOaWueazlVxyXG4gICAgaWYgKHR5cGVvZiAodXNlQ29ycmVjdFJlcXVlc3RJbmZvQ2hlY2tNZXRob2QpID09PSAndW5kZWZpbmVkJyB8fCB0eXBlb2YgKHVzZUNvcnJlY3RSZXF1ZXN0SW5mb0NoZWNrTWV0aG9kKSAhPT0gJ2Jvb2xlYW4nKSB7XHJcbiAgICAgIHVzZUNvcnJlY3RSZXF1ZXN0SW5mb0NoZWNrTWV0aG9kID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBjb25zdCBjaGVja1JlcXVlc3RJbmZvTWV0aG9kID0gdXNlQ29ycmVjdFJlcXVlc3RJbmZvQ2hlY2tNZXRob2QgPyB0aGlzLmV4aXN0UmVxdWVzdEluZm8gOiB0aGlzLmhhc1JlcXVlc3RJbmZvO1xyXG5cclxuICAgIC8vIHBhcmFtc1xyXG4gICAgaWYgKHBhcmFtcykge1xyXG4gICAgICAvLyBjb25zdCBodHRwUGFyYW1zID0gdGhpcy5idWlsZFBhcmFtcyhwYXJhbXMpO1xyXG4gICAgICBvcHRpb25zLnBhcmFtcyA9IHBhcmFtcztcclxuICAgIH1cclxuXHJcbiAgICAvLyDluKbmnIlyZXF1ZXN0SW5mb+eahOivt+axgu+8jOivt+axguaIkOWKn+WQjua4heepuuWPmOabtOmbhlxyXG4gICAgY29uc3QgaGFzUmVxdWVzdEluZm8gPSBjaGVja1JlcXVlc3RJbmZvTWV0aG9kKG9wdGlvbnMpO1xyXG4gICAgbGV0IGhlYWRlcnMgPSBIdHRwSGVhZGVyVXRpbC5jb252ZXJ0VG9IZWFkZXJzKG9wdGlvbnMuaGVhZGVycyk7XHJcblxyXG4gICAgLy8g5Liy6IGUc2Vzc2lvbua1geWSjGh0dHDmtYFcclxuICAgIGNvbnN0IGZvcm1BcHBDb250ZXh0ID0gdGhpcy5yZXBvc2l0b3J5LmFwcENvbnRleHQuZ2V0Rm9ybUFwcENvbnRleHQoKTtcclxuICAgIHJldHVybiBCZWZTZXNzaW9uTWFuYWdlci5nZXRTZXNzaW9uSWQoZm9ybUFwcENvbnRleHQsIHRoaXMuc2Vzc2lvblNlcnZpY2UpLnBpcGUoXHJcbiAgICAgIHN3aXRjaE1hcCgoc2Vzc2lvbklkOiBzdHJpbmcpID0+IHtcclxuICAgICAgICBoZWFkZXJzID0gdGhpcy5zZXNzaW9uU2VydmljZS5leHRlbmRSZXF1ZXN0SGVhZGVycyhoZWFkZXJzKTtcclxuICAgICAgICBvcHRpb25zLmhlYWRlcnMgPSBIdHRwSGVhZGVyVXRpbC50b0pzb24oaGVhZGVycyk7XHJcbiAgICAgICAgb3B0aW9ucy5vYnNlcnZlID0gJ3Jlc3BvbnNlJztcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5yZXF1ZXN0KG1ldGhvZCwgdXJsLCBvcHRpb25zKTtcclxuICAgICAgfSksXHJcbiAgICAgIHRhcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXNwb25zZS5oZWFkZXJzICYmIHJlc3BvbnNlLmhlYWRlcnMuaGFzKGJlZlNlc3Npb25JZEtleSkpIHtcclxuICAgICAgICAgIHRoaXMuc2Vzc2lvblNlcnZpY2Uuc2V0QmVTZXNzaW9uSWQocmVzcG9uc2UuaGVhZGVycy5nZXQoYmVmU2Vzc2lvbklkS2V5KSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KSxcclxuICAgICAgbWFwKChyZXNwb25zZTogYW55KSA9PiByZXNwb25zZS5ib2R5KSxcclxuICAgICAgbWFwKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IG1lc3NhZ2VzID0gUmVzcG9uc2VJbmZvVXRpbC5wYXJzZUJhY2tFbmRNZXNzYWdlKHJlc3VsdCk7XHJcbiAgICAgICAgQmFja0VuZE1lc3NhZ2VVdGlsLmhhbmRsZU1lc3NhZ2UobWVzc2FnZXMsIHRoaXMucmVwb3NpdG9yeS5nZXRJbmplY3RvcigpKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5oYW5kbGVSZXBvbnNlSW5mbyhyZXN1bHQsIGhhc1JlcXVlc3RJbmZvLCBpZ25vcmVDaGFuZ2VzKTtcclxuICAgICAgfSksXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBhbnkpID0+IHtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlRXJyb3JzKGVycm9yLCBzZWxmSGFuZEVycm9yLCBpZ25vcmVFcnJvcik7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5aSE55CG6L+U5Zue57uT5p6cXHJcbiAgICovXHJcbiAgcHVibGljIGhhbmRsZVJlcG9uc2VJbmZvKHJlc3VsdDogYW55LCBoYXNSZXF1ZXN0SW5mbzogYm9vbGVhbiwgaWdub3JlQ2hhbmdlczogYm9vbGVhbik6IGFueSB7XHJcbiAgICBpZiAoaGFzUmVxdWVzdEluZm8pIHtcclxuICAgICAgLy8g5aaC5p6c5pyJ5bim5pyJUmVxdWVzdEluZm/vvIzliJnmjInmlrDnu5PmnoTlpITnkIZcclxuICAgICAgLy8gMeOAgeW6lOeUqOacjeWKoeWZqOerr+i/lOWbnueahOWPmOabtO+8m1xyXG4gICAgICAvLyAy44CB5riF56m65pys5Zyw5Y+Y5pu06ZuG77ybXHJcbiAgICAgIC8vIDPjgIHov5Tlm57mlrDnu5PmnoRcclxuICAgICAgaWYgKHJlc3VsdCAmJiByZXN1bHQuaW5uZXJEYXRhQ2hhbmdlICYmIGlnbm9yZUNoYW5nZXMgIT09IHRydWUpIHtcclxuICAgICAgICB0aGlzLnJlcG9zaXRvcnkuaGFuZGxlRGF0YUNoYW5nZURldGFpbHMocmVzdWx0LmlubmVyRGF0YUNoYW5nZSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHJlc3VsdCAmJiByZXN1bHQuaW5uZXJWYXJpYWJsZUNoYW5nZSkge1xyXG4gICAgICAgIHRoaXMucmVwb3NpdG9yeS5oYW5kbGVWYXJpYWJsZUNoYW5nZURldGFpbChyZXN1bHQuaW5uZXJWYXJpYWJsZUNoYW5nZSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5yZXBvc2l0b3J5LmNsZWFyQWxsRW50aXR5Q2hhbmdlcygpO1xyXG4gICAgICB0aGlzLnJlcG9zaXRvcnkuY2xlYXJBbGxWYXJpYWJsZUNoYW5nZXMoKTtcclxuICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIOWmguaenOacieayoeaciVJlcXVlc3RJbmZv77yM5YiZ5oyJ6ICB55qE5pa55byP5aSE55CGXHJcbiAgICAgIC8vIDHjgIHkuI3lpITnkIbmnI3liqHlmajnq6/ov5Tlm57nmoTlj5jmm7TvvJrot5/ogIHnmoTooYzkuLrkuIDmoLfvvJtcclxuICAgICAgLy8gMuOAgeS4jea4heeQhuacrOWcsOWPmOabtO+8muWboOS4uuWPmOabtOayoeacieaPkOS6pO+8m1xyXG4gICAgICAvLyAz44CB6L+U5Zue6ICB55qE57uT5p6E77ya5YW85a656ICB55qE5Luj56CBXHJcbiAgICAgIHJldHVybiB0aGlzLnVuV3JhcFJlc3BvbnNlSW5mbyhyZXN1bHQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog6ZSZ6K+v5aSE55CGXHJcbiAgICovXHJcbiAgcHVibGljIGhhbmRsZUVycm9ycyhlcnJvcjogYW55LCBzZWxmSGFuZEVycm9yOiBib29sZWFuLCBpZ25vcmVFcnJvcjogYm9vbGVhbik6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICB0aGlzLmNsZWFyTG9hZGluZygpO1xyXG5cclxuICAgIGlmICghIXNlbGZIYW5kRXJyb3IpIHtcclxuICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgZm9ybUFwcENvbnRleHQgPSB0aGlzLnJlcG9zaXRvcnkuYXBwQ29udGV4dC5nZXRGb3JtQXBwQ29udGV4dCgpO1xyXG4gICAgICBjb25zdCBhcHBsaWNhdGlvbklkID0gZm9ybUFwcENvbnRleHQuQXBwbGljYXRpb25JZDtcclxuICAgICAgY29uc3QgYXBwbGljYXRpb25Db250ZXh0OiBhbnkgPSB3aW5kb3dbYXBwbGljYXRpb25JZF0gfHwge307XHJcbiAgICAgIGNvbnN0IG1lc3NhZ2VzID0gUmVzcG9uc2VJbmZvVXRpbC5wYXJzZUJhY2tFbmRFcnJvcihlcnJvcik7XHJcbiAgICAgIGNvbnN0IGJpek1lc3NhZ2VzID0gQmFja0VuZE1lc3NhZ2VVdGlsLmdldEZvcm1sZXNzTWVzc2FnZXMobWVzc2FnZXMpO1xyXG4gICAgICBjb25zdCBpc0V4Y2VwdGlvbkhhbmRsZXJFeGlzdCA9ICEhYXBwbGljYXRpb25Db250ZXh0LmlzRXhjZXB0aW9uSGFuZGxlckV4aXN0O1xyXG4gICAgICBjb25zdCBpc0V4aXN0Rm9ybWxlc3NNZXNzYWdlID0gYml6TWVzc2FnZXMgJiYgYml6TWVzc2FnZXMubGVuZ3RoID4gMCB8fCBmYWxzZTtcclxuICAgICAgY29uc3QgbmVlZFRocm93RXhjZXB0aW9uID0gIShlcnJvciAmJiBlcnJvci5lcnJvciAmJiBlcnJvci5lcnJvci5leHRlbnNpb25NZXNzYWdlICYmIEJhY2tFbmRNZXNzYWdlVXRpbC5pc0JhY2tFbmRNZXNzYWdlSGFuZGxlckV4aXN0KHRoaXMucmVwb3NpdG9yeS5nZXRJbmplY3RvcigpKSAmJiAhaXNFeGlzdEZvcm1sZXNzTWVzc2FnZSk7XHJcbiAgICAgIGNvbnN0IHdpbGxUaHJvd0V4Y2VwdGlvbiA9ICEhdGhpcy5ldmVudEJ1cyAmJiBpc0V4Y2VwdGlvbkhhbmRsZXJFeGlzdCAmJiBuZWVkVGhyb3dFeGNlcHRpb247XHJcbiAgICAgIEJhY2tFbmRNZXNzYWdlVXRpbC5oYW5kbGVNZXNzYWdlKG1lc3NhZ2VzLCB0aGlzLnJlcG9zaXRvcnkuZ2V0SW5qZWN0b3IoKSwgeyBoYXNUaHJvd0Vycm9yOiB3aWxsVGhyb3dFeGNlcHRpb24sIGlzRXhjZXB0aW9uOiB0cnVlLCBldmVudEJ1czogdGhpcy5ldmVudEJ1cywgZXJyb3IsIGZvcm1BcHBDb250ZXh0IH0pO1xyXG4gICAgICBpZiAoISF0aGlzLmV2ZW50QnVzICYmIGlzRXhjZXB0aW9uSGFuZGxlckV4aXN0KSB7XHJcbiAgICAgICAgaWYgKFJlc3BvbnNlSW5mb1V0aWwuaXNSZXBvcnRlZDQwMUVycm9yKGVycm9yKSkge1xyXG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobmVlZFRocm93RXhjZXB0aW9uKSB7XHJcbiAgICAgICAgICB0aGlzLmV2ZW50QnVzLnBvc3QoJ0V4Y2VwdGlvbicsICcnLCAnb25FeGNlcHRpb24nLCBlcnJvciwgZm9ybUFwcENvbnRleHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaWdub3JlRXJyb3IpIHtcclxuICAgICAgICAgIHJldHVybiBvZihudWxsKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIEVNUFRZO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgfVxyXG4gIC8vICNlbmRyZWdpb25cclxuXHJcblxyXG4gIC8vICNyZWdpb24g5bel5YW35pa55rOVXHJcblxyXG4gIC8qKlxyXG4gICAqIOa4heepukxvYWRpbmdcclxuICAgKi9cclxuICBwcml2YXRlIGNsZWFyTG9hZGluZygpOiB2b2lkIHtcclxuICAgIGNvbnN0IGlmTG9hZGluZ0V4aXN0cyA9IHdpbmRvd1snREVWS0lUX0xPQURJTkdfU0VSVklDRSddICYmXHJcbiAgICAgIHdpbmRvd1snREVWS0lUX0xPQURJTkdfU0VSVklDRSddIGluc3RhbmNlb2YgQXJyYXkgJiZcclxuICAgICAgd2luZG93WydERVZLSVRfTE9BRElOR19TRVJWSUNFJ10ubGVuZ3RoID4gMCB8fCBmYWxzZTtcclxuXHJcbiAgICBpZiAoaWZMb2FkaW5nRXhpc3RzID09PSBmYWxzZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgbG9hZGluZ1NlcnZpY2VzOiBhbnlbXSA9IHdpbmRvd1snREVWS0lUX0xPQURJTkdfU0VSVklDRSddO1xyXG4gICAgZm9yIChjb25zdCBzZXJ2aWNlIG9mIGxvYWRpbmdTZXJ2aWNlcykge1xyXG4gICAgICBpZiAodHlwZW9mIChzZXJ2aWNlLmNsZWFyQWxsKSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgIHNlcnZpY2UuY2xlYXJBbGwoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5aSE55CG6L+U5Zue5YC877yM5YW85a656ICB54mI5pysXHJcbiAgICovXHJcbiAgcHJpdmF0ZSB1bldyYXBSZXNwb25zZUluZm8ocmVzdWx0OiBhbnkpOiBhbnkge1xyXG4gICAgcmV0dXJuIFJlc3BvbnNlSW5mb1V0aWwudW5XcmFwUmVzcG9uc2VJbmZvKHJlc3VsdCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDmmK/lkKbluKbmnIlSZXF1ZXN0SW5mb1xyXG4gICAqL1xyXG4gIHByaXZhdGUgaGFzUmVxdWVzdEluZm8ob3B0aW9uczogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gUmVxdWVzdEluZm9VdGlsLmhhc1JlcXVlc3RJbmZvV2l0aFIob3B0aW9ucyk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIOaYr+WQpuW4puaciXJlcXVlc3RJbmZvXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBleGlzdFJlcXVlc3RJbmZvKG9wdGlvbnM6IGFueSkge1xyXG4gICAgcmV0dXJuIFJlcXVlc3RJbmZvVXRpbC5oYXNSZXF1ZXN0SW5mbyhvcHRpb25zKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOaehOmAoEh0dHBQYXJhbXPlr7nosaFcclxuICAgKiBAcGFyYW0gcGFyYW1zIOivt+axguWPguaVsFxyXG4gICAqL1xyXG4gIHByaXZhdGUgYnVpbGRQYXJhbXMocGFyYW1zOiBhbnkpOiBIdHRwUGFyYW1zIHtcclxuICAgIHJldHVybiBIdHRwUGFyYW1VdGlsLmJ1aWxkUGFyYW1zKHBhcmFtcyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDmnoTpgKDluKZSZXF1ZXN0SW5mb+eahEJvZHnvvIjpgILnlKjkuo7lpJrkuKrlj4LmlbDnmoTmg4XlhrXvvIzlpoLmnpzlj6rmnInkuIDkuKpSZXF1ZXN0SW5mb+WPguaVsO+8jGJvZHk9UmVxdWVzdEluZm/vvIlcclxuICAgKiBAYm9keSDmnKrmkLrluKZSZXF1ZXN0SW5mb+eahGJvZHnvvIzmoLzlvI/lvaLlpoI6IHtrZXkxOiB2YWx1ZTEsIGtleTI6IHZhbHVlMn1cclxuICAgKi9cclxuICBwdWJsaWMgYnVpbGRCb2R5V2l0aFJlcXVlc3RJbmZvKGJvZHk6IGFueSk6IGFueSB7XHJcbiAgICByZXR1cm4gUmVxdWVzdEluZm9VdGlsLmJ1aWxkQm9keVdpdGhSZXF1ZXN0SW5mbyhib2R5LCB0aGlzLnJlcG9zaXRvcnkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5p6E6YCgUmVxdWVzdEluZm9cclxuICAgKi9cclxuICBwdWJsaWMgYnVpbGRSZXF1ZXN0SW5mbygpOiBSZXF1ZXN0SW5mbyB7XHJcbiAgICByZXR1cm4gUmVxdWVzdEluZm9VdGlsLmJ1aWxkUmVxdWVzdEluZm8odGhpcy5yZXBvc2l0b3J5KTtcclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb25cclxuXHJcbn1cclxuXHJcbmV4cG9ydCB7IEJlZlJlc3RTZXJ2aWNlIH07XHJcblxyXG4iXX0= |
@@ -96,3 +96,3 @@ /** | ||
if (this.isValueEqual(newValue, oldValue) === false) { | ||
this.innerValueMap.set(varName, newValue); | ||
// this.innerValueMap.set(varName, newValue); | ||
this.appendToChangeInfo(changeDetail, varName, newValue); | ||
@@ -114,2 +114,24 @@ } | ||
/** | ||
* 清空vo变量变更集 | ||
* @return {?} | ||
*/ | ||
clearChanges() { | ||
this.ngVariableMap.forEach((/** | ||
* @param {?} ngVariable | ||
* @param {?} varName | ||
* @return {?} | ||
*/ | ||
(ngVariable, varName) => { | ||
/** @type {?} */ | ||
const mapping = ngVariable.mapping; | ||
/** @type {?} */ | ||
const newValue = this.getValueFromUIState(mapping); | ||
/** @type {?} */ | ||
const oldValue = this.innerValueMap.get(varName); | ||
if (this.isValueEqual(newValue, oldValue) === false) { | ||
this.innerValueMap.set(varName, newValue); | ||
} | ||
})); | ||
} | ||
/** | ||
* Append changed variable to ChangeDetail instance. | ||
@@ -255,2 +277,2 @@ * @private | ||
export { BefVariableManager }; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVmX3ZhcmlhYmxlX21hbmFnZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZmFycmlzL2JlZi8iLCJzb3VyY2VzIjpbImxpYi9iZWZfdmFyaWFibGVfbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQU1BLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQVcsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQWdCLE1BQU0sU0FBUyxDQUFDO0FBRXpELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQU1uRCxNQUFNLGtCQUFrQjs7Ozs7OztJQWV0QixZQUFvQixVQUFzQixFQUFVLFdBQWdCLEVBQXNCLFFBQWtCO1FBQXhGLGVBQVUsR0FBVixVQUFVLENBQVk7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBSztRQUFzQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBRTFHLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxHQUFHLEVBQXNCLENBQUM7UUFDbkQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLEdBQUcsRUFBZSxDQUFDO1FBRTVDLFlBQVk7UUFDWixNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE9BQU87Ozs7UUFBQyxDQUFDLFFBQWdCLEVBQUUsRUFBRTtZQUNwRCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDMUQsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOzs7Ozs7SUFLTSxrQkFBa0IsQ0FBQyxZQUEwQjs7Y0FDNUMsVUFBVSxHQUFHLFlBQVksQ0FBQyxVQUFVO1FBQzFDLE1BQU0sQ0FBQyxJQUFJLENB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QUFPLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDM0IsQ0FBQzs7OztZQXhLTSxVQUFVOztZQUlWLFFBQVEsdUJBcUJ3RCxRQUFROzs7Ozs7OztJQVYvRSwyQ0FBK0M7Ozs7OztJQUsvQywyQ0FBd0M7Ozs7O0lBSzVCLHdDQUE4Qjs7Ozs7SUFBRSx5Q0FBd0I7Ozs7O0lBQUUsc0NBQXNDOztBQW9KOUcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBAQXV0aG9yOiBXaXR0XHJcbiAqIEBEYXRlOiAyMDE5LTAzLTA1IDE5OjU1OjQ0XHJcbiAqIEBMYXN0IE1vZGlmaWVkIGJ5OiBXaXR0XHJcbiAqIEBMYXN0IE1vZGlmaWVkIHRpbWU6IDIwMTktMDMtMTMgMjA6MzU6MjlcclxuICovXHJcbmltcG9ydCB7IGZvcm1hdCB9IGZyb20gJ2RhdGUtZm5zJztcclxuaW1wb3J0IHsgQXBwQ29udGV4dCwgRnJhbWVDb250ZXh0LCBVSVN0YXRlIH0gZnJvbSAnQGZhcnJpcy9kZXZraXQnO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRhaWxUeXBlLCBDaGFuZ2VEZXRhaWwgfSBmcm9tICcuL3R5cGVzJztcclxuaW1wb3J0IHsgTmdWYXJpYWJsZSB9IGZyb20gJy4vZGVjb3JhdG9ycyc7XHJcbmltcG9ydCB7IEJlZkNoYW5nZVV0aWwgfSBmcm9tICcuL2JlZl9jaGFuZ2VfdXRpbCc7XHJcbmltcG9ydCB7IEluamVjdG9yLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBCZeWPmOmHj+euoeeQhuWZqFxyXG4gKi9cclxuY2xhc3MgQmVmVmFyaWFibGVNYW5hZ2VyIHtcclxuXHJcbiAgLyoqXHJcbiAgICog5Y+Y6YeP5YWD5pWw5o2uXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBuZ1ZhcmlhYmxlTWFwOiBNYXA8c3RyaW5nLCBOZ1ZhcmlhYmxlPjtcclxuXHJcbiAgLyoqXHJcbiAgICog6K6+572u5YC8XHJcbiAgICovXHJcbiAgcHJpdmF0ZSBpbm5lclZhbHVlTWFwOiBNYXA8c3RyaW5nLCBhbnk+O1xyXG5cclxuICAvKipcclxuICAgKiDmnoTpgKDlh73mlbBcclxuICAgKi9cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFwcENvbnRleHQ6IEFwcENvbnRleHQsIHByaXZhdGUgbmdWYXJpYWJsZXM6IGFueSwgQE9wdGlvbmFsKCkgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuXHJcbiAgICB0aGlzLm5nVmFyaWFibGVNYXAgPSBuZXcgTWFwPHN0cmluZywgTmdWYXJpYWJsZT4oKTtcclxuICAgIHRoaXMuaW5uZXJWYWx1ZU1hcCA9IG5ldyBNYXA8c3RyaW5nLCBhbnk+KCk7XHJcblxyXG4gICAgLy8g6YeN5paw57uE57uH5Y+Y6YeP5YWD5pWw5o2uXHJcbiAgICBPYmplY3Qua2V5cyhuZ1ZhcmlhYmxlcykuZm9yRWFjaCgocHJvcE5hbWU6IHN0cmluZykgPT4ge1xyXG4gICAgICB0aGlzLm5nVmFyaWFibGVNYXAuc2V0KHByb3BOYW1lLCBuZ1ZhcmlhYmxlc1twcm9wTmFtZV0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDojrflj5blj5jmm7Tpm4ZcclxuICAgKi9cclxuICBwdWJsaWMgaGFuZGxlQ2hhbmdlRGV0YWlsKGNoYW5nZURldGFpbDogQ2hhbmdlRGV0YWlsKTogdm9pZCB7XHJcbiAgICBjb25zdCBjaGFuZ2VJbmZvID0gY2hhbmdlRGV0YWlsLkNoYW5nZUluZm87XHJcbiAgICBPYmplY3Qua2V5cyhjaGFuZ2VJbmZvKS5mb3JFYWNoKCh2YXJOYW1lOiBzdHJpbmcpID0+IHtcclxuICAgICAgLy8g5Y+Y6YeP5YWD5pWw5o2uXHJcbiAgICAgIGNvbnN0IG5nVmFyaWFibGUgPSB0aGlzLm5nVmFyaWFibGVNYXAuZ2V0KHZhck5hbWUpO1xyXG4gICAgICBpZiAoIW5nVmFyaWFibGUpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgbWFwcGluZyA9IG5nVmFyaWFibGUubWFwcGluZztcclxuXHJcbiAgICAgIC8vIOabtOaWsFVJU3RhdGXlj5jmm7RcclxuICAgICAgY29uc3QgbmV3VmFsdWUgPSBjaGFuZ2VJbmZvW3Zhck5hbWVdO1xyXG4gICAgICBjb25zdCBvbGRWYWx1ZSA9IHRoaXMuaW5uZXJWYWx1ZU1hcC5nZXQodmFyTmFtZSk7XHJcblxyXG4gICAgICBpZiAob2xkVmFsdWUgPT09IG5ld1ZhbHVlKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIOabtOaWsOWAvFxyXG4gICAgICB0aGlzLnNldFZhbHVlVG9VSVN0YXRlKG1hcHBpbmcsIG5ld1ZhbHVlKTtcclxuICAgICAgdGhpcy5pbm5lclZhbHVlTWFwLnNldCh2YXJOYW1lLCBuZXdWYWx1ZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEJ1aWxkIENoYW5nZURldGFpbCBpbnN0YW5jZSBmb3IgYWxsIHZhcmlhYmxlcy5cclxuICAgKi9cclxuICBwdWJsaWMgYnVpbGRDaGFuZ2VEZXRhaWwoKTogQ2hhbmdlRGV0YWlsIHtcclxuICAgIGNvbnN0IGNoYW5nZURldGFpbCA9IEJlZkNoYW5nZVV0aWwuY3JlYXRlRW1wdHkoQ2hhbmdlRGV0YWlsVHlwZS5Nb2RpZnkpO1xyXG4gICAgdGhpcy5uZ1ZhcmlhYmxlTWFwLmZvckVhY2goKG5nVmFyaWFibGU6IE5nVmFyaWFibGUsIHZhck5hbWU6IHN0cmluZykgPT4ge1xyXG4gICAgICBjb25zdCBtYXBwaW5nID0gbmdWYXJpYWJsZS5tYXBwaW5nO1xyXG4gICAgICBjb25zdCBuZXdWYWx1ZSA9IHRoaXMuZ2V0VmFsdWVGcm9tVUlTdGF0ZShtYXBwaW5nKTtcclxuICAgICAgY29uc3Qgb2xkVmFsdWUgPSB0aGlzLmlubmVyVmFsdWVNYXAuZ2V0KHZhck5hbWUpO1xyXG4gICAgICBpZiAodGhpcy5pc1ZhbHVlRXF1YWwobmV3VmFsdWUsIG9sZFZhbHVlKSA9PT0gZmFsc2UpIHtcclxuICAgICAgICB0aGlzLmlubmVyVmFsdWVNYXAuc2V0KHZhck5hbWUsIG5ld1ZhbHVlKTtcclxuICAgICAgICB0aGlzLmFwcGVuZFRvQ2hhbmdlSW5mbyhjaGFuZ2VEZXRhaWwsIHZhck5hbWUsIG5ld1ZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKE9iamVjdC5rZXlzKGNoYW5nZURldGFpbC5DaGFuZ2VJbmZvKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGNoYW5nZURldGFpbDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENsZWFyIHZhcmlhYmxlIHZhbHVlcyBjYWNoZWQgaW4gdGhlIGlubmVyVmFsdWVNYXAgcHJvcGVydHkuXHJcbiAgICovXHJcbiAgcHVibGljIHJlc2V0KCkge1xyXG4gICAgdGhpcy5pbm5lclZhbHVlTWFwLmNsZWFyKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBcHBlbmQgY2hhbmdlZCB2YXJpYWJsZSB0byBDaGFuZ2VEZXRhaWwgaW5zdGFuY2UuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBhcHBlbmRUb0NoYW5nZUluZm8oY2hhbmdlRGV0YWlsOiBDaGFuZ2VEZXRhaWwsIHZhck5hbWU6IHN0cmluZywgdmFyVmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaXNVZHRWYXJpYWJsZSh2YXJWYWx1ZSkgPT09IHRydWUpIHtcclxuICAgICAgY29uc3QgdWR0VmFyQ2hhbmdlRGV0YWlsID0gQmVmQ2hhbmdlVXRpbC5jcmVhdGVFbXB0eShDaGFuZ2VEZXRhaWxUeXBlLk1vZGlmeSk7XHJcbiAgICAgIHVkdFZhckNoYW5nZURldGFpbC5DaGFuZ2VJbmZvID0gdmFyVmFsdWU7XHJcbiAgICAgIGNoYW5nZURldGFpbC5DaGFuZ2VJbmZvW3Zhck5hbWVdID0gdWR0VmFyQ2hhbmdlRGV0YWlsO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY2hhbmdlRGV0YWlsLkNoYW5nZUluZm9bdmFyTmFtZV0gPSB2YXJWYWx1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOS7jlVJU3RhdGXkuIrojrflj5blgLxcclxuICAgKi9cclxuICBwcml2YXRlIGdldFZhbHVlRnJvbVVJU3RhdGUobWFwcGluZzogc3RyaW5nKTogYW55IHtcclxuICAgIGNvbnN0IHVpU3RhdGUgPSB0aGlzLmdldFJvb3RVSVN0YXRlKCk7XHJcblxyXG4gICAgLy8g6K6h566XdmFsdWVcclxuICAgIGNvbnN0IG1hcHBpbmdBcnJheSA9IG1hcHBpbmcuc3BsaXQoJy4nKTtcclxuICAgIGNvbnN0IHZhbHVlID0gbWFwcGluZ0FycmF5LnJlZHVjZSgoYWNjdW11bGF0b3I6IGFueSwgY3VycmVudFZhbHVlOiBhbnkpID0+IHtcclxuICAgICAgcmV0dXJuIGFjY3VtdWxhdG9yID8gYWNjdW11bGF0b3JbY3VycmVudFZhbHVlXSA6IG51bGw7XHJcbiAgICB9LCB1aVN0YXRlKTtcclxuXHJcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XHJcbiAgICAgIHJldHVybiBmb3JtYXQodmFsdWUsICd5eXl5LU1NLWRkIEhIOm1tOnNzJyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdmFsdWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDojrflj5bmoLnnu4Tku7bkuIrnmoRVSVN0YXRlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBnZXRSb290VUlTdGF0ZSgpOiBVSVN0YXRlIHtcclxuXHJcbiAgICBsZXQgcm9vdEZyYW1lQ29udGV4dCA9IHRoaXMuYXBwQ29udGV4dC5mcmFtZUNvbnRleHRNYW5hZ2VyLmdldFJvb3RGcmFtZUNvbnRleHQoKTtcclxuICAgIGlmICh0aGlzLmluamVjdG9yKSB7XHJcbiAgICAgIGNvbnN0IGZyYW1lQ29udGV4dCA9IHRoaXMuaW5qZWN0b3IuZ2V0PEZyYW1lQ29udGV4dD4oRnJhbWVDb250ZXh0LCBudWxsKTtcclxuICAgICAgaWYgKGZyYW1lQ29udGV4dCkge1xyXG4gICAgICAgIGNvbnN0IHZpcnR1YWxSb290RnJhbWVDb250ZXh0ID0gZnJhbWVDb250ZXh0LmdldFZpcnR1YWxSb290RnJhbWVDb250ZXh0KCk7XHJcbiAgICAgICAgcm9vdEZyYW1lQ29udGV4dCA9IHZpcnR1YWxSb290RnJhbWVDb250ZXh0IHx8IHJvb3RGcmFtZUNvbnRleHQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICghcm9vdEZyYW1lQ29udGV4dCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcm9vdEZyYW1lQ29udGV4dC51aVN0YXRlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5YC85q+U6L6DXHJcbiAgICogQHRvZG8g5Li05pe26YeH55So6L+Z56eN5pa55byPXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBpc1ZhbHVlRXF1YWwoc3JjVmFsdWU6IGFueSwgZHN0VmFsdWU6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHNyY1ZhbHVlKSA9PT0gSlNPTi5zdHJpbmdpZnkoZHN0VmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hlY2sgaWYgdGhlIG9iamVjdCBpcyBhIHBsYWluIG9iamVjdFxyXG4gICAqL1xyXG4gIHByaXZhdGUgaXNVZHRWYXJpYWJsZShvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIG9iaiAmJiBvYmouY29uc3RydWN0b3IgJiZcclxuICAgICAgb2JqLnRvU3RyaW5nKCkgPT09ICdbb2JqZWN0IE9iamVjdF0nICYmXHJcbiAgICAgIG9iai5jb25zdHJ1Y3Rvci5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkoJ2lzUHJvdG90eXBlT2YnKTtcclxuICB9XHJcblxyXG5cclxuICAvKipcclxuICAgKiDorr7nva7lgLzliLBVSVN0YXRlXHJcbiAgICogQHRvZG/vvJpcclxuICAgKiAx44CB5pyN5Yqh5Zmo56uv5LiN5pSv5oyB77ybXHJcbiAgICogMuOAgeaXpeacn+exu+Wei+WkhOeQhuaWueahiOW+heWumuOAglxyXG4gICAqL1xyXG4gIHByaXZhdGUgc2V0VmFsdWVUb1VJU3RhdGUobWFwcGluZzogc3RyaW5nLCB2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICBjb25zdCB1aVN0YXRlID0gdGhpcy5nZXRSb290VUlTdGF0ZSgpO1xyXG4gICAgdWlTdGF0ZVttYXBwaW5nXSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcblxyXG59XHJcblxyXG5leHBvcnQgeyBCZWZWYXJpYWJsZU1hbmFnZXIgfTtcclxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVmX3ZhcmlhYmxlX21hbmFnZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZmFycmlzL2JlZi8iLCJzb3VyY2VzIjpbImxpYi9iZWZfdmFyaWFibGVfbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQU1BLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQVcsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQWdCLE1BQU0sU0FBUyxDQUFDO0FBRXpELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQU1uRCxNQUFNLGtCQUFrQjs7Ozs7OztJQWV0QixZQUFvQixVQUFzQixFQUFVLFdBQWdCLEVBQXNCLFFBQWtCO1FBQXhGLGVBQVUsR0FBVixVQUFVLENBQVk7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBSztRQUFzQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBRTFHLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxHQUFHLEVBQXNCLENBQUM7UUFDbkQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLEdBQUcsRUFBZSxDQUFDO1FBRTVDLFlBQVk7UUFDWixNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE9BQU87Ozs7UUFBQyxDQUFDLFFBQWdCLEVBQUUsRUFBRTtZQUNwRCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDMUQsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOzs7Ozs7SUFLTSxrQkFBa0IsQ0FBQyxZQUEwQjs7Y0FDNUMsVUFBVSxHQUFHLFlBQVksQ0FBQyxVQUFVO1FBQzFDLE1BQU0sQ0FBQyxJQUFJLENB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QUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDL0QsQ0FBQzs7Ozs7OztJQUtPLGFBQWEsQ0FBQyxHQUFRO1FBQzVCLE9BQU8sR0FBRyxJQUFJLEdBQUcsQ0FBQyxXQUFXO1lBQzNCLEdBQUcsQ0FBQyxRQUFRLEVBQUUsS0FBSyxpQkFBaUI7WUFDcEMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzlELENBQUM7Ozs7Ozs7Ozs7O0lBU08saUJBQWlCLENBQUMsT0FBZSxFQUFFLEtBQVU7O2NBQzdDLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFO1FBQ3JDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDM0IsQ0FBQzs7OztZQXBMTSxVQUFVOztZQUlWLFFBQVEsdUJBcUJ3RCxRQUFROzs7Ozs7OztJQVYvRSwyQ0FBK0M7Ozs7OztJQUsvQywyQ0FBd0M7Ozs7O0lBSzVCLHdDQUE4Qjs7Ozs7SUFBRSx5Q0FBd0I7Ozs7O0lBQUUsc0NBQXNDOztBQWdLOUcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBAQXV0aG9yOiBXaXR0XHJcbiAqIEBEYXRlOiAyMDE5LTAzLTA1IDE5OjU1OjQ0XHJcbiAqIEBMYXN0IE1vZGlmaWVkIGJ5OiBXaXR0XHJcbiAqIEBMYXN0IE1vZGlmaWVkIHRpbWU6IDIwMTktMDMtMTMgMjA6MzU6MjlcclxuICovXHJcbmltcG9ydCB7IGZvcm1hdCB9IGZyb20gJ2RhdGUtZm5zJztcclxuaW1wb3J0IHsgQXBwQ29udGV4dCwgRnJhbWVDb250ZXh0LCBVSVN0YXRlIH0gZnJvbSAnQGZhcnJpcy9kZXZraXQnO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRhaWxUeXBlLCBDaGFuZ2VEZXRhaWwgfSBmcm9tICcuL3R5cGVzJztcclxuaW1wb3J0IHsgTmdWYXJpYWJsZSB9IGZyb20gJy4vZGVjb3JhdG9ycyc7XHJcbmltcG9ydCB7IEJlZkNoYW5nZVV0aWwgfSBmcm9tICcuL2JlZl9jaGFuZ2VfdXRpbCc7XHJcbmltcG9ydCB7IEluamVjdG9yLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBCZeWPmOmHj+euoeeQhuWZqFxyXG4gKi9cclxuY2xhc3MgQmVmVmFyaWFibGVNYW5hZ2VyIHtcclxuXHJcbiAgLyoqXHJcbiAgICog5Y+Y6YeP5YWD5pWw5o2uXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBuZ1ZhcmlhYmxlTWFwOiBNYXA8c3RyaW5nLCBOZ1ZhcmlhYmxlPjtcclxuXHJcbiAgLyoqXHJcbiAgICog6K6+572u5YC8XHJcbiAgICovXHJcbiAgcHJpdmF0ZSBpbm5lclZhbHVlTWFwOiBNYXA8c3RyaW5nLCBhbnk+O1xyXG5cclxuICAvKipcclxuICAgKiDmnoTpgKDlh73mlbBcclxuICAgKi9cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFwcENvbnRleHQ6IEFwcENvbnRleHQsIHByaXZhdGUgbmdWYXJpYWJsZXM6IGFueSwgQE9wdGlvbmFsKCkgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuXHJcbiAgICB0aGlzLm5nVmFyaWFibGVNYXAgPSBuZXcgTWFwPHN0cmluZywgTmdWYXJpYWJsZT4oKTtcclxuICAgIHRoaXMuaW5uZXJWYWx1ZU1hcCA9IG5ldyBNYXA8c3RyaW5nLCBhbnk+KCk7XHJcblxyXG4gICAgLy8g6YeN5paw57uE57uH5Y+Y6YeP5YWD5pWw5o2uXHJcbiAgICBPYmplY3Qua2V5cyhuZ1ZhcmlhYmxlcykuZm9yRWFjaCgocHJvcE5hbWU6IHN0cmluZykgPT4ge1xyXG4gICAgICB0aGlzLm5nVmFyaWFibGVNYXAuc2V0KHByb3BOYW1lLCBuZ1ZhcmlhYmxlc1twcm9wTmFtZV0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDojrflj5blj5jmm7Tpm4ZcclxuICAgKi9cclxuICBwdWJsaWMgaGFuZGxlQ2hhbmdlRGV0YWlsKGNoYW5nZURldGFpbDogQ2hhbmdlRGV0YWlsKTogdm9pZCB7XHJcbiAgICBjb25zdCBjaGFuZ2VJbmZvID0gY2hhbmdlRGV0YWlsLkNoYW5nZUluZm87XHJcbiAgICBPYmplY3Qua2V5cyhjaGFuZ2VJbmZvKS5mb3JFYWNoKCh2YXJOYW1lOiBzdHJpbmcpID0+IHtcclxuICAgICAgLy8g5Y+Y6YeP5YWD5pWw5o2uXHJcbiAgICAgIGNvbnN0IG5nVmFyaWFibGUgPSB0aGlzLm5nVmFyaWFibGVNYXAuZ2V0KHZhck5hbWUpO1xyXG4gICAgICBpZiAoIW5nVmFyaWFibGUpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgbWFwcGluZyA9IG5nVmFyaWFibGUubWFwcGluZztcclxuXHJcbiAgICAgIC8vIOabtOaWsFVJU3RhdGXlj5jmm7RcclxuICAgICAgY29uc3QgbmV3VmFsdWUgPSBjaGFuZ2VJbmZvW3Zhck5hbWVdO1xyXG4gICAgICBjb25zdCBvbGRWYWx1ZSA9IHRoaXMuaW5uZXJWYWx1ZU1hcC5nZXQodmFyTmFtZSk7XHJcblxyXG4gICAgICBpZiAob2xkVmFsdWUgPT09IG5ld1ZhbHVlKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIOabtOaWsOWAvFxyXG4gICAgICB0aGlzLnNldFZhbHVlVG9VSVN0YXRlKG1hcHBpbmcsIG5ld1ZhbHVlKTtcclxuICAgICAgdGhpcy5pbm5lclZhbHVlTWFwLnNldCh2YXJOYW1lLCBuZXdWYWx1ZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEJ1aWxkIENoYW5nZURldGFpbCBpbnN0YW5jZSBmb3IgYWxsIHZhcmlhYmxlcy5cclxuICAgKi9cclxuICBwdWJsaWMgYnVpbGRDaGFuZ2VEZXRhaWwoKTogQ2hhbmdlRGV0YWlsIHtcclxuICAgIGNvbnN0IGNoYW5nZURldGFpbCA9IEJlZkNoYW5nZVV0aWwuY3JlYXRlRW1wdHkoQ2hhbmdlRGV0YWlsVHlwZS5Nb2RpZnkpO1xyXG4gICAgdGhpcy5uZ1ZhcmlhYmxlTWFwLmZvckVhY2goKG5nVmFyaWFibGU6IE5nVmFyaWFibGUsIHZhck5hbWU6IHN0cmluZykgPT4ge1xyXG4gICAgICBjb25zdCBtYXBwaW5nID0gbmdWYXJpYWJsZS5tYXBwaW5nO1xyXG4gICAgICBjb25zdCBuZXdWYWx1ZSA9IHRoaXMuZ2V0VmFsdWVGcm9tVUlTdGF0ZShtYXBwaW5nKTtcclxuICAgICAgY29uc3Qgb2xkVmFsdWUgPSB0aGlzLmlubmVyVmFsdWVNYXAuZ2V0KHZhck5hbWUpO1xyXG4gICAgICBpZiAodGhpcy5pc1ZhbHVlRXF1YWwobmV3VmFsdWUsIG9sZFZhbHVlKSA9PT0gZmFsc2UpIHtcclxuICAgICAgICAvLyB0aGlzLmlubmVyVmFsdWVNYXAuc2V0KHZhck5hbWUsIG5ld1ZhbHVlKTtcclxuICAgICAgICB0aGlzLmFwcGVuZFRvQ2hhbmdlSW5mbyhjaGFuZ2VEZXRhaWwsIHZhck5hbWUsIG5ld1ZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKE9iamVjdC5rZXlzKGNoYW5nZURldGFpbC5DaGFuZ2VJbmZvKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGNoYW5nZURldGFpbDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENsZWFyIHZhcmlhYmxlIHZhbHVlcyBjYWNoZWQgaW4gdGhlIGlubmVyVmFsdWVNYXAgcHJvcGVydHkuXHJcbiAgICovXHJcbiAgcHVibGljIHJlc2V0KCkge1xyXG4gICAgdGhpcy5pbm5lclZhbHVlTWFwLmNsZWFyKCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIOa4heepunZv5Y+Y6YeP5Y+Y5pu06ZuGXHJcbiAgICovXHJcbiAgcHVibGljIGNsZWFyQ2hhbmdlcygpIHtcclxuICAgIHRoaXMubmdWYXJpYWJsZU1hcC5mb3JFYWNoKChuZ1ZhcmlhYmxlOiBOZ1ZhcmlhYmxlLCB2YXJOYW1lOiBzdHJpbmcpID0+IHtcclxuICAgICAgY29uc3QgbWFwcGluZyA9IG5nVmFyaWFibGUubWFwcGluZztcclxuICAgICAgY29uc3QgbmV3VmFsdWUgPSB0aGlzLmdldFZhbHVlRnJvbVVJU3RhdGUobWFwcGluZyk7XHJcbiAgICAgIGNvbnN0IG9sZFZhbHVlID0gdGhpcy5pbm5lclZhbHVlTWFwLmdldCh2YXJOYW1lKTtcclxuICAgICAgaWYgKHRoaXMuaXNWYWx1ZUVxdWFsKG5ld1ZhbHVlLCBvbGRWYWx1ZSkgPT09IGZhbHNlKSB7XHJcbiAgICAgICAgdGhpcy5pbm5lclZhbHVlTWFwLnNldCh2YXJOYW1lLCBuZXdWYWx1ZSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBBcHBlbmQgY2hhbmdlZCB2YXJpYWJsZSB0byBDaGFuZ2VEZXRhaWwgaW5zdGFuY2UuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBhcHBlbmRUb0NoYW5nZUluZm8oY2hhbmdlRGV0YWlsOiBDaGFuZ2VEZXRhaWwsIHZhck5hbWU6IHN0cmluZywgdmFyVmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaXNVZHRWYXJpYWJsZSh2YXJWYWx1ZSkgPT09IHRydWUpIHtcclxuICAgICAgY29uc3QgdWR0VmFyQ2hhbmdlRGV0YWlsID0gQmVmQ2hhbmdlVXRpbC5jcmVhdGVFbXB0eShDaGFuZ2VEZXRhaWxUeXBlLk1vZGlmeSk7XHJcbiAgICAgIHVkdFZhckNoYW5nZURldGFpbC5DaGFuZ2VJbmZvID0gdmFyVmFsdWU7XHJcbiAgICAgIGNoYW5nZURldGFpbC5DaGFuZ2VJbmZvW3Zhck5hbWVdID0gdWR0VmFyQ2hhbmdlRGV0YWlsO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY2hhbmdlRGV0YWlsLkNoYW5nZUluZm9bdmFyTmFtZV0gPSB2YXJWYWx1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOS7jlVJU3RhdGXkuIrojrflj5blgLxcclxuICAgKi9cclxuICBwcml2YXRlIGdldFZhbHVlRnJvbVVJU3RhdGUobWFwcGluZzogc3RyaW5nKTogYW55IHtcclxuICAgIGNvbnN0IHVpU3RhdGUgPSB0aGlzLmdldFJvb3RVSVN0YXRlKCk7XHJcblxyXG4gICAgLy8g6K6h566XdmFsdWVcclxuICAgIGNvbnN0IG1hcHBpbmdBcnJheSA9IG1hcHBpbmcuc3BsaXQoJy4nKTtcclxuICAgIGNvbnN0IHZhbHVlID0gbWFwcGluZ0FycmF5LnJlZHVjZSgoYWNjdW11bGF0b3I6IGFueSwgY3VycmVudFZhbHVlOiBhbnkpID0+IHtcclxuICAgICAgcmV0dXJuIGFjY3VtdWxhdG9yID8gYWNjdW11bGF0b3JbY3VycmVudFZhbHVlXSA6IG51bGw7XHJcbiAgICB9LCB1aVN0YXRlKTtcclxuXHJcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XHJcbiAgICAgIHJldHVybiBmb3JtYXQodmFsdWUsICd5eXl5LU1NLWRkIEhIOm1tOnNzJyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdmFsdWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDojrflj5bmoLnnu4Tku7bkuIrnmoRVSVN0YXRlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBnZXRSb290VUlTdGF0ZSgpOiBVSVN0YXRlIHtcclxuXHJcbiAgICBsZXQgcm9vdEZyYW1lQ29udGV4dCA9IHRoaXMuYXBwQ29udGV4dC5mcmFtZUNvbnRleHRNYW5hZ2VyLmdldFJvb3RGcmFtZUNvbnRleHQoKTtcclxuICAgIGlmICh0aGlzLmluamVjdG9yKSB7XHJcbiAgICAgIGNvbnN0IGZyYW1lQ29udGV4dCA9IHRoaXMuaW5qZWN0b3IuZ2V0PEZyYW1lQ29udGV4dD4oRnJhbWVDb250ZXh0LCBudWxsKTtcclxuICAgICAgaWYgKGZyYW1lQ29udGV4dCkge1xyXG4gICAgICAgIGNvbnN0IHZpcnR1YWxSb290RnJhbWVDb250ZXh0ID0gZnJhbWVDb250ZXh0LmdldFZpcnR1YWxSb290RnJhbWVDb250ZXh0KCk7XHJcbiAgICAgICAgcm9vdEZyYW1lQ29udGV4dCA9IHZpcnR1YWxSb290RnJhbWVDb250ZXh0IHx8IHJvb3RGcmFtZUNvbnRleHQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICghcm9vdEZyYW1lQ29udGV4dCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcm9vdEZyYW1lQ29udGV4dC51aVN0YXRlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5YC85q+U6L6DXHJcbiAgICogQHRvZG8g5Li05pe26YeH55So6L+Z56eN5pa55byPXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBpc1ZhbHVlRXF1YWwoc3JjVmFsdWU6IGFueSwgZHN0VmFsdWU6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHNyY1ZhbHVlKSA9PT0gSlNPTi5zdHJpbmdpZnkoZHN0VmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hlY2sgaWYgdGhlIG9iamVjdCBpcyBhIHBsYWluIG9iamVjdFxyXG4gICAqL1xyXG4gIHByaXZhdGUgaXNVZHRWYXJpYWJsZShvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIG9iaiAmJiBvYmouY29uc3RydWN0b3IgJiZcclxuICAgICAgb2JqLnRvU3RyaW5nKCkgPT09ICdbb2JqZWN0IE9iamVjdF0nICYmXHJcbiAgICAgIG9iai5jb25zdHJ1Y3Rvci5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkoJ2lzUHJvdG90eXBlT2YnKTtcclxuICB9XHJcblxyXG5cclxuICAvKipcclxuICAgKiDorr7nva7lgLzliLBVSVN0YXRlXHJcbiAgICogQHRvZG/vvJpcclxuICAgKiAx44CB5pyN5Yqh5Zmo56uv5LiN5pSv5oyB77ybXHJcbiAgICogMuOAgeaXpeacn+exu+Wei+WkhOeQhuaWueahiOW+heWumuOAglxyXG4gICAqL1xyXG4gIHByaXZhdGUgc2V0VmFsdWVUb1VJU3RhdGUobWFwcGluZzogc3RyaW5nLCB2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICBjb25zdCB1aVN0YXRlID0gdGhpcy5nZXRSb290VUlTdGF0ZSgpO1xyXG4gICAgdWlTdGF0ZVttYXBwaW5nXSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcblxyXG59XHJcblxyXG5leHBvcnQgeyBCZWZWYXJpYWJsZU1hbmFnZXIgfTtcclxuIl19 |
@@ -47,2 +47,3 @@ /** | ||
this.context.clearAllEntityChanges(); | ||
this.context.clearAllVariableChanges(); | ||
if (response && response.hasOwnProperty('returnValue')) { | ||
@@ -268,2 +269,2 @@ return response.returnValue; | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVmX3Byb3h5X2V4dGVuZC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BmYXJyaXMvYmVmLyIsInNvdXJjZXMiOlsibGliL2JlZl9wcm94eV9leHRlbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYyxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSXpELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDM0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBR2xFOzs7SUFDRSx3QkFBb0IsT0FBOEI7UUFBOUIsWUFBTyxHQUFQLE9BQU8sQ0FBdUI7SUFBSSxDQUFDO0lBQ3ZEOzs7O09BSUc7Ozs7Ozs7SUFDSSxtQ0FBVTs7Ozs7O0lBQWpCLFVBQWtCLFFBQXNCLEVBQUUsYUFBdUI7UUFDL0QsSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLGVBQWUsSUFBSSxhQUFhLEtBQUssSUFBSSxFQUFFO1lBQ2xFLElBQUksQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQ2hFO1FBQ0QsSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLG1CQUFtQixFQUFFO1lBQzVDLElBQUksQ0FBQyxPQUFPLENBQUMsMEJBQTBCLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLENBQUM7U0FDdkU7O1lBQ0ssUUFBUSxHQUFHLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQztRQUMvRCxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsT0FBTyxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDckMsSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUN0RCxPQUFPLFFBQVEsQ0FBQyxXQUFXLENBQUM7U0FDN0I7YUFBTTtZQUNMLE9BQU8sUUFBUSxDQUFDO1NBQ2pCO0lBQ0gsQ0FBQztJQUNEOzs7OztPQUtHOzs7Ozs7OztJQUNJLGdDQUFPOzs7Ozs7O0lBQWQsVUFBZSxLQUFVLEVBQUUsYUFBc0IsRUFBRSxXQUFvQjs7O1lBQy9ELGNBQWMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsRUFBRTs7WUFDNUQsYUFBYSxHQUFHLGNBQWMsQ0FBQyxhQUFhOztZQUM1QyxlQUFlLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDOztZQUNsRCxRQUFRLEdBQUcsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDO1FBQzFELGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZFLElBQUksZUFBZSxJQUFJLGVBQWUsWUFBWSxLQUFLLElBQUksZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7O2dCQUNyRixLQUE2QixJQUFBLG9CQUFBLGlCQUFBLGVBQWUsQ0FBQSxnREFBQSw2RUFBRTtvQkFBekMsSUFBTSxjQUFjLDRCQUFBO29CQUN2QixJQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEtBQUssVUFBVSxFQUFFO3dCQUNuRCxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7cUJBQzNCO2lCQUNGOzs7Ozs7Ozs7U0FDRjtRQUVELElBQUksQ0FBQyxDQUFDLGFBQWEsRUFBRTtZQUNuQixPQUFPLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMxQjthQUFNOztnQkFDQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsUUFBUTs7Z0JBQzVDLGtCQUFrQixHQUFRLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFOztnQkFDckQsdUJBQXVCLEdBQUcsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLHVCQUF1Qjs7Z0JBQ3RFLFVBQVEsR0FBRyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUM7O2dCQUNwRCxXQUFXLEdBQUcsa0JBQWtCLENBQUMsbUJBQW1CLENBQUMsVUFBUSxDQUFDOztnQkFDOUQsc0JBQXNCLEdBQUcsV0FBVyxJQUFJLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLEtBQUs7O2dCQUN2RSxrQkFBa0IsR0FBRyxDQUFDLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsSUFBSSxrQkFBa0IsQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQzs7Z0JBQ3RMLGtCQUFrQixHQUFHLENBQUMsQ0FBQyxRQUFRLElBQUksdUJBQXVCLElBQUksa0JBQWtCO1lBQ3RGLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxVQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsRUFBRSxFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsS0FBSyxPQUFBLEVBQUUsY0FBYyxnQkFBQSxFQUFFLENBQUMsQ0FBQztZQUM1SyxJQUFJLENBQUMsQ0FBQyxRQUFRLElBQUksdUJBQXVCLEVBQUU7Z0JBQ3pDLElBQUksZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLEVBQUU7b0JBQzlDLE9BQU8sVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUMxQjtnQkFDRCxJQUFJLGtCQUFrQixFQUFFO29CQUN0QixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxjQUFjLENBQUMsQ0FBQztpQkFDdEU7Z0JBQ0QsSUFBSSxXQUFXLEVBQUU7b0JBQ2YsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ2pCO3FCQUFNO29CQUNMLE9BQU8sS0FBSyxDQUFDO2lCQUNkO2FBQ0Y7aUJBQU07Z0JBQ0wsT0FBTyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDMUI7U0FDRjtJQUNILENBQUM7SUFDRDs7O09BR0c7Ozs7Ozs7SUFDSSxzQ0FBYTs7Ozs7O0lBQXBCLFVBQXFCLE9BQW9CLEVBQUUsY0FBb0I7UUFBL0QsaUJBU0M7O1lBUk8sY0FBYyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLGlCQUFpQixFQUFFOztZQUM1RCxhQUFhLEdBQUcsaUJBQWlCLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUM7UUFDN0csT0FBTyxhQUFhLENBQUMsSUFBSSxDQUN2QixTQUFTOzs7O1FBQUMsVUFBQSxTQUFTO1lBQ2pCLE9BQU8sR0FBRyxLQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1lBQ2hHLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JCLENBQUMsRUFBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBQ0Q7OztPQUdHOzs7Ozs7O0lBQ0ksa0NBQVM7Ozs7OztJQUFoQixVQUFpQixHQUFXLEVBQUUsTUFBbUM7UUFDL0QsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNYLE9BQU8sR0FBRyxDQUFDO1NBQ1o7UUFDRCxLQUFLLElBQU0sR0FBRyxJQUFJLE1BQU0sRUFBRTtZQUN4QixJQUFJLE1BQU0sQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUU7O29CQUN4QixLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3pDLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtvQkFDM0IsR0FBRyxHQUFNLEdBQUcsU0FBSSxHQUFHLFNBQUksS0FBTyxDQUFDO2lCQUNoQztxQkFBTTtvQkFDTCxHQUFHLEdBQU0sR0FBRyxTQUFJLEdBQUcsU0FBSSxLQUFPLENBQUM7aUJBQ2hDO2FBQ0Y7U0FDRjtRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUNEOzs7T0FHRzs7Ozs7O0lBQ0ksbUNBQVU7Ozs7O0lBQWpCLFVBQWtCLElBQUk7UUFBdEIsaUJBY0M7UUFiQyxJQUFJLENBQUMsSUFBSSxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDckUsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTzs7OztRQUFDLFVBQUEsSUFBSTtZQUM1QixJQUFJLElBQUksS0FBSyxhQUFhLEVBQUU7Z0JBQzFCLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxLQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2FBQ25FO1FBQ0gsQ0FBQyxFQUFDLENBQUM7UUFDSCxtQ0FBbUM7UUFDbkMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDbEMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDL0I7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Ozs7O0lBQ00scUNBQVk7Ozs7SUFBbkIsVUFBb0IsUUFBYTs7WUFDekIsWUFBWSxHQUFHLGNBQWM7UUFDbkMsSUFBSSxRQUFRLENBQUMsT0FBTyxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQzFELElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztTQUM1RjtJQUNILENBQUM7SUFDSCxxQkFBQztBQUFELENBQUMsQUFuSUQsSUFtSUM7Ozs7Ozs7O0lBbElhLGlDQUFzQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRocm93RXJyb3IsIE9ic2VydmFibGUsIG9mLCBFTVBUWSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBFbnRpdHkgfSBmcm9tICdAZmFycmlzL2RldmtpdCc7XHJcbmltcG9ydCB7IElQcm94eUV4dGVuZCwgUmVzcG9uc2VJbmZvIH0gZnJvbSAnLi90eXBlcyc7XHJcbmltcG9ydCB7IEJlZlJlcG9zaXRvcnkgfSBmcm9tICcuL2JlZl9yZXBvc2l0b3J5JztcclxuaW1wb3J0IHsgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBIdHRwUGFyYW1zLCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgUmVzcG9uc2VJbmZvVXRpbCB9IGZyb20gJy4vdXRpbHMnO1xyXG5pbXBvcnQgeyBCYWNrRW5kTWVzc2FnZVV0aWwgfSBmcm9tICcuL3V0aWxzL2JhY2tfZW5kX21lc3NhZ2UudXRpbCc7XHJcbmltcG9ydCB7IEJlZlNlc3Npb25NYW5hZ2VyIH0gZnJvbSAnLi9zZXNzaW9uL2JlZl9zZXNzaW9uX21hbmFnZXInO1xyXG5cclxuLy8gdHNsaW50OmRpc2FibGU6IG1heC1saW5lLWxlbmd0aCB0c2xpbnQ6ZGlzYWJsZTogbm8tc3RyaW5nLWxpdGVyYWxcclxuZXhwb3J0IGNsYXNzIEJlZlByb3h5RXh0ZW5kIGltcGxlbWVudHMgSVByb3h5RXh0ZW5kIHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbnRleHQ6IEJlZlJlcG9zaXRvcnk8RW50aXR5PikgeyB9XHJcbiAgLyoqXHJcbiAgICog6K+35rGC57uT5p6c6L+U5ZueXHJcbiAgICogQHBhcmFtIHJlc3BvbnNlIHJlc3BvbnNlXHJcbiAgICogQHBhcmFtIGlnbm9yZUNoYW5nZXMg5b+955Wl5Y+Y5pu0XHJcbiAgICovXHJcbiAgcHVibGljIG9uUmVzcG9uc2UocmVzcG9uc2U6IFJlc3BvbnNlSW5mbywgaWdub3JlQ2hhbmdlcz86IGJvb2xlYW4pIHtcclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS5pbm5lckRhdGFDaGFuZ2UgJiYgaWdub3JlQ2hhbmdlcyAhPT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLmNvbnRleHQuaGFuZGxlRGF0YUNoYW5nZURldGFpbHMocmVzcG9uc2UuaW5uZXJEYXRhQ2hhbmdlKTtcclxuICAgIH1cclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS5pbm5lclZhcmlhYmxlQ2hhbmdlKSB7XHJcbiAgICAgIHRoaXMuY29udGV4dC5oYW5kbGVWYXJpYWJsZUNoYW5nZURldGFpbChyZXNwb25zZS5pbm5lclZhcmlhYmxlQ2hhbmdlKTtcclxuICAgIH1cclxuICAgIGNvbnN0IG1lc3NhZ2VzID0gUmVzcG9uc2VJbmZvVXRpbC5wYXJzZUJhY2tFbmRNZXNzYWdlKHJlc3BvbnNlKTtcclxuICAgIEJhY2tFbmRNZXNzYWdlVXRpbC5oYW5kbGVNZXNzYWdlKG1lc3NhZ2VzLCB0aGlzLmNvbnRleHQuZ2V0SW5qZWN0b3IoKSk7XHJcbiAgICB0aGlzLmNvbnRleHQuY2xlYXJBbGxFbnRpdHlDaGFuZ2VzKCk7XHJcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UuaGFzT3duUHJvcGVydHkoJ3JldHVyblZhbHVlJykpIHtcclxuICAgICAgcmV0dXJuIHJlc3BvbnNlLnJldHVyblZhbHVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgfVxyXG4gIH1cclxuICAvKipcclxuICAgKiDlj5HnlJ/plJnor69cclxuICAgKiBAcGFyYW0gZXJyb3IgZXJyb3JcclxuICAgKiBAcGFyYW0gc2VsZkhhbmRFcnJvciDoh6rlrprkuYnplJnor6/lpITnkIZcclxuICAgKiBAcGFyYW0gaWdub3JlRXJyb3Ig5b+955Wl6ZSZ6K+vXHJcbiAgICovXHJcbiAgcHVibGljIG9uRXJyb3IoZXJyb3I6IGFueSwgc2VsZkhhbmRFcnJvcjogYm9vbGVhbiwgaWdub3JlRXJyb3I6IGJvb2xlYW4pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgZm9ybUFwcENvbnRleHQgPSB0aGlzLmNvbnRleHQuYXBwQ29udGV4dC5nZXRGb3JtQXBwQ29udGV4dCgpO1xyXG4gICAgY29uc3QgYXBwbGljYXRpb25JZCA9IGZvcm1BcHBDb250ZXh0LkFwcGxpY2F0aW9uSWQ7XHJcbiAgICBjb25zdCBsb2FkaW5nU2VydmljZXMgPSB3aW5kb3dbJ0RFVktJVF9MT0FESU5HX1NFUlZJQ0UnXTtcclxuICAgIGNvbnN0IG1lc3NhZ2VzID0gUmVzcG9uc2VJbmZvVXRpbC5wYXJzZUJhY2tFbmRFcnJvcihlcnJvcik7XHJcbiAgICBCYWNrRW5kTWVzc2FnZVV0aWwuaGFuZGxlTWVzc2FnZShtZXNzYWdlcywgdGhpcy5jb250ZXh0LmdldEluamVjdG9yKCkpO1xyXG4gICAgaWYgKGxvYWRpbmdTZXJ2aWNlcyAmJiBsb2FkaW5nU2VydmljZXMgaW5zdGFuY2VvZiBBcnJheSAmJiBsb2FkaW5nU2VydmljZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICBmb3IgKGNvbnN0IGxvYWRpbmdTZXJ2aWNlIG9mIGxvYWRpbmdTZXJ2aWNlcykge1xyXG4gICAgICAgIGlmICh0eXBlb2YgKGxvYWRpbmdTZXJ2aWNlLmNsZWFyQWxsKSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgbG9hZGluZ1NlcnZpY2UuY2xlYXJBbGwoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAoISFzZWxmSGFuZEVycm9yKSB7XHJcbiAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGV2ZW50QnVzID0gdGhpcy5jb250ZXh0LnJlc3RTZXJ2aWNlLmV2ZW50QnVzO1xyXG4gICAgICBjb25zdCBhcHBsaWNhdGlvbkNvbnRleHQ6IGFueSA9IHdpbmRvd1thcHBsaWNhdGlvbklkXSB8fCB7fTtcclxuICAgICAgY29uc3QgaXNFeGNlcHRpb25IYW5kbGVyRXhpc3QgPSAhIWFwcGxpY2F0aW9uQ29udGV4dC5pc0V4Y2VwdGlvbkhhbmRsZXJFeGlzdDtcclxuICAgICAgY29uc3QgbWVzc2FnZXMgPSBSZXNwb25zZUluZm9VdGlsLnBhcnNlQmFja0VuZEVycm9yKGVycm9yKTtcclxuICAgICAgY29uc3QgYml6TWVzc2FnZXMgPSBCYWNrRW5kTWVzc2FnZVV0aWwuZ2V0Rm9ybWxlc3NNZXNzYWdlcyhtZXNzYWdlcyk7XHJcbiAgICAgIGNvbnN0IGlzRXhpc3RGb3JtbGVzc01lc3NhZ2UgPSBiaXpNZXNzYWdlcyAmJiBiaXpNZXNzYWdlcy5sZW5ndGggPiAwIHx8IGZhbHNlO1xyXG4gICAgICBjb25zdCBuZWVkVGhyb3dFeGNlcHRpb24gPSAhKGVycm9yICYmIGVycm9yLmVycm9yICYmIGVycm9yLmVycm9yLmV4dGVuc2lvbk1lc3NhZ2UgJiYgQmFja0VuZE1lc3NhZ2VVdGlsLmlzQmFja0VuZE1lc3NhZ2VIYW5kbGVyRXhpc3QodGhpcy5jb250ZXh0LmdldEluamVjdG9yKCkpICYmICFpc0V4aXN0Rm9ybWxlc3NNZXNzYWdlKTtcclxuICAgICAgY29uc3Qgd2lsbFRocm93RXhjZXB0aW9uID0gISFldmVudEJ1cyAmJiBpc0V4Y2VwdGlvbkhhbmRsZXJFeGlzdCAmJiBuZWVkVGhyb3dFeGNlcHRpb247XHJcbiAgICAgIEJhY2tFbmRNZXNzYWdlVXRpbC5oYW5kbGVNZXNzYWdlKG1lc3NhZ2VzLCB0aGlzLmNvbnRleHQuZ2V0SW5qZWN0b3IoKSwgeyBoYXNUaHJvd0Vycm9yOiB3aWxsVGhyb3dFeGNlcHRpb24sIGlzRXhjZXB0aW9uOiB0cnVlLCBldmVudEJ1czogZXZlbnRCdXMsIGVycm9yLCBmb3JtQXBwQ29udGV4dCB9KTtcclxuICAgICAgaWYgKCEhZXZlbnRCdXMgJiYgaXNFeGNlcHRpb25IYW5kbGVyRXhpc3QpIHtcclxuICAgICAgICBpZiAoUmVzcG9uc2VJbmZvVXRpbC5pc1JlcG9ydGVkNDAxRXJyb3IoZXJyb3IpKSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChuZWVkVGhyb3dFeGNlcHRpb24pIHtcclxuICAgICAgICAgIGV2ZW50QnVzLnBvc3QoJ0V4Y2VwdGlvbicsICcnLCAnb25FeGNlcHRpb24nLCBlcnJvciwgZm9ybUFwcENvbnRleHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaWdub3JlRXJyb3IpIHtcclxuICAgICAgICAgIHJldHVybiBvZihudWxsKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIEVNUFRZO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgLyoqXHJcbiAgICog5omp5bGVaHR0cCBoZWFkZXJzXHJcbiAgICogQHBhcmFtIGhlYWRlcnMgaGVhZGVyc1xyXG4gICAqL1xyXG4gIHB1YmxpYyBleHRlbmRIZWFkZXJzKGhlYWRlcnM6IEh0dHBIZWFkZXJzLCBydW50aW1lQ29udGV4dD86IGFueSk6IE9ic2VydmFibGU8eyBbcHJvcE5hbWU6IHN0cmluZ106IGFueSB9PiB7XHJcbiAgICBjb25zdCBmb3JtQXBwQ29udGV4dCA9IHRoaXMuY29udGV4dC5hcHBDb250ZXh0LmdldEZvcm1BcHBDb250ZXh0KCk7XHJcbiAgICBjb25zdCAkZ2V0U2Vzc2lvbklkID0gQmVmU2Vzc2lvbk1hbmFnZXIuZ2V0U2Vzc2lvbklkKGZvcm1BcHBDb250ZXh0LCB0aGlzLmNvbnRleHQucmVzdFNlcnZpY2Uuc2Vzc2lvblNlcnZpY2UpO1xyXG4gICAgcmV0dXJuICRnZXRTZXNzaW9uSWQucGlwZShcclxuICAgICAgc3dpdGNoTWFwKHNlc3Npb25JZCA9PiB7XHJcbiAgICAgICAgaGVhZGVycyA9IHRoaXMuY29udGV4dC5yZXN0U2VydmljZS5zZXNzaW9uU2VydmljZS5leHRlbmRSZXF1ZXN0SGVhZGVycyhoZWFkZXJzLCBydW50aW1lQ29udGV4dCk7XHJcbiAgICAgICAgcmV0dXJuIG9mKGhlYWRlcnMpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICog5omp5bGV6K+35rGC5Y+C5pWwXHJcbiAgICogQHBhcmFtIHBhcmFtcyDlj4LmlbBcclxuICAgKi9cclxuICBwdWJsaWMgZXh0ZW5kVXJsKHVybDogc3RyaW5nLCBwYXJhbXM6IHsgW3Byb3BOYW1lOiBzdHJpbmddOiBhbnkgfSk6IHN0cmluZyB7XHJcbiAgICBpZiAoIXBhcmFtcykge1xyXG4gICAgICByZXR1cm4gdXJsO1xyXG4gICAgfVxyXG4gICAgZm9yIChjb25zdCBrZXkgaW4gcGFyYW1zKSB7XHJcbiAgICAgIGlmIChwYXJhbXMuaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG4gICAgICAgIGNvbnN0IHZhbHVlID0gSlNPTi5zdHJpbmdpZnkocGFyYW1zW2tleV0pO1xyXG4gICAgICAgIGlmICh1cmwuaW5kZXhPZignPycpID09PSAtMSkge1xyXG4gICAgICAgICAgdXJsID0gYCR7dXJsfT8ke2tleX09JHt2YWx1ZX1gO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB1cmwgPSBgJHt1cmx9JiR7a2V5fT0ke3ZhbHVlfWA7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdXJsO1xyXG4gIH1cclxuICAvKipcclxuICAgKiDmianlsZXor7fmsYLkvZNcclxuICAgKiBAcGFyYW0gYm9keSBib2R5XHJcbiAgICovXHJcbiAgcHVibGljIGV4dGVuZEJvZHkoYm9keSk6IHsgW3Byb3BOYW1lOiBzdHJpbmddOiBhbnkgfSB7XHJcbiAgICBpZiAoIWJvZHkgfHwgdHlwZW9mIGJvZHkgIT09ICdvYmplY3QnIHx8IE9iamVjdC5rZXlzKGJvZHkpLmxlbmd0aCA8IDEpIHtcclxuICAgICAgcmV0dXJuIGJvZHk7XHJcbiAgICB9XHJcbiAgICBPYmplY3Qua2V5cyhib2R5KS5mb3JFYWNoKG5hbWUgPT4ge1xyXG4gICAgICBpZiAobmFtZSA9PT0gJ3JlcXVlc3RJbmZvJykge1xyXG4gICAgICAgIGJvZHlbJ3JlcXVlc3RJbmZvJ10gPSB0aGlzLmNvbnRleHQucmVzdFNlcnZpY2UuYnVpbGRSZXF1ZXN0SW5mbygpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIC8vIOWFvOWuuUrniYjlkI7nq69ib2R55Y+q5pyJ5LiA5Liqa2V55pe2Ym9keeWPquS8oHZhbHVl55qE5oOF5Ya1XHJcbiAgICBpZiAoT2JqZWN0LmtleXMoYm9keSkubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgIGJvZHkgPSBPYmplY3QudmFsdWVzKGJvZHkpWzBdO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGJvZHk7XHJcbiAgfVxyXG4gIHB1YmxpYyBwYXJzZUhlYWRlcnMocmVzcG9uc2U6IGFueSkge1xyXG4gICAgY29uc3Qgc2Vzc2lvbklkS2V5ID0gJ0JFRlNlc3Npb25JRCc7XHJcbiAgICBpZiAocmVzcG9uc2UuaGVhZGVycyAmJiByZXNwb25zZS5oZWFkZXJzLmhhcyhzZXNzaW9uSWRLZXkpKSB7XHJcbiAgICAgIHRoaXMuY29udGV4dC5yZXN0U2VydmljZS5zZXNzaW9uU2VydmljZS5zZXRCZVNlc3Npb25JZChyZXNwb25zZS5oZWFkZXJzLmdldChzZXNzaW9uSWRLZXkpKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVmX3Byb3h5X2V4dGVuZC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BmYXJyaXMvYmVmLyIsInNvdXJjZXMiOlsibGliL2JlZl9wcm94eV9leHRlbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYyxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSXpELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDM0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBR2xFOzs7SUFDRSx3QkFBb0IsT0FBOEI7UUFBOUIsWUFBTyxHQUFQLE9BQU8sQ0FBdUI7SUFBSSxDQUFDO0lBQ3ZEOzs7O09BSUc7Ozs7Ozs7SUFDSSxtQ0FBVTs7Ozs7O0lBQWpCLFVBQWtCLFFBQXNCLEVBQUUsYUFBdUI7UUFDL0QsSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLGVBQWUsSUFBSSxhQUFhLEtBQUssSUFBSSxFQUFFO1lBQ2xFLElBQUksQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQ2hFO1FBQ0QsSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLG1CQUFtQixFQUFFO1lBQzVDLElBQUksQ0FBQyxPQUFPLENBQUMsMEJBQTBCLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLENBQUM7U0FDdkU7O1lBQ0ssUUFBUSxHQUFHLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQztRQUMvRCxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsT0FBTyxD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QUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUMxRCxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7U0FDNUY7SUFDSCxDQUFDO0lBQ0gscUJBQUM7QUFBRCxDQUFDLEFBcElELElBb0lDOzs7Ozs7OztJQW5JYSxpQ0FBc0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0aHJvd0Vycm9yLCBPYnNlcnZhYmxlLCBvZiwgRU1QVFkgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRW50aXR5IH0gZnJvbSAnQGZhcnJpcy9kZXZraXQnO1xyXG5pbXBvcnQgeyBJUHJveHlFeHRlbmQsIFJlc3BvbnNlSW5mbyB9IGZyb20gJy4vdHlwZXMnO1xyXG5pbXBvcnQgeyBCZWZSZXBvc2l0b3J5IH0gZnJvbSAnLi9iZWZfcmVwb3NpdG9yeSc7XHJcbmltcG9ydCB7IHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgSHR0cFBhcmFtcywgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IFJlc3BvbnNlSW5mb1V0aWwgfSBmcm9tICcuL3V0aWxzJztcclxuaW1wb3J0IHsgQmFja0VuZE1lc3NhZ2VVdGlsIH0gZnJvbSAnLi91dGlscy9iYWNrX2VuZF9tZXNzYWdlLnV0aWwnO1xyXG5pbXBvcnQgeyBCZWZTZXNzaW9uTWFuYWdlciB9IGZyb20gJy4vc2Vzc2lvbi9iZWZfc2Vzc2lvbl9tYW5hZ2VyJztcclxuXHJcbi8vIHRzbGludDpkaXNhYmxlOiBtYXgtbGluZS1sZW5ndGggdHNsaW50OmRpc2FibGU6IG5vLXN0cmluZy1saXRlcmFsXHJcbmV4cG9ydCBjbGFzcyBCZWZQcm94eUV4dGVuZCBpbXBsZW1lbnRzIElQcm94eUV4dGVuZCB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb250ZXh0OiBCZWZSZXBvc2l0b3J5PEVudGl0eT4pIHsgfVxyXG4gIC8qKlxyXG4gICAqIOivt+axgue7k+aenOi/lOWbnlxyXG4gICAqIEBwYXJhbSByZXNwb25zZSByZXNwb25zZVxyXG4gICAqIEBwYXJhbSBpZ25vcmVDaGFuZ2VzIOW/veeVpeWPmOabtFxyXG4gICAqL1xyXG4gIHB1YmxpYyBvblJlc3BvbnNlKHJlc3BvbnNlOiBSZXNwb25zZUluZm8sIGlnbm9yZUNoYW5nZXM/OiBib29sZWFuKSB7XHJcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UuaW5uZXJEYXRhQ2hhbmdlICYmIGlnbm9yZUNoYW5nZXMgIT09IHRydWUpIHtcclxuICAgICAgdGhpcy5jb250ZXh0LmhhbmRsZURhdGFDaGFuZ2VEZXRhaWxzKHJlc3BvbnNlLmlubmVyRGF0YUNoYW5nZSk7XHJcbiAgICB9XHJcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UuaW5uZXJWYXJpYWJsZUNoYW5nZSkge1xyXG4gICAgICB0aGlzLmNvbnRleHQuaGFuZGxlVmFyaWFibGVDaGFuZ2VEZXRhaWwocmVzcG9uc2UuaW5uZXJWYXJpYWJsZUNoYW5nZSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBtZXNzYWdlcyA9IFJlc3BvbnNlSW5mb1V0aWwucGFyc2VCYWNrRW5kTWVzc2FnZShyZXNwb25zZSk7XHJcbiAgICBCYWNrRW5kTWVzc2FnZVV0aWwuaGFuZGxlTWVzc2FnZShtZXNzYWdlcywgdGhpcy5jb250ZXh0LmdldEluamVjdG9yKCkpO1xyXG4gICAgdGhpcy5jb250ZXh0LmNsZWFyQWxsRW50aXR5Q2hhbmdlcygpO1xyXG4gICAgdGhpcy5jb250ZXh0LmNsZWFyQWxsVmFyaWFibGVDaGFuZ2VzKCk7XHJcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UuaGFzT3duUHJvcGVydHkoJ3JldHVyblZhbHVlJykpIHtcclxuICAgICAgcmV0dXJuIHJlc3BvbnNlLnJldHVyblZhbHVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgfVxyXG4gIH1cclxuICAvKipcclxuICAgKiDlj5HnlJ/plJnor69cclxuICAgKiBAcGFyYW0gZXJyb3IgZXJyb3JcclxuICAgKiBAcGFyYW0gc2VsZkhhbmRFcnJvciDoh6rlrprkuYnplJnor6/lpITnkIZcclxuICAgKiBAcGFyYW0gaWdub3JlRXJyb3Ig5b+955Wl6ZSZ6K+vXHJcbiAgICovXHJcbiAgcHVibGljIG9uRXJyb3IoZXJyb3I6IGFueSwgc2VsZkhhbmRFcnJvcjogYm9vbGVhbiwgaWdub3JlRXJyb3I6IGJvb2xlYW4pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgZm9ybUFwcENvbnRleHQgPSB0aGlzLmNvbnRleHQuYXBwQ29udGV4dC5nZXRGb3JtQXBwQ29udGV4dCgpO1xyXG4gICAgY29uc3QgYXBwbGljYXRpb25JZCA9IGZvcm1BcHBDb250ZXh0LkFwcGxpY2F0aW9uSWQ7XHJcbiAgICBjb25zdCBsb2FkaW5nU2VydmljZXMgPSB3aW5kb3dbJ0RFVktJVF9MT0FESU5HX1NFUlZJQ0UnXTtcclxuICAgIGNvbnN0IG1lc3NhZ2VzID0gUmVzcG9uc2VJbmZvVXRpbC5wYXJzZUJhY2tFbmRFcnJvcihlcnJvcik7XHJcbiAgICBCYWNrRW5kTWVzc2FnZVV0aWwuaGFuZGxlTWVzc2FnZShtZXNzYWdlcywgdGhpcy5jb250ZXh0LmdldEluamVjdG9yKCkpO1xyXG4gICAgaWYgKGxvYWRpbmdTZXJ2aWNlcyAmJiBsb2FkaW5nU2VydmljZXMgaW5zdGFuY2VvZiBBcnJheSAmJiBsb2FkaW5nU2VydmljZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICBmb3IgKGNvbnN0IGxvYWRpbmdTZXJ2aWNlIG9mIGxvYWRpbmdTZXJ2aWNlcykge1xyXG4gICAgICAgIGlmICh0eXBlb2YgKGxvYWRpbmdTZXJ2aWNlLmNsZWFyQWxsKSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgbG9hZGluZ1NlcnZpY2UuY2xlYXJBbGwoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAoISFzZWxmSGFuZEVycm9yKSB7XHJcbiAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGV2ZW50QnVzID0gdGhpcy5jb250ZXh0LnJlc3RTZXJ2aWNlLmV2ZW50QnVzO1xyXG4gICAgICBjb25zdCBhcHBsaWNhdGlvbkNvbnRleHQ6IGFueSA9IHdpbmRvd1thcHBsaWNhdGlvbklkXSB8fCB7fTtcclxuICAgICAgY29uc3QgaXNFeGNlcHRpb25IYW5kbGVyRXhpc3QgPSAhIWFwcGxpY2F0aW9uQ29udGV4dC5pc0V4Y2VwdGlvbkhhbmRsZXJFeGlzdDtcclxuICAgICAgY29uc3QgbWVzc2FnZXMgPSBSZXNwb25zZUluZm9VdGlsLnBhcnNlQmFja0VuZEVycm9yKGVycm9yKTtcclxuICAgICAgY29uc3QgYml6TWVzc2FnZXMgPSBCYWNrRW5kTWVzc2FnZVV0aWwuZ2V0Rm9ybWxlc3NNZXNzYWdlcyhtZXNzYWdlcyk7XHJcbiAgICAgIGNvbnN0IGlzRXhpc3RGb3JtbGVzc01lc3NhZ2UgPSBiaXpNZXNzYWdlcyAmJiBiaXpNZXNzYWdlcy5sZW5ndGggPiAwIHx8IGZhbHNlO1xyXG4gICAgICBjb25zdCBuZWVkVGhyb3dFeGNlcHRpb24gPSAhKGVycm9yICYmIGVycm9yLmVycm9yICYmIGVycm9yLmVycm9yLmV4dGVuc2lvbk1lc3NhZ2UgJiYgQmFja0VuZE1lc3NhZ2VVdGlsLmlzQmFja0VuZE1lc3NhZ2VIYW5kbGVyRXhpc3QodGhpcy5jb250ZXh0LmdldEluamVjdG9yKCkpICYmICFpc0V4aXN0Rm9ybWxlc3NNZXNzYWdlKTtcclxuICAgICAgY29uc3Qgd2lsbFRocm93RXhjZXB0aW9uID0gISFldmVudEJ1cyAmJiBpc0V4Y2VwdGlvbkhhbmRsZXJFeGlzdCAmJiBuZWVkVGhyb3dFeGNlcHRpb247XHJcbiAgICAgIEJhY2tFbmRNZXNzYWdlVXRpbC5oYW5kbGVNZXNzYWdlKG1lc3NhZ2VzLCB0aGlzLmNvbnRleHQuZ2V0SW5qZWN0b3IoKSwgeyBoYXNUaHJvd0Vycm9yOiB3aWxsVGhyb3dFeGNlcHRpb24sIGlzRXhjZXB0aW9uOiB0cnVlLCBldmVudEJ1czogZXZlbnRCdXMsIGVycm9yLCBmb3JtQXBwQ29udGV4dCB9KTtcclxuICAgICAgaWYgKCEhZXZlbnRCdXMgJiYgaXNFeGNlcHRpb25IYW5kbGVyRXhpc3QpIHtcclxuICAgICAgICBpZiAoUmVzcG9uc2VJbmZvVXRpbC5pc1JlcG9ydGVkNDAxRXJyb3IoZXJyb3IpKSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChuZWVkVGhyb3dFeGNlcHRpb24pIHtcclxuICAgICAgICAgIGV2ZW50QnVzLnBvc3QoJ0V4Y2VwdGlvbicsICcnLCAnb25FeGNlcHRpb24nLCBlcnJvciwgZm9ybUFwcENvbnRleHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaWdub3JlRXJyb3IpIHtcclxuICAgICAgICAgIHJldHVybiBvZihudWxsKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIEVNUFRZO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgLyoqXHJcbiAgICog5omp5bGVaHR0cCBoZWFkZXJzXHJcbiAgICogQHBhcmFtIGhlYWRlcnMgaGVhZGVyc1xyXG4gICAqL1xyXG4gIHB1YmxpYyBleHRlbmRIZWFkZXJzKGhlYWRlcnM6IEh0dHBIZWFkZXJzLCBydW50aW1lQ29udGV4dD86IGFueSk6IE9ic2VydmFibGU8eyBbcHJvcE5hbWU6IHN0cmluZ106IGFueSB9PiB7XHJcbiAgICBjb25zdCBmb3JtQXBwQ29udGV4dCA9IHRoaXMuY29udGV4dC5hcHBDb250ZXh0LmdldEZvcm1BcHBDb250ZXh0KCk7XHJcbiAgICBjb25zdCAkZ2V0U2Vzc2lvbklkID0gQmVmU2Vzc2lvbk1hbmFnZXIuZ2V0U2Vzc2lvbklkKGZvcm1BcHBDb250ZXh0LCB0aGlzLmNvbnRleHQucmVzdFNlcnZpY2Uuc2Vzc2lvblNlcnZpY2UpO1xyXG4gICAgcmV0dXJuICRnZXRTZXNzaW9uSWQucGlwZShcclxuICAgICAgc3dpdGNoTWFwKHNlc3Npb25JZCA9PiB7XHJcbiAgICAgICAgaGVhZGVycyA9IHRoaXMuY29udGV4dC5yZXN0U2VydmljZS5zZXNzaW9uU2VydmljZS5leHRlbmRSZXF1ZXN0SGVhZGVycyhoZWFkZXJzLCBydW50aW1lQ29udGV4dCk7XHJcbiAgICAgICAgcmV0dXJuIG9mKGhlYWRlcnMpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICog5omp5bGV6K+35rGC5Y+C5pWwXHJcbiAgICogQHBhcmFtIHBhcmFtcyDlj4LmlbBcclxuICAgKi9cclxuICBwdWJsaWMgZXh0ZW5kVXJsKHVybDogc3RyaW5nLCBwYXJhbXM6IHsgW3Byb3BOYW1lOiBzdHJpbmddOiBhbnkgfSk6IHN0cmluZyB7XHJcbiAgICBpZiAoIXBhcmFtcykge1xyXG4gICAgICByZXR1cm4gdXJsO1xyXG4gICAgfVxyXG4gICAgZm9yIChjb25zdCBrZXkgaW4gcGFyYW1zKSB7XHJcbiAgICAgIGlmIChwYXJhbXMuaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG4gICAgICAgIGNvbnN0IHZhbHVlID0gSlNPTi5zdHJpbmdpZnkocGFyYW1zW2tleV0pO1xyXG4gICAgICAgIGlmICh1cmwuaW5kZXhPZignPycpID09PSAtMSkge1xyXG4gICAgICAgICAgdXJsID0gYCR7dXJsfT8ke2tleX09JHt2YWx1ZX1gO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB1cmwgPSBgJHt1cmx9JiR7a2V5fT0ke3ZhbHVlfWA7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdXJsO1xyXG4gIH1cclxuICAvKipcclxuICAgKiDmianlsZXor7fmsYLkvZNcclxuICAgKiBAcGFyYW0gYm9keSBib2R5XHJcbiAgICovXHJcbiAgcHVibGljIGV4dGVuZEJvZHkoYm9keSk6IHsgW3Byb3BOYW1lOiBzdHJpbmddOiBhbnkgfSB7XHJcbiAgICBpZiAoIWJvZHkgfHwgdHlwZW9mIGJvZHkgIT09ICdvYmplY3QnIHx8IE9iamVjdC5rZXlzKGJvZHkpLmxlbmd0aCA8IDEpIHtcclxuICAgICAgcmV0dXJuIGJvZHk7XHJcbiAgICB9XHJcbiAgICBPYmplY3Qua2V5cyhib2R5KS5mb3JFYWNoKG5hbWUgPT4ge1xyXG4gICAgICBpZiAobmFtZSA9PT0gJ3JlcXVlc3RJbmZvJykge1xyXG4gICAgICAgIGJvZHlbJ3JlcXVlc3RJbmZvJ10gPSB0aGlzLmNvbnRleHQucmVzdFNlcnZpY2UuYnVpbGRSZXF1ZXN0SW5mbygpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIC8vIOWFvOWuuUrniYjlkI7nq69ib2R55Y+q5pyJ5LiA5Liqa2V55pe2Ym9keeWPquS8oHZhbHVl55qE5oOF5Ya1XHJcbiAgICBpZiAoT2JqZWN0LmtleXMoYm9keSkubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgIGJvZHkgPSBPYmplY3QudmFsdWVzKGJvZHkpWzBdO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGJvZHk7XHJcbiAgfVxyXG4gIHB1YmxpYyBwYXJzZUhlYWRlcnMocmVzcG9uc2U6IGFueSkge1xyXG4gICAgY29uc3Qgc2Vzc2lvbklkS2V5ID0gJ0JFRlNlc3Npb25JRCc7XHJcbiAgICBpZiAocmVzcG9uc2UuaGVhZGVycyAmJiByZXNwb25zZS5oZWFkZXJzLmhhcyhzZXNzaW9uSWRLZXkpKSB7XHJcbiAgICAgIHRoaXMuY29udGV4dC5yZXN0U2VydmljZS5zZXNzaW9uU2VydmljZS5zZXRCZVNlc3Npb25JZChyZXNwb25zZS5oZWFkZXJzLmdldChzZXNzaW9uSWRLZXkpKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19 |
@@ -490,2 +490,16 @@ /** | ||
}; | ||
/** | ||
* 清空vo变量变更 | ||
*/ | ||
/** | ||
* 清空vo变量变更 | ||
* @return {?} | ||
*/ | ||
BefRepository.prototype.clearAllVariableChanges = /** | ||
* 清空vo变量变更 | ||
* @return {?} | ||
*/ | ||
function () { | ||
this.variableManager.clearChanges(); | ||
}; | ||
BefRepository.decorators = [ | ||
@@ -536,2 +550,2 @@ { type: Injectable } | ||
export { BefRepository }; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVmX3JlcG9zaXRvcnkuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZmFycmlzL2JlZi8iLCJzb3VyY2VzIjpbImxpYi9iZWZfcmVwb3NpdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQVdBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3JELE9BQU8sRUFBRSxZQUFZLEVBQVUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMzQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNqRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7Ozs7OztBQUsvQztJQUN1RCx5Q0FBMEI7SUFpQy9FOztPQUVHO0lBQ0gsdUJBQW9CLFFBQWtCO1FBQXRDLFlBQ0UsaUJBQU8sU0FhUjtRQWRtQixjQUFRLEdBQVIsUUFBUSxDQUFVO1FBR3BDLFdBQVc7UUFDWCxLQUFJLENBQUMsYUFBYSxHQUFHLElBQUksZ0JBQWdCLENBQUMsS0FBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFFakUsV0FBVztRQUNYLEtBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQWEsVUFBVSxDQUFDLENBQUM7O1lBQ3RELFdBQVcsR0FBRyxZQUFZLENBQUMsdUJBQXVCLENBQUMsS0FBSSxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUM7UUFDdkYsS0FB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QXVCLEdBOE43RTs7Ozs7O0lBNU5DLGlDQUEyQjs7Ozs7O0lBZTNCLHNDQUEwQzs7Ozs7O0lBTTFDLHdDQUEyQzs7SUFFM0MsbUNBQThCOzs7Ozs7O0lBSzlCLG9DQUF5Qzs7SUFFekMsa0NBQXlCOzs7OztJQUliLGlDQUEwQjs7QUE0THhDLE9BQU8sRUFBRSxhQUFhLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIEBBdXRob3I6IFdpdHRcclxuICogQERhdGU6IDIwMTgtMTAtMTEgMTc6MzQ6MjZcclxuICogQExhc3QgTW9kaWZpZWQgYnk6IGFhbGl6endlbGxcclxuICogQExhc3QgTW9kaWZpZWQgdGltZTogMjAxOS0wOS0xMSAxNzoyMzoxNVxyXG4gKiBAdG9kb1xyXG4gKiAx44CB5L+u5pS5Y29tbWFuZC1zZXJ2aWNlc+S4reeahERhdGFTZXJ2aWNl77yM6LCD55So5paw55qEQVBJ77ybXHJcbiAqIDLjgIHnp7vpmaREZXByZWNhdGVkQmVmUmVwb3NpdG9yee+8jOWQr+eUqOaWsEFQSe+8m1xyXG4gKiAz44CB5L+u5pS5UmVwb3NpdG9yeeaKveixoeexu++8jOa3u+WKoOaWsEFQSe+8m1xyXG4gKiA044CB5a+5cGF0aOWBmuWkhOeQhu+8jOS/ruaUueS4uuaVsOe7hOOAglxyXG4gKi9cclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgTWV0YWRhdGFVdGlsLCBFbnRpdHksIEFwcENvbnRleHQgfSBmcm9tICdAZmFycmlzL2RldmtpdCc7XHJcblxyXG5pbXBvcnQgeyBOR19WQVJJQUJMRSB9IGZyb20gJy4vZGVjb3JhdG9ycyc7XHJcbmltcG9ydCB7IERlcHJlY2F0ZWRCZWZSZXBvc2l0b3J5IH0gZnJvbSAnLi9kZXByZWNhdGVkL2RlcHJlY2F0ZWRfYmVmX3JlcG9zaXRvcnknO1xyXG5pbXBvcnQgeyBCZWZFbnRpdHlNYW5hZ2VyIH0gZnJvbSAnLi9iZWZfZW50aXR5X21hbmFnZXInO1xyXG5pbXBvcnQgeyBCZWZWYXJpYWJsZU1hbmFnZXIgfSBmcm9tICcuL2JlZl92YXJpYWJsZV9tYW5hZ2VyJztcclxuaW1wb3J0IHsgQmVmRGF0YVNlcnZpY2UgfSBmcm9tICcuL2JlZl9kYXRhX3NlcnZpY2UnO1xyXG5pbXBvcnQgeyBCZWZQcm94eSB9IGZyb20gJy4vYmVmX3Byb3h5JztcclxuaW1wb3J0IHsgQmVmUHJveHlFeHRlbmQgfSBmcm9tICcuL2JlZl9wcm94eV9leHRlbmQnO1xyXG5pbXBvcnQgeyBCRV9TRVJWRVJfVVJJX1RPS0VOIH0gZnJvbSAnLi90b2tlbnMnO1xyXG4vKipcclxuICogQkVG5a6e5L2T5LuT5YKoXHJcbiAqIHRoaXMuYXBpVXJp77yaYXBpL3NjbS9zZC92MS4wL2VtcHNlcnZpY2XvvIzliY3lkI7lnYfkuI3luKYvXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmFic3RyYWN0IGNsYXNzIEJlZlJlcG9zaXRvcnk8VCBleHRlbmRzIEVudGl0eT4gZXh0ZW5kcyBEZXByZWNhdGVkQmVmUmVwb3NpdG9yeTxUPiB7XHJcblxyXG4gIHByaXZhdGUgYmVmUHJveHk6IEJlZlByb3h5O1xyXG4gIC8qKlxyXG4gICAqIEJlZuS7o+eQhlxyXG4gICAqL1xyXG4gIHB1YmxpYyBzZXQgcHJveHkodmFsdWUpIHtcclxuICAgIHRoaXMuYmVmUHJveHkgPSB2YWx1ZTtcclxuICAgIHRoaXMuYmVmUHJveHkuc2V0UHJveHlFeHRlbmQobmV3IEJlZlByb3h5RXh0ZW5kKHRoaXMpKTtcclxuICB9XHJcbiAgcHVibGljIGdldCBwcm94eSgpOiBCZWZQcm94eSB7XHJcbiAgICByZXR1cm4gdGhpcy5iZWZQcm94eTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICog5a6e5L2T566h55CG5ZmoXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgcHVibGljIGVudGl0eU1hbmFnZXI6IEJlZkVudGl0eU1hbmFnZXI8VD47XHJcblxyXG4gIC8qKlxyXG4gICAqIOWPmOmHj+euoeeQhuWZqFxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIHB1YmxpYyB2YXJpYWJsZU1hbmFnZXI6IEJlZlZhcmlhYmxlTWFuYWdlcjtcclxuXHJcbiAgcHVibGljIGFwcENvbnRleHQ6IEFwcENvbnRleHQ7XHJcbiAgLyoqXHJcbiAgICog5Y+W5pWw5pyN5YqhXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGRhdGFTZXJ2aWNlOiBCZWZEYXRhU2VydmljZTxUPjtcclxuXHJcbiAgcHVibGljIHNlcnZlclVyaTogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIOaehOmAoOWHveaVsFxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICBzdXBlcigpO1xyXG5cclxuICAgIC8vIOWIneWni+WMluWunuS9k+euoeeQhuWZqFxyXG4gICAgdGhpcy5lbnRpdHlNYW5hZ2VyID0gbmV3IEJlZkVudGl0eU1hbmFnZXIodGhpcy5lbnRpdHlDb2xsZWN0aW9uKTtcclxuXHJcbiAgICAvLyDliJ3lp4vljJblj5jph4/nrqHnkIblmahcclxuICAgIHRoaXMuYXBwQ29udGV4dCA9IHRoaXMuaW5qZWN0b3IuZ2V0PEFwcENvbnRleHQ+KEFwcENvbnRleHQpO1xyXG4gICAgY29uc3QgbmdWYXJpYWJsZXMgPSBNZXRhZGF0YVV0aWwuZ2V0UHJvcHNNZXRhZGF0YXNCeU5hbWUodGhpcy5jb25zdHJ1Y3RvciwgTkdfVkFSSUFCTEUpO1xyXG4gICAgdGhpcy52YXJpYWJsZU1hbmFnZXIgPSBuZXcgQmVmVmFyaWFibGVNYW5hZ2VyKHRoaXMuYXBwQ29udGV4dCwgbmdWYXJpYWJsZXMsIHRoaXMuaW5qZWN0b3IpO1xyXG5cclxuICAgIC8vIOWIneWni+WMlkRhdGFTZXJ2aWNlXHJcbiAgICB0aGlzLmRhdGFTZXJ2aWNlID0gbmV3IEJlZkRhdGFTZXJ2aWNlKHRoaXMuaW5qZWN0b3IsIHRoaXMpO1xyXG4gICAgdGhpcy5zZXJ2ZXJVcmkgPSBpbmplY3Rvci5nZXQ8c3RyaW5nPihCRV9TRVJWRVJfVVJJX1RPS0VOKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOiOt+WPluWunuS9k+aVsOe7hFxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRFbnRpdGllcyhmaWx0ZXI6IGFueVtdLCBzb3J0OiBhbnlbXSwgcGFnZVNpemU6IG51bWJlciB8IG51bGwsIHBhZ2VJbmRleDogbnVtYmVyIHwgbnVsbCk6IE9ic2VydmFibGU8VFtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5nZXRMaXN0KGZpbHRlciwgc29ydCwgcGFnZVNpemUsIHBhZ2VJbmRleCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIOiOt+WPluWunuS9k+WIl+ihqFxyXG4gICAqIEBwYXJhbSBmaWx0ZXIg6L+H5ruk5p2h5Lu2XHJcbiAgICogQHBhcmFtIHNvcnRzIOaOkuW6j+adoeS7tlxyXG4gICAqIEBwYXJhbSBwYWdlU2l6ZSDliIbpobXlpKflsI9cclxuICAgKiBAcGFyYW0gcGFnZUluZGV4IOW9k+WJjeWIhumhtVxyXG4gICAqL1xyXG4gIHB1YmxpYyBmaWx0ZXIoZmlsdGVyOiBhbnlbXSA9IFtdLCBzb3J0czogYW55W10gPSBbXSwgcGFnZVNpemU6IG51bWJlciB8IG51bGwsIHBhZ2VJbmRleDogbnVtYmVyIHwgbnVsbCk6IE9ic2VydmFibGU8VFtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5maWx0ZXIoZmlsdGVyLCBzb3J0cywgcGFnZVNpemUsIHBhZ2VJbmRleCk7XHJcbiAgfVxyXG4gIC8vICNlbmRyZWdpb25cclxuICAvKipcclxuICAgKiDpgJrov4dpZOiOt+WPluWunuS9k+aVsOaNruWPiuW4puWIhumhteeahOWtkOihqOaVsOaNrlxyXG4gICAqIEBwYXJhbSBpZCBpZFxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRQYWdlZEJ5SWQoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UuZ2V0UGFnZWRCeUlkKGlkKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICog5YiG6aG15p+l6K+i5LuO6KGoL+S7juS7juihqOaVsOaNrlxyXG4gICAqIEBwYXJhbSBwYXRoIOe7keWumui3r+W+hFxyXG4gICAqIEBwYXJhbSBpZHMg57uR5a6a6Lev5b6E5a+55bqU55qE5Li76ZSuXHJcbiAgICogQHBhcmFtIHBhZ2VJbmRleCDpobXnoIFcclxuICAgKiBAcGFyYW0gcGFnZVNpemUg5YiG6aG15aSn5bCPXHJcbiAgICogQHBhcmFtIGZpbHRlciDov4fmu6TmnaHku7ZcclxuICAgKiBAcGFyYW0gc29ydCDmjpLluo9cclxuICAgKi9cclxuICBwdWJsaWMgcXVlcnlDaGlsZChwYXRoczogc3RyaW5nW10sIHBhZ2VJbmRleDogbnVtYmVyLCBwYWdlU2l6ZTogbnVtYmVyLCBmaWx0ZXI/OiBzdHJpbmcsIHNvcnQ/OiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLnF1ZXJ5Q2hpbGQocGF0aHMsIHBhZ2VJbmRleCwgcGFnZVNpemUsIGZpbHRlciwgc29ydCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIOiOt+WPluS4u+mUruS4umlk55qE5a6e5L2TXHJcbiAgICogQHBhcmFtIGlkIOWunuS9k2lkXHJcbiAgICovXHJcbiAgcHVibGljIGdldEVudGl0eUJ5SWQoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UuZ2V0QnlJZChpZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDmm7TmlrDlrp7kvZPmlbDmja5cclxuICAgKi9cclxuICBwdWJsaWMgdXBkYXRlRW50aXR5QnlJZChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxUPiB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS51cGRhdGVCeUlkKGlkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOabtOaWsOWunuS9k+aVsOaNruW5tuWKoOmUgVxyXG4gICAqL1xyXG4gIHB1YmxpYyBlZGl0RW50aXR5QnlJZChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxUPiB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5lZGl0QnlJZChpZCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqXHJcbiAgICog5Yib5bu65a6e5L2TXHJcbiAgICovXHJcbiAgcHVibGljIGNyZWF0ZUVudGl0eShkZWZhdWx0VmFsdWU/OiBhbnkpOiBPYnNlcnZhYmxlPFQ+IHtcclxuICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLmNyZWF0ZShkZWZhdWx0VmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog6L+95Yqg5a6e5L2TXHJcbiAgICovXHJcbiAgcHVibGljIGFwcGVuZEVudGl0eShkZWZhdWx0VmFsdWU/OiBhbnkpOiBPYnNlcnZhYmxlPFQ+IHtcclxuICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLmFwcGVuZChkZWZhdWx0VmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGluc2VydChwb3NpdGlvbjogMSB8IC0xLCBkZWZhdWx0VmFsdWU/OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UuaW5zZXJ0KHBvc2l0aW9uLCBkZWZhdWx0VmFsdWUpO1xyXG4gIH1cclxuICBwdWJsaWMgaW5zZXJ0QnlQYXRoKHBhdGg6IHN0cmluZywgcG9zaXRpb246IDEgfCAtMSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5pbnNlcnRCeVBhdGgocGF0aCwgcG9zaXRpb24pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiDliJvlu7rlrZDlrp7kvZPvvIzlubbov73liqBcclxuICAgKiBAcGFyYW0gZnBhdGgg54i26Lev5b6E77yM5qC85byP5b2i5aaC77yaLzEvZWR1c++8iOS7juihqO+8ieaIli8xL2VkdXMvMi9ncmFkZXPvvIjku47ku47ooajvvIlcclxuICAgKi9cclxuICBwdWJsaWMgYXBwZW5kRW50aXR5QnlQYXRoKGZwYXRoOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEVudGl0eT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UuYXBwZW5kQnlQYXRoKGZwYXRoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOagueaNrmlk5Yig6Zmk5a6e5L2TXHJcbiAgICovXHJcbiAgcHVibGljIHJlbW92ZUVudGl0eUJ5SWQoaWQ6IHN0cmluZywgaWZTYXZlPzogYm9vbGVhbik6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UucmVtb3ZlQnlJZChpZCwgaWZTYXZlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOagueaNrmlk5Yig6Zmk5a6e5L2T5bm25omn6KGM5L+d5a2YXHJcbiAgICovXHJcbiAgcHVibGljIHJlbW92ZUVudGl0eUFuZFNhdmVCeUlkKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLnJlbW92ZUFuZFNhdmVCeUlkKGlkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOWIoOmZpOWtkOe6p1xyXG4gICAqL1xyXG4gIHB1YmxpYyByZW1vdmVFbnRpdHlCeVBhdGgoZnBhdGg6IHN0cmluZywgaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UucmVtb3ZlQnlQYXRoKGZwYXRoLCBpZCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIOaJuemHj+WIoOmZpOWtkOe6p1xyXG4gICAqIEBwYXJhbSBmUGF0aCDot6/lvoRcclxuICAgKiBAcGFyYW0gaWRzICAg5a2Q6ZuGaWTpm4blkIhcclxuICAgKi9cclxuICBwdWJsaWMgYmF0Y2hSZW1vdmVCeVBhdGgoZlBhdGg6IHN0cmluZywgaWRzOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLmJhdGNoUmVtb3ZlQnlQYXRoKGZQYXRoLCBpZHMpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiDkv53lrZjkuLvplK7kuLppZOeahOWunuS9k1xyXG4gICAqL1xyXG4gIHB1YmxpYyBzYXZlRW50aXR5QnlJZChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5hcHBseUNoYW5nZXNCeUlkKGlkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOaJuemHj+S/neWtmFxyXG4gICAqL1xyXG4gIHB1YmxpYyBzYXZlRW50aXRpZXMoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5hcHBseUNoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOWPlua2iOWunuS9k+WPmOabtFxyXG4gICAqL1xyXG4gIHB1YmxpYyBjYW5jZWxFbnRpdHlDaGFuZ2VzKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UuY2FuY2VsQ2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5om56YeP5paw5aKe5LuO6KGoL+S7juS7juihqOaVsOaNrlxyXG4gICAqIEBwYXJhbSBwYXRoIOWunuS9k+e7keWumui3r+W+hO+8jGxpa2UgMS9jaGlsZHMgb3IgMS9jaGlsZHMvMTEvY2hpbGRjaGlsZHNcclxuICAgKiBAcGFyYW0gZGVmYXVsdFZhbHVlcyDpu5jorqTlrp7kvZPmlbDmja7mlbDnu4RcclxuICAgKiBAZGVzY3JpcHRpb24g5ZCO56uv5o6l5Y+j5Y+q5pSv5oyB5om56YeP5paw5aKe5a2Q6KGo77yM5om56YeP5paw5aKe5Li76KGo55uu5YmN5LiN5pSv5oyBXHJcbiAgICovXHJcbiAgcHVibGljIGJhdGNoQXBwZW5kQnlQYXRoKHBhdGg6IHN0cmluZyxkZWZhdWx0VmFsdWVzOiBBcnJheTxhbnk+KTogT2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UuYmF0Y2hBcHBlbmRCeVBhdGgocGF0aCxkZWZhdWx0VmFsdWVzKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICog5om56YeP5paw5aKe5Li76KGo5pWw5o2uXHJcbiAgICogQHBhcmFtIGRlZmF1bHRWYWx1ZXMg6buY6K6k5YC8XHJcbiAgICogQHJldHVybnMgXHJcbiAgICovXHJcbiAgcHVibGljIGJhdGNoQXBwZW5kKGRlZmF1bHRWYWx1ZXM6IEFycmF5PGFueT4pOiBPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5iYXRjaEFwcGVuZChkZWZhdWx0VmFsdWVzKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICog5riF56m6UmVwb3NpdG955YaF55qE5pWw5o2u5ZKM5Y+Y6YePXHJcbiAgICovXHJcbiAgcHVibGljIHJlc2V0KCkge1xyXG4gICAgdGhpcy5lbnRpdHlNYW5hZ2VyLnJlc2V0KCk7XHJcbiAgICB0aGlzLnZhcmlhYmxlTWFuYWdlci5yZXNldCgpO1xyXG4gICAgdGhpcy5yZXN0U2VydmljZS5zZXNzaW9uU2VydmljZS5jbGVhckJlU2Vzc2lvbklkKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDojrflj5ZJbmplY3Rvcu+8iOWklumDqOivt+WLv+S9v+eUqO+8iVxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRJbmplY3RvcigpOiBJbmplY3RvciB7XHJcbiAgICByZXR1cm4gdGhpcy5pbmplY3RvcjtcclxuICB9XHJcbiAgXHJcbn1cclxuXHJcbmV4cG9ydCB7IEJlZlJlcG9zaXRvcnkgfTtcclxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVmX3JlcG9zaXRvcnkuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZmFycmlzL2JlZi8iLCJzb3VyY2VzIjpbImxpYi9iZWZfcmVwb3NpdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQVdBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3JELE9BQU8sRUFBRSxZQUFZLEVBQVUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMzQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNqRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7Ozs7OztBQUsvQztJQUN1RCx5Q0FBMEI7SUFpQy9FOztPQUVHO0lBQ0gsdUJBQW9CLFFBQWtCO1FBQXRDLFlBQ0UsaUJBQU8sU0FhUjtRQWRtQixjQUFRLEdBQVIsUUFBUSxDQUFVO1FBR3BDLFdBQVc7UUFDWCxLQUFJLENBQUMsYUFBYSxHQUFHLElBQUksZ0JBQWdCLENBQUMsS0FBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFFakUsV0FBVztRQUNYLEtBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQWEsVUFBVSxDQUFDLENBQUM7O1lBQ3RELFdBQVcsR0FBRyxZQUFZLENBQUMsdUJBQXVCLENBQUMsS0FBSSxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUM7UUFDdkYsS0FB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QUFZLEVBQUUsQ0FBQztJQUN0QyxDQUFDOztnQkFuT0YsVUFBVTs7OztnQkFqQlUsUUFBUTs7SUFzUDdCLG9CQUFDO0NBQUEsQUFyT0QsQ0FDdUQsdUJBQXVCLEdBb083RTs7Ozs7O0lBbE9DLGlDQUEyQjs7Ozs7O0lBZTNCLHNDQUEwQzs7Ozs7O0lBTTFDLHdDQUEyQzs7SUFFM0MsbUNBQThCOzs7Ozs7O0lBSzlCLG9DQUF5Qzs7SUFFekMsa0NBQXlCOzs7OztJQUliLGlDQUEwQjs7QUFrTXhDLE9BQU8sRUFBRSxhQUFhLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIEBBdXRob3I6IFdpdHRcclxuICogQERhdGU6IDIwMTgtMTAtMTEgMTc6MzQ6MjZcclxuICogQExhc3QgTW9kaWZpZWQgYnk6IGFhbGl6endlbGxcclxuICogQExhc3QgTW9kaWZpZWQgdGltZTogMjAxOS0wOS0xMSAxNzoyMzoxNVxyXG4gKiBAdG9kb1xyXG4gKiAx44CB5L+u5pS5Y29tbWFuZC1zZXJ2aWNlc+S4reeahERhdGFTZXJ2aWNl77yM6LCD55So5paw55qEQVBJ77ybXHJcbiAqIDLjgIHnp7vpmaREZXByZWNhdGVkQmVmUmVwb3NpdG9yee+8jOWQr+eUqOaWsEFQSe+8m1xyXG4gKiAz44CB5L+u5pS5UmVwb3NpdG9yeeaKveixoeexu++8jOa3u+WKoOaWsEFQSe+8m1xyXG4gKiA044CB5a+5cGF0aOWBmuWkhOeQhu+8jOS/ruaUueS4uuaVsOe7hOOAglxyXG4gKi9cclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgTWV0YWRhdGFVdGlsLCBFbnRpdHksIEFwcENvbnRleHQgfSBmcm9tICdAZmFycmlzL2RldmtpdCc7XHJcblxyXG5pbXBvcnQgeyBOR19WQVJJQUJMRSB9IGZyb20gJy4vZGVjb3JhdG9ycyc7XHJcbmltcG9ydCB7IERlcHJlY2F0ZWRCZWZSZXBvc2l0b3J5IH0gZnJvbSAnLi9kZXByZWNhdGVkL2RlcHJlY2F0ZWRfYmVmX3JlcG9zaXRvcnknO1xyXG5pbXBvcnQgeyBCZWZFbnRpdHlNYW5hZ2VyIH0gZnJvbSAnLi9iZWZfZW50aXR5X21hbmFnZXInO1xyXG5pbXBvcnQgeyBCZWZWYXJpYWJsZU1hbmFnZXIgfSBmcm9tICcuL2JlZl92YXJpYWJsZV9tYW5hZ2VyJztcclxuaW1wb3J0IHsgQmVmRGF0YVNlcnZpY2UgfSBmcm9tICcuL2JlZl9kYXRhX3NlcnZpY2UnO1xyXG5pbXBvcnQgeyBCZWZQcm94eSB9IGZyb20gJy4vYmVmX3Byb3h5JztcclxuaW1wb3J0IHsgQmVmUHJveHlFeHRlbmQgfSBmcm9tICcuL2JlZl9wcm94eV9leHRlbmQnO1xyXG5pbXBvcnQgeyBCRV9TRVJWRVJfVVJJX1RPS0VOIH0gZnJvbSAnLi90b2tlbnMnO1xyXG4vKipcclxuICogQkVG5a6e5L2T5LuT5YKoXHJcbiAqIHRoaXMuYXBpVXJp77yaYXBpL3NjbS9zZC92MS4wL2VtcHNlcnZpY2XvvIzliY3lkI7lnYfkuI3luKYvXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmFic3RyYWN0IGNsYXNzIEJlZlJlcG9zaXRvcnk8VCBleHRlbmRzIEVudGl0eT4gZXh0ZW5kcyBEZXByZWNhdGVkQmVmUmVwb3NpdG9yeTxUPiB7XHJcblxyXG4gIHByaXZhdGUgYmVmUHJveHk6IEJlZlByb3h5O1xyXG4gIC8qKlxyXG4gICAqIEJlZuS7o+eQhlxyXG4gICAqL1xyXG4gIHB1YmxpYyBzZXQgcHJveHkodmFsdWUpIHtcclxuICAgIHRoaXMuYmVmUHJveHkgPSB2YWx1ZTtcclxuICAgIHRoaXMuYmVmUHJveHkuc2V0UHJveHlFeHRlbmQobmV3IEJlZlByb3h5RXh0ZW5kKHRoaXMpKTtcclxuICB9XHJcbiAgcHVibGljIGdldCBwcm94eSgpOiBCZWZQcm94eSB7XHJcbiAgICByZXR1cm4gdGhpcy5iZWZQcm94eTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICog5a6e5L2T566h55CG5ZmoXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgcHVibGljIGVudGl0eU1hbmFnZXI6IEJlZkVudGl0eU1hbmFnZXI8VD47XHJcblxyXG4gIC8qKlxyXG4gICAqIOWPmOmHj+euoeeQhuWZqFxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIHB1YmxpYyB2YXJpYWJsZU1hbmFnZXI6IEJlZlZhcmlhYmxlTWFuYWdlcjtcclxuXHJcbiAgcHVibGljIGFwcENvbnRleHQ6IEFwcENvbnRleHQ7XHJcbiAgLyoqXHJcbiAgICog5Y+W5pWw5pyN5YqhXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGRhdGFTZXJ2aWNlOiBCZWZEYXRhU2VydmljZTxUPjtcclxuXHJcbiAgcHVibGljIHNlcnZlclVyaTogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIOaehOmAoOWHveaVsFxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICBzdXBlcigpO1xyXG5cclxuICAgIC8vIOWIneWni+WMluWunuS9k+euoeeQhuWZqFxyXG4gICAgdGhpcy5lbnRpdHlNYW5hZ2VyID0gbmV3IEJlZkVudGl0eU1hbmFnZXIodGhpcy5lbnRpdHlDb2xsZWN0aW9uKTtcclxuXHJcbiAgICAvLyDliJ3lp4vljJblj5jph4/nrqHnkIblmahcclxuICAgIHRoaXMuYXBwQ29udGV4dCA9IHRoaXMuaW5qZWN0b3IuZ2V0PEFwcENvbnRleHQ+KEFwcENvbnRleHQpO1xyXG4gICAgY29uc3QgbmdWYXJpYWJsZXMgPSBNZXRhZGF0YVV0aWwuZ2V0UHJvcHNNZXRhZGF0YXNCeU5hbWUodGhpcy5jb25zdHJ1Y3RvciwgTkdfVkFSSUFCTEUpO1xyXG4gICAgdGhpcy52YXJpYWJsZU1hbmFnZXIgPSBuZXcgQmVmVmFyaWFibGVNYW5hZ2VyKHRoaXMuYXBwQ29udGV4dCwgbmdWYXJpYWJsZXMsIHRoaXMuaW5qZWN0b3IpO1xyXG5cclxuICAgIC8vIOWIneWni+WMlkRhdGFTZXJ2aWNlXHJcbiAgICB0aGlzLmRhdGFTZXJ2aWNlID0gbmV3IEJlZkRhdGFTZXJ2aWNlKHRoaXMuaW5qZWN0b3IsIHRoaXMpO1xyXG4gICAgdGhpcy5zZXJ2ZXJVcmkgPSBpbmplY3Rvci5nZXQ8c3RyaW5nPihCRV9TRVJWRVJfVVJJX1RPS0VOKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOiOt+WPluWunuS9k+aVsOe7hFxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRFbnRpdGllcyhmaWx0ZXI6IGFueVtdLCBzb3J0OiBhbnlbXSwgcGFnZVNpemU6IG51bWJlciB8IG51bGwsIHBhZ2VJbmRleDogbnVtYmVyIHwgbnVsbCk6IE9ic2VydmFibGU8VFtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5nZXRMaXN0KGZpbHRlciwgc29ydCwgcGFnZVNpemUsIHBhZ2VJbmRleCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIOiOt+WPluWunuS9k+WIl+ihqFxyXG4gICAqIEBwYXJhbSBmaWx0ZXIg6L+H5ruk5p2h5Lu2XHJcbiAgICogQHBhcmFtIHNvcnRzIOaOkuW6j+adoeS7tlxyXG4gICAqIEBwYXJhbSBwYWdlU2l6ZSDliIbpobXlpKflsI9cclxuICAgKiBAcGFyYW0gcGFnZUluZGV4IOW9k+WJjeWIhumhtVxyXG4gICAqL1xyXG4gIHB1YmxpYyBmaWx0ZXIoZmlsdGVyOiBhbnlbXSA9IFtdLCBzb3J0czogYW55W10gPSBbXSwgcGFnZVNpemU6IG51bWJlciB8IG51bGwsIHBhZ2VJbmRleDogbnVtYmVyIHwgbnVsbCk6IE9ic2VydmFibGU8VFtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5maWx0ZXIoZmlsdGVyLCBzb3J0cywgcGFnZVNpemUsIHBhZ2VJbmRleCk7XHJcbiAgfVxyXG4gIC8vICNlbmRyZWdpb25cclxuICAvKipcclxuICAgKiDpgJrov4dpZOiOt+WPluWunuS9k+aVsOaNruWPiuW4puWIhumhteeahOWtkOihqOaVsOaNrlxyXG4gICAqIEBwYXJhbSBpZCBpZFxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRQYWdlZEJ5SWQoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UuZ2V0UGFnZWRCeUlkKGlkKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICog5YiG6aG15p+l6K+i5LuO6KGoL+S7juS7juihqOaVsOaNrlxyXG4gICAqIEBwYXJhbSBwYXRoIOe7keWumui3r+W+hFxyXG4gICAqIEBwYXJhbSBpZHMg57uR5a6a6Lev5b6E5a+55bqU55qE5Li76ZSuXHJcbiAgICogQHBhcmFtIHBhZ2VJbmRleCDpobXnoIFcclxuICAgKiBAcGFyYW0gcGFnZVNpemUg5YiG6aG15aSn5bCPXHJcbiAgICogQHBhcmFtIGZpbHRlciDov4fmu6TmnaHku7ZcclxuICAgKiBAcGFyYW0gc29ydCDmjpLluo9cclxuICAgKi9cclxuICBwdWJsaWMgcXVlcnlDaGlsZChwYXRoczogc3RyaW5nW10sIHBhZ2VJbmRleDogbnVtYmVyLCBwYWdlU2l6ZTogbnVtYmVyLCBmaWx0ZXI/OiBzdHJpbmcsIHNvcnQ/OiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLnF1ZXJ5Q2hpbGQocGF0aHMsIHBhZ2VJbmRleCwgcGFnZVNpemUsIGZpbHRlciwgc29ydCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIOiOt+WPluS4u+mUruS4umlk55qE5a6e5L2TXHJcbiAgICogQHBhcmFtIGlkIOWunuS9k2lkXHJcbiAgICovXHJcbiAgcHVibGljIGdldEVudGl0eUJ5SWQoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UuZ2V0QnlJZChpZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDmm7TmlrDlrp7kvZPmlbDmja5cclxuICAgKi9cclxuICBwdWJsaWMgdXBkYXRlRW50aXR5QnlJZChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxUPiB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS51cGRhdGVCeUlkKGlkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOabtOaWsOWunuS9k+aVsOaNruW5tuWKoOmUgVxyXG4gICAqL1xyXG4gIHB1YmxpYyBlZGl0RW50aXR5QnlJZChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxUPiB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5lZGl0QnlJZChpZCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqXHJcbiAgICog5Yib5bu65a6e5L2TXHJcbiAgICovXHJcbiAgcHVibGljIGNyZWF0ZUVudGl0eShkZWZhdWx0VmFsdWU/OiBhbnkpOiBPYnNlcnZhYmxlPFQ+IHtcclxuICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLmNyZWF0ZShkZWZhdWx0VmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog6L+95Yqg5a6e5L2TXHJcbiAgICovXHJcbiAgcHVibGljIGFwcGVuZEVudGl0eShkZWZhdWx0VmFsdWU/OiBhbnkpOiBPYnNlcnZhYmxlPFQ+IHtcclxuICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLmFwcGVuZChkZWZhdWx0VmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGluc2VydChwb3NpdGlvbjogMSB8IC0xLCBkZWZhdWx0VmFsdWU/OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UuaW5zZXJ0KHBvc2l0aW9uLCBkZWZhdWx0VmFsdWUpO1xyXG4gIH1cclxuICBwdWJsaWMgaW5zZXJ0QnlQYXRoKHBhdGg6IHN0cmluZywgcG9zaXRpb246IDEgfCAtMSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5pbnNlcnRCeVBhdGgocGF0aCwgcG9zaXRpb24pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiDliJvlu7rlrZDlrp7kvZPvvIzlubbov73liqBcclxuICAgKiBAcGFyYW0gZnBhdGgg54i26Lev5b6E77yM5qC85byP5b2i5aaC77yaLzEvZWR1c++8iOS7juihqO+8ieaIli8xL2VkdXMvMi9ncmFkZXPvvIjku47ku47ooajvvIlcclxuICAgKi9cclxuICBwdWJsaWMgYXBwZW5kRW50aXR5QnlQYXRoKGZwYXRoOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEVudGl0eT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UuYXBwZW5kQnlQYXRoKGZwYXRoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOagueaNrmlk5Yig6Zmk5a6e5L2TXHJcbiAgICovXHJcbiAgcHVibGljIHJlbW92ZUVudGl0eUJ5SWQoaWQ6IHN0cmluZywgaWZTYXZlPzogYm9vbGVhbik6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UucmVtb3ZlQnlJZChpZCwgaWZTYXZlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOagueaNrmlk5Yig6Zmk5a6e5L2T5bm25omn6KGM5L+d5a2YXHJcbiAgICovXHJcbiAgcHVibGljIHJlbW92ZUVudGl0eUFuZFNhdmVCeUlkKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLnJlbW92ZUFuZFNhdmVCeUlkKGlkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOWIoOmZpOWtkOe6p1xyXG4gICAqL1xyXG4gIHB1YmxpYyByZW1vdmVFbnRpdHlCeVBhdGgoZnBhdGg6IHN0cmluZywgaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UucmVtb3ZlQnlQYXRoKGZwYXRoLCBpZCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIOaJuemHj+WIoOmZpOWtkOe6p1xyXG4gICAqIEBwYXJhbSBmUGF0aCDot6/lvoRcclxuICAgKiBAcGFyYW0gaWRzICAg5a2Q6ZuGaWTpm4blkIhcclxuICAgKi9cclxuICBwdWJsaWMgYmF0Y2hSZW1vdmVCeVBhdGgoZlBhdGg6IHN0cmluZywgaWRzOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLmJhdGNoUmVtb3ZlQnlQYXRoKGZQYXRoLCBpZHMpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiDkv53lrZjkuLvplK7kuLppZOeahOWunuS9k1xyXG4gICAqL1xyXG4gIHB1YmxpYyBzYXZlRW50aXR5QnlJZChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5hcHBseUNoYW5nZXNCeUlkKGlkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOaJuemHj+S/neWtmFxyXG4gICAqL1xyXG4gIHB1YmxpYyBzYXZlRW50aXRpZXMoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5hcHBseUNoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOWPlua2iOWunuS9k+WPmOabtFxyXG4gICAqL1xyXG4gIHB1YmxpYyBjYW5jZWxFbnRpdHlDaGFuZ2VzKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UuY2FuY2VsQ2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5om56YeP5paw5aKe5LuO6KGoL+S7juS7juihqOaVsOaNrlxyXG4gICAqIEBwYXJhbSBwYXRoIOWunuS9k+e7keWumui3r+W+hO+8jGxpa2UgMS9jaGlsZHMgb3IgMS9jaGlsZHMvMTEvY2hpbGRjaGlsZHNcclxuICAgKiBAcGFyYW0gZGVmYXVsdFZhbHVlcyDpu5jorqTlrp7kvZPmlbDmja7mlbDnu4RcclxuICAgKiBAZGVzY3JpcHRpb24g5ZCO56uv5o6l5Y+j5Y+q5pSv5oyB5om56YeP5paw5aKe5a2Q6KGo77yM5om56YeP5paw5aKe5Li76KGo55uu5YmN5LiN5pSv5oyBXHJcbiAgICovXHJcbiAgcHVibGljIGJhdGNoQXBwZW5kQnlQYXRoKHBhdGg6IHN0cmluZyxkZWZhdWx0VmFsdWVzOiBBcnJheTxhbnk+KTogT2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UuYmF0Y2hBcHBlbmRCeVBhdGgocGF0aCxkZWZhdWx0VmFsdWVzKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICog5om56YeP5paw5aKe5Li76KGo5pWw5o2uXHJcbiAgICogQHBhcmFtIGRlZmF1bHRWYWx1ZXMg6buY6K6k5YC8XHJcbiAgICogQHJldHVybnMgXHJcbiAgICovXHJcbiAgcHVibGljIGJhdGNoQXBwZW5kKGRlZmF1bHRWYWx1ZXM6IEFycmF5PGFueT4pOiBPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5iYXRjaEFwcGVuZChkZWZhdWx0VmFsdWVzKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICog5riF56m6UmVwb3NpdG955YaF55qE5pWw5o2u5ZKM5Y+Y6YePXHJcbiAgICovXHJcbiAgcHVibGljIHJlc2V0KCkge1xyXG4gICAgdGhpcy5lbnRpdHlNYW5hZ2VyLnJlc2V0KCk7XHJcbiAgICB0aGlzLnZhcmlhYmxlTWFuYWdlci5yZXNldCgpO1xyXG4gICAgdGhpcy5yZXN0U2VydmljZS5zZXNzaW9uU2VydmljZS5jbGVhckJlU2Vzc2lvbklkKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDojrflj5ZJbmplY3Rvcu+8iOWklumDqOivt+WLv+S9v+eUqO+8iVxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRJbmplY3RvcigpOiBJbmplY3RvciB7XHJcbiAgICByZXR1cm4gdGhpcy5pbmplY3RvcjtcclxuICB9XHJcbiAgLyoqXHJcbiAgICog5riF56m6dm/lj5jph4/lj5jmm7RcclxuICAgKi9cclxuICBwdWJsaWMgY2xlYXJBbGxWYXJpYWJsZUNoYW5nZXMoKXtcclxuICAgIHRoaXMudmFyaWFibGVNYW5hZ2VyLmNsZWFyQ2hhbmdlcygpO1xyXG4gIH1cclxuICBcclxufVxyXG5cclxuZXhwb3J0IHsgQmVmUmVwb3NpdG9yeSB9O1xyXG4iXX0= |
@@ -111,3 +111,3 @@ /** | ||
if (_this.isValueEqual(newValue, oldValue) === false) { | ||
_this.innerValueMap.set(varName, newValue); | ||
// this.innerValueMap.set(varName, newValue); | ||
_this.appendToChangeInfo(changeDetail, varName, newValue); | ||
@@ -136,2 +136,32 @@ } | ||
/** | ||
* 清空vo变量变更集 | ||
*/ | ||
/** | ||
* 清空vo变量变更集 | ||
* @return {?} | ||
*/ | ||
BefVariableManager.prototype.clearChanges = /** | ||
* 清空vo变量变更集 | ||
* @return {?} | ||
*/ | ||
function () { | ||
var _this = this; | ||
this.ngVariableMap.forEach((/** | ||
* @param {?} ngVariable | ||
* @param {?} varName | ||
* @return {?} | ||
*/ | ||
function (ngVariable, varName) { | ||
/** @type {?} */ | ||
var mapping = ngVariable.mapping; | ||
/** @type {?} */ | ||
var newValue = _this.getValueFromUIState(mapping); | ||
/** @type {?} */ | ||
var oldValue = _this.innerValueMap.get(varName); | ||
if (_this.isValueEqual(newValue, oldValue) === false) { | ||
_this.innerValueMap.set(varName, newValue); | ||
} | ||
})); | ||
}; | ||
/** | ||
* Append changed variable to ChangeDetail instance. | ||
@@ -343,2 +373,2 @@ */ | ||
export { BefVariableManager }; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVmX3ZhcmlhYmxlX21hbmFnZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZmFycmlzL2JlZi8iLCJzb3VyY2VzIjpbImxpYi9iZWZfdmFyaWFibGVfbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQU1BLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQVcsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQWdCLE1BQU0sU0FBUyxDQUFDO0FBRXpELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQU1uRDtJQVlFOztPQUVHO0lBQ0gsNEJBQW9CLFVBQXNCLEVBQVUsV0FBZ0IsRUFBc0IsUUFBa0I7UUFBNUcsaUJBU0M7UUFUbUIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFLO1FBQXNCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFFMUcsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLEdBQUcsRUFBc0IsQ0FBQztRQUNuRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksR0FBRyxFQUFlLENBQUM7UUFFNUMsWUFBWTtRQUNaLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsT0FBTzs7OztRQUFDLFVBQUMsUUFBZ0I7WUFDaEQsS0FBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQzFELENBQUMsRUFBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHOzs7Ozs7SUFDSSwrQ0FBa0I7Ozs7O0lBQXpCLFVBQTBCLFlBQTBCO1FBQXBELGlCQXFCQzs7WUFwQk8sVUFBVSxHQUFHLFlBQVksQ0FB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QWlCO1lBQ3BDLEdBQUcsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBR0Q7Ozs7O09BS0c7Ozs7Ozs7Ozs7O0lBQ0ssOENBQWlCOzs7Ozs7Ozs7O0lBQXpCLFVBQTBCLE9BQWUsRUFBRSxLQUFVOztZQUM3QyxPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRTtRQUNyQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQzNCLENBQUM7OztnQkF4S00sVUFBVTs7Z0JBSVYsUUFBUSx1QkFxQndELFFBQVE7O0lBa0pqRix5QkFBQztDQUFBLEFBaktELElBaUtDOzs7Ozs7O0lBNUpDLDJDQUErQzs7Ozs7O0lBSy9DLDJDQUF3Qzs7Ozs7SUFLNUIsd0NBQThCOzs7OztJQUFFLHlDQUF3Qjs7Ozs7SUFBRSxzQ0FBc0M7O0FBb0o5RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIEBBdXRob3I6IFdpdHRcclxuICogQERhdGU6IDIwMTktMDMtMDUgMTk6NTU6NDRcclxuICogQExhc3QgTW9kaWZpZWQgYnk6IFdpdHRcclxuICogQExhc3QgTW9kaWZpZWQgdGltZTogMjAxOS0wMy0xMyAyMDozNToyOVxyXG4gKi9cclxuaW1wb3J0IHsgZm9ybWF0IH0gZnJvbSAnZGF0ZS1mbnMnO1xyXG5pbXBvcnQgeyBBcHBDb250ZXh0LCBGcmFtZUNvbnRleHQsIFVJU3RhdGUgfSBmcm9tICdAZmFycmlzL2RldmtpdCc7XHJcbmltcG9ydCB7IENoYW5nZURldGFpbFR5cGUsIENoYW5nZURldGFpbCB9IGZyb20gJy4vdHlwZXMnO1xyXG5pbXBvcnQgeyBOZ1ZhcmlhYmxlIH0gZnJvbSAnLi9kZWNvcmF0b3JzJztcclxuaW1wb3J0IHsgQmVmQ2hhbmdlVXRpbCB9IGZyb20gJy4vYmVmX2NoYW5nZV91dGlsJztcclxuaW1wb3J0IHsgSW5qZWN0b3IsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5cclxuLyoqXHJcbiAqIEJl5Y+Y6YeP566h55CG5ZmoXHJcbiAqL1xyXG5jbGFzcyBCZWZWYXJpYWJsZU1hbmFnZXIge1xyXG5cclxuICAvKipcclxuICAgKiDlj5jph4/lhYPmlbDmja5cclxuICAgKi9cclxuICBwcml2YXRlIG5nVmFyaWFibGVNYXA6IE1hcDxzdHJpbmcsIE5nVmFyaWFibGU+O1xyXG5cclxuICAvKipcclxuICAgKiDorr7nva7lgLxcclxuICAgKi9cclxuICBwcml2YXRlIGlubmVyVmFsdWVNYXA6IE1hcDxzdHJpbmcsIGFueT47XHJcblxyXG4gIC8qKlxyXG4gICAqIOaehOmAoOWHveaVsFxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXBwQ29udGV4dDogQXBwQ29udGV4dCwgcHJpdmF0ZSBuZ1ZhcmlhYmxlczogYW55LCBAT3B0aW9uYWwoKSBwcml2YXRlIGluamVjdG9yOiBJbmplY3Rvcikge1xyXG5cclxuICAgIHRoaXMubmdWYXJpYWJsZU1hcCA9IG5ldyBNYXA8c3RyaW5nLCBOZ1ZhcmlhYmxlPigpO1xyXG4gICAgdGhpcy5pbm5lclZhbHVlTWFwID0gbmV3IE1hcDxzdHJpbmcsIGFueT4oKTtcclxuXHJcbiAgICAvLyDph43mlrDnu4Tnu4flj5jph4/lhYPmlbDmja5cclxuICAgIE9iamVjdC5rZXlzKG5nVmFyaWFibGVzKS5mb3JFYWNoKChwcm9wTmFtZTogc3RyaW5nKSA9PiB7XHJcbiAgICAgIHRoaXMubmdWYXJpYWJsZU1hcC5zZXQocHJvcE5hbWUsIG5nVmFyaWFibGVzW3Byb3BOYW1lXSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOiOt+WPluWPmOabtOmbhlxyXG4gICAqL1xyXG4gIHB1YmxpYyBoYW5kbGVDaGFuZ2VEZXRhaWwoY2hhbmdlRGV0YWlsOiBDaGFuZ2VEZXRhaWwpOiB2b2lkIHtcclxuICAgIGNvbnN0IGNoYW5nZUluZm8gPSBjaGFuZ2VEZXRhaWwuQ2hhbmdlSW5mbztcclxuICAgIE9iamVjdC5rZXlzKGNoYW5nZUluZm8pLmZvckVhY2goKHZhck5hbWU6IHN0cmluZykgPT4ge1xyXG4gICAgICAvLyDlj5jph4/lhYPmlbDmja5cclxuICAgICAgY29uc3QgbmdWYXJpYWJsZSA9IHRoaXMubmdWYXJpYWJsZU1hcC5nZXQodmFyTmFtZSk7XHJcbiAgICAgIGlmICghbmdWYXJpYWJsZSkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBtYXBwaW5nID0gbmdWYXJpYWJsZS5tYXBwaW5nO1xyXG5cclxuICAgICAgLy8g5pu05pawVUlTdGF0ZeWPmOabtFxyXG4gICAgICBjb25zdCBuZXdWYWx1ZSA9IGNoYW5nZUluZm9bdmFyTmFtZV07XHJcbiAgICAgIGNvbnN0IG9sZFZhbHVlID0gdGhpcy5pbm5lclZhbHVlTWFwLmdldCh2YXJOYW1lKTtcclxuXHJcbiAgICAgIGlmIChvbGRWYWx1ZSA9PT0gbmV3VmFsdWUpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgLy8g5pu05paw5YC8XHJcbiAgICAgIHRoaXMuc2V0VmFsdWVUb1VJU3RhdGUobWFwcGluZywgbmV3VmFsdWUpO1xyXG4gICAgICB0aGlzLmlubmVyVmFsdWVNYXAuc2V0KHZhck5hbWUsIG5ld1ZhbHVlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQnVpbGQgQ2hhbmdlRGV0YWlsIGluc3RhbmNlIGZvciBhbGwgdmFyaWFibGVzLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBidWlsZENoYW5nZURldGFpbCgpOiBDaGFuZ2VEZXRhaWwge1xyXG4gICAgY29uc3QgY2hhbmdlRGV0YWlsID0gQmVmQ2hhbmdlVXRpbC5jcmVhdGVFbXB0eShDaGFuZ2VEZXRhaWxUeXBlLk1vZGlmeSk7XHJcbiAgICB0aGlzLm5nVmFyaWFibGVNYXAuZm9yRWFjaCgobmdWYXJpYWJsZTogTmdWYXJpYWJsZSwgdmFyTmFtZTogc3RyaW5nKSA9PiB7XHJcbiAgICAgIGNvbnN0IG1hcHBpbmcgPSBuZ1ZhcmlhYmxlLm1hcHBpbmc7XHJcbiAgICAgIGNvbnN0IG5ld1ZhbHVlID0gdGhpcy5nZXRWYWx1ZUZyb21VSVN0YXRlKG1hcHBpbmcpO1xyXG4gICAgICBjb25zdCBvbGRWYWx1ZSA9IHRoaXMuaW5uZXJWYWx1ZU1hcC5nZXQodmFyTmFtZSk7XHJcbiAgICAgIGlmICh0aGlzLmlzVmFsdWVFcXVhbChuZXdWYWx1ZSwgb2xkVmFsdWUpID09PSBmYWxzZSkge1xyXG4gICAgICAgIHRoaXMuaW5uZXJWYWx1ZU1hcC5zZXQodmFyTmFtZSwgbmV3VmFsdWUpO1xyXG4gICAgICAgIHRoaXMuYXBwZW5kVG9DaGFuZ2VJbmZvKGNoYW5nZURldGFpbCwgdmFyTmFtZSwgbmV3VmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAoT2JqZWN0LmtleXMoY2hhbmdlRGV0YWlsLkNoYW5nZUluZm8pLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gY2hhbmdlRGV0YWlsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2xlYXIgdmFyaWFibGUgdmFsdWVzIGNhY2hlZCBpbiB0aGUgaW5uZXJWYWx1ZU1hcCBwcm9wZXJ0eS5cclxuICAgKi9cclxuICBwdWJsaWMgcmVzZXQoKSB7XHJcbiAgICB0aGlzLmlubmVyVmFsdWVNYXAuY2xlYXIoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFwcGVuZCBjaGFuZ2VkIHZhcmlhYmxlIHRvIENoYW5nZURldGFpbCBpbnN0YW5jZS5cclxuICAgKi9cclxuICBwcml2YXRlIGFwcGVuZFRvQ2hhbmdlSW5mbyhjaGFuZ2VEZXRhaWw6IENoYW5nZURldGFpbCwgdmFyTmFtZTogc3RyaW5nLCB2YXJWYWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5pc1VkdFZhcmlhYmxlKHZhclZhbHVlKSA9PT0gdHJ1ZSkge1xyXG4gICAgICBjb25zdCB1ZHRWYXJDaGFuZ2VEZXRhaWwgPSBCZWZDaGFuZ2VVdGlsLmNyZWF0ZUVtcHR5KENoYW5nZURldGFpbFR5cGUuTW9kaWZ5KTtcclxuICAgICAgdWR0VmFyQ2hhbmdlRGV0YWlsLkNoYW5nZUluZm8gPSB2YXJWYWx1ZTtcclxuICAgICAgY2hhbmdlRGV0YWlsLkNoYW5nZUluZm9bdmFyTmFtZV0gPSB1ZHRWYXJDaGFuZ2VEZXRhaWw7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjaGFuZ2VEZXRhaWwuQ2hhbmdlSW5mb1t2YXJOYW1lXSA9IHZhclZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5LuOVUlTdGF0ZeS4iuiOt+WPluWAvFxyXG4gICAqL1xyXG4gIHByaXZhdGUgZ2V0VmFsdWVGcm9tVUlTdGF0ZShtYXBwaW5nOiBzdHJpbmcpOiBhbnkge1xyXG4gICAgY29uc3QgdWlTdGF0ZSA9IHRoaXMuZ2V0Um9vdFVJU3RhdGUoKTtcclxuXHJcbiAgICAvLyDorqHnrpd2YWx1ZVxyXG4gICAgY29uc3QgbWFwcGluZ0FycmF5ID0gbWFwcGluZy5zcGxpdCgnLicpO1xyXG4gICAgY29uc3QgdmFsdWUgPSBtYXBwaW5nQXJyYXkucmVkdWNlKChhY2N1bXVsYXRvcjogYW55LCBjdXJyZW50VmFsdWU6IGFueSkgPT4ge1xyXG4gICAgICByZXR1cm4gYWNjdW11bGF0b3IgPyBhY2N1bXVsYXRvcltjdXJyZW50VmFsdWVdIDogbnVsbDtcclxuICAgIH0sIHVpU3RhdGUpO1xyXG5cclxuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHtcclxuICAgICAgcmV0dXJuIGZvcm1hdCh2YWx1ZSwgJ3l5eXktTU0tZGQgSEg6bW06c3MnKTtcclxuICAgIH1cclxuICAgIHJldHVybiB2YWx1ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOiOt+WPluaguee7hOS7tuS4iueahFVJU3RhdGVcclxuICAgKi9cclxuICBwcml2YXRlIGdldFJvb3RVSVN0YXRlKCk6IFVJU3RhdGUge1xyXG5cclxuICAgIGxldCByb290RnJhbWVDb250ZXh0ID0gdGhpcy5hcHBDb250ZXh0LmZyYW1lQ29udGV4dE1hbmFnZXIuZ2V0Um9vdEZyYW1lQ29udGV4dCgpO1xyXG4gICAgaWYgKHRoaXMuaW5qZWN0b3IpIHtcclxuICAgICAgY29uc3QgZnJhbWVDb250ZXh0ID0gdGhpcy5pbmplY3Rvci5nZXQ8RnJhbWVDb250ZXh0PihGcmFtZUNvbnRleHQsIG51bGwpO1xyXG4gICAgICBpZiAoZnJhbWVDb250ZXh0KSB7XHJcbiAgICAgICAgY29uc3QgdmlydHVhbFJvb3RGcmFtZUNvbnRleHQgPSBmcmFtZUNvbnRleHQuZ2V0VmlydHVhbFJvb3RGcmFtZUNvbnRleHQoKTtcclxuICAgICAgICByb290RnJhbWVDb250ZXh0ID0gdmlydHVhbFJvb3RGcmFtZUNvbnRleHQgfHwgcm9vdEZyYW1lQ29udGV4dDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKCFyb290RnJhbWVDb250ZXh0KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHJldHVybiByb290RnJhbWVDb250ZXh0LnVpU3RhdGU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDlgLzmr5TovoNcclxuICAgKiBAdG9kbyDkuLTml7bph4fnlKjov5nnp43mlrnlvI9cclxuICAgKi9cclxuICBwcml2YXRlIGlzVmFsdWVFcXVhbChzcmNWYWx1ZTogYW55LCBkc3RWYWx1ZTogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoc3JjVmFsdWUpID09PSBKU09OLnN0cmluZ2lmeShkc3RWYWx1ZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGVjayBpZiB0aGUgb2JqZWN0IGlzIGEgcGxhaW4gb2JqZWN0XHJcbiAgICovXHJcbiAgcHJpdmF0ZSBpc1VkdFZhcmlhYmxlKG9iajogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gb2JqICYmIG9iai5jb25zdHJ1Y3RvciAmJlxyXG4gICAgICBvYmoudG9TdHJpbmcoKSA9PT0gJ1tvYmplY3QgT2JqZWN0XScgJiZcclxuICAgICAgb2JqLmNvbnN0cnVjdG9yLnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSgnaXNQcm90b3R5cGVPZicpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIOiuvue9ruWAvOWIsFVJU3RhdGVcclxuICAgKiBAdG9kb++8mlxyXG4gICAqIDHjgIHmnI3liqHlmajnq6/kuI3mlK/mjIHvvJtcclxuICAgKiAy44CB5pel5pyf57G75Z6L5aSE55CG5pa55qGI5b6F5a6a44CCXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzZXRWYWx1ZVRvVUlTdGF0ZShtYXBwaW5nOiBzdHJpbmcsIHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgIGNvbnN0IHVpU3RhdGUgPSB0aGlzLmdldFJvb3RVSVN0YXRlKCk7XHJcbiAgICB1aVN0YXRlW21hcHBpbmddID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuXHJcbn1cclxuXHJcbmV4cG9ydCB7IEJlZlZhcmlhYmxlTWFuYWdlciB9O1xyXG4iXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVmX3ZhcmlhYmxlX21hbmFnZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZmFycmlzL2JlZi8iLCJzb3VyY2VzIjpbImxpYi9iZWZfdmFyaWFibGVfbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQU1BLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQVcsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQWdCLE1BQU0sU0FBUyxDQUFDO0FBRXpELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQU1uRDtJQVlFOztPQUVHO0lBQ0gsNEJBQW9CLFVBQXNCLEVBQVUsV0FBZ0IsRUFBc0IsUUFBa0I7UUFBNUcsaUJBU0M7UUFUbUIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFLO1FBQXNCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFFMUcsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLEdBQUcsRUFBc0IsQ0FBQztRQUNuRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksR0FBRyxFQUFlLENBQUM7UUFFNUMsWUFBWTtRQUNaLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsT0FBTzs7OztRQUFDLFVBQUMsUUFBZ0I7WUFDaEQsS0FBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQzFELENBQUMsRUFBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHOzs7Ozs7SUFDSSwrQ0FBa0I7Ozs7O0lBQXpCLFVBQTBCLFlBQTBCO1FBQXBELGlCQXFCQzs7WUFwQk8sVUFBVSxHQUFHLFlBQVksQ0FB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UUFDRCxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDckIsT0FBTztTQUNSO1FBQ0QsT0FBTyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUM7SUFDbEMsQ0FBQztJQUVEOzs7T0FHRzs7Ozs7Ozs7O0lBQ0sseUNBQVk7Ozs7Ozs7O0lBQXBCLFVBQXFCLFFBQWEsRUFBRSxRQUFhO1FBQy9DLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRDs7T0FFRzs7Ozs7OztJQUNLLDBDQUFhOzs7Ozs7SUFBckIsVUFBc0IsR0FBUTtRQUM1QixPQUFPLEdBQUcsSUFBSSxHQUFHLENBQUMsV0FBVztZQUMzQixHQUFHLENBQUMsUUFBUSxFQUFFLEtBQUssaUJBQWlCO1lBQ3BDLEdBQUcsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBR0Q7Ozs7O09BS0c7Ozs7Ozs7Ozs7O0lBQ0ssOENBQWlCOzs7Ozs7Ozs7O0lBQXpCLFVBQTBCLE9BQWUsRUFBRSxLQUFVOztZQUM3QyxPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRTtRQUNyQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQzNCLENBQUM7OztnQkFwTE0sVUFBVTs7Z0JBSVYsUUFBUSx1QkFxQndELFFBQVE7O0lBOEpqRix5QkFBQztDQUFBLEFBN0tELElBNktDOzs7Ozs7O0lBeEtDLDJDQUErQzs7Ozs7O0lBSy9DLDJDQUF3Qzs7Ozs7SUFLNUIsd0NBQThCOzs7OztJQUFFLHlDQUF3Qjs7Ozs7SUFBRSxzQ0FBc0M7O0FBZ0s5RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIEBBdXRob3I6IFdpdHRcclxuICogQERhdGU6IDIwMTktMDMtMDUgMTk6NTU6NDRcclxuICogQExhc3QgTW9kaWZpZWQgYnk6IFdpdHRcclxuICogQExhc3QgTW9kaWZpZWQgdGltZTogMjAxOS0wMy0xMyAyMDozNToyOVxyXG4gKi9cclxuaW1wb3J0IHsgZm9ybWF0IH0gZnJvbSAnZGF0ZS1mbnMnO1xyXG5pbXBvcnQgeyBBcHBDb250ZXh0LCBGcmFtZUNvbnRleHQsIFVJU3RhdGUgfSBmcm9tICdAZmFycmlzL2RldmtpdCc7XHJcbmltcG9ydCB7IENoYW5nZURldGFpbFR5cGUsIENoYW5nZURldGFpbCB9IGZyb20gJy4vdHlwZXMnO1xyXG5pbXBvcnQgeyBOZ1ZhcmlhYmxlIH0gZnJvbSAnLi9kZWNvcmF0b3JzJztcclxuaW1wb3J0IHsgQmVmQ2hhbmdlVXRpbCB9IGZyb20gJy4vYmVmX2NoYW5nZV91dGlsJztcclxuaW1wb3J0IHsgSW5qZWN0b3IsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5cclxuLyoqXHJcbiAqIEJl5Y+Y6YeP566h55CG5ZmoXHJcbiAqL1xyXG5jbGFzcyBCZWZWYXJpYWJsZU1hbmFnZXIge1xyXG5cclxuICAvKipcclxuICAgKiDlj5jph4/lhYPmlbDmja5cclxuICAgKi9cclxuICBwcml2YXRlIG5nVmFyaWFibGVNYXA6IE1hcDxzdHJpbmcsIE5nVmFyaWFibGU+O1xyXG5cclxuICAvKipcclxuICAgKiDorr7nva7lgLxcclxuICAgKi9cclxuICBwcml2YXRlIGlubmVyVmFsdWVNYXA6IE1hcDxzdHJpbmcsIGFueT47XHJcblxyXG4gIC8qKlxyXG4gICAqIOaehOmAoOWHveaVsFxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXBwQ29udGV4dDogQXBwQ29udGV4dCwgcHJpdmF0ZSBuZ1ZhcmlhYmxlczogYW55LCBAT3B0aW9uYWwoKSBwcml2YXRlIGluamVjdG9yOiBJbmplY3Rvcikge1xyXG5cclxuICAgIHRoaXMubmdWYXJpYWJsZU1hcCA9IG5ldyBNYXA8c3RyaW5nLCBOZ1ZhcmlhYmxlPigpO1xyXG4gICAgdGhpcy5pbm5lclZhbHVlTWFwID0gbmV3IE1hcDxzdHJpbmcsIGFueT4oKTtcclxuXHJcbiAgICAvLyDph43mlrDnu4Tnu4flj5jph4/lhYPmlbDmja5cclxuICAgIE9iamVjdC5rZXlzKG5nVmFyaWFibGVzKS5mb3JFYWNoKChwcm9wTmFtZTogc3RyaW5nKSA9PiB7XHJcbiAgICAgIHRoaXMubmdWYXJpYWJsZU1hcC5zZXQocHJvcE5hbWUsIG5nVmFyaWFibGVzW3Byb3BOYW1lXSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOiOt+WPluWPmOabtOmbhlxyXG4gICAqL1xyXG4gIHB1YmxpYyBoYW5kbGVDaGFuZ2VEZXRhaWwoY2hhbmdlRGV0YWlsOiBDaGFuZ2VEZXRhaWwpOiB2b2lkIHtcclxuICAgIGNvbnN0IGNoYW5nZUluZm8gPSBjaGFuZ2VEZXRhaWwuQ2hhbmdlSW5mbztcclxuICAgIE9iamVjdC5rZXlzKGNoYW5nZUluZm8pLmZvckVhY2goKHZhck5hbWU6IHN0cmluZykgPT4ge1xyXG4gICAgICAvLyDlj5jph4/lhYPmlbDmja5cclxuICAgICAgY29uc3QgbmdWYXJpYWJsZSA9IHRoaXMubmdWYXJpYWJsZU1hcC5nZXQodmFyTmFtZSk7XHJcbiAgICAgIGlmICghbmdWYXJpYWJsZSkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBtYXBwaW5nID0gbmdWYXJpYWJsZS5tYXBwaW5nO1xyXG5cclxuICAgICAgLy8g5pu05pawVUlTdGF0ZeWPmOabtFxyXG4gICAgICBjb25zdCBuZXdWYWx1ZSA9IGNoYW5nZUluZm9bdmFyTmFtZV07XHJcbiAgICAgIGNvbnN0IG9sZFZhbHVlID0gdGhpcy5pbm5lclZhbHVlTWFwLmdldCh2YXJOYW1lKTtcclxuXHJcbiAgICAgIGlmIChvbGRWYWx1ZSA9PT0gbmV3VmFsdWUpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgLy8g5pu05paw5YC8XHJcbiAgICAgIHRoaXMuc2V0VmFsdWVUb1VJU3RhdGUobWFwcGluZywgbmV3VmFsdWUpO1xyXG4gICAgICB0aGlzLmlubmVyVmFsdWVNYXAuc2V0KHZhck5hbWUsIG5ld1ZhbHVlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQnVpbGQgQ2hhbmdlRGV0YWlsIGluc3RhbmNlIGZvciBhbGwgdmFyaWFibGVzLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBidWlsZENoYW5nZURldGFpbCgpOiBDaGFuZ2VEZXRhaWwge1xyXG4gICAgY29uc3QgY2hhbmdlRGV0YWlsID0gQmVmQ2hhbmdlVXRpbC5jcmVhdGVFbXB0eShDaGFuZ2VEZXRhaWxUeXBlLk1vZGlmeSk7XHJcbiAgICB0aGlzLm5nVmFyaWFibGVNYXAuZm9yRWFjaCgobmdWYXJpYWJsZTogTmdWYXJpYWJsZSwgdmFyTmFtZTogc3RyaW5nKSA9PiB7XHJcbiAgICAgIGNvbnN0IG1hcHBpbmcgPSBuZ1ZhcmlhYmxlLm1hcHBpbmc7XHJcbiAgICAgIGNvbnN0IG5ld1ZhbHVlID0gdGhpcy5nZXRWYWx1ZUZyb21VSVN0YXRlKG1hcHBpbmcpO1xyXG4gICAgICBjb25zdCBvbGRWYWx1ZSA9IHRoaXMuaW5uZXJWYWx1ZU1hcC5nZXQodmFyTmFtZSk7XHJcbiAgICAgIGlmICh0aGlzLmlzVmFsdWVFcXVhbChuZXdWYWx1ZSwgb2xkVmFsdWUpID09PSBmYWxzZSkge1xyXG4gICAgICAgIC8vIHRoaXMuaW5uZXJWYWx1ZU1hcC5zZXQodmFyTmFtZSwgbmV3VmFsdWUpO1xyXG4gICAgICAgIHRoaXMuYXBwZW5kVG9DaGFuZ2VJbmZvKGNoYW5nZURldGFpbCwgdmFyTmFtZSwgbmV3VmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAoT2JqZWN0LmtleXMoY2hhbmdlRGV0YWlsLkNoYW5nZUluZm8pLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gY2hhbmdlRGV0YWlsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2xlYXIgdmFyaWFibGUgdmFsdWVzIGNhY2hlZCBpbiB0aGUgaW5uZXJWYWx1ZU1hcCBwcm9wZXJ0eS5cclxuICAgKi9cclxuICBwdWJsaWMgcmVzZXQoKSB7XHJcbiAgICB0aGlzLmlubmVyVmFsdWVNYXAuY2xlYXIoKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICog5riF56m6dm/lj5jph4/lj5jmm7Tpm4ZcclxuICAgKi9cclxuICBwdWJsaWMgY2xlYXJDaGFuZ2VzKCkge1xyXG4gICAgdGhpcy5uZ1ZhcmlhYmxlTWFwLmZvckVhY2goKG5nVmFyaWFibGU6IE5nVmFyaWFibGUsIHZhck5hbWU6IHN0cmluZykgPT4ge1xyXG4gICAgICBjb25zdCBtYXBwaW5nID0gbmdWYXJpYWJsZS5tYXBwaW5nO1xyXG4gICAgICBjb25zdCBuZXdWYWx1ZSA9IHRoaXMuZ2V0VmFsdWVGcm9tVUlTdGF0ZShtYXBwaW5nKTtcclxuICAgICAgY29uc3Qgb2xkVmFsdWUgPSB0aGlzLmlubmVyVmFsdWVNYXAuZ2V0KHZhck5hbWUpO1xyXG4gICAgICBpZiAodGhpcy5pc1ZhbHVlRXF1YWwobmV3VmFsdWUsIG9sZFZhbHVlKSA9PT0gZmFsc2UpIHtcclxuICAgICAgICB0aGlzLmlubmVyVmFsdWVNYXAuc2V0KHZhck5hbWUsIG5ld1ZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEFwcGVuZCBjaGFuZ2VkIHZhcmlhYmxlIHRvIENoYW5nZURldGFpbCBpbnN0YW5jZS5cclxuICAgKi9cclxuICBwcml2YXRlIGFwcGVuZFRvQ2hhbmdlSW5mbyhjaGFuZ2VEZXRhaWw6IENoYW5nZURldGFpbCwgdmFyTmFtZTogc3RyaW5nLCB2YXJWYWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5pc1VkdFZhcmlhYmxlKHZhclZhbHVlKSA9PT0gdHJ1ZSkge1xyXG4gICAgICBjb25zdCB1ZHRWYXJDaGFuZ2VEZXRhaWwgPSBCZWZDaGFuZ2VVdGlsLmNyZWF0ZUVtcHR5KENoYW5nZURldGFpbFR5cGUuTW9kaWZ5KTtcclxuICAgICAgdWR0VmFyQ2hhbmdlRGV0YWlsLkNoYW5nZUluZm8gPSB2YXJWYWx1ZTtcclxuICAgICAgY2hhbmdlRGV0YWlsLkNoYW5nZUluZm9bdmFyTmFtZV0gPSB1ZHRWYXJDaGFuZ2VEZXRhaWw7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjaGFuZ2VEZXRhaWwuQ2hhbmdlSW5mb1t2YXJOYW1lXSA9IHZhclZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5LuOVUlTdGF0ZeS4iuiOt+WPluWAvFxyXG4gICAqL1xyXG4gIHByaXZhdGUgZ2V0VmFsdWVGcm9tVUlTdGF0ZShtYXBwaW5nOiBzdHJpbmcpOiBhbnkge1xyXG4gICAgY29uc3QgdWlTdGF0ZSA9IHRoaXMuZ2V0Um9vdFVJU3RhdGUoKTtcclxuXHJcbiAgICAvLyDorqHnrpd2YWx1ZVxyXG4gICAgY29uc3QgbWFwcGluZ0FycmF5ID0gbWFwcGluZy5zcGxpdCgnLicpO1xyXG4gICAgY29uc3QgdmFsdWUgPSBtYXBwaW5nQXJyYXkucmVkdWNlKChhY2N1bXVsYXRvcjogYW55LCBjdXJyZW50VmFsdWU6IGFueSkgPT4ge1xyXG4gICAgICByZXR1cm4gYWNjdW11bGF0b3IgPyBhY2N1bXVsYXRvcltjdXJyZW50VmFsdWVdIDogbnVsbDtcclxuICAgIH0sIHVpU3RhdGUpO1xyXG5cclxuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHtcclxuICAgICAgcmV0dXJuIGZvcm1hdCh2YWx1ZSwgJ3l5eXktTU0tZGQgSEg6bW06c3MnKTtcclxuICAgIH1cclxuICAgIHJldHVybiB2YWx1ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOiOt+WPluaguee7hOS7tuS4iueahFVJU3RhdGVcclxuICAgKi9cclxuICBwcml2YXRlIGdldFJvb3RVSVN0YXRlKCk6IFVJU3RhdGUge1xyXG5cclxuICAgIGxldCByb290RnJhbWVDb250ZXh0ID0gdGhpcy5hcHBDb250ZXh0LmZyYW1lQ29udGV4dE1hbmFnZXIuZ2V0Um9vdEZyYW1lQ29udGV4dCgpO1xyXG4gICAgaWYgKHRoaXMuaW5qZWN0b3IpIHtcclxuICAgICAgY29uc3QgZnJhbWVDb250ZXh0ID0gdGhpcy5pbmplY3Rvci5nZXQ8RnJhbWVDb250ZXh0PihGcmFtZUNvbnRleHQsIG51bGwpO1xyXG4gICAgICBpZiAoZnJhbWVDb250ZXh0KSB7XHJcbiAgICAgICAgY29uc3QgdmlydHVhbFJvb3RGcmFtZUNvbnRleHQgPSBmcmFtZUNvbnRleHQuZ2V0VmlydHVhbFJvb3RGcmFtZUNvbnRleHQoKTtcclxuICAgICAgICByb290RnJhbWVDb250ZXh0ID0gdmlydHVhbFJvb3RGcmFtZUNvbnRleHQgfHwgcm9vdEZyYW1lQ29udGV4dDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKCFyb290RnJhbWVDb250ZXh0KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHJldHVybiByb290RnJhbWVDb250ZXh0LnVpU3RhdGU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDlgLzmr5TovoNcclxuICAgKiBAdG9kbyDkuLTml7bph4fnlKjov5nnp43mlrnlvI9cclxuICAgKi9cclxuICBwcml2YXRlIGlzVmFsdWVFcXVhbChzcmNWYWx1ZTogYW55LCBkc3RWYWx1ZTogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoc3JjVmFsdWUpID09PSBKU09OLnN0cmluZ2lmeShkc3RWYWx1ZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGVjayBpZiB0aGUgb2JqZWN0IGlzIGEgcGxhaW4gb2JqZWN0XHJcbiAgICovXHJcbiAgcHJpdmF0ZSBpc1VkdFZhcmlhYmxlKG9iajogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gb2JqICYmIG9iai5jb25zdHJ1Y3RvciAmJlxyXG4gICAgICBvYmoudG9TdHJpbmcoKSA9PT0gJ1tvYmplY3QgT2JqZWN0XScgJiZcclxuICAgICAgb2JqLmNvbnN0cnVjdG9yLnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSgnaXNQcm90b3R5cGVPZicpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIOiuvue9ruWAvOWIsFVJU3RhdGVcclxuICAgKiBAdG9kb++8mlxyXG4gICAqIDHjgIHmnI3liqHlmajnq6/kuI3mlK/mjIHvvJtcclxuICAgKiAy44CB5pel5pyf57G75Z6L5aSE55CG5pa55qGI5b6F5a6a44CCXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzZXRWYWx1ZVRvVUlTdGF0ZShtYXBwaW5nOiBzdHJpbmcsIHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgIGNvbnN0IHVpU3RhdGUgPSB0aGlzLmdldFJvb3RVSVN0YXRlKCk7XHJcbiAgICB1aVN0YXRlW21hcHBpbmddID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuXHJcbn1cclxuXHJcbmV4cG9ydCB7IEJlZlZhcmlhYmxlTWFuYWdlciB9O1xyXG4iXX0= |
@@ -1,1 +0,1 @@ | ||
{"__symbolic":"module","version":4,"metadata":{"VERSION":"ver.","ChangeDetailType":{"__symbolic":"class","members":{},"statics":{"Added":"Added","Modify":"Modify","Deleted":"Deleted"}},"ChangeDetailInfo":{"__symbolic":"interface"},"ChangeDetail":{"__symbolic":"interface"},"RequestInfo":{"__symbolic":"interface"},"Pagination":{"__symbolic":"interface"},"QueryResult":{"__symbolic":"interface"},"ResponseInfo":{"__symbolic":"interface"},"IProxyExtend":{"__symbolic":"interface"},"BodyWithRequestInfo":{"__symbolic":"interface"},"RequestOption":{"__symbolic":"interface"},"BE_SERVER_URI_TOKEN":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":9,"character":32},"arguments":["@farris/be BE_SERVER_URL"]},"BE_SESSION_HANDLING_STRATEGY_TOKEN":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":15,"character":47},"arguments":["@farris/be BE_SESSION_HANDLING_STRATEGY_TOKEN"]},"BefChangeBuilder":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Type","module":"@angular/core","arguments":[{"__symbolic":"reference","module":"@farris/devkit","name":"Entity","line":28,"character":29}]},{"__symbolic":"reference","name":"EntityCollection","module":"@farris/devkit","arguments":[{"__symbolic":"reference","module":"@farris/devkit","name":"Entity","line":28,"character":29}]}]}],"build":[{"__symbolic":"method"}],"buildChangeDetail":[{"__symbolic":"method"}],"getChangeInfo":[{"__symbolic":"method"}],"createEmptyChangeDetail":[{"__symbolic":"method"}]}},"BefChangeHandler":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor"}],"handle":[{"__symbolic":"method"}],"handleChangeDetails":[{"__symbolic":"method"}],"handleChangeDetail":[{"__symbolic":"method"}],"getEntityById":[{"__symbolic":"method"}]}},"BefSessionService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":16,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":30,"character":16},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"FrameworkSessionService"},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":31,"character":59}]}],"getBeSessionId":[{"__symbolic":"method"}],"setBeSessionId":[{"__symbolic":"method"}],"clearBeSessionId":[{"__symbolic":"method"}],"extendRequestHeaders":[{"__symbolic":"method"}],"handleResponseHeaders":[{"__symbolic":"method"}],"createBeSession":[{"__symbolic":"method"}],"setSessionId":[{"__symbolic":"method"}],"createHandlingStrategy":[{"__symbolic":"method"}]}},"BefRestService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":34,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":67,"character":16},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"FrameworkSessionService"},{"__symbolic":"reference","name":"BefRepository"},{"__symbolic":"reference","module":"@farris/devkit","name":"EventBus","line":70,"character":15}]}],"createBefProxy":[{"__symbolic":"method"}],"query":[{"__symbolic":"method"}],"extendQuery":[{"__symbolic":"method"}],"serviceRetrieve":[{"__symbolic":"method"}],"queryChild":[{"__symbolic":"method"}],"retrieve":[{"__symbolic":"method"}],"extendRetrieve":[{"__symbolic":"method"}],"create":[{"__symbolic":"method"}],"createByPath":[{"__symbolic":"method"}],"update":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"delete":[{"__symbolic":"method"}],"extendDelete":[{"__symbolic":"method"}],"deletByPath":[{"__symbolic":"method"}],"extendDeletByPath":[{"__symbolic":"method"}],"batchDeleteByPath":[{"__symbolic":"method"}],"batchDelete":[{"__symbolic":"method"}],"extendBatchDelete":[{"__symbolic":"method"}],"cancel":[{"__symbolic":"method"}],"request":[{"__symbolic":"method"}],"invoke":[{"__symbolic":"method"}],"innerRequest":[{"__symbolic":"method"}],"handleReponseInfo":[{"__symbolic":"method"}],"handleErrors":[{"__symbolic":"method"}],"clearLoading":[{"__symbolic":"method"}],"unWrapResponseInfo":[{"__symbolic":"method"}],"hasRequestInfo":[{"__symbolic":"method"}],"existRequestInfo":[{"__symbolic":"method"}],"buildParams":[{"__symbolic":"method"}],"buildBodyWithRequestInfo":[{"__symbolic":"method"}],"buildRequestInfo":[{"__symbolic":"method"}]}},"BefProxy":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":23,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":31,"character":33},{"__symbolic":"reference","name":"UriService"}]}],"setBaseUri":[{"__symbolic":"method"}],"setProxyExtend":[{"__symbolic":"method"}],"query":[{"__symbolic":"method"}],"extendQuery":[{"__symbolic":"method"}],"filter":[{"__symbolic":"method"}],"retrieve":[{"__symbolic":"method"}],"serviceRetrieve":[{"__symbolic":"method"}],"queryChild":[{"__symbolic":"method"}],"extendRetrieve":[{"__symbolic":"method"}],"edit":[{"__symbolic":"method"}],"create":[{"__symbolic":"method"}],"createByPath":[{"__symbolic":"method"}],"update":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"delete":[{"__symbolic":"method"}],"deleteAndSave":[{"__symbolic":"method"}],"extendDelete":[{"__symbolic":"method"}],"deletByPath":[{"__symbolic":"method"}],"extendDeletByPath":[{"__symbolic":"method"}],"batchDeleteByPath":[{"__symbolic":"method"}],"batchDelete":[{"__symbolic":"method"}],"extendBatchDelete":[{"__symbolic":"method"}],"cancel":[{"__symbolic":"method"}],"batchAppendByPath":[{"__symbolic":"method"}],"batchAppend":[{"__symbolic":"method"}],"request":[{"__symbolic":"method"}],"invoke":[{"__symbolic":"method"}],"addBodyToOptions":[{"__symbolic":"method"}],"buildParams":[{"__symbolic":"method"}],"hasRequestInfo":[{"__symbolic":"method"}],"unWrapResponseInfo":[{"__symbolic":"method"}]}},"BefLookupRestService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":11,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":26,"character":5}}]],"parameters":[{"__symbolic":"reference","name":"Repository","module":"@farris/devkit","arguments":[{"__symbolic":"reference","name":"any"}]},{"__symbolic":"reference","module":"@farris/devkit","name":"FrameContext","line":26,"character":38}]}],"getData":[{"__symbolic":"method"}],"saveUserSettings":[{"__symbolic":"method"}],"getUserSettings":[{"__symbolic":"method"}],"ifEnableExtendLoadMethod":[{"__symbolic":"method"}],"getHelpData":[{"__symbolic":"method"}],"extendGetHelpData":[{"__symbolic":"method"}],"convert2TreeDataWithPathCode":[{"__symbolic":"method"}]}},"BefLookupDefaultService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":14,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Repository","module":"@farris/devkit","arguments":[{"__symbolic":"reference","name":"any"}]},{"__symbolic":"reference","name":"FrameworkSessionService"}]}],"createSession":[{"__symbolic":"method"}],"getData":[{"__symbolic":"method"}]}},"BefRepository":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ɵa"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":28,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":65,"character":32}]}],"getEntities":[{"__symbolic":"method"}],"filter":[{"__symbolic":"method"}],"getPagedById":[{"__symbolic":"method"}],"queryChild":[{"__symbolic":"method"}],"getEntityById":[{"__symbolic":"method"}],"updateEntityById":[{"__symbolic":"method"}],"editEntityById":[{"__symbolic":"method"}],"createEntity":[{"__symbolic":"method"}],"appendEntity":[{"__symbolic":"method"}],"insert":[{"__symbolic":"method"}],"insertByPath":[{"__symbolic":"method"}],"appendEntityByPath":[{"__symbolic":"method"}],"removeEntityById":[{"__symbolic":"method"}],"removeEntityAndSaveById":[{"__symbolic":"method"}],"removeEntityByPath":[{"__symbolic":"method"}],"batchRemoveByPath":[{"__symbolic":"method"}],"saveEntityById":[{"__symbolic":"method"}],"saveEntities":[{"__symbolic":"method"}],"cancelEntityChanges":[{"__symbolic":"method"}],"batchAppendByPath":[{"__symbolic":"method"}],"batchAppend":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}],"getInjector":[{"__symbolic":"method"}]}},"FrameworkSessionService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":10,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":13,"character":15}}]],"parameters":[{"__symbolic":"reference","module":"@ecp-caf/caf-common","name":"SessionService","line":13,"character":50}]}],"getUserSessionId":[{"__symbolic":"method"}],"getCurrentSessionId":[{"__symbolic":"method"}]}},"NG_VARIABLE":"@farris/bef NG_VARIABLE","NgVariable":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@farris/devkit","name":"makePropDecorator","line":49,"character":2},"arguments":["@farris/bef NG_VARIABLE",{"__symbolic":"error","message":"Lambda not supported","line":49,"character":33,"module":"./lib/decorators"}]},"NgVariableDecorator":{"__symbolic":"interface"},"BefRepositoryUtil":{"__symbolic":"class","members":{}},"BefDataPathUtil":{"__symbolic":"class","members":{},"statics":{"trimTrailingS":{"__symbolic":"function","parameters":["str"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"str"},"member":"substr"},"arguments":[0,{"__symbolic":"binop","operator":"-","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"str"},"member":"length"},"right":1}]}}}},"UriService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":3,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":5,"character":17},"arguments":[{"__symbolic":"reference","name":"BE_SERVER_URI_TOKEN"}]}]],"parameters":[{"__symbolic":"reference","name":"string"}]}],"extendUri":[{"__symbolic":"method"}]}},"Uri":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"error","message":"Expression form not supported","line":1,"character":52,"module":"./lib/uri"}]}],"toString":[{"__symbolic":"method"}]}},"DefaultComboHttpService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":7,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Repository","module":"@farris/devkit","arguments":[{"__symbolic":"reference","name":"any"}]}]}],"getData":[{"__symbolic":"method"}]}},"DefaultDynamiControlGroupHttpService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":8,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Repository","module":"@farris/devkit","arguments":[{"__symbolic":"reference","name":"any"}]}]}],"getData":[{"__symbolic":"method"}]}},"ɵa":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","module":"@farris/devkit","name":"Repository","line":26,"character":65},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":25,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"getList":[{"__symbolic":"method"}],"getById":[{"__symbolic":"method"}],"updateById":[{"__symbolic":"method"}],"create":[{"__symbolic":"method"}],"append":[{"__symbolic":"method"}],"appendByPath":[{"__symbolic":"method"}],"removeById":[{"__symbolic":"method"}],"removeByIds":[{"__symbolic":"method"}],"removeByPath":[{"__symbolic":"method"}],"updateChangesById":[{"__symbolic":"method"}],"updateChangesByPath":[{"__symbolic":"method"}],"updateAllChanges":[{"__symbolic":"method"}],"applyChanges":[{"__symbolic":"method"}],"updateDataAndVariableChanges":[{"__symbolic":"method"}],"applyChangesById":[{"__symbolic":"method"}],"cancelChanges":[{"__symbolic":"method"}],"clearAllEntityChanges":[{"__symbolic":"method"}],"getDataChangeDetails":[{"__symbolic":"method"}],"handleDataChangeDetails":[{"__symbolic":"method"}],"getVariableChangeDetail":[{"__symbolic":"method"}],"handleVariableChangeDetail":[{"__symbolic":"method"}],"isEmptyRequestInfo":[{"__symbolic":"method"}]}}},"origins":{"VERSION":"./public-api","ChangeDetailType":"./lib/types","ChangeDetailInfo":"./lib/types","ChangeDetail":"./lib/types","RequestInfo":"./lib/types","Pagination":"./lib/types","QueryResult":"./lib/types","ResponseInfo":"./lib/types","IProxyExtend":"./lib/types","BodyWithRequestInfo":"./lib/types","RequestOption":"./lib/types","BE_SERVER_URI_TOKEN":"./lib/tokens","BE_SESSION_HANDLING_STRATEGY_TOKEN":"./lib/tokens","BefChangeBuilder":"./lib/bef_change_builder","BefChangeHandler":"./lib/bef_change_handler","BefSessionService":"./lib/session/bef_session_service","BefRestService":"./lib/bef_rest_service","BefProxy":"./lib/bef_proxy","BefLookupRestService":"./lib/bef_lookup.service","BefLookupDefaultService":"./lib/bef_lookup_default.service","BefRepository":"./lib/bef_repository","FrameworkSessionService":"./lib/framework_session_service","NG_VARIABLE":"./lib/decorators","NgVariable":"./lib/decorators","NgVariableDecorator":"./lib/decorators","BefRepositoryUtil":"./lib/bef_repository_util","BefDataPathUtil":"./lib/bef_data_path_util","UriService":"./lib/uri_service","Uri":"./lib/uri","DefaultComboHttpService":"./lib/bef_combo.service","DefaultDynamiControlGroupHttpService":"./lib/bef_dynamic_control_group_default.service","ɵa":"./lib/deprecated/deprecated_bef_repository"},"importAs":"@farris/bef"} | ||
{"__symbolic":"module","version":4,"metadata":{"VERSION":"ver.","ChangeDetailType":{"__symbolic":"class","members":{},"statics":{"Added":"Added","Modify":"Modify","Deleted":"Deleted"}},"ChangeDetailInfo":{"__symbolic":"interface"},"ChangeDetail":{"__symbolic":"interface"},"RequestInfo":{"__symbolic":"interface"},"Pagination":{"__symbolic":"interface"},"QueryResult":{"__symbolic":"interface"},"ResponseInfo":{"__symbolic":"interface"},"IProxyExtend":{"__symbolic":"interface"},"BodyWithRequestInfo":{"__symbolic":"interface"},"RequestOption":{"__symbolic":"interface"},"BE_SERVER_URI_TOKEN":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":9,"character":32},"arguments":["@farris/be BE_SERVER_URL"]},"BE_SESSION_HANDLING_STRATEGY_TOKEN":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":15,"character":47},"arguments":["@farris/be BE_SESSION_HANDLING_STRATEGY_TOKEN"]},"BefChangeBuilder":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Type","module":"@angular/core","arguments":[{"__symbolic":"reference","module":"@farris/devkit","name":"Entity","line":28,"character":29}]},{"__symbolic":"reference","name":"EntityCollection","module":"@farris/devkit","arguments":[{"__symbolic":"reference","module":"@farris/devkit","name":"Entity","line":28,"character":29}]}]}],"build":[{"__symbolic":"method"}],"buildChangeDetail":[{"__symbolic":"method"}],"getChangeInfo":[{"__symbolic":"method"}],"createEmptyChangeDetail":[{"__symbolic":"method"}]}},"BefChangeHandler":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor"}],"handle":[{"__symbolic":"method"}],"handleChangeDetails":[{"__symbolic":"method"}],"handleChangeDetail":[{"__symbolic":"method"}],"getEntityById":[{"__symbolic":"method"}]}},"BefSessionService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":16,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":30,"character":16},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"FrameworkSessionService"},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":31,"character":59}]}],"getBeSessionId":[{"__symbolic":"method"}],"setBeSessionId":[{"__symbolic":"method"}],"clearBeSessionId":[{"__symbolic":"method"}],"extendRequestHeaders":[{"__symbolic":"method"}],"handleResponseHeaders":[{"__symbolic":"method"}],"createBeSession":[{"__symbolic":"method"}],"setSessionId":[{"__symbolic":"method"}],"createHandlingStrategy":[{"__symbolic":"method"}]}},"BefRestService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":34,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":67,"character":16},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"FrameworkSessionService"},{"__symbolic":"reference","name":"BefRepository"},{"__symbolic":"reference","module":"@farris/devkit","name":"EventBus","line":70,"character":15}]}],"createBefProxy":[{"__symbolic":"method"}],"query":[{"__symbolic":"method"}],"extendQuery":[{"__symbolic":"method"}],"serviceRetrieve":[{"__symbolic":"method"}],"queryChild":[{"__symbolic":"method"}],"retrieve":[{"__symbolic":"method"}],"extendRetrieve":[{"__symbolic":"method"}],"create":[{"__symbolic":"method"}],"createByPath":[{"__symbolic":"method"}],"update":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"delete":[{"__symbolic":"method"}],"extendDelete":[{"__symbolic":"method"}],"deletByPath":[{"__symbolic":"method"}],"extendDeletByPath":[{"__symbolic":"method"}],"batchDeleteByPath":[{"__symbolic":"method"}],"batchDelete":[{"__symbolic":"method"}],"extendBatchDelete":[{"__symbolic":"method"}],"cancel":[{"__symbolic":"method"}],"request":[{"__symbolic":"method"}],"invoke":[{"__symbolic":"method"}],"innerRequest":[{"__symbolic":"method"}],"handleReponseInfo":[{"__symbolic":"method"}],"handleErrors":[{"__symbolic":"method"}],"clearLoading":[{"__symbolic":"method"}],"unWrapResponseInfo":[{"__symbolic":"method"}],"hasRequestInfo":[{"__symbolic":"method"}],"existRequestInfo":[{"__symbolic":"method"}],"buildParams":[{"__symbolic":"method"}],"buildBodyWithRequestInfo":[{"__symbolic":"method"}],"buildRequestInfo":[{"__symbolic":"method"}]}},"BefProxy":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":23,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":31,"character":33},{"__symbolic":"reference","name":"UriService"}]}],"setBaseUri":[{"__symbolic":"method"}],"setProxyExtend":[{"__symbolic":"method"}],"query":[{"__symbolic":"method"}],"extendQuery":[{"__symbolic":"method"}],"filter":[{"__symbolic":"method"}],"retrieve":[{"__symbolic":"method"}],"serviceRetrieve":[{"__symbolic":"method"}],"queryChild":[{"__symbolic":"method"}],"extendRetrieve":[{"__symbolic":"method"}],"edit":[{"__symbolic":"method"}],"create":[{"__symbolic":"method"}],"createByPath":[{"__symbolic":"method"}],"update":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"delete":[{"__symbolic":"method"}],"deleteAndSave":[{"__symbolic":"method"}],"extendDelete":[{"__symbolic":"method"}],"deletByPath":[{"__symbolic":"method"}],"extendDeletByPath":[{"__symbolic":"method"}],"batchDeleteByPath":[{"__symbolic":"method"}],"batchDelete":[{"__symbolic":"method"}],"extendBatchDelete":[{"__symbolic":"method"}],"cancel":[{"__symbolic":"method"}],"batchAppendByPath":[{"__symbolic":"method"}],"batchAppend":[{"__symbolic":"method"}],"request":[{"__symbolic":"method"}],"invoke":[{"__symbolic":"method"}],"addBodyToOptions":[{"__symbolic":"method"}],"buildParams":[{"__symbolic":"method"}],"hasRequestInfo":[{"__symbolic":"method"}],"unWrapResponseInfo":[{"__symbolic":"method"}]}},"BefLookupRestService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":11,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":26,"character":5}}]],"parameters":[{"__symbolic":"reference","name":"Repository","module":"@farris/devkit","arguments":[{"__symbolic":"reference","name":"any"}]},{"__symbolic":"reference","module":"@farris/devkit","name":"FrameContext","line":26,"character":38}]}],"getData":[{"__symbolic":"method"}],"saveUserSettings":[{"__symbolic":"method"}],"getUserSettings":[{"__symbolic":"method"}],"ifEnableExtendLoadMethod":[{"__symbolic":"method"}],"getHelpData":[{"__symbolic":"method"}],"extendGetHelpData":[{"__symbolic":"method"}],"convert2TreeDataWithPathCode":[{"__symbolic":"method"}]}},"BefLookupDefaultService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":14,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Repository","module":"@farris/devkit","arguments":[{"__symbolic":"reference","name":"any"}]},{"__symbolic":"reference","name":"FrameworkSessionService"}]}],"createSession":[{"__symbolic":"method"}],"getData":[{"__symbolic":"method"}]}},"BefRepository":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"ɵa"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":28,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":65,"character":32}]}],"getEntities":[{"__symbolic":"method"}],"filter":[{"__symbolic":"method"}],"getPagedById":[{"__symbolic":"method"}],"queryChild":[{"__symbolic":"method"}],"getEntityById":[{"__symbolic":"method"}],"updateEntityById":[{"__symbolic":"method"}],"editEntityById":[{"__symbolic":"method"}],"createEntity":[{"__symbolic":"method"}],"appendEntity":[{"__symbolic":"method"}],"insert":[{"__symbolic":"method"}],"insertByPath":[{"__symbolic":"method"}],"appendEntityByPath":[{"__symbolic":"method"}],"removeEntityById":[{"__symbolic":"method"}],"removeEntityAndSaveById":[{"__symbolic":"method"}],"removeEntityByPath":[{"__symbolic":"method"}],"batchRemoveByPath":[{"__symbolic":"method"}],"saveEntityById":[{"__symbolic":"method"}],"saveEntities":[{"__symbolic":"method"}],"cancelEntityChanges":[{"__symbolic":"method"}],"batchAppendByPath":[{"__symbolic":"method"}],"batchAppend":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}],"getInjector":[{"__symbolic":"method"}],"clearAllVariableChanges":[{"__symbolic":"method"}]}},"FrameworkSessionService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":10,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":13,"character":15}}]],"parameters":[{"__symbolic":"reference","module":"@ecp-caf/caf-common","name":"SessionService","line":13,"character":50}]}],"getUserSessionId":[{"__symbolic":"method"}],"getCurrentSessionId":[{"__symbolic":"method"}]}},"NG_VARIABLE":"@farris/bef NG_VARIABLE","NgVariable":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@farris/devkit","name":"makePropDecorator","line":49,"character":2},"arguments":["@farris/bef NG_VARIABLE",{"__symbolic":"error","message":"Lambda not supported","line":49,"character":33,"module":"./lib/decorators"}]},"NgVariableDecorator":{"__symbolic":"interface"},"BefRepositoryUtil":{"__symbolic":"class","members":{}},"BefDataPathUtil":{"__symbolic":"class","members":{},"statics":{"trimTrailingS":{"__symbolic":"function","parameters":["str"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"str"},"member":"substr"},"arguments":[0,{"__symbolic":"binop","operator":"-","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"str"},"member":"length"},"right":1}]}}}},"UriService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":3,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":5,"character":17},"arguments":[{"__symbolic":"reference","name":"BE_SERVER_URI_TOKEN"}]}]],"parameters":[{"__symbolic":"reference","name":"string"}]}],"extendUri":[{"__symbolic":"method"}]}},"Uri":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"error","message":"Expression form not supported","line":1,"character":52,"module":"./lib/uri"}]}],"toString":[{"__symbolic":"method"}]}},"DefaultComboHttpService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":7,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Repository","module":"@farris/devkit","arguments":[{"__symbolic":"reference","name":"any"}]}]}],"getData":[{"__symbolic":"method"}]}},"DefaultDynamiControlGroupHttpService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":8,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Repository","module":"@farris/devkit","arguments":[{"__symbolic":"reference","name":"any"}]}]}],"getData":[{"__symbolic":"method"}]}},"ɵa":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","module":"@farris/devkit","name":"Repository","line":26,"character":65},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":25,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"getList":[{"__symbolic":"method"}],"getById":[{"__symbolic":"method"}],"updateById":[{"__symbolic":"method"}],"create":[{"__symbolic":"method"}],"append":[{"__symbolic":"method"}],"appendByPath":[{"__symbolic":"method"}],"removeById":[{"__symbolic":"method"}],"removeByIds":[{"__symbolic":"method"}],"removeByPath":[{"__symbolic":"method"}],"updateChangesById":[{"__symbolic":"method"}],"updateChangesByPath":[{"__symbolic":"method"}],"updateAllChanges":[{"__symbolic":"method"}],"applyChanges":[{"__symbolic":"method"}],"updateDataAndVariableChanges":[{"__symbolic":"method"}],"applyChangesById":[{"__symbolic":"method"}],"cancelChanges":[{"__symbolic":"method"}],"clearAllEntityChanges":[{"__symbolic":"method"}],"getDataChangeDetails":[{"__symbolic":"method"}],"handleDataChangeDetails":[{"__symbolic":"method"}],"getVariableChangeDetail":[{"__symbolic":"method"}],"handleVariableChangeDetail":[{"__symbolic":"method"}],"isEmptyRequestInfo":[{"__symbolic":"method"}]}}},"origins":{"VERSION":"./public-api","ChangeDetailType":"./lib/types","ChangeDetailInfo":"./lib/types","ChangeDetail":"./lib/types","RequestInfo":"./lib/types","Pagination":"./lib/types","QueryResult":"./lib/types","ResponseInfo":"./lib/types","IProxyExtend":"./lib/types","BodyWithRequestInfo":"./lib/types","RequestOption":"./lib/types","BE_SERVER_URI_TOKEN":"./lib/tokens","BE_SESSION_HANDLING_STRATEGY_TOKEN":"./lib/tokens","BefChangeBuilder":"./lib/bef_change_builder","BefChangeHandler":"./lib/bef_change_handler","BefSessionService":"./lib/session/bef_session_service","BefRestService":"./lib/bef_rest_service","BefProxy":"./lib/bef_proxy","BefLookupRestService":"./lib/bef_lookup.service","BefLookupDefaultService":"./lib/bef_lookup_default.service","BefRepository":"./lib/bef_repository","FrameworkSessionService":"./lib/framework_session_service","NG_VARIABLE":"./lib/decorators","NgVariable":"./lib/decorators","NgVariableDecorator":"./lib/decorators","BefRepositoryUtil":"./lib/bef_repository_util","BefDataPathUtil":"./lib/bef_data_path_util","UriService":"./lib/uri_service","Uri":"./lib/uri","DefaultComboHttpService":"./lib/bef_combo.service","DefaultDynamiControlGroupHttpService":"./lib/bef_dynamic_control_group_default.service","ɵa":"./lib/deprecated/deprecated_bef_repository"},"importAs":"@farris/bef"} |
@@ -148,3 +148,7 @@ import { Injector } from '@angular/core'; | ||
getInjector(): Injector; | ||
/** | ||
* 清空vo变量变更 | ||
*/ | ||
clearAllVariableChanges(): void; | ||
} | ||
export { BefRepository }; |
@@ -36,2 +36,6 @@ import { AppContext } from '@farris/devkit'; | ||
/** | ||
* 清空vo变量变更集 | ||
*/ | ||
clearChanges(): void; | ||
/** | ||
* Append changed variable to ChangeDetail instance. | ||
@@ -38,0 +42,0 @@ */ |
{ | ||
"name": "@farris/bef", | ||
"version": "0.0.12-20210922114600-dev", | ||
"version": "0.0.12-20210922153825-dev", | ||
"peerDependencies": { | ||
@@ -5,0 +5,0 @@ "@angular/common": "^7.2.0", |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
3283153
40753