@farris/app-navigation-be
Advanced tools
Comparing version 0.0.6 to 0.0.7
@@ -438,3 +438,18 @@ (function (global, factory) { | ||
else { | ||
this.notifyService['info']('未选择业务实体'); | ||
/** @type {?} */ | ||
var source = this.editorParams.source; | ||
switch (source) { | ||
case 'be': | ||
this.notifyService['info']('未选择业务实体'); | ||
break; | ||
case 'vo': | ||
this.notifyService['info']('未选择视图对象'); | ||
break; | ||
case 'qo': | ||
this.notifyService['info']('未选择查询对象'); | ||
break; | ||
default: | ||
this.notifyService['info']('未选择元数据'); | ||
break; | ||
} | ||
return null; | ||
@@ -441,0 +456,0 @@ } |
@@ -1,2 +0,2 @@ | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("lodash-es"),require("@farris/ui-notify"),require("@angular/core"),require("@angular/common"),require("@farris/ui-input-group"),require("@angular/common/http"),require("@farris/ui-pagination")):"function"==typeof define&&define.amd?define("@farris/app-navigation-be",["exports","lodash-es","@farris/ui-notify","@angular/core","@angular/common","@farris/ui-input-group","@angular/common/http","@farris/ui-pagination"],t):t((e.farris=e.farris||{},e.farris["app-navigation-be"]={}),e.lodashEs,e.uiNotify,e.ng.core,e.ng.common,e.uiInputGroup,e.ng.common.http,e.uiPagination)}(this,function(e,o,t,a,n,i,s,r){"use strict";l.prototype.ngOnInit=function(){this.beData=[],this.modalConfig=this.editorParams.modalConfig||this.modalConfig,this.getAllDataInfo(),this.getRecentDataInfo(),this.getRecommandDataInfo(),this.chooseRecommand=!0},l.prototype.onPageChange=function(e){this.pageIndex!==e.pageIndex&&(this.pageIndex=e.pageIndex,this.paginationOptions.currentPage=e.pageIndex)},l.prototype.getAllDataInfo=function(){var t=this,e=this.injector.get(s.HttpClient),a=this.editorParams.relativePath||"",n=this.editorParams.source||"be";return e.get("/api/dev/main/v1.0/mdservice/unionmdlist?path="+a+"&pageIndex=1&pageSize=1000&metadataTypeList=."+n,{headers:new s.HttpHeaders({"Content-Type":"application/json"}),responseType:"json"}).subscribe(function(e){t.reinvokeInterface(e),t.beAllData=o.cloneDeep(t.getFormData(e,"all")),t.beAllDataCopy=o.cloneDeep(t.beAllData)})},l.prototype.getRecentDataInfo=function(){var t=this,e=this.injector.get(s.HttpClient),a=this.editorParams.relativePath||"",a="/"==a[0]?a.split("/")[1]:a.split("/")[0],n=this.editorParams.source||"be";return e.get("/api/dev/main/v1.0/mdservice/getmdrecentuse?appId="+a+"&metadataTypeList=."+n,{headers:new s.HttpHeaders({"Content-Type":"application/json"}),responseType:"json"}).subscribe(function(e){t.beRecentData=o.cloneDeep(t.getFormData(e,"recent")),t.beRecentData&&t.beRecentData.length&&(t.showRecommandData(),t.getUniqueData(t.beData))})},l.prototype.getRecommandDataInfo=function(){var t=this,e=this.editorParams.range||"Bo",a=this.injector.get(s.HttpClient),n=this.editorParams.relativePath||"",i=this.editorParams.source||"be";return a.get("/api/dev/main/v1.0/mdservice/metadataListIn"+e+"?path="+n+"&metadataTypeList=."+i,{headers:new s.HttpHeaders({"Content-Type":"application/json"}),responseType:"json"}).subscribe(function(e){t.beRecommandData=o.cloneDeep(t.getFormData(e,"local")),t.beRecommandData&&t.beRecommandData.length&&(t.showRecommandData(),t.getUniqueData(t.beData))})},l.prototype.getFormData=function(e,a){var n=[],e=e.metadataIndexItems||e;return e&&e.forEach(function(e,t){t={id:t,name:e.name,label:e.code,source:e.nameSpace,hide:!1,active:!1,data:e,category:a};n.push(t)}),n},l.prototype.showRecommandData=function(){var t=this;this.chooseRecommand=!0,this.beData=[],this.foldRecent=!1,this.beRecommandData&&this.beRecommandData.length&&this.beRecommandData.forEach(function(e){t.beData.push(o.cloneDeep(e))}),this.beRecentData&&this.beRecentData.length&&this.beRecentData.forEach(function(e){t.beData.push(o.cloneDeep(e))}),this.getUniqueData(this.beData),this.beData=this.onSearchValueChanged(this.searchValue)},l.prototype.showAllData=function(){this.beData=o.cloneDeep(this.beAllData),this.chooseRecommand=!1,this.foldRecent=!1,this.beData=this.onSearchValueChanged(this.searchValue)},l.prototype.onSearchValueChanged=function(e){var a,t=this.chooseRecommand?this.beData:this.beAllDataCopy;return t&&(e=(e=e==undefined?"":e).originalEvent!=undefined?e.value||"":e,this.searchValue=e,this.supportPaging=""==this.searchValue,a=(a=""==(a=e.replaceAll(" ","").replaceAll(">",""))?" ":a).toLowerCase(),t.forEach(function(e){var t=(e.name+" "+e.label+" "+e.source).toLowerCase();e.hide=0==t.includes(a)})),this.beData=o.cloneDeep(t),this.beData},l.prototype.getBeDataItem=function(t){var a=this;this.beData.forEach(function(e){t.data.code==e.data.code?(e.active=!e.active,a.selectedCommand=o.cloneDeep(t)):e.active=!1})},l.prototype.clickConfirm=function(){var e,t,a,n,i=this;return this.selectedCommand&&this.selectedCommand.active?(e=this.injector.get(s.HttpClient),t="/api/dev/main/v1.0/mdservice/pickMetadata?currentPath="+(this.editorParams.relativePath||""),a=this.selectedCommand.data,n={headers:new s.HttpHeaders({"Content-Type":"application/json"})},e.post(t,a,n).subscribe(function(e){i.submitModal.emit(e)})):(this.notifyService.info("未选择业务实体"),null)},l.prototype.onClear=function(){this.beData=this.onSearchValueChanged("")},l.prototype.clickCancel=function(){this.closeModal.emit()},l.prototype.foldInRecent=function(){this.foldRecent=!this.foldRecent,this.beData&&!this.searchValue&&this.beData.forEach(function(e){"recent"==e.category&&(e.hide=!e.hide)})},l.prototype.foldInLocal=function(){this.foldLocal=!this.foldLocal,this.beData&&!this.searchValue&&this.beData.forEach(function(e){"local"==e.category&&(e.hide=!e.hide)})},l.prototype.getUniqueData=function(e){if(e){for(var t=o.cloneDeep(e),a=0;a<t.length;a++)for(var n=a+1;n<t.length;n++)t[a].id==t[n].id&&(t.splice(n,1),n--);e=o.cloneDeep(t)}return e},l.prototype.reinvokeInterface=function(e){var t=this;if(e.page){var a,n,i,e=e.page.total||0;if(1e3<e)return a=this.injector.get(s.HttpClient),n=this.editorParams.relativePath||"",i=this.editorParams.source||"be",a.get("/api/dev/main/v1.0/mdservice/unionmdlist?path="+n+"&pageIndex=1&pageSize="+e+"&metadataTypeList=."+i,{headers:new s.HttpHeaders({"Content-Type":"application/json"}),responseType:"json"}).subscribe(function(e){t.beAllData=o.cloneDeep(t.getFormData(e,"all")),t.beAllDataCopy=o.cloneDeep(t.beAllData)})}},l.decorators=[{type:a.Component,args:[{selector:"farris-appNavigationBe",template:'<div class="f-navBe">\n <div class="f-navBe-header">\n <div class="f-navBe-recent" (click)="showRecommandData()">\n <div\n [ngClass]="{\'f-navBe-recent-text-focus\':chooseRecommand,\'f-navBe-recent-text\':!chooseRecommand}">\n 推荐</div>\n </div>\n <div class="f-navBe-allData" (click)="showAllData()">\n <div\n [ngClass]="{\'f-navBe-allData-text-focus\':!chooseRecommand,\'f-navBe-allData-text\':chooseRecommand}">\n 全部</div>\n </div>\n <div class="f-navBe-remainder">\n <div class="f-navBe-search">\n <input-group [groupText]="groupIcon" [(value)]="searchValue"\n (clickHandle)="onSearchValueChanged($event)" (valueChange)="onSearchValueChanged($event)"\n (clear)="onClear()" placeholder="请输入名称/编号搜索" style="font-size:2px;"></input-group>\n </div>\n </div>\n </div>\n <div class="f-navBe-content" *ngIf="chooseRecommand">\n <div class="f-navBe-content-recent" *ngIf="chooseRecommand && !recentFoldIn">\n <div class="f-navBe-recentHeader" (click)="foldInRecent()">\n <div *ngIf="foldRecent" class="f-icon f-icon-arrow-60-right"\n style="color:#6E7088;font-size:12px;margin:0px 7px 0 0;"></div>\n <div *ngIf="!foldRecent" class="f-icon f-icon-arrow-60-down"\n style="color:#6E7088;font-size:12px;margin:0px 7px 0 0;"></div>\n <div class="f-navBe-recommandLabel">最近使用</div>\n </div>\n <ng-container *ngFor="let beDataItem of beData">\n <ng-container *ngIf="!beDataItem.hide && beDataItem.category == \'recent\'">\n <div [ngClass]="{\'f-navBe-item\':!beDataItem.active,\'f-navBe-item-active\':beDataItem.active}"\n (click)="getBeDataItem(beDataItem)">\n <div class="f-navBe-itemIcon">\n <div class="f-icon f-icon-window"\n style="color:#2BA85E;font-size:3px; width: 12px;height: 12px;padding: 0px 0px 2px 1px;">\n </div>\n </div>\n <div class="f-navBe-name">{{beDataItem.name}} ({{beDataItem.label}})</div>\n <div class="f-navBe-source">{{beDataItem.source}}</div>\n </div>\n </ng-container>\n </ng-container>\n </div>\n <div class="f-navBe-content-local" *ngIf="chooseRecommand && !localFoldIn">\n <div class="f-navBe-localHeader" (click)="foldInLocal()">\n <div *ngIf="foldLocal" class="f-icon f-icon-arrow-60-right"\n style="color:#6E7088;font-size:12px;margin:0px 7px 0 0;"></div>\n <div *ngIf="!foldLocal" class="f-icon f-icon-arrow-60-down"\n style="color:#6E7088;font-size:12px;margin:0px 7px 0 0;"></div>\n <div class="f-navBe-recommandLabel">本地元数据</div>\n </div>\n <ng-container *ngFor="let beDataItem of beData">\n <ng-container *ngIf="!beDataItem.hide && beDataItem.category == \'local\'">\n <div [ngClass]="{\'f-navBe-item\':!beDataItem.active,\'f-navBe-item-active\':beDataItem.active}"\n (click)="getBeDataItem(beDataItem)">\n <div class="f-navBe-itemIcon">\n <div class="f-icon f-icon-window"\n style="color:#2BA85E;font-size:3px; width: 12px;height: 12px;padding: 0px 0px 2px 1px;">\n </div>\n </div>\n <div class="f-navBe-name">{{beDataItem.name}} ({{beDataItem.label}})</div>\n <div class="f-navBe-source">{{beDataItem.source}}</div>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <div class="f-navBe-content2" *ngIf="!chooseRecommand">\n <div *ngFor="let beDataItem of (supportPaging ? (beData | paginate: paginationOptions) : beData)">\n <ng-container *ngIf="!beDataItem.hide">\n <div [ngClass]="{\'f-navBe-item\':!beDataItem.active,\'f-navBe-item-active\':beDataItem.active}"\n (click)="getBeDataItem(beDataItem)">\n <div class="f-navBe-itemIcon">\n <div class="f-icon f-icon-window"\n style="color:#2BA85E;font-size:3px; width: 12px;height: 12px;padding: 0px 0px 2px 0px;">\n </div>\n </div>\n <div class="f-navBe-name">{{beDataItem.name}} ({{beDataItem.label}})</div>\n <div class="f-navBe-source">{{beDataItem.source}}</div>\n </div>\n </ng-container>\n </div>\n <div *ngIf="supportPaging" class="f-navBe-content2-paging">\n <pagination-controls #pager [id]="paginationOptions?.id" [maxSize]="pagerLabelSize" [directionLinks]="true"\n [autoHide]="false" [responsive]="true" [previousLabel]="\' \'" [nextLabel]="\' \'"\n [showPageInfo]="showPageInfo" [showPageNumber]="showPageNumber" [showPageList]="showPageList"\n (pageChange)="onPageChange($event)">\n </pagination-controls>\n </div>\n </div>\n</div>\n\x3c!-- <ng-template #footer>\n <button type="button" class="btn btn-secondary" (click)="clickCancel()">取消</button>\n <button type="button" class="btn btn-primary" (click)="clickConfirm()">确定</button>\n</ng-template> --\x3e\n \x3c!-- 底部区域 --\x3e\n <div class="f-page-bottom">\n <div class="f-page-button">\n <div class="f-page-cancel-btn" (click)="clickCancel()">\n <span class="textCancel">取消</span>\n </div>\n <div class="f-page-sure-btn" (click)="clickConfirm()">\n <span class="textSure">确认</span>\n </div>\n </div>\n </div>',styles:[":host{overflow:hidden;position:absolute;top:0;left:0;right:0;bottom:0}.f-page-bottom{margin-top:0;height:60px;width:100%;border:1px solid #dee1ea;background-color:#fff;z-index:2000;bottom:0;left:0;position:absolute;display:flex;justify-content:flex-end;align-items:center}.f-page-button{float:right;margin-right:30px;width:200px;display:flex}.f-page-cancel-btn{width:75px;height:32px;display:inline-block;background:#fff;border:1px solid #d8dce6;box-shadow:0 1px 0 0 rgb(0 0 0 / 4%);border-radius:3px;margin-right:8px;text-align:center;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-wrap:wrap}.f-page-sure-btn{width:100px;height:32px;display:flex;background:#5989e7;border-radius:3px;text-align:center;cursor:pointer;align-items:center;justify-content:center;flex-wrap:wrap}.textCancel{font-family:PingFangSC-Regular;font-size:13px;color:#2d2f33}.textSure{font-family:PingFangSC-Regular;font-size:13px;color:#fff}.f-navBe{background-color:#fff;height:100%}.f-navBe-header{display:flex;min-width:400px;width:100%;height:44px;align-items:center;border:1px solid #e5e9ef;background:#f9f9fc;position:absolute;top:0;z-index:2}.f-navBe-allData{flex:2;text-align:center;display:flex;justify-content:center;align-items:center}.f-navBe-allData-text{width:32px;height:44px;font-family:PingFangSC-Medium;font-size:16px;color:#2d2f33;font-weight:500;padding-top:12px;cursor:pointer}.f-navBe-allData-text-focus{width:32px;height:44px;color:#2a87ff;border-bottom:3px solid #00f;font-family:PingFangSC-Medium;font-size:16px;font-weight:500;padding-top:12px;cursor:pointer}.f-navBe-recent{flex:2;text-align:center;display:flex;justify-content:center;align-items:center}.f-navBe-recent-text{width:32px;height:44px;font-family:PingFangSC-Medium;font-size:16px;color:#2d2f33;font-weight:500;padding-top:12px;cursor:pointer}.f-navBe-recent-text-focus{width:32px;height:44px;color:#2a87ff;border-bottom:3px solid #00f;font-family:PingFangSC-Medium;font-size:16px;font-weight:500;padding-top:12px;cursor:pointer}.f-navBe-remainder{flex:12}.f-navBe-search{width:220px;height:26.6px;background:#fff;border-radius:6px;float:right;margin-right:40px}.f-navBe-content{width:100%;min-width:400px;overflow:scroll;height:calc(100% - 50px)}.f-navBe-content2{width:100%;min-width:400px;margin-top:44px;height:calc(100% - 130px);overflow:scroll}.f-navBe-content2-paging{position:absolute;bottom:55px;right:50px}.f-navBe-content-recent{width:100%;min-width:400px;margin-top:44px}.f-navBe-content-local{width:100%;min-width:400px}.f-navBe-recommandLabel{height:18px;font-family:PingFangSC-Regular;font-size:13px;color:#3d4c6b;font-weight:400;cursor:pointer}.f-navBe-localHeader,.f-navBe-recentHeader{height:32px;background:#fafaff;width:100%;display:flex;align-items:center;padding-left:10px;cursor:pointer;border:1px solid rgba(233,236,243,1)}.f-navBe-item{height:62px;padding:15px 0 8px 18px;border:1px solid #e5e9ef}.f-navBe-item:hover{background-color:#edf5fc!important;cursor:pointer}.f-navBe-item-active{height:62px;padding:15px 0 8px 18px;border:1px solid #e5e9ef;background-color:#edf5fc!important}.f-navBe-itemIcon{width:16px;height:16px;padding:1px;margin-right:6px;background-color:#dcf4e8;display:inline-block}.f-navBe-name{width:80%;height:18px;font-family:PingFangSC-Regular;font-size:13px;color:#2d2f33;font-weight:400;overflow:hidden;display:inline-block;vertical-align:top}.f-navBe-source{width:100%;height:17px;font-family:PingFangSC-Regular;font-size:12px;color:#949ba7;font-weight:400}"]}]}],l.ctorParameters=function(){return[{type:a.Injector},{type:t.NotifyService}]},l.propDecorators={editorParams:[{type:a.Input}],closeModal:[{type:a.Output}],submitModal:[{type:a.Output}],modalFooter:[{type:a.ViewChild,args:["footer"]}]};var c=l;function l(e,t){this.injector=e,this.notifyService=t,this.closeModal=new a.EventEmitter,this.submitModal=new a.EventEmitter,this.groupIcon='<span class="k-icon k-i-search"></span>',this.chooseRecommand=!0,this.recentFoldIn=!1,this.localFoldIn=!1,this.relativePath="",this.isDeisgnerEnv=!0,this.foldLocal=!1,this.foldRecent=!1,this.pagerOnServer=!1,this.pageList=[20,50,100],this.pageIndex=1,this.pageSize=20,this.pagerHeight=56,this.showPageList=!1,this.showPageInfo=!0,this.showPageNumber=!0,this.pagerLabelSize=7,this.total=0,this.supportPaging=!0,this.modalConfig={title:"选择业务实体",width:900,height:500,resizable:!0,showButtons:!1,showMaxButton:!1,minWidth:650,minHeight:300},this.paginationOptions={id:"Farris-beMetadata-Pagination_",itemsPerPage:this.pageSize,currentPage:this.pageIndex,pageList:this.pageList,totalItems:this.total,remote:this.pagerOnServer}}d.decorators=[{type:a.NgModule,args:[{declarations:[c],imports:[n.CommonModule,i.InputGroupModule,s.HttpClientModule,r.PaginationModule],exports:[c]}]}];n=d;function d(){}e.AppNavigationBeComponent=c,e.AppNavigationBeModule=n,Object.defineProperty(e,"__esModule",{value:!0})}); | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("lodash-es"),require("@farris/ui-notify"),require("@angular/core"),require("@angular/common"),require("@farris/ui-input-group"),require("@angular/common/http"),require("@farris/ui-pagination")):"function"==typeof define&&define.amd?define("@farris/app-navigation-be",["exports","lodash-es","@farris/ui-notify","@angular/core","@angular/common","@farris/ui-input-group","@angular/common/http","@farris/ui-pagination"],t):t((e.farris=e.farris||{},e.farris["app-navigation-be"]={}),e.lodashEs,e.uiNotify,e.ng.core,e.ng.common,e.uiInputGroup,e.ng.common.http,e.uiPagination)}(this,function(e,o,t,a,n,i,r,s){"use strict";l.prototype.ngOnInit=function(){this.beData=[],this.modalConfig=this.editorParams.modalConfig||this.modalConfig,this.getAllDataInfo(),this.getRecentDataInfo(),this.getRecommandDataInfo(),this.chooseRecommand=!0},l.prototype.onPageChange=function(e){this.pageIndex!==e.pageIndex&&(this.pageIndex=e.pageIndex,this.paginationOptions.currentPage=e.pageIndex)},l.prototype.getAllDataInfo=function(){var t=this,e=this.injector.get(r.HttpClient),a=this.editorParams.relativePath||"",n=this.editorParams.source||"be";return e.get("/api/dev/main/v1.0/mdservice/unionmdlist?path="+a+"&pageIndex=1&pageSize=1000&metadataTypeList=."+n,{headers:new r.HttpHeaders({"Content-Type":"application/json"}),responseType:"json"}).subscribe(function(e){t.reinvokeInterface(e),t.beAllData=o.cloneDeep(t.getFormData(e,"all")),t.beAllDataCopy=o.cloneDeep(t.beAllData)})},l.prototype.getRecentDataInfo=function(){var t=this,e=this.injector.get(r.HttpClient),a=this.editorParams.relativePath||"",a="/"==a[0]?a.split("/")[1]:a.split("/")[0],n=this.editorParams.source||"be";return e.get("/api/dev/main/v1.0/mdservice/getmdrecentuse?appId="+a+"&metadataTypeList=."+n,{headers:new r.HttpHeaders({"Content-Type":"application/json"}),responseType:"json"}).subscribe(function(e){t.beRecentData=o.cloneDeep(t.getFormData(e,"recent")),t.beRecentData&&t.beRecentData.length&&(t.showRecommandData(),t.getUniqueData(t.beData))})},l.prototype.getRecommandDataInfo=function(){var t=this,e=this.editorParams.range||"Bo",a=this.injector.get(r.HttpClient),n=this.editorParams.relativePath||"",i=this.editorParams.source||"be";return a.get("/api/dev/main/v1.0/mdservice/metadataListIn"+e+"?path="+n+"&metadataTypeList=."+i,{headers:new r.HttpHeaders({"Content-Type":"application/json"}),responseType:"json"}).subscribe(function(e){t.beRecommandData=o.cloneDeep(t.getFormData(e,"local")),t.beRecommandData&&t.beRecommandData.length&&(t.showRecommandData(),t.getUniqueData(t.beData))})},l.prototype.getFormData=function(e,a){var n=[],e=e.metadataIndexItems||e;return e&&e.forEach(function(e,t){t={id:t,name:e.name,label:e.code,source:e.nameSpace,hide:!1,active:!1,data:e,category:a};n.push(t)}),n},l.prototype.showRecommandData=function(){var t=this;this.chooseRecommand=!0,this.beData=[],this.foldRecent=!1,this.beRecommandData&&this.beRecommandData.length&&this.beRecommandData.forEach(function(e){t.beData.push(o.cloneDeep(e))}),this.beRecentData&&this.beRecentData.length&&this.beRecentData.forEach(function(e){t.beData.push(o.cloneDeep(e))}),this.getUniqueData(this.beData),this.beData=this.onSearchValueChanged(this.searchValue)},l.prototype.showAllData=function(){this.beData=o.cloneDeep(this.beAllData),this.chooseRecommand=!1,this.foldRecent=!1,this.beData=this.onSearchValueChanged(this.searchValue)},l.prototype.onSearchValueChanged=function(e){var a,t=this.chooseRecommand?this.beData:this.beAllDataCopy;return t&&(e=(e=e==undefined?"":e).originalEvent!=undefined?e.value||"":e,this.searchValue=e,this.supportPaging=""==this.searchValue,a=(a=""==(a=e.replaceAll(" ","").replaceAll(">",""))?" ":a).toLowerCase(),t.forEach(function(e){var t=(e.name+" "+e.label+" "+e.source).toLowerCase();e.hide=0==t.includes(a)})),this.beData=o.cloneDeep(t),this.beData},l.prototype.getBeDataItem=function(t){var a=this;this.beData.forEach(function(e){t.data.code==e.data.code?(e.active=!e.active,a.selectedCommand=o.cloneDeep(t)):e.active=!1})},l.prototype.clickConfirm=function(){var e,t,a,n,i=this;if(this.selectedCommand&&this.selectedCommand.active)return e=this.injector.get(r.HttpClient),t="/api/dev/main/v1.0/mdservice/pickMetadata?currentPath="+(this.editorParams.relativePath||""),a=this.selectedCommand.data,n={headers:new r.HttpHeaders({"Content-Type":"application/json"})},e.post(t,a,n).subscribe(function(e){i.submitModal.emit(e)});switch(this.editorParams.source){case"be":this.notifyService.info("未选择业务实体");break;case"vo":this.notifyService.info("未选择视图对象");break;case"qo":this.notifyService.info("未选择查询对象");break;default:this.notifyService.info("未选择元数据")}return null},l.prototype.onClear=function(){this.beData=this.onSearchValueChanged("")},l.prototype.clickCancel=function(){this.closeModal.emit()},l.prototype.foldInRecent=function(){this.foldRecent=!this.foldRecent,this.beData&&!this.searchValue&&this.beData.forEach(function(e){"recent"==e.category&&(e.hide=!e.hide)})},l.prototype.foldInLocal=function(){this.foldLocal=!this.foldLocal,this.beData&&!this.searchValue&&this.beData.forEach(function(e){"local"==e.category&&(e.hide=!e.hide)})},l.prototype.getUniqueData=function(e){if(e){for(var t=o.cloneDeep(e),a=0;a<t.length;a++)for(var n=a+1;n<t.length;n++)t[a].id==t[n].id&&(t.splice(n,1),n--);e=o.cloneDeep(t)}return e},l.prototype.reinvokeInterface=function(e){var t=this;if(e.page){var a,n,i,e=e.page.total||0;if(1e3<e)return a=this.injector.get(r.HttpClient),n=this.editorParams.relativePath||"",i=this.editorParams.source||"be",a.get("/api/dev/main/v1.0/mdservice/unionmdlist?path="+n+"&pageIndex=1&pageSize="+e+"&metadataTypeList=."+i,{headers:new r.HttpHeaders({"Content-Type":"application/json"}),responseType:"json"}).subscribe(function(e){t.beAllData=o.cloneDeep(t.getFormData(e,"all")),t.beAllDataCopy=o.cloneDeep(t.beAllData)})}},l.decorators=[{type:a.Component,args:[{selector:"farris-appNavigationBe",template:'<div class="f-navBe">\n <div class="f-navBe-header">\n <div class="f-navBe-recent" (click)="showRecommandData()">\n <div\n [ngClass]="{\'f-navBe-recent-text-focus\':chooseRecommand,\'f-navBe-recent-text\':!chooseRecommand}">\n 推荐</div>\n </div>\n <div class="f-navBe-allData" (click)="showAllData()">\n <div\n [ngClass]="{\'f-navBe-allData-text-focus\':!chooseRecommand,\'f-navBe-allData-text\':chooseRecommand}">\n 全部</div>\n </div>\n <div class="f-navBe-remainder">\n <div class="f-navBe-search">\n <input-group [groupText]="groupIcon" [(value)]="searchValue"\n (clickHandle)="onSearchValueChanged($event)" (valueChange)="onSearchValueChanged($event)"\n (clear)="onClear()" placeholder="请输入名称/编号搜索" style="font-size:2px;"></input-group>\n </div>\n </div>\n </div>\n <div class="f-navBe-content" *ngIf="chooseRecommand">\n <div class="f-navBe-content-recent" *ngIf="chooseRecommand && !recentFoldIn">\n <div class="f-navBe-recentHeader" (click)="foldInRecent()">\n <div *ngIf="foldRecent" class="f-icon f-icon-arrow-60-right"\n style="color:#6E7088;font-size:12px;margin:0px 7px 0 0;"></div>\n <div *ngIf="!foldRecent" class="f-icon f-icon-arrow-60-down"\n style="color:#6E7088;font-size:12px;margin:0px 7px 0 0;"></div>\n <div class="f-navBe-recommandLabel">最近使用</div>\n </div>\n <ng-container *ngFor="let beDataItem of beData">\n <ng-container *ngIf="!beDataItem.hide && beDataItem.category == \'recent\'">\n <div [ngClass]="{\'f-navBe-item\':!beDataItem.active,\'f-navBe-item-active\':beDataItem.active}"\n (click)="getBeDataItem(beDataItem)">\n <div class="f-navBe-itemIcon">\n <div class="f-icon f-icon-window"\n style="color:#2BA85E;font-size:3px; width: 12px;height: 12px;padding: 0px 0px 2px 1px;">\n </div>\n </div>\n <div class="f-navBe-name">{{beDataItem.name}} ({{beDataItem.label}})</div>\n <div class="f-navBe-source">{{beDataItem.source}}</div>\n </div>\n </ng-container>\n </ng-container>\n </div>\n <div class="f-navBe-content-local" *ngIf="chooseRecommand && !localFoldIn">\n <div class="f-navBe-localHeader" (click)="foldInLocal()">\n <div *ngIf="foldLocal" class="f-icon f-icon-arrow-60-right"\n style="color:#6E7088;font-size:12px;margin:0px 7px 0 0;"></div>\n <div *ngIf="!foldLocal" class="f-icon f-icon-arrow-60-down"\n style="color:#6E7088;font-size:12px;margin:0px 7px 0 0;"></div>\n <div class="f-navBe-recommandLabel">本地元数据</div>\n </div>\n <ng-container *ngFor="let beDataItem of beData">\n <ng-container *ngIf="!beDataItem.hide && beDataItem.category == \'local\'">\n <div [ngClass]="{\'f-navBe-item\':!beDataItem.active,\'f-navBe-item-active\':beDataItem.active}"\n (click)="getBeDataItem(beDataItem)">\n <div class="f-navBe-itemIcon">\n <div class="f-icon f-icon-window"\n style="color:#2BA85E;font-size:3px; width: 12px;height: 12px;padding: 0px 0px 2px 1px;">\n </div>\n </div>\n <div class="f-navBe-name">{{beDataItem.name}} ({{beDataItem.label}})</div>\n <div class="f-navBe-source">{{beDataItem.source}}</div>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <div class="f-navBe-content2" *ngIf="!chooseRecommand">\n <div *ngFor="let beDataItem of (supportPaging ? (beData | paginate: paginationOptions) : beData)">\n <ng-container *ngIf="!beDataItem.hide">\n <div [ngClass]="{\'f-navBe-item\':!beDataItem.active,\'f-navBe-item-active\':beDataItem.active}"\n (click)="getBeDataItem(beDataItem)">\n <div class="f-navBe-itemIcon">\n <div class="f-icon f-icon-window"\n style="color:#2BA85E;font-size:3px; width: 12px;height: 12px;padding: 0px 0px 2px 0px;">\n </div>\n </div>\n <div class="f-navBe-name">{{beDataItem.name}} ({{beDataItem.label}})</div>\n <div class="f-navBe-source">{{beDataItem.source}}</div>\n </div>\n </ng-container>\n </div>\n <div *ngIf="supportPaging" class="f-navBe-content2-paging">\n <pagination-controls #pager [id]="paginationOptions?.id" [maxSize]="pagerLabelSize" [directionLinks]="true"\n [autoHide]="false" [responsive]="true" [previousLabel]="\' \'" [nextLabel]="\' \'"\n [showPageInfo]="showPageInfo" [showPageNumber]="showPageNumber" [showPageList]="showPageList"\n (pageChange)="onPageChange($event)">\n </pagination-controls>\n </div>\n </div>\n</div>\n\x3c!-- <ng-template #footer>\n <button type="button" class="btn btn-secondary" (click)="clickCancel()">取消</button>\n <button type="button" class="btn btn-primary" (click)="clickConfirm()">确定</button>\n</ng-template> --\x3e\n \x3c!-- 底部区域 --\x3e\n <div class="f-page-bottom">\n <div class="f-page-button">\n <div class="f-page-cancel-btn" (click)="clickCancel()">\n <span class="textCancel">取消</span>\n </div>\n <div class="f-page-sure-btn" (click)="clickConfirm()">\n <span class="textSure">确认</span>\n </div>\n </div>\n </div>',styles:[":host{overflow:hidden;position:absolute;top:0;left:0;right:0;bottom:0}.f-page-bottom{margin-top:0;height:60px;width:100%;border:1px solid #dee1ea;background-color:#fff;z-index:2000;bottom:0;left:0;position:absolute;display:flex;justify-content:flex-end;align-items:center}.f-page-button{float:right;margin-right:30px;width:200px;display:flex}.f-page-cancel-btn{width:75px;height:32px;display:inline-block;background:#fff;border:1px solid #d8dce6;box-shadow:0 1px 0 0 rgb(0 0 0 / 4%);border-radius:3px;margin-right:8px;text-align:center;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-wrap:wrap}.f-page-sure-btn{width:100px;height:32px;display:flex;background:#5989e7;border-radius:3px;text-align:center;cursor:pointer;align-items:center;justify-content:center;flex-wrap:wrap}.textCancel{font-family:PingFangSC-Regular;font-size:13px;color:#2d2f33}.textSure{font-family:PingFangSC-Regular;font-size:13px;color:#fff}.f-navBe{background-color:#fff;height:100%}.f-navBe-header{display:flex;min-width:400px;width:100%;height:44px;align-items:center;border:1px solid #e5e9ef;background:#f9f9fc;position:absolute;top:0;z-index:2}.f-navBe-allData{flex:2;text-align:center;display:flex;justify-content:center;align-items:center}.f-navBe-allData-text{width:32px;height:44px;font-family:PingFangSC-Medium;font-size:16px;color:#2d2f33;font-weight:500;padding-top:12px;cursor:pointer}.f-navBe-allData-text-focus{width:32px;height:44px;color:#2a87ff;border-bottom:3px solid #00f;font-family:PingFangSC-Medium;font-size:16px;font-weight:500;padding-top:12px;cursor:pointer}.f-navBe-recent{flex:2;text-align:center;display:flex;justify-content:center;align-items:center}.f-navBe-recent-text{width:32px;height:44px;font-family:PingFangSC-Medium;font-size:16px;color:#2d2f33;font-weight:500;padding-top:12px;cursor:pointer}.f-navBe-recent-text-focus{width:32px;height:44px;color:#2a87ff;border-bottom:3px solid #00f;font-family:PingFangSC-Medium;font-size:16px;font-weight:500;padding-top:12px;cursor:pointer}.f-navBe-remainder{flex:12}.f-navBe-search{width:220px;height:26.6px;background:#fff;border-radius:6px;float:right;margin-right:40px}.f-navBe-content{width:100%;min-width:400px;overflow:scroll;height:calc(100% - 50px)}.f-navBe-content2{width:100%;min-width:400px;margin-top:44px;height:calc(100% - 130px);overflow:scroll}.f-navBe-content2-paging{position:absolute;bottom:55px;right:50px}.f-navBe-content-recent{width:100%;min-width:400px;margin-top:44px}.f-navBe-content-local{width:100%;min-width:400px}.f-navBe-recommandLabel{height:18px;font-family:PingFangSC-Regular;font-size:13px;color:#3d4c6b;font-weight:400;cursor:pointer}.f-navBe-localHeader,.f-navBe-recentHeader{height:32px;background:#fafaff;width:100%;display:flex;align-items:center;padding-left:10px;cursor:pointer;border:1px solid rgba(233,236,243,1)}.f-navBe-item{height:62px;padding:15px 0 8px 18px;border:1px solid #e5e9ef}.f-navBe-item:hover{background-color:#edf5fc!important;cursor:pointer}.f-navBe-item-active{height:62px;padding:15px 0 8px 18px;border:1px solid #e5e9ef;background-color:#edf5fc!important}.f-navBe-itemIcon{width:16px;height:16px;padding:1px;margin-right:6px;background-color:#dcf4e8;display:inline-block}.f-navBe-name{width:80%;height:18px;font-family:PingFangSC-Regular;font-size:13px;color:#2d2f33;font-weight:400;overflow:hidden;display:inline-block;vertical-align:top}.f-navBe-source{width:100%;height:17px;font-family:PingFangSC-Regular;font-size:12px;color:#949ba7;font-weight:400}"]}]}],l.ctorParameters=function(){return[{type:a.Injector},{type:t.NotifyService}]},l.propDecorators={editorParams:[{type:a.Input}],closeModal:[{type:a.Output}],submitModal:[{type:a.Output}],modalFooter:[{type:a.ViewChild,args:["footer"]}]};var c=l;function l(e,t){this.injector=e,this.notifyService=t,this.closeModal=new a.EventEmitter,this.submitModal=new a.EventEmitter,this.groupIcon='<span class="k-icon k-i-search"></span>',this.chooseRecommand=!0,this.recentFoldIn=!1,this.localFoldIn=!1,this.relativePath="",this.isDeisgnerEnv=!0,this.foldLocal=!1,this.foldRecent=!1,this.pagerOnServer=!1,this.pageList=[20,50,100],this.pageIndex=1,this.pageSize=20,this.pagerHeight=56,this.showPageList=!1,this.showPageInfo=!0,this.showPageNumber=!0,this.pagerLabelSize=7,this.total=0,this.supportPaging=!0,this.modalConfig={title:"选择业务实体",width:900,height:500,resizable:!0,showButtons:!1,showMaxButton:!1,minWidth:650,minHeight:300},this.paginationOptions={id:"Farris-beMetadata-Pagination_",itemsPerPage:this.pageSize,currentPage:this.pageIndex,pageList:this.pageList,totalItems:this.total,remote:this.pagerOnServer}}d.decorators=[{type:a.NgModule,args:[{declarations:[c],imports:[n.CommonModule,i.InputGroupModule,r.HttpClientModule,s.PaginationModule],exports:[c]}]}];n=d;function d(){}e.AppNavigationBeComponent=c,e.AppNavigationBeModule=n,Object.defineProperty(e,"__esModule",{value:!0})}); | ||
//# sourceMappingURL=farris-app-navigation-be.umd.min.js.map |
@@ -384,3 +384,18 @@ /** | ||
else { | ||
this.notifyService['info']('未选择业务实体'); | ||
/** @type {?} */ | ||
const source = this.editorParams.source; | ||
switch (source) { | ||
case 'be': | ||
this.notifyService['info']('未选择业务实体'); | ||
break; | ||
case 'vo': | ||
this.notifyService['info']('未选择视图对象'); | ||
break; | ||
case 'qo': | ||
this.notifyService['info']('未选择查询对象'); | ||
break; | ||
default: | ||
this.notifyService['info']('未选择元数据'); | ||
break; | ||
} | ||
return null; | ||
@@ -654,2 +669,2 @@ } | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLW5hdmlnYXRpb24tYmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGZhcnJpcy9hcHAtbmF2aWdhdGlvbi1iZS8iLCJzb3VyY2VzIjpbImxpYi9hcHAtbmF2aWdhdGlvbi1iZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUVqSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBUWxELE1BQU0sT0FBTyx3QkFBd0I7Ozs7O0lBaUZuQyxZQUVTLFFBQWtCLEVBQ2pCLGFBQTRCO1FBRDdCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDakIsa0JBQWEsR0FBYixhQUFhLENBQWU7O1FBaEY1QixlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQzs7UUFFckMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBTWhELGNBQVMsR0FBRyx5Q0FBeUMsQ0FBQzs7OztRQUV0RCxvQkFBZSxHQUFZLElBQUksQ0FBQzs7OztRQVVoQyxpQkFBWSxHQUFZLEtBQUssQ0FBQzs7OztRQUU5QixnQkFBVyxHQUFZLEtBQUssQ0FBQzs7UUFFN0IsaUJBQVksR0FBRyxFQUFFLENBQUM7O1FBRWxCLGtCQUFhLEdBQUcsSUFBSSxDQUFDOzs7O1FBRXJCLGNBQVMsR0FBWSxLQUFLLENBQUM7Ozs7UUFFM0IsZUFBVSxHQUFZLEtBQUssQ0FBQzs7OztRQUs1QixrQkFBYSxHQUFHLEtBQUssQ0FBQzs7OztRQUV0QixhQUFRLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFB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Qzs7O1lBMVZGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsd0JBQXdCO2dCQUNsQyxzd01BQWlEOzthQUVsRDs7OztZQVZ3RCxRQUFRO1lBSXhELGFBQWE7OzsyQkFVbkIsS0FBSzt5QkFFTCxNQUFNOzBCQUVOLE1BQU07MEJBQ04sU0FBUyxTQUFDLFFBQVE7Ozs7Ozs7SUFMbkIsZ0RBQTJCOztJQUUzQiw4Q0FBK0M7O0lBRS9DLCtDQUFnRDs7SUFDaEQsK0NBQW1EOzs7OztJQUVuRCwwQ0FBWTs7Ozs7SUFFWiwrQ0FBb0I7O0lBQ3BCLDZDQUFzRDs7Ozs7SUFFdEQsbURBQWdDOzs7OztJQUVoQyxtREFBcUI7Ozs7O0lBRXJCLG1EQUFxQjs7Ozs7SUFFckIsZ0RBQWtCOzs7OztJQUVsQiw2Q0FBVTs7Ozs7SUFFVixnREFBOEI7Ozs7O0lBRTlCLCtDQUE2Qjs7SUFFN0IsZ0RBQWtCOztJQUVsQixpREFBcUI7Ozs7O0lBRXJCLDZDQUEyQjs7Ozs7SUFFM0IsOENBQTRCOzs7OztJQUU1QixpREFBYzs7Ozs7SUFHZCxpREFBc0I7Ozs7O0lBRXRCLDRDQUF5Qjs7Ozs7SUFFekIsNkNBQWM7Ozs7O0lBRWQsNENBQWM7Ozs7O0lBRWQsK0NBQWlCOzs7OztJQUVqQixnREFBcUI7Ozs7O0lBRXJCLGdEQUFvQjs7Ozs7SUFFcEIsa0RBQXNCOzs7OztJQUV0QixrREFBbUI7Ozs7O0lBRW5CLHlDQUFVOzs7OztJQUVWLGlEQUFxQjs7Ozs7SUFFckIsK0NBU0U7O0lBRUYscURBT0U7O0lBSUEsNENBQXlCOzs7OztJQUN6QixpREFBb0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIElucHV0LCBJbmplY3RvciwgVmlld0NoaWxkLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuLy8gaW1wb3J0IHsgRm9ybUJhc2ljU2VydmljZSB9IGZyb20gJ0BmYXJyaXMvZGVzaWduZXItc2VydmljZXMnOyBcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE5vdGlmeVNlcnZpY2UgfSBmcm9tICdAZmFycmlzL3VpLW5vdGlmeSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZhcnJpcy1hcHBOYXZpZ2F0aW9uQmUnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXBwLW5hdmlnYXRpb24tYmUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hcHAtbmF2aWdhdGlvbi1iZS5jb21wb25lbnQuY3NzJ11cbn0pXG5cbmV4cG9ydCBjbGFzcyBBcHBOYXZpZ2F0aW9uQmVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvKiog5YWl5Y+CICovXG4gIEBJbnB1dCgpIGVkaXRvclBhcmFtczogYW55O1xuICAvLyDmqKHmgIHmoYblhbPpl61cbiAgQE91dHB1dCgpIGNsb3NlTW9kYWwgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgLy8g5qih5oCB5qGG56Gu5a6a5ZCO5YWz6Zet77yM5bm25Lyg6YCS5Y+C5pWwXG4gIEBPdXRwdXQoKSBzdWJtaXRNb2RhbCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAVmlld0NoaWxkKCdmb290ZXInKSBtb2RhbEZvb3RlcjogVGVtcGxhdGVSZWY8YW55PjtcbiAgLyoqIOWOn+Wni+aVsOaNriAqL1xuICBiZURhdGE6IGFueTtcbiAgLyoqIOaQnOe0ouahhui+k+WFpeWAvCAqL1xuICBzZWFyY2hWYWx1ZTogc3RyaW5nO1xuICBncm91cEljb24gPSAnPHNwYW4gY2xhc3M9XCJrLWljb24gay1pLXNlYXJjaFwiPjwvc3Bhbj4nO1xuICAvKiog5b2T5YmN6YCJ5Lit55qE5bGV56S65pWw5o2uICovXG4gIGNob29zZVJlY29tbWFuZDogYm9vbGVhbiA9IHRydWU7XG4gIC8qKiDnlKjmiLfpgInmi6nnmoTmlbDmja4gKi9cbiAgc2VsZWN0ZWRDb21tYW5kOiBhbnk7XG4gIC8qKiDmjqjojZDmlbDmja4gKi9cbiAgYmVSZWNvbW1hbmREYXRhOiBhbnk7XG4gIC8qKiDmnIDov5HmlbDmja4gKi9cbiAgYmVSZWNlbnREYXRhOiBhbnk7XG4gIC8qKiDlhajpg6jmlbDmja4qL1xuICBiZUFsbERhdGE7XG4gIC8qKiDmlLbmipjmnIDov5Hnm7jlhbPnmoTmlbDmja4gKi9cbiAgcmVjZW50Rm9sZEluOiBib29sZWFuID0gZmFsc2U7XG4gIC8qKiDmlLbmipjmnKzlnLDnm7jlhbPnmoTmlbDmja4gKi9cbiAgbG9jYWxGb2xkSW46IGJvb2xlYW4gPSBmYWxzZTtcbiAgLy8g6Lev5b6E77yI6K6+6K6h5pe255So77yJXG4gIHJlbGF0aXZlUGF0aCA9ICcnO1xuICAvLyDlvZPliY3njq/looPmmK/lkKborr7orqHml7ZcbiAgaXNEZWlzZ25lckVudiA9IHRydWU7XG4gIC8qKiDmlLbmipjmnKzlnLDmlbDmja4gKi9cbiAgZm9sZExvY2FsOiBib29sZWFuID0gZmFsc2U7XG4gIC8qKiDmlLbmipjmnIDov5HmlbDmja4gKi9cbiAgZm9sZFJlY2VudDogYm9vbGVhbiA9IGZhbHNlO1xuICAvKiog4oCc5YWo6YOo4oCd5pWw5o2u55qE5Ymv5pysICovXG4gIGJlQWxsRGF0YUNvcHk7XG5cbiAgLyoqIOWQr+eUqOacjeWKoeWZqOerr+WIhumhtSAqL1xuICBwYWdlck9uU2VydmVyID0gZmFsc2U7XG4gIC8qKiDmr4/pobXorrDlvZXmlbAgKi9cbiAgcGFnZUxpc3QgPSBbMjAsIDUwLCAxMDBdO1xuICAvKiog5b2T5YmN6aG156CBICovXG4gIHBhZ2VJbmRleCA9IDE7XG4gIC8qKiDmr4/pobXorrDlvZXmlbAgKi9cbiAgcGFnZVNpemUgPSAyMDtcbiAgLyoqIOWIhumhteWMuumrmOW6piAqL1xuICBwYWdlckhlaWdodCA9IDU2O1xuICAvKiog5pi+56S65q+P6aG16K6w5b2V5pWwICovXG4gIHNob3dQYWdlTGlzdCA9IGZhbHNlO1xuICAvKiog5pi+56S65YiG6aG15L+h5oGvICovXG4gIHNob3dQYWdlSW5mbyA9IHRydWU7XG4gIC8qKiDmmL7npLrpobXnoIEgKi9cbiAgc2hvd1BhZ2VOdW1iZXIgPSB0cnVlO1xuICAvKiog5pi+56S66aG156CB5pyA5aSn5pWw6YePICovXG4gIHBhZ2VyTGFiZWxTaXplID0gNztcbiAgLyoqIOaAu+iusOW9leaVsCAqL1xuICB0b3RhbCA9IDA7XG4gIC8qKiDmmK/lkKbmlK/mjIHliIbpobUgKi9cbiAgc3VwcG9ydFBhZ2luZyA9IHRydWU7XG4gIC8qKiDlvLnnqpforr7lrprlhoXlrrkgKi9cbiAgbW9kYWxDb25maWcgPSB7XG4gICAgdGl0bGU6ICfpgInmi6nkuJrliqHlrp7kvZMnLFxuICAgIHdpZHRoOiA5MDAsXG4gICAgaGVpZ2h0OiA1MDAsXG4gICAgcmVzaXphYmxlOiB0cnVlLFxuICAgIHNob3dCdXR0b25zOiBmYWxzZSxcbiAgICBzaG93TWF4QnV0dG9uOiBmYWxzZSxcbiAgICBtaW5XaWR0aDogNjUwLFxuICAgIG1pbkhlaWdodDogMzAwLFxuICB9O1xuXG4gIHBhZ2luYXRpb25PcHRpb25zID0ge1xuICAgIGlkOiAnRmFycmlzLWJlTWV0YWRhdGEtUGFnaW5hdGlvbl8nLFxuICAgIGl0ZW1zUGVyUGFnZTogdGhpcy5wYWdlU2l6ZSxcbiAgICBjdXJyZW50UGFnZTogdGhpcy5wYWdlSW5kZXgsXG4gICAgcGFnZUxpc3Q6IHRoaXMucGFnZUxpc3QsXG4gICAgdG90YWxJdGVtczogdGhpcy50b3RhbCxcbiAgICByZW1vdGU6IHRoaXMucGFnZXJPblNlcnZlclxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIC8vIHByaXZhdGUgZm9ybUJhc2ljU2VydmljZTogRm9ybUJhc2ljU2VydmljZSxcbiAgICBwdWJsaWMgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByaXZhdGUgbm90aWZ5U2VydmljZTogTm90aWZ5U2VydmljZVxuICApIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuYmVEYXRhID0gW107XG4gICAgdGhpcy5tb2RhbENvbmZpZyA9IHRoaXMuZWRpdG9yUGFyYW1zLm1vZGFsQ29uZmlnID8gdGhpcy5lZGl0b3JQYXJhbXMubW9kYWxDb25maWcgOiB0aGlzLm1vZGFsQ29uZmlnO1xuICAgIHRoaXMuZ2V0QWxsRGF0YUluZm8oKTtcbiAgICB0aGlzLmdldFJlY2VudERhdGFJbmZvKCk7XG4gICAgdGhpcy5nZXRSZWNvbW1hbmREYXRhSW5mbygpO1xuICAgIHRoaXMuY2hvb3NlUmVjb21tYW5kID0gdHJ1ZTtcbiAgfVxuXG4gIG9uUGFnZUNoYW5nZShwYWdlOiB7IHBhZ2VJbmRleDogbnVtYmVyIH0pIHtcbiAgICBpZiAodGhpcy5wYWdlSW5kZXggIT09IHBhZ2UucGFnZUluZGV4KSB7XG4gICAgICB0aGlzLnBhZ2VJbmRleCA9IHBhZ2UucGFnZUluZGV4O1xuICAgICAgdGhpcy5wYWdpbmF0aW9uT3B0aW9ucy5jdXJyZW50UGFnZSA9IHBhZ2UucGFnZUluZGV4O1xuICAgIH1cbiAgfVxuICAvKipcbiAgICog6I635Y+W5YWo6YOo5pWw5o2uXG4gICAqL1xuICBnZXRBbGxEYXRhSW5mbygpIHtcbiAgICBjb25zdCBodHRwID0gdGhpcy5pbmplY3Rvci5nZXQoSHR0cENsaWVudCk7XG4gICAgLy8gY29uc3QgcmVsYXRpdmVQYXRoID0gdGhpcy5mb3JtQmFzaWNTZXJ2aWNlLmZvcm1NZXRhQmFzaWNJbmZvLnJlbGF0aXZlUGF0aDtcbiAgICBjb25zdCByZWxhdGl2ZVBhdGggPSB0aGlzLmVkaXRvclBhcmFtcy5yZWxhdGl2ZVBhdGggfHwgJyc7XG4gICAgY29uc3QgcGFnZVNpemUgPSAxMDAwO1xuICAgIGNvbnN0IHNvdXJjZSA9IHRoaXMuZWRpdG9yUGFyYW1zLnNvdXJjZSB8fCAnYmUnXG4gICAgcmV0dXJuIGh0dHAuZ2V0KCcvYXBpL2Rldi9tYWluL3YxLjAvbWRzZXJ2aWNlL3VuaW9ubWRsaXN0P3BhdGg9JyArIHJlbGF0aXZlUGF0aCArICcmcGFnZUluZGV4PTEmcGFnZVNpemU9JyArIHBhZ2VTaXplICsgJyZtZXRhZGF0YVR5cGVMaXN0PS4nICsgc291cmNlLCB7XG4gICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0pLFxuICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbidcbiAgICB9KS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICB0aGlzLnJlaW52b2tlSW50ZXJmYWNlKGRhdGEpO1xuICAgICAgdGhpcy5iZUFsbERhdGEgPSBjbG9uZURlZXAodGhpcy5nZXRGb3JtRGF0YShkYXRhLCAnYWxsJykpO1xuICAgICAgdGhpcy5iZUFsbERhdGFDb3B5ID0gY2xvbmVEZWVwKHRoaXMuYmVBbGxEYXRhKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiDojrflj5bmnIDov5HmlbDmja4gKi9cbiAgZ2V0UmVjZW50RGF0YUluZm8oKSB7XG4gICAgY29uc3QgaHR0cCA9IHRoaXMuaW5qZWN0b3IuZ2V0KEh0dHBDbGllbnQpO1xuICAgIC8vIGNvbnN0IHJlbGF0aXZlUGF0aCA9IHRoaXMuZm9ybUJhc2ljU2VydmljZS5mb3JtTWV0YUJhc2ljSW5mby5yZWxhdGl2ZVBhdGggfHwgJyc7XG4gICAgY29uc3QgcmVsYXRpdmVQYXRoID0gdGhpcy5lZGl0b3JQYXJhbXMucmVsYXRpdmVQYXRoIHx8ICcnO1xuICAgIGNvbnN0IGFwcElkID0gcmVsYXRpdmVQYXRoWzBdID09ICcvJyA/IHJlbGF0aXZlUGF0aC5zcGxpdCgnLycpWzFdIDogcmVsYXRpdmVQYXRoLnNwbGl0KCcvJylbMF07XG4gICAgY29uc3Qgc291cmNlID0gdGhpcy5lZGl0b3JQYXJhbXMuc291cmNlIHx8ICdiZSc7XG4gICAgcmV0dXJuIGh0dHAuZ2V0KCcvYXBpL2Rldi9tYWluL3YxLjAvbWRzZXJ2aWNlL2dldG1kcmVjZW50dXNlP2FwcElkPScgKyBhcHBJZCArICcmbWV0YWRhdGFUeXBlTGlzdD0uJyArIHNvdXJjZSwge1xuICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9KSxcbiAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nXG4gICAgfSkuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgdGhpcy5iZVJlY2VudERhdGEgPSBjbG9uZURlZXAodGhpcy5nZXRGb3JtRGF0YShkYXRhLCAncmVjZW50JykpO1xuICAgICAgaWYgKHRoaXMuYmVSZWNlbnREYXRhKSB7XG4gICAgICAgIGlmICh0aGlzLmJlUmVjZW50RGF0YS5sZW5ndGgpIHtcbiAgICAgICAgICB0aGlzLnNob3dSZWNvbW1hbmREYXRhKCk7XG4gICAgICAgICAgdGhpcy5nZXRVbmlxdWVEYXRhKHRoaXMuYmVEYXRhKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqIOiOt+WPluaOqOiNkOaVsOaNriAqL1xuICBnZXRSZWNvbW1hbmREYXRhSW5mbygpIHtcbiAgICBjb25zdCByYW5nZSA9IHRoaXMuZWRpdG9yUGFyYW1zLnJhbmdlIHx8ICdCbyc7XG4gICAgY29uc3QgaHR0cCA9IHRoaXMuaW5qZWN0b3IuZ2V0KEh0dHBDbGllbnQpO1xuICAgIC8vIGNvbnN0IHJlbGF0aXZlUGF0aCA9IHRoaXMuZm9ybUJhc2ljU2VydmljZS5mb3JtTWV0YUJhc2ljSW5mby5yZWxhdGl2ZVBhdGg7XG4gICAgY29uc3QgcmVsYXRpdmVQYXRoID0gdGhpcy5lZGl0b3JQYXJhbXMucmVsYXRpdmVQYXRoIHx8ICcnO1xuICAgIC8vIOaOqOiNkFxuICAgIGNvbnN0IHNvdXJjZSA9IHRoaXMuZWRpdG9yUGFyYW1zLnNvdXJjZSB8fCAnYmUnXG4gICAgcmV0dXJuIGh0dHAuZ2V0KCcvYXBpL2Rldi9tYWluL3YxLjAvbWRzZXJ2aWNlL21ldGFkYXRhTGlzdEluJyArIHJhbmdlICsgJz9wYXRoPScgKyByZWxhdGl2ZVBhdGggKyAnJm1ldGFkYXRhVHlwZUxpc3Q9LicgKyBzb3VyY2UsIHtcbiAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSksXG4gICAgICByZXNwb25zZVR5cGU6ICdqc29uJ1xuICAgIH0pLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgIHRoaXMuYmVSZWNvbW1hbmREYXRhID0gY2xvbmVEZWVwKHRoaXMuZ2V0Rm9ybURhdGEoZGF0YSwgJ2xvY2FsJykpO1xuICAgICAgaWYgKHRoaXMuYmVSZWNvbW1hbmREYXRhKSB7XG4gICAgICAgIGlmICh0aGlzLmJlUmVjb21tYW5kRGF0YS5sZW5ndGgpIHtcbiAgICAgICAgICB0aGlzLnNob3dSZWNvbW1hbmREYXRhKCk7XG4gICAgICAgICAgdGhpcy5nZXRVbmlxdWVEYXRhKHRoaXMuYmVEYXRhKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIC8qKiDojrflj5bmlbDmja4gKi9cbiAgZ2V0Rm9ybURhdGEoZGF0YSwgY2F0ZWdvcnkpIHtcbiAgICBsZXQgbWV0YWRhdGEgPSBbXTtcbiAgICBjb25zdCBiZU1ldGFkYXRhID0gZGF0YVsnbWV0YWRhdGFJbmRleEl0ZW1zJ10gPyBkYXRhWydtZXRhZGF0YUluZGV4SXRlbXMnXSA6IGRhdGE7XG4gICAgaWYgKGJlTWV0YWRhdGEpIHtcbiAgICAgIGJlTWV0YWRhdGEuZm9yRWFjaChmdW5jdGlvbiAoYmVNZXRhZGF0YUl0ZW0sIGluZGV4KSB7XG4gICAgICAgIGxldCBiZU1ldGFkYXRhSXRlbVRlbXAgPSB7XG4gICAgICAgICAgaWQ6IGluZGV4LFxuICAgICAgICAgIG5hbWU6IGJlTWV0YWRhdGFJdGVtLm5hbWUsXG4gICAgICAgICAgbGFiZWw6IGJlTWV0YWRhdGFJdGVtLmNvZGUsXG4gICAgICAgICAgc291cmNlOiBiZU1ldGFkYXRhSXRlbS5uYW1lU3BhY2UsXG4gICAgICAgICAgaGlkZTogZmFsc2UsXG4gICAgICAgICAgYWN0aXZlOiBmYWxzZSxcbiAgICAgICAgICBkYXRhOiBiZU1ldGFkYXRhSXRlbSxcbiAgICAgICAgICBjYXRlZ29yeTogY2F0ZWdvcnlcbiAgICAgICAgfVxuICAgICAgICBtZXRhZGF0YS5wdXNoKGJlTWV0YWRhdGFJdGVtVGVtcCk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIG1ldGFkYXRhO1xuICB9XG5cbiAgLyoqIOWxleekuuKAnOaOqOiNkOKAneS4gOagjyAqL1xuICBzaG93UmVjb21tYW5kRGF0YSgpIHtcbiAgICB0aGlzLmNob29zZVJlY29tbWFuZCA9IHRydWU7XG4gICAgdGhpcy5iZURhdGEgPSBbXTtcbiAgICB0aGlzLmZvbGRSZWNlbnQgPSBmYWxzZTtcbiAgICBpZiAodGhpcy5iZVJlY29tbWFuZERhdGEpIHtcbiAgICAgIGlmICh0aGlzLmJlUmVjb21tYW5kRGF0YS5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5iZVJlY29tbWFuZERhdGEuZm9yRWFjaChiZVJlY29tbWFuZERhdGFJdGVtID0+IHtcbiAgICAgICAgICB0aGlzLmJlRGF0YS5wdXNoKGNsb25lRGVlcChiZVJlY29tbWFuZERhdGFJdGVtKSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy5iZVJlY2VudERhdGEpIHtcbiAgICAgIGlmICh0aGlzLmJlUmVjZW50RGF0YS5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5iZVJlY2VudERhdGEuZm9yRWFjaChiZVJlY2VudERhdGFJdGVtID0+IHtcbiAgICAgICAgICB0aGlzLmJlRGF0YS5wdXNoKGNsb25lRGVlcChiZVJlY2VudERhdGFJdGVtKSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmdldFVuaXF1ZURhdGEodGhpcy5iZURhdGEpO1xuICAgIHRoaXMuYmVEYXRhID0gdGhpcy5vblNlYXJjaFZhbHVlQ2hhbmdlZCh0aGlzLnNlYXJjaFZhbHVlKTtcbiAgfVxuXG4gIC8qKiDlsZXnpLrigJzlhajpg6jigJ3kuIDmoI8gKi9cbiAgc2hvd0FsbERhdGEoKSB7XG4gICAgdGhpcy5iZURhdGEgPSBjbG9uZURlZXAodGhpcy5iZUFsbERhdGEpO1xuICAgIHRoaXMuY2hvb3NlUmVjb21tYW5kID0gZmFsc2U7XG4gICAgdGhpcy5mb2xkUmVjZW50ID0gZmFsc2U7XG4gICAgdGhpcy5iZURhdGEgPSB0aGlzLm9uU2VhcmNoVmFsdWVDaGFuZ2VkKHRoaXMuc2VhcmNoVmFsdWUpO1xuICB9XG5cbiAgLyoqIOaQnOe0oumhuSAqL1xuICBvblNlYXJjaFZhbHVlQ2hhbmdlZChzZWFyY2hWYWx1ZSkge1xuICAgIGNvbnN0IHNlYXJjaGVkRGF0YSA9IHRoaXMuY2hvb3NlUmVjb21tYW5kID8gdGhpcy5iZURhdGEgOiB0aGlzLmJlQWxsRGF0YUNvcHk7XG4gICAgaWYgKHNlYXJjaGVkRGF0YSkge1xuICAgICAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZSA9PSB1bmRlZmluZWQgPyAnJyA6IHNlYXJjaFZhbHVlO1xuICAgICAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZVsnb3JpZ2luYWxFdmVudCddICE9IHVuZGVmaW5lZCA/IHNlYXJjaFZhbHVlLnZhbHVlIHx8ICcnIDogc2VhcmNoVmFsdWU7XG4gICAgICB0aGlzLnNlYXJjaFZhbHVlID0gc2VhcmNoVmFsdWU7XG4gICAgICAvLyDmkJzntKLmoYbmnInlgLzml7blhbPpl63liIbpobVcbiAgICAgIHRoaXMuc3VwcG9ydFBhZ2luZyA9IHRoaXMuc2VhcmNoVmFsdWUgPT0gJycgPyB0cnVlIDogZmFsc2U7XG4gICAgICBsZXQgdmFsdWUgPSBzZWFyY2hWYWx1ZS5yZXBsYWNlQWxsKCcgJywgJycpLnJlcGxhY2VBbGwoJz4nLCAnJyk7XG4gICAgICB2YWx1ZSA9IHZhbHVlID09ICcnID8gJyAnIDogdmFsdWU7XG4gICAgICB2YWx1ZSA9IHZhbHVlLnRvTG93ZXJDYXNlKCk7XG4gICAgICBzZWFyY2hlZERhdGEuZm9yRWFjaChiZURhdGFJdGVtID0+IHtcbiAgICAgICAgbGV0IGNvbWJpbmVkU3RyaW5nID0gIGAke2JlRGF0YUl0ZW0ubmFtZX0gJHtiZURhdGFJdGVtLmxhYmVsfSAke2JlRGF0YUl0ZW0uc291cmNlfWA7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbSA9IGNvbWJpbmVkU3RyaW5nLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGJlRGF0YUl0ZW0uaGlkZSA9IHNlbGVjdGVkSXRlbS5pbmNsdWRlcyh2YWx1ZSkgPT0gZmFsc2UgPyB0cnVlIDogZmFsc2U7XG4gICAgICB9KVxuICAgIH1cbiAgICB0aGlzLmJlRGF0YSA9IGNsb25lRGVlcChzZWFyY2hlZERhdGEpO1xuICAgIHJldHVybiB0aGlzLmJlRGF0YTtcbiAgfVxuXG4gIC8qKiDnlKjmiLfpgInmi6nlgLwgKi9cbiAgZ2V0QmVEYXRhSXRlbShzZWxlY3RlZEJlRGF0YUl0ZW0pIHtcbiAgICB0aGlzLmJlRGF0YS5mb3JFYWNoKGJlRGF0YUl0ZW0gPT4ge1xuICAgICAgaWYgKHNlbGVjdGVkQmVEYXRhSXRlbS5kYXRhLmNvZGUgPT0gYmVEYXRhSXRlbS5kYXRhLmNvZGUpIHtcbiAgICAgICAgYmVEYXRhSXRlbS5hY3RpdmUgPSAhYmVEYXRhSXRlbS5hY3RpdmU7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDb21tYW5kID0gY2xvbmVEZWVwKHNlbGVjdGVkQmVEYXRhSXRlbSk7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgYmVEYXRhSXRlbS5hY3RpdmUgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9KVxuXG4gIH1cblxuICAvKiog55So5oi354K55Ye756Gu5a6a5pe26LCD55SocG9zdEFwaeS8oOWHuuWPguaVsCAqL1xuICAvKiog55So5oi3ICovXG4gIGNsaWNrQ29uZmlybSgpIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZENvbW1hbmQgJiYgdGhpcy5zZWxlY3RlZENvbW1hbmRbJ2FjdGl2ZSddKSB7XG4gICAgICBjb25zdCBodHRwID0gdGhpcy5pbmplY3Rvci5nZXQoSHR0cENsaWVudCk7XG4gICAgICBjb25zdCByZWxhdGl2ZVBhdGggPSB0aGlzLmVkaXRvclBhcmFtcy5yZWxhdGl2ZVBhdGggfHwgJyc7XG4gICAgICAvLyBjb25zdCByZWxhdGl2ZVBhdGggPSB0aGlzLmZvcm1CYXNpY1NlcnZpY2UuZm9ybU1ldGFCYXNpY0luZm8ucmVsYXRpdmVQYXRoO1xuICAgICAgY29uc3QgcGF0aCA9ICcvYXBpL2Rldi9tYWluL3YxLjAvbWRzZXJ2aWNlL3BpY2tNZXRhZGF0YT9jdXJyZW50UGF0aD0nICsgcmVsYXRpdmVQYXRoO1xuICAgICAgY29uc3QgYm9keSA9IHRoaXMuc2VsZWN0ZWRDb21tYW5kLmRhdGE7XG4gICAgICBjb25zdCBoZWFkZXJPcHRpb24gPSB7XG4gICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSlcbiAgICAgIH1cbiAgICAgIHJldHVybiBodHRwLnBvc3QocGF0aCwgYm9keSwgaGVhZGVyT3B0aW9uKS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICAgIHRoaXMuc3VibWl0TW9kYWwuZW1pdChkYXRhKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMubm90aWZ5U2VydmljZVsnaW5mbyddKCfmnKrpgInmi6nkuJrliqHlrp7kvZMnKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIC8qKiDmuIXnqbrmkJzntKLlhoXlrrkgKi9cbiAgb25DbGVhcigpIHtcbiAgICB0aGlzLmJlRGF0YSA9IHRoaXMub25TZWFyY2hWYWx1ZUNoYW5nZWQoJycpO1xuICB9XG5cblxuXG4gIGNsaWNrQ2FuY2VsKCkge1xuICAgIHRoaXMuY2xvc2VNb2RhbC5lbWl0KCk7XG4gIH1cblxuICBmb2xkSW5SZWNlbnQoKSB7XG4gICAgdGhpcy5mb2xkUmVjZW50ID0gIXRoaXMuZm9sZFJlY2VudDtcbiAgICBpZiAodGhpcy5iZURhdGEgJiYgIXRoaXMuc2VhcmNoVmFsdWUpIHtcbiAgICAgIHRoaXMuYmVEYXRhLmZvckVhY2goYmVEYXRhSXRlbSA9PiB7XG4gICAgICAgIGlmIChiZURhdGFJdGVtLmNhdGVnb3J5ID09ICdyZWNlbnQnKSB7XG4gICAgICAgICAgYmVEYXRhSXRlbS5oaWRlID0gIWJlRGF0YUl0ZW0uaGlkZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgZm9sZEluTG9jYWwoKSB7XG4gICAgdGhpcy5mb2xkTG9jYWwgPSAhdGhpcy5mb2xkTG9jYWw7XG4gICAgaWYgKHRoaXMuYmVEYXRhICYmICEodGhpcy5zZWFyY2hWYWx1ZSkpIHtcbiAgICAgIHRoaXMuYmVEYXRhLmZvckVhY2goYmVEYXRhSXRlbSA9PiB7XG4gICAgICAgIGlmIChiZURhdGFJdGVtLmNhdGVnb3J5ID09ICdsb2NhbCcpIHtcbiAgICAgICAgICBiZURhdGFJdGVtLmhpZGUgPSAhYmVEYXRhSXRlbS5oaWRlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKiog5Y676YeNKi9cbiAgZ2V0VW5pcXVlRGF0YShkYXRhKSB7XG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIGxldCB2YWx1ZSA9IGNsb25lRGVlcChkYXRhKTtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgZm9yIChsZXQgaiA9IGkgKyAxOyBqIDwgdmFsdWUubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICBpZiAodmFsdWVbaV1bJ2lkJ10gPT0gdmFsdWVbal1bJ2lkJ10pIHtcbiAgICAgICAgICAgIHZhbHVlLnNwbGljZShqLCAxKTtcbiAgICAgICAgICAgIGotLTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGRhdGEgPSBjbG9uZURlZXAodmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuICAvKiog5o6l5Y+j5pWw5o2u6LaF6L+HMTAwMOadoeaXtu+8jOmHjeaWsOiwg+WPluaJgOacieaVsOaNriAqL1xuICByZWludm9rZUludGVyZmFjZShkYXRhKSB7XG4gICAgaWYgKGRhdGFbJ3BhZ2UnXSkge1xuICAgICAgY29uc3QgdG90YWxOdW0gPSBkYXRhWydwYWdlJ11bJ3RvdGFsJ10gfHwgMDtcbiAgICAgIGlmICh0b3RhbE51bSA+IDEwMDApIHtcbiAgICAgICAgY29uc3QgaHR0cCA9IHRoaXMuaW5qZWN0b3IuZ2V0KEh0dHBDbGllbnQpO1xuICAgICAgICBjb25zdCByZWxhdGl2ZVBhdGggPSB0aGlzLmVkaXRvclBhcmFtcy5yZWxhdGl2ZVBhdGggfHwgJyc7XG4gICAgICAgIGNvbnN0IHNvdXJjZSA9IHRoaXMuZWRpdG9yUGFyYW1zLnNvdXJjZSB8fCAnYmUnXG4gICAgICAgIHJldHVybiBodHRwLmdldCgnL2FwaS9kZXYvbWFpbi92MS4wL21kc2VydmljZS91bmlvbm1kbGlzdD9wYXRoPScgKyByZWxhdGl2ZVBhdGggKyAnJnBhZ2VJbmRleD0xJnBhZ2VTaXplPScgKyB0b3RhbE51bSArICcmbWV0YWRhdGFUeXBlTGlzdD0uJyArIHNvdXJjZSwge1xuICAgICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSksXG4gICAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbidcbiAgICAgICAgfSkuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgICAgIHRoaXMuYmVBbGxEYXRhID0gY2xvbmVEZWVwKHRoaXMuZ2V0Rm9ybURhdGEoZGF0YSwgJ2FsbCcpKTtcbiAgICAgICAgICB0aGlzLmJlQWxsRGF0YUNvcHkgPSBjbG9uZURlZXAodGhpcy5iZUFsbERhdGEpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLW5hdmlnYXRpb24tYmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGZhcnJpcy9hcHAtbmF2aWdhdGlvbi1iZS8iLCJzb3VyY2VzIjpbImxpYi9hcHAtbmF2aWdhdGlvbi1iZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUVqSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBUWxELE1BQU0sT0FBTyx3QkFBd0I7Ozs7O0lBaUZuQyxZQUVTLFFBQWtCLEVBQ2pCLGFBQTRCO1FBRDdCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDakIsa0JBQWEsR0FBYixhQUFhLENBQWU7O1FBaEY1QixlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQzs7UUFFckMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBTWhELGNBQVMsR0FBRyx5Q0FBeUMsQ0FBQzs7OztRQUV0RCxvQkFBZSxHQUFZLElBQUksQ0FBQzs7OztRQVVoQyxpQkFBWSxHQUFZLEtBQUssQ0FBQzs7OztRQUU5QixnQkFBVyxHQUFZLEtBQUssQ0FBQzs7UUFFN0IsaUJBQVksR0FBRyxFQUFFLENBQUM7O1FBRWxCLGtCQUFhLEdBQUcsSUFBSSxDQUFDOzs7O1FBRXJCLGNBQVMsR0FBWSxLQUFLLENBQUM7Ozs7UUFFM0IsZUFBVSxHQUFZLEtBQUssQ0FBQzs7OztRQUs1QixrQkFBYSxHQUFHLEtBQUssQ0FBQzs7OztRQUV0QixhQUFRLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDOzs7O1FBRXpCLGNBQVMsR0FBRyxDQUFDLENBQUM7Ozs7UUFFZCxhQUFRLEdBQUcsRUFBRSxDQUFDOzs7O1FBRWQsZ0JBQVcsR0FBRyxFQUFFLENBQUM7Ozs7UUFFakIsaUJBQVksR0FBRyxLQUFLLENBQUM7Ozs7UUFFckIsaUJBQVksR0FBRyxJQUFJLENBQUM7Ozs7UUFFcEIsbUJBQWMsR0FBRyxJQUFJLENBQUM7Ozs7UUFFdEIsbUJBQWMsR0FBRyxDQUFDLENBQUM7Ozs7UUFFbkIsVUFBSyxHQUFHLENBQUMsQ0FBQzs7OztRQUVWLGtCQUFhLEdBQUcsSUFBSSxDQUFDOzs7O1FBRXJCLGdCQUFXLEdBQUc7WUFDWixLQUFLLEVBQUUsUUFBUTtZQUNmLEtBQUssRUFBRSxHQUFHO1lBQ1YsTUFBTSxFQUFFLEdBQUc7WUFDWCxTQUFTLEVBQUUsSUFBSTtZQUNmLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLGFBQWEsRUFBRSxLQUFLO1lBQ3BCLFFBQVEsRUFBRSxHQUFHO1lBQ2IsU0FBUyxFQUFFLEdBQUc7U0FDZixDQUFDO1FBRUYsc0JBQWlCLEdBQUc7WUFDbEIsRUFBRSxFQUFFLCtCQUErQjtZQUNuQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDM0IsV0FBVyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQzNCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDdEIsTUFBTSxFQUFFLElBQUksQ0FBQyxhQUFhO1NBQzNCLENBQUM7SUFNRSxDQUFDOzs7O0lBRUwsUUFBUTtRQUNOLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3BHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztJQUM5QixDQUFDOzs7OztJQUVELFlBQVksQ0FBQyxJQUEyQjtRQUN0QyxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNyQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDaEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1NBQ3JEO0lBQ0gsQ0FBQzs7Ozs7SUFJRCxjQUFjOztjQUNOLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUM7OztjQUVwQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLElBQUksRUFBRTs7Y0FDbkQsUUFBUSxHQUFHLElBQUk7O2NBQ2YsTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxJQUFJLElBQUk7UUFDL0MsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLGdEQUFnRCxHQUFHLFlBQVksR0FBRyx3QkFBd0IsR0FBRyxRQUFRLEdBQUcscUJBQXFCLEdBQUcsTUFBTSxFQUFFO1lBQ3RKLE9BQU8sRUFBRSxJQUFJLFdBQVcsQ0FBQyxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxDQUFDO1lBQ2hFLFlBQVksRUFBRSxNQUFNO1NBQ3JCLENBQUMsQ0FBQyxTQUFTOzs7O1FBQUMsSUFBSSxDQUFDLEVBQUU7WUFDbEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDMUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pELENBQUMsRUFBQyxDQUFDO0lBQ0wsQ0FBQzs7Ozs7SUFHRCxpQkFBaUI7O2NBQ1QsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQzs7O2NBRXBDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksSUFBSSxFQUFFOztjQUNuRCxLQUFLLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7O2NBQ3hGLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sSUFBSSxJQUFJO1FBQy9DLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxvREFBb0QsR0FBRyxLQUFLLEdBQUcscUJBQXFCLEdBQUcsTUFBTSxFQUFFO1lBQzdHLE9BQU8sRUFBRSxJQUFJLFdBQVcsQ0FBQyxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxDQUFDO1lBQ2hFLFlBQVksRUFBRSxNQUFNO1NBQ3JCLENBQUMsQ0FBQyxTQUFTOzs7O1FBQUMsSUFBSSxDQUFDLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUNoRSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQ3JCLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUU7b0JBQzVCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO29CQUN6QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztpQkFDakM7YUFDRjtRQUNILENBQUMsRUFBQyxDQUFDO0lBQ0wsQ0FBQzs7Ozs7SUFHRCxvQkFBb0I7O2NBQ1osS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxJQUFJLElBQUk7O2NBQ3ZDLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUM7OztjQUVwQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLElBQUksRUFBRTs7O2NBRW5ELE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sSUFBSSxJQUFJO1FBQy9DLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyw2Q0FBNkMsR0FBRyxLQUFLLEdBQUcsUUFBUSxHQUFHLFlBQVksR0FBRyxxQkFBcUIsR0FBRyxNQUFNLEVBQUU7WUFDaEksT0FBTyxFQUFFLElBQUksV0FBVyxDQUFDLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLENBQUM7WUFDaEUsWUFBWSxFQUFFLE1BQU07U0FDckIsQ0FBQyxDQUFDLFNBQVM7Ozs7UUFBQyxJQUFJLENBQUMsRUFBRTtZQUNsQixJQUFJLENBQUMsZUFBZSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ2xFLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtnQkFDeEIsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRTtvQkFDL0IsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7b0JBQ3pCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2lCQUNqQzthQUNGO1FBQ0gsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOzs7Ozs7O0lBRUQsV0FBVyxDQUFDLElBQUksRUFBRSxRQUFROztZQUNwQixRQUFRLEdBQUcsRUFBRTs7Y0FDWCxVQUFVLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO1FBQ2pGLElBQUksVUFBVSxFQUFFO1lBQ2QsVUFBVSxDQUFDLE9BQU87Ozs7O1lBQUMsVUFBVSxjQUFjLEVBQUUsS0FBSzs7b0JBQzVDLGtCQUFrQixHQUFHO29CQUN2QixFQUFFLEVBQUUsS0FBSztvQkFDVCxJQUFJLEVBQUUsY0FBYyxDQUFDLElBQUk7b0JBQ3pCLEtBQUssRUFBRSxjQUFjLENBQUMsSUFBSTtvQkFDMUIsTUFBTSxFQUFFLGNBQWMsQ0FBQyxTQUFTO29CQUNoQyxJQUFJLEVBQUUsS0FBSztvQkFDWCxNQUFNLEVBQUUsS0FBSztvQkFDYixJQUFJLEVBQUUsY0FBYztvQkFDcEIsUUFBUSxFQUFFLFFBQVE7aUJBQ25CO2dCQUNELFFBQVEsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUNwQyxDQUFDLEVBQUMsQ0FBQztTQUNKO1FBQ0QsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQzs7Ozs7SUFHRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztRQUM1QixJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN4QixJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDeEIsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRTtnQkFDL0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPOzs7O2dCQUFDLG1CQUFtQixDQUFDLEVBQUU7b0JBQ2pELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7Z0JBQ25ELENBQUMsRUFBQyxDQUFDO2FBQ0o7U0FDRjtRQUNELElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNyQixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFO2dCQUM1QixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU87Ozs7Z0JBQUMsZ0JBQWdCLENBQUMsRUFBRTtvQkFDM0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztnQkFDaEQsQ0FBQyxFQUFDLENBQUM7YUFDSjtTQUNGO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzVELENBQUM7Ozs7O0lBR0QsV0FBVztRQUNULElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztRQUM3QixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN4QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDNUQsQ0FBQzs7Ozs7O0lBR0Qsb0JBQW9CLENBQUMsV0FBVzs7Y0FDeEIsWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhO1FBQzVFLElBQUksWUFBWSxFQUFFO1lBQ2hCLFdBQVcsR0FBRyxXQUFXLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztZQUMxRCxXQUFXLEdBQUcsV0FBVyxDQUFDLGVBQWUsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztZQUNoRyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztZQUMvQixhQUFhO1lBQ2IsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7O2dCQUN2RCxLQUFLLEdBQUcsV0FBVyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUM7WUFDL0QsS0FBSyxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQ2xDLEtBQUssR0FBRyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDNUIsWUFBWSxDQUFDLE9BQU87Ozs7WUFBQyxVQUFVLENBQUMsRUFBRTs7b0JBQzVCLGNBQWMsR0FBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLElBQUksVUFBVSxDQUFDLEtBQUssSUFBSSxVQUFVLENBQUMsTUFBTSxFQUFFOztzQkFDN0UsWUFBWSxHQUFHLGNBQWMsQ0FBQyxXQUFXLEVBQUU7Z0JBQ2pELFVBQVUsQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQ3pFLENBQUMsRUFBQyxDQUFBO1NBQ0g7UUFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN0QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQzs7Ozs7O0lBR0QsYUFBYSxDQUFDLGtCQUFrQjtRQUM5QixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU87Ozs7UUFBQyxVQUFVLENBQUMsRUFBRTtZQUMvQixJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7Z0JBQ3hELFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO2dCQUN2QyxJQUFJLENBQUMsZUFBZSxHQUFHLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO2FBQ3REO2lCQUNJO2dCQUNILFVBQVUsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO2FBQzNCO1FBQ0gsQ0FBQyxFQUFDLENBQUE7SUFFSixDQUFDOzs7Ozs7SUFJRCxZQUFZO1FBQ1YsSUFBSSxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLEVBQUU7O2tCQUNwRCxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDOztrQkFDcEMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxJQUFJLEVBQUU7OztrQkFFbkQsSUFBSSxHQUFHLHdEQUF3RCxHQUFHLFlBQVk7O2tCQUM5RSxJQUFJLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJOztrQkFDaEMsWUFBWSxHQUFHO2dCQUNuQixPQUFPLEVBQUUsSUFBSSxXQUFXLENBQUMsRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQzthQUNqRTtZQUNELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDLFNBQVM7Ozs7WUFBQyxJQUFJLENBQUMsRUFBRTtnQkFDMUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDOUIsQ0FBQyxFQUFDLENBQUM7U0FDSjthQUNJOztrQkFDRyxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNO1lBQ3ZDLFFBQVEsTUFBTSxFQUFDO2dCQUNiLEtBQUssSUFBSTtvQkFDUCxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO29CQUN0QyxNQUFNO2dCQUNSLEtBQUssSUFBSTtvQkFDUCxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO29CQUN0QyxNQUFNO2dCQUNSLEtBQUssSUFBSTtvQkFDUCxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO29CQUN0QyxNQUFNO2dCQUNSO29CQUNFLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQ3JDLE1BQU07YUFDVDtZQUVELE9BQU8sSUFBSSxDQUFDO1NBQ2I7SUFDSCxDQUFDOzs7OztJQUdELE9BQU87UUFDTCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM5QyxDQUFDOzs7O0lBSUQsV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDekIsQ0FBQzs7OztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUNuQyxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3BDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTzs7OztZQUFDLFVBQVUsQ0FBQyxFQUFFO2dCQUMvQixJQUFJLFVBQVUsQ0FBQyxRQUFRLElBQUksUUFBUSxFQUFFO29CQUNuQyxVQUFVLENBQUMsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztpQkFDcEM7WUFDSCxDQUFDLEVBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzs7OztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNqQyxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUN0QyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU87Ozs7WUFBQyxVQUFVLENBQUMsRUFBRTtnQkFDL0IsSUFBSSxVQUFVLENBQUMsUUFBUSxJQUFJLE9BQU8sRUFBRTtvQkFDbEMsVUFBVSxDQUFDLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7aUJBQ3BDO1lBQ0gsQ0FBQyxFQUFDLENBQUM7U0FDSjtJQUNILENBQUM7Ozs7OztJQUdELGFBQWEsQ0FBQyxJQUFJO1FBQ2hCLElBQUksSUFBSSxFQUFFOztnQkFDSixLQUFLLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQztZQUMzQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDckMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO29CQUN6QyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUU7d0JBQ3BDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO3dCQUNuQixDQUFDLEVBQUUsQ0FBQztxQkFDTDtpQkFDRjthQUNGO1lBQ0QsSUFBSSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN6QjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzs7Ozs7O0lBRUQsaUJBQWlCLENBQUMsSUFBSTtRQUNwQixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTs7a0JBQ1YsUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQzNDLElBQUksUUFBUSxHQUFHLElBQUksRUFBRTs7c0JBQ2IsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQzs7c0JBQ3BDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksSUFBSSxFQUFFOztzQkFDbkQsTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxJQUFJLElBQUk7Z0JBQy9DLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxnREFBZ0QsR0FBRyxZQUFZLEdBQUcsd0JBQXdCLEdBQUcsUUFBUSxHQUFHLHFCQUFxQixHQUFHLE1BQU0sRUFBRTtvQkFDdEosT0FBTyxFQUFFLElBQUksV0FBVyxDQUFDLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLENBQUM7b0JBQ2hFLFlBQVksRUFBRSxNQUFNO2lCQUNyQixDQUFDLENBQUMsU0FBUzs7OztnQkFBQyxJQUFJLENBQUMsRUFBRTtvQkFDbEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztvQkFDMUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUNqRCxDQUFDLEVBQUMsQ0FBQzthQUNKO1NBQ0Y7SUFDSCxDQUFDOzs7WUF6V0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSx3QkFBd0I7Z0JBQ2xDLHN3TUFBaUQ7O2FBRWxEOzs7O1lBVndELFFBQVE7WUFJeEQsYUFBYTs7OzJCQVVuQixLQUFLO3lCQUVMLE1BQU07MEJBRU4sTUFBTTswQkFDTixTQUFTLFNBQUMsUUFBUTs7Ozs7OztJQUxuQixnREFBMkI7O0lBRTNCLDhDQUErQzs7SUFFL0MsK0NBQWdEOztJQUNoRCwrQ0FBbUQ7Ozs7O0lBRW5ELDBDQUFZOzs7OztJQUVaLCtDQUFvQjs7SUFDcEIsNkNBQXNEOzs7OztJQUV0RCxtREFBZ0M7Ozs7O0lBRWhDLG1EQUFxQjs7Ozs7SUFFckIsbURBQXFCOzs7OztJQUVyQixnREFBa0I7Ozs7O0lBRWxCLDZDQUFVOzs7OztJQUVWLGdEQUE4Qjs7Ozs7SUFFOUIsK0NBQTZCOztJQUU3QixnREFBa0I7O0lBRWxCLGlEQUFxQjs7Ozs7SUFFckIsNkNBQTJCOzs7OztJQUUzQiw4Q0FBNEI7Ozs7O0lBRTVCLGlEQUFjOzs7OztJQUdkLGlEQUFzQjs7Ozs7SUFFdEIsNENBQXlCOzs7OztJQUV6Qiw2Q0FBYzs7Ozs7SUFFZCw0Q0FBYzs7Ozs7SUFFZCwrQ0FBaUI7Ozs7O0lBRWpCLGdEQUFxQjs7Ozs7SUFFckIsZ0RBQW9COzs7OztJQUVwQixrREFBc0I7Ozs7O0lBRXRCLGtEQUFtQjs7Ozs7SUFFbkIseUNBQVU7Ozs7O0lBRVYsaURBQXFCOzs7OztJQUVyQiwrQ0FTRTs7SUFFRixxREFPRTs7SUFJQSw0Q0FBeUI7Ozs7O0lBQ3pCLGlEQUFvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIEluamVjdG9yLCBWaWV3Q2hpbGQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG4vLyBpbXBvcnQgeyBGb3JtQmFzaWNTZXJ2aWNlIH0gZnJvbSAnQGZhcnJpcy9kZXNpZ25lci1zZXJ2aWNlcyc7IFxuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgTm90aWZ5U2VydmljZSB9IGZyb20gJ0BmYXJyaXMvdWktbm90aWZ5JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZmFycmlzLWFwcE5hdmlnYXRpb25CZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9hcHAtbmF2aWdhdGlvbi1iZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FwcC1uYXZpZ2F0aW9uLWJlLmNvbXBvbmVudC5jc3MnXVxufSlcblxuZXhwb3J0IGNsYXNzIEFwcE5hdmlnYXRpb25CZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8qKiDlhaXlj4IgKi9cbiAgQElucHV0KCkgZWRpdG9yUGFyYW1zOiBhbnk7XG4gIC8vIOaooeaAgeahhuWFs+mXrVxuICBAT3V0cHV0KCkgY2xvc2VNb2RhbCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAvLyDmqKHmgIHmoYbnoa7lrprlkI7lhbPpl63vvIzlubbkvKDpgJLlj4LmlbBcbiAgQE91dHB1dCgpIHN1Ym1pdE1vZGFsID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBWaWV3Q2hpbGQoJ2Zvb3RlcicpIG1vZGFsRm9vdGVyOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAvKiog5Y6f5aeL5pWw5o2uICovXG4gIGJlRGF0YTogYW55O1xuICAvKiog5pCc57Si5qGG6L6T5YWl5YC8ICovXG4gIHNlYXJjaFZhbHVlOiBzdHJpbmc7XG4gIGdyb3VwSWNvbiA9ICc8c3BhbiBjbGFzcz1cImstaWNvbiBrLWktc2VhcmNoXCI+PC9zcGFuPic7XG4gIC8qKiDlvZPliY3pgInkuK3nmoTlsZXnpLrmlbDmja4gKi9cbiAgY2hvb3NlUmVjb21tYW5kOiBib29sZWFuID0gdHJ1ZTtcbiAgLyoqIOeUqOaIt+mAieaLqeeahOaVsOaNriAqL1xuICBzZWxlY3RlZENvbW1hbmQ6IGFueTtcbiAgLyoqIOaOqOiNkOaVsOaNriAqL1xuICBiZVJlY29tbWFuZERhdGE6IGFueTtcbiAgLyoqIOacgOi/keaVsOaNriAqL1xuICBiZVJlY2VudERhdGE6IGFueTtcbiAgLyoqIOWFqOmDqOaVsOaNriovXG4gIGJlQWxsRGF0YTtcbiAgLyoqIOaUtuaKmOacgOi/keebuOWFs+eahOaVsOaNriAqL1xuICByZWNlbnRGb2xkSW46IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoqIOaUtuaKmOacrOWcsOebuOWFs+eahOaVsOaNriAqL1xuICBsb2NhbEZvbGRJbjogYm9vbGVhbiA9IGZhbHNlO1xuICAvLyDot6/lvoTvvIjorr7orqHml7bnlKjvvIlcbiAgcmVsYXRpdmVQYXRoID0gJyc7XG4gIC8vIOW9k+WJjeeOr+Wig+aYr+WQpuiuvuiuoeaXtlxuICBpc0RlaXNnbmVyRW52ID0gdHJ1ZTtcbiAgLyoqIOaUtuaKmOacrOWcsOaVsOaNriAqL1xuICBmb2xkTG9jYWw6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoqIOaUtuaKmOacgOi/keaVsOaNriAqL1xuICBmb2xkUmVjZW50OiBib29sZWFuID0gZmFsc2U7XG4gIC8qKiDigJzlhajpg6jigJ3mlbDmja7nmoTlia/mnKwgKi9cbiAgYmVBbGxEYXRhQ29weTtcblxuICAvKiog5ZCv55So5pyN5Yqh5Zmo56uv5YiG6aG1ICovXG4gIHBhZ2VyT25TZXJ2ZXIgPSBmYWxzZTtcbiAgLyoqIOavj+mhteiusOW9leaVsCAqL1xuICBwYWdlTGlzdCA9IFsyMCwgNTAsIDEwMF07XG4gIC8qKiDlvZPliY3pobXnoIEgKi9cbiAgcGFnZUluZGV4ID0gMTtcbiAgLyoqIOavj+mhteiusOW9leaVsCAqL1xuICBwYWdlU2l6ZSA9IDIwO1xuICAvKiog5YiG6aG15Yy66auY5bqmICovXG4gIHBhZ2VySGVpZ2h0ID0gNTY7XG4gIC8qKiDmmL7npLrmr4/pobXorrDlvZXmlbAgKi9cbiAgc2hvd1BhZ2VMaXN0ID0gZmFsc2U7XG4gIC8qKiDmmL7npLrliIbpobXkv6Hmga8gKi9cbiAgc2hvd1BhZ2VJbmZvID0gdHJ1ZTtcbiAgLyoqIOaYvuekuumhteeggSAqL1xuICBzaG93UGFnZU51bWJlciA9IHRydWU7XG4gIC8qKiDmmL7npLrpobXnoIHmnIDlpKfmlbDph48gKi9cbiAgcGFnZXJMYWJlbFNpemUgPSA3O1xuICAvKiog5oC76K6w5b2V5pWwICovXG4gIHRvdGFsID0gMDtcbiAgLyoqIOaYr+WQpuaUr+aMgeWIhumhtSAqL1xuICBzdXBwb3J0UGFnaW5nID0gdHJ1ZTtcbiAgLyoqIOW8ueeql+iuvuWumuWGheWuuSAqL1xuICBtb2RhbENvbmZpZyA9IHtcbiAgICB0aXRsZTogJ+mAieaLqeS4muWKoeWunuS9kycsXG4gICAgd2lkdGg6IDkwMCxcbiAgICBoZWlnaHQ6IDUwMCxcbiAgICByZXNpemFibGU6IHRydWUsXG4gICAgc2hvd0J1dHRvbnM6IGZhbHNlLFxuICAgIHNob3dNYXhCdXR0b246IGZhbHNlLFxuICAgIG1pbldpZHRoOiA2NTAsXG4gICAgbWluSGVpZ2h0OiAzMDAsXG4gIH07XG5cbiAgcGFnaW5hdGlvbk9wdGlvbnMgPSB7XG4gICAgaWQ6ICdGYXJyaXMtYmVNZXRhZGF0YS1QYWdpbmF0aW9uXycsXG4gICAgaXRlbXNQZXJQYWdlOiB0aGlzLnBhZ2VTaXplLFxuICAgIGN1cnJlbnRQYWdlOiB0aGlzLnBhZ2VJbmRleCxcbiAgICBwYWdlTGlzdDogdGhpcy5wYWdlTGlzdCxcbiAgICB0b3RhbEl0ZW1zOiB0aGlzLnRvdGFsLFxuICAgIHJlbW90ZTogdGhpcy5wYWdlck9uU2VydmVyXG4gIH07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgLy8gcHJpdmF0ZSBmb3JtQmFzaWNTZXJ2aWNlOiBGb3JtQmFzaWNTZXJ2aWNlLFxuICAgIHB1YmxpYyBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBub3RpZnlTZXJ2aWNlOiBOb3RpZnlTZXJ2aWNlXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5iZURhdGEgPSBbXTtcbiAgICB0aGlzLm1vZGFsQ29uZmlnID0gdGhpcy5lZGl0b3JQYXJhbXMubW9kYWxDb25maWcgPyB0aGlzLmVkaXRvclBhcmFtcy5tb2RhbENvbmZpZyA6IHRoaXMubW9kYWxDb25maWc7XG4gICAgdGhpcy5nZXRBbGxEYXRhSW5mbygpO1xuICAgIHRoaXMuZ2V0UmVjZW50RGF0YUluZm8oKTtcbiAgICB0aGlzLmdldFJlY29tbWFuZERhdGFJbmZvKCk7XG4gICAgdGhpcy5jaG9vc2VSZWNvbW1hbmQgPSB0cnVlO1xuICB9XG5cbiAgb25QYWdlQ2hhbmdlKHBhZ2U6IHsgcGFnZUluZGV4OiBudW1iZXIgfSkge1xuICAgIGlmICh0aGlzLnBhZ2VJbmRleCAhPT0gcGFnZS5wYWdlSW5kZXgpIHtcbiAgICAgIHRoaXMucGFnZUluZGV4ID0gcGFnZS5wYWdlSW5kZXg7XG4gICAgICB0aGlzLnBhZ2luYXRpb25PcHRpb25zLmN1cnJlbnRQYWdlID0gcGFnZS5wYWdlSW5kZXg7XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiDojrflj5blhajpg6jmlbDmja5cbiAgICovXG4gIGdldEFsbERhdGFJbmZvKCkge1xuICAgIGNvbnN0IGh0dHAgPSB0aGlzLmluamVjdG9yLmdldChIdHRwQ2xpZW50KTtcbiAgICAvLyBjb25zdCByZWxhdGl2ZVBhdGggPSB0aGlzLmZvcm1CYXNpY1NlcnZpY2UuZm9ybU1ldGFCYXNpY0luZm8ucmVsYXRpdmVQYXRoO1xuICAgIGNvbnN0IHJlbGF0aXZlUGF0aCA9IHRoaXMuZWRpdG9yUGFyYW1zLnJlbGF0aXZlUGF0aCB8fCAnJztcbiAgICBjb25zdCBwYWdlU2l6ZSA9IDEwMDA7XG4gICAgY29uc3Qgc291cmNlID0gdGhpcy5lZGl0b3JQYXJhbXMuc291cmNlIHx8ICdiZSdcbiAgICByZXR1cm4gaHR0cC5nZXQoJy9hcGkvZGV2L21haW4vdjEuMC9tZHNlcnZpY2UvdW5pb25tZGxpc3Q/cGF0aD0nICsgcmVsYXRpdmVQYXRoICsgJyZwYWdlSW5kZXg9MSZwYWdlU2l6ZT0nICsgcGFnZVNpemUgKyAnJm1ldGFkYXRhVHlwZUxpc3Q9LicgKyBzb3VyY2UsIHtcbiAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSksXG4gICAgICByZXNwb25zZVR5cGU6ICdqc29uJ1xuICAgIH0pLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgIHRoaXMucmVpbnZva2VJbnRlcmZhY2UoZGF0YSk7XG4gICAgICB0aGlzLmJlQWxsRGF0YSA9IGNsb25lRGVlcCh0aGlzLmdldEZvcm1EYXRhKGRhdGEsICdhbGwnKSk7XG4gICAgICB0aGlzLmJlQWxsRGF0YUNvcHkgPSBjbG9uZURlZXAodGhpcy5iZUFsbERhdGEpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIOiOt+WPluacgOi/keaVsOaNriAqL1xuICBnZXRSZWNlbnREYXRhSW5mbygpIHtcbiAgICBjb25zdCBodHRwID0gdGhpcy5pbmplY3Rvci5nZXQoSHR0cENsaWVudCk7XG4gICAgLy8gY29uc3QgcmVsYXRpdmVQYXRoID0gdGhpcy5mb3JtQmFzaWNTZXJ2aWNlLmZvcm1NZXRhQmFzaWNJbmZvLnJlbGF0aXZlUGF0aCB8fCAnJztcbiAgICBjb25zdCByZWxhdGl2ZVBhdGggPSB0aGlzLmVkaXRvclBhcmFtcy5yZWxhdGl2ZVBhdGggfHwgJyc7XG4gICAgY29uc3QgYXBwSWQgPSByZWxhdGl2ZVBhdGhbMF0gPT0gJy8nID8gcmVsYXRpdmVQYXRoLnNwbGl0KCcvJylbMV0gOiByZWxhdGl2ZVBhdGguc3BsaXQoJy8nKVswXTtcbiAgICBjb25zdCBzb3VyY2UgPSB0aGlzLmVkaXRvclBhcmFtcy5zb3VyY2UgfHwgJ2JlJztcbiAgICByZXR1cm4gaHR0cC5nZXQoJy9hcGkvZGV2L21haW4vdjEuMC9tZHNlcnZpY2UvZ2V0bWRyZWNlbnR1c2U/YXBwSWQ9JyArIGFwcElkICsgJyZtZXRhZGF0YVR5cGVMaXN0PS4nICsgc291cmNlLCB7XG4gICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0pLFxuICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbidcbiAgICB9KS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICB0aGlzLmJlUmVjZW50RGF0YSA9IGNsb25lRGVlcCh0aGlzLmdldEZvcm1EYXRhKGRhdGEsICdyZWNlbnQnKSk7XG4gICAgICBpZiAodGhpcy5iZVJlY2VudERhdGEpIHtcbiAgICAgICAgaWYgKHRoaXMuYmVSZWNlbnREYXRhLmxlbmd0aCkge1xuICAgICAgICAgIHRoaXMuc2hvd1JlY29tbWFuZERhdGEoKTtcbiAgICAgICAgICB0aGlzLmdldFVuaXF1ZURhdGEodGhpcy5iZURhdGEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKiog6I635Y+W5o6o6I2Q5pWw5o2uICovXG4gIGdldFJlY29tbWFuZERhdGFJbmZvKCkge1xuICAgIGNvbnN0IHJhbmdlID0gdGhpcy5lZGl0b3JQYXJhbXMucmFuZ2UgfHwgJ0JvJztcbiAgICBjb25zdCBodHRwID0gdGhpcy5pbmplY3Rvci5nZXQoSHR0cENsaWVudCk7XG4gICAgLy8gY29uc3QgcmVsYXRpdmVQYXRoID0gdGhpcy5mb3JtQmFzaWNTZXJ2aWNlLmZvcm1NZXRhQmFzaWNJbmZvLnJlbGF0aXZlUGF0aDtcbiAgICBjb25zdCByZWxhdGl2ZVBhdGggPSB0aGlzLmVkaXRvclBhcmFtcy5yZWxhdGl2ZVBhdGggfHwgJyc7XG4gICAgLy8g5o6o6I2QXG4gICAgY29uc3Qgc291cmNlID0gdGhpcy5lZGl0b3JQYXJhbXMuc291cmNlIHx8ICdiZSdcbiAgICByZXR1cm4gaHR0cC5nZXQoJy9hcGkvZGV2L21haW4vdjEuMC9tZHNlcnZpY2UvbWV0YWRhdGFMaXN0SW4nICsgcmFuZ2UgKyAnP3BhdGg9JyArIHJlbGF0aXZlUGF0aCArICcmbWV0YWRhdGFUeXBlTGlzdD0uJyArIHNvdXJjZSwge1xuICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9KSxcbiAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nXG4gICAgfSkuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgdGhpcy5iZVJlY29tbWFuZERhdGEgPSBjbG9uZURlZXAodGhpcy5nZXRGb3JtRGF0YShkYXRhLCAnbG9jYWwnKSk7XG4gICAgICBpZiAodGhpcy5iZVJlY29tbWFuZERhdGEpIHtcbiAgICAgICAgaWYgKHRoaXMuYmVSZWNvbW1hbmREYXRhLmxlbmd0aCkge1xuICAgICAgICAgIHRoaXMuc2hvd1JlY29tbWFuZERhdGEoKTtcbiAgICAgICAgICB0aGlzLmdldFVuaXF1ZURhdGEodGhpcy5iZURhdGEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgLyoqIOiOt+WPluaVsOaNriAqL1xuICBnZXRGb3JtRGF0YShkYXRhLCBjYXRlZ29yeSkge1xuICAgIGxldCBtZXRhZGF0YSA9IFtdO1xuICAgIGNvbnN0IGJlTWV0YWRhdGEgPSBkYXRhWydtZXRhZGF0YUluZGV4SXRlbXMnXSA/IGRhdGFbJ21ldGFkYXRhSW5kZXhJdGVtcyddIDogZGF0YTtcbiAgICBpZiAoYmVNZXRhZGF0YSkge1xuICAgICAgYmVNZXRhZGF0YS5mb3JFYWNoKGZ1bmN0aW9uIChiZU1ldGFkYXRhSXRlbSwgaW5kZXgpIHtcbiAgICAgICAgbGV0IGJlTWV0YWRhdGFJdGVtVGVtcCA9IHtcbiAgICAgICAgICBpZDogaW5kZXgsXG4gICAgICAgICAgbmFtZTogYmVNZXRhZGF0YUl0ZW0ubmFtZSxcbiAgICAgICAgICBsYWJlbDogYmVNZXRhZGF0YUl0ZW0uY29kZSxcbiAgICAgICAgICBzb3VyY2U6IGJlTWV0YWRhdGFJdGVtLm5hbWVTcGFjZSxcbiAgICAgICAgICBoaWRlOiBmYWxzZSxcbiAgICAgICAgICBhY3RpdmU6IGZhbHNlLFxuICAgICAgICAgIGRhdGE6IGJlTWV0YWRhdGFJdGVtLFxuICAgICAgICAgIGNhdGVnb3J5OiBjYXRlZ29yeVxuICAgICAgICB9XG4gICAgICAgIG1ldGFkYXRhLnB1c2goYmVNZXRhZGF0YUl0ZW1UZW1wKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gbWV0YWRhdGE7XG4gIH1cblxuICAvKiog5bGV56S64oCc5o6o6I2Q4oCd5LiA5qCPICovXG4gIHNob3dSZWNvbW1hbmREYXRhKCkge1xuICAgIHRoaXMuY2hvb3NlUmVjb21tYW5kID0gdHJ1ZTtcbiAgICB0aGlzLmJlRGF0YSA9IFtdO1xuICAgIHRoaXMuZm9sZFJlY2VudCA9IGZhbHNlO1xuICAgIGlmICh0aGlzLmJlUmVjb21tYW5kRGF0YSkge1xuICAgICAgaWYgKHRoaXMuYmVSZWNvbW1hbmREYXRhLmxlbmd0aCkge1xuICAgICAgICB0aGlzLmJlUmVjb21tYW5kRGF0YS5mb3JFYWNoKGJlUmVjb21tYW5kRGF0YUl0ZW0gPT4ge1xuICAgICAgICAgIHRoaXMuYmVEYXRhLnB1c2goY2xvbmVEZWVwKGJlUmVjb21tYW5kRGF0YUl0ZW0pKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0aGlzLmJlUmVjZW50RGF0YSkge1xuICAgICAgaWYgKHRoaXMuYmVSZWNlbnREYXRhLmxlbmd0aCkge1xuICAgICAgICB0aGlzLmJlUmVjZW50RGF0YS5mb3JFYWNoKGJlUmVjZW50RGF0YUl0ZW0gPT4ge1xuICAgICAgICAgIHRoaXMuYmVEYXRhLnB1c2goY2xvbmVEZWVwKGJlUmVjZW50RGF0YUl0ZW0pKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuZ2V0VW5pcXVlRGF0YSh0aGlzLmJlRGF0YSk7XG4gICAgdGhpcy5iZURhdGEgPSB0aGlzLm9uU2VhcmNoVmFsdWVDaGFuZ2VkKHRoaXMuc2VhcmNoVmFsdWUpO1xuICB9XG5cbiAgLyoqIOWxleekuuKAnOWFqOmDqOKAneS4gOagjyAqL1xuICBzaG93QWxsRGF0YSgpIHtcbiAgICB0aGlzLmJlRGF0YSA9IGNsb25lRGVlcCh0aGlzLmJlQWxsRGF0YSk7XG4gICAgdGhpcy5jaG9vc2VSZWNvbW1hbmQgPSBmYWxzZTtcbiAgICB0aGlzLmZvbGRSZWNlbnQgPSBmYWxzZTtcbiAgICB0aGlzLmJlRGF0YSA9IHRoaXMub25TZWFyY2hWYWx1ZUNoYW5nZWQodGhpcy5zZWFyY2hWYWx1ZSk7XG4gIH1cblxuICAvKiog5pCc57Si6aG5ICovXG4gIG9uU2VhcmNoVmFsdWVDaGFuZ2VkKHNlYXJjaFZhbHVlKSB7XG4gICAgY29uc3Qgc2VhcmNoZWREYXRhID0gdGhpcy5jaG9vc2VSZWNvbW1hbmQgPyB0aGlzLmJlRGF0YSA6IHRoaXMuYmVBbGxEYXRhQ29weTtcbiAgICBpZiAoc2VhcmNoZWREYXRhKSB7XG4gICAgICBzZWFyY2hWYWx1ZSA9IHNlYXJjaFZhbHVlID09IHVuZGVmaW5lZCA/ICcnIDogc2VhcmNoVmFsdWU7XG4gICAgICBzZWFyY2hWYWx1ZSA9IHNlYXJjaFZhbHVlWydvcmlnaW5hbEV2ZW50J10gIT0gdW5kZWZpbmVkID8gc2VhcmNoVmFsdWUudmFsdWUgfHwgJycgOiBzZWFyY2hWYWx1ZTtcbiAgICAgIHRoaXMuc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZTtcbiAgICAgIC8vIOaQnOe0ouahhuacieWAvOaXtuWFs+mXreWIhumhtVxuICAgICAgdGhpcy5zdXBwb3J0UGFnaW5nID0gdGhpcy5zZWFyY2hWYWx1ZSA9PSAnJyA/IHRydWUgOiBmYWxzZTtcbiAgICAgIGxldCB2YWx1ZSA9IHNlYXJjaFZhbHVlLnJlcGxhY2VBbGwoJyAnLCAnJykucmVwbGFjZUFsbCgnPicsICcnKTtcbiAgICAgIHZhbHVlID0gdmFsdWUgPT0gJycgPyAnICcgOiB2YWx1ZTtcbiAgICAgIHZhbHVlID0gdmFsdWUudG9Mb3dlckNhc2UoKTtcbiAgICAgIHNlYXJjaGVkRGF0YS5mb3JFYWNoKGJlRGF0YUl0ZW0gPT4ge1xuICAgICAgICBsZXQgY29tYmluZWRTdHJpbmcgPSAgYCR7YmVEYXRhSXRlbS5uYW1lfSAke2JlRGF0YUl0ZW0ubGFiZWx9ICR7YmVEYXRhSXRlbS5zb3VyY2V9YDtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRJdGVtID0gY29tYmluZWRTdHJpbmcudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgYmVEYXRhSXRlbS5oaWRlID0gc2VsZWN0ZWRJdGVtLmluY2x1ZGVzKHZhbHVlKSA9PSBmYWxzZSA/IHRydWUgOiBmYWxzZTtcbiAgICAgIH0pXG4gICAgfVxuICAgIHRoaXMuYmVEYXRhID0gY2xvbmVEZWVwKHNlYXJjaGVkRGF0YSk7XG4gICAgcmV0dXJuIHRoaXMuYmVEYXRhO1xuICB9XG5cbiAgLyoqIOeUqOaIt+mAieaLqeWAvCAqL1xuICBnZXRCZURhdGFJdGVtKHNlbGVjdGVkQmVEYXRhSXRlbSkge1xuICAgIHRoaXMuYmVEYXRhLmZvckVhY2goYmVEYXRhSXRlbSA9PiB7XG4gICAgICBpZiAoc2VsZWN0ZWRCZURhdGFJdGVtLmRhdGEuY29kZSA9PSBiZURhdGFJdGVtLmRhdGEuY29kZSkge1xuICAgICAgICBiZURhdGFJdGVtLmFjdGl2ZSA9ICFiZURhdGFJdGVtLmFjdGl2ZTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZENvbW1hbmQgPSBjbG9uZURlZXAoc2VsZWN0ZWRCZURhdGFJdGVtKTtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICBiZURhdGFJdGVtLmFjdGl2ZSA9IGZhbHNlO1xuICAgICAgfVxuICAgIH0pXG5cbiAgfVxuXG4gIC8qKiDnlKjmiLfngrnlh7vnoa7lrprml7bosIPnlKhwb3N0QXBp5Lyg5Ye65Y+C5pWwICovXG4gIC8qKiDnlKjmiLcgKi9cbiAgY2xpY2tDb25maXJtKCkge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkQ29tbWFuZCAmJiB0aGlzLnNlbGVjdGVkQ29tbWFuZFsnYWN0aXZlJ10pIHtcbiAgICAgIGNvbnN0IGh0dHAgPSB0aGlzLmluamVjdG9yLmdldChIdHRwQ2xpZW50KTtcbiAgICAgIGNvbnN0IHJlbGF0aXZlUGF0aCA9IHRoaXMuZWRpdG9yUGFyYW1zLnJlbGF0aXZlUGF0aCB8fCAnJztcbiAgICAgIC8vIGNvbnN0IHJlbGF0aXZlUGF0aCA9IHRoaXMuZm9ybUJhc2ljU2VydmljZS5mb3JtTWV0YUJhc2ljSW5mby5yZWxhdGl2ZVBhdGg7XG4gICAgICBjb25zdCBwYXRoID0gJy9hcGkvZGV2L21haW4vdjEuMC9tZHNlcnZpY2UvcGlja01ldGFkYXRhP2N1cnJlbnRQYXRoPScgKyByZWxhdGl2ZVBhdGg7XG4gICAgICBjb25zdCBib2R5ID0gdGhpcy5zZWxlY3RlZENvbW1hbmQuZGF0YTtcbiAgICAgIGNvbnN0IGhlYWRlck9wdGlvbiA9IHtcbiAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9KVxuICAgICAgfVxuICAgICAgcmV0dXJuIGh0dHAucG9zdChwYXRoLCBib2R5LCBoZWFkZXJPcHRpb24pLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgdGhpcy5zdWJtaXRNb2RhbC5lbWl0KGRhdGEpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgY29uc3Qgc291cmNlID0gdGhpcy5lZGl0b3JQYXJhbXMuc291cmNlO1xuICAgICAgc3dpdGNoIChzb3VyY2Upe1xuICAgICAgICBjYXNlICdiZSc6XG4gICAgICAgICAgdGhpcy5ub3RpZnlTZXJ2aWNlWydpbmZvJ10oJ+acqumAieaLqeS4muWKoeWunuS9kycpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICd2byc6XG4gICAgICAgICAgdGhpcy5ub3RpZnlTZXJ2aWNlWydpbmZvJ10oJ+acqumAieaLqeinhuWbvuWvueixoScpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdxbyc6XG4gICAgICAgICAgdGhpcy5ub3RpZnlTZXJ2aWNlWydpbmZvJ10oJ+acqumAieaLqeafpeivouWvueixoScpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHRoaXMubm90aWZ5U2VydmljZVsnaW5mbyddKCfmnKrpgInmi6nlhYPmlbDmja4nKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIFxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqIOa4heepuuaQnOe0ouWGheWuuSAqL1xuICBvbkNsZWFyKCkge1xuICAgIHRoaXMuYmVEYXRhID0gdGhpcy5vblNlYXJjaFZhbHVlQ2hhbmdlZCgnJyk7XG4gIH1cblxuXG5cbiAgY2xpY2tDYW5jZWwoKSB7XG4gICAgdGhpcy5jbG9zZU1vZGFsLmVtaXQoKTtcbiAgfVxuXG4gIGZvbGRJblJlY2VudCgpIHtcbiAgICB0aGlzLmZvbGRSZWNlbnQgPSAhdGhpcy5mb2xkUmVjZW50O1xuICAgIGlmICh0aGlzLmJlRGF0YSAmJiAhdGhpcy5zZWFyY2hWYWx1ZSkge1xuICAgICAgdGhpcy5iZURhdGEuZm9yRWFjaChiZURhdGFJdGVtID0+IHtcbiAgICAgICAgaWYgKGJlRGF0YUl0ZW0uY2F0ZWdvcnkgPT0gJ3JlY2VudCcpIHtcbiAgICAgICAgICBiZURhdGFJdGVtLmhpZGUgPSAhYmVEYXRhSXRlbS5oaWRlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBmb2xkSW5Mb2NhbCgpIHtcbiAgICB0aGlzLmZvbGRMb2NhbCA9ICF0aGlzLmZvbGRMb2NhbDtcbiAgICBpZiAodGhpcy5iZURhdGEgJiYgISh0aGlzLnNlYXJjaFZhbHVlKSkge1xuICAgICAgdGhpcy5iZURhdGEuZm9yRWFjaChiZURhdGFJdGVtID0+IHtcbiAgICAgICAgaWYgKGJlRGF0YUl0ZW0uY2F0ZWdvcnkgPT0gJ2xvY2FsJykge1xuICAgICAgICAgIGJlRGF0YUl0ZW0uaGlkZSA9ICFiZURhdGFJdGVtLmhpZGU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKiDljrvph40qL1xuICBnZXRVbmlxdWVEYXRhKGRhdGEpIHtcbiAgICBpZiAoZGF0YSkge1xuICAgICAgbGV0IHZhbHVlID0gY2xvbmVEZWVwKGRhdGEpO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykge1xuICAgICAgICBmb3IgKGxldCBqID0gaSArIDE7IGogPCB2YWx1ZS5sZW5ndGg7IGorKykge1xuICAgICAgICAgIGlmICh2YWx1ZVtpXVsnaWQnXSA9PSB2YWx1ZVtqXVsnaWQnXSkge1xuICAgICAgICAgICAgdmFsdWUuc3BsaWNlKGosIDEpO1xuICAgICAgICAgICAgai0tO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZGF0YSA9IGNsb25lRGVlcCh2YWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiBkYXRhO1xuICB9XG4gIC8qKiDmjqXlj6PmlbDmja7otoXov4cxMDAw5p2h5pe277yM6YeN5paw6LCD5Y+W5omA5pyJ5pWw5o2uICovXG4gIHJlaW52b2tlSW50ZXJmYWNlKGRhdGEpIHtcbiAgICBpZiAoZGF0YVsncGFnZSddKSB7XG4gICAgICBjb25zdCB0b3RhbE51bSA9IGRhdGFbJ3BhZ2UnXVsndG90YWwnXSB8fCAwO1xuICAgICAgaWYgKHRvdGFsTnVtID4gMTAwMCkge1xuICAgICAgICBjb25zdCBodHRwID0gdGhpcy5pbmplY3Rvci5nZXQoSHR0cENsaWVudCk7XG4gICAgICAgIGNvbnN0IHJlbGF0aXZlUGF0aCA9IHRoaXMuZWRpdG9yUGFyYW1zLnJlbGF0aXZlUGF0aCB8fCAnJztcbiAgICAgICAgY29uc3Qgc291cmNlID0gdGhpcy5lZGl0b3JQYXJhbXMuc291cmNlIHx8ICdiZSdcbiAgICAgICAgcmV0dXJuIGh0dHAuZ2V0KCcvYXBpL2Rldi9tYWluL3YxLjAvbWRzZXJ2aWNlL3VuaW9ubWRsaXN0P3BhdGg9JyArIHJlbGF0aXZlUGF0aCArICcmcGFnZUluZGV4PTEmcGFnZVNpemU9JyArIHRvdGFsTnVtICsgJyZtZXRhZGF0YVR5cGVMaXN0PS4nICsgc291cmNlLCB7XG4gICAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9KSxcbiAgICAgICAgICByZXNwb25zZVR5cGU6ICdqc29uJ1xuICAgICAgICB9KS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICAgICAgdGhpcy5iZUFsbERhdGEgPSBjbG9uZURlZXAodGhpcy5nZXRGb3JtRGF0YShkYXRhLCAnYWxsJykpO1xuICAgICAgICAgIHRoaXMuYmVBbGxEYXRhQ29weSA9IGNsb25lRGVlcCh0aGlzLmJlQWxsRGF0YSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4iXX0= |
@@ -387,3 +387,18 @@ import { cloneDeep } from 'lodash-es'; | ||
else { | ||
this.notifyService['info']('未选择业务实体'); | ||
/** @type {?} */ | ||
const source = this.editorParams.source; | ||
switch (source) { | ||
case 'be': | ||
this.notifyService['info']('未选择业务实体'); | ||
break; | ||
case 'vo': | ||
this.notifyService['info']('未选择视图对象'); | ||
break; | ||
case 'qo': | ||
this.notifyService['info']('未选择查询对象'); | ||
break; | ||
default: | ||
this.notifyService['info']('未选择元数据'); | ||
break; | ||
} | ||
return null; | ||
@@ -390,0 +405,0 @@ } |
@@ -449,3 +449,18 @@ import { cloneDeep } from 'lodash-es'; | ||
else { | ||
this.notifyService['info']('未选择业务实体'); | ||
/** @type {?} */ | ||
var source = this.editorParams.source; | ||
switch (source) { | ||
case 'be': | ||
this.notifyService['info']('未选择业务实体'); | ||
break; | ||
case 'vo': | ||
this.notifyService['info']('未选择视图对象'); | ||
break; | ||
case 'qo': | ||
this.notifyService['info']('未选择查询对象'); | ||
break; | ||
default: | ||
this.notifyService['info']('未选择元数据'); | ||
break; | ||
} | ||
return null; | ||
@@ -452,0 +467,0 @@ } |
{ | ||
"name": "@farris/app-navigation-be", | ||
"version": "0.0.6", | ||
"version": "0.0.7", | ||
"publishConfig": { | ||
@@ -5,0 +5,0 @@ "access": "public", |
@@ -12,2 +12,5 @@ ## 0.0.2 | ||
## 0.0.6 | ||
1. 支持大小写模糊 | ||
1. 支持大小写模糊 | ||
## 0.0.7 | ||
1. 提示内容修改 |
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 not supported yet
Sorry, the diff of this file is not supported yet
354802
3691
15