{"version":3,"sources":["webpack:///$_lazy_route_resource lazy namespace object","webpack:///node_modules/moment/locale sync ^\\.\\/.*$","webpack:///src/app/app.component.html","webpack:///src/app/layout/footer/footer.component.html","webpack:///src/app/layout/header/header.component.html","webpack:///src/app/layout/header/navsearch/navsearch.component.html","webpack:///src/app/layout/layout.component.html","webpack:///src/app/layout/offsidebar/offsidebar.component.html","webpack:///src/app/layout/sidebar/sidebar.component.html","webpack:///src/app/layout/sidebar/userblock/userblock.component.html","webpack:///src/app/modules/entity-management/components/assessmentreview/assessmentreview.component.html","webpack:///src/app/modules/entity-management/components/assignweightages/assignweightages.component.html","webpack:///src/app/modules/home/components/composition-report/composition-report.component.html","webpack:///src/app/modules/home/components/detailed-report/detailed-report.component.html","webpack:///src/app/modules/home/components/home.component.html","webpack:///src/app/modules/user-management/components/add-user/add-user.component.html","webpack:///src/app/shared/components/loading-screen/loading-screen.component.html","webpack:///src/app/shared/entity-header/entity-header.component.html","webpack:///src/app/Pipes/custom-css-pipe.pipe.ts","webpack:///src/app/app.component.scss","webpack:///src/app/app.component.ts","webpack:///src/app/app.module.ts","webpack:///src/app/core/core.module.ts","webpack:///src/app/core/gaurds/authentication.guard.ts","webpack:///src/app/core/interceptors/api-error-handler.interceptor.ts","webpack:///src/app/core/interceptors/api-header.interceptor.ts","webpack:///src/app/core/interceptors/httpcancel.interceptor.ts","webpack:///src/app/core/interceptors/index.ts","webpack:///src/app/core/interceptors/loading-screen-interceptor.ts","webpack:///src/app/core/module-import-guard.ts","webpack:///src/app/core/services/authentication.service.ts","webpack:///src/app/core/services/credentials.service.ts","webpack:///src/app/core/services/download-file.service.ts","webpack:///src/app/core/services/error.service.ts","webpack:///src/app/core/services/http-cancel.service.ts","webpack:///src/app/core/services/http-genric.service.ts","webpack:///src/app/core/services/loading-screen.service.ts","webpack:///src/app/core/services/logging.service.ts","webpack:///src/app/core/services/menu.service.ts","webpack:///src/app/core/services/notification.service.ts","webpack:///src/app/core/settings/settings.service.ts","webpack:///src/app/core/themes/themes.service.ts","webpack:///src/app/core/translator/translator.service.ts","webpack:///src/app/layout/footer/footer.component.scss","webpack:///src/app/layout/footer/footer.component.ts","webpack:///src/app/layout/header/header.component.scss","webpack:///src/app/layout/header/header.component.ts","webpack:///src/app/layout/header/navsearch/navsearch.component.scss","webpack:///src/app/layout/header/navsearch/navsearch.component.ts","webpack:///src/app/layout/layout.component.scss","webpack:///src/app/layout/layout.component.ts","webpack:///src/app/layout/layout.module.ts","webpack:///src/app/layout/offsidebar/offsidebar.component.scss","webpack:///src/app/layout/offsidebar/offsidebar.component.ts","webpack:///src/app/layout/sidebar/sidebar.component.scss","webpack:///src/app/layout/sidebar/sidebar.component.ts","webpack:///src/app/layout/sidebar/userblock/userblock.component.scss","webpack:///src/app/layout/sidebar/userblock/userblock.component.ts","webpack:///src/app/layout/sidebar/userblock/userblock.service.ts","webpack:///src/app/modules/entity-management/components/assessmentreview/assessmentreview.component.scss","webpack:///src/app/modules/entity-management/components/assessmentreview/assessmentreview.component.ts","webpack:///src/app/modules/entity-management/components/assignweightages/assignweightages.component.scss","webpack:///src/app/modules/entity-management/components/assignweightages/assignweightages.component.ts","webpack:///src/app/modules/entity-management/model/fileupload.ts","webpack:///src/app/modules/entity-management/services/entity-management.service.ts","webpack:///src/app/modules/home/components/composition-report/composition-report.component.scss","webpack:///src/app/modules/home/components/composition-report/composition-report.component.ts","webpack:///src/app/modules/home/components/detailed-report/detailed-report.component.scss","webpack:///src/app/modules/home/components/detailed-report/detailed-report.component.ts","webpack:///src/app/modules/home/components/home.component.scss","webpack:///src/app/modules/home/components/home.component.ts","webpack:///src/app/modules/menu.ts","webpack:///src/app/modules/user-management/components/add-user/add-user.component.scss","webpack:///src/app/modules/user-management/components/add-user/add-user.component.ts","webpack:///src/app/modules/user-management/services/user-management.service.ts","webpack:///src/app/routes.module.ts","webpack:///src/app/routes.ts","webpack:///src/app/shared/colors/colors.service.ts","webpack:///src/app/shared/commonservices/commonservice.service.ts","webpack:///src/app/shared/components/loading-screen/loading-screen.component.scss","webpack:///src/app/shared/components/loading-screen/loading-screen.component.ts","webpack:///src/app/shared/constants/api.constants.ts","webpack:///src/app/shared/constants/globle.constants.ts","webpack:///src/app/shared/constants/validations.constants.ts","webpack:///src/app/shared/directives/checkall/checkall.directive.ts","webpack:///src/app/shared/directives/easypiechart/easypiechart.directive.ts","webpack:///src/app/shared/directives/flot/flot.directive.ts","webpack:///src/app/shared/directives/jqcloud/jqcloud.directive.ts","webpack:///src/app/shared/directives/now/now.directive.ts","webpack:///src/app/shared/directives/scrollable/scrollable.directive.ts","webpack:///src/app/shared/directives/sparkline/sparkline.directive.ts","webpack:///src/app/shared/directives/vectormap/vectormap.directive.ts","webpack:///src/app/shared/dynamictable.pipe.ts","webpack:///src/app/shared/entity-header/entity-header.component.scss","webpack:///src/app/shared/entity-header/entity-header.component.ts","webpack:///src/app/shared/shared.module.ts","webpack:///src/app/shared/styles/themes/theme-a.scss","webpack:///src/app/shared/styles/themes/theme-b.scss","webpack:///src/app/shared/styles/themes/theme-c.scss","webpack:///src/app/shared/styles/themes/theme-d.scss","webpack:///src/app/shared/styles/themes/theme-e.scss","webpack:///src/app/shared/styles/themes/theme-f.scss","webpack:///src/app/shared/styles/themes/theme-g.scss","webpack:///src/app/shared/styles/themes/theme-h.scss","webpack:///src/environments/environment.ts","webpack:///src/environments/environmentLoader.ts","webpack:///src/main.ts","webpack:///src/modernizr.js","webpack:///src/vendor.ts","webpack:///crypto (ignored)?d550","webpack:///crypto (ignored)?441a","webpack:///crypto (ignored)?766c","webpack:///fs (ignored)","webpack:///crypto (ignored)","webpack:///stream (ignored)"],"names":["webpackEmptyAsyncContext","req","Promise","resolve","then","e","Error","code","keys","module","exports","id","map","webpackContext","webpackContextResolve","__webpack_require__","o","webpackContextKeys","Object","CustomCssPipePipe","_sanitizer","value","bypassSecurityTrustHtml","name","swal","AppComponent","settings","notificationService","idle","keepalive","router","modalService","credentialsService","authenticationService","cdr","httpGenericService","idleState","timedOut","lastPing","title","api","setIdle","setTimeout","setInterrupts","onIdleEnd","subscribe","reset","onTimeout","childModal","hide","logout","onIdleStart","show","extend","onTimeoutWarning","countdown","interval","onPing","Date","getUserLoggedIn","userLoggedIn","watch","stop","userDetails","credentials","postData","authentication","logoutUser","pipe","data","response","StatusCode","adfsLogin","localStorage","getItem","clear","sessionStorage","window","location","href","tenantId","redirectUrl","destroyed","detectChanges","navigate","icon","text","document","addEventListener","target","tagName","indexOf","getAttribute","preventDefault","getLayoutSetting","selector","template","createTranslateLoader","http","AppModule","declarations","imports","forRoot","loader","provide","useFactory","deps","providers","bootstrap","CoreModule","parentModule","withOptions","cookieName","headerName","PartnerGuard","httpGenericSerivce","route","state","providedIn","ApiErrorHandlerInterceptor","injector","jWTTokenResponse","request","next","handle","error","errorHandler","Oldrequest","errorService","get","logger","notifier","currentUser","errorMessage","ErrorEvent","message","getClientMessage","stackTrace","getClientStack","closeConfirm","notificationObject","getAPIErrorResponse","showError","summary","notification","getServerMessage","status","ApiHeaderInterceptor","url","includes","token","sessionId","idTokenIss","idTokenAud","clone","setHeaders","Authorization","responseType","CacheControl","Pragma","Expires","Session","decryptdata","endPoint","HttpCancelInterceptor","httpCancelService","onCancelPendingRequests","httpInterceptorProviders","useClass","multi","LoadingScreenInterceptor","loadingScreenService","activeRequests","skippUrls","displayLoadingScreen","skippUrl","RegExp","test","startLoading","stopLoading","throwIfAlreadyLoaded","moduleName","AuthenticationService","context","setCredentials","setUserLoggedIn","CryptoJS","crypto","CryptoGcm","credentialsKey","CredentialsService","_credentials","Token","applicationSetting","updateCredentials","savedCredentials","JSON","parse","encrypted","AES","encrypt","enc","Utf8","toString","aesEncryptionKey","keySize","iv","aesEncryptionIV","mode","CFB","padding","pad","Pkcs7","decrypted","decrypt","decrptedstring","console","log","setItem","encryptdata","remember","storage","stringify","removeItem","setToken","permissionDetails","decryptedIds","TaskClientId","split","length","taskId","clientId","assignedRole","trim","toLowerCase","CLIENT","asObservable","EXCEL_TYPE","EXCEL_EXTENSION","DownloadFileService","resourceName","headers","set","post","category","a","createElement","body","appendChild","setAttribute","download","click","URL","revokeObjectURL","remove","json","excelFileName","headername","worksheet","sheet_add_aoa","origin","merge","s","r","c","sheet_add_json","workbook","Sheets","SheetNames","excelBuffer","bookType","type","saveAsExcelFile","buffer","fileName","Blob","completedate","date","getDate","month","getMonth","finaldate","getFullYear","getHours","getMinutes","ErrorService","navigator","onLine","stack","statusText","hasOwnProperty","responseException","isError","exceptionMessage","validationErrors","filter","validation","reason","HttpCancelService","cancelPendingRequests$","HttpGenericService","toPromise","put","obj","str","p","push","encodeURIComponent","join","LoadingScreenService","_loading","loadingStatus","loading","LoggingService","MenuService","menuItems","adminItems","managerItems","analystItems","items","forEach","item","NotificationService","messageService","durationInSeconds","isConfirm","add","severity","detail","key","sticky","SettingsService","panelValue","getpanelValue","user","job","picture","app","description","year","version","layout","isFixed","isCollapsed","isBoxed","isRTL","horizontal","isFloat","asideHover","theme","asideScrollbar","isCollapsedText","useFullLayout","hiddenFooter","offsidebarOpen","asideToggled","viewAnimation","setLayoutSetting","themeA","themeB","themeC","themeD","themeE","themeF","themeG","themeH","ThemesService","defaultTheme","createStyle","setTheme","head","getElementsByTagName","styleTag","injectStylesheet","css","innerHTML","TranslatorService","translate","defaultLanguage","availablelangs","getDefaultLang","setDefaultLang","useLanguage","lang","use","FooterComponent","screenfull","HeaderComponent","menu","userblockService","dialogService","navCollapsed","userList","bar","getUserList","searchText","postDataPromise","userManagement","getAllUser","res","Result","getMenu","slice","isNavSearchVisible","ua","userAgent","match","fsbutton","nativeElement","style","display","event","toggleVisibility","stopPropagation","setNavSearchVisible","stat","toggleLayoutSetting","enabled","toggle","buttons","cancel","visible","className","closeModal","confirm","detach","ref","open","header","readonly","onClose","NavsearchComponent","elem","onclose","keyCode","closeNavSearch","contains","emit","changes","currentValue","querySelector","focus","LayoutComponent","events","iconConfig","iconElement","removeAttribute","classList","textContent","LayoutModule","OffsidebarComponent","activatedRoute","themes","translator","checkCloseOffsidebar","validationAList","currentTheme","getDefaultTheme","selectedLanguage","getLangs","queryParams","params","tab","anyClickClose","getAvailableLanguages","fetchAll","validationData","createObjectURL","removeChild","removeEventListener","SidebarComponent","credencialService","httpGenericRouteSerivce","commonserviceService","sbclickEvent","$doc","roleEntity","searchEntity","permission","permissionType","getRoles","role","getRoleList","roles","list","roleList","userData","sidenavitems","getAdmin","roleId","permissioncheck","getPermissionDetails","x","permissionTypeName","NoAccess","undefined","element","el","permissionName","removeFloatingNav","scrollTo","$","on","parents","off","isSidebarCollapsed","isSidebarCollapsedText","isEnabledHover","ul","currentTarget","nextElementSibling","parentNav","each","idx","$el","closeMenu","find","ulHeight","parseInt","scrollHeight","addClass","removeClass","self","anchor","$aside","$asideInner","children","$sidebar","mar","itemTop","parent","position","top","scrollTop","floatingNav","appendTo","vwHeight","clientHeight","safeOffsetValue","navHeight","outerHeight","safeOffset","displacement","menuTop","bottom","routeTo","attr","listenForExternalClicks","UserblockComponent","getVisibility","UserblockService","userBlockVisible","Crypto","AssessmentreviewComponent","fb","_location","downloadfile","settingsService","risk","IR","CE","bulist","required","max_value","noWhiteSpace","isComment","currentDate","pageIndex","s3FileName","fileBase64","reportmodel","isvalidatebutton","isgeneratebutton","isUploadDownloadbutton","validationrequired","isreport","total","previousData","isSubmitted","IDs","dataNA","totalNoOfCustomers","totalNovalueOfTransactionsPer","any","files","showPopup","RCsum","subcategory","Customersum","Productsum","Transactionsum","Geographysum","Channelssum","QFsum","riskSubCategoryWeightageAssignEntity","riskSubCategoryDetailsWeightageAsignEntity","WeitagePopup","assessmentforIR","mapQuestionnaireId","index","riskClassification","offering","noOfCustomers","noWhitespaceValidator","max","volumeOfTransactions","valueOfTransactions","dataNotAvailable","SubCategory","SubCategoryDetails","assessmentforCE","existenceResponse","controlExistenceExplanation","controlExistenceDocReference","effectivenessResponse","controlEffectivenessExplanation","inherentRisk","residualRisk","riskTreatmentActions","pic","implementationDueDate","addcommentforCE","comment","saveData","atob","blob","base64toBlob","panelcss","entityName","maintab","userId","isdashboardbutton","entitymanagementPermissionMode","Assessment","getEntityList","AssessmentStatusEntityId","cleanedStr","replace","Number","entityid","getEntitydetails","ASAssessmentCycle","getBUList","entity","getAssessmentCycles","EntityData","bmvalidationRequired","dmvalidationRequired","back","Edit","editMode","View","viewMode","Delete","deleteMode","getregulatoryGuideline","irceList","selectedBU","subcategorydetails","riskattribute","RiskType","selectedEntity","reject","entityDetailsId","BusinessUnits","assessmentCycles","entityDetails","getEntityDetailsByuserId","entitylist","selectedSubCategory","RiskType1","getEntityAssessmentStatus","EntityDataAssessment","bmvalidationDone","dmvalidationDone","isdashboard","dashboardGenerated","assessmentSubmitted","assessmentcyclevalue","selectedAssessmentCycle","weightages","getAllEntityBusinessUnitsWeightage","result","element1","businessId","businessUnitId","getSubcategory","riskCategoryid","getRiskclassification","entityAssessmentReview","getAllRiskSubCategories","element2","riskSubCategoryId","getSubcategorydetails","isChecked","confirmationText","confirmButtonText","showCancelButton","fire","showConfirmButton","cancelButtonText","cancelButtonColor","confirmButtonColor","isConfirmed","resetform","getAllRiskSubCategoryDetailsBySubCatergory","warningDetails","riskSubCategoryDetailsId","getRiskAttribute","isbool","totalvolumeOfTransactionsPer","first","rows","tempdata","attributevalue","riskCategoryId","riskubCategoryId","getEntityAssessmentReview","totalvalues","parseFloat","noOfCustomersPer","valueOfTransactionsPer","volumeOfTransactionsPer","toFixed","offer","getoffervalue","BGforIR","riskClassificationAggr","BGforCE","mitigatingFactorRating","rc","getStaticData","riskClassificationId","RC","riskParameter","existrepo","controlExistenceResponseId","ExistenceResponse","efferepo","controlEffectivenessResponseId","EffectivenessResponse","dynamictableforIR","entityId","GetRegulatoryGuidelinesByEntityId","regulatoryGuideList","regulatoryGuidelinesId","regulatoryGuidelineId","reduce","riskType","some","groupItem","v","selectedTable","getRiskClassifications","Riskclassification","getEntityDetailsById","temp","riskClassificationScoreThresholdId","assessmentReviewdisplayModal","controls","setValue","isIndustryPractice","assessmentReviewdisplayModalforCE","regulatoryGuideline","EntityId","matchingGuideline","guideline","existenceResponseData","clearValidators","updateValueAndValidity","markAllAsTouched","invalid","getTotalfornoOfCustomersPer","riskAttribute","getTotalforvolumeOfTransactionsPer","getTotalforvalueOfTransactionsPer","entityDetailsID","qualitativeFactorsResponse","callAPI","comments","commentdisplayModal","saveEntityAssesmentReview","Message","popup","infoPopUpModel","riskFactors","inforData","entityAssesmentReviewId","uploadingfile","fileuploadModal","fileRequired","oldtemplateName","file","reader","FileReader","onloadend","arrayBuffer","uintArray","Uint8Array","magicNumberHex","acc","padStart","toUpperCase","onerror","readAsArrayBuffer","fileCounter","getMagicNumber","magicNumber","size","UploadErrorMessage","i","ext","pop","extension","readAndUploadFile","theFile","onload","base64","setInterval","Math","floor","getRandomIntInclusive","button","clearInterval","readAsDataURL","min","randomBuffer","Uint32Array","getRandomValues","randomNumber","ceil","createdBy","questionsTemplates","UploadUpdatedEntityReport","getAllTemplates","bool","buid","getAllQuestionsTemplate","formName","preventSpace","fileextension","reportTemplates","generateReport","downloadDocument","filePathDOCX","fileNameDOCX","filePathPDF","fileNamePDF","Data","fileData","filename","saveAs","templateCategory","DownloadReport","byteString","ia","charCodeAt","submitAssessment","iDs","subcategoryDetailsName","subcategoryName","buname","totalNoOfCustomersPer","totalVolumeOfTransactionsPer","totalValueOfTransactionsPer","getAllRiskCategoryandSubCategoryWeighatages","getTotal","customerdata","productsdata","transactionsdata","geographydata","channelsdata","QFdata","CustomersData","ProductsData","TransactionsData","GeographyData","ChannelsData","OtherQualitativeFactorsData","weightage","companyName","isAdmin","validateAssessment","selectedtable","warningRiskType","table_no","setValidators","numberOnly","AssignweightagesComponent","entityManagementService","BU","assignweightageFormArray","pattern","validationMessage","weightagePattern","VALIDATIONS","riskDetails","ceFormArray","buFormArray","isselect","riskTypeId","createOnboardingForm","rowGroup","controlType","columnSize","reactiveControlType","screenBlock","label","CEForm","BUForm","assignweightage","riskcategoryORattribute","subCategory","getSetInitialData","Weightages","AssessmentStatusEntityName","isswitchtab","buWeightageAssignEntity","userid","AssigndisplayModal","AssigndisplayModalforce","AssigndisplayModalforbu","oldweightage","saveAllRiskCategoryandSubCategoryWeighatages","updateEntityBusinessUnits","Fileupload","templateName","assessmentStartDate","reportFileUpload","EntityManagementService","BUlist","createQuestionsTemplate","IRCRBUcss","entityEnable","businessEnable","weightageEnable","userEnable","questionnaireEnable","assessmentEnable","entityrowdata","rowdata","permissionMode","CompositionReportComponent","sanitized","setColumns","cols","field","colsMain","compositionreportdetails","getDashboardCompositionReportMainTable","RiskCategory","BusinessUnitsId","Years","sort","b","ChartDetails","selectedSubCategoryDetails","RiskSubCategoryId","RiskSubCategoryDetailsId","dashboard","DashboardCompositionReportMainTable","compositionReportMainTableList","compositionReportChildTableList","RiskTypeId","RiskAttributeTemp","RiskAttribute","DashboardCompositionReport","DetailedReportComponent","SubCategoryDetailsChart","chart","credits","exporting","xAxis","categories","color","yAxis","stackLabels","fontWeight","legend","align","verticalAlign","y","floating","backgroundColor","borderColor","borderWidth","shadow","tooltip","headerFormat","pointFormat","plotOptions","column","stacking","dataLabels","series","detailedreportdetails","getElementById","DashboardDetialedReport","HomeComponent","selectedToYear","selectedFromYear","IRoptions","height","fontSize","accessibility","announceNewData","format","pointWidth","colors","colorByPoint","CEoptions","IRRiskMeterGauge","font","point","valueSuffix","pie","distance","startAngle","endAngle","center","innerSize","CERiskMeterGauge","ToYearList","FromYearList","isLoad","taYear1","taYear2","enableSearch","IRBarChartDetails","xAxiscategories","chartIR","getSVG","svgIRString","CEBarChartDetails","chartCE","svgCEString","ResidualRiskScoreDetails","cycle","DashboardIRRiskMeterDetails","j","count","DashboardCERiskMeterDetails","strSvg","Category","isUpdate","strSVG","SaveSVG","ToFromYearDropDown","quarterOrHalfyearNo","substring","taYear1Value","taYear1temp","loadCharts","GetTrendAnalysis","assessmentPeriod1","getResidualRiskScoreDetails","getIRChartDetails","getCEChartDetails","dashboardtable","entityBusinessUnits","getAllEntityBusinessUnits","isActive","screen","canvas","htmldata","src","toDataURL","downloadLink","saveChartSVG","scorecard","htmldatascorecard","buscorecardIR","buscorecardCE","IsDashboardGenerated","year1","year2","GetDashboardTrendAnalysis","trendAnalysisResult","year1Id","year2Id","Dashboard","link","Mapquestionnaire","RemedialMeasure","UserManagement","EntityManagement","Emailtemplates","Reporttemplates","RolesPermission","PermissionManagement","AuditReport","RegulatoryGuidelines","ClientMangement","submenu","TaskManagement","Masters","Settings","isClient","Admin","Manager","Analyst","AddUserComponent","userManagementService","config","valForm","email","designation","desginationlist","active","validemail","valid_email","designations","isEdit","readOnly","ngOnDestroy","cancelPendingRequests","addUserAPICall","addUser","close","group","compose","getDesignationList","userName","fullName","designationId","$ev","markAsTouched","valid","onEdit","editUserDetails","editUser","UserManagementService","roleIdList","designationList","addEntity","getMappedUserGridModel","mapUserGridViewModel","mappedToUserModel","userGrid","mapUserGridTOUserModel","isArrayType","val","Array","isArray","isObjectType","userGridModelCollection","userGridModel","designationName","roleName","userModel","roleArray","roleIdArray","designationArray","entityArray","RoutesModule","menuService","tr","addMenu","useHash","routes","path","redirectTo","pathMatch","loadChildren","m","AuthenticationModule","canActivate","component","UserManagementModule","RolePermissionManagementModule","PermissionManagementModule","EntityManagementModule","EmailTemplatesModule","ReportTemplatesModule","BusinessUnitsModule","AuditReportModule","RegulatoryGuidelinesModule","ColorsService","APP_COLORS","CommonserviceService","dotCount","control","isWhitespace","isValid","permissions","GetRoleWisePermission","setPermissionDetails","charCode","which","checkNumberOnly","numericCheck","numeric","checkNumeric","checkString","LoadingScreenComponent","loadingSubscription","blockUI","start","unsubscribe","API","createToken","validateUser","activateDeactivateUser","getUserByEmail","insertRole","updateRole","deleteRole","GetRegulatoryGuidelines","InsertRegulatoryGuidelines","getroles","UpdateRoleWisePermission","getAllEntityDetails","createEntityDetails","updateEntityDetails","deleteEntityDetails","getStaticValuesByCategoryName","getAllEntitiesList","getEntityBusinessUnitsById","createEntityBusinessUnits","deleteEntityBusinessUnits","entityContactPersons","getAllEntityContactPersons","createEntityContactPersons","updateEntityRiskSubCategoryWeightage","updateEntityRiskSubCategoryDetailsWeightage","getAllEntityRiskSubCategoryDetailsWeightage","getQuestionsTemplateById","updateQuestionsTemplate","mapQuestionsTemplateToEntity","deleteQuestionsTemplate","downloadFile","DownloadQuestionTemplate","questionBank","getQuestionBankById","getAllQuestionBank","createQuestionBank","updateQuestionBank","mapQuestionBankToEntity","deleteQuestionBank","getAllRiskTypeBySubCatergoryDetails","staticCategory","getStaticCategories","staticValue","getAllDesignations","getAssismentYear","getMasterData","addMasterData","getMasterById","deleteMasterData","editMasterData","clientManagement","GetClientEngementTeams","GetClientList","AcitveDeactiveClient","getClientEngementTeamsByClientId","getIndustryTaxonomy","getIndustryTaxonomyDetails","manageClientEngagementTeam","getClientOnboardingDetails","getSubSectorsBySectorId","addClientGroup","getClientGroups","getSectors","onBoardClient","getSectorCodeBySubSectorId","saveXMLTemplate","upload","uploadXML","addEngagementTeam","upload1","templates","getAllTemplateStatus","getDataTemplateDetails","downloadTemplate","uploadTemmplate","shareThroughSyatem","getShareThroughSyatemDetails","workflow","getWorkFlowMapping","getToUserListForClient","getTaskWorkflowHistory","getRolewiseUsers","saveTaskWorkflow","EmailTemplates","getAllEmailTemplates","UpdateEmailTemplates","ActivateOrInactivateEmailTemplates","ReportTemplates","getAllReportTemplates","UpdateReportTemplate","ActivateOrInactivateReportTemplates","mapReportTemplate","getReportTemplateById","getAllBusinessUnits","GenerateAuditReport","GetEntityAssessmentSummary","ExportExcel","GetStaticValues","GetStaticValueByStCategoryId","GetCategoriesValueList","GetAplicabilityList","GetStaticCategories","GetStaticCategoriesId","GetClientDetailsById","GetAllTask","SaveTaskAsync","SaveTaskClientDetails","GetTaskClientDetails","SaveApplicability","GetTaskApplicability","SaveForm3CEBDetails","GetTaskForm3CEBDetails","GetTaskDetailsByTaskId","GetAssessmentYrByTaskId","SaveCustomisedComment","GetAnnexurePartBClause10Details","SaveAnnexurePartBClause10Details","GetPartBClause11ADetails","SavePartBClause11ADetails","GetPartBClause11BDetails","SavePartBClause11BDetails","GetPartBClause11CDetails","SavePartBClause11CDetails","GetPartBClause12Details","SavePartBClause12Details","GetPartBClause13Details","SavePartBClause13Details","GetPartBClause14Details","SavePartBClause14Details","GetPartBClause15Details","SavePartBClause15Details","GetPartBClause16Details","SavePartBClause16Details","GetPartBClause17Details","SavePartBClause17Details","GetPartBClause18Details","SavePartBClause18Details","GetPartBClause19Details","SavePartBClause19Details","GetPartBClause20Details","SavePartBClause20Details","GetAnnexurePartCClause21Details","SaveAnnexurePartCClause21Details","GetAnnexurePartCClause22Details","SaveAnnexurePartCClause22Details","GetAnnexurePartCClause23ADetails","SaveAnnexurePartCClause23ADetails","GetAnnexurePartCClause23BDetails","SaveAnnexurePartCClause23BDetails","GetAnnexurePartCClause24Details","SaveAnnexurePartCClause24Details","GetAnnexurePartCClause25Details","SaveAnnexurePartCClause25Details","GetForm3CEBCommentClauseDataList","GetSubmitedCommentsList","GetSubmitedCustomisedCommentsList","GetSubmitedClientCommentsList","SaveForm3CebtaskClientComments","CreateFlipSideReturn","Export3CEBExcel","GetIrcQuestionsInfoData","GetIrcQuestions","SaveIrcQuestionsInfoDataDetails","GetIrcTransaction","GetIrcTransactionByTaskId","SaveIrcTransaction","GetIRCQuestionsUploadedFileData","Export3CEBPDF","GenericUploadFiles","DownloadFileByFileName","XMLValidation","GenerateXML","EncryptionKey","GetApplications","GetApplicationSortByList","SortByList","Designations","EXECUTIVE","ASSISTANT_MANAGER","DEPUTY_MANAGER","MANAGER","SENIOR_MANAGER","DIRECTOT","SENIOR_DIRECTOR","PARTNER","ANALYST","CEC_ANALYST","REVIEWER","SIGNING_PARTNER","REVIEWING_PARTNER","ADMIN","STACKHOLDER","SUPERADMIN","StaticCategory","Designation","RiskGrading","ForeignEntityType","ClientRole","PermissionType","ReturnType","AssessMentYear","TaskStatus","Applicabilty","MethodUsedForDeterminingTheArmsLengthPrice","Clause10NatureOfTheRelationship","Clause11ADescriptionOfTransactionType","Clause11BDescriptionOfTransactionType","Clause15CompensationTransactionType","Clause16ConsiderationTransactionType","Clause11CAmountPaidType","Clause12AmountPaidType","Clause13AmountPaidType","Clause14AmountPaidType","Clause14LendingOrBorrowing","Clause17TransactionType","Clause17AmountPaidType","Clause19AmountPaidType","Clause20AmountPaidType","Clause24AmountPaidType","Clause25AmountPaidType","Form3CEBStatus","Form3CEBDeclarationPoint1","Form3CEBDeclarationPoint2","IRCQuestionStatus","IRCUploadedFile","IRCQuestionType","DataTemplateStatus","StaticValue","Basic","General","ClauseSpecific","OtherComment","Permission","PermissionTypeEnum","PermissionsEnum","CommentClausesEnum","FormAML","Clause10","Clause11A","Clause11B","Clause11C","Clause12","Clause13","Clause14","Clause15","Clause16","Clause17","Clause18","Clause19","Clause20","Clause21","Clause22","Clause23A","Clause23B","Clause24","Clause25","CommentTypeEnum","StandardComment","DeloitteSpecificComments","NoOfClauses","NotForeignFormCaluse","FormTypeEnum","PrepareAML","IssueAML","ModeName","Modes","None","LocalStorageKeys","KeyDelimiter","haveNotBeen","PaginatorIconList","ValidationMessage","MaxLength","MinLength","MaxValue","MinValue","Pattern","CheckallDirective","$element","checkbox","table","prop","checked","EasyPieChart","EasypiechartDirective","defaultOptions","barColor","trackColor","scaleColor","scaleLength","lineCap","lineWidth","rotate","animate","duration","percent","options","pieChart","update","FlotDirective","ready","plot","onDatasetChanged","dataset","onSerieToggled","heightDefault","width","attrWidth","plotObj","setData","setupGrid","draw","init","someData","getData","sName","toggleFor","shutdown","JqcloudDirective","initialized","$elem","fn","jQCloud","defaults","opts","steps","words","NowDirective","updateTime","intervalId","bind","dt","ScrollableDirective","defaultHeight","slimScroll","SparklineDirective","resizeEventId","initSparkLine","sparkline","disableHiddenCheck","runSparkline","resize","values","VectormapDirective","mapHeight","vectorMap","mapName","mapOptions","bgColor","zoomMin","zoomMax","zoomOnScroll","regionStyle","initial","regionFill","hover","selected","fill","selectedHover","focusOn","scale","markerStyle","markerColor","stroke","onRegionLabelShow","seriesData","html","markers","markersData","regions","scaleColors","normalizeFunction","DynamictablePipe","args","EntityHeaderComponent","business","questionnaire","assessment","dashboardEnable","buweighate","buassessment","SharedModule","ngModule","environment","production","tinymce","apiKey","environmentLoader","xmlhttp","XMLHttpRequest","method","responseText","send","env","getBaseUrl","bootstrapModule","appBootstrap","tests","ModernizrProto","_version","_config","_q","cb","addTest","addAsyncTest","Modernizr","prototype","classes","is","testRunner","featureNames","feature","aliasIdx","nameIdx","featureName","featureNameSplit","featureIdx","aliases","Boolean","docElement","documentElement","isSVG","nodeName","setClasses","classPrefix","baseVal","enableJSClass","reJS","enableClasses","arguments","createElementNS","call","apply","eStyle","cssText","backgroundPosition","omPrefixes","cssomPrefixes","usePrefixes","_cssomPrefixes","substr","modElem","mStyle","unshift","getBody","fake","injectElementWithStyles","rule","callback","nodes","testnames","mod","ret","node","docOverflow","div","styleSheet","createTextNode","background","overflow","parentNode","offsetHeight","domToCSS","m1","nativeTestProps","props","CSS","supports","conditionText","getComputedStyle","cssToDOM","m2","testProps","prefixed","skipValueTest","afterInit","propsLength","before","elems","shift","cleanElems","domPrefixes","_domPrefixes","fnBind","that","testDOMProps","testPropsAll","ucProp","charAt","testAllProps","prefixes","_prefixes","testStyles","newSyntax","oldSyntax","usePrefix","mq","defaultStyle","offsetWidth","blacklist","wkvers","$1","webos","wppre8","oldandroid","sheet","cssRules","createSVGRect","hasOwnProp","_hasOwnProperty","object","property","constructor","_l","_trigger","cbs","last","implementation","hasFeature","toStringFn","SVGFEColorMatrixElement","SVG_FECOLORMATRIX_TYPE_SATURATE","SVGRect","firstChild","namespaceURI"],"mappings":"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","file":"main-es5.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./$$_lazy_route_resource lazy recursive\";","var map = {\n\t\"./af\": \"./node_modules/moment/locale/af.js\",\n\t\"./af.js\": \"./node_modules/moment/locale/af.js\",\n\t\"./ar\": \"./node_modules/moment/locale/ar.js\",\n\t\"./ar-dz\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-dz.js\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-kw\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-kw.js\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-ly\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ly.js\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ma\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-ma.js\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-sa\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-sa.js\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-tn\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar-tn.js\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar.js\": \"./node_modules/moment/locale/ar.js\",\n\t\"./az\": \"./node_modules/moment/locale/az.js\",\n\t\"./az.js\": \"./node_modules/moment/locale/az.js\",\n\t\"./be\": \"./node_modules/moment/locale/be.js\",\n\t\"./be.js\": \"./node_modules/moment/locale/be.js\",\n\t\"./bg\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bg.js\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bm\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bm.js\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bn\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bn.js\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bo\": \"./node_modules/moment/locale/bo.js\",\n\t\"./bo.js\": \"./node_modules/moment/locale/bo.js\",\n\t\"./br\": \"./node_modules/moment/locale/br.js\",\n\t\"./br.js\": \"./node_modules/moment/locale/br.js\",\n\t\"./bs\": \"./node_modules/moment/locale/bs.js\",\n\t\"./bs.js\": \"./node_modules/moment/locale/bs.js\",\n\t\"./ca\": \"./node_modules/moment/locale/ca.js\",\n\t\"./ca.js\": \"./node_modules/moment/locale/ca.js\",\n\t\"./cs\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cs.js\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cv\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cv.js\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cy\": \"./node_modules/moment/locale/cy.js\",\n\t\"./cy.js\": \"./node_modules/moment/locale/cy.js\",\n\t\"./da\": \"./node_modules/moment/locale/da.js\",\n\t\"./da.js\": \"./node_modules/moment/locale/da.js\",\n\t\"./de\": \"./node_modules/moment/locale/de.js\",\n\t\"./de-at\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-at.js\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-ch\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de-ch.js\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de.js\": \"./node_modules/moment/locale/de.js\",\n\t\"./dv\": \"./node_modules/moment/locale/dv.js\",\n\t\"./dv.js\": \"./node_modules/moment/locale/dv.js\",\n\t\"./el\": \"./node_modules/moment/locale/el.js\",\n\t\"./el.js\": \"./node_modules/moment/locale/el.js\",\n\t\"./en-au\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-au.js\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-ca\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-ca.js\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-gb\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-gb.js\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-ie\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-ie.js\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-il\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-il.js\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-nz\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-nz.js\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./eo\": \"./node_modules/moment/locale/eo.js\",\n\t\"./eo.js\": \"./node_modules/moment/locale/eo.js\",\n\t\"./es\": \"./node_modules/moment/locale/es.js\",\n\t\"./es-do\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-do.js\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-us\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es-us.js\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es.js\": \"./node_modules/moment/locale/es.js\",\n\t\"./et\": \"./node_modules/moment/locale/et.js\",\n\t\"./et.js\": \"./node_modules/moment/locale/et.js\",\n\t\"./eu\": \"./node_modules/moment/locale/eu.js\",\n\t\"./eu.js\": \"./node_modules/moment/locale/eu.js\",\n\t\"./fa\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fa.js\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fi\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fi.js\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fo\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fo.js\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fr\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fr-ca\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ca.js\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ch\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr-ch.js\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr.js\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fy\": \"./node_modules/moment/locale/fy.js\",\n\t\"./fy.js\": \"./node_modules/moment/locale/fy.js\",\n\t\"./gd\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gd.js\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gl\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gl.js\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gom-latn\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gom-latn.js\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gu\": \"./node_modules/moment/locale/gu.js\",\n\t\"./gu.js\": \"./node_modules/moment/locale/gu.js\",\n\t\"./he\": \"./node_modules/moment/locale/he.js\",\n\t\"./he.js\": \"./node_modules/moment/locale/he.js\",\n\t\"./hi\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hi.js\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hr\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hr.js\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hu\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hu.js\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hy-am\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./hy-am.js\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./id\": \"./node_modules/moment/locale/id.js\",\n\t\"./id.js\": \"./node_modules/moment/locale/id.js\",\n\t\"./is\": \"./node_modules/moment/locale/is.js\",\n\t\"./is.js\": \"./node_modules/moment/locale/is.js\",\n\t\"./it\": \"./node_modules/moment/locale/it.js\",\n\t\"./it.js\": \"./node_modules/moment/locale/it.js\",\n\t\"./ja\": \"./node_modules/moment/locale/ja.js\",\n\t\"./ja.js\": \"./node_modules/moment/locale/ja.js\",\n\t\"./jv\": \"./node_modules/moment/locale/jv.js\",\n\t\"./jv.js\": \"./node_modules/moment/locale/jv.js\",\n\t\"./ka\": \"./node_modules/moment/locale/ka.js\",\n\t\"./ka.js\": \"./node_modules/moment/locale/ka.js\",\n\t\"./kk\": \"./node_modules/moment/locale/kk.js\",\n\t\"./kk.js\": \"./node_modules/moment/locale/kk.js\",\n\t\"./km\": \"./node_modules/moment/locale/km.js\",\n\t\"./km.js\": \"./node_modules/moment/locale/km.js\",\n\t\"./kn\": \"./node_modules/moment/locale/kn.js\",\n\t\"./kn.js\": \"./node_modules/moment/locale/kn.js\",\n\t\"./ko\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ko.js\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ky\": \"./node_modules/moment/locale/ky.js\",\n\t\"./ky.js\": \"./node_modules/moment/locale/ky.js\",\n\t\"./lb\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lb.js\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lo\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lo.js\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lt\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lt.js\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lv\": \"./node_modules/moment/locale/lv.js\",\n\t\"./lv.js\": \"./node_modules/moment/locale/lv.js\",\n\t\"./me\": \"./node_modules/moment/locale/me.js\",\n\t\"./me.js\": \"./node_modules/moment/locale/me.js\",\n\t\"./mi\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mi.js\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mk\": \"./node_modules/moment/locale/mk.js\",\n\t\"./mk.js\": \"./node_modules/moment/locale/mk.js\",\n\t\"./ml\": \"./node_modules/moment/locale/ml.js\",\n\t\"./ml.js\": \"./node_modules/moment/locale/ml.js\",\n\t\"./mn\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mn.js\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mr\": \"./node_modules/moment/locale/mr.js\",\n\t\"./mr.js\": \"./node_modules/moment/locale/mr.js\",\n\t\"./ms\": \"./node_modules/moment/locale/ms.js\",\n\t\"./ms-my\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms-my.js\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms.js\": \"./node_modules/moment/locale/ms.js\",\n\t\"./mt\": \"./node_modules/moment/locale/mt.js\",\n\t\"./mt.js\": \"./node_modules/moment/locale/mt.js\",\n\t\"./my\": \"./node_modules/moment/locale/my.js\",\n\t\"./my.js\": \"./node_modules/moment/locale/my.js\",\n\t\"./nb\": \"./node_modules/moment/locale/nb.js\",\n\t\"./nb.js\": \"./node_modules/moment/locale/nb.js\",\n\t\"./ne\": \"./node_modules/moment/locale/ne.js\",\n\t\"./ne.js\": \"./node_modules/moment/locale/ne.js\",\n\t\"./nl\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nl-be\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl-be.js\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl.js\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nn\": \"./node_modules/moment/locale/nn.js\",\n\t\"./nn.js\": \"./node_modules/moment/locale/nn.js\",\n\t\"./pa-in\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pa-in.js\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pl\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pl.js\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pt\": \"./node_modules/moment/locale/pt.js\",\n\t\"./pt-br\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt-br.js\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt.js\": \"./node_modules/moment/locale/pt.js\",\n\t\"./ro\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ro.js\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ru\": \"./node_modules/moment/locale/ru.js\",\n\t\"./ru.js\": \"./node_modules/moment/locale/ru.js\",\n\t\"./sd\": \"./node_modules/moment/locale/sd.js\",\n\t\"./sd.js\": \"./node_modules/moment/locale/sd.js\",\n\t\"./se\": \"./node_modules/moment/locale/se.js\",\n\t\"./se.js\": \"./node_modules/moment/locale/se.js\",\n\t\"./si\": \"./node_modules/moment/locale/si.js\",\n\t\"./si.js\": \"./node_modules/moment/locale/si.js\",\n\t\"./sk\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sk.js\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sl\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sl.js\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sq\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sq.js\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sr\": \"./node_modules/moment/locale/sr.js\",\n\t\"./sr-cyrl\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr-cyrl.js\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr.js\": \"./node_modules/moment/locale/sr.js\",\n\t\"./ss\": \"./node_modules/moment/locale/ss.js\",\n\t\"./ss.js\": \"./node_modules/moment/locale/ss.js\",\n\t\"./sv\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sv.js\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sw\": \"./node_modules/moment/locale/sw.js\",\n\t\"./sw.js\": \"./node_modules/moment/locale/sw.js\",\n\t\"./ta\": \"./node_modules/moment/locale/ta.js\",\n\t\"./ta.js\": \"./node_modules/moment/locale/ta.js\",\n\t\"./te\": \"./node_modules/moment/locale/te.js\",\n\t\"./te.js\": \"./node_modules/moment/locale/te.js\",\n\t\"./tet\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tet.js\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tg\": \"./node_modules/moment/locale/tg.js\",\n\t\"./tg.js\": \"./node_modules/moment/locale/tg.js\",\n\t\"./th\": \"./node_modules/moment/locale/th.js\",\n\t\"./th.js\": \"./node_modules/moment/locale/th.js\",\n\t\"./tl-ph\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tl-ph.js\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tlh\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tlh.js\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tr\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tr.js\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tzl\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzl.js\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzm\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./tzm-latn\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm-latn.js\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm.js\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./ug-cn\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./ug-cn.js\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./uk\": \"./node_modules/moment/locale/uk.js\",\n\t\"./uk.js\": \"./node_modules/moment/locale/uk.js\",\n\t\"./ur\": \"./node_modules/moment/locale/ur.js\",\n\t\"./ur.js\": \"./node_modules/moment/locale/ur.js\",\n\t\"./uz\": \"./node_modules/moment/locale/uz.js\",\n\t\"./uz-latn\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz-latn.js\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz.js\": \"./node_modules/moment/locale/uz.js\",\n\t\"./vi\": \"./node_modules/moment/locale/vi.js\",\n\t\"./vi.js\": \"./node_modules/moment/locale/vi.js\",\n\t\"./x-pseudo\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./x-pseudo.js\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./yo\": \"./node_modules/moment/locale/yo.js\",\n\t\"./yo.js\": \"./node_modules/moment/locale/yo.js\",\n\t\"./zh-cn\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-cn.js\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-hk\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-hk.js\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-tw\": \"./node_modules/moment/locale/zh-tw.js\",\n\t\"./zh-tw.js\": \"./node_modules/moment/locale/zh-tw.js\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./node_modules/moment/locale sync recursive ^\\\\.\\\\/.*$\";","export default \"\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n

{{message.summary}}

\\r\\n

{{message.detail}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Your session will Expire

\\r\\n
\\r\\n
\\r\\n {{idleState}}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\";","export default \"
\\r\\n
\\r\\n © {{settings.getAppSetting('year')}} - {{ settings.getAppSetting('name') }}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{settings.getAppSetting('version')}}\\r\\n
\\r\\n
\\r\\n\";","export default \"\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n\\t
\\r\\n\\t\\t\\r\\n\\t
\\r\\n\\t
\\r\\n\\t\\tProfile\\t\\r\\n\\t
\\r\\n
\\r\\n\\r\\n
\\r\\n\\t
\\r\\n\\t\\t\\r\\n\\t
\\r\\n\\t
\\r\\n\\t\\tLogout\\r\\n\\t
\\r\\n
\\r\\n
\\r\\n\";","export default \"\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n\";","export default \"
\\r\\n\\t\\r\\n\\t\\r\\n\\t\\r\\n\\t\\r\\n\\t\\r\\n\\t\\r\\n\\t\\r\\n\\t
\\r\\n\\t\\t\\r\\n\\t\\t
\\r\\n\\t\\t\\t\\r\\n\\t\\t
\\r\\n\\t
\\r\\n\\t\\r\\n\\t\\r\\n
\\r\\n\";","export default \"\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n {{item.Value}}\\r\\n \\r\\n
\\r\\n
\";","export default \"\\r\\n
\\r\\n\\t\\r\\n
\\r\\n\\r\\n\";","export default \"
\\r\\n \\r\\n
\\r\\n
\\r\\n \\\"Avatar\\\"\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n {{ 'sidebar.WELCOME' | translate }} John\\r\\n Programmer\\r\\n
\\r\\n
\\r\\n\";","export default \"\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Inherent AML Risk
\\r\\n
Control Effectiveness
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n {{item.riskAttribute}}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
1\\\" class=\\\"scroll mb-2\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n {{items.riskType}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Action\\r\\n Sr.No\\r\\n Risk Attribute\\r\\n Risk Classification\\r\\n \\r\\n Response\\r\\n \\r\\n Offering\\r\\n No. of Customers(%)\\r\\n \\r\\n Volume of\\r\\n Transactions(%)\\r\\n Value of\\r\\n Transactions(%)\\r\\n Risk Rating\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{i+1}}\\r\\n \\r\\n \\r\\n {{value.riskTypeAttribute}}\\r\\n \\r\\n \\r\\n {{value.RC}}\\r\\n \\r\\n \\r\\n {{value.qualitativeFactorsResponse}}\\r\\n \\r\\n \\r\\n {{value.offer}}\\r\\n \\r\\n \\r\\n {{value.noOfCustomersPer}}\\r\\n \\r\\n \\r\\n {{value.volumeOfTransactionsPer}}\\r\\n \\r\\n \\r\\n {{value.valueOfTransactionsPer}}\\r\\n \\r\\n \\r\\n {{value.riskClassificationAggr}}\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Risk Classification* :


\\r\\n \\r\\n \\r\\n
\\r\\n {{required}}\\r\\n
\\r\\n
\\r\\n
\\r\\n

Response* :\\r\\n


\\r\\n \\r\\n \\r\\n
\\r\\n {{required}}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n

Note :\\r\\n


\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n

Offering


\\r\\n \\r\\n \\r\\n
\\r\\n {{required}}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n

No Of Customers*\\r\\n :


\\r\\n \\r\\n
\\r\\n {{required}}\\r\\n
\\r\\n
\\r\\n {{noWhiteSpace}}\\r\\n
\\r\\n
\\r\\n {{max_value}}\\r\\n
\\r\\n
\\r\\n
\\r\\n

Volume Of Transactions* :


\\r\\n \\r\\n
\\r\\n {{required}}\\r\\n
\\r\\n
\\r\\n {{noWhiteSpace}}\\r\\n
\\r\\n
\\r\\n {{max_value}}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n

\\r\\n Value Of Transactions* :\\r\\n


\\r\\n \\r\\n
\\r\\n {{required}}\\r\\n
\\r\\n
\\r\\n {{noWhiteSpace}}\\r\\n
\\r\\n
\\r\\n {{max_value}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n

Data Not Available

\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n
0\\\">\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
ActionSr.NoQuestionReference GuidelinesControls DesignControls EffectivenessControl / Mitigating
Factors Rating
Remedial MeasuresPICDue Date for
Implementation
Are Controls/Risk
Mitigating Factors in place?
Are there any controls in
column E implemented based
on\\r\\n your existing policies,
procedures or practices?
Documentary
Reference
Are the controls
effectiveto mitigate
the risk\\r\\n identified
If controls/risk mitigating
factors are in place as\\r\\n referenced
in Column, are tests conducted to
determine its effectiveness?
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{i+1}}\\r\\n \\r\\n
\\r\\n {{value.question}}\\r\\n
\\r\\n
\\r\\n {{value.referenceGuidelines}}\\r\\n \\r\\n {{value.ExistenceResponse}}\\r\\n \\r\\n {{value.controlExistenceExplanation}}\\r\\n \\r\\n {{value.controlExistenceDocReference}}\\r\\n \\r\\n {{value.EffectivenessResponse}}\\r\\n \\r\\n {{value.controlEffectivenessExplanation}}\\r\\n \\r\\n {{value.mitigatingFactorRating}}\\r\\n \\r\\n {{value.riskTreatmentActions}}\\r\\n \\r\\n {{value.pic}}\\r\\n \\r\\n {{value.implementationDueDate}}\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n No records found\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Existence Response\\r\\n * :


\\r\\n \\r\\n \\r\\n
\\r\\n {{required}}\\r\\n
\\r\\n
\\r\\n
\\r\\n

Control Existence Explanation* :


\\r\\n \\r\\n
\\r\\n {{required}}\\r\\n
\\r\\n
\\r\\n {{noWhiteSpace}}\\r\\n
\\r\\n
\\r\\n
\\r\\n

Control Existence Doc Reference* :


\\r\\n \\r\\n
\\r\\n {{required}}\\r\\n
\\r\\n
\\r\\n {{noWhiteSpace}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Effectiveness Response* :


\\r\\n \\r\\n \\r\\n
\\r\\n {{required}}\\r\\n
\\r\\n
\\r\\n
\\r\\n

Control Effectiveness Explanation\\r\\n * :\\r\\n


\\r\\n \\r\\n
\\r\\n {{required}}\\r\\n
\\r\\n
\\r\\n {{noWhiteSpace}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Remedial Measures*\\r\\n :


\\r\\n \\r\\n
\\r\\n {{required}}\\r\\n
\\r\\n
\\r\\n {{noWhiteSpace}}\\r\\n
\\r\\n
\\r\\n
\\r\\n

PIC* :

\\r\\n
\\r\\n \\r\\n
\\r\\n {{required}}\\r\\n
\\r\\n
\\r\\n {{noWhiteSpace}}\\r\\n
\\r\\n
\\r\\n
\\r\\n

Implementation Due\\r\\n Date* :


\\r\\n \\r\\n
\\r\\n {{required}}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n {{UploadErrorMessage}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\";","export default \"\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Inherent AML Risk Assessment
\\r\\n
Control Effectiveness Assessment
\\r\\n
Business Units
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Risk Category\\r\\n {{item.subCategory}}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Sr.No\\r\\n Risk Category\\r\\n Weightage\\r\\n Action\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Sr.No:\\r\\n {{ri + 1}}\\r\\n \\r\\n \\r\\n Risk Category:\\r\\n {{rowData.subCategory}}\\r\\n \\r\\n \\r\\n Weightage:\\r\\n {{rowData.weightage}}%\\r\\n \\r\\n \\r\\n Action:\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
0\\\" class=\\\"col-md-12 p-0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Sr.No\\r\\n Risk Attribute\\r\\n Weightage\\r\\n Action\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Sr.No:\\r\\n {{ri + 1}}\\r\\n \\r\\n \\r\\n Risk Attribute:\\r\\n {{rowData.riskAttribute}}\\r\\n \\r\\n \\r\\n Weightage:\\r\\n {{rowData.weightage}}%\\r\\n \\r\\n \\r\\n Action:\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
0\\\" class=\\\"col-md-12 p-0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Sr.No\\r\\n Risk Attribute\\r\\n Weightage\\r\\n Action\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Sr.No:\\r\\n {{ri + 1}}\\r\\n \\r\\n \\r\\n Risk Attribute:\\r\\n {{rowData.riskType}}\\r\\n \\r\\n \\r\\n Weightage:\\r\\n {{rowData.weightage}}%\\r\\n \\r\\n \\r\\n Action:\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
0\\\" class=\\\"col-md-12 p-0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Sr.No\\r\\n Risk Attribute\\r\\n Weightage\\r\\n Action\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Sr.No:\\r\\n {{ri + 1}}\\r\\n \\r\\n \\r\\n Risk Attribute:\\r\\n {{rowData.riskType}}\\r\\n \\r\\n \\r\\n Weightage:\\r\\n {{rowData.weightage}}%\\r\\n \\r\\n \\r\\n Action:\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
0\\\" class=\\\"col-md-12 p-0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Sr.No\\r\\n Risk Attribute\\r\\n Weightage\\r\\n Action\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Sr.No:\\r\\n {{ri + 1}}\\r\\n \\r\\n \\r\\n Risk Attribute:\\r\\n {{rowData.riskAttribute}}\\r\\n \\r\\n \\r\\n Weightage:\\r\\n {{rowData.weightage}}%\\r\\n \\r\\n \\r\\n Action:\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
0\\\" class=\\\"col-md-12 p-0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Sr.No\\r\\n Risk Attribute\\r\\n Weightage\\r\\n Action\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Sr.No:\\r\\n {{ri + 1}}\\r\\n \\r\\n \\r\\n Risk Attribute:\\r\\n {{rowData.riskType}}\\r\\n \\r\\n \\r\\n Weightage:\\r\\n {{rowData.weightage}}%\\r\\n \\r\\n \\r\\n Action:\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
0\\\" class=\\\"col-md-12 p-0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Sr.No\\r\\n Risk Attribute\\r\\n Weightage\\r\\n Action\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Sr.No:\\r\\n {{ri + 1}}\\r\\n \\r\\n \\r\\n Risk Attribute:\\r\\n {{rowData.riskType}}\\r\\n \\r\\n \\r\\n Weightage:\\r\\n {{rowData.weightage}}%\\r\\n \\r\\n \\r\\n Action:\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
0\\\" class=\\\"col-md-12 p-0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Risk\\r\\n Category/Attribute*\\r\\n :


\\r\\n \\r\\n
\\r\\n {{required}}\\r\\n
\\r\\n
\\r\\n {{noWhiteSpace}}\\r\\n
\\r\\n
\\r\\n
\\r\\n

Weightage\\r\\n * :\\r\\n


\\r\\n \\r\\n
\\r\\n {{required}}\\r\\n
\\r\\n
\\r\\n {{weightagePattern}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
0\\\" class=\\\"col-md-12 p-0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Sr.No\\r\\n Risk Category\\r\\n Weightage\\r\\n Action\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Sr.No:\\r\\n {{ri + 1}}\\r\\n \\r\\n \\r\\n Risk Category:\\r\\n {{rowData.subCategory}}\\r\\n \\r\\n \\r\\n Weightage:\\r\\n {{rowData.weightage}}%\\r\\n \\r\\n \\r\\n Action:\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Risk Category\\r\\n * :\\r\\n


\\r\\n \\r\\n
\\r\\n {{required}}\\r\\n
\\r\\n
\\r\\n {{noWhiteSpace}}\\r\\n
\\r\\n
\\r\\n
\\r\\n

Weightage\\r\\n * :\\r\\n


\\r\\n \\r\\n
\\r\\n {{required}}\\r\\n
\\r\\n
\\r\\n {{weightagePattern}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
0\\\">\\r\\n \\r\\n
0\\\" class=\\\"col-md-12 p-0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Sr.No\\r\\n Business Unit\\r\\n Weightage\\r\\n Action\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Sr.No:\\r\\n {{ri + 1}}\\r\\n \\r\\n \\r\\n Business Unit:\\r\\n {{rowData.buname}}\\r\\n \\r\\n \\r\\n Weightage:\\r\\n {{rowData.weightage}}%\\r\\n \\r\\n \\r\\n Action:\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Business Unit\\r\\n * :\\r\\n


\\r\\n \\r\\n
\\r\\n {{required}}\\r\\n
\\r\\n
\\r\\n {{noWhiteSpace}}\\r\\n
\\r\\n
\\r\\n
\\r\\n

Weightage\\r\\n * :\\r\\n


\\r\\n \\r\\n
\\r\\n {{required}}\\r\\n
\\r\\n
\\r\\n {{weightagePattern}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\";","export default \"
\\r\\n
\\r\\n Dashboard\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n Dashboard\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{colsMain.header}}\\r\\n\\r\\n \\r\\n \\r\\n {{colsMain.header}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{colsMain.header}}\\r\\n \\r\\n {{rowData[colsMain.field]}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{col.header}}\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{col.header}}\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{col.header}}\\r\\n \\r\\n \\r\\n {{col.header}}\\r\\n \\r\\n \\r\\n {{col.header}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{col.header}}\\r\\n \\r\\n {{rowData[col.field]}}\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\";","export default \"
\\r\\n
\\r\\n Dashboard\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
\\r\\n\\r\\n\\r\\n\";","export default \"\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Detailed Report\\r\\n Composition Report\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
Risk Meter
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Residual Risk Scorecard
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Trend Analysis
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{taYear1.value}} Risk Assessment\\r\\n \\r\\n {{taYear2.value}} Risk Assessment\\r\\n \\r\\n TREND\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{item.year1Assessment}}\\r\\n \\r\\n {{item.year2Assessment}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n {{item.riskCategory}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\";","export default \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Full Name*\\r\\n


\\r\\n \\r\\n
\\r\\n {{required}}\\r\\n
\\r\\n
\\r\\n {{validationMessage.inputFieldPatternErrorMessage}}\\r\\n
\\r\\n
\\r\\n {{noWhiteSpace}}\\r\\n
\\r\\n
\\r\\n
\\r\\n

Email ID*\\r\\n


\\r\\n \\r\\n
\\r\\n {{required}}\\r\\n
\\r\\n
\\r\\n {{noWhiteSpace}}\\r\\n
\\r\\n
\\r\\n {{validemail}}\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n

Designation*\\r\\n

\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{required}}\\r\\n
\\r\\n
\\r\\n
\\r\\n

Select Role*\\r\\n

\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{required}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\";","export default \"\\r\\n \\r\\n\";","export default \"
\\r\\n
\\r\\n Entity Management \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Assessment Status \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\";","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser'; \r\n\r\n@Pipe({\r\n name: 'sanitizeHtml'\r\n})\r\nexport class CustomCssPipePipe implements PipeTransform {\r\n\r\n constructor(private _sanitizer: DomSanitizer) { }\r\n\r\n transform(value: string): SafeHtml {\r\n return this._sanitizer.bypassSecurityTrustHtml(value);\r\n }\r\n}\r\n","export default \".margin-left-5Per {\\n margin-left: 5%;\\n}\\n\\n.btn-logout-background-color {\\n background-color: red !important;\\n color: white;\\n}\\n\\n.btn-continue-background-color {\\n background-color: green !important;\\n color: white;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvRDpcXEluZGlhQlVcXEFnZW50UG9vbFxcRG90TmV0XFxEb3ROZXRGcmFtZXdvcmtcXF93b3JrXFwyOTZcXHMvc3JjXFxhcHBcXGFwcC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvYXBwLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksZUFBQTtBQ0NKOztBREVBO0VBQ0ksZ0NBQUE7RUFDQSxZQUFBO0FDQ0o7O0FERUE7RUFDSSxrQ0FBQTtFQUNBLFlBQUE7QUNDSiIsImZpbGUiOiJzcmMvYXBwL2FwcC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5tYXJnaW4tbGVmdC01UGVye1xyXG4gICAgbWFyZ2luLWxlZnQ6IDUlO1xyXG59XHJcblxyXG4uYnRuLWxvZ291dC1iYWNrZ3JvdW5kLWNvbG9yIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHJlZCAhaW1wb3J0YW50O1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG59XHJcblxyXG4uYnRuLWNvbnRpbnVlLWJhY2tncm91bmQtY29sb3Ige1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW4gIWltcG9ydGFudDtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxufSIsIi5tYXJnaW4tbGVmdC01UGVyIHtcbiAgbWFyZ2luLWxlZnQ6IDUlO1xufVxuXG4uYnRuLWxvZ291dC1iYWNrZ3JvdW5kLWNvbG9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmVkICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuLmJ0bi1jb250aW51ZS1iYWNrZ3JvdW5kLWNvbG9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW4gIWltcG9ydGFudDtcbiAgY29sb3I6IHdoaXRlO1xufSJdfQ== */\";","import { NotificationService } from './core/services/notification.service';\r\nimport { Component, HostBinding, OnInit, ViewChild, TemplateRef, ElementRef, AfterViewInit, ChangeDetectorRef, ViewRef } from '@angular/core';\r\nimport { SettingsService } from './core/settings/settings.service';\r\nimport { Idle, DEFAULT_INTERRUPTSOURCES } from '@ng-idle/core';\r\nimport { Keepalive } from '@ng-idle/keepalive';\r\nimport { Router } from '@angular/router';\r\nimport { BsModalService } from 'ngx-bootstrap/modal';\r\nimport { BsModalRef } from 'ngx-bootstrap/modal';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { CredentialsService } from './core/services/credentials.service';\r\n//import * as timing from 'src/assets/environments/ideal-time-out.json';\r\nimport { environment } from '../environments/environment';\r\nimport { AuthenticationService } from './core/services/authentication.service';\r\nimport { HttpGenericService } from \"src/app/core/services/http-genric.service\";\r\nimport { API } from \"src/app/shared/constants/api.constants\";\r\nimport { first } from \"rxjs/operators\";\r\nconst swal = require(\"sweetalert\");\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss']\r\n})\r\nexport class AppComponent implements OnInit {\r\n\r\n idleState = 'Not started.';\r\n timedOut = false;\r\n lastPing?: Date = null;\r\n title = 'angular-idle-timeout';\r\n api = API;\r\n \r\n public modalRef: BsModalRef;\r\n \r\n @ViewChild('childModal', { static: false }) childModal: ModalDirective;\r\n\r\n @HostBinding('class.layout-fixed') get isFixed() { return this.settings.getLayoutSetting('isFixed'); };\r\n @HostBinding('class.aside-collapsed') get isCollapsed() { return this.settings.getLayoutSetting('isCollapsed'); };\r\n @HostBinding('class.layout-boxed') get isBoxed() { return this.settings.getLayoutSetting('isBoxed'); };\r\n @HostBinding('class.layout-fs') get useFullLayout() { return this.settings.getLayoutSetting('useFullLayout'); };\r\n @HostBinding('class.hidden-footer') get hiddenFooter() { return this.settings.getLayoutSetting('hiddenFooter'); };\r\n @HostBinding('class.layout-h') get horizontal() { return this.settings.getLayoutSetting('horizontal'); };\r\n @HostBinding('class.aside-float') get isFloat() { return this.settings.getLayoutSetting('isFloat'); };\r\n @HostBinding('class.offsidebar-open') get offsidebarOpen() { return this.settings.getLayoutSetting('offsidebarOpen'); };\r\n @HostBinding('class.aside-toggled') get asideToggled() { return this.settings.getLayoutSetting('asideToggled'); };\r\n @HostBinding('class.aside-collapsed-text') get isCollapsedText() { return this.settings.getLayoutSetting('isCollapsedText'); };\r\n\r\n constructor(public settings: SettingsService,\r\n public notificationService:NotificationService,\r\n private idle: Idle, private keepalive: Keepalive, \r\n private router: Router, private modalService: BsModalService,\r\n private credentialsService: CredentialsService,\r\n private authenticationService: AuthenticationService,\r\n private cdr: ChangeDetectorRef,\r\n private httpGenericService: HttpGenericService) { \r\n\r\n // sets an idle timeout of 10 seconds, for testing purposes.\r\n idle.setIdle(environment['settings'].setIdle);\r\n // sets a timeout period of 5 seconds. after 10 seconds of inactivity, the user will be considered timed out.\r\n idle.setTimeout(environment['settings'].setTimeout);\r\n // sets the default interrupts, in this case, things like clicks, scrolls, touches to the document\r\n idle.setInterrupts(DEFAULT_INTERRUPTSOURCES);\r\n\r\n idle.onIdleEnd.subscribe(() => { \r\n this.idleState = 'No longer idle.'\r\n //console.log(this.idleState);\r\n this.reset();\r\n });\r\n \r\n idle.onTimeout.subscribe(() => {\r\n this.childModal.hide();\r\n this.idleState = 'Timed out!';\r\n this.timedOut = true;\r\n //console.log(this.idleState);\r\n this.logout();\r\n });\r\n \r\n idle.onIdleStart.subscribe(() => {\r\n this.idleState = 'You\\'ve gone idle!'\r\n //console.log(this.idleState);\r\n this.childModal.show();\r\n });\r\n let extend = \"'Extend Session'\"\r\n idle.onTimeoutWarning.subscribe((countdown) => {\r\n this.idleState = 'In case you want to continue Click on '+ extend +', your session will expire in '+ countdown +'';\r\n //console.log(this.idleState);\r\n });\r\n\r\n // sets the ping interval to 15 seconds\r\n keepalive.interval(60);\r\n\r\n keepalive.onPing.subscribe(() => this.lastPing = new Date());\r\n\r\n this.credentialsService.getUserLoggedIn().subscribe(userLoggedIn => {\r\n if (userLoggedIn) {\r\n idle.watch()\r\n this.timedOut = false;\r\n } else {\r\n idle.stop();\r\n }\r\n })\r\n }\r\n\r\n reset() {\r\n this.idle.watch();\r\n this.timedOut = false;\r\n }\r\n\r\n hideChildModal(): void {\r\n this.childModal.hide();\r\n }\r\n\r\n stay() {\r\n this.childModal.hide();\r\n this.reset();\r\n }\r\n\r\n logout() {\r\n let userDetails = this.credentialsService.credentials;\r\n this.httpGenericService\r\n .postData(\r\n `${this.api.authentication.logoutUser}?`,\r\n userDetails\r\n )\r\n .pipe(first())\r\n .subscribe((data) => {\r\n let response = data;\r\n if (response.StatusCode === 200) {\r\n this.childModal.hide();\r\n // this.credentialsService.setUserLoggedIn(false);\r\n // this.router.navigate(['/']);\r\n this.authenticationService.logout();\r\n let adfsLogin = localStorage.getItem(\"adfsLOGIN\");\r\n localStorage.clear();\r\n sessionStorage.clear();\r\n if (adfsLogin == \"true\") {\r\n window.location.href = \"https://login.windows.net/\" + environment['settings'].tenantId + \"/oauth2/logout?post_logout_redirect_uri=\" + environment['settings'].redirectUrl;\r\n }\r\n else {\r\n setTimeout(() => {\r\n if (this.cdr && !(this.cdr as ViewRef).destroyed) {\r\n this.cdr.detectChanges();\r\n }\r\n this.router.navigate(['/login']);\r\n });\r\n }\r\n\r\n }\r\n\r\n else {\r\n swal({\r\n icon: \"warning\",\r\n text: \"Error occured while logging out the user\",\r\n });\r\n }\r\n });\r\n\r\n \r\n }\r\n\r\n ngOnInit() {\r\n // console.log(\"tenantid\", environment['settings'].tenantId);\r\n // console.log(\"idealtime\", environment['settings'].setIdle);\r\n // console.log(\"timeout\", environment['settings'].setTimeout);\r\n // prevent empty links to reload the page\r\n document.addEventListener('click', e => {\r\n const target = e.target as HTMLElement;\r\n if (target.tagName === 'A' && ['', '#'].indexOf(target.getAttribute('href')) > -1)\r\n e.preventDefault();\r\n });\r\n }\r\n}\r\n","import { RoutesModule } from './routes.module';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations'; // this is needed!\r\nimport { NgModule } from '@angular/core';\r\nimport { HttpClientModule, HttpClient } from '@angular/common/http';\r\nimport { TranslateModule, TranslateLoader } from '@ngx-translate/core';\r\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\r\nimport { AppComponent } from './app.component';\r\nimport { CoreModule } from './core/core.module';\r\nimport { LayoutModule } from './layout/layout.module';\r\nimport { SharedModule } from './shared/shared.module';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DynamictablePipe } from './shared/dynamictable.pipe';\r\nimport { NgIdleKeepaliveModule } from '@ng-idle/keepalive'; // this includes the core NgIdleModule but includes keepalive providers for easy wireup\r\nimport { ModalModule } from 'ngx-bootstrap/modal';\r\n//import { MsalModule } from '@azure/msal-angular';\r\n//import { environment } from '../assets/environments/environment';\r\nimport * as environment from 'src/assets/environments/environment.json';\r\n\r\n// export const protectedResourceMap: [string, string][] = [\r\n// ['https://buildtodoservice.azurewebsites.net/api/todolist', environment.scopeUri],\r\n// ['https://graph.microsoft.com/v1.0/me', 'user.read']];\r\n\r\n\r\nexport function createTranslateLoader(http: HttpClient) {\r\n return new TranslateHttpLoader(http, './assets/i18n/', '.json');\r\n}\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n DynamictablePipe\r\n ],\r\n imports: [\r\n HttpClientModule,\r\n BrowserAnimationsModule, // required for ng2-tag-input\r\n CoreModule,\r\n LayoutModule,\r\n SharedModule.forRoot(),\r\n RoutesModule,\r\n CommonModule,\r\n NgIdleKeepaliveModule.forRoot(),\r\n ModalModule,\r\n TranslateModule.forRoot({\r\n loader: {\r\n provide: TranslateLoader,\r\n useFactory: (createTranslateLoader),\r\n deps: [HttpClient]\r\n }\r\n }),\r\n\r\n ],\r\n providers: [],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule { }\r\n","import { HttpCancelService } from './services/http-cancel.service';\r\nimport { LoadingScreenService } from './services/loading-screen.service';\r\nimport { HttpGenericService } from './services/http-genric.service';\r\nimport { AuthenticationService } from './services/authentication.service';\r\nimport { httpInterceptorProviders } from './interceptors/index';\r\nimport { NgModule, Optional, SkipSelf } from '@angular/core';\r\n\r\nimport { SettingsService } from './settings/settings.service';\r\nimport { ThemesService } from './themes/themes.service';\r\nimport { TranslatorService } from './translator/translator.service';\r\nimport { MenuService } from './services/menu.service';\r\n\r\nimport { throwIfAlreadyLoaded } from './module-import-guard';\r\nimport { HttpClientModule, HttpClientXsrfModule } from '@angular/common/http';\r\n\r\n@NgModule({\r\n imports: [\r\n HttpClientModule,\r\n HttpClientXsrfModule.withOptions({\r\n cookieName: 'XSRF-TOKEN',\r\n headerName: 'X-XSRF-TOKEN',\r\n })\r\n ],\r\n providers: [\r\n httpInterceptorProviders,\r\n AuthenticationService,\r\n HttpGenericService,\r\n SettingsService,\r\n ThemesService,\r\n TranslatorService,\r\n MenuService,\r\n LoadingScreenService,\r\n HttpCancelService,\r\n ],\r\n declarations: [\r\n ],\r\n exports: [\r\n ]\r\n})\r\nexport class CoreModule {\r\n constructor(@Optional() @SkipSelf() parentModule: CoreModule) {\r\n throwIfAlreadyLoaded(parentModule, 'CoreModule');\r\n }\r\n}\r\n","import { HttpGenericService } from './../services/http-genric.service';\r\nimport { CredentialsService } from './../services/credentials.service';\r\nimport { Injectable } from '@angular/core';\r\nimport { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\r\nimport { UserConcurrentLogin } from '../../shared/models/ApplicationUser';\r\nimport { first } from 'rxjs/operators';\r\nimport { API } from \"../../shared/constants/api.constants\";\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PartnerGuard implements CanActivate {\r\n\r\n constructor(private router: Router,\r\n private credentialsService: CredentialsService,private httpGenericSerivce: HttpGenericService) { }\r\n credentials: any = {};\r\n logout: UserConcurrentLogin = {};\r\n api=API;\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\r\n // console.clear();\r\n if(this.credentialsService.credentials ){\r\n return true;\r\n }else{\r\n this.router.navigate(['/']);\r\n return false;\r\n }\r\n }\r\n}\r\n","import { LoggingService } from './../services/logging.service';\r\nimport { NotificationService } from './../services/notification.service';\r\nimport { ErrorService } from './../services/error.service';\r\nimport { HttpGenericService } from '../services/http-genric.service';\r\nimport { CredentialsService } from '../services/credentials.service';\r\nimport { AuthenticationService } from '../services/authentication.service';\r\nimport { Injectable, Injector } from '@angular/core';\r\nimport { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest, HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { Router } from '@angular/router';\r\nimport { JWTTokenResponse } from '../../shared/models/JWTTokenAuthentication';\r\nimport { UserConcurrentLogin } from '../../shared/models/ApplicationUser';\r\n/**\r\n * Adds a default error handler to all requests.\r\n */\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class ApiErrorHandlerInterceptor implements HttpInterceptor {\r\n\tjWTTokenResponse: JWTTokenResponse = {};\r\n\tcurrentUser: any;\r\n\tlogout: UserConcurrentLogin = {};\r\n\tconstructor(private authenticationService: AuthenticationService, private route: Router,\r\n\t\tprivate credentialsService: CredentialsService,\r\n\t\tprivate injector: Injector\r\n\t) {\r\n\r\n\t}\r\n\tintercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n\t\treturn next.handle(request).pipe(catchError(error => this.errorHandler(error, next, request)));\r\n\t}\r\n\r\n\t// Customize the default error handler here if needed\r\n\tprivate errorHandler(response: any, next: any, Oldrequest: any): Observable> {\r\n\r\n\t\tconst errorService = this.injector.get(ErrorService);\r\n\t\tconst logger = this.injector.get(LoggingService);\r\n\t\tconst notifier = this.injector.get(NotificationService);\r\n\r\n\t\tthis.currentUser = this.credentialsService.credentials;\r\n\r\n\t\tlet errorMessage = '';\r\n\r\n\t\tif (response.error instanceof ErrorEvent) {\r\n\t\t\t// client-side error\r\n\t\t\t// errorMessage = errorService.getClientErrorEventMessage(response.error);\r\n\t\t\tconst message = errorService.getClientMessage(response.error);\r\n\t\t\tconst stackTrace = errorService.getClientStack(response.error);\r\n\t\t\t//notifier.showError(\"message\", \"stackTrace\");\r\n\t\t\t// logger.logError(\"Client ErrorEvent \", response.error);\r\n\t\t}\r\n\t\telse {\r\n\t\t\t// server-side error\r\n\t\t\tnotifier.closeConfirm();\r\n\t\t\tconst notificationObject = errorService.getAPIErrorResponse(response);\r\n\t\t\tif (notificationObject) {\r\n\t\t\t\tnotifier.showError(notificationObject.summary, notificationObject.message);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tconst notification = errorService.getServerMessage(response);\r\n\t\t\t\t//notifier.showError(\"Error\", \"\");\r\n\t\t\t}\r\n\t\t\t// logger.logError(response.message, JSON.stringify(response));\r\n\t\t\t// console.error(response);\r\n\t\t}\r\n\t\tswitch (response.status) {\r\n\t\t\tcase 403:\r\n\t\t\t\tthis.authenticationService.logout();\r\n\t\t\t\tlocalStorage.clear();\r\n\t\t\t\tbreak;\r\n\t\t\tcase 401:\r\n\t\t\t\tnotifier.showError(\"Session Expired\", \"Your session has expired. Please login again to continue working.\");\r\n\t\t\t\tthis.authenticationService.logout();\r\n\t\t\t\tlocalStorage.clear();\r\n\t\t\t\tthis.route.navigate(['/login']);\r\n\t\t\t\tbreak;\r\n\t\t\tcase 404:\r\n\t\t\t\tnotifier.showError(\"Error\", \"The specified URI does not exist. Please verify and try again.\");\r\n\t\t\t\tbreak;\r\n\t\t\tcase 204:\r\n\t\t\t\tnotifier.showError(\"Error\", \"The specified URI does not contain any content.\");\r\n\t\t\t\tbreak;\r\n\t\t\tcase 400:\r\n\t\t\t\tnotifier.showError(\"Error\", \"Please correct the specified validation errors and try again.\");\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tnotifier.showError(\"Error\", \"Your request cannot be processed. Please contact a support.\");\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t\tthrow response;\r\n\t}\r\n\r\n}\r\n","import { CredentialsService } from '../services/credentials.service';\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\n//import * as environment from 'src/assets/environments/environment.local.json';\r\n/**\r\n * Prefixes all requests not starting with `http[s]` with `environment.serverUrl`.\r\n */\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class ApiHeaderInterceptor implements HttpInterceptor {\r\n\tconstructor(public credentialsService: CredentialsService) {\r\n\r\n\t}\r\n\tintercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n\r\n\t\tif (!request.url.includes(\"assets/\")) {\r\n\t\t\t// let token = this.credentialsService.token; //JSON.parse(localStorage.getItem('currentUser'));\r\n let token = localStorage.getItem(\"APICRED\");\r\n //let sessionId = sessionStorage.getItem(\"sessionId\");\r\n let sessionId = localStorage.getItem(\"sessionId\");\r\n\t let idTokenIss = localStorage.getItem(\"idTokenIss\");\r\n\t let idTokenAud = localStorage.getItem(\"idTokenAud\");\r\n\t //console.log(\"abeubb\", idTokenAud);\r\n\t \r\n\t\t\tif (token) {\r\n request = request.clone({\r\n\r\n\t\t\t\t\tsetHeaders: {\r\n\t\t\t\t\t\tAuthorization: `Bearer ${token}`,\r\n\t\t\t\t\t\tresponseType: \"JSON\",\r\n\t\t\t\t\t\tCacheControl: \"no-cache, no-store, must-revalidate, post- check=0, pre-check=0\",\r\n\t\t\t\t\t\tPragma: 'no-cache', Expires: '0', Session:`${sessionId}`,idTokenIss:`${idTokenIss}`, idTokenAud:`${idTokenAud}`\r\n\t\t\t\t\t}, url: this.credentialsService.decryptdata(environment['settings'].endPoint) + request.url,\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\trequest = request.clone({ url: this.credentialsService.decryptdata(environment['settings'].endPoint) + request.url });\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t\r\n\t\treturn next.handle(request);\r\n\t}\r\n}\r\n","import { HttpCancelService } from './../services/http-cancel.service';\r\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class HttpCancelInterceptor implements HttpInterceptor {\r\n constructor(private httpCancelService: HttpCancelService) { }\r\n\r\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n return next.handle(req).pipe(takeUntil(this.httpCancelService.onCancelPendingRequests()));\r\n }\r\n}\r\n","import { ApiErrorHandlerInterceptor } from './api-error-handler.interceptor';\r\nimport { ApiHeaderInterceptor } from './api-header.interceptor';\r\nimport { HttpCancelInterceptor } from './httpcancel.interceptor';\r\nimport { GlobalErrorHandler } from './global-error-handler';\r\nimport { ErrorHandler } from '@angular/core';\r\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { LoadingScreenInterceptor } from './loading-screen-interceptor';\r\n\r\nexport const httpInterceptorProviders = [\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: ApiHeaderInterceptor,\r\n multi: true\r\n },\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: ApiErrorHandlerInterceptor,\r\n multi: true\r\n },\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: HttpCancelInterceptor,\r\n multi: true\r\n },\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: LoadingScreenInterceptor,\r\n multi: true\r\n },\r\n // {\r\n // provide: ErrorHandler,\r\n // useClass: GlobalErrorHandler,\r\n // }\r\n];","import { LoadingScreenService } from './../services/loading-screen.service';\r\nimport { Injectable } from \"@angular/core\";\r\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from \"@angular/common/http\";\r\nimport { Observable } from \"rxjs\";\r\nimport { finalize } from \"rxjs/operators\";\r\n\r\n\r\n@Injectable()\r\nexport class LoadingScreenInterceptor implements HttpInterceptor {\r\n\r\n activeRequests: number = 0;\r\n\r\n /**\r\n * URLs for which the loading screen should not be enabled\r\n */\r\n skippUrls = [\r\n '/authrefresh',\r\n ];\r\n\r\n constructor(private loadingScreenService: LoadingScreenService) {\r\n }\r\n\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n let displayLoadingScreen = true;\r\n\r\n for (const skippUrl of this.skippUrls) {\r\n if (new RegExp(skippUrl).test(request.url)) {\r\n displayLoadingScreen = false;\r\n break;\r\n }\r\n }\r\n\r\n if (displayLoadingScreen) {\r\n if (this.activeRequests === 0) {\r\n this.loadingScreenService.startLoading();\r\n }\r\n this.activeRequests++;\r\n\r\n return next.handle(request).pipe(\r\n finalize(() => {\r\n this.activeRequests--;\r\n if (this.activeRequests === 0) {\r\n this.loadingScreenService.stopLoading();\r\n }\r\n })\r\n )\r\n } else {\r\n return next.handle(request);\r\n }\r\n };\r\n}","// https://angular.io/styleguide#!#04-12\r\nexport function throwIfAlreadyLoaded(parentModule: any, moduleName: string) {\r\n if (parentModule) {\r\n throw new Error(`${moduleName} has already been loaded. Import Core modules in the AppModule only.`);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { CredentialsService } from './credentials.service';\r\n\r\n/**\r\n * Provides a base for authentication workflow.\r\n * The login/logout methods should be replaced with proper implementation.\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthenticationService {\r\n\r\n constructor(private credentialsService: CredentialsService) { }\r\n\r\n /**\r\n * Authenticates the user.\r\n * @param context The login parameters.\r\n * @return The user credentials.\r\n */\r\n login(context: any): Observable {\r\n this.credentialsService.setCredentials(context, true);\r\n this.credentialsService.setUserLoggedIn(true);\r\n return of(context);\r\n }\r\n\r\n /**\r\n * Logs out the user and clear credentials.\r\n * @return True if the user was logged out successfully.\r\n */\r\n logout(): Observable {\r\n // Customize credentials invalidation here\r\n this.credentialsService.setCredentials();\r\n this.credentialsService.setUserLoggedIn(false);\r\n return of(true);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nvar CryptoJS = require(\"crypto-js\");\r\nconst crypto = require('crypto');\r\nconst CryptoGcm = require('crypto-gcm');\r\n//var CryptoJS1 = require(\"crypto\");\r\nimport * as consts from '../../shared/constants/globle.constants';\r\nimport { Router } from '@angular/router';\r\nconst credentialsKey: string = 'UCRDE';\r\nimport * as globleConsts from 'src/app/shared/constants/globle.constants';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest } from '@angular/common/http';\r\nimport { Subject, Observable } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\n/**\r\n * Provides storage for authentication credentials.\r\n * The Credentials interface should be replaced with proper implementation.\r\n */\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class CredentialsService {\r\n\r\n\tprivate _credentials: any | null = null;\r\n\tprivate Token: any | null = null;\r\n\tprivate applicationSetting = {};\r\n\tuserDetails: any;\r\n\tpermissionDetails: any;\r\n\tprivate userLoggedIn = new Subject();\r\n\r\n\tconstructor (private router: Router) {\r\n\t\t// this.updateCredentials();\r\n\t// console.log(\"Key: Encrypt \", this.encryptdata(\"https://localhost:44385/\"));\r\n\t// console.log(\"PI decrypt\", this.decryptdata(\"Z6k3oAeI8EiBdK3DdAj82IPrBH4evHmefVC4ISK6QMI=\"));\r\n\t \r\n\t\tthis.userLoggedIn.next(false);\r\n\t}\r\n\r\n\t/**\r\n\t * Checks is the user is authenticated.\r\n\t * @return True if the user is authenticated.\r\n\t */\r\n\tisAuthenticated (): boolean {\r\n\t\tthis.updateCredentials();\r\n\t\treturn !!this.credentials;\r\n\t}\r\n\t// getSettingConfiguration() {\r\n\t// return this.applicationSetting;\r\n\t// }\r\n\r\n\tupdateCredentials () {\r\n\t\tconst savedCredentials = sessionStorage.getItem(credentialsKey) || localStorage.getItem(credentialsKey);\r\n\t\tif (savedCredentials) {\r\n\t\t\tthis._credentials = JSON.parse(this.decryptdata(savedCredentials));\r\n\t\t} else {\r\n\t\t\tthis._credentials = null;\r\n\t\t}\r\n\t}\r\n\t/**\r\n\t * Gets the user credentials.\r\n\t * @return The user credentials or null if the user is not authenticated.\r\n\t */\r\n\tget credentials (): any | null {\r\n\t\t// this.updateCredentials();\r\n\t\tconst savedCredentials = localStorage.getItem(credentialsKey);\r\n\t\tif (savedCredentials) {\r\n\t\t\tthis._credentials = JSON.parse(this.decryptdata(savedCredentials));\r\n\t\t} else {\r\n\t\t\tthis._credentials = null;\r\n\t\t}\r\n\t\treturn this._credentials;\r\n\t}\r\n\tencryptdata (data: any) {\r\n try {\r\n //const key = crypto.randomBytes(32);\r\n //// create instance (you can create multiple instances)\r\n //const cg = new CryptoGcm({\r\n // key,\r\n // encoding: {\r\n // plaintext: 'utf8', // also supported: ascii, buffer\r\n // payload: 'base64' // also supported: base64, hex\r\n // }\r\n //})\r\n\r\n //// ut8 string\r\n //const plaintext = 'my plaintext';\r\n\r\n //// will be base64 string\r\n //const payload = cg.encrypt(plaintext);\r\n\r\n //return payload.toString(); \r\n\t\t\r\n // let encryptionKey = consts.AESEncryptionKey;\r\n // const cg = new CryptoJS1({\r\n // key: encryptionKey,\r\n // encoding: {\r\n // plaintext: 'utf8', // also supported: ascii, buffer\r\n // payload: 'base64' // also supported: base64, hex\r\n // }\r\n // })\r\n\r\n // // ut8 string\r\n // const plaintext = data.toString();\r\n\r\n // // will be base64 string\r\n // const payload = cg.encrypt(plaintext);\r\n\t\t\t////return encrypted.toString();\r\n ////// return payload.toString();\r\n var encrypted = CryptoJS.AES.encrypt(CryptoJS.enc.Utf8.parse(data.toString()), CryptoJS.enc.Utf8.parse(environment['settings'].aesEncryptionKey),\r\n {\r\n keySize: 128 / 8,\r\n iv: CryptoJS.enc.Utf8.parse(environment['settings'].aesEncryptionIV),\r\n mode: CryptoJS.mode.CFB,\r\n padding: CryptoJS.pad.Pkcs7\r\n });\r\n return encrypted.toString();\r\n\t\t} catch (error) {\r\n\t\t\tthis.setCredentials();\r\n\t\t\t//this.router.navigate(['/signIn']);\r\n\t\t}\r\n\t}\r\n\r\n\t/*decryptdata (data: any) {\r\n\t\ttry {\r\n\r\nvar encrypted = CryptoJS.AES.encrypt(CryptoJS.enc.Utf8.parse(data.toString()), CryptoJS.enc.Utf8.parse(consts.AESEncryptionKey),\r\n\t\t\t\t{\r\n\t\t\t\t\tkeySize: 128 / 8,\r\n\t\t\t\t\tiv: CryptoJS.enc.Utf8.parse(consts.AESEncryptionIV),\r\n\t\t\t\t\tmode: CryptoJS.mode.CBC,\r\n\t\t\t\t\tpadding: CryptoJS.pad.Pkcs7\r\n\t\t\t\t});\r\n\t\t\treturn encrypted.toString();\r\n\t\t} catch (error) {\r\n\t\t\tthis.setCredentials();\r\n\t\t\t//this.router.navigate(['/signIn']);\r\n\t\t}\r\n\t}*/\r\n\r\n\tdecryptdata (data: any) {\r\n\t\ttry {\r\n\t\t\t\r\n //let key = consts.AESEncryptionKey;\r\n //const cg = new CryptoJS1({\r\n // key: key,\r\n // encoding: {\r\n // plaintext: 'utf8', // also supported: ascii, buffer\r\n // payload: 'base64' // also supported: base64, hex\r\n // }\r\n //})\r\n //const payload = data.toString();\r\n //// will be utf8 string\r\n //const plaintext = cg.decrypt(payload);\r\n\r\n //const key = crypto.randomBytes(32);\r\n //// create instance (you can create multiple instances)\r\n //const cg = new CryptoGcm({\r\n // key,\r\n // encoding: {\r\n // plaintext: 'utf8', // also supported: ascii, buffer\r\n // payload: 'base64' // also supported: base64, hex\r\n // }\r\n //})\r\n //const payload = data.toString();\r\n //// will be utf8 string\r\n //const plaintext = cg.decrypt(payload);\r\n //return plaintext.toString();\r\n\r\n //return plaintext.toString();\r\n //var encrypted = CryptoJS.AES.encrypt(CryptoJS.enc.Utf8.parse('https://inassessdeck.deloitte.com/api/v1.0/'), CryptoJS.enc.Utf8.parse(environment['settings'].aesEncryptionKey),\r\n // {\r\n // keySize: 128 / 8,\r\n // iv: CryptoJS.enc.Utf8.parse(environment['settings'].aesEncryptionIV),\r\n // mode: CryptoJS.mode.CFB,\r\n // padding: CryptoJS.pad.Pkcs7\r\n // });\r\n\r\n //var encryptedurl = encrypted.toString();\r\n var decrypted = CryptoJS.AES.decrypt(data, CryptoJS.enc.Utf8.parse(environment['settings'].aesEncryptionKey),\r\n {\r\n keySize: 128 / 8,\r\n iv: CryptoJS.enc.Utf8.parse(environment['settings'].aesEncryptionIV),\r\n mode: CryptoJS.mode.CFB,\r\n padding: CryptoJS.pad.Pkcs7\r\n });\r\n var decrptedstring = decrypted.toString(CryptoJS.enc.Utf8);\r\n return decrypted.toString(CryptoJS.enc.Utf8);\r\n } catch (error) {\r\n console.log(error.message);\r\n\t\t\tthis.setCredentials();\r\n\t\t}\r\n\t}\r\n\tget token (): any | null {\r\n\t\tlet token = localStorage.getItem(\"APICRED\");\r\n\t\tif (token)\r\n\t\t\treturn this.decryptdata(localStorage.getItem(\"APICRED\"));\r\n\t}\r\n\r\n\tsetToken (token?: string) {\r\n\t\tif (token)\r\n\t\t\tlocalStorage.setItem(\"APICRED\", this.encryptdata(token));\r\n\t}\r\n\t/**\r\n\t * Sets the user credentials.\r\n\t * The credentials may be persisted across sessions by setting the `remember` parameter to true.\r\n\t * Otherwise, the credentials are only persisted for the current session.\r\n\t * @param credentials The user credentials.\r\n\t * @param remember True to remember credentials across sessions.\r\n\t */\r\n\tsetCredentials (credentials?: any, remember?: boolean) {\r\n\t\tthis._credentials = credentials || null;\r\n\t\tif (credentials) {\r\n\t\t\tconst storage = remember ? localStorage : sessionStorage;\r\n\t\t\tstorage.setItem(credentialsKey, this.encryptdata(JSON.stringify(this._credentials)));\r\n\t\t} else {\r\n\t\t\tsessionStorage.removeItem(credentialsKey);\r\n\t\t\tlocalStorage.removeItem(credentialsKey);\r\n\t\t\tthis.setToken();\r\n\t\t}\r\n\t}\r\n\r\n\tsetPermissionDetails (credentials?: any) {\r\n\t\tthis._credentials = credentials || null;\r\n\t\tif (credentials) {\r\n\t\t\tthis.permissionDetails = credentials;\r\n\t\t}\r\n\t}\r\n\r\n\tgetPermissionDetails () {\r\n\t\treturn this.permissionDetails;\r\n\t}\r\n\r\n\tclearPermissionDetails () {\r\n\t\tthis.permissionDetails = null;\r\n\t}\r\n\r\n\tgetTaskClientId () {\r\n\t\tconst decryptedIds = this.decryptdata(sessionStorage.getItem(globleConsts.LocalStorageKeys.TaskClientId))?.split(globleConsts.KeyDelimiter);\r\n\t\tif (decryptedIds && decryptedIds[0] && decryptedIds[1] &&\r\n\t\t\tdecryptedIds[0].length > 0 && decryptedIds[1].length > 0) {\r\n\t\t\tdecryptedIds[0] = +decryptedIds[0];\r\n\t\t\tdecryptedIds[1] = +decryptedIds[1];\r\n\t\t\treturn { taskId: decryptedIds[0], clientId: decryptedIds[1] };\r\n\t\t} else {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t}\r\n\r\n\tisClient () {\r\n\t\treturn this.credentials?.assignedRole?.trim()?.toLowerCase() == globleConsts.Designations.CLIENT.toLowerCase();\r\n\t}\r\n\r\n\tsetUserLoggedIn(userLoggedIn: boolean) {\r\n\t\tthis.userLoggedIn.next(userLoggedIn);\r\n\t}\r\n\t\r\n\tgetUserLoggedIn(): Observable {\r\n\t\treturn this.userLoggedIn.asObservable();\r\n\t}\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpHeaders, HttpClient } from '@angular/common/http';\r\nimport * as FileSaver from 'file-saver';\r\nimport * as XLSX from 'xlsx';\r\nconst EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\r\nconst EXCEL_EXTENSION = '.xlsx';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DownloadFileService {\r\n \r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n downLoadFile(resourceName: string, data: any, responseType){\r\n let headers = new HttpHeaders();\r\n let token = localStorage.getItem(\"APICRED\");\r\n headers = headers.set('Authorization', `Bearer ${token}`);\r\n return this.http.post(resourceName, data, { headers: headers, responseType: responseType });\r\n }\r\n\r\n downloadDocument(data: any, category: any) {\r\n //let blob = new Blob([data], { type: this.show[myIndex].type });\r\n var url = data;\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.setAttribute(\"style\", \"display: none\");\r\n a.setAttribute(\"target\", \"_blank\");\r\n a.href = url;\r\n a.download = category;\r\n a.click();\r\n window.URL.revokeObjectURL(url);\r\n a.remove();\r\n }\r\n\r\n\r\n public exportAsExcelFile(json: any[], excelFileName: string, headername: string): void {\r\n var worksheet: XLSX.WorkSheet = XLSX.utils;\r\n XLSX.utils.sheet_add_aoa(worksheet, [\r\n [headername]\r\n ], {origin: 0});\r\n const merge = [\r\n { s: { r: 0, c: 0 }, e: { r: 0, c: 24 } }\r\n ];\r\n worksheet[\"!merges\"] = merge;\r\n XLSX.utils.sheet_add_json(worksheet,json,{origin: 2});\r\n const workbook: XLSX.WorkBook = { Sheets: { 'Audit Data': worksheet }, SheetNames: ['Audit Data'] };\r\n const excelBuffer: any = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });\r\n this.saveAsExcelFile(excelBuffer, excelFileName);\r\n }\r\n private saveAsExcelFile(buffer: any, fileName: string): void {\r\n const data: Blob = new Blob([buffer], { type: EXCEL_TYPE });\r\n var completedate = new Date();\r\n var date: any = completedate.getDate();\r\n var month: any = (completedate.getMonth()+1);\r\n if (date >= 1 && date <= 9) {\r\n date = '0'+ date;\r\n }\r\n if (month >=1 && month <= 9) {\r\n month = '0'+ month;\r\n }\r\n var finaldate = \"_\" + date +\"-\" + month +\"-\" + completedate.getFullYear() +\"_\" + completedate.getHours() +\"_\" + completedate.getMinutes();\r\n FileSaver.saveAs(data, fileName + finaldate + EXCEL_EXTENSION);\r\n }\r\n}\r\n","import { MNotification } from './../../shared/models/MNotification';\r\nimport { MAPIResponse } from './../../shared/models/MAPIResponse';\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ErrorService {\r\n\r\n getClientMessage(error: Error): string {\r\n if (!navigator.onLine) {\r\n return 'No Internet Connection';\r\n }\r\n return error.message ? error.message : error.toString();\r\n }\r\n\r\n getClientStack(error: Error): string {\r\n return error.stack;\r\n }\r\n\r\n getServerMessage(error: HttpErrorResponse): MNotification {\r\n return { summary: error.statusText, message: error.message }\r\n }\r\n\r\n getAPIErrorResponse(error:MAPIResponse): MNotification {\r\n let notificationObject : MNotification;\r\n if (error.hasOwnProperty(\"responseException\") && error.responseException.isError) {\r\n notificationObject.summary = error.responseException.exceptionMessage;\r\n\r\n if (error.responseException.validationErrors) {\r\n notificationObject.message = error.responseException.validationErrors.filter((validation) => {\r\n return validation.reason + '
';\r\n });\r\n }\r\n return notificationObject;\r\n }\r\n return null;\r\n }\r\n\r\n getClientErrorEventMessage(error: ErrorEvent): string {\r\n return error.message ? error.message : error.toString();\r\n }\r\n\r\n internetError(error: Error): string {\r\n if (!navigator.onLine) {\r\n return 'No Internet Connection';\r\n }\r\n }\r\n}\r\n","import { Subject } from 'rxjs';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class HttpCancelService {\r\n private cancelPendingRequests$ = new Subject();\r\n\r\n constructor() {}\r\n\r\n /** Cancels all pending Http requests. */\r\n public cancelPendingRequests() {\r\n this.cancelPendingRequests$.next();\r\n }\r\n\r\n public onCancelPendingRequests() {\r\n return this.cancelPendingRequests$.asObservable();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n/**\r\n * Generic HTTP data service to be used by all other services\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class HttpGenericService {\r\n\r\n constructor(private http: HttpClient) {\r\n\r\n }\r\n /**\r\n * Get List Of Data From Server \r\n * @param resourceName \r\n */\r\n fetchAll(resourceName: string) {\r\n return this.http.get(resourceName);\r\n }\r\n /**\r\n * Get object From Server \r\n * @param resourceName \r\n */\r\n fetchSingle(resourceName: string) {\r\n return this.http.get(resourceName);\r\n }\r\n /**\r\n * Get List of data From Server with promise\r\n * @param resourceName \r\n */\r\n fetchAllPromise(resourceName: string): Promise {\r\n return this.http.get(resourceName).toPromise().then();\r\n }\r\n\r\n /**\r\n * Post Data To Server Insert/Edit\r\n * @param resourceName Controller Name + Method Name\r\n * @param data Actual Data\r\n */\r\n postData(resourceName: string, data: any) {\r\n // data = JSON.stringify(data);\r\n return this.http.post(resourceName, data);\r\n }\r\n\r\n /**\r\n * Post Data To Server Insert/Edit\r\n * @param resourceName Controller Name + Method Name\r\n * @param data Actual Data\r\n */\r\n updateData(resourceName: string, data: any) {\r\n // data = JSON.stringify(data);\r\n return this.http.put(resourceName, data);\r\n }\r\n /**\r\n * Post Data To Server Using Promise Insert/Edit\r\n * @param resourceName Controller Name + Method Name\r\n * @param data Actual Data\r\n */\r\n postDataPromise(resourceName: string, data: any): Promise {\r\n // data = JSON.stringify(data);\r\n return this.http.post(resourceName, data).toPromise().then();\r\n }\r\n /**\r\n * Convert Object to Query String \r\n * @param resourceName \r\n */\r\n\r\n downLoadFile(resourceName: string, data: any, responseType){\r\n return this.http.post(resourceName, data, {responseType:responseType});\r\n }\r\n private objectToQueryString(obj: any): string {\r\n var str = [];\r\n for (var p in obj)\r\n if (obj.hasOwnProperty(p)) {\r\n str.push(encodeURIComponent(p) + \"=\" + encodeURIComponent(obj[p]));\r\n }\r\n return str.join(\"&\");\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LoadingScreenService {\r\n\r\n private _loading: boolean = false;\r\n loadingStatus: Subject = new Subject();\r\n\r\n get loading():boolean {\r\n return this._loading;\r\n }\r\n\r\n set loading(value) {\r\n this._loading = value;\r\n this.loadingStatus.next(value);\r\n }\r\n\r\n startLoading() {\r\n this.loading = true;\r\n }\r\n\r\n stopLoading() {\r\n this.loading = false;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LoggingService {\r\n\r\n logError(message: string, stack: string) {\r\n // console.log('LoggingService Error Message: ' + message);\r\n // console.log('LoggingService Error StackTrace: ' + stack);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Admin, Analyst, Manager } from 'src/app/modules/menu';\r\n\r\n@Injectable()\r\nexport class MenuService {\r\n\r\n menuItems: Array;\r\n adminItems : Array;\r\n managerItems : Array;\r\n analystItems : Array;\r\n\r\n constructor() {\r\n this.menuItems = [];\r\n this.adminItems = Admin;\r\n this.managerItems = Manager;\r\n this.analystItems = Analyst;\r\n }\r\n\r\n addMenu(items: Array<{\r\n text: string,\r\n heading?: boolean,\r\n link?: string, // internal route links\r\n elink?: string, // used only for external links\r\n target?: string, // anchor target=\"_blank|_self|_parent|_top|framename\"\r\n icon?: string,\r\n alert?: string,\r\n submenu?: Array\r\n }>) {\r\n items.forEach((item) => {\r\n this.menuItems.push(item);\r\n });\r\n }\r\n \r\n getMenu() {\r\n return this.menuItems;\r\n }\r\n\r\n addAdmin(items: Array<{\r\n text: string,\r\n heading?: boolean,\r\n link?: string, // internal route links\r\n elink?: string, // used only for external links\r\n target?: string, // anchor target=\"_blank|_self|_parent|_top|framename\"\r\n icon?: string,\r\n alert?: string,\r\n submenu?: Array\r\n }>) {\r\n items.forEach((item) => {\r\n this.adminItems.push(item);\r\n });\r\n }\r\n\r\n getAdmin() {\r\n return this.adminItems;\r\n }\r\n\r\n addManager(items: Array<{\r\n text: string,\r\n heading?: boolean,\r\n link?: string, // internal route links\r\n elink?: string, // used only for external links\r\n target?: string, // anchor target=\"_blank|_self|_parent|_top|framename\"\r\n icon?: string,\r\n alert?: string,\r\n submenu?: Array\r\n }>) {\r\n items.forEach((item) => {\r\n this.managerItems.push(item);\r\n });\r\n }\r\n\r\n getManager() {\r\n return this.managerItems;\r\n }\r\n\r\n addAnalyst(items: Array<{\r\n text: string,\r\n heading?: boolean,\r\n link?: string, // internal route links\r\n elink?: string, // used only for external links\r\n target?: string, // anchor target=\"_blank|_self|_parent|_top|framename\"\r\n icon?: string,\r\n alert?: string,\r\n submenu?: Array\r\n }>) {\r\n items.forEach((item) => {\r\n this.analystItems.push(item);\r\n });\r\n }\r\n\r\n getAnalyst() {\r\n return this.analystItems;\r\n }\r\n}\r\n","import { Subject } from 'rxjs';\r\nimport { Injectable } from '@angular/core';\r\nimport { MessageService } from 'primeng/api';\r\nimport { resolve } from 'dns';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NotificationService {\r\n\r\n durationInSeconds = 3;\r\n isConfirm = new Subject();\r\n\r\n constructor(private messageService: MessageService) { }\r\n\r\n showSuccess(message: string): void {\r\n this.messageService.add({ severity: 'success', summary: 'Success', detail: message });\r\n }\r\n\r\n showError(summary: string = 'Someting went wrong!!', message: string): void {\r\n this.messageService.add({ severity: 'error', summary: summary, detail: message });\r\n }\r\n showConfirm() {\r\n // this.messageService.clear();\r\n this.messageService.add({ key: 'confirmToast', sticky: true, severity: 'warn', summary: 'Are you sure?', detail: 'Confirm to proceed' });\r\n }\r\n\r\n onConfirm(value: boolean) {\r\n this.isConfirm.next(value);\r\n // this.isConfirm.complete();\r\n }\r\n\r\n onReject(value: boolean) {\r\n this.isConfirm.next(value);\r\n this.closeConfirm()\r\n }\r\n closeConfirm() {\r\n this.messageService.clear('confirmToast');\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class SettingsService {\r\n\r\n private user: any;\r\n private app: any;\r\n private layout: any;\r\n\r\n public panelValue = new BehaviorSubject(true);\r\n public getpanelValue = this.panelValue.asObservable();\r\n\r\n constructor() {\r\n\r\n // User Settings\r\n // -----------------------------------\r\n this.user = {\r\n name: 'John',\r\n job: 'ng-developer',\r\n picture: 'assets/img/user/02.jpg'\r\n };\r\n\r\n // App Settings\r\n // -----------------------------------\r\n this.app = {\r\n name: 'Deloitte | AssessDeck',\r\n description: 'Angular Bootstrap Admin Template',\r\n year: ((new Date()).getFullYear()),\r\n version: 'Version: 1.0'\r\n };\r\n\r\n // Layout Settings\r\n // -----------------------------------\r\n this.layout = {\r\n isFixed: true,\r\n isCollapsed: false,\r\n isBoxed: false,\r\n isRTL: false,\r\n horizontal: false,\r\n isFloat: false,\r\n asideHover: false,\r\n theme: null,\r\n asideScrollbar: false,\r\n isCollapsedText: false,\r\n useFullLayout: false,\r\n hiddenFooter: false,\r\n offsidebarOpen: false,\r\n asideToggled: false,\r\n viewAnimation: 'ng-fadeInUp'\r\n };\r\n\r\n }\r\n\r\n getAppSetting(name) {\r\n return name ? this.app[name] : this.app;\r\n }\r\n getUserSetting(name) {\r\n return name ? this.user[name] : this.user;\r\n }\r\n getLayoutSetting(name) {\r\n return name ? this.layout[name] : this.layout;\r\n }\r\n\r\n setAppSetting(name, value) {\r\n if (typeof this.app[name] !== 'undefined') {\r\n this.app[name] = value;\r\n }\r\n }\r\n setUserSetting(name, value) {\r\n if (typeof this.user[name] !== 'undefined') {\r\n this.user[name] = value;\r\n }\r\n }\r\n setLayoutSetting(name, value) {\r\n if (typeof this.layout[name] !== 'undefined') {\r\n if (name == 'isCollapsed') {\r\n this.panelValue.next(value);\r\n }\r\n return this.layout[name] = value;\r\n }\r\n }\r\n\r\n toggleLayoutSetting(name) {\r\n return this.setLayoutSetting(name, !this.getLayoutSetting(name));\r\n }\r\n\r\n set() {\r\n return this.layout[\"offsidebarOpen\"] = true;\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nconst themeA = require('../../shared/styles/themes/theme-a.scss');\r\nconst themeB = require('../../shared/styles/themes/theme-b.scss');\r\nconst themeC = require('../../shared/styles/themes/theme-c.scss');\r\nconst themeD = require('../../shared/styles/themes/theme-d.scss');\r\nconst themeE = require('../../shared/styles/themes/theme-e.scss');\r\nconst themeF = require('../../shared/styles/themes/theme-f.scss');\r\nconst themeG = require('../../shared/styles/themes/theme-g.scss');\r\nconst themeH = require('../../shared/styles/themes/theme-h.scss');\r\n\r\n@Injectable()\r\nexport class ThemesService {\r\n\r\n styleTag: any;\r\n defaultTheme: string = 'A';\r\n\r\n constructor() {\r\n this.createStyle();\r\n this.setTheme(this.defaultTheme);\r\n }\r\n\r\n private createStyle() {\r\n const head = document.head || document.getElementsByTagName('head')[0];\r\n this.styleTag = document.createElement('style');\r\n this.styleTag.type = 'text/css';\r\n this.styleTag.id = 'appthemes';\r\n head.appendChild(this.styleTag);\r\n }\r\n\r\n setTheme(name) {\r\n switch (name) {\r\n case 'A':\r\n this.injectStylesheet(themeA);\r\n break;\r\n case 'B':\r\n this.injectStylesheet(themeB);\r\n break;\r\n case 'C':\r\n this.injectStylesheet(themeC);\r\n break;\r\n case 'D':\r\n this.injectStylesheet(themeD);\r\n break;\r\n case 'E':\r\n this.injectStylesheet(themeE);\r\n break;\r\n case 'F':\r\n this.injectStylesheet(themeF);\r\n break;\r\n case 'G':\r\n this.injectStylesheet(themeG);\r\n break;\r\n case 'H':\r\n this.injectStylesheet(themeH);\r\n break;\r\n }\r\n }\r\n\r\n injectStylesheet(css) {\r\n this.styleTag.innerHTML = css;\r\n }\r\n\r\n getDefaultTheme() {\r\n return this.defaultTheme;\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Injectable()\r\nexport class TranslatorService {\r\n\r\n private defaultLanguage: string = 'en';\r\n\r\n private availablelangs = [\r\n { code: 'en', text: 'English' },\r\n { code: 'es_AR', text: 'Spanish' }\r\n ];\r\n\r\n constructor(public translate: TranslateService) {\r\n\r\n if (!translate.getDefaultLang())\r\n translate.setDefaultLang(this.defaultLanguage);\r\n\r\n this.useLanguage();\r\n\r\n }\r\n\r\n useLanguage(lang: string = null) {\r\n this.translate.use(lang || this.translate.getDefaultLang());\r\n }\r\n\r\n getAvailableLanguages() {\r\n return this.availablelangs;\r\n }\r\n\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2xheW91dC9mb290ZXIvZm9vdGVyLmNvbXBvbmVudC5zY3NzIn0= */\";","import { Component, OnInit } from '@angular/core';\r\nimport { SettingsService } from '../../core/settings/settings.service';\r\n\r\n@Component({\r\n selector: '[app-footer]',\r\n templateUrl: './footer.component.html',\r\n styleUrls: ['./footer.component.scss']\r\n})\r\nexport class FooterComponent implements OnInit {\r\n\r\n constructor(public settings: SettingsService) { }\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n}\r\n","export default \".img-fluid-width {\\n height: 40px;\\n float: left;\\n}\\n\\n.topnavbar {\\n background-color: #000000 !important;\\n background-image: linear-gradient(to right, #000000 0%, #000000 100%) !important;\\n background-repeat: repeat-x !important;\\n height: 50px;\\n}\\n\\n.topnavbar .navbar-nav > .nav-item > .nav-link, .topnavbar .navbar-nav > .nav-item.show > .nav-link :hover,\\n:focus {\\n color: #fff !important;\\n}\\n\\n.oriontittle {\\n font-family: \\\"Open Sans regular\\\", sans-serif !important;\\n color: white;\\n margin-top: -25px;\\n font-size: 15px;\\n font-weight: 500;\\n float: right;\\n padding-right: 5px;\\n}\\n\\n.barcss {\\n font-family: \\\"Open Sans regular\\\", sans-serif !important;\\n margin-top: 8px;\\n font-size: 20px;\\n font-weight: 500;\\n color: white;\\n max-width: 1px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbGF5b3V0L2hlYWRlci9EOlxcSW5kaWFCVVxcQWdlbnRQb29sXFxEb3ROZXRcXERvdE5ldEZyYW1ld29ya1xcX3dvcmtcXDI5Nlxccy9zcmNcXGFwcFxcbGF5b3V0XFxoZWFkZXJcXGhlYWRlci5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvbGF5b3V0L2hlYWRlci9oZWFkZXIuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSxZQUFBO0VBQ0EsV0FBQTtBQ0NKOztBREVBO0VBQ0ksb0NBQUE7RUFFQSxnRkFBQTtFQUNBLHNDQUFBO0VBQ0EsWUFBQTtBQ0NKOztBREVBOztFQUVJLHNCQUFBO0FDQ0o7O0FERUE7RUFDSSx1REFBQTtFQUNBLFlBQUE7RUFDQSxpQkFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtFQUNBLFlBQUE7RUFDQSxrQkFBQTtBQ0NKOztBRENBO0VBQ0ksdURBQUE7RUFDQSxlQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0EsWUFBQTtFQUNBLGNBQUE7QUNFSiIsImZpbGUiOiJzcmMvYXBwL2xheW91dC9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmltZy1mbHVpZC13aWR0aCB7XHJcbiAgICBoZWlnaHQ6IDQwcHg7XHJcbiAgICBmbG9hdDogbGVmdDtcclxufVxyXG5cclxuLnRvcG5hdmJhciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwICFpbXBvcnRhbnQ7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIHJpZ2h0IHRvcCwgZnJvbSgjMDAwMDAwKSwgdG8oIzAwMDAwMCkpICFpbXBvcnRhbnQ7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICMwMDAwMDAgMCUsICMwMDAwMDAgMTAwJSkgIWltcG9ydGFudDtcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteCAhaW1wb3J0YW50O1xyXG4gICAgaGVpZ2h0OiA1MHB4O1xyXG59XHJcblxyXG4udG9wbmF2YmFyIC5uYXZiYXItbmF2ID4gLm5hdi1pdGVtID4gLm5hdi1saW5rLCAudG9wbmF2YmFyIC5uYXZiYXItbmF2ID4gLm5hdi1pdGVtLnNob3cgPiAubmF2LWxpbmsgXHJcbjpob3ZlciwgOmZvY3Vze1xyXG4gICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDtcclxufVxyXG5cclxuLm9yaW9udGl0dGxlIHtcclxuICAgIGZvbnQtZmFtaWx5OiAnT3BlbiBTYW5zIHJlZ3VsYXInLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQ7XHJcbiAgICBjb2xvcjogd2hpdGU7XHJcbiAgICBtYXJnaW4tdG9wOiAtMjVweDtcclxuICAgIGZvbnQtc2l6ZTogMTVweDtcclxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiA1cHg7XHJcbn1cclxuLmJhcmNzcyB7XHJcbiAgICBmb250LWZhbWlseTogJ09wZW4gU2FucyByZWd1bGFyJywgc2Fucy1zZXJpZiAhaW1wb3J0YW50O1xyXG4gICAgbWFyZ2luLXRvcDogOHB4O1xyXG4gICAgZm9udC1zaXplOiAyMHB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgIG1heC13aWR0aDogMXB4O1xyXG59IiwiLmltZy1mbHVpZC13aWR0aCB7XG4gIGhlaWdodDogNDBweDtcbiAgZmxvYXQ6IGxlZnQ7XG59XG5cbi50b3BuYXZiYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgcmlnaHQgdG9wLCBmcm9tKCMwMDAwMDApLCB0bygjMDAwMDAwKSkgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjMDAwMDAwIDAlLCAjMDAwMDAwIDEwMCUpICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDUwcHg7XG59XG5cbi50b3BuYXZiYXIgLm5hdmJhci1uYXYgPiAubmF2LWl0ZW0gPiAubmF2LWxpbmssIC50b3BuYXZiYXIgLm5hdmJhci1uYXYgPiAubmF2LWl0ZW0uc2hvdyA+IC5uYXYtbGluayA6aG92ZXIsXG46Zm9jdXMge1xuICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xufVxuXG4ub3Jpb250aXR0bGUge1xuICBmb250LWZhbWlseTogXCJPcGVuIFNhbnMgcmVndWxhclwiLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgbWFyZ2luLXRvcDogLTI1cHg7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBwYWRkaW5nLXJpZ2h0OiA1cHg7XG59XG5cbi5iYXJjc3Mge1xuICBmb250LWZhbWlseTogXCJPcGVuIFNhbnMgcmVndWxhclwiLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi10b3A6IDhweDtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBjb2xvcjogd2hpdGU7XG4gIG1heC13aWR0aDogMXB4O1xufSJdfQ== */\";","import { Component, OnInit, ViewChild, Injector, ChangeDetectorRef, ViewRef } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nconst screenfull = require('screenfull');\r\n\r\nimport { UserblockService } from '../sidebar/userblock/userblock.service';\r\nimport { SettingsService } from '../../core/settings/settings.service';\r\nimport { MenuService } from '../../core/services/menu.service';\r\nimport { AuthenticationService } from 'src/app/core/services/authentication.service';\r\nimport { CredentialsService } from '../../core/services/credentials.service';\r\nimport { DialogService } from \"primeng/dynamicdialog\";\r\nimport { AddUserComponent } from 'src/app/modules/user-management/components/add-user/add-user.component';\r\nimport { UserList } from 'src/app/shared/models/MUserGrid';\r\nimport { HttpGenericService } from 'src/app/core/services/http-genric.service';\r\nimport { API } from 'src/app/shared/constants/api.constants';\r\nimport { LocalStorage } from '@ng-idle/core';\r\n//import { environment } from 'src/assets/environments/environment';\r\nimport { first } from \"rxjs/operators\";\r\nimport { environment } from 'src/environments/environment';\r\n\r\nconst swal = require(\"sweetalert\");\r\n\r\n\r\n\r\n@Component({\r\n\tselector: 'app-header',\r\n\ttemplateUrl: './header.component.html',\r\n\tstyleUrls: ['./header.component.scss']\r\n})\r\nexport class HeaderComponent implements OnInit {\r\n\r\n\tnavCollapsed = true; // for horizontal layout\r\n\tmenuItems = []; // for horizontal layout\r\n\trouter: Router;\r\n\t\r\n userDetails: any;\r\n\tisNavSearchVisible: boolean;\r\n\t@ViewChild('fsbutton', { static: true }) fsbutton; // the fullscreen button\r\n\tref: any;\r\n\tuserList: UserList[] = [];\r\n\tapi = API;\r\n adfsLogin: string;\r\n userDetails1: { username: string};\r\n\ttitle = \"AssessDeck\"\r\n\tbar = \"|\"\r\n\r\n\tconstructor(public menu: MenuService,\r\n\t\tprivate credentialsService: CredentialsService,\r\n\t\tprivate route: Router,\r\n\t\tpublic settings: SettingsService,\r\n\t\tpublic userblockService: UserblockService,\r\n\t\tprivate cdr: ChangeDetectorRef,\r\n\t\tpublic dialogService: DialogService,\r\n\t\tprivate httpGenericService: HttpGenericService,\r\n\t\tprivate authenticationService: AuthenticationService,\r\n\t\tpublic injector: Injector) {\r\n\t\t// show only a few items on demo\r\n\t\tthis.menuItems = menu.getMenu().slice(0, 4); // for horizontal layout\r\n\t\tthis.userDetails = this.credentialsService.credentials;\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tthis.isNavSearchVisible = false;\r\n\r\n\t\tvar ua = window.navigator.userAgent;\r\n\t\tif (ua.indexOf(\"MSIE \") > 0 || !!ua.match(/Trident.*rv\\:11\\./)) { // Not supported under IE\r\n\t\t\tthis.fsbutton.nativeElement.style.display = 'none';\r\n\t\t}\r\n\t}\r\n\r\n\ttoggleUserBlock(event) {\r\n\t\tevent.preventDefault();\r\n\t\tthis.userblockService.toggleVisibility();\r\n\t}\r\n\r\n\topenNavSearch(event) {\r\n\t\tevent.preventDefault();\r\n\t\tevent.stopPropagation();\r\n\t\tthis.setNavSearchVisible(true);\r\n\t}\r\n\r\n\tsetNavSearchVisible(stat: boolean) {\r\n\t\tthis.isNavSearchVisible = stat;\r\n\t}\r\n\r\n\tgetNavSearchVisible() {\r\n\t\treturn this.isNavSearchVisible;\r\n\t}\r\n\r\n\ttoggleOffsidebar() {\r\n\t\tthis.settings.toggleLayoutSetting('offsidebarOpen');\r\n\t}\r\n\r\n\ttoggleCollapsedSideabar() {\r\n\t\tthis.settings.toggleLayoutSetting('isCollapsed');\r\n\t}\r\n\r\n\tisCollapsedText() {\r\n\t\treturn this.settings.getLayoutSetting('isCollapsedText');\r\n\t}\r\n\r\n\ttoggleFullScreen(event) {\r\n\t\tif (screenfull.enabled) {\r\n\t\t\tscreenfull.toggle();\r\n\t\t}\r\n\t}\r\n\r\n\tlogOut() {\r\n\t\tswal({\r\n\t\t\ttext: \"Do you want to logout?\",\r\n\t\t\ticon: \"warning\",\r\n\t\t\tbuttons: {\r\n\t\t\t\tcancel: {\r\n\t\t\t\t\ttext: \"No\",\r\n\t\t\t\t\tvalue: null,\r\n\t\t\t\t\tvisible: true,\r\n\t\t\t\t\tclassName: \"bg-danger\",\r\n\t\t\t\t\tcloseModal: true,\r\n\t\t\t\t},\r\n\t\t\t\tconfirm: {\r\n\t\t\t\t\ttext: \"Yes\",\r\n\t\t\t\t\tvalue: true,\r\n\t\t\t\t\tvisible: true,\r\n\t\t\t\t\tclassName: \"bg-primary\",\r\n\t\t\t\t\tcloseModal: true,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t}).then((isConfirm) => {\r\n if (isConfirm) {\r\n // let user = this.credentialsService.credentials;\r\n // this.userDetails1.username = user.userName;\r\n \r\n \r\n this.httpGenericService\r\n .postDataPromise(\r\n this.api.authentication.logoutUser,\r\n this.userDetails\r\n )\r\n .then((res) => {\r\n let response: any = res;\r\n if (response.StatusCode === 200) {\r\n this.authenticationService.logout();\r\n this.adfsLogin = localStorage.getItem(\"adfsLOGIN\");\r\n localStorage.clear();\r\n sessionStorage.clear();\r\n if (this.adfsLogin == \"true\") {\r\n window.location.href = \"https://login.windows.net/\" + environment['settings'].tenantId + \"/oauth2/logout?post_logout_redirect_uri=\" + environment['settings'].redirectUrl;\r\n }\r\n else {\r\n this.cdr.detach();\r\n setTimeout(() => {\r\n if (this.cdr && !(this.cdr as ViewRef).destroyed) {\r\n this.cdr.detectChanges();\r\n }\r\n this.route.navigate(['/login']);\r\n });\r\n }\r\n }\r\n else {\r\n setTimeout(() => {\r\n if (this.cdr && !(this.cdr as ViewRef).destroyed) {\r\n this.cdr.detectChanges();\r\n }\r\n this.router.navigate(['/login']);\r\n });\r\n }\r\n });\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\teditUserPopUp(user: any) {\r\n\t\tthis.ref = this.dialogService.open(AddUserComponent, {\r\n\t\t\theader: \"User Details\",\r\n\t\t\tdata: { user: user, readonly: true },\r\n\t\t\tstyle: {\r\n\t\t\t\t\"margin-top\": \"7%\",\r\n\t\t\t\t\"margin-bottom\": \"auto\",\r\n\t\t\t\t\"width\": \"60%\",\r\n\t\t\t},\r\n\t\t});\r\n\t\tthis.ref.onClose.subscribe((res) => {\r\n\t\t\tif (res) {\r\n\t\t\t\tthis.getUserList({ searchText: \"\" }); //comment after response is mapped from backend\r\n\t\t\t\t// this.users.push(res) this is for no need to call getAllUsers API\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tgetUserList = (searchText: {}) => {\r\n\t\tthis.httpGenericService\r\n\t\t\t.postDataPromise(this.api.userManagement.getAllUser, searchText)\r\n\t\t\t.then((res) => {\r\n\t\t\t\tlet response: any = res;\r\n\t\t\t\tthis.userList = response.Result;\r\n\t\t\t});\r\n\t};\r\n\r\n\t\r\n\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2xheW91dC9oZWFkZXIvbmF2c2VhcmNoL25hdnNlYXJjaC5jb21wb25lbnQuc2NzcyJ9 */\";","import { Component, Input, Output, EventEmitter, OnInit, OnChanges, SimpleChange, ElementRef } from '@angular/core';\r\n\r\n@Component({\r\n\tselector: 'app-navsearch',\r\n\ttemplateUrl: './navsearch.component.html',\r\n\tstyleUrls: ['./navsearch.component.scss']\r\n})\r\nexport class NavsearchComponent implements OnInit, OnChanges {\r\n\r\n\t@Input() visible: boolean;\r\n\t@Output() onclose = new EventEmitter();\r\n\tterm: string;\r\n\r\n\tconstructor (public elem: ElementRef) { }\r\n\r\n\tngOnInit () {\r\n\t\tdocument.addEventListener('keyup', event => {\r\n\t\t\tif (event.keyCode === 27) {// ESC\r\n\t\t\t\tthis.closeNavSearch();\r\n\t\t\t}\r\n\t\t});\r\n\t\tdocument.addEventListener('click', event => {\r\n\t\t\tconst contains = (this.elem.nativeElement !== event.target && this.elem.nativeElement.contains(event.target));\r\n\t\t\tif (!contains) {\r\n\t\t\t\tthis.closeNavSearch();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tcloseNavSearch () {\r\n\t\tthis.visible = false;\r\n\t\tthis.onclose.emit();\r\n\t}\r\n\r\n\tngOnChanges (changes: { [propKey: string]: SimpleChange; }) {\r\n\t\tif (changes['visible'].currentValue === true) {\r\n\t\t\tthis.elem.nativeElement.querySelector('input').focus();\r\n\t\t}\r\n\t}\r\n\r\n\thandleForm () {\r\n\t\t// console.log('Form submit: ' + this.term);\r\n\t}\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2xheW91dC9sYXlvdXQuY29tcG9uZW50LnNjc3MifQ== */\";","import { Component, DoCheck, OnInit } from '@angular/core';\r\nimport { SettingsService } from '../core/settings/settings.service';\r\nimport { Router } from '@angular/router';\r\nimport { PaginatorIconList } from '../shared/constants/globle.constants';\r\ndeclare var $: any;\r\n@Component({\r\n\tselector: 'app-layout',\r\n\ttemplateUrl: './layout.component.html',\r\n\tstyleUrls: ['./layout.component.scss']\r\n})\r\nexport class LayoutComponent implements OnInit {\r\n\r\n\tconstructor (\r\n\t\tprivate route: Router,\r\n\t\tpublic settings: SettingsService,\r\n\t) {\r\n\t\t// Hide sidebar automatically when you go into inner pages \r\n\t\troute.events.subscribe(() => {\r\n\t\t\tthis.settings['layout'].isCollapsed = (this.route.url.split('/')?.length > 2) ? true : false;\r\n\t\t});\r\n\t}\r\n\r\n\tngOnInit () {}\r\n\r\n\tngDoCheck(): void {\r\n\t\tPaginatorIconList.forEach((iconConfig) => {\r\n\t\t if (iconConfig?.hide) {\r\n\t\t\tlet iconElement = document?.querySelector(\r\n\t\t\t iconConfig?.icon\r\n\t\t\t);\r\n\t\t\tif (iconElement) {\r\n\t\t\t iconElement.style.display = \"none\";\r\n\t\t\t}\r\n\t\t } else {\r\n\t\t\tlet iconElement = document?.querySelector(iconConfig?.icon);\r\n\t\t\tif (iconElement) {\r\n\t\t\t iconElement.removeAttribute(\"class\");\r\n\t\t\t iconElement.setAttribute(\"style\", \"font-size: 14px !important;\");\r\n\t\t\t iconElement.classList.add(\"paginator-text\");\r\n\t\t\t iconElement.textContent = iconConfig.text;\r\n\t\t\t}\r\n\t\t }\r\n\t\t});\r\n\t }\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { LayoutComponent } from './layout.component';\r\nimport { SidebarComponent } from './sidebar/sidebar.component';\r\nimport { HeaderComponent } from './header/header.component';\r\nimport { NavsearchComponent } from './header/navsearch/navsearch.component';\r\nimport { OffsidebarComponent } from './offsidebar/offsidebar.component';\r\nimport { UserblockComponent } from './sidebar/userblock/userblock.component';\r\nimport { UserblockService } from './sidebar/userblock/userblock.service';\r\nimport { FooterComponent } from './footer/footer.component';\r\n\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@NgModule({\r\n imports: [\r\n SharedModule,NgbModule\r\n ],\r\n providers: [\r\n UserblockService\r\n ],\r\n declarations: [\r\n LayoutComponent,\r\n SidebarComponent,\r\n UserblockComponent,\r\n HeaderComponent,\r\n NavsearchComponent,\r\n OffsidebarComponent,\r\n FooterComponent\r\n ],\r\n exports: [\r\n LayoutComponent,\r\n SidebarComponent,\r\n UserblockComponent,\r\n HeaderComponent,\r\n NavsearchComponent,\r\n OffsidebarComponent,\r\n FooterComponent\r\n ]\r\n})\r\nexport class LayoutModule { }\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2xheW91dC9vZmZzaWRlYmFyL29mZnNpZGViYXIuY29tcG9uZW50LnNjc3MifQ== */\";","import { Component, OnInit, OnDestroy, ElementRef, DoCheck } from '@angular/core';\r\nimport { first } from 'rxjs/operators';\r\nimport { CredentialsService } from 'src/app/core/services/credentials.service';\r\nimport { HttpGenericService } from 'src/app/core/services/http-genric.service';\r\n\r\nimport { SettingsService } from '../../core/settings/settings.service';\r\nimport { ThemesService } from '../../core/themes/themes.service';\r\nimport { TranslatorService } from '../../core/translator/translator.service';\r\nimport * as globleConsts from \"../../shared/constants/globle.constants\";\r\nimport * as consts from '../../shared/constants/api.constants';\r\nimport { ActivatedRoute } from '@angular/router';\r\n@Component({\r\n selector: 'app-offsidebar',\r\n templateUrl: './offsidebar.component.html',\r\n styleUrls: ['./offsidebar.component.scss']\r\n})\r\nexport class OffsidebarComponent implements OnInit, OnDestroy, DoCheck {\r\n\r\n currentTheme: any;\r\n selectedLanguage: string;\r\n\r\n constructor(public settings: SettingsService, private activatedRoute: ActivatedRoute, private httpGenericSerivce: HttpGenericService, public themes: ThemesService, public translator: TranslatorService, private credentialsService: CredentialsService, public elem: ElementRef) {\r\n this.currentTheme = themes.getDefaultTheme();\r\n this.selectedLanguage = this.getLangs()[0].code;\r\n }\r\n ngDoCheck(): void {\r\n this.activatedRoute.queryParams.subscribe((params) => {\r\n if (!params.tab)\r\n this.validationAList = [];\r\n\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.anyClickClose();\r\n }\r\n\r\n setTheme() {\r\n this.themes.setTheme(this.currentTheme);\r\n }\r\n\r\n getLangs() {\r\n return this.translator.getAvailableLanguages();\r\n }\r\n\r\n setLang(value) {\r\n this.translator.useLanguage(value);\r\n }\r\n\r\n anyClickClose() {\r\n document.addEventListener('click', this.checkCloseOffsidebar, false);\r\n }\r\n\r\n checkCloseOffsidebar = e => {\r\n const contains = (this.elem.nativeElement !== e.target && this.elem.nativeElement.contains(e.target));\r\n if (!contains) {\r\n this.settings.setLayoutSetting('offsidebarOpen', false);\r\n }\r\n }\r\n\r\n taskId: number = 0;\r\n validationAList = [];\r\n getValidationData() {\r\n const decryptedIds = this.credentialsService.decryptdata(sessionStorage.getItem(globleConsts.LocalStorageKeys.TaskClientId))?.split(globleConsts.KeyDelimiter);\r\n if (decryptedIds && decryptedIds[0] && decryptedIds[1] &&\r\n decryptedIds[0].length > 0 && decryptedIds[1].length > 0) {\r\n this.taskId = +decryptedIds[0];\r\n }\r\n this.httpGenericSerivce\r\n .fetchAll(`${consts.XMLValidation}${this.taskId}`)\r\n .pipe(first())\r\n .subscribe((validationData) => {\r\n if (validationData[\"Result\"].length == 0) {\r\n this.httpGenericSerivce\r\n .fetchAll(`${consts.GenerateXML}${this.taskId}`)\r\n .pipe(first())\r\n .subscribe((validationData) => {\r\n if (validationData[\"Result\"]) {\r\n this.validationAList = [];\r\n var a = window.document.createElement('a');\r\n a.href = window.URL.createObjectURL(new Blob([validationData[\"Result\"]], { type: 'application/xml' }));\r\n a.download = validationData[\"Message\"] + '.xml';\r\n document.body.appendChild(a);\r\n a.click();\r\n document.body.removeChild(a);\r\n }\r\n });\r\n } else {\r\n this.validationAList = [...validationData[\"Result\"]];\r\n }\r\n });\r\n\r\n }\r\n ngOnDestroy() {\r\n document.removeEventListener('click', this.checkCloseOffsidebar);\r\n }\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2xheW91dC9zaWRlYmFyL3NpZGViYXIuY29tcG9uZW50LnNjc3MifQ== */\";","import { Component, OnInit, Injector, OnDestroy } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { MenuService } from \"../../core/services/menu.service\";\r\nimport { SettingsService } from \"../../core/settings/settings.service\";\r\nimport { CredentialsService } from \"src/app/core/services/credentials.service\";\r\nimport * as globleConstants from \"../../shared/constants/globle.constants\";\r\nimport { SearchEntity } from \"src/app/shared/models/SearchEntity\";\r\nimport { HttpGenericService } from \"src/app/core/services/http-genric.service\";\r\nimport { API } from \"src/app/shared/constants/api.constants\";\r\nimport { first } from \"rxjs/operators\";\r\nimport { GetRoles } from \"src/app/modules/role-permission-management/model/getRoleList\";\r\nimport { CommonserviceService } from \"src/app/shared/commonservices/commonservice.service\";\r\nimport { GetRoleList } from \"src/app/modules/permission-management/models/getRoles\";\r\ndeclare var $: any;\r\n\r\n@Component({\r\n selector: \"app-sidebar\",\r\n templateUrl: \"./sidebar.component.html\",\r\n styleUrls: [\"./sidebar.component.scss\"],\r\n})\r\nexport class SidebarComponent implements OnInit, OnDestroy {\r\n //menuItems: Array;\r\n router: Router;\r\n sbclickEvent = \"click.sidebar-toggle\";\r\n $doc: any = null;\r\n isadmin: boolean;\r\n menuList: any;\r\n roleEntity: GetRoleList = {};\r\n searchEntity: SearchEntity = {};\r\n searchText: string = \"\";\r\n api = API;\r\n roleList: GetRoles;\r\n userData: any;\r\n permission = [];\r\n menuItems = [];\r\n permissionType = globleConstants.PermissionTypeEnum\r\n\r\n constructor(\r\n public menu: MenuService,\r\n public settings: SettingsService,\r\n private credencialService: CredentialsService,\r\n public injector: Injector,\r\n private httpGenericRouteSerivce: HttpGenericService,\r\n private commonserviceService: CommonserviceService,\r\n ) {\r\n // this.menuItems = menu.getMenu();\r\n // this.roleName = this.credencialService.credentials.assignedRole;\r\n // this.searchEntity.searchText = this.searchText;\r\n // this.getRoles(this.searchText);\r\n //this.menuItems = menu.getAdmin();\r\n // if (this.roleName === \"SUPER ADMIN\") {\r\n // this.isadmin = true;\r\n // this.menuItems = menu.getAdmin();\r\n // }\r\n // if (this.roleName === globleConstants.Designations.ADMIN.toUpperCase()) {\r\n // this.menuItems = menu.getAdmin();\r\n // }\r\n // if (this.roleName === globleConstants.Designations.MANAGER.toUpperCase()) {\r\n // this.menuItems = menu.getManager();\r\n // }\r\n // if (this.roleName === globleConstants.Designations.ANALYST.toUpperCase()) {\r\n // this.menuItems = menu.getAnalyst();\r\n // }\r\n }\r\n\r\n async ngOnInit() {\r\n this.userData = this.credencialService.credentials;\r\n let sidenavitems = this.menu.getAdmin();\r\n this.roleEntity.name = this.credencialService.credentials.assignedRole;\r\n this.roleEntity.id = this.credencialService.credentials.roleId;\r\n await this.commonserviceService.permissioncheck(this.userData, this.roleEntity);\r\n this.permission = this.credencialService.getPermissionDetails();\r\n this.permission = this.permission.filter(\r\n (x) => x.permissionTypeName !== this.permissionType.NoAccess\r\n );\r\n if (this.permission !== undefined && this.permission.length > 0) {\r\n this.permission.forEach(element => {\r\n sidenavitems.forEach(el => {\r\n if (el.text == element.permissionName) {\r\n this.menuItems.push(el);\r\n }\r\n });\r\n });\r\n }\r\n this.router = this.injector.get(Router);\r\n this.router.events.subscribe(() => {\r\n // close any submenu opened when route changes\r\n this.removeFloatingNav();\r\n // scroll view to top\r\n window.scrollTo(0, 0);\r\n // close sidebar on route change\r\n this.settings.setLayoutSetting(\"asideToggled\", false);\r\n });\r\n\r\n // enable sidebar autoclose from extenal clicks\r\n this.anyClickClose();\r\n }\r\n\r\n getRoles = (searchText) => {\r\n this.searchEntity.searchText = searchText;\r\n // get role list\r\n this.httpGenericRouteSerivce\r\n .postData(this.api.role.getRoleList, this.searchEntity)\r\n .pipe(first())\r\n .subscribe((roles) => {\r\n let list: GetRoles = roles[\"Result\"];\r\n this.roleList = list;\r\n });\r\n };\r\n\r\n anyClickClose() {\r\n this.$doc = $(document).on(this.sbclickEvent, (e) => {\r\n if (!$(e.target).parents(\".aside-container\").length) {\r\n this.settings.setLayoutSetting(\"asideToggled\", false);\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.$doc) this.$doc.off(this.sbclickEvent);\r\n }\r\n\r\n toggleSubmenuClick(event) {\r\n event.preventDefault();\r\n\r\n localStorage.setItem('maintab', 'false');\r\n if (\r\n !this.isSidebarCollapsed() &&\r\n !this.isSidebarCollapsedText() &&\r\n !this.isEnabledHover()\r\n ) {\r\n let ul = $(event.currentTarget.nextElementSibling);\r\n\r\n // hide other submenus\r\n let parentNav = ul.parents(\".sidebar-subnav\");\r\n $(\".sidebar-subnav\").each((idx, el) => {\r\n let $el = $(el);\r\n // if element is not a parent or self ul\r\n if (el !== parentNav[0] && el !== ul[0]) {\r\n this.closeMenu($el);\r\n }\r\n });\r\n\r\n // abort if not UL to process\r\n if (!ul.length) {\r\n return;\r\n }\r\n\r\n // any child menu should start closed\r\n ul.find(\".sidebar-subnav\").each((idx, el) => {\r\n this.closeMenu($(el));\r\n });\r\n\r\n // toggle UL height\r\n const ulHeight = ul.css(\"height\");\r\n if (ulHeight === \"auto\" || parseInt(ulHeight, 10)) {\r\n this.closeMenu(ul);\r\n } else {\r\n // expand menu\r\n ul.on(\"transitionend\", () => {\r\n ul.css(\"height\", \"auto\").off(\"transitionend\");\r\n }).css(\"height\", ul[0].scrollHeight);\r\n // add class to manage animation\r\n ul.addClass(\"opening\");\r\n }\r\n }\r\n }\r\n\r\n // Close menu collapsing height\r\n closeMenu(elem) {\r\n elem.css(\"height\", elem[0].scrollHeight); // set height\r\n elem.css(\"height\", 0); // and move to zero to collapse\r\n elem.removeClass(\"opening\");\r\n }\r\n\r\n toggleSubmenuHover(event) {\r\n let self = this;\r\n if (\r\n this.isSidebarCollapsed() ||\r\n this.isSidebarCollapsedText() ||\r\n this.isEnabledHover()\r\n ) {\r\n event.preventDefault();\r\n\r\n this.removeFloatingNav();\r\n\r\n let ul = $(event.currentTarget.nextElementSibling);\r\n let anchor = $(event.currentTarget);\r\n\r\n if (!ul.length) {\r\n return; // if not submenu return\r\n }\r\n\r\n let $aside = $(\".aside-container\");\r\n let $asideInner = $aside.children(\".aside-inner\"); // for top offset calculation\r\n let $sidebar = $asideInner.children(\".sidebar\");\r\n let mar =\r\n parseInt($asideInner.css(\"padding-top\"), 0) +\r\n parseInt($aside.css(\"padding-top\"), 0);\r\n let itemTop = anchor.parent().position().top + mar - $sidebar.scrollTop();\r\n\r\n let floatingNav = ul.clone().appendTo($aside);\r\n let vwHeight = document.body.clientHeight;\r\n\r\n // let itemTop = anchor.position().top || anchor.offset().top;\r\n\r\n floatingNav.addClass(\"nav-floating\");\r\n\r\n // each item has ~40px height\r\n // multiply to force space for at least N items\r\n var safeOffsetValue = 40 * 5;\r\n var navHeight = floatingNav.outerHeight(true) + 2; // 2px border\r\n var safeOffset =\r\n navHeight < safeOffsetValue ? navHeight : safeOffsetValue;\r\n\r\n var displacement = 25; // displacement in px from bottom\r\n\r\n // if not enough space to show N items, use then calculated 'safeOffset'\r\n var menuTop =\r\n vwHeight - itemTop > safeOffset\r\n ? itemTop\r\n : vwHeight - safeOffset - displacement;\r\n\r\n floatingNav\r\n .removeClass(\"opening\") // necesary for demo if switched between normal//collapsed mode\r\n .css({\r\n position: this.settings.getLayoutSetting(\"isFixed\")\r\n ? \"fixed\"\r\n : \"absolute\",\r\n top: menuTop,\r\n bottom:\r\n floatingNav.outerHeight(true) + menuTop > vwHeight\r\n ? displacement + \"px\"\r\n : \"auto\",\r\n });\r\n\r\n floatingNav\r\n .on(\"mouseleave\", () => {\r\n floatingNav.remove();\r\n })\r\n .find(\"a\")\r\n .on(\"click\", function (e) {\r\n e.preventDefault(); // prevents page reload on click\r\n // get the exact route path to navigate\r\n let routeTo = $(this).attr(\"route\");\r\n if (routeTo) self.router.navigate([routeTo]);\r\n });\r\n\r\n this.listenForExternalClicks();\r\n }\r\n }\r\n\r\n listenForExternalClicks() {\r\n let $doc = $(document).on(\"click.sidebar\", (e) => {\r\n if (!$(e.target).parents(\".aside-container\").length) {\r\n this.removeFloatingNav();\r\n $doc.off(\"click.sidebar\");\r\n }\r\n });\r\n }\r\n\r\n removeFloatingNav() {\r\n $(\".nav-floating\").remove();\r\n }\r\n\r\n isSidebarCollapsed() {\r\n return this.settings.getLayoutSetting(\"isCollapsed\");\r\n }\r\n isSidebarCollapsedText() {\r\n return this.settings.getLayoutSetting(\"isCollapsedText\");\r\n }\r\n isEnabledHover() {\r\n return this.settings.getLayoutSetting(\"asideHover\");\r\n }\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2xheW91dC9zaWRlYmFyL3VzZXJibG9jay91c2VyYmxvY2suY29tcG9uZW50LnNjc3MifQ== */\";","import { Component, OnInit } from '@angular/core';\r\n\r\nimport { UserblockService } from './userblock.service';\r\n\r\n@Component({\r\n selector: 'app-userblock',\r\n templateUrl: './userblock.component.html',\r\n styleUrls: ['./userblock.component.scss']\r\n})\r\nexport class UserblockComponent implements OnInit {\r\n user: any;\r\n constructor(public userblockService: UserblockService) {\r\n\r\n this.user = {\r\n picture: 'assets/img/user/01.jpg'\r\n };\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n userBlockIsVisible() {\r\n return this.userblockService.getVisibility();\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class UserblockService {\r\n public userBlockVisible: boolean;\r\n constructor() {\r\n // initially visible\r\n this.userBlockVisible = true;\r\n }\r\n\r\n getVisibility() {\r\n return this.userBlockVisible;\r\n }\r\n\r\n setVisibility(stat = true) {\r\n this.userBlockVisible = stat;\r\n }\r\n\r\n toggleVisibility() {\r\n this.userBlockVisible = !this.userBlockVisible;\r\n }\r\n\r\n}\r\n","export default \".style {\\n font-weight: bold;\\n font-size: small;\\n border: 2px solid honeydew;\\n}\\n\\n.color {\\n background-color: #ffffff;\\n}\\n\\nh5:hover {\\n background-color: #86bc25 !important;\\n color: #fff !important;\\n}\\n\\n.form-control {\\n display: block;\\n width: 100%;\\n height: 2.1875rem;\\n padding: 0.375rem 1rem;\\n font-size: 14px;\\n font-weight: 400;\\n line-height: 1.528571429;\\n color: black;\\n background-color: #fff;\\n background-clip: padding-box;\\n border: 1px solid grey;\\n border-radius: 0.25rem;\\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\\n}\\n\\n.disablecheckBox {\\n background-color: lightgray;\\n cursor: not-allowed;\\n}\\n\\n.form-control-disabled {\\n display: block;\\n width: 100%;\\n height: 2.1875rem;\\n padding: 0.375rem 1rem;\\n font-size: 14px;\\n font-weight: 400;\\n line-height: 1.528571429;\\n color: grey;\\n background-color: lightgray;\\n background-clip: padding-box;\\n border: 0px;\\n border-radius: 0.25rem;\\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\\n cursor: not-allowed;\\n}\\n\\ntable {\\n border-collapse: collapse;\\n border-spacing: 0;\\n width: 100%;\\n background-color: #fff;\\n border: 1px solid #c8c8c8 !important;\\n font-family: \\\"Open Sans\\\", sans-serif !important;\\n font-style: normal !important;\\n font-weight: 500;\\n font-size: 13px;\\n line-height: 19px;\\n letter-spacing: 0.01em;\\n color: #000 !important;\\n}\\n\\nthead > tr > th, tbody > tr > td {\\n text-align: left;\\n padding: 8px;\\n}\\n\\nthead > tr > th {\\n font-style: normal;\\n font-size: 12px;\\n font-weight: 700 !important;\\n line-height: 20px;\\n letter-spacing: 0.01em;\\n color: #333 !important;\\n}\\n\\ntbody > tr > td {\\n font-style: normal;\\n font-weight: 400;\\n font-size: 13px;\\n line-height: 20px;\\n letter-spacing: 0.01em;\\n color: #000 !important;\\n border-top: 1px solid #c8c8c8 !important;\\n}\\n\\ntbody > tr:nth-child(even) {\\n background-color: #f5f7fa;\\n}\\n\\n.alignment {\\n white-space: break-spaces !important;\\n width: 500px !important;\\n}\\n\\ndiv.scroll {\\n overflow: auto;\\n white-space: nowrap;\\n}\\n\\n.fa-vc {\\n line-height: 1.2;\\n}\\n\\n.disable {\\n color: grey;\\n cursor: not-allowed;\\n}\\n\\n.textarea {\\n height: 90px;\\n}\\n\\n.textboxsize {\\n height: 60px;\\n}\\n\\n.wrapper {\\n position: relative;\\n overflow: auto;\\n white-space: nowrap;\\n margin-top: 215px;\\n}\\n\\n.sticky-col {\\n position: -webkit-sticky;\\n position: sticky;\\n background-color: #f5f7fa;\\n}\\n\\n.first-col {\\n width: 8em;\\n min-width: 8em;\\n max-width: 8em;\\n left: 0px;\\n}\\n\\n.sticky {\\n position: fixed;\\n top: 152px;\\n z-index: 10;\\n background: #f5f7fa;\\n}\\n\\n.sticky-2 {\\n position: fixed;\\n top: 70px;\\n z-index: 10;\\n background: #f5f7fa;\\n}\\n\\n.sticky-3 {\\n position: fixed;\\n top: 55px;\\n z-index: 10;\\n background: #f5f7fa;\\n width: 100%;\\n}\\n\\n.main-header-css {\\n background-color: #f5f7fa !important;\\n}\\n\\n.sub-header-css {\\n background-color: #dcdcff;\\n}\\n\\n.collapsed {\\n width: 92%;\\n}\\n\\n.expand {\\n width: 81%;\\n}\\n\\n.my-pagination ::ng-deep .ngx-pagination .current {\\n background: #000;\\n}\\n\\n.warningcolor {\\n background-color: #ff4c4c !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbW9kdWxlcy9lbnRpdHktbWFuYWdlbWVudC9jb21wb25lbnRzL2Fzc2Vzc21lbnRyZXZpZXcvRDpcXEluZGlhQlVcXEFnZW50UG9vbFxcRG90TmV0XFxEb3ROZXRGcmFtZXdvcmtcXF93b3JrXFwyOTZcXHMvc3JjXFxhcHBcXG1vZHVsZXNcXGVudGl0eS1tYW5hZ2VtZW50XFxjb21wb25lbnRzXFxhc3Nlc3NtZW50cmV2aWV3XFxhc3Nlc3NtZW50cmV2aWV3LmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9tb2R1bGVzL2VudGl0eS1tYW5hZ2VtZW50L2NvbXBvbmVudHMvYXNzZXNzbWVudHJldmlldy9hc3Nlc3NtZW50cmV2aWV3LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBO0VBQ0ksaUJBQUE7RUFDQSxnQkFBQTtFQUNBLDBCQUFBO0FDQUo7O0FER0E7RUFDSSx5QkFBQTtBQ0FKOztBREdBO0VBQ0ksb0NBQUE7RUFDQSxzQkFBQTtBQ0FKOztBREdBO0VBQ0ksY0FBQTtFQUNBLFdBQUE7RUFDQSxpQkFBQTtFQUNBLHNCQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0Esd0JBQUE7RUFDQSxZQUFBO0VBQ0Esc0JBQUE7RUFDQSw0QkFBQTtFQUNBLHNCQUFBO0VBQ0Esc0JBQUE7RUFDQSx3RUFBQTtBQ0FKOztBREdBO0VBQ0ksMkJBQUE7RUFDQSxtQkFBQTtBQ0FKOztBRElBO0VBQ0ksY0FBQTtFQUNBLFdBQUE7RUFDQSxpQkFBQTtFQUNBLHNCQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0Esd0JBQUE7RUFDQSxXQUFBO0VBQ0EsMkJBQUE7RUFDQSw0QkFBQTtFQUNBLFdBQUE7RUFDQSxzQkFBQTtFQUNBLHdFQUFBO0VBQ0EsbUJBQUE7QUNESjs7QURJSTtFQUNJLHlCQUFBO0VBQ0EsaUJBQUE7RUFDQSxXQUFBO0VBQ0Esc0JBQUE7RUFDQSxvQ0FBQTtFQUNBLCtDQUFBO0VBQ0EsNkJBQUE7RUFDQSxnQkFBQTtFQUNBLGVBQUE7RUFDQSxpQkFBQTtFQUNBLHNCQUFBO0VBQ0Esc0JBQUE7QUNEUjs7QURJTTtFQUNFLGdCQUFBO0VBQ0EsWUFBQTtBQ0RSOztBRElNO0VBQ0Usa0JBQUE7RUFDQSxlQUFBO0VBQ0EsMkJBQUE7RUFDQSxpQkFBQTtFQUNBLHNCQUFBO0VBQ0Esc0JBQUE7QUNEUjs7QURJTTtFQUNFLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxlQUFBO0VBQ0EsaUJBQUE7RUFDQSxzQkFBQTtFQUVBLHNCQUFBO0VBQ0Esd0NBQUE7QUNGUjs7QURLTTtFQUNFLHlCQUFBO0FDRlI7O0FES007RUFDRSxvQ0FBQTtFQUNBLHVCQUFBO0FDRlI7O0FES007RUFDRSxjQUFBO0VBQ0EsbUJBQUE7QUNGUjs7QURLTTtFQUFPLGdCQUFBO0FDRGI7O0FER1E7RUFDRSxXQUFBO0VBQ0EsbUJBQUE7QUNBVjs7QURHUTtFQUNFLFlBQUE7QUNBVjs7QURHUTtFQUNFLFlBQUE7QUNBVjs7QURHUTtFQUNFLGtCQUFBO0VBQ0EsY0FBQTtFQUNBLG1CQUFBO0VBQ0EsaUJBQUE7QUNBVjs7QURHUTtFQUNFLHdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSx5QkFBQTtBQ0FWOztBREdRO0VBQ0UsVUFBQTtFQUNBLGNBQUE7RUFDQSxjQUFBO0VBQ0EsU0FBQTtBQ0FWOztBREdNO0VBQ0UsZUFBQTtFQUNBLFVBQUE7RUFFQSxXQUFBO0VBQ0EsbUJBQUE7QUNEUjs7QURLTTtFQUNFLGVBQUE7RUFDQSxTQUFBO0VBQ0EsV0FBQTtFQUNBLG1CQUFBO0FDRlI7O0FET007RUFDRSxlQUFBO0VBQ0EsU0FBQTtFQUNBLFdBQUE7RUFDQSxtQkFBQTtFQUNBLFdBQUE7QUNKUjs7QURPTTtFQUNFLG9DQUFBO0FDSlI7O0FET007RUFDRSx5QkFBQTtBQ0pSOztBRE9NO0VBQ0UsVUFBQTtBQ0pSOztBRE9NO0VBQ0UsVUFBQTtBQ0pSOztBRE9NO0VBQ0UsZ0JBQUE7QUNKUjs7QURPQTtFQUNFLG9DQUFBO0FDSkYiLCJmaWxlIjoic3JjL2FwcC9tb2R1bGVzL2VudGl0eS1tYW5hZ2VtZW50L2NvbXBvbmVudHMvYXNzZXNzbWVudHJldmlldy9hc3Nlc3NtZW50cmV2aWV3LmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi5zdHlsZXtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgZm9udC1zaXplOiBzbWFsbDtcclxuICAgIGJvcmRlcjogMnB4IHNvbGlkIGhvbmV5ZGV3O1xyXG4gICAgfSBcclxuXHJcbi5jb2xvcntcclxuICAgIGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjtcclxuICAgIH1cclxuICBcclxuaDU6aG92ZXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzg2YmMyNSAhaW1wb3J0YW50O1xyXG4gICAgY29sb3I6ICNmZmYhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbi5mb3JtLWNvbnRyb2wge1xyXG4gICAgZGlzcGxheTpibG9jaztcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAyLjE4NzVyZW07XHJcbiAgICBwYWRkaW5nOiAwLjM3NXJlbSAxcmVtO1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjUyODU3MTQyOTtcclxuICAgIGNvbG9yOmJsYWNrO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCBncmV5O1xyXG4gICAgYm9yZGVyLXJhZGl1czogMC4yNXJlbTtcclxuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjE1cyBlYXNlLWluLW91dCwgYm94LXNoYWRvdyAwLjE1cyBlYXNlLWluLW91dDtcclxuICAgIH1cclxuXHJcbi5kaXNhYmxlY2hlY2tCb3gge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmF5O1xyXG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcclxufVxyXG5cclxuXHJcbi5mb3JtLWNvbnRyb2wtZGlzYWJsZWQge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMi4xODc1cmVtO1xyXG4gICAgcGFkZGluZzogMC4zNzVyZW0gMXJlbTtcclxuICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICBsaW5lLWhlaWdodDogMS41Mjg1NzE0Mjk7XHJcbiAgICBjb2xvcjogZ3JleTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JheTtcclxuICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XHJcbiAgICBib3JkZXI6IDBweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07XHJcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xNXMgZWFzZS1pbi1vdXQsIGJveC1zaGFkb3cgMC4xNXMgZWFzZS1pbi1vdXQ7XHJcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xyXG4gIH0gICAgXHJcblxyXG4gICAgdGFibGUge1xyXG4gICAgICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XHJcbiAgICAgICAgYm9yZGVyLXNwYWNpbmc6IDA7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjYzhjOGM4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgZm9udC1mYW1pbHk6ICdPcGVuIFNhbnMnLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgICAgICBmb250LXNpemU6IDEzcHg7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE5cHg7XHJcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDFlbTtcclxuICAgICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50O1xyXG4gICAgICB9XHJcbiAgICAgIFxyXG4gICAgICB0aGVhZD50cj50aCwgdGJvZHk+dHI+dGQge1xyXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgcGFkZGluZzogOHB4O1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGVhZD50cj50aCB7XHJcbiAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgICAgICBmb250LXdlaWdodDogNzAwIWltcG9ydGFudDtcclxuICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcclxuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wMWVtO1xyXG4gICAgICAgIGNvbG9yOiAjMzMzIWltcG9ydGFudDtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGJvZHk+dHI+dGQge1xyXG4gICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICAgICAgICBmb250LXdlaWdodDogNDAwO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcclxuICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcclxuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wMWVtO1xyXG4gICAgICAgIC8vd29yZC1icmVhazogYnJlYWstYWxsO1xyXG4gICAgICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjOGM4YzggIWltcG9ydGFudDtcclxuICAgICAgfVxyXG4gICAgICBcclxuICAgICAgdGJvZHk+dHI6bnRoLWNoaWxkKGV2ZW4pe1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY3ZmE7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5hbGlnbm1lbnR7XHJcbiAgICAgICAgd2hpdGUtc3BhY2U6IGJyZWFrLXNwYWNlcyAhaW1wb3J0YW50OyBcclxuICAgICAgICB3aWR0aDogNTAwcHggIWltcG9ydGFudDtcclxuICAgICAgfVxyXG5cclxuICAgICAgZGl2LnNjcm9sbCB7XHJcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XHJcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgICAgfVxyXG5cclxuICAgICAgLmZhLXZje2xpbmUtaGVpZ2h0OiAxLjI7fVxyXG5cclxuICAgICAgICAuZGlzYWJsZXtcclxuICAgICAgICAgIGNvbG9yOiBncmV5O1xyXG4gICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC50ZXh0YXJlYSB7XHJcbiAgICAgICAgICBoZWlnaHQ6IDkwcHg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAudGV4dGJveHNpemUge1xyXG4gICAgICAgICAgaGVpZ2h0OiA2MHB4O1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICAud3JhcHBlciB7XHJcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICBvdmVyZmxvdzogYXV0bztcclxuICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICAgICAgICBtYXJnaW4tdG9wOiAyMTVweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgLnN0aWNreS1jb2wge1xyXG4gICAgICAgICAgcG9zaXRpb246IC13ZWJraXQtc3RpY2t5O1xyXG4gICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY3ZmE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIC5maXJzdC1jb2wge1xyXG4gICAgICAgICAgd2lkdGg6IDhlbTtcclxuICAgICAgICAgIG1pbi13aWR0aDogOGVtO1xyXG4gICAgICAgICAgbWF4LXdpZHRoOiA4ZW07XHJcbiAgICAgICAgICBsZWZ0OiAwcHg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgLnN0aWNreSB7XHJcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgICAgIHRvcDogMTUycHg7XHJcbiAgICAgICAgLy9sZWZ0OiA4OXB4O1xyXG4gICAgICAgIHotaW5kZXg6IDEwO1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICNmNWY3ZmE7XHJcbiAgICAgICAgLy93aWR0aDogOTIlO1xyXG4gICAgICAgXHJcbiAgICAgIH1cclxuICAgICAgLnN0aWNreS0yIHtcclxuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICAgICAgdG9wOiA3MHB4O1xyXG4gICAgICAgIHotaW5kZXg6IDEwO1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICNmNWY3ZmE7XHJcbiAgICAgICAgLy93aWR0aDogOTIlO1xyXG4gICAgICAgXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5zdGlja3ktMyB7XHJcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgICAgIHRvcDogNTVweDtcclxuICAgICAgICB6LWluZGV4OiAxMDtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAjZjVmN2ZhO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAubWFpbi1oZWFkZXItY3NzIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmN2ZhICFpbXBvcnRhbnQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5zdWItaGVhZGVyLWNzcyB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RjZGNmZjtcclxuICAgICAgfVxyXG5cclxuICAgICAgLmNvbGxhcHNlZCB7XHJcbiAgICAgICAgd2lkdGg6IDkyJTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLmV4cGFuZCB7XHJcbiAgICAgICAgd2lkdGg6IDgxJTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLm15LXBhZ2luYXRpb24gOjpuZy1kZWVwIC5uZ3gtcGFnaW5hdGlvbiAuY3VycmVudCB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogIzAwMDtcclxuICAgICAgfVxyXG5cclxuLndhcm5pbmdjb2xvciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNGM0YyAhaW1wb3J0YW50OyBcclxufVxyXG4iLCIuc3R5bGUge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiBzbWFsbDtcbiAgYm9yZGVyOiAycHggc29saWQgaG9uZXlkZXc7XG59XG5cbi5jb2xvciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG59XG5cbmg1OmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzg2YmMyNSAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xufVxuXG4uZm9ybS1jb250cm9sIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDIuMTg3NXJlbTtcbiAgcGFkZGluZzogMC4zNzVyZW0gMXJlbTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS41Mjg1NzE0Mjk7XG4gIGNvbG9yOiBibGFjaztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgYm9yZGVyOiAxcHggc29saWQgZ3JleTtcbiAgYm9yZGVyLXJhZGl1czogMC4yNXJlbTtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMTVzIGVhc2UtaW4tb3V0LCBib3gtc2hhZG93IDAuMTVzIGVhc2UtaW4tb3V0O1xufVxuXG4uZGlzYWJsZWNoZWNrQm94IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmF5O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4uZm9ybS1jb250cm9sLWRpc2FibGVkIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDIuMTg3NXJlbTtcbiAgcGFkZGluZzogMC4zNzVyZW0gMXJlbTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS41Mjg1NzE0Mjk7XG4gIGNvbG9yOiBncmV5O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdyYXk7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gIGJvcmRlcjogMHB4O1xuICBib3JkZXItcmFkaXVzOiAwLjI1cmVtO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xNXMgZWFzZS1pbi1vdXQsIGJveC1zaGFkb3cgMC4xNXMgZWFzZS1pbi1vdXQ7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzhjOGM4ICFpbXBvcnRhbnQ7XG4gIGZvbnQtZmFtaWx5OiBcIk9wZW4gU2Fuc1wiLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQ7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbCAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogNTAwO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGxpbmUtaGVpZ2h0OiAxOXB4O1xuICBsZXR0ZXItc3BhY2luZzogMC4wMWVtO1xuICBjb2xvcjogIzAwMCAhaW1wb3J0YW50O1xufVxuXG50aGVhZCA+IHRyID4gdGgsIHRib2R5ID4gdHIgPiB0ZCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHBhZGRpbmc6IDhweDtcbn1cblxudGhlYWQgPiB0ciA+IHRoIHtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDAgIWltcG9ydGFudDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAxZW07XG4gIGNvbG9yOiAjMzMzICFpbXBvcnRhbnQ7XG59XG5cbnRib2R5ID4gdHIgPiB0ZCB7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDFlbTtcbiAgY29sb3I6ICMwMDAgIWltcG9ydGFudDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjOGM4YzggIWltcG9ydGFudDtcbn1cblxudGJvZHkgPiB0cjpudGgtY2hpbGQoZXZlbikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmN2ZhO1xufVxuXG4uYWxpZ25tZW50IHtcbiAgd2hpdGUtc3BhY2U6IGJyZWFrLXNwYWNlcyAhaW1wb3J0YW50O1xuICB3aWR0aDogNTAwcHggIWltcG9ydGFudDtcbn1cblxuZGl2LnNjcm9sbCB7XG4gIG92ZXJmbG93OiBhdXRvO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uZmEtdmMge1xuICBsaW5lLWhlaWdodDogMS4yO1xufVxuXG4uZGlzYWJsZSB7XG4gIGNvbG9yOiBncmV5O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4udGV4dGFyZWEge1xuICBoZWlnaHQ6IDkwcHg7XG59XG5cbi50ZXh0Ym94c2l6ZSB7XG4gIGhlaWdodDogNjBweDtcbn1cblxuLndyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBhdXRvO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBtYXJnaW4tdG9wOiAyMTVweDtcbn1cblxuLnN0aWNreS1jb2wge1xuICBwb3NpdGlvbjogLXdlYmtpdC1zdGlja3k7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY3ZmE7XG59XG5cbi5maXJzdC1jb2wge1xuICB3aWR0aDogOGVtO1xuICBtaW4td2lkdGg6IDhlbTtcbiAgbWF4LXdpZHRoOiA4ZW07XG4gIGxlZnQ6IDBweDtcbn1cblxuLnN0aWNreSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAxNTJweDtcbiAgei1pbmRleDogMTA7XG4gIGJhY2tncm91bmQ6ICNmNWY3ZmE7XG59XG5cbi5zdGlja3ktMiB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiA3MHB4O1xuICB6LWluZGV4OiAxMDtcbiAgYmFja2dyb3VuZDogI2Y1ZjdmYTtcbn1cblxuLnN0aWNreS0zIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDU1cHg7XG4gIHotaW5kZXg6IDEwO1xuICBiYWNrZ3JvdW5kOiAjZjVmN2ZhO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLm1haW4taGVhZGVyLWNzcyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY3ZmEgIWltcG9ydGFudDtcbn1cblxuLnN1Yi1oZWFkZXItY3NzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RjZGNmZjtcbn1cblxuLmNvbGxhcHNlZCB7XG4gIHdpZHRoOiA5MiU7XG59XG5cbi5leHBhbmQge1xuICB3aWR0aDogODElO1xufVxuXG4ubXktcGFnaW5hdGlvbiA6Om5nLWRlZXAgLm5neC1wYWdpbmF0aW9uIC5jdXJyZW50IHtcbiAgYmFja2dyb3VuZDogIzAwMDtcbn1cblxuLndhcm5pbmdjb2xvciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjRjNGMgIWltcG9ydGFudDtcbn0iXX0= */\";","import { Component, OnInit } from \"@angular/core\";\r\nimport {\r\n FormBuilder,\r\n FormControl,\r\n FormGroup,\r\n Validators,\r\n} from \"@angular/forms\";\r\nimport { Router } from \"@angular/router\";\r\nimport { first } from \"rxjs/operators\";\r\nimport { CredentialsService } from \"src/app/core/services/credentials.service\";\r\nimport { HttpGenericService } from \"src/app/core/services/http-genric.service\";\r\nimport { CommonserviceService } from \"src/app/shared/commonservices/commonservice.service\";\r\nimport { API } from \"src/app/shared/constants/api.constants\";\r\nimport { ValidationMessage } from \"src/app/shared/constants/validations.constants\";\r\nconst swal = require(\"sweetalert\");\r\nimport FileSaver from \"file-saver\";\r\nimport * as globleConsts from \"../../../../shared/constants/globle.constants\";\r\nimport { Location } from \"@angular/common\";\r\nimport { GetRoleList } from \"src/app/modules/permission-management/models/getRoles\";\r\nimport { DownloadFileService } from \"src/app/core/services/download-file.service\";\r\nimport { SettingsService } from \"src/app/core/settings/settings.service\";\r\nimport Swal from 'sweetalert2';\r\nimport { reportFileUpload } from \"../../model/fileupload\";\r\nimport { SubCategory, SubCategoryDetails } from \"../../model/assignweightage\";\r\nvar Crypto = require(\"crypto-js\");\r\n\r\n\r\n@Component({\r\n selector: \"app-assessmentreview\",\r\n templateUrl: \"./assessmentreview.component.html\",\r\n styleUrls: [\"./assessmentreview.component.scss\"],\r\n})\r\nexport class AssessmentreviewComponent implements OnInit {\r\n risk = 'IR';\r\n IR: boolean = true;\r\n CE: boolean = false;\r\n entity: any;\r\n entityrowdata: any;\r\n isEntityEdit: boolean;\r\n api = API;\r\n bulist: any[] = [];\r\n selectedBU;\r\n riskCategoryid: number;\r\n irceList: any;\r\n selectedSubCategory;\r\n subcategorydetails: any;\r\n selectedriskattribute;\r\n riskattribute: any;\r\n RiskType: any;\r\n cols: { field: string; header: string }[];\r\n selectedriskclassification;\r\n selectedOffer;\r\n mode: any;\r\n attributevalue: number;\r\n required = ValidationMessage.required;\r\n max_value = ValidationMessage.max_value;\r\n noWhiteSpace = ValidationMessage.noWhiteSpace;\r\n assessmentReviewdisplayModal: boolean;\r\n assessmentReviewdisplayModalforCE: boolean;\r\n isComment: boolean = false;\r\n commentdisplayModal: boolean;\r\n tempdata: any;\r\n Riskclassification: any;\r\n QuestionOptions: any;\r\n p: number = 1;\r\n fileuploadModal: boolean;\r\n fileRequired: boolean;\r\n test: any[];\r\n button: boolean;\r\n fileCounter: number;\r\n UploadErrorMessage: string;\r\n file: any;\r\n fileextension: any;\r\n value: number = 0;\r\n infoPopUpModel: boolean;\r\n inforData: any;\r\n EntityData: any;\r\n date3: Date;\r\n currentDate = new Date();\r\n minDate: Date;\r\n maxDate: Date;\r\n uploadingfile: any;\r\n pageIndex: number = 1;\r\n userData: any;\r\n s3FileName: string = \"\";\r\n fileBase64: string = \"\";\r\n regulatoryGuideList: any;\r\n regulatoryGuidelineId: any;\r\n regulatoryGuideline: any;\r\n isIndustryPractice: boolean;\r\n // uploadingfile: UploadingFile = new UploadingFile();\r\n entitymanagementPermissionMode: any;\r\n permissionType = globleConsts.PermissionTypeEnum;\r\n editMode: boolean;\r\n viewMode: boolean;\r\n deleteMode: boolean;\r\n maintab: string;\r\n currentUser: any;\r\n roleEntity: GetRoleList = {};\r\n permission = [];\r\n entitylist: any;\r\n selectedEntity;\r\n entityid: number;\r\n reportmodel: boolean = false;\r\n isvalidatebutton: boolean = false;\r\n isgeneratebutton: boolean = false;\r\n isUploadDownloadbutton: boolean = false;\r\n validationrequired: boolean = false;\r\n isreport: boolean = false;\r\n headerEntity: any;\r\n AssessmentStatusBUId: any;\r\n AssessmentStatusBUName: any;\r\n AssessmentStatusEntityId: any;\r\n businessUnitId: any;\r\n AssessmentStatusEntityName: string;\r\n EntityDataAssessment: any;\r\n isAdmin: boolean;\r\n assessmentCycles: any;\r\n selectedAssessmentCycle: any;\r\n assessmentCycle: any;\r\n ASAssessmentCycle: any;\r\n assessmentcyclevalue: any;\r\n panelcss: boolean;\r\n userId: any;\r\n total: number = 0;\r\n table_no: string;\r\n RiskType1: any;\r\n previousData: any = null;\r\n first: number;\r\n rows: number;\r\n isSubmitted: boolean = false;\r\n IDs: any = null;\r\n isdashboardbutton: boolean;\r\n isdashboard: boolean;\r\n entityName: any;\r\n dataNA: boolean = false;\r\n totalNoOfCustomers: any = null;\r\n totalNovalueOfTransactionsPer: any = null;\r\n totalvolumeOfTransactionsPer;any = null;\r\n totalvalues: any;\r\n files: any = {};\r\n isEditTemplate: boolean;\r\n filBase64: any;\r\n oldtemplateName: any;\r\n templateCategory: string;\r\n filetooltip: any;\r\n showPopup = false;\r\n RCsum: number = 0;\r\n subcategory: boolean = false;\r\n Customersum: number = 0;\r\n Productsum: number = 0;\r\n Transactionsum: number = 0;\r\n Geographysum: number = 0;\r\n Channelssum: number = 0;\r\n QFsum: number = 0;\r\n riskSubCategoryWeightageAssignEntity: SubCategory[] = [];\r\n riskSubCategoryDetailsWeightageAsignEntity: SubCategoryDetails[] = [];\r\n CustomersData: any;\r\n ProductsData: any;\r\n TransactionsData: any;\r\n GeographyData: any;\r\n ChannelsData: any;\r\n OtherQualitativeFactorsData: any;\r\n WeitagePopup:boolean = true;\r\n // @ViewChild(\"dt\", { static: false }) table: Table;\r\n // pageIndex: number = 1;\r\n\r\n constructor(\r\n private fb: FormBuilder,\r\n private route: Router,\r\n private httpGenericService: HttpGenericService,\r\n private credentialsService: CredentialsService,\r\n private commonserviceService: CommonserviceService,\r\n private _location: Location,\r\n private downloadfile: DownloadFileService,\r\n private settingsService: SettingsService\r\n ) {\r\n this.userData = this.credentialsService.credentials;\r\n }\r\n\r\n async ngOnInit(): Promise { \r\n this.settingsService.getpanelValue.subscribe((value) => {\r\n this.panelcss = value;\r\n });\r\n this.currentUser = this.credentialsService.credentials;\r\n this.roleEntity.name = this.credentialsService.credentials.assignedRole;\r\n this.roleEntity.id = this.credentialsService.credentials.roleId;\r\n debugger\r\n this.entityName = JSON.parse(localStorage.getItem(\"setEntityName\"));\r\n this.maintab = localStorage.getItem(\"maintab\");\r\n if (this.maintab == \"false\") {\r\n await this.commonserviceService.permissioncheck(\r\n this.userData,\r\n this.roleEntity\r\n );\r\n } \r\n this.userId = this.credentialsService.credentials.userId;\r\n if (\r\n \r\n this.roleEntity.id == \"9de2097a-2414-4e9d-8b7b-78cbbbc94863\" ||\r\n this.roleEntity.id == \"d7b8db81-5256-4037-a96b-bec61d028b4a\"\r\n ) {\r\n this.isUploadDownloadbutton= true;\r\n };\r\n if (\r\n this.roleEntity.id == \"9de2097a-2414-4e9d-8b7b-78cbbbc94863\" ||\r\n this.roleEntity.id == \"7ea9791f-6aeb-4ca8-be5b-db459f49e489\" ||\r\n this.roleEntity.id == \"d7b8db81-5256-4037-a96b-bec61d028b4a\"\r\n ) {\r\n this.isgeneratebutton = true;\r\n this.isdashboardbutton = true;\r\n }\r\n this.maintab = localStorage.getItem(\"maintab\");\r\n if (this.maintab == \"false\") {\r\n await this.commonserviceService.permissioncheck(\r\n this.currentUser,\r\n this.roleEntity\r\n );\r\n this.permission = this.credentialsService.getPermissionDetails();\r\n if (this.permission != undefined) {\r\n this.entitymanagementPermissionMode = this.permission.find(\r\n (s) => s.permissionName === globleConsts.PermissionsEnum.Assessment\r\n ).permissionTypeName;\r\n }\r\n this.entitymanagementPermissionMode = this.entitymanagementPermissionMode.split(\r\n \",\"\r\n );\r\n await this.getEntityList();\r\n\r\n }\r\n else if (this.maintab == \"AssessmentStatus\") {\r\n this.AssessmentStatusEntityId = localStorage.getItem(\"ASEntityId\");\r\n let cleanedStr: string = this.AssessmentStatusEntityId.replace(/\"/g, '');\r\n this.AssessmentStatusEntityId=Number(cleanedStr);\r\n this.entityid=this.AssessmentStatusEntityId;\r\n this.entitymanagementPermissionMode = JSON.parse(\r\n localStorage.getItem(\"ASSESSMENTSTATUSPERMISSIONS\")\r\n );\r\n await this.getEntitydetails();\r\n this.ASAssessmentCycle = JSON.parse(\r\n localStorage.getItem(\"ASAssessmentCycle\")\r\n );\r\n this.getBUList();\r\n }\r\n else {\r\n this.entitymanagementPermissionMode = JSON.parse(\r\n localStorage.getItem(\"ENTITYPERMISSIONS\")\r\n );\r\n this.entity = JSON.parse(localStorage.getItem(\"setEntityId\"));\r\n await this.getEntitydetails(); \r\n await this.getAssessmentCycles(); \r\n }\r\n\r\n if (\r\n this.roleEntity.id == \"9de2097a-2414-4e9d-8b7b-78cbbbc94863\" &&\r\n (this.EntityData.bmvalidationRequired ||\r\n this.EntityData.dmvalidationRequired)\r\n ) {\r\n this.isvalidatebutton = true;\r\n } else if (\r\n (this.roleEntity.id == \"7ea9791f-6aeb-4ca8-be5b-db459f49e489\" &&\r\n this.EntityData.bmvalidationRequired) ||\r\n (this.roleEntity.id == \"d7b8db81-5256-4037-a96b-bec61d028b4a\" &&\r\n this.EntityData.dmvalidationRequired)\r\n ) {\r\n this.isvalidatebutton = true;\r\n }\r\n this.entitymanagementPermissionMode.forEach((element) => {\r\n if (element === this.permissionType.NoAccess) {\r\n this._location.back();\r\n } else if (element == this.permissionType.Edit) {\r\n this.editMode = true;\r\n } else if (element == this.permissionType.View) {\r\n this.viewMode = true;\r\n } else if (element == this.permissionType.Delete) {\r\n this.deleteMode = true;\r\n }\r\n });\r\n debugger\r\n this.AssessmentStatusEntityId = localStorage.getItem(\"ASEntityId\");\r\n let cleanedStr: string = this.AssessmentStatusEntityId.replace(/\"/g, '');\r\n this.AssessmentStatusEntityId=Number(cleanedStr);\r\n this.entityid=this.AssessmentStatusEntityId;\r\n await this.getregulatoryGuideline(this.entity.id);\r\n\r\n //this.getEntityList();\r\n }\r\n\r\n assessmentforIR = new FormGroup({\r\n mapQuestionnaireId: new FormControl(null),\r\n index: new FormControl(null),\r\n riskClassification: new FormControl(\"\", [Validators.required]),\r\n offering: new FormControl(\"\", [Validators.required]),\r\n noOfCustomers: new FormControl(null, [\r\n Validators.required,\r\n this.commonserviceService.noWhitespaceValidator,\r\n Validators.max(100),\r\n ]),\r\n volumeOfTransactions: new FormControl(null, [\r\n Validators.required,\r\n this.commonserviceService.noWhitespaceValidator,\r\n Validators.max(100),\r\n ]),\r\n valueOfTransactions: new FormControl(null, [\r\n Validators.required,\r\n this.commonserviceService.noWhitespaceValidator,\r\n Validators.max(100),\r\n ]),\r\n dataNotAvailable: new FormControl(\"\"),\r\n SubCategory: new FormControl(null),\r\n SubCategoryDetails: new FormControl(null),\r\n });\r\n\r\n assessmentforCE = new FormGroup({\r\n mapQuestionnaireId: new FormControl(null),\r\n index: new FormControl(null),\r\n existenceResponse: new FormControl(\"\", [Validators.required]),\r\n controlExistenceExplanation: new FormControl(\"\", [\r\n Validators.required,\r\n this.commonserviceService.noWhitespaceValidator,\r\n ]),\r\n controlExistenceDocReference: new FormControl(\"\", [\r\n Validators.required,\r\n this.commonserviceService.noWhitespaceValidator,\r\n ]),\r\n effectivenessResponse: new FormControl(\"\", [Validators.required]),\r\n controlEffectivenessExplanation: new FormControl(\"\", [\r\n Validators.required,\r\n this.commonserviceService.noWhitespaceValidator,\r\n ]),\r\n inherentRisk: new FormControl(null),\r\n residualRisk: new FormControl(null),\r\n riskTreatmentActions: new FormControl(\"\", [\r\n Validators.required,\r\n this.commonserviceService.noWhitespaceValidator,\r\n ]),\r\n pic: new FormControl(\"\", [\r\n Validators.required,\r\n this.commonserviceService.noWhitespaceValidator,\r\n ]),\r\n implementationDueDate: new FormControl(\"\", [Validators.required]),\r\n });\r\n\r\n addcommentforCE = new FormGroup({\r\n mapQuestionnaireId: new FormControl(null),\r\n index: new FormControl(null),\r\n comment: new FormControl(\"\", [Validators.required]),\r\n });\r\n\r\n setIR() {\r\n this.irceList = null;\r\n this.selectedBU = null;\r\n this.subcategorydetails = null;\r\n this.riskattribute = null;\r\n this.RiskType = null;\r\n this.IR = true;\r\n this.CE = false;\r\n if (this.maintab == \"false\") {\r\n this.selectedEntity = null;\r\n this.bulist = null;\r\n this.getAssessmentCycles();\r\n } else if (this.maintab == \"AssessmentStatus\") {\r\n this.getBUList();\r\n } else {\r\n this.getAssessmentCycles();\r\n }\r\n }\r\n\r\n setCE() {\r\n this.irceList = null;\r\n this.selectedBU = null;\r\n this.subcategorydetails = null;\r\n this.riskattribute = null;\r\n this.RiskType = null;\r\n this.IR = false;\r\n this.CE = true;\r\n if (this.maintab == \"false\") {\r\n this.selectedEntity = null;\r\n this.bulist = null;\r\n this.getAssessmentCycles();\r\n } else if (this.maintab == \"AssessmentStatus\") {\r\n this.getBUList();\r\n } else {\r\n this.getAssessmentCycles();\r\n }\r\n }\r\n\r\n getAssessmentCycles() {\r\n return new Promise((resolve, reject) => {\r\n if (this.maintab == \"AssessmentStatus\") {\r\n this.entityid = this.AssessmentStatusEntityId;\r\n\r\n } else {\r\n if (this.selectedEntity !== undefined) {\r\n this.entityid = +this.selectedEntity.entityDetailsId;\r\n } else {\r\n this.entityid = +this.entity.id;\r\n }\r\n }\r\n \r\n this.httpGenericService\r\n .fetchAll(`${this.api.BusinessUnits.getAssessmentCycles}?entityDetailsID=${this.entityid}`)\r\n .pipe(first())\r\n .subscribe((res) => {\r\n this.assessmentCycles = res[\"Result\"];\r\n resolve(true);\r\n });\r\n });\r\n }\r\n\r\n getEntityList() {\r\n return new Promise((resolve, reject) => {\r\n this.httpGenericService\r\n .fetchAll(\r\n `${this.api.entityDetails.getEntityDetailsByuserId}?userId=${this.userId}`\r\n )\r\n .pipe(first())\r\n .subscribe((res) => {\r\n let response: any = res[\"Result\"];\r\n this.entitylist = response;\r\n resolve(true);\r\n });\r\n });\r\n }\r\n\r\n async getBUList() {\r\n this.selectedBU = null;\r\n this.selectedSubCategory = null;\r\n this.subcategorydetails = null;\r\n this.RiskType = null;\r\n this.RiskType1 = null;\r\n this.riskattribute = null;\r\n await this.getEntityAssessmentStatus();\r\n\r\n if (this.EntityDataAssessment !== undefined) {\r\n if (\r\n this.EntityDataAssessment.bmvalidationDone != null &&\r\n this.EntityDataAssessment.dmvalidationDone != null &&\r\n this.EntityDataAssessment.bmvalidationDone != \"\" &&\r\n this.EntityDataAssessment.dmvalidationDone != \"\"\r\n ) {\r\n this.validationrequired = true;\r\n this.isdashboard = true;\r\n \r\n if (this.EntityDataAssessment.dashboardGenerated)\r\n this.isreport = true;\r\n \r\n }\r\n if (this.EntityDataAssessment.assessmentSubmitted) {\r\n if (\r\n this.isvalidatebutton &&\r\n (this.roleEntity.id == \"9de2097a-2414-4e9d-8b7b-78cbbbc94863\" ||\r\n this.roleEntity.id == \"7ea9791f-6aeb-4ca8-be5b-db459f49e489\")\r\n )\r\n this.validationrequired = true;\r\n else if (\r\n this.isvalidatebutton &&\r\n this.EntityDataAssessment.bmvalidationDone != \"\" &&\r\n this.roleEntity.id == \"d7b8db81-5256-4037-a96b-bec61d028b4a\"\r\n )\r\n this.validationrequired = true;\r\n }\r\n }\r\n\r\n if (this.maintab == \"AssessmentStatus\") {\r\n this.entityid = this.AssessmentStatusEntityId;\r\n this.assessmentcyclevalue = this.ASAssessmentCycle;\r\n } else {\r\n if (this.selectedEntity !== undefined) {\r\n this.irceList = null;\r\n this.selectedSubCategory = null;\r\n this.subcategorydetails = null;\r\n this.RiskType = null;\r\n this.riskattribute = null;\r\n this.entityid = +this.selectedEntity.entityDetailsId;\r\n } else {\r\n this.entityid = +this.entity.id;\r\n }\r\n this.assessmentcyclevalue = this.selectedAssessmentCycle.value.toString();\r\n }\r\n this.httpGenericService\r\n .fetchAll(\r\n `${this.api.weightages.getAllEntityBusinessUnitsWeightage}?EntityId=${this.entityid}&assessmentCycle=${this.assessmentcyclevalue}`\r\n )\r\n .pipe(first())\r\n .subscribe((res) => {\r\n let response: any = res[\"Result\"];\r\n this.bulist = response || [];\r\n console.log(\"Initial bulist:\", this.bulist);\r\n \r\n if (this.roleEntity.id === \"600322f0-f8c3-458a-a300-8661ece3bea5\") {\r\n const result = this.bulist.filter((element1) =>\r\n this.currentUser.businessId.includes(element1.businessUnitId)\r\n );\r\n this.bulist = result.length > 0 ? result : this.bulist;\r\n }\r\n \r\n if (this.isSubmitted && this.IDs?.[0]?.businessUnitId) {\r\n this.selectedBU = this.bulist.find(\r\n (x) => x.businessUnitId === this.IDs[0].businessUnitId\r\n ) || null;\r\n }\r\n \r\n console.log(\"Filtered bulist:\", this.bulist);\r\n console.log(\"Selected BU:\", this.selectedBU);\r\n \r\n this.getSubcategory();\r\n });\r\n \r\n }\r\n\r\n getSubcategory() {\r\n this.selectedSubCategory = null;\r\n this.subcategorydetails = null;\r\n this.RiskType = null;\r\n this.RiskType1 = null;\r\n this.riskattribute = null;\r\n if (this.IR == true) {\r\n this.riskCategoryid = 1;\r\n }\r\n if (this.CE == true) {\r\n this.riskCategoryid = 2;\r\n }\r\n this.getRiskclassification(this.riskCategoryid);\r\n this.httpGenericService\r\n .fetchAll(\r\n `${this.api.entityAssessmentReview.getAllRiskSubCategories}?entityDetailsId=${this.entityid}&businessUnitId=${this.selectedBU.businessUnitId}\r\n&riskCategoryId=${this.riskCategoryid}&assessmentStartDate=${this.assessmentcyclevalue}`\r\n )\r\n .pipe(first())\r\n .subscribe((res) => {\r\n let response: any = res[\"Result\"];\r\n this.irceList = response;\r\n if (this.isSubmitted) {\r\n let selectedSubCategory:any = null;\r\n this.irceList.forEach(element1 => {\r\n this.IDs.forEach(element2 => {\r\n if (element1.riskSubCategoryId == element2.riskSubCategoryId && selectedSubCategory == null) {\r\n selectedSubCategory = element1;\r\n return;\r\n }\r\n });\r\n });\r\n this.selectedSubCategory = selectedSubCategory;\r\n //this.selectedSubCategory = this.irceList.filter(x => x.riskSubCategoryId == this.IDs[0].riskSubCategoryId)[0];\r\n }\r\n this.getSubcategorydetails();\r\n });\r\n }\r\n\r\n confirmCheckboxChange() {\r\n const isChecked = this.assessmentforIR.value.dataNotAvailable;\r\n let confirmationText, confirmButtonText, showCancelButton;\r\n \r\n if (!isChecked) {\r\n confirmationText = \"Are you sure you want to deselect 'data not available' option?\";\r\n confirmButtonText = \"Yes\";\r\n showCancelButton = true;\r\n } else {\r\n confirmationText = \"Are you sure that you want to select 'data not available' option?\";\r\n confirmButtonText = \"Yes\";\r\n showCancelButton = false;\r\n }\r\n \r\n Swal.fire({\r\n icon: \"warning\",\r\n text: confirmationText,\r\n showCancelButton: showCancelButton,\r\n showConfirmButton: true,\r\n confirmButtonText: confirmButtonText,\r\n cancelButtonText: \"Cancel\",\r\n cancelButtonColor: \"#dc3545\",\r\n confirmButtonColor: \"#007bff\",\r\n }).then((result) => {\r\n if (result.isConfirmed) {\r\n // Handle confirmation logic here\r\n if (!isChecked) {\r\n // Checkbox is unchecked, so check it\r\n this.assessmentforIR.value.dataNotAvailable = false;\r\n } else {\r\n // Checkbox is checked, so uncheck it\r\n this.assessmentforIR.value.dataNotAvailable = true;\r\n }\r\n // Additionally, you may want to reset the form or perform other actions\r\n this.resetform();\r\n } else {\r\n // Handle cancellation logic here\r\n if (!isChecked) {\r\n // If attempting to deselect and canceled, keep it checked\r\n this.assessmentforIR.value.dataNotAvailable = true;\r\n }\r\n }\r\n });\r\n }\r\n \r\n getSubcategorydetails() {\r\n let id = +this.selectedSubCategory.riskSubCategoryId;\r\n this.httpGenericService\r\n .fetchAll(\r\n `${this.api.entityAssessmentReview.getAllRiskSubCategoryDetailsBySubCatergory}?riskSubCategoryId=${id}&entityDetailsId=${this.entityid}&businessUnitId=${this.selectedBU.businessUnitId}\r\n&riskCategoryId=${this.riskCategoryid}&assessmentStartDate=${this.assessmentcyclevalue}`\r\n )\r\n .pipe(first())\r\n .subscribe((res) => {\r\n let response: any = res[\"Result\"];\r\n this.subcategorydetails = response;\r\n let item = this.subcategorydetails[0];\r\n if (this.isSubmitted) {\r\n item = null;\r\n this.subcategorydetails.forEach(element1 => {\r\n element1.warningDetails = false;\r\n this.IDs.forEach(element2 => {\r\n if(element1.riskSubCategoryDetailsId == element2.riskSubCategoryDetailsId) {\r\n element1.warningDetails = true;\r\n if (item == null) {\r\n item = element1;\r\n }\r\n return;\r\n }\r\n });\r\n });\r\n if (item == null) {\r\n item = this.subcategorydetails[0];\r\n }\r\n }\r\n this.getRiskAttribute(item, true);\r\n });\r\n }\r\n\r\n getRiskAttribute(item, isbool) {\r\n this.totalNoOfCustomers = 0;\r\n this.totalNovalueOfTransactionsPer = 0;\r\n this.totalvolumeOfTransactionsPer = 0;\r\n this.p = isbool ? 1 : this.p;\r\n this.first = isbool ? 0 : this.first;\r\n this.rows = isbool ? 10 : this.rows;\r\n this.assessmentforIR.reset();\r\n this.addcommentforCE.reset();\r\n this.tempdata = item;\r\n this.attributevalue = +item.riskSubCategoryDetailsId;\r\n this.RiskType = null;\r\n if (this.maintab == \"AssessmentStatus\") {\r\n this.entityid = +this.AssessmentStatusEntityId;\r\n this.assessmentcyclevalue = this.ASAssessmentCycle;\r\n } else {\r\n if (this.selectedEntity !== undefined) {\r\n this.entityid = +this.selectedEntity.entityDetailsId;\r\n } else {\r\n this.entityid = +this.entity.id;\r\n }\r\n this.assessmentcyclevalue = this.selectedAssessmentCycle.value.toString();\r\n }\r\n this.businessUnitId = +this.selectedBU.businessUnitId;\r\n\r\n let riskCategoryId = +this.selectedSubCategory.riskCategoryId;\r\n let riskubCategoryId = +this.selectedSubCategory.riskSubCategoryId;\r\n let riskSubCategoryDetailsId = +item.riskSubCategoryDetailsId;\r\n\r\n this.httpGenericService\r\n .fetchAll(\r\n `${this.api.entityAssessmentReview.getEntityAssessmentReview}?entityDetailsId=${this.entityid}&businessUnitId=${this.businessUnitId}&riskCategoryId=${riskCategoryId}&riskubCategoryId=${riskubCategoryId}&riskSubCategoryDetailsId=${riskSubCategoryDetailsId}&assessmentCycle=${this.assessmentcyclevalue}`\r\n )\r\n .pipe(first())\r\n .subscribe((res) => {\r\n let response: any = res[\"Result\"];\r\n\r\n this.totalvalues = response.map((x: any) => {\r\n this.totalNoOfCustomers += parseFloat(x.noOfCustomersPer)\r\n ? parseFloat(x.noOfCustomersPer)\r\n : 0;\r\n this.totalNovalueOfTransactionsPer += parseFloat(x.valueOfTransactionsPer)\r\n ? parseFloat(x.valueOfTransactionsPer)\r\n : 0;\r\n this.totalvolumeOfTransactionsPer += parseFloat(x.volumeOfTransactionsPer)\r\n ? parseFloat(x.volumeOfTransactionsPer)\r\n : 0;\r\n });\r\n this.totalNoOfCustomers = parseFloat(this.totalNoOfCustomers.toFixed(2));\r\n this.totalNovalueOfTransactionsPer = parseFloat(this.totalNovalueOfTransactionsPer.toFixed(2));\r\n this.totalvolumeOfTransactionsPer = parseFloat(this.totalvolumeOfTransactionsPer.toFixed(2)); \r\n response.forEach((element) => {\r\n element.offer = this.getoffervalue(element.offering);\r\n this.dataNA = element.dataNotAvailable;\r\n element.BGforIR = this.css(element.riskClassificationAggr);\r\n element.BGforCE = this.css(element.mitigatingFactorRating);\r\n let rc = this.getStaticData(element.riskClassificationId);\r\n if (rc != undefined) {\r\n element.RC = rc.riskParameter;\r\n }\r\n let existrepo = this.getStaticData(\r\n element.controlExistenceResponseId\r\n );\r\n if (existrepo != undefined) {\r\n element.ExistenceResponse = existrepo.riskParameter;\r\n }\r\n let efferepo = this.getStaticData(\r\n element.controlEffectivenessResponseId\r\n );\r\n if (efferepo != undefined) {\r\n element.EffectivenessResponse = efferepo.riskParameter;\r\n }\r\n });\r\n this.riskattribute = response;\r\n if (this.riskCategoryid == 1) {\r\n this.dynamictableforIR(this.riskattribute);\r\n // this.pageIndex = isbool ? 1 : this.pageIndex;\r\n // this.setCurrentPage(this.pageIndex);\r\n }\r\n });\r\n }\r\n\r\n getregulatoryGuideline(entityId: number) {\r\n return new Promise((resolve, reject) => {\r\n this.httpGenericService\r\n .fetchAll(`${this.api.entityDetails.GetRegulatoryGuidelinesByEntityId}?entityId=${entityId}`)\r\n .pipe(first())\r\n .subscribe(\r\n (res) => {\r\n if (res && res[\"Result\"]) {\r\n this.regulatoryGuideList = res[\"Result\"];\r\n this.regulatoryGuideList.forEach(item => {\r\n if (item && item.regulatoryGuidelinesId) {\r\n this.regulatoryGuidelineId = item.regulatoryGuidelinesId;\r\n }\r\n });\r\n resolve(this.regulatoryGuideList);\r\n } else {\r\n reject('No results found for regulatory guidelines.');\r\n }\r\n },\r\n (error) => {\r\n console.error('Error fetching regulatory guidelines:', error);\r\n reject(error);\r\n }\r\n );\r\n });\r\n }\r\n \r\n dynamictableforIR(data: any) {\r\n this.RiskType = data.reduce((r, { riskType }) => {\r\n if (!r.some((o) => o.riskType == riskType)) {\r\n r.push({\r\n riskType,\r\n groupItem: data.filter((v) => v.riskType == riskType),\r\n });\r\n }\r\n return r;\r\n }, []);\r\n if (this.previousData == null) {\r\n this.selectedTable(this.RiskType[0], false);\r\n } else {\r\n this.selectedTable(this.previousData, false);\r\n }\r\n this.previousData = null;\r\n }\r\n\r\n getRiskclassification(id) {\r\n return new Promise((resolve, reject) => {\r\n this.httpGenericService\r\n .fetchAll(\r\n `${this.api.entityAssessmentReview.getRiskClassifications}?riskCategoryId=${id}`\r\n )\r\n .pipe(first())\r\n .subscribe((res) => {\r\n let response: any = res[\"Result\"];\r\n this.Riskclassification = response;\r\n resolve(true);\r\n });\r\n });\r\n }\r\n\r\n getEntitydetails() {\r\n return new Promise((resolve, reject) => {\r\n if (this.maintab == \"AssessmentStatus\") {\r\n } else {\r\n if (this.selectedEntity !== undefined) {\r\n this.entityid = +this.selectedEntity.entityDetailsId;\r\n } else {\r\n this.entityid = +this.entity.id;\r\n }\r\n }\r\n this.httpGenericService\r\n .fetchAll(\r\n `${this.api.entityDetails.getEntityDetailsById}?entityId=${this.entityid}`\r\n )\r\n .pipe(first())\r\n .subscribe((res) => {\r\n let response: any = res[\"Result\"];\r\n this.EntityData = response;\r\n resolve(true);\r\n });\r\n });\r\n }\r\n\r\n getEntityAssessmentStatus() {\r\n return new Promise((resolve, reject) => {\r\n this.validationrequired = false;\r\n this.isreport = false;\r\n this.isdashboard = false;\r\n if (this.maintab == \"AssessmentStatus\") { \r\n this.assessmentcyclevalue = this.ASAssessmentCycle;\r\n } else {\r\n if (this.selectedEntity !== undefined) {\r\n this.entityid = +this.selectedEntity.entityDetailsId;\r\n } else {\r\n this.entityid = +this.entity.id;\r\n }\r\n this.assessmentcyclevalue = this.selectedAssessmentCycle.value.toString();\r\n }\r\n this.httpGenericService\r\n .fetchAll(\r\n `${this.api.entityAssessmentReview.getEntityAssessmentStatus}?entityDetailsId=${this.entityid}&assessmentCycle=${this.assessmentcyclevalue}`\r\n )\r\n .pipe(first())\r\n .subscribe((res) => {\r\n let response: any = res[\"Result\"];\r\n this.EntityDataAssessment = response;\r\n resolve(true);\r\n });\r\n });\r\n }\r\n\r\n css (value: any) {\r\n if (this.IR == true) {\r\n if (value == 'High') {\r\n return 'red';\r\n }\r\n else if (value == 'Medium') {\r\n return 'yellow';\r\n }\r\n else if (value == 'Low') {\r\n return 'green';\r\n }\r\n else if (value == 'High trending Medium') {\r\n return '#FFC000';\r\n }\r\n else if (value == 'Medium trending Low') {\r\n return '#92D050';\r\n }\r\n\r\n\r\n \r\n }\r\n else if (this.CE == true) {\r\n if (value == 'Deficient') {\r\n return 'black';\r\n }\r\n else if (value == 'Needs Improvement') {\r\n return 'red';\r\n }\r\n else if (value == 'Strong') {\r\n return 'green';\r\n }\r\n else if (value == 'Satisfactory') {\r\n return 'yellow';\r\n }\r\n }\r\n }\r\n\r\n getStaticData(item: number) {\r\n let temp = this.Riskclassification.filter(\r\n (x) => x.riskClassificationScoreThresholdId == item\r\n );\r\n return temp[0];\r\n }\r\n\r\n getoffervalue(offer: boolean) {\r\n if (offer == true) {\r\n return \"Yes\";\r\n } else if (offer == false) {\r\n return \"No\";\r\n }\r\n }\r\n\r\n offering = [\r\n { id: 1, name: \"Yes\" },\r\n { id: 2, name: \"No\" },\r\n ];\r\n\r\n onRowEdit(data) {\r\n this.assessmentforIR.reset();\r\n this.assessmentReviewdisplayModal = true;\r\n this.assessmentforIR.controls[\"mapQuestionnaireId\"].setValue(\r\n data.mapQuestionnaireId\r\n );\r\n let rc: any = this.Riskclassification.filter(\r\n (x) => x.riskClassificationScoreThresholdId === data.riskClassificationId\r\n );\r\n this.assessmentforIR.controls[\"riskClassification\"].setValue(rc[0]);\r\n let offer: any = this.offering.filter((x) => x.name === data.offer);\r\n this.assessmentforIR.controls[\"offering\"].setValue(offer[0]);\r\n this.assessmentforIR.controls[\"noOfCustomers\"].setValue(\r\n data.noOfCustomersPer\r\n );\r\n this.assessmentforIR.controls[\"volumeOfTransactions\"].setValue(\r\n data.volumeOfTransactionsPer\r\n );\r\n this.assessmentforIR.controls[\"valueOfTransactions\"].setValue(\r\n data.valueOfTransactionsPer\r\n );\r\n this.assessmentforIR.controls[\"dataNotAvailable\"].setValue(\r\n data.dataNotAvailable);\r\n this.assessmentforIR.controls[\"SubCategory\"].setValue(\r\n this.selectedSubCategory.riskSubCategoryId\r\n );\r\n this.assessmentforIR.controls[\"SubCategoryDetails\"].setValue(\r\n data.riskSubCategoryDetailsId\r\n );\r\n }\r\n\r\n async onRowEditforCE(data) {\r\n let id = 2;\r\n this.isIndustryPractice = false;\r\n await this.getRiskclassification(id);\r\n this.assessmentforCE.reset();\r\n this.assessmentReviewdisplayModalforCE = true;\r\n debugger\r\n if (this.entity != undefined) {\r\n this.regulatoryGuideline= await this.getregulatoryGuideline(this.entity.id);\r\n\r\n }else if(Number(localStorage.getItem(\"EntityId\")) != 0){\r\n let EntityId = Number(localStorage.getItem(\"EntityId\"));\r\n this.regulatoryGuideline= await this.getregulatoryGuideline(EntityId);\r\n\r\n }else{\r\n let EntityId = Number(localStorage.getItem(\"ASEntityId\"));\r\n this.regulatoryGuideline= await this.getregulatoryGuideline(EntityId);\r\n }\r\n\r\n const matchingGuideline = this.regulatoryGuideline.find(\r\n (guideline) => guideline.regulatoryGuidelinesId === data.regulatoryGuidelinesId\r\n );\r\n\r\n if (matchingGuideline && matchingGuideline.name === 'Industry Practice') {\r\n \r\n this.isIndustryPractice = true;\r\n\r\n }\r\n \r\n // if (data.isIndustryPractice == false) {\r\n // this.Riskclassification = this.Riskclassification.filter(\r\n // (x) => x.riskClassificationScoreThresholdId !== 4\r\n // );\r\n // }\r\n this.assessmentforCE.controls[\"mapQuestionnaireId\"].setValue(\r\n data.mapQuestionnaireId\r\n );\r\n let existenceResponse: any = this.Riskclassification.filter(\r\n (x) =>\r\n x.riskClassificationScoreThresholdId === data.controlExistenceResponseId\r\n );\r\n\r\nif (this.isIndustryPractice) {\r\n let existenceResponseData = this.Riskclassification[0];\r\n this.assessmentforCE.controls[\"existenceResponse\"].setValue(\r\n existenceResponseData\r\n );\r\n}else{\r\n this.assessmentforCE.controls[\"existenceResponse\"].setValue(\r\n existenceResponse[0]\r\n );\r\n}\r\n\r\n \r\n this.assessmentforCE.controls[\"controlExistenceExplanation\"].setValue(\r\n data.controlExistenceExplanation\r\n );\r\n this.assessmentforCE.controls[\"controlExistenceDocReference\"].setValue(\r\n data.controlExistenceDocReference\r\n );\r\n let effectivenessResponse: any = this.Riskclassification.filter(\r\n (x) =>\r\n x.riskClassificationScoreThresholdId ===\r\n data.controlEffectivenessResponseId\r\n );\r\n\r\ndebugger\r\n\r\n if (this.isIndustryPractice) {\r\n let existenceResponseData = this.Riskclassification[0];\r\n this.assessmentforCE.controls[\"effectivenessResponse\"].setValue(\r\n existenceResponseData\r\n );\r\n }else{\r\n this.assessmentforCE.controls[\"effectivenessResponse\"].setValue(\r\n effectivenessResponse[0]\r\n );\r\n }\r\n // this.assessmentforCE.controls[\"effectivenessResponse\"].setValue(\r\n // effectivenessResponse[0]\r\n // );\r\n this.assessmentforCE.controls[\"controlEffectivenessExplanation\"].setValue(\r\n data.controlEffectivenessExplanation\r\n );\r\n this.assessmentforCE.controls[\"riskTreatmentActions\"].setValue(\r\n data.riskTreatmentActions\r\n );\r\n this.assessmentforCE.controls[\"pic\"].setValue(data.pic);\r\n this.assessmentforCE.controls[\"implementationDueDate\"].setValue(\r\n data.implementationDueDate\r\n );\r\n }\r\n\r\n getTotalfornoOfCustomersPer(value, data) {\r\n this.total = 0;\r\n value.forEach((value, key) => {\r\n if (value.mapQuestionnaireId !== data.mapQuestionnaireId) {\r\n this.total += +value.noOfCustomersPer;\r\n }\r\n });\r\n this.total = +(this.total + +data.noOfCustomers).toFixed(2);\r\n if (this.total > 100) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n getTotalforvolumeOfTransactionsPer(value, data) {\r\n this.total = 0;\r\n value.forEach((value, key) => {\r\n if (value.mapQuestionnaireId !== data.mapQuestionnaireId) {\r\n this.total += +value.volumeOfTransactionsPer;\r\n }\r\n });\r\n this.total = +(this.total + +data.volumeOfTransactions).toFixed(2);\r\n if (this.total > 100) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n getTotalforvalueOfTransactionsPer(value, data) {\r\n this.total = 0;\r\n value.forEach((value, key) => {\r\n if (value.mapQuestionnaireId !== data.mapQuestionnaireId) {\r\n this.total += +value.valueOfTransactionsPer;\r\n }\r\n });\r\n this.total = +(this.total + +data.valueOfTransactions).toFixed(2);\r\n if (this.total > 100) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n assignReview(data) {\r\n if (this.IR) {\r\n // data mapping\r\n if (data.offering == undefined || data.SubCategory == 6) {\r\n this.assessmentforIR.get(\"offering\").clearValidators();\r\n this.assessmentforIR.get(\"offering\").updateValueAndValidity();\r\n }\r\n if (data.SubCategory == 6 || data.offering?.id == 2 || data.dataNotAvailable == true) {\r\n this.assessmentforIR.get(\"noOfCustomers\").clearValidators();\r\n this.assessmentforIR.get(\"noOfCustomers\").updateValueAndValidity();\r\n this.assessmentforIR.get(\"volumeOfTransactions\").clearValidators();\r\n this.assessmentforIR\r\n .get(\"volumeOfTransactions\")\r\n .updateValueAndValidity();\r\n this.assessmentforIR.get(\"valueOfTransactions\").clearValidators();\r\n this.assessmentforIR\r\n .get(\"valueOfTransactions\")\r\n .updateValueAndValidity();\r\n }\r\n this.assessmentforIR.markAllAsTouched();\r\n if (this.assessmentforIR.invalid) {\r\n return;\r\n }\r\n\r\n let temp = this.subcategorydetails.filter(\r\n (x) => x.riskSubCategoryDetailsId == data.SubCategoryDetails\r\n );\r\n\r\n if (!this.getTotalfornoOfCustomersPer(this.riskattribute, data)) {\r\n swal({\r\n icon: \"warning\",\r\n text:\r\n \"No. of customers percentage per \" +\r\n temp[0].riskAttribute +\r\n \" must be 100%\",\r\n });\r\n return;\r\n } else if (\r\n !this.getTotalforvolumeOfTransactionsPer(this.riskattribute, data)\r\n ) {\r\n swal({\r\n icon: \"warning\",\r\n text:\r\n \"Volume of transactions percentage per \" +\r\n temp[0].riskAttribute +\r\n \" must be 100%\",\r\n });\r\n return;\r\n } else if (\r\n !this.getTotalforvalueOfTransactionsPer(this.riskattribute, data)\r\n ) {\r\n swal({\r\n icon: \"warning\",\r\n text:\r\n \"Value of transactions percentage per \" +\r\n temp[0].riskAttribute +\r\n \" must be 100%\",\r\n });\r\n return;\r\n } else {\r\n this.riskattribute = this.riskattribute.filter((value, key) => {\r\n if (value.mapQuestionnaireId == data.mapQuestionnaireId) {\r\n if (this.maintab == \"AssessmentStatus\") {\r\n value.entityDetailsID = +this.AssessmentStatusEntityId;\r\n } else {\r\n if (this.selectedEntity !== undefined) {\r\n value.entityDetailsID = +this.selectedEntity.entityDetailsId;\r\n } else {\r\n value.entityDetailsID = +this.entity.id;\r\n }\r\n }\r\n value.businessUnitId = +this.selectedBU.businessUnitId;\r\n if (data.offering != undefined) {\r\n value.offering = data.offering.name == \"No\" ? false : true;\r\n }\r\n if (data.SubCategory !== 6) {\r\n value.riskClassificationId = +data.riskClassification\r\n .riskClassificationScoreThresholdId;\r\n value.noOfCustomersPer =\r\n data.dataNotAvailable == true ? \"0.00\" :\r\n data.noOfCustomers == null\r\n ? null\r\n : data.noOfCustomers.toString().trim();\r\n value.volumeOfTransactionsPer =\r\n data.dataNotAvailable == true ? \"0.00\" :\r\n data.volumeOfTransactions == null\r\n ? null\r\n : data.volumeOfTransactions.toString().trim();\r\n value.valueOfTransactionsPer =\r\n data.dataNotAvailable == true ? \"0.00\" :\r\n data.valueOfTransactions == null\r\n ? null\r\n : data.valueOfTransactions.toString().trim();\r\n value.dataNotAvailable = data.dataNotAvailable;\r\n } else {\r\n value.qualitativeFactorsResponse =\r\n data.riskClassification.qualitativeFactorsResponse;\r\n }\r\n let obj = [value];\r\n this.callAPI(obj);\r\n this.assessmentReviewdisplayModal = false;\r\n this.assessmentforIR.reset();\r\n }\r\n return true;\r\n });\r\n }\r\n } else if (this.CE) {\r\n if (\r\n data.controlExistenceExplanation == data.controlEffectivenessExplanation\r\n ) {\r\n swal({\r\n icon: \"warning\",\r\n text:\r\n \"Values provided for Control Existence Explanation and Control Effectiveness Explanation should not be same\",\r\n });\r\n return;\r\n }\r\n this.riskattribute = this.riskattribute.filter((value, key) => {\r\n if (value.mapQuestionnaireId == data.mapQuestionnaireId) {\r\n if (this.maintab == \"AssessmentStatus\") {\r\n value.entityDetailsID = +this.AssessmentStatusEntityId;\r\n } else {\r\n if (this.selectedEntity !== undefined) {\r\n value.entityDetailsID = +this.selectedEntity.entityDetailsId;\r\n } else {\r\n value.entityDetailsID = +this.entity.id;\r\n }\r\n }\r\n value.businessUnitId = +this.selectedBU.businessUnitId;\r\n value.controlExistenceResponseId = +data.existenceResponse\r\n .riskClassificationScoreThresholdId;\r\n value.controlExistenceExplanation = data.controlExistenceExplanation\r\n .toString()\r\n .trim();\r\n value.controlExistenceDocReference = data.controlExistenceDocReference\r\n .toString()\r\n .trim();\r\n value.controlEffectivenessResponseId = +data.effectivenessResponse\r\n .riskClassificationScoreThresholdId;\r\n value.controlEffectivenessExplanation = data.controlEffectivenessExplanation\r\n .toString()\r\n .trim();\r\n value.inherentRisk = data.inherentRisk;\r\n value.residualRisk = data.residualRisk;\r\n value.riskTreatmentActions = data.riskTreatmentActions\r\n .toString()\r\n .trim();\r\n value.pic = data.pic.toString().trim();\r\n value.implementationDueDate = data.implementationDueDate;\r\n let obj = [value];\r\n this.callAPI(obj);\r\n this.assessmentReviewdisplayModalforCE = false;\r\n this.assessmentforCE.reset();\r\n }\r\n return true;\r\n });\r\n }\r\n }\r\n\r\n assignComment(data) {\r\n this.riskattribute = this.riskattribute.filter((value, key) => {\r\n if (value.mapQuestionnaireId == data.mapQuestionnaireId) {\r\n value.comments = data.comment;\r\n let obj = [value];\r\n this.callAPI(obj);\r\n }\r\n return true;\r\n });\r\n this.commentdisplayModal = false;\r\n this.addcommentforCE.reset();\r\n }\r\n\r\n callAPI(data) {\r\n if (this.maintab == \"AssessmentStatus\") {\r\n this.assessmentcyclevalue = this.ASAssessmentCycle;\r\n } else {\r\n this.assessmentcyclevalue = this.selectedAssessmentCycle.value.toString();\r\n }\r\n this.previousData = data[0];\r\n this.httpGenericService\r\n .postData(\r\n `${this.api.entityAssessmentReview.saveEntityAssesmentReview}?assessmentCycle=${this.assessmentcyclevalue}&createdBy=${this.userId}`,\r\n data\r\n )\r\n .pipe(first())\r\n .subscribe((data) => {\r\n let response = data;\r\n if (response.StatusCode === 200) {\r\n swal({\r\n icon: \"success\",\r\n text: response.Message,\r\n });\r\n } else {\r\n swal({\r\n icon: \"error\",\r\n text: response.Message,\r\n });\r\n }\r\n this.getRiskAttribute(this.tempdata, false);\r\n });\r\n }\r\n\r\n infoPopUp(item: any, popup: boolean) {\r\n if (popup) {\r\n this.infoPopUpModel = true;\r\n }\r\n if (item.groupItem[0].riskFactors !== null) {\r\n this.inforData = item.groupItem[0].riskFactors;\r\n } else {\r\n this.inforData = \"Not Available..\";\r\n }\r\n }\r\n\r\n fileupload(value: any) {\r\n if (value.entityAssesmentReviewId > 0) {\r\n this.uploadingfile = value;\r\n this.value = 0;\r\n this.fileuploadModal = true;\r\n this.test = [];\r\n this.fileRequired = false;\r\n }\r\n else\r\n swal({\r\n icon: \"error\",\r\n text: \"Please provide response to question and then you can upload.\"\r\n });\r\n\r\n }\r\n\r\n fileuploadforClient(value: any) { \r\n debugger\r\n this.uploadingfile = value;\r\n this.value = 0;\r\n this.fileuploadModal = true;\r\n this.test = [];\r\n this.oldtemplateName = value.s3FileName;\r\n this.s3FileName = value.s3FileName;\r\n }\r\n getMagicNumber(file: File): Promise {\r\n return new Promise((resolve) => {\r\n const reader = new FileReader();\r\n reader.onloadend = () => {\r\n const arrayBuffer = reader.result as ArrayBuffer;\r\n const uintArray = new Uint8Array(arrayBuffer);\r\n const magicNumberHex = uintArray.reduce(\r\n (acc, value) => acc + value.toString(16).padStart(2, '0'),\r\n ''\r\n );\r\n resolve(magicNumberHex.toUpperCase());\r\n };\r\n reader.onerror = () => {\r\n resolve(null);\r\n };\r\n // Read the first few bytes of the file (adjust as needed)\r\n const blob = file.slice(0, 4);\r\n reader.readAsArrayBuffer(blob);\r\n });\r\n }\r\n upload(event) {\r\n const file = (event.target as HTMLInputElement).files?.[0]; this.fileCounter = 0;\r\n\r\n this.file = event.target.files;\r\nthis.getMagicNumber(file).then((magicNumber: any) => {\r\n if (magicNumber === '25504446') {\r\n \r\n this.fileCounter = this.fileCounter + this.file.length;\r\n\r\n // check Validation\r\n if (this.file.size > 28000000) {\r\n this.fileRequired = true;\r\n this.UploadErrorMessage = \"Select file less then 20 MB\";\r\n return;\r\n } else {\r\n for (let i = 0; i < event.target.files.length; i++) {\r\n let ext = event.target.files[i].name.split(\".\").pop();\r\n var obj = {\r\n file: event.target.files[i],\r\n extension: ext,\r\n };\r\n this.test.push(obj);\r\n }\r\n this.fileRequired = false;\r\n for (let file of this.file) {\r\n this.readAndUploadFile(file);\r\n }\r\n }\r\n } else {\r\n swal({\r\n icon: \"error\",\r\n text: \"Please upload PDF File Only.\",\r\n }); }\r\n });\r\n }\r\n\r\n private readAndUploadFile(theFile: any) {\r\n this.uploadingfile = {};\r\n this.uploadingfile.fileName = theFile.name;\r\n\r\n // Use FileReader() object to get file to upload\r\n // NOTE: FileReader only works with newer browsers\r\n let reader = new FileReader();\r\n\r\n // Setup onload event for reader\r\n reader.onload = () => {\r\n // Store base64 encoded representation of file\r\n let base64 = reader.result.toString();\r\n let split = base64.split(\",\");\r\n this.uploadingfile.fileBase64 = split[1];\r\n this.value = 0;\r\n let interval = setInterval(() => {\r\n //this.value = this.value + Math.floor(Math.random() * 10) + 1;\r\n this.value = this.value + Math.floor(this.getRandomIntInclusive(0, 1) * 10) + 1;\r\n if (this.value >= 100) {\r\n this.value = 100;\r\n this.button = true;\r\n clearInterval(interval);\r\n }\r\n }, 500);\r\n };\r\n\r\n // Read the file\r\n reader.readAsDataURL(theFile);\r\n }\r\n\r\n\r\n getRandomIntInclusive(min, max) {\r\n const randomBuffer = new Uint32Array(1);\r\n\r\n window.crypto.getRandomValues(randomBuffer);\r\n\r\n let randomNumber = randomBuffer[0] / (0xffffffff + 1);\r\n\r\n min = Math.ceil(min);\r\n max = Math.floor(max);\r\n return Math.floor(randomNumber * (max - min + 1)) + min;\r\n}\r\n\r\n saveFiles() {\r\n let obj = [this.uploadingfile];\r\n if (this.maintab == \"AssessmentStatus\")\r\n this.assessmentcyclevalue = this.ASAssessmentCycle;\r\n else\r\n this.assessmentcyclevalue = this.selectedAssessmentCycle.value.toString();\r\n this.httpGenericService\r\n .postData(\r\n `${this.api.entityAssessmentReview.saveEntityAssesmentReview}?assessmentCycle=${this.assessmentcyclevalue}&createdBy=${this.userId}`,\r\n obj\r\n )\r\n .pipe(first())\r\n .subscribe((data) => {\r\n let response = data;\r\n if (response.StatusCode === 200) {\r\n swal({\r\n icon: \"success\",\r\n text: response.Message,\r\n });\r\n } else {\r\n swal({\r\n icon: \"error\",\r\n text: response.Message,\r\n });\r\n }\r\n });\r\n this.button = false;\r\n this.test = [];\r\n this.fileuploadModal = false;\r\n }\r\n\r\n saveFile() { \r\n this.files = new reportFileUpload;\r\n this.files.s3FileName = this.uploadingfile.fileName;\r\n this.files.createdBy = this.userData.userId;\r\n this.files.fileBase64 = this.uploadingfile.fileBase64;\r\n this.files.entityDetailsId = this.entityid;\r\n this.httpGenericService\r\n .postDataPromise(this.api.questionsTemplates.UploadUpdatedEntityReport, this.files)\r\n .then((data) => {\r\n let response = data;\r\n if (response.StatusCode === 200 && response.Result !== 'DUPLICATE') {\r\n swal({\r\n icon: \"success\",\r\n text: response.Message\r\n });\r\n this.getAllTemplates(false);\r\n }\r\n else if (response.StatusCode === 200 && response.Result === 'DUPLICATE') {\r\n swal({\r\n icon: \"warning\",\r\n text: response.Message\r\n });\r\n }\r\n else {\r\n swal({\r\n icon: \"error\",\r\n text: response.Message\r\n });\r\n }\r\n });\r\n \r\n }\r\n\r\n getAllTemplates(bool: boolean) {\r\n let id = 0;\r\n if (this.maintab == \"false\") {\r\n id = +this.selectedEntity.entityDetailsId;\r\n }\r\n else {\r\n id = +this.entity.id;\r\n }\r\n let buid = +this.selectedBU.businessUnitId;\r\n this.pageIndex = bool? 1 : this.pageIndex;\r\n this.httpGenericService\r\n .fetchAll(\r\n `${this.api.questionsTemplates.getAllQuestionsTemplate\r\n }?EntityId=${id}&BusinessUnitId=${buid}&assessmentCycle=${this.selectedAssessmentCycle.value}\r\n &UserId=${this.userData.userId}`\r\n )\r\n .pipe(first())\r\n .subscribe((res) => {\r\n let response: any = res[\"Result\"];\r\n response.forEach(element => {\r\n if (element.riskCategoryId == 1) {\r\n element.RC = 'Inherent Risk';\r\n }\r\n else if (element.riskCategoryId == 2) {\r\n element.RC = 'Control Effectiveness';\r\n }\r\n else {\r\n element.RC = null;\r\n }\r\n });\r\n // this.templates = response;\r\n // this.addtemplatebutton = true;\r\n // this.savechangesbutton = true;\r\n // this.setCurrentPage(this.pageIndex);\r\n });\r\n }\r\n\r\n prevent(event: Event, formName: string) {\r\n if (formName == \"comment\") {\r\n if (this.addcommentforCE.value.comment == \"\") {\r\n this.commonserviceService.preventSpace(event);\r\n }\r\n } else if (formName == \"controlExistenceExplanation\") {\r\n if (this.assessmentforCE.value.controlExistenceExplanation == \"\") {\r\n this.commonserviceService.preventSpace(event);\r\n }\r\n } else if (formName == \"controlExistenceDocReference\") {\r\n if (this.assessmentforCE.value.controlExistenceDocReference == \"\") {\r\n this.commonserviceService.preventSpace(event);\r\n }\r\n } else if (formName == \"controlEffectivenessExplanation\") {\r\n if (this.assessmentforCE.value.controlEffectivenessExplanation == \"\") {\r\n this.commonserviceService.preventSpace(event);\r\n }\r\n } else if (formName == \"inherentRisk\") {\r\n if (this.assessmentforCE.value.inherentRisk == \"\") {\r\n this.commonserviceService.preventSpace(event);\r\n }\r\n } else if (formName == \"residualRisk\") {\r\n if (this.assessmentforCE.value.residualRisk == \"\") {\r\n this.commonserviceService.preventSpace(event);\r\n }\r\n } else if (formName == \"riskTreatmentActions\") {\r\n if (this.assessmentforCE.value.riskTreatmentActions == \"\") {\r\n this.commonserviceService.preventSpace(event);\r\n }\r\n } else if (formName == \"pic\") {\r\n if (this.assessmentforCE.value.pic == \"\") {\r\n this.commonserviceService.preventSpace(event);\r\n }\r\n } else if (formName == \"noOfCustomers\") {\r\n if (this.assessmentforIR.value.noOfCustomers == \"\") {\r\n this.commonserviceService.preventSpace(event);\r\n }\r\n } else if (formName == \"volumeOfTransactions\") {\r\n if (this.assessmentforIR.value.volumeOfTransactions == \"\") {\r\n this.commonserviceService.preventSpace(event);\r\n }\r\n } else if (formName == \"valueOfTransactions\") {\r\n if (this.assessmentforIR.value.valueOfTransactions == \"\") {\r\n this.commonserviceService.preventSpace(event);\r\n }\r\n }\r\n }\r\n\r\n Generatereport() {\r\n this.reportmodel = true;\r\n }\r\n\r\n Generatedocorpdfreport(data: boolean) {\r\n if (this.maintab == \"AssessmentStatus\")\r\n this.assessmentcyclevalue = this.ASAssessmentCycle;\r\n else\r\n this.assessmentcyclevalue = this.selectedAssessmentCycle.value.toString();\r\n let id = +this.EntityData.entityDetailsId;\r\n let fileextension = data == true ? \".docx\" : \".pdf\";\r\n this.httpGenericService\r\n .fetchAll(\r\n `${this.api.reportTemplates.generateReport}?EntityId=${id}&assessmentCycle=${this.assessmentcyclevalue}&reportGeneratedBy=${this.userId}&fileExtension=${fileextension}`\r\n )\r\n .pipe(first())\r\n .subscribe((res) => {\r\n let response: any = res;\r\n \r\n if (response.StatusCode === 200 && response.Result !== \"ERROR\") {\r\n if (data == true) {\r\n this.downloadfile.downloadDocument(\r\n response.Result.filePathDOCX,\r\n response.Result.fileNameDOCX\r\n );\r\n } else {\r\n this.downloadfile.downloadDocument(\r\n response.Result.filePathPDF,\r\n response.Result.fileNamePDF\r\n );\r\n }\r\n this.reportmodel = false;\r\n } else {\r\n swal({\r\n icon: \"error\",\r\n text: \"Error occured while downloading\",\r\n });\r\n }\r\n });\r\n }\r\n\r\n downloadreport(value) {\r\n let Data = value.fileData;\r\n let filename = value.fileName;\r\n // how to use FileSaver here ?\r\n var data = new Blob([Data], { type: \"octet/stream\" });\r\n FileSaver.saveAs(data, filename);\r\n }\r\n\r\n Downloadfile() {\r\n if (this.risk == 'IR') {\r\n this.templateCategory = \"IR-Questionnaire Template.xlsx\";\r\n }\r\n else {\r\n this.templateCategory = \"CE-Questionnaire Template.xlsx\";\r\n }\r\n this.httpGenericService\r\n .fetchAll(\r\n `${this.api.questionsTemplates.DownloadReport\r\n }?fileName=${this.templateCategory}&entityDetailedId=${this.entityid}`\r\n )\r\n .pipe(first())\r\n .subscribe((res) => {\r\n let response: any = res;\r\n if (response.StatusCode === 200) {\r\n this.downloadfile.downloadDocument(response.Result, this.templateCategory);\r\n } else {\r\n swal({\r\n icon: \"error\",\r\n text: \"Could not Find the File.\",\r\n });\r\n }\r\n });\r\n }\r\n\r\n saveData = (function () {\r\n // console.log(\"Here\");\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n // a.style = \"display: none\";\r\n return function (data, fileName) {\r\n // console.log(data);\r\n var json = atob(data),\r\n blob = this.base64toBlob(json),\r\n url = window.URL.createObjectURL(blob);\r\n a.href = url;\r\n a.download = fileName;\r\n a.click();\r\n window.URL.revokeObjectURL(url);\r\n };\r\n })();\r\n\r\n base64toBlob(byteString) {\r\n var ia = new Uint8Array(byteString.length);\r\n for (var i = 0; i < byteString.length; i++) {\r\n ia[i] = byteString.charCodeAt(i);\r\n }\r\n return new Blob([ia], { type: \"octet/stream\" });\r\n }\r\n\r\n Submit() {\r\n this.isSubmitted = false;\r\n if (this.maintab == \"AssessmentStatus\") {\r\n this.entityid = +this.AssessmentStatusEntityId;\r\n this.assessmentcyclevalue = this.ASAssessmentCycle;\r\n } else {\r\n if (this.selectedEntity !== undefined) {\r\n this.entityid = +this.selectedEntity.entityDetailsId;\r\n } else {\r\n this.entityid = +this.entity.id;\r\n }\r\n this.assessmentcyclevalue = this.selectedAssessmentCycle.value.toString();\r\n }\r\n this.httpGenericService\r\n .fetchAll(\r\n `${this.api.entityAssessmentReview.submitAssessment}?entityDetailsId=${this.entityid}&assessmentCycle=${this.assessmentcyclevalue}&submittedBy=${this.userId}`\r\n )\r\n .pipe(first())\r\n .subscribe(async (res) => {\r\n let response: any = res;\r\n if (response.StatusCode === 200 && response.Result === \"SUCCESS\") {\r\n await this.getEntityAssessmentStatus();\r\n if (!(this.EntityData.dmvalidationRequired || this.EntityData.bmvalidationRequired)\r\n ) {\r\n //this.a3x3wQ1 = true;\r\n this.isdashboard = true;\r\n } else {\r\n if (\r\n \r\n this.EntityDataAssessment.bmvalidationDone != \"\" &&\r\n this.EntityDataAssessment.dmvalidationDone != \"\"\r\n ) {\r\n this.validationrequired = true;\r\n this.isdashboard = true;\r\n\r\n if (this.EntityDataAssessment.dashboardGenerated)\r\n this.isreport = true;\r\n\r\n }\r\n else if (this.roleEntity.id == \"9de2097a-2414-4e9d-8b7b-78cbbbc94863\")\r\n this.validationrequired = true;\r\n else if (\r\n this.EntityData.bmvalidationRequired &&\r\n this.roleEntity.id == \"7ea9791f-6aeb-4ca8-be5b-db459f49e489\"\r\n )\r\n this.validationrequired = true;\r\n else if (\r\n this.EntityData.dmvalidationRequired &&\r\n this.roleEntity.id == \"d7b8db81-5256-4037-a96b-bec61d028b4a\" &&\r\n this.EntityDataAssessment.bmvalidationDone != \"\"\r\n ) \r\n this.validationrequired = true;\r\n }\r\n swal({\r\n icon: \"success\",\r\n text: response.Message,\r\n });\r\n } else if (response.StatusCode === 200 && response.Result !== \"SUCCESS\") {\r\n this.isSubmitted = true;\r\n if (response.Message == \"CurrentBU percentages matched\") {\r\n swal({\r\n icon: \"warning\",\r\n //text: response.Message\r\n text: response.Result,\r\n });\r\n }\r\n else {\r\n this.IDs = response.Result.iDs;\r\n // console.log(this.IDs);\r\n swal({\r\n icon: \"warning\",\r\n //text: response.Message\r\n text:\r\n \"Total Percentage against all the Sub-Category-Details of [\" +\r\n response.Result.subcategoryDetailsName +\r\n \"] for Sub-Category [\" +\r\n response.Result.subcategoryName +\r\n \"] under Business Unit - \" +\r\n response.Result.buname +\r\n \" must be equal to 100%. \\n\" +\r\n \"1. No Of Customers Percentage - \" +\r\n response.Result.iDs[0].totalNoOfCustomersPer +\r\n \"% \\n\" +\r\n \"2. Volume Of Transactions Percentage - \" +\r\n response.Result.iDs[0].totalVolumeOfTransactionsPer +\r\n \"% \\n\" +\r\n \"3. Value Of Transactions Percentage - \" +\r\n response.Result.iDs[0].totalValueOfTransactionsPer +\r\n \"%\",\r\n });\r\n }\r\n await this.getBUList();\r\n } else if (response.StatusCode === 500 && response.Result !== \"\") {\r\n this.isSubmitted = true;\r\n if (response.Message == \"CurrentBU responses provided\" || response.Message == \"Improper Weightages\") {\r\n swal({\r\n icon: \"warning\",\r\n //text: response.Message\r\n text: response.Result,\r\n });\r\n }\r\n else {\r\n this.IDs = response.Result;\r\n if (this.IDs[0].riskCategoryId == 1) {\r\n this.IR = true;\r\n this.CE = false;\r\n }\r\n else {\r\n this.IR = false;\r\n this.CE = true;\r\n }\r\n swal({\r\n icon: \"warning\",\r\n text: response.Message,\r\n // text:\r\n // \"Please provide answers for Risk Category [\" +\r\n // response.Result.riskCategory +\r\n // \"] >> having Business Unit [\" +\r\n // response.Result.businessUnit +\r\n // \"] >> with Sub-Category [\" +\r\n // response.Result.riskSubCategory +\r\n // \"] >> and Sub-Category-Details [\" +\r\n // response.Result.riskAttribute +\r\n // \"] >> of Risk Type [\" +\r\n // response.Result.riskType +\r\n // \"]\" ,\r\n });\r\n \r\n }\r\n\r\n await this.getBUList();\r\n \r\n } else {\r\n swal({\r\n icon: \"warning\",\r\n text: response.Message,\r\n });\r\n }\r\n });\r\n }\r\n WeitageNotAssignedPopup(){\r\n debugger\r\n \r\n }\r\nBuWiseWeitage(){\r\n debugger\r\n localStorage.setItem(\"ASEntityId\",JSON.stringify(this.entityid)); ;\r\n this.httpGenericService\r\n .fetchAll(\r\n `${this.api.weightages.getAllRiskCategoryandSubCategoryWeighatages}?EntityId=${this.entityid}&BusinessUnitId=${this.selectedBU.businessUnitId}\r\n &RiskCategoryid=${this.riskCategoryid}&assessmentCycle=${this.assessmentcyclevalue}`\r\n )\r\n .pipe(first())\r\n .subscribe((res) => {\r\n let response: any = res[\"Result\"];\r\n debugger\r\n //this.irceList = response;\r\n this.riskSubCategoryWeightageAssignEntity =\r\n response.riskSubCategoryWeightageAssignEntity;\r\n this.getTotal(this.riskSubCategoryWeightageAssignEntity);\r\n this.RCsum = this.total;\r\n localStorage.setItem(\"RCsum\",JSON.stringify(this.RCsum));\r\n this.riskSubCategoryDetailsWeightageAsignEntity =\r\n response.riskSubCategoryDetailsWeightageAsignEntity;\r\n this.customerdata(this.riskSubCategoryDetailsWeightageAsignEntity);\r\n this.productsdata(this.riskSubCategoryDetailsWeightageAsignEntity);\r\n this.transactionsdata(\r\n this.riskSubCategoryDetailsWeightageAsignEntity\r\n );\r\n this.geographydata(this.riskSubCategoryDetailsWeightageAsignEntity);\r\n this.channelsdata(this.riskSubCategoryDetailsWeightageAsignEntity);\r\n this.QFdata(this.riskSubCategoryDetailsWeightageAsignEntity);\r\n this.getTotal(this.CustomersData);\r\n this.Customersum = this.total;\r\n localStorage.setItem(\"Customersum\",JSON.stringify(this.Customersum));\r\n this.getTotal(this.ProductsData);\r\n this.Productsum = this.total;\r\n localStorage.setItem(\"Productsum\",JSON.stringify(this.Productsum));\r\n this.getTotal(this.TransactionsData);\r\n this.Transactionsum = this.total;\r\n localStorage.setItem(\"Transactionsum\",JSON.stringify(this.Transactionsum));\r\n this.getTotal(this.GeographyData);\r\n this.Geographysum = this.total;\r\n localStorage.setItem(\"Geographysum\",JSON.stringify(this.Geographysum));\r\n this.getTotal(this.ChannelsData);\r\n this.Channelssum = this.total;\r\n localStorage.setItem(\"Channelssum\",JSON.stringify(this.Channelssum));\r\n\r\n this.getTotal(this.OtherQualitativeFactorsData);\r\n this.QFsum = this.total;\r\n localStorage.setItem(\"QFsum\",JSON.stringify(this.QFsum));\r\n if (\r\n !(this.RCsum == 100 ||\r\n this.Customersum == 100 ||\r\n this.Productsum == 100 ||\r\n this.Transactionsum == 100 ||\r\n this.Geographysum == 100 ||\r\n this.Channelssum == 100 ||\r\n this.QFsum == 100)\r\n ) {\r\n this.EntityDataAssessment=false;\r\n this.WeitagePopup=false;\r\n if( ( this.WeitagePopup==false )) {\r\n swal({\r\n icon: \"warning\",\r\n text: \"Weitage for Selected BU is not 100%.\",\r\n });\r\n }\r\n \r\n}else{\r\n this.EntityDataAssessment=true;\r\n this.WeitagePopup = true;\r\n}\r\n });\r\n}\r\n\r\ngetTotal(data) {\r\n this.total = 0;\r\n data.forEach((value, key) => {\r\n this.total += +value.weightage;\r\n });\r\n return this.total;\r\n}\r\ncustomerdata(value: any) {\r\n this.CustomersData = value.filter((x) => x.riskSubCategoryId == 1);\r\n return this.CustomersData;\r\n}\r\n\r\nproductsdata(value: any) {\r\n this.ProductsData = value.filter((x) => x.riskSubCategoryId == 2);\r\n return this.ProductsData;\r\n}\r\n\r\ntransactionsdata(value: any) {\r\n this.TransactionsData = value.filter((x) => x.riskSubCategoryId == 3);\r\n return this.TransactionsData;\r\n}\r\n\r\ngeographydata(value: any) {\r\n this.GeographyData = value.filter((x) => x.riskSubCategoryId == 4);\r\n return this.GeographyData;\r\n}\r\n\r\nchannelsdata(value: any) {\r\n this.ChannelsData = value.filter((x) => x.riskSubCategoryId == 5);\r\n return this.ChannelsData;\r\n}\r\n\r\nQFdata(value: any) {\r\n this.OtherQualitativeFactorsData = value.filter(\r\n (x) => x.riskSubCategoryId == 6\r\n );\r\n return this.OtherQualitativeFactorsData;\r\n}\r\n\r\n fetchAssessmentStatus() {\r\n this.isSubmitted = false;\r\n \r\n if (this.maintab == \"AssessmentStatus\") {\r\n this.entityid = +this.AssessmentStatusEntityId;\r\n this.assessmentcyclevalue = this.ASAssessmentCycle;\r\n } else {\r\n if (this.selectedEntity !== undefined) {\r\n this.entityid = +this.selectedEntity.entityDetailsId;\r\n } else {\r\n this.entityid = +this.entity.id;\r\n }\r\n this.assessmentcyclevalue = this.selectedAssessmentCycle.value.toString();\r\n }\r\n \r\n this.httpGenericService\r\n .fetchAll(\r\n `${this.api.weightages.getAllEntityBusinessUnitsWeightage}?EntityId=${this.entityid}&assessmentCycle=${this.assessmentcyclevalue}`\r\n )\r\n .pipe(first())\r\n .subscribe((res) => {\r\n let response: any = res[\"Result\"];\r\n this.EntityDataAssessment = response;\r\n if (this.EntityDataAssessment) {\r\n debugger\r\n this.showPopup = this.EntityDataAssessment.some(item => item.weightage !== '100.00');\r\n debugger\r\n if (\r\n this.RCsum == 100 ||\r\n this.Customersum == 100 ||\r\n this.Productsum == 100 ||\r\n this.Transactionsum == 100 ||\r\n this.Geographysum == 100 ||\r\n this.Channelssum == 100 ||\r\n this.QFsum == 100\r\n ){\r\n this.showPopup=true;\r\n }\r\n if (this.showPopup) {\r\n swal({\r\n icon: \"warning\",\r\n text: \"Weightage not assigned 100 %\",\r\n });\r\n }\r\n // console.log(this.showPopup)\r\n // Logic to display assessment status\r\n if (!(this.EntityData.dmvalidationRequired || this.EntityData.bmvalidationRequired)) {\r\n this.isdashboard = true;\r\n } else {\r\n if (\r\n this.EntityDataAssessment.bmvalidationDone != \"\" &&\r\n this.EntityDataAssessment.dmvalidationDone != \"\"\r\n ) {\r\n this.validationrequired = true;\r\n this.isdashboard = true;\r\n \r\n if (this.EntityDataAssessment.dashboardGenerated)\r\n this.isreport = true;\r\n } else if (this.roleEntity.id == \"9de2097a-2414-4e9d-8b7b-78cbbbc94863\")\r\n this.validationrequired = true;\r\n else if (\r\n this.EntityData.bmvalidationRequired &&\r\n this.roleEntity.id == \"7ea9791f-6aeb-4ca8-be5b-db459f49e489\"\r\n )\r\n this.validationrequired = true;\r\n else if (\r\n this.EntityData.dmvalidationRequired &&\r\n this.roleEntity.id == \"d7b8db81-5256-4037-a96b-bec61d028b4a\" &&\r\n this.EntityDataAssessment.bmvalidationDone != \"\"\r\n )\r\n this.validationrequired = true;\r\n }\r\n }\r\n \r\n // swal({\r\n // icon: \"success\",\r\n // text: \"Assessment status fetched successfully.\",\r\n // });\r\n // }, (error) => {\r\n // swal({\r\n // icon: \"error\",\r\n // text: \"Failed to fetch assessment status.\",\r\n // });\r\n });\r\n }\r\n \r\n\r\n GenerateDashboard() {\r\n if (this.maintab == \"AssessmentStatus\") {\r\n this.entityid = +this.AssessmentStatusEntityId;\r\n this.assessmentcyclevalue = this.ASAssessmentCycle;\r\n //this.entityName \r\n } else {\r\n if (this.selectedEntity !== undefined) {\r\n this.entityid = +this.selectedEntity.entityDetailsId;\r\n } else {\r\n this.entityid = +this.entity.id;\r\n }\r\n this.assessmentcyclevalue = this.selectedAssessmentCycle.value.toString();\r\n }\r\n\r\n //localStorage.setItem('GenDashboardEntiy', JSON.stringify(this.entity.id));\r\n\r\n //localStorage.setItem('GenDashboardYear', JSON.stringify(this.assessmentcyclevalue));\r\n localStorage.setItem('maintab', 'AssessmentStatus')\r\n localStorage.setItem('ASAssessmentCycle', JSON.stringify(this.assessmentcyclevalue))\r\n //localStorage.setItem('DashboardAssessmentCycle', JSON.stringify(this.selectedAssessmentCycle))\r\n localStorage.setItem('ASEntityId', JSON.stringify(this.entityid));\r\n debugger\r\n if (this.entityName.companyName==undefined) {\r\n localStorage.setItem('setEntityName', JSON.stringify(this.entityName));\r\n\r\n }else{\r\n localStorage.setItem('setEntityName', JSON.stringify(this.entityName.companyName));\r\n\r\n }\r\n localStorage.setItem('setCss', '7');\r\n\r\n localStorage.setItem('setDashboardEnableTab', 'true');\r\n localStorage.setItem('setWeightageEnableTab', 'true');\r\n localStorage.setItem('setAssessmentEnableTab', 'true');\r\n this.route.navigate([\"/business/Dashboard\"]);\r\n }\r\n\r\n ValidateEntity() {\r\n if (this.maintab == \"AssessmentStatus\") {\r\n this.entityid = +this.AssessmentStatusEntityId;\r\n this.assessmentcyclevalue = this.ASAssessmentCycle;\r\n } else {\r\n if (this.selectedEntity !== undefined) {\r\n this.entityid = +this.selectedEntity.entityDetailsId;\r\n } else {\r\n this.entityid = +this.entity.id;\r\n }\r\n this.assessmentcyclevalue = this.selectedAssessmentCycle.value.toString();\r\n }\r\n this.isAdmin = this.roleEntity.id == \"9de2097a-2414-4e9d-8b7b-78cbbbc94863\";\r\n this.httpGenericService\r\n .fetchAll(\r\n `${this.api.entityAssessmentReview.validateAssessment}?entityDetailsId=${this.entityid}&isAdmin=${this.isAdmin}&assessmentCycle=${this.assessmentcyclevalue}&validatedBy=${this.userId}`\r\n )\r\n .pipe(first())\r\n .subscribe(async (res) => {\r\n let response: any = res;\r\n if (response.StatusCode === 200) {\r\n await this.getEntityAssessmentStatus();\r\n if (\r\n this.EntityDataAssessment.bmvalidationDone != \"\" &&\r\n this.EntityDataAssessment.dmvalidationDone != \"\"\r\n ) {\r\n this.validationrequired = true;\r\n this.isdashboard = true;\r\n }\r\n //this.isreport = true;\r\n swal({\r\n icon: \"success\",\r\n\r\n\r\n\r\n text: response.Message,\r\n });\r\n } else {\r\n swal({\r\n icon: \"error\",\r\n text: response.Message,\r\n });\r\n }\r\n });\r\n }\r\n\r\n hide(el) {\r\n el.hide();\r\n }\r\n\r\n selectedTable(item: any, isbool: boolean) {\r\n if(this.isSubmitted && !isbool) {\r\n let selectedtable:any = null;\r\n this.RiskType.forEach(element => {\r\n element.warningRiskType = false;\r\n element.groupItem.forEach(el => {\r\n if(el.riskClassificationAggr == '') {\r\n element.warningRiskType = true;\r\n if (selectedtable == null) {\r\n selectedtable = element;\r\n\r\n item = selectedtable;\r\n }\r\n return;\r\n }\r\n });\r\n });\r\n }\r\n this.RiskType1 = this.RiskType.filter((x) => x.riskType == item.riskType);\r\n this.table_no = item.riskType;\r\n }\r\n\r\n resetform() {\r\n \r\n \r\n if (this.assessmentforIR.value.offering?.id == 2 || this.assessmentforIR.value.dataNotAvailable == true) {\r\n //this.assessmentforIR.controls[\"noOfCustomers\"].clearValidators();\r\n \r\n //this.assessmentforIR.controls[\"volumeOfTransactions\"].clearValidators();\r\n //this.assessmentforIR.controls[\"valueOfTransactions\"].clearValidators();\r\n if (this.assessmentforIR.value.offering?.id == 2) {\r\n this.assessmentforIR.controls[\"dataNotAvailable\"].setValue(false);\r\n this.assessmentforIR.controls[\"noOfCustomers\"].reset();\r\n this.assessmentforIR.controls[\"volumeOfTransactions\"].reset();\r\n this.assessmentforIR.controls[\"valueOfTransactions\"].reset();\r\n }\r\n else {\r\n this.assessmentforIR.controls[\"noOfCustomers\"].setValue(\"0.00\");\r\n this.assessmentforIR.controls[\"volumeOfTransactions\"].setValue(\"0.00\");\r\n this.assessmentforIR.controls[\"valueOfTransactions\"].setValue(\"0.00\");\r\n }\r\n }\r\n else {\r\n this.assessmentforIR.controls[\"noOfCustomers\"].reset();\r\n this.assessmentforIR.controls[\"volumeOfTransactions\"].reset();\r\n this.assessmentforIR.controls[\"valueOfTransactions\"].reset();\r\n this.assessmentforIR.controls[\"noOfCustomers\"].setValidators([\r\n Validators.required,\r\n ]);\r\n this.assessmentforIR.controls[\"volumeOfTransactions\"].setValidators([\r\n Validators.required,\r\n ]);\r\n this.assessmentforIR.controls[\"valueOfTransactions\"].setValidators([\r\n Validators.required,\r\n ]);\r\n }\r\n \r\n \r\n \r\n\r\n\r\n \r\n }\r\n\r\n\r\n\r\n // paginate(evt: any) {\r\n // this.pageIndex = evt.first / evt.rows + 1;\r\n // }\r\n\r\n // setCurrentPage(n: number) {\r\n // this.table.first = (n - 1) * this.table.rows;\r\n // this.table.firstChange.emit(this.table.first);\r\n // }\r\n\r\n numberOnly(event: Event) { \r\n return this.commonserviceService.numberOnly(event);\r\n }\r\n}\r\n","export default \".style {\\n font-weight: bold;\\n font-size: small;\\n border: 2px solid honeydew;\\n}\\n\\n.color {\\n background-color: #ffffff;\\n}\\n\\nh5:hover {\\n background-color: #86bc25 !important;\\n color: #fff !important;\\n}\\n\\n.sticky {\\n position: fixed;\\n top: 152px;\\n z-index: 10;\\n background: #f5f7fa;\\n width: 95.3em;\\n}\\n\\n.sticky-2 {\\n position: fixed;\\n top: 70px;\\n z-index: 10;\\n background: #f5f7fa;\\n width: 95.3em;\\n}\\n\\n.valid-btn {\\n margin-left: 9px;\\n}\\n\\n.sticky-bu {\\n position: fixed;\\n top: 152px;\\n z-index: 10;\\n background: #f5f7fa;\\n width: 96.5em;\\n}\\n\\n.sticky-bu-2 {\\n position: fixed;\\n top: 70px;\\n z-index: 10;\\n background: #f5f7fa;\\n width: 96.5em;\\n}\\n\\n.collapsed {\\n width: 92%;\\n}\\n\\n.expand {\\n width: 81%;\\n}\\n\\ndiv.scroll {\\n overflow: auto;\\n white-space: nowrap;\\n}\\n\\ntable {\\n border-collapse: collapse;\\n border-spacing: 0;\\n width: 100%;\\n background-color: #fff;\\n border: 1px solid #c8c8c8 !important;\\n font-family: \\\"Open Sans\\\", sans-serif !important;\\n font-style: normal !important;\\n font-weight: 500;\\n font-size: 13px;\\n line-height: 19px;\\n letter-spacing: 0.01em;\\n color: #000 !important;\\n}\\n\\nthead > tr > th, tbody > tr > td {\\n text-align: left;\\n padding: 8px;\\n}\\n\\nthead > tr > th {\\n font-style: normal;\\n font-size: 12px;\\n font-weight: 700 !important;\\n line-height: 20px;\\n letter-spacing: 0.01em;\\n color: #333 !important;\\n}\\n\\ntbody > tr > td {\\n font-style: normal;\\n font-weight: 400;\\n font-size: 13px;\\n line-height: 20px;\\n letter-spacing: 0.01em;\\n color: #000 !important;\\n border-top: 1px solid #c8c8c8 !important;\\n}\\n\\ntbody > tr:nth-child(even) {\\n background-color: #f5f7fa;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbW9kdWxlcy9lbnRpdHktbWFuYWdlbWVudC9jb21wb25lbnRzL2Fzc2lnbndlaWdodGFnZXMvRDpcXEluZGlhQlVcXEFnZW50UG9vbFxcRG90TmV0XFxEb3ROZXRGcmFtZXdvcmtcXF93b3JrXFwyOTZcXHMvc3JjXFxhcHBcXG1vZHVsZXNcXGVudGl0eS1tYW5hZ2VtZW50XFxjb21wb25lbnRzXFxhc3NpZ253ZWlnaHRhZ2VzXFxhc3NpZ253ZWlnaHRhZ2VzLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9tb2R1bGVzL2VudGl0eS1tYW5hZ2VtZW50L2NvbXBvbmVudHMvYXNzaWdud2VpZ2h0YWdlcy9hc3NpZ253ZWlnaHRhZ2VzLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksaUJBQUE7RUFDQSxnQkFBQTtFQUNBLDBCQUFBO0FDQ0o7O0FERUE7RUFDSSx5QkFBQTtBQ0NKOztBREVBO0VBQ0ksb0NBQUE7RUFDQSxzQkFBQTtBQ0NKOztBRENBO0VBQ0ksZUFBQTtFQUNBLFVBQUE7RUFDQSxXQUFBO0VBQ0EsbUJBQUE7RUFDQSxhQUFBO0FDRUo7O0FEQ0U7RUFDRSxlQUFBO0VBQ0EsU0FBQTtFQUNBLFdBQUE7RUFDQSxtQkFBQTtFQUNBLGFBQUE7QUNFSjs7QURFRTtFQUNFLGdCQUFBO0FDQ0o7O0FERUU7RUFDRSxlQUFBO0VBQ0EsVUFBQTtFQUNBLFdBQUE7RUFDQSxtQkFBQTtFQUNBLGFBQUE7QUNDSjs7QURFRTtFQUNFLGVBQUE7RUFDQSxTQUFBO0VBQ0EsV0FBQTtFQUNBLG1CQUFBO0VBQ0EsYUFBQTtBQ0NKOztBREdFO0VBQ0UsVUFBQTtBQ0FKOztBREdFO0VBQ0UsVUFBQTtBQ0FKOztBREdFO0VBQ0UsY0FBQTtFQUNBLG1CQUFBO0FDQUo7O0FER0U7RUFDRSx5QkFBQTtFQUNBLGlCQUFBO0VBQ0EsV0FBQTtFQUNBLHNCQUFBO0VBQ0Esb0NBQUE7RUFDQSwrQ0FBQTtFQUNBLDZCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxlQUFBO0VBQ0EsaUJBQUE7RUFDQSxzQkFBQTtFQUNBLHNCQUFBO0FDQUo7O0FER0U7RUFDRSxnQkFBQTtFQUNBLFlBQUE7QUNBSjs7QURHRTtFQUNFLGtCQUFBO0VBQ0EsZUFBQTtFQUNBLDJCQUFBO0VBQ0EsaUJBQUE7RUFDQSxzQkFBQTtFQUNBLHNCQUFBO0FDQUo7O0FER0U7RUFDRSxrQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZUFBQTtFQUNBLGlCQUFBO0VBQ0Esc0JBQUE7RUFFQSxzQkFBQTtFQUNBLHdDQUFBO0FDREo7O0FESUU7RUFDRSx5QkFBQTtBQ0RKIiwiZmlsZSI6InNyYy9hcHAvbW9kdWxlcy9lbnRpdHktbWFuYWdlbWVudC9jb21wb25lbnRzL2Fzc2lnbndlaWdodGFnZXMvYXNzaWdud2VpZ2h0YWdlcy5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5zdHlsZXtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgZm9udC1zaXplOiBzbWFsbDtcclxuICAgIGJvcmRlcjogMnB4IHNvbGlkIGhvbmV5ZGV3O1xyXG59XHJcblxyXG4uY29sb3J7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7XHJcbn1cclxuXHJcbmg1OmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICM4NmJjMjUgIWltcG9ydGFudDtcclxuICAgIGNvbG9yOiAjZmZmIWltcG9ydGFudDtcclxufVxyXG4uc3RpY2t5IHtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIHRvcDogMTUycHg7XHJcbiAgICB6LWluZGV4OiAxMDtcclxuICAgIGJhY2tncm91bmQ6ICNmNWY3ZmE7XHJcbiAgICB3aWR0aDogOTUuM2VtO1xyXG4gICBcclxuICB9XHJcbiAgLnN0aWNreS0yIHtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIHRvcDogNzBweDtcclxuICAgIHotaW5kZXg6IDEwO1xyXG4gICAgYmFja2dyb3VuZDogI2Y1ZjdmYTtcclxuICAgIHdpZHRoOiA5NS4zZW07XHJcbiAgIFxyXG4gIH1cclxuXHJcbiAgLnZhbGlkLWJ0bntcclxuICAgIG1hcmdpbi1sZWZ0OiA5cHg7IFxyXG4gIH1cclxuXHJcbiAgLnN0aWNreS1idSB7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICB0b3A6IDE1MnB4O1xyXG4gICAgei1pbmRleDogMTA7XHJcbiAgICBiYWNrZ3JvdW5kOiAjZjVmN2ZhO1xyXG4gICAgd2lkdGg6IDk2LjVlbTtcclxuICAgXHJcbiAgfVxyXG4gIC5zdGlja3ktYnUtMiB7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICB0b3A6IDcwcHg7XHJcbiAgICB6LWluZGV4OiAxMDtcclxuICAgIGJhY2tncm91bmQ6ICNmNWY3ZmE7XHJcbiAgICB3aWR0aDogOTYuNWVtO1xyXG4gICBcclxuICB9XHJcblxyXG4gIC5jb2xsYXBzZWQge1xyXG4gICAgd2lkdGg6IDkyJTtcclxuICB9XHJcblxyXG4gIC5leHBhbmQge1xyXG4gICAgd2lkdGg6IDgxJTtcclxuICB9XHJcblxyXG4gIGRpdi5zY3JvbGwge1xyXG4gICAgb3ZlcmZsb3c6IGF1dG87XHJcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gIH1cclxuXHJcbiAgdGFibGUge1xyXG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcclxuICAgIGJvcmRlci1zcGFjaW5nOiAwO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2M4YzhjOCAhaW1wb3J0YW50O1xyXG4gICAgZm9udC1mYW1pbHk6ICdPcGVuIFNhbnMnLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQ7XHJcbiAgICBmb250LXN0eWxlOiBub3JtYWwgIWltcG9ydGFudDtcclxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICBmb250LXNpemU6IDEzcHg7XHJcbiAgICBsaW5lLWhlaWdodDogMTlweDtcclxuICAgIGxldHRlci1zcGFjaW5nOiAwLjAxZW07XHJcbiAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50O1xyXG4gIH1cclxuICBcclxuICB0aGVhZD50cj50aCwgdGJvZHk+dHI+dGQge1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgIHBhZGRpbmc6IDhweDtcclxuICB9XHJcblxyXG4gIHRoZWFkPnRyPnRoIHtcclxuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgIGZvbnQtd2VpZ2h0OiA3MDAhaW1wb3J0YW50O1xyXG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XHJcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wMWVtO1xyXG4gICAgY29sb3I6ICMzMzMhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgdGJvZHk+dHI+dGQge1xyXG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgIGZvbnQtc2l6ZTogMTNweDtcclxuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDFlbTtcclxuICAgIC8vd29yZC1icmVhazogYnJlYWstYWxsO1xyXG4gICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDtcclxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjYzhjOGM4ICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG4gIFxyXG4gIHRib2R5PnRyOm50aC1jaGlsZChldmVuKXtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY3ZmE7XHJcbiAgfVxyXG4iLCIuc3R5bGUge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiBzbWFsbDtcbiAgYm9yZGVyOiAycHggc29saWQgaG9uZXlkZXc7XG59XG5cbi5jb2xvciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG59XG5cbmg1OmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzg2YmMyNSAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xufVxuXG4uc3RpY2t5IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDE1MnB4O1xuICB6LWluZGV4OiAxMDtcbiAgYmFja2dyb3VuZDogI2Y1ZjdmYTtcbiAgd2lkdGg6IDk1LjNlbTtcbn1cblxuLnN0aWNreS0yIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDcwcHg7XG4gIHotaW5kZXg6IDEwO1xuICBiYWNrZ3JvdW5kOiAjZjVmN2ZhO1xuICB3aWR0aDogOTUuM2VtO1xufVxuXG4udmFsaWQtYnRuIHtcbiAgbWFyZ2luLWxlZnQ6IDlweDtcbn1cblxuLnN0aWNreS1idSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAxNTJweDtcbiAgei1pbmRleDogMTA7XG4gIGJhY2tncm91bmQ6ICNmNWY3ZmE7XG4gIHdpZHRoOiA5Ni41ZW07XG59XG5cbi5zdGlja3ktYnUtMiB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiA3MHB4O1xuICB6LWluZGV4OiAxMDtcbiAgYmFja2dyb3VuZDogI2Y1ZjdmYTtcbiAgd2lkdGg6IDk2LjVlbTtcbn1cblxuLmNvbGxhcHNlZCB7XG4gIHdpZHRoOiA5MiU7XG59XG5cbi5leHBhbmQge1xuICB3aWR0aDogODElO1xufVxuXG5kaXYuc2Nyb2xsIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzhjOGM4ICFpbXBvcnRhbnQ7XG4gIGZvbnQtZmFtaWx5OiBcIk9wZW4gU2Fuc1wiLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQ7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbCAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogNTAwO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGxpbmUtaGVpZ2h0OiAxOXB4O1xuICBsZXR0ZXItc3BhY2luZzogMC4wMWVtO1xuICBjb2xvcjogIzAwMCAhaW1wb3J0YW50O1xufVxuXG50aGVhZCA+IHRyID4gdGgsIHRib2R5ID4gdHIgPiB0ZCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHBhZGRpbmc6IDhweDtcbn1cblxudGhlYWQgPiB0ciA+IHRoIHtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDAgIWltcG9ydGFudDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAxZW07XG4gIGNvbG9yOiAjMzMzICFpbXBvcnRhbnQ7XG59XG5cbnRib2R5ID4gdHIgPiB0ZCB7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDFlbTtcbiAgY29sb3I6ICMwMDAgIWltcG9ydGFudDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjOGM4YzggIWltcG9ydGFudDtcbn1cblxudGJvZHkgPiB0cjpudGgtY2hpbGQoZXZlbikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmN2ZhO1xufSJdfQ== */\";","import { Component, OnInit } from \"@angular/core\";\r\nimport {\r\n FormArray,\r\n FormBuilder,\r\n FormControl,\r\n FormGroup,\r\n Validators,\r\n} from \"@angular/forms\";\r\nimport { Router } from \"@angular/router\";\r\nimport { first } from \"rxjs/operators\";\r\nimport { CredentialsService } from \"src/app/core/services/credentials.service\";\r\nimport { HttpGenericService } from \"src/app/core/services/http-genric.service\";\r\nimport { API } from \"src/app/shared/constants/api.constants\";\r\nimport {\r\n Pattern,\r\n ValidationMessage,\r\n} from \"src/app/shared/constants/validations.constants\";\r\nimport {\r\n Assignweightage,\r\n SubCategory,\r\n SubCategoryDetails,\r\n} from \"../../model/assignweightage\";\r\nimport { EntityManagementService } from \"../../services/entity-management.service\";\r\nimport { CommonserviceService } from \"src/app/shared/commonservices/commonservice.service\";\r\nconst swal = require(\"sweetalert\");\r\nimport * as globleConsts from \"../../../../shared/constants/globle.constants\";\r\nimport { Location } from \"@angular/common\";\r\nimport { GetRoleList } from \"src/app/modules/permission-management/models/getRoles\";\r\nimport { SettingsService } from \"src/app/core/settings/settings.service\";\r\n\r\n@Component({\r\n selector: \"app-assignweightages\",\r\n templateUrl: \"./assignweightages.component.html\",\r\n styleUrls: [\"./assignweightages.component.scss\"],\r\n})\r\nexport class AssignweightagesComponent implements OnInit {\r\n IR: boolean = false;\r\n CE: boolean = false;\r\n BU: boolean = false;\r\n status: string;\r\n currentUser: any;\r\n bulist: any;\r\n assignweightageFormArray: any[] = [];\r\n buname: any[];\r\n pattern = Pattern;\r\n\r\n required = ValidationMessage.required;\r\n validationMessage = ValidationMessage;\r\n noWhiteSpace = ValidationMessage.noWhiteSpace;\r\n weightagePattern = ValidationMessage.weightages;\r\n VALIDATIONS = {\r\n required: \"Field is required\",\r\n noWhiteSpace: \"field cannot be blank\",\r\n };\r\n //assignweightageForm: FormGroup;\r\n api = API;\r\n irceList: any[];\r\n entity: any;\r\n riskDetails: Assignweightage = {};\r\n riskCategoryid: number;\r\n riskSubCategoryWeightageAssignEntity: SubCategory[] = [];\r\n isEntityEdit: boolean;\r\n riskSubCategoryDetailsWeightageAsignEntity: SubCategoryDetails[] = [];\r\n CustomersData: any;\r\n ProductsData: any;\r\n TransactionsData: any;\r\n GeographyData: any;\r\n ChannelsData: any;\r\n OtherQualitativeFactorsData: any;\r\n AssigndisplayModal: boolean;\r\n //assignSubCategoryweightages: any[] = [];\r\n //assignSubCategoryDetailsweightages: any[] = [];\r\n RCsum: number = 0;\r\n subcategory: boolean = false;\r\n subcategorydetails: boolean = false;\r\n Customersum: number = 0;\r\n Productsum: number = 0;\r\n Transactionsum: number = 0;\r\n Geographysum: number = 0;\r\n Channelssum: number = 0;\r\n QFsum: number = 0;\r\n ceFormArray: any[] = [];\r\n //ceForm: FormGroup;\r\n buFormArray: any[] = [];\r\n AssigndisplayModalforce: boolean;\r\n buWeightageAssignEntity: any;\r\n AssigndisplayModalforbu: boolean;\r\n total: number = 0;\r\n mode: string;\r\n isselect: boolean = false;\r\n isswitchtab: boolean;\r\n entitymanagementPermissionMode: any;\r\n auditreportPermissionMode: any;\r\n permissionType = globleConsts.PermissionTypeEnum;\r\n editMode: boolean;\r\n viewMode: boolean;\r\n deleteMode: boolean;\r\n maintab: string;\r\n entitylist: any;\r\n roleEntity: GetRoleList = {};\r\n permission = [];\r\n selectedEntity;\r\n selectedBU;\r\n entityName: any;\r\n AssessmentStatusBUId: any;\r\n AssessmentStatusBUName: any;\r\n AssessmentStatusEntityId: any;\r\n AssessmentStatusEntityName: any;\r\n assessmentCycles: any;\r\n selectedAssessmentCycle: any;\r\n ASAssessmentCycle: any;\r\n assessmentcyclevalue: any;\r\n panelcss: boolean;\r\n attributevalue: number;\r\n riskSubCategoryId: number = 0;\r\n riskSubCategoryDetailsId: number = 0;\r\n riskTypeId: number = 0;\r\n\r\n constructor(\r\n private fb: FormBuilder,\r\n private route: Router,\r\n private httpGenericService: HttpGenericService,\r\n private credentialsService: CredentialsService,\r\n private entityManagementService: EntityManagementService,\r\n private commonserviceService: CommonserviceService,\r\n private _location: Location,\r\n private settingsService: SettingsService\r\n ) {\r\n this.attributevalue = 0;\r\n }\r\n\r\n async ngOnInit(): Promise {\r\n this.settingsService.getpanelValue.subscribe((value) => {\r\n this.panelcss = value;\r\n });\r\n this.currentUser = this.credentialsService.credentials;\r\n this.roleEntity.name = this.credentialsService.credentials.assignedRole;\r\n this.roleEntity.id = this.credentialsService.credentials.roleId;\r\n this.entityName = JSON.parse(localStorage.getItem(\"setEntityName\"));\r\n this.maintab = localStorage.getItem(\"maintab\");\r\n this.getSetInitialData();\r\n if (this.maintab == \"false\") {\r\n localStorage.setItem(\"setWeightageCss\", \"1\");\r\n await this.commonserviceService.permissioncheck(\r\n this.currentUser,\r\n this.roleEntity\r\n );\r\n this.permission = this.credentialsService.getPermissionDetails();\r\n if (this.permission != undefined) {\r\n this.entitymanagementPermissionMode = this.permission.find(\r\n (s) => s.permissionName === globleConsts.PermissionsEnum.Weightages\r\n ).permissionTypeName;\r\n }\r\n this.entitymanagementPermissionMode = this.entitymanagementPermissionMode.split(\r\n \",\"\r\n );\r\n localStorage.setItem(\"ASSESSMENTSTATUSPERMISSIONS\", JSON.stringify(this.entitymanagementPermissionMode));\r\n \r\n await this.getAssessmentCycles(this.entity.id);\r\n //this.getEntityList();\r\n //this.getBUList();\r\n } else if (this.maintab == \"AssessmentStatus\") {\r\n localStorage.setItem(\"setWeightageCss\", \"1\");\r\n this.AssessmentStatusEntityId = localStorage.getItem(\"ASEntityId\");\r\n this.AssessmentStatusEntityName = localStorage.getItem('ASEntityName');\r\n // this.permission = this.credentialsService.getPermissionDetails();\r\n // if (this.permission != undefined) {\r\n // this.auditreportPermissionMode = this.permission.find(\r\n // (s) =>\r\n // s.permissionName === globleConsts.PermissionsEnum.Assessment\r\n // ).permissionTypeName;\r\n // }\r\n // debugger\r\n // this.auditreportPermissionMode = this.auditreportPermissionMode.split(',');\r\n // localStorage.setItem(\"ASSESSMENTSTATUSPERMISSIONS\", JSON.stringify(this.auditreportPermissionMode));\r\n this.entitymanagementPermissionMode = JSON.parse(\r\n localStorage.getItem(\"ASSESSMENTSTATUSPERMISSIONS\")\r\n );\r\n this.ASAssessmentCycle = JSON.parse(\r\n localStorage.getItem(\"ASAssessmentCycle\")\r\n );\r\n //}\r\n this.getBUList();\r\n } else {\r\n this.entitymanagementPermissionMode = JSON.parse(\r\n localStorage.getItem(\"ENTITYPERMISSIONS\")\r\n );\r\n this.entity = JSON.parse(localStorage.getItem(\"setEntityId\"));\r\n await this.getAssessmentCycles(this.entity.id);\r\n }\r\n this.entitymanagementPermissionMode.forEach((element) => {\r\n if (element === this.permissionType.NoAccess) {\r\n this._location.back();\r\n } else if (element == this.permissionType.Edit) {\r\n this.editMode = true;\r\n } else if (element == this.permissionType.View) {\r\n this.viewMode = true;\r\n } else if (element == this.permissionType.Delete) {\r\n this.deleteMode = true;\r\n }\r\n });\r\n\r\n this.status = localStorage.getItem(\"setWeightageCss\");\r\n if (this.status == \"1\") {\r\n this.IR = true;\r\n } else if (this.status == \"2\") {\r\n this.CE = true;\r\n } else if (this.status == \"3\") {\r\n this.BU = true;\r\n }\r\n /*if (this.maintab == 'AssessmentStatus') {\r\n //await this.getIRorCRList();\r\n }*/\r\n }\r\n\r\n getAssessmentCycles(entityId: number) {\r\n return new Promise((resolve, reject) => {\r\n //this.entityDetailsId = 20196;\r\n this.httpGenericService\r\n .fetchAll(`${this.api.BusinessUnits.getAssessmentCycles}?entityDetailsId=${entityId}`)\r\n\r\n .pipe(first())\r\n .subscribe((res) => {\r\n this.assessmentCycles = res[\"Result\"];\r\n resolve(true);\r\n });\r\n });\r\n }\r\n\r\n setIR() {\r\n debugger\r\n this.isswitchtab = false;\r\n if (this.CE) {\r\n if (this.RCsum !== 100) {\r\n swal({\r\n icon: \"warning\",\r\n text: \"Please assign weightage\",\r\n });\r\n } else {\r\n this.isswitchtab = true;\r\n }\r\n } else if (this.BU) {\r\n if (this.RCsum !== 100) {\r\n swal({\r\n icon: \"warning\",\r\n text: \"Please assign weightage\",\r\n });\r\n } else {\r\n this.isswitchtab = true;\r\n }\r\n }\r\n if (this.isswitchtab) {\r\n swal({\r\n text:\r\n \"Please save the changes before proceeding further else previous tab data will be lost. Do you still want to continue\",\r\n icon: \"warning\",\r\n buttons: {\r\n cancel: {\r\n text: \"No\",\r\n value: null,\r\n visible: true,\r\n className: \"bg-danger\",\r\n closeModal: true,\r\n },\r\n confirm: {\r\n text: \"Yes\",\r\n value: true,\r\n visible: true,\r\n className: \"bg-primary\",\r\n closeModal: true,\r\n },\r\n },\r\n }).then((isConfirm) => {\r\n if (isConfirm) {\r\n this.isselect = false;\r\n this.riskSubCategoryWeightageAssignEntity = null;\r\n this.CustomersData = null;\r\n this.ProductsData = null;\r\n this.TransactionsData = null;\r\n this.GeographyData = null;\r\n this.ChannelsData = null;\r\n this.OtherQualitativeFactorsData = null;\r\n this.selectedBU = null;\r\n //this.assignweightageForm.reset();\r\n this.IR = true;\r\n this.CE = false;\r\n this.BU = false;\r\n if (this.maintab == \"false\") {\r\n this.selectedEntity = null;\r\n this.bulist = null;\r\n this.getAssessmentCycles(this.entity.id);\r\n //this.getEntityList();\r\n } else if (this.maintab == \"AssessmentStatus\") {\r\n this.getBUList();\r\n } else this.getAssessmentCycles(this.entity.id);\r\n }\r\n });\r\n }\r\n }\r\n\r\n setCE() {\r\n this.isswitchtab = false;\r\n if (this.IR) {\r\n if (\r\n this.RCsum !== 100 ||\r\n this.Customersum !== 100 ||\r\n this.Productsum !== 100 ||\r\n this.Transactionsum !== 100 ||\r\n this.Geographysum !== 100 ||\r\n this.Channelssum !== 100 ||\r\n this.QFsum !== 100\r\n ) {\r\n swal({\r\n icon: \"warning\",\r\n text: \"Please assign weightage to all sections\",\r\n });\r\n } else {\r\n this.isswitchtab = true;\r\n }\r\n } else if (this.BU) {\r\n if (this.RCsum !== 100) {\r\n swal({\r\n icon: \"warning\",\r\n text: \"Please assign weightage\",\r\n });\r\n } else {\r\n this.isswitchtab = true;\r\n }\r\n }\r\n if (this.isswitchtab) {\r\n swal({\r\n text:\r\n \"Please save the changes before proceeding further else previous tab data will be lost. Do you still wants to continue\",\r\n icon: \"warning\",\r\n buttons: {\r\n cancel: {\r\n text: \"No\",\r\n value: null,\r\n visible: true,\r\n className: \"bg-danger\",\r\n closeModal: true,\r\n },\r\n confirm: {\r\n text: \"Yes\",\r\n value: true,\r\n visible: true,\r\n className: \"bg-primary\",\r\n closeModal: true,\r\n },\r\n },\r\n }).then((isConfirm) => {\r\n if (isConfirm) {\r\n this.isselect = false;\r\n this.riskSubCategoryWeightageAssignEntity = null;\r\n this.selectedBU = null;\r\n //this.ceForm.reset();\r\n this.IR = false;\r\n this.CE = true;\r\n this.BU = false;\r\n if (this.maintab == \"false\") {\r\n this.selectedEntity = null;\r\n this.bulist = null;\r\n this.getAssessmentCycles(this.entity.id);\r\n //this.getEntityList();\r\n }\r\n if (this.maintab == \"AssessmentStatus\") this.getBUList();\r\n else this.getAssessmentCycles(this.entity.id);\r\n }\r\n });\r\n }\r\n }\r\n\r\n setBU() {\r\n this.isswitchtab = false;\r\n if (this.IR) {\r\n if (\r\n this.RCsum !== 100 ||\r\n this.Customersum !== 100 ||\r\n this.Productsum !== 100 ||\r\n this.Transactionsum !== 100 ||\r\n this.Geographysum !== 100 ||\r\n this.Channelssum !== 100 ||\r\n this.QFsum !== 100\r\n ) {\r\n swal({\r\n icon: \"warning\",\r\n text: \"Please assign weightage to all sections\",\r\n });\r\n } else {\r\n this.isswitchtab = true;\r\n }\r\n } else if (this.CE) {\r\n if (this.RCsum !== 100) {\r\n swal({\r\n icon: \"warning\",\r\n text: \"Please assign weightage\",\r\n });\r\n } else {\r\n this.isswitchtab = true;\r\n }\r\n }\r\n if (this.isswitchtab) {\r\n swal({\r\n text:\r\n \"Please save the changes before proceeding further else previous tab data will be lost. Do you still wants to continue\",\r\n icon: \"warning\",\r\n buttons: {\r\n cancel: {\r\n text: \"No\",\r\n value: null,\r\n visible: true,\r\n className: \"bg-danger\",\r\n closeModal: true,\r\n },\r\n confirm: {\r\n text: \"Yes\",\r\n value: true,\r\n visible: true,\r\n className: \"bg-primary\",\r\n closeModal: true,\r\n },\r\n },\r\n }).then((isConfirm) => {\r\n if (isConfirm) {\r\n this.isselect = false;\r\n this.IR = false;\r\n this.CE = false;\r\n this.BU = true;\r\n if (this.maintab == \"false\") {\r\n this.selectedEntity = null;\r\n this.buWeightageAssignEntity = null;\r\n //this.getEntityList();\r\n this.getAssessmentCycles(this.entity.id);\r\n }\r\n if (this.maintab == \"AssessmentStatus\") this.getBUList();\r\n else this.getAssessmentCycles(this.entity.id);\r\n }\r\n });\r\n }\r\n }\r\n\r\n createOnboardingForm = () => {\r\n this.assignweightageFormArray = [\r\n {\r\n rowGroup: [\r\n {\r\n name: \"table\",\r\n controlType: \"IRSubCategorytable\",\r\n columnSize: \"col-md-12\",\r\n },\r\n ],\r\n reactiveControlType: \"group\",\r\n screenBlock: \"first\",\r\n },\r\n {\r\n rowGroup: [\r\n {\r\n name: \"Overall Inherent Risk\",\r\n label: \"Overall Inherent Risk\",\r\n controlType: \"OverallInherentRisk\",\r\n columnSize: \"col-md-3 mb-1\",\r\n },\r\n ],\r\n reactiveControlType: \"group\",\r\n screenBlock: \"first\",\r\n },\r\n {\r\n rowGroup: [\r\n {\r\n name: \"Customers\",\r\n label: \"Customers\",\r\n controlType: \"RiskCategory\",\r\n columnSize: \"col-md-12\",\r\n },\r\n ],\r\n reactiveControlType: \"group\",\r\n screenBlock: \"first\",\r\n },\r\n {\r\n rowGroup: [\r\n {\r\n name: \"table\",\r\n controlType: \"Customerstable\",\r\n columnSize: \"col-md-12\",\r\n },\r\n ],\r\n reactiveControlType: \"group\",\r\n screenBlock: \"first\",\r\n },\r\n {\r\n rowGroup: [\r\n {\r\n name: \"Overall Risk Score & Rating\",\r\n label: \"Overall Risk Score & Rating\",\r\n controlType: \"CustomersRiskScore\",\r\n columnSize: \"col-md-3 mb-1\",\r\n },\r\n ],\r\n reactiveControlType: \"group\",\r\n screenBlock: \"first\",\r\n },\r\n {\r\n rowGroup: [\r\n {\r\n name: \"Products\",\r\n label: \"Products\",\r\n controlType: \"RiskCategory\",\r\n columnSize: \"col-md-12\",\r\n },\r\n ],\r\n reactiveControlType: \"group\",\r\n screenBlock: \"first\",\r\n },\r\n {\r\n rowGroup: [\r\n {\r\n name: \"table\",\r\n controlType: \"Productstable\",\r\n columnSize: \"col-md-12\",\r\n },\r\n ],\r\n reactiveControlType: \"group\",\r\n screenBlock: \"first\",\r\n },\r\n {\r\n rowGroup: [\r\n {\r\n name: \"Overall Risk Score & Rating\",\r\n label: \"Overall Risk Score & Rating\",\r\n controlType: \"ProductsRiskScore\",\r\n columnSize: \"col-md-3 mb-1\",\r\n },\r\n ],\r\n reactiveControlType: \"group\",\r\n screenBlock: \"first\",\r\n },\r\n {\r\n rowGroup: [\r\n {\r\n name: \"Transactions\",\r\n label: \"Transactions\",\r\n controlType: \"RiskCategory\",\r\n columnSize: \"col-md-12\",\r\n },\r\n ],\r\n reactiveControlType: \"group\",\r\n screenBlock: \"first\",\r\n },\r\n {\r\n rowGroup: [\r\n {\r\n name: \"table\",\r\n controlType: \"Transactionstable\",\r\n columnSize: \"col-md-12\",\r\n },\r\n ],\r\n reactiveControlType: \"group\",\r\n screenBlock: \"first\",\r\n },\r\n {\r\n rowGroup: [\r\n {\r\n name: \"Overall Risk Score & Rating\",\r\n label: \"Overall Risk Score & Rating\",\r\n controlType: \"TransactionsRiskScore\",\r\n columnSize: \"col-md-3 mb-1\",\r\n },\r\n ],\r\n reactiveControlType: \"group\",\r\n screenBlock: \"first\",\r\n },\r\n {\r\n rowGroup: [\r\n {\r\n name: \"Geography\",\r\n label: \"Geography\",\r\n controlType: \"RiskCategory\",\r\n columnSize: \"col-md-12\",\r\n },\r\n ],\r\n reactiveControlType: \"group\",\r\n screenBlock: \"first\",\r\n },\r\n {\r\n rowGroup: [\r\n {\r\n name: \"table\",\r\n controlType: \"Geographytable\",\r\n columnSize: \"col-md-12\",\r\n },\r\n ],\r\n reactiveControlType: \"group\",\r\n screenBlock: \"first\",\r\n },\r\n {\r\n rowGroup: [\r\n {\r\n name: \"Overall Risk Score & Rating\",\r\n label: \"Overall Risk Score & Rating\",\r\n controlType: \"GeographyRiskScore\",\r\n columnSize: \"col-md-3 mb-1\",\r\n },\r\n ],\r\n reactiveControlType: \"group\",\r\n screenBlock: \"first\",\r\n },\r\n {\r\n rowGroup: [\r\n {\r\n name: \"Channels\",\r\n label: \"Channels\",\r\n controlType: \"RiskCategory\",\r\n columnSize: \"col-md-12\",\r\n },\r\n ],\r\n reactiveControlType: \"group\",\r\n screenBlock: \"first\",\r\n },\r\n {\r\n rowGroup: [\r\n {\r\n name: \"table\",\r\n controlType: \"Channelstable\",\r\n columnSize: \"col-md-12\",\r\n },\r\n ],\r\n reactiveControlType: \"group\",\r\n screenBlock: \"first\",\r\n },\r\n {\r\n rowGroup: [\r\n {\r\n name: \"Overall Risk Score & Rating\",\r\n label: \"Overall Risk Score & Rating\",\r\n controlType: \"ChannelsRiskScore\",\r\n columnSize: \"col-md-3 mb-1\",\r\n },\r\n ],\r\n reactiveControlType: \"group\",\r\n screenBlock: \"first\",\r\n },\r\n {\r\n rowGroup: [\r\n {\r\n name: \"Other Qualitative Factors\",\r\n label: \"Other Qualitative Factors\",\r\n controlType: \"RiskCategory\",\r\n columnSize: \"col-md-12\",\r\n },\r\n ],\r\n reactiveControlType: \"group\",\r\n screenBlock: \"first\",\r\n },\r\n {\r\n rowGroup: [\r\n {\r\n name: \"table\",\r\n controlType: \"OtherQualitativeFactorstable\",\r\n columnSize: \"col-md-12\",\r\n },\r\n ],\r\n reactiveControlType: \"group\",\r\n screenBlock: \"first\",\r\n },\r\n {\r\n rowGroup: [\r\n {\r\n name: \"Overall Risk Score & Rating\",\r\n label: \"Overall Risk Score & Rating\",\r\n controlType: \"QFRiskScore\",\r\n columnSize: \"col-md-3\",\r\n },\r\n ],\r\n reactiveControlType: \"group\",\r\n screenBlock: \"first\",\r\n },\r\n ];\r\n };\r\n\r\n CEForm = () => {\r\n this.ceFormArray = [\r\n {\r\n rowGroup: [\r\n {\r\n name: \"table\",\r\n controlType: \"CESubCategorytable\",\r\n columnSize: \"col-md-12\",\r\n },\r\n ],\r\n reactiveControlType: \"group\",\r\n screenBlock: \"first\",\r\n },\r\n {\r\n rowGroup: [\r\n {\r\n name: \"Control Effectiveness\",\r\n label: \"Control Effectiveness\",\r\n controlType: \"OverallCE\",\r\n columnSize: \"col-md-3\",\r\n },\r\n ],\r\n reactiveControlType: \"group\",\r\n screenBlock: \"first\",\r\n },\r\n ];\r\n };\r\n\r\n BUForm = () => {\r\n this.buFormArray = [\r\n {\r\n rowGroup: [\r\n {\r\n name: \"table\",\r\n controlType: \"BUSubCategorytable\",\r\n columnSize: \"col-md-12\",\r\n },\r\n ],\r\n reactiveControlType: \"group\",\r\n screenBlock: \"first\",\r\n },\r\n {\r\n rowGroup: [\r\n {\r\n name: \"Overall BU score\",\r\n label: \"Overall BU score\",\r\n controlType: \"OverallBU\",\r\n columnSize: \"col-md-3\",\r\n },\r\n ],\r\n reactiveControlType: \"group\",\r\n screenBlock: \"first\",\r\n },\r\n ];\r\n };\r\n\r\n assignweightage = new FormGroup({\r\n riskcategoryORattribute: new FormControl(\"\", [\r\n Validators.required,\r\n this.commonserviceService.noWhitespaceValidator,\r\n ]),\r\n weightage: new FormControl(\"\", [\r\n Validators.required,\r\n this.commonserviceService.noWhitespaceValidator,\r\n Validators.pattern(this.pattern.weightages),\r\n ]),\r\n index: new FormControl(null),\r\n subCategory: new FormControl(null),\r\n riskAttribute: new FormControl(null),\r\n buname: new FormControl(null),\r\n riskType: new FormControl(null),\r\n });\r\n\r\n getSetInitialData() {\r\n // get data\r\n this.buWeightageAssignEntity = null;\r\n this.riskSubCategoryWeightageAssignEntity = null;\r\n this.CustomersData = null;\r\n this.ProductsData = null;\r\n this.TransactionsData = null;\r\n this.GeographyData = null;\r\n this.ChannelsData = null;\r\n this.OtherQualitativeFactorsData = null;\r\n this.createOnboardingForm();\r\n this.CEForm();\r\n this.BUForm();\r\n //this.getEntityList();\r\n //this.getBUList();\r\n }\r\n\r\n getEntityList() {\r\n return new Promise((resolve, reject) => {\r\n let userid = +this.currentUser.userId;\r\n this.httpGenericService\r\n .fetchAll(\r\n `${this.api.entityDetails.getEntityDetailsByuserId}?userId=${userid}`\r\n )\r\n .pipe(first())\r\n .subscribe((res) => {\r\n let response: any = res[\"Result\"];\r\n this.entitylist = response;\r\n //this.selectedEntity = this.entitylist[0];\r\n //this.getBUList();\r\n resolve(true);\r\n });\r\n });\r\n }\r\n\r\n getBUList() {\r\n this.riskSubCategoryWeightageAssignEntity = null;\r\n this.selectedBU = null;\r\n this.isselect = false;\r\n //this.ceForm.reset();\r\n /* this.IR = false;\r\n this.CE = true;\r\n this.BU = false;*/\r\n if (this.maintab == \"AssessmentStatus\") {\r\n this.riskDetails.entityId = this.AssessmentStatusEntityId;\r\n\r\n let cleanedStr: string = this.AssessmentStatusEntityId.replace(/\"/g, '');\r\n this.riskDetails.entityId=Number(cleanedStr);\r\n this.assessmentcyclevalue = this.ASAssessmentCycle;\r\n } else {\r\n if (this.selectedEntity !== undefined) {\r\n this.isselect = false;\r\n this.riskDetails.entityId = +this.selectedEntity.entityDetailsId;\r\n } else {\r\n this.riskDetails.entityId = +this.entity.id;\r\n }\r\n this.assessmentcyclevalue = this.selectedAssessmentCycle.value.toString();\r\n }\r\n this.httpGenericService\r\n .fetchAll(\r\n `${this.api.weightages.getAllEntityBusinessUnitsWeightage}?EntityId=${this.riskDetails.entityId}&assessmentCycle=${this.assessmentcyclevalue}`\r\n )\r\n .pipe(first())\r\n .subscribe((res) => {\r\n let response: any = res[\"Result\"];\r\n this.buWeightageAssignEntity = response;\r\n this.bulist = response;\r\n if (this.BU) {\r\n this.isselect = true;\r\n }\r\n //this.selectedBU = this.bulist[0];\r\n // this.assignweightageForm.controls[\"businessunit\"].setValue(this.bulist[0]);\r\n // this.ceForm.controls[\"businessunit\"].setValue(this.bulist[0]);\r\n //this.getIRorCRList();\r\n this.getTotal(this.bulist);\r\n this.RCsum = this.total;\r\n });\r\n }\r\n\r\n getIRorCRList() {\r\n return new Promise((resolve, reject) => {\r\n this.isselect = true;\r\n this.RCsum = 0;\r\n if (this.IR == true) {\r\n this.riskCategoryid = 1;\r\n }\r\n if (this.CE == true) {\r\n this.riskCategoryid = 2;\r\n }\r\n debugger\r\n if (this.maintab == \"AssessmentStatus\") {\r\n //this.riskDetails.businessUnitId = +this.AssessmentStatusBUId;\r\n this.riskDetails.entityId = +this.AssessmentStatusEntityId;\r\n this.assessmentcyclevalue = this.ASAssessmentCycle;\r\n } else {\r\n if (this.selectedEntity !== undefined) {\r\n this.riskDetails.entityId = +this.selectedEntity.entityDetailsId;\r\n } else {\r\n this.riskDetails.entityId = +this.entity.id;\r\n }\r\n this.assessmentcyclevalue = this.selectedAssessmentCycle.value.toString();\r\n }\r\n //var onboarding = this.assignweightageForm.value;\r\n //this.riskDetails.entityId = +this.entity.id;\r\n //this.riskDetails.businessUnitId = onboarding.businessunit.businessUnitId;\r\n\r\n this.riskDetails.businessUnitId = this.selectedBU.businessUnitId;\r\n\r\n this.httpGenericService\r\n .fetchAll(\r\n `${this.api.weightages.getAllRiskCategoryandSubCategoryWeighatages}?EntityId=${this.riskDetails.entityId}&BusinessUnitId=${this.riskDetails.businessUnitId}\r\n &RiskCategoryid=${this.riskCategoryid}&assessmentCycle=${this.assessmentcyclevalue}`\r\n )\r\n .pipe(first())\r\n .subscribe((res) => {\r\n let response: any = res[\"Result\"];\r\n //this.irceList = response;\r\n this.riskSubCategoryWeightageAssignEntity =\r\n response.riskSubCategoryWeightageAssignEntity;\r\n this.getTotal(this.riskSubCategoryWeightageAssignEntity);\r\n this.RCsum = this.total;\r\n localStorage.setItem(\"RCsum\",JSON.stringify(this.RCsum));\r\n this.riskSubCategoryDetailsWeightageAsignEntity =\r\n response.riskSubCategoryDetailsWeightageAsignEntity;\r\n this.customerdata(this.riskSubCategoryDetailsWeightageAsignEntity);\r\n this.productsdata(this.riskSubCategoryDetailsWeightageAsignEntity);\r\n this.transactionsdata(\r\n this.riskSubCategoryDetailsWeightageAsignEntity\r\n );\r\n this.geographydata(this.riskSubCategoryDetailsWeightageAsignEntity);\r\n this.channelsdata(this.riskSubCategoryDetailsWeightageAsignEntity);\r\n this.QFdata(this.riskSubCategoryDetailsWeightageAsignEntity);\r\n this.getTotal(this.CustomersData);\r\n this.Customersum = this.total;\r\n localStorage.setItem(\"Customersum\",JSON.stringify(this.Customersum));\r\n this.getTotal(this.ProductsData);\r\n this.Productsum = this.total;\r\n localStorage.setItem(\"Productsum\",JSON.stringify(this.Productsum));\r\n this.getTotal(this.TransactionsData);\r\n this.Transactionsum = this.total;\r\n localStorage.setItem(\"Transactionsum\",JSON.stringify(this.Transactionsum));\r\n this.getTotal(this.GeographyData);\r\n this.Geographysum = this.total;\r\n localStorage.setItem(\"Geographysum\",JSON.stringify(this.Geographysum));\r\n this.getTotal(this.ChannelsData);\r\n this.Channelssum = this.total;\r\n localStorage.setItem(\"Channelssum\",JSON.stringify(this.Channelssum));\r\n\r\n this.getTotal(this.OtherQualitativeFactorsData);\r\n this.QFsum = this.total;\r\n localStorage.setItem(\"QFsum\",JSON.stringify(this.QFsum));\r\n\r\n resolve(true);\r\n });\r\n });\r\n }\r\n\r\n customerdata(value: any) {\r\n this.CustomersData = value.filter((x) => x.riskSubCategoryId == 1);\r\n return this.CustomersData;\r\n }\r\n\r\n productsdata(value: any) {\r\n this.ProductsData = value.filter((x) => x.riskSubCategoryId == 2);\r\n return this.ProductsData;\r\n }\r\n\r\n transactionsdata(value: any) {\r\n this.TransactionsData = value.filter((x) => x.riskSubCategoryId == 3);\r\n return this.TransactionsData;\r\n }\r\n\r\n geographydata(value: any) {\r\n this.GeographyData = value.filter((x) => x.riskSubCategoryId == 4);\r\n return this.GeographyData;\r\n }\r\n\r\n channelsdata(value: any) {\r\n this.ChannelsData = value.filter((x) => x.riskSubCategoryId == 5);\r\n return this.ChannelsData;\r\n }\r\n\r\n QFdata(value: any) {\r\n this.OtherQualitativeFactorsData = value.filter(\r\n (x) => x.riskSubCategoryId == 6\r\n );\r\n return this.OtherQualitativeFactorsData;\r\n }\r\n\r\n onRowEditforir(data, index: number, type: boolean) {\r\n if (type) {\r\n this.assignweightage.controls[\"riskcategoryORattribute\"].setValue(\r\n data.subCategory\r\n );\r\n this.subcategory = true;\r\n } else {\r\n if (\r\n data.riskSubCategoryId == 2 ||\r\n data.riskSubCategoryId == 3 ||\r\n data.riskSubCategoryId == 5 ||\r\n data.riskSubCategoryId == 6\r\n ) {\r\n this.assignweightage.controls[\"riskcategoryORattribute\"].setValue(\r\n data.riskType\r\n );\r\n } else {\r\n this.assignweightage.controls[\"riskcategoryORattribute\"].setValue(\r\n data.riskAttribute\r\n );\r\n }\r\n this.subcategorydetails = true;\r\n }\r\n this.riskSubCategoryId = data.riskSubCategoryId;\r\n this.riskSubCategoryDetailsId = data.riskSubCategoryDetailsId;\r\n this.riskTypeId = data.riskTypeId;\r\n this.AssigndisplayModal = true;\r\n this.assignweightage.controls[\"weightage\"].setValue(data.weightage);\r\n this.assignweightage.controls[\"index\"].setValue(index);\r\n this.assignweightage.controls[\"subCategory\"].setValue(data.subCategory);\r\n this.assignweightage.controls[\"riskAttribute\"].setValue(data.riskAttribute);\r\n this.assignweightage.controls[\"riskType\"].setValue(data.riskType);\r\n }\r\n\r\n onRowEditforce(data, index: number) {\r\n this.AssigndisplayModalforce = true;\r\n this.riskSubCategoryId = data.riskSubCategoryId;\r\n this.assignweightage.controls[\"riskcategoryORattribute\"].setValue(data.subCategory);\r\n this.assignweightage.controls[\"weightage\"].setValue(data.weightage);\r\n this.assignweightage.controls[\"index\"].setValue(index);\r\n this.assignweightage.controls[\"subCategory\"].setValue(data.subCategory);\r\n }\r\n\r\n onRowEditforbu(data, index: number) {\r\n this.AssigndisplayModalforbu = true;\r\n this.assignweightage.controls[\"riskcategoryORattribute\"].setValue(data.buname);\r\n this.assignweightage.controls[\"weightage\"].setValue(data.weightage);\r\n this.assignweightage.controls[\"index\"].setValue(index);\r\n this.assignweightage.controls[\"buname\"].setValue(data.buname);\r\n }\r\n\r\n getTotal(data) {\r\n this.total = 0;\r\n data.forEach((value, key) => {\r\n this.total += +value.weightage;\r\n });\r\n return this.total;\r\n }\r\n\r\n assignforIR(data) {\r\n if (this.subcategory == true) {\r\n let temp = this.riskSubCategoryWeightageAssignEntity.find(\r\n (s) => s.riskSubCategoryId !== this.riskSubCategoryId && s.subCategory.trim() == data.riskcategoryORattribute.trim()\r\n );\r\n if (temp !== undefined) {\r\n swal({\r\n icon: \"warning\",\r\n text: \"Risk Category Already Exist\",\r\n });\r\n return;\r\n }\r\n this.riskSubCategoryWeightageAssignEntity = this.riskSubCategoryWeightageAssignEntity.filter(\r\n (value, key) => {\r\n if (value.riskSubCategoryId == this.riskSubCategoryId) {\r\n const oldweightage = value.weightage;\r\n value.weightage = data.weightage.toString();\r\n value.subCategory = data.riskcategoryORattribute;\r\n value.createdBy = this.currentUser.userId;\r\n this.getTotal(this.riskSubCategoryWeightageAssignEntity);\r\n this.RCsum = this.total;\r\n if (this.RCsum > 100) {\r\n swal({\r\n icon: \"warning\",\r\n text: \"Overall IR score exceeded\",\r\n });\r\n value.weightage = oldweightage;\r\n this.getTotal(this.riskSubCategoryWeightageAssignEntity);\r\n this.RCsum = this.total;\r\n //return;\r\n }\r\n }\r\n return true;\r\n }\r\n );\r\n this.subcategory = false;\r\n }\r\n if (this.subcategorydetails == true) {\r\n let temp = null;\r\n if (this.riskSubCategoryId == 2 || this.riskSubCategoryId == 3 || this.riskSubCategoryId == 5 || this.riskSubCategoryId == 6) {\r\n temp = this.riskSubCategoryDetailsWeightageAsignEntity.find(\r\n (s) => s.riskSubCategoryId === this.riskSubCategoryId && s.riskSubCategoryDetailsId === this.riskSubCategoryDetailsId &&\r\n s.riskTypeId !== this.riskTypeId && s.riskType.trim() == data.riskcategoryORattribute.trim());\r\n if (temp !== undefined) {\r\n swal({\r\n icon: \"warning\",\r\n text: \"Risk Type Already Exist\",\r\n });\r\n return;\r\n }\r\n }\r\n else {\r\n temp = this.riskSubCategoryDetailsWeightageAsignEntity.find(\r\n (s) => s.riskSubCategoryId === this.riskSubCategoryId &&\r\n s.riskSubCategoryDetailsId !== this.riskSubCategoryDetailsId && s.riskAttribute.trim() == data.riskcategoryORattribute.trim());\r\n if (temp !== undefined) {\r\n swal({\r\n icon: \"warning\",\r\n text: \"Risk Attribute Already Exist\",\r\n });\r\n return;\r\n }\r\n }\r\n this.riskSubCategoryDetailsWeightageAsignEntity = this.riskSubCategoryDetailsWeightageAsignEntity.filter(\r\n (value, key) => {\r\n if (\r\n value.riskSubCategoryDetailsId == this.riskSubCategoryDetailsId &&\r\n value.riskTypeId == this.riskTypeId\r\n ) {\r\n const oldweightage = value.weightage;\r\n value.weightage = data.weightage.toString();\r\n value.createdBy = this.currentUser.userId;\r\n if (\r\n value.riskSubCategoryId == 2 ||\r\n value.riskSubCategoryId == 3 ||\r\n value.riskSubCategoryId == 5 ||\r\n value.riskSubCategoryId == 6\r\n ) {\r\n value.riskType = data.riskcategoryORattribute;\r\n } else {\r\n value.riskAttribute = data.riskcategoryORattribute;\r\n }\r\n this.customerdata(this.riskSubCategoryDetailsWeightageAsignEntity);\r\n this.productsdata(this.riskSubCategoryDetailsWeightageAsignEntity);\r\n this.transactionsdata(\r\n this.riskSubCategoryDetailsWeightageAsignEntity\r\n );\r\n this.geographydata(this.riskSubCategoryDetailsWeightageAsignEntity);\r\n this.channelsdata(this.riskSubCategoryDetailsWeightageAsignEntity);\r\n this.QFdata(this.riskSubCategoryDetailsWeightageAsignEntity);\r\n if (this.CustomersData != null) {\r\n this.getTotal(this.CustomersData);\r\n this.Customersum = this.total;\r\n if (this.Customersum > 100) {\r\n swal({\r\n icon: \"warning\",\r\n text: \"Overall Customer score exceeded\",\r\n });\r\n value.weightage = oldweightage;\r\n this.getTotal(this.CustomersData);\r\n this.Customersum = this.total;\r\n //return;\r\n }\r\n }\r\n if (this.ProductsData != null) {\r\n this.getTotal(this.ProductsData);\r\n this.Productsum = this.total;\r\n if (this.Productsum > 100) {\r\n swal({\r\n icon: \"warning\",\r\n text: \"Overall Product score exceeded\",\r\n });\r\n value.weightage = oldweightage;\r\n this.getTotal(this.ProductsData);\r\n this.Productsum = this.total;\r\n //return;\r\n }\r\n }\r\n if (this.TransactionsData != null) {\r\n this.getTotal(this.TransactionsData);\r\n this.Transactionsum = this.total;\r\n if (this.Transactionsum > 100) {\r\n swal({\r\n icon: \"warning\",\r\n text: \"Overall Transaction score exceeded\",\r\n });\r\n value.weightage = oldweightage;\r\n this.getTotal(this.TransactionsData);\r\n this.Transactionsum = this.total;\r\n //return;\r\n }\r\n }\r\n if (this.GeographyData != null) {\r\n this.getTotal(this.GeographyData);\r\n this.Geographysum = this.total;\r\n if (this.Geographysum > 100) {\r\n swal({\r\n icon: \"warning\",\r\n text: \"Overall Geography score exceeded\",\r\n });\r\n value.weightage = oldweightage;\r\n this.getTotal(this.GeographyData);\r\n this.Geographysum = this.total;\r\n //return;\r\n }\r\n }\r\n if (this.ChannelsData != null) {\r\n this.getTotal(this.ChannelsData);\r\n this.Channelssum = this.total;\r\n if (this.Channelssum > 100) {\r\n swal({\r\n icon: \"warning\",\r\n text: \"Overall Channels score exceeded\",\r\n });\r\n value.weightage = oldweightage;\r\n this.getTotal(this.ChannelsData);\r\n this.Channelssum = this.total;\r\n //return;\r\n }\r\n }\r\n if (this.OtherQualitativeFactorsData != null) {\r\n this.getTotal(this.OtherQualitativeFactorsData);\r\n this.QFsum = this.total;\r\n if (this.QFsum > 100) {\r\n swal({\r\n icon: \"warning\",\r\n text: \"Overall QF score exceeded\",\r\n });\r\n value.weightage = oldweightage;\r\n this.getTotal(this.OtherQualitativeFactorsData);\r\n this.QFsum = this.total;\r\n //return;\r\n }\r\n }\r\n }\r\n return true;\r\n }\r\n );\r\n\r\n //this.riskSubCategoryDetailsWeightageAsignEntity.find(x => x.riskSubCategoryId == 1);\r\n // this.riskSubCategoryDetailsWeightageAsignEntity\r\n // .filter((data,key) => {\r\n // return true;\r\n // });\r\n this.subcategorydetails = false;\r\n }\r\n this.AssigndisplayModal = false;\r\n this.assignweightage.reset();\r\n }\r\n\r\n assignforce(data) {\r\n let temp = this.riskSubCategoryWeightageAssignEntity.find(\r\n (s) => s.riskSubCategoryId !== this.riskSubCategoryId && s.subCategory.trim() == data.riskcategoryORattribute.trim()\r\n );\r\n if (temp !== undefined) {\r\n swal({\r\n icon: \"warning\",\r\n text: \"Risk Category Already Exist\",\r\n });\r\n return;\r\n }\r\n this.riskSubCategoryWeightageAssignEntity = this.riskSubCategoryWeightageAssignEntity.filter(\r\n (value, key) => {\r\n if (value.subCategory == data.subCategory) {\r\n const oldweightage = value.weightage;\r\n value.weightage = data.weightage.toString();\r\n value.subCategory = data.riskcategoryORattribute;\r\n value.createdBy = this.currentUser.userId;\r\n this.getTotal(this.riskSubCategoryWeightageAssignEntity);\r\n this.RCsum = this.total;\r\n if (this.RCsum > 100) {\r\n swal({\r\n icon: \"warning\",\r\n text: \"Overall CE score exceeded\",\r\n });\r\n value.weightage = oldweightage;\r\n this.getTotal(this.riskSubCategoryWeightageAssignEntity);\r\n this.RCsum = this.total;\r\n //return;\r\n }\r\n }\r\n return true;\r\n }\r\n );\r\n this.AssigndisplayModalforce = false;\r\n this.assignweightage.reset();\r\n }\r\n\r\n assignforbu(data) {\r\n this.buWeightageAssignEntity = this.buWeightageAssignEntity.filter(\r\n (value, key) => {\r\n if (value.buname == data.buname) {\r\n const oldweightage = value.weightage;\r\n value.weightage = data.weightage.toString();\r\n value.buname = data.riskcategoryORattribute;\r\n value.createdBy = this.currentUser.userId;\r\n this.getTotal(this.buWeightageAssignEntity);\r\n this.RCsum = this.total;\r\n if (this.RCsum > 100) {\r\n swal({\r\n icon: \"warning\",\r\n text: \"Overall BU score exceeded\",\r\n });\r\n value.weightage = oldweightage;\r\n this.getTotal(this.buWeightageAssignEntity);\r\n this.RCsum = this.total;\r\n //return;\r\n }\r\n }\r\n return true;\r\n }\r\n );\r\n\r\n this.AssigndisplayModalforbu = false;\r\n this.assignweightage.reset();\r\n }\r\n\r\n onSubmit() {\r\n let obj = {\r\n riskSubCategoryWeightageAssignEntity: this\r\n .riskSubCategoryWeightageAssignEntity,\r\n riskSubCategoryDetailsWeightageAsignEntity: this\r\n .riskSubCategoryDetailsWeightageAsignEntity,\r\n };\r\n\r\n if (this.IR) {\r\n if (\r\n this.RCsum == 100 &&\r\n this.Customersum == 100 &&\r\n this.Productsum == 100 &&\r\n this.Transactionsum == 100 &&\r\n this.Geographysum == 100 &&\r\n this.Channelssum == 100 &&\r\n this.QFsum == 100\r\n ) {\r\n if (this.maintab == \"AssessmentStatus\")\r\n this.assessmentcyclevalue = this.ASAssessmentCycle;\r\n else\r\n this.assessmentcyclevalue = this.selectedAssessmentCycle.value.toString();\r\n this.httpGenericService\r\n .postData(\r\n `${this.api.weightages.saveAllRiskCategoryandSubCategoryWeighatages}?assessmentCycle=${this.assessmentcyclevalue}`,\r\n obj\r\n )\r\n .pipe(first())\r\n .subscribe((data) => {\r\n let response = data;\r\n if (response.StatusCode === 200) {\r\n swal({\r\n icon: \"success\",\r\n text: \"Updated Successfully\",\r\n });\r\n //this.getSetInitialData();\r\n //this.setCE();\r\n this.isselect = false;\r\n this.riskSubCategoryWeightageAssignEntity = null;\r\n this.selectedBU = null;\r\n //this.ceForm.reset();\r\n this.IR = false;\r\n this.CE = true;\r\n this.BU = false;\r\n if (this.maintab == \"false\") {\r\n this.selectedEntity = null;\r\n this.buWeightageAssignEntity = null;\r\n //this.getEntityList();\r\n this.getAssessmentCycles(this.entity.id);\r\n }\r\n if (this.maintab == \"AssessmentStatus\") this.getBUList();\r\n else this.getAssessmentCycles(this.entity.id);\r\n } else {\r\n swal({\r\n icon: \"error\",\r\n text: response.Message,\r\n });\r\n }\r\n });\r\n } else {\r\n localStorage.setItem(\r\n \"setAssessmentEnableTab\",\r\n JSON.stringify(false)\r\n );\r\n swal({\r\n icon: \"warning\",\r\n text: \"Overall score must be 100% in each section\",\r\n });\r\n }\r\n }\r\n\r\n if (this.CE) {\r\n if (this.RCsum == 100) {\r\n if (this.maintab == \"AssessmentStatus\")\r\n this.assessmentcyclevalue = this.ASAssessmentCycle;\r\n else\r\n this.assessmentcyclevalue = this.selectedAssessmentCycle.value.toString();\r\n this.httpGenericService\r\n .postData(\r\n `${this.api.weightages.saveAllRiskCategoryandSubCategoryWeighatages}?assessmentCycle=${this.assessmentcyclevalue}`,\r\n obj\r\n )\r\n .pipe(first())\r\n .subscribe((data) => {\r\n let response = data;\r\n if (response.StatusCode === 200) {\r\n swal({\r\n icon: \"success\",\r\n text: \"Updated Successfully\",\r\n });\r\n //this.getSetInitialData();\r\n //this.setBU();\r\n this.isselect = true;\r\n this.IR = false;\r\n this.CE = false;\r\n this.BU = true;\r\n if (this.maintab == \"false\") {\r\n this.selectedEntity = null;\r\n this.buWeightageAssignEntity = null;\r\n //this.getEntityList();\r\n this.getAssessmentCycles(this.entity.id);\r\n }\r\n if (this.maintab == \"AssessmentStatus\") this.getBUList();\r\n else this.getAssessmentCycles(this.entity.id);\r\n //this.getIRorCRList();*/\r\n /* localStorage.setItem('setCss', '6');\r\n localStorage.setItem('setAssessmentEnableTab', JSON.stringify(true));\r\n this.route.navigate([\"/entity/assessmentreview\"]);\r\n \r\n }*/\r\n this.getAssessmentCycles(this.entity.id);\r\n } else {\r\n swal({\r\n icon: \"error\",\r\n text: response.Message,\r\n });\r\n }\r\n });\r\n } else {\r\n swal({\r\n icon: \"warning\",\r\n text: \"Overall CE score must be 100%\",\r\n });\r\n }\r\n }\r\n\r\n if (this.BU) {\r\n if (this.RCsum != 0) {\r\n if (this.RCsum == 100) {\r\n if (this.maintab == \"AssessmentStatus\")\r\n this.assessmentcyclevalue = this.ASAssessmentCycle;\r\n else\r\n this.assessmentcyclevalue = this.selectedAssessmentCycle.value.toString();\r\n this.httpGenericService\r\n .postData(\r\n `${this.api.weightages.updateEntityBusinessUnits}?assessmentCycle=${this.assessmentcyclevalue}`,\r\n this.buWeightageAssignEntity\r\n )\r\n .pipe(first())\r\n .subscribe((data) => {\r\n let response = data;\r\n if (response.StatusCode === 200) {\r\n swal({\r\n icon: \"success\",\r\n text: response.Message,\r\n });\r\n if (this.maintab == \"true\") {\r\n //this.entityManagementService.setCss(6);\r\n localStorage.setItem(\"setCss\", \"6\");\r\n //this.entityManagementService.setAssessmentEnableTab(true);\r\n localStorage.setItem(\r\n \"setAssessmentEnableTab\",\r\n JSON.stringify(true)\r\n );\r\n this.route.navigate([\"/entity/assessmentreview\"]);\r\n } else if (this.maintab == \"AssessmentStatus\") {\r\n localStorage.setItem(\"setCss\", \"9\");\r\n //this.entityManagementService.setAssessmentEnableTab(true);\r\n localStorage.setItem(\r\n \"setAssessmentEnableTab\",\r\n JSON.stringify(true)\r\n );\r\n this.route.navigate([\"/business/BUAssessment\"]);\r\n } else {\r\n //this.getBUList();\r\n this.getAssessmentCycles(this.entity.id);\r\n }\r\n } else {\r\n swal({\r\n icon: \"error\",\r\n text: response.Message,\r\n });\r\n }\r\n });\r\n } else {\r\n localStorage.setItem(\r\n \"setAssessmentEnableTab\",\r\n JSON.stringify(false)\r\n );\r\n swal({\r\n icon: \"warning\",\r\n text: \"Overall BU score must be 100%\",\r\n });\r\n }\r\n } else {\r\n localStorage.setItem(\r\n \"setAssessmentEnableTab\",\r\n JSON.stringify(false)\r\n );\r\n swal({\r\n icon: \"warning\",\r\n text: \"Please assign weightage\",\r\n });\r\n }\r\n }\r\n }\r\n\r\n prevent(event: Event) {\r\n if (\r\n this.assignweightage.value.riskcategoryORattribute == null ||\r\n this.assignweightage.value.riskcategoryORattribute == \"\"\r\n ) {\r\n this.commonserviceService.preventSpace(event);\r\n }\r\n }\r\n\r\n selectedTable(item: any) {\r\n if (item == null) {\r\n this.attributevalue = 0;\r\n } else {\r\n this.attributevalue = item.riskSubCategoryId;\r\n }\r\n }\r\n}\r\n","export class Fileupload {\r\n riskCategoryId: number;\r\n questionnaireTemplateId?: number;\r\n templateName?: string = \"\";\r\n fileName?: string = \"\";\r\n fileBase64: string = \"\";\r\n entityDetailsId: number;\r\n businessUnitId: number;\r\n createdBy: number;\r\n modifiedBy: number;\r\n assessmentStartDate: string = \"\";\r\n}\r\n\r\nexport class reportFileUpload {\r\n updatedReportID: number;\r\n isActive: boolean;\r\n createdBy: number;\r\n createdDate: string;\r\n modifiedBy: number;\r\n modifiedDate: string;\r\n s3FilePath: string;\r\n s3FileName: string = \"\";\r\n entityDetailsId: number;\r\n fileBase64: string = \"\";\r\n}\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { Fileupload } from '../model/fileupload';\r\nimport { API } from 'src/app/shared/constants/api.constants';\r\n\r\n//const API_URL = \"http://localhost:5000/api/FileUpload/\";\r\n// const httpOptions = {\r\n// headers: new HttpHeaders({\r\n// 'Content-Type': 'application/json'\r\n// })\r\n// };\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EntityManagementService {\r\n\r\n entity: any;\r\n css: number;\r\n BUlist: any[] = [];\r\n entityrowdata: any;\r\n IRCRBUcss: number;\r\n //DisableTab: boolean;\r\n //EnableTab: any;\r\n entityEnable: boolean;\r\n businessEnable: boolean;\r\n weightageEnable: boolean;\r\n userEnable: boolean;\r\n questionnaireEnable: boolean;\r\n assessmentEnable: boolean;\r\n api = API;\r\n permissionMode: any;\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n uploadFile(theFile: Fileupload) : Observable {\r\n return this.http.post(this.api.questionsTemplates.createQuestionsTemplate, theFile);\r\n}\r\n\r\n setEntityId(obj: any) {\r\n this.entity = obj;\r\n }\r\n getEntityId() {\r\n return this.entity;\r\n }\r\n\r\n setCss(obj: number) {\r\n this.css = obj;\r\n }\r\n getCss() {\r\n return this.css;\r\n }\r\n\r\n setBulist(obj: any) {\r\n this.BUlist = obj;\r\n }\r\n getBulist() {\r\n return this.BUlist;\r\n }\r\n\r\n setWeightageCss(obj: number) {\r\n this.IRCRBUcss = obj;\r\n }\r\n getWeightageCss() {\r\n return this.IRCRBUcss;\r\n }\r\n\r\n // setDisableTab(obj: boolean) {\r\n // this.DisableTab = obj;\r\n // }\r\n // getDisableTab() {\r\n // return this.DisableTab;\r\n // }\r\n\r\n // setEnableTab(obj: any) {\r\n // this.EnableTab = obj;\r\n // }\r\n // getEnsableTab() {\r\n // return this.EnableTab;\r\n // }\r\n\r\n setEntityEnableTab(type: boolean) {\r\n this.entityEnable = type;\r\n }\r\n getEntityEnsableTab() {\r\n return this.entityEnable;\r\n }\r\n\r\n setBusinessEnableTab(type: boolean) {\r\n this.businessEnable = type;\r\n }\r\n getBusinessEnsableTab() {\r\n return this.businessEnable;\r\n }\r\n\r\n setWeightageEnableTab(type: boolean) {\r\n this.weightageEnable = type;\r\n }\r\n getWeightageEnsableTab() {\r\n return this.weightageEnable;\r\n }\r\n\r\n setUsersEnableTab(type: boolean) {\r\n this.userEnable = type;\r\n }\r\n getUsersEnsableTab() {\r\n return this.userEnable;\r\n }\r\n\r\n setQuestionnaireEnableTab(type: boolean) {\r\n this.questionnaireEnable = type;\r\n }\r\n getQuestionnaireEnsableTab() {\r\n return this.questionnaireEnable;\r\n }\r\n\r\n setAssessmentEnableTab(type: boolean) {\r\n this.assessmentEnable = type;\r\n }\r\n getAssessmentEnsableTab() {\r\n return this.assessmentEnable;\r\n }\r\n\r\n setEntityRowData(obj: any, type: boolean) {\r\n this.entityrowdata = {\r\n rowdata: obj,\r\n mode: type\r\n }\r\n }\r\n getEntityRowData() {\r\n return this.entityrowdata;\r\n }\r\n\r\n setPermissionMode(mode: any) {\r\n this.permissionMode = mode;\r\n }\r\n\r\n getPermissionMode() {\r\n return this.permissionMode;\r\n }\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21vZHVsZXMvaG9tZS9jb21wb25lbnRzL2NvbXBvc2l0aW9uLXJlcG9ydC9jb21wb3NpdGlvbi1yZXBvcnQuY29tcG9uZW50LnNjc3MifQ== */\";","import { Component, OnInit, Pipe } from '@angular/core';\r\nimport { HttpGenericService } from '../../../../core/services/http-genric.service';\r\nimport { first } from 'rxjs/operators';\r\nimport { API } from 'src/app/shared/constants/api.constants';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser'\r\n\r\n@Component({\r\n selector: 'app-composition-report',\r\n templateUrl: './composition-report.component.html',\r\n styleUrls: ['./composition-report.component.scss']\r\n})\r\n//@Pipe({ name: 'safeHtml' })\r\nexport class CompositionReportComponent implements OnInit {\r\n compositionreportdetails: any;\r\n riskCategoryid: number;\r\n irceList: any;\r\n api = API;\r\n CompositionReportMainTable: SafeHtml;\r\n CompositionReportChildTable: SafeHtml;\r\n selectedSubCategory;\r\n selectedSubCategoryDetails;\r\n subcategorydetails: any[];\r\n compositionReportChildTableList: any;\r\n cols: { field: string; header: string; }[];\r\n colsMain: { field: string; header: string; }[];\r\n compositionReportMainTableList: any;\r\n constructor(private httpGenericService: HttpGenericService,private sanitized: DomSanitizer) { }\r\n\r\n ngOnInit(): void {\r\n this.compositionreportdetails = JSON.parse(localStorage.getItem(\"setcompositionreport\"));\r\n this.getSubcategory();\r\n this.getDashboardCompositionReportMainTable();\r\n this.setColumns();\r\n }\r\n\r\n getSubcategory() {\r\n if (this.compositionreportdetails.RiskCategory == \"IR\") {\r\n this.riskCategoryid = 1;\r\n }\r\n else {\r\n this.riskCategoryid = 2;\r\n }\r\n this.httpGenericService\r\n .fetchAll(\r\n `${\r\n this.api.entityAssessmentReview.getAllRiskSubCategories\r\n }?entityDetailsId=${this.compositionreportdetails.id}&businessUnitId=${this.compositionreportdetails.BusinessUnitsId}\r\n&riskCategoryId=${ this.riskCategoryid}&assessmentStartDate=${this.compositionreportdetails.Years}`\r\n )\r\n .pipe(first())\r\n .subscribe((res) => {\r\n let response: any = res[\"Result\"];\r\n this.irceList = response;\r\n this.irceList.push({\r\n subCategory: \"Show All\",\r\n riskSubCategoryId: 0\r\n });\r\n this.irceList = this.irceList.sort(function (a, b) {\r\n return a.riskSubCategoryId - b.riskSubCategoryId;\r\n });\r\n });\r\n }\r\n\r\n getSubcategorydetails() {\r\n \r\n let id = +this.selectedSubCategory.riskSubCategoryId;\r\n this.httpGenericService\r\n .fetchAll(\r\n `${\r\n this.api.entityAssessmentReview.getAllRiskSubCategoryDetailsBySubCatergory\r\n }?riskSubCategoryId=${id}&entityDetailsId=${this.compositionreportdetails.id}&businessUnitId=${this.compositionreportdetails.BusinessUnitsId}\r\n&riskCategoryId=${ this.riskCategoryid}&assessmentStartDate=${this.compositionreportdetails.Years}&IsDashboard=1`\r\n )\r\n .pipe(first())\r\n .subscribe((res) => {\r\n let response: any = res[\"Result\"];\r\n this.subcategorydetails = response;\r\n this.subcategorydetails.push({\r\n riskAttribute: \"Show All\",\r\n riskSubCategoryDetailsId: 0\r\n });\r\n this.subcategorydetails = this.subcategorydetails.sort(function (a, b) {\r\n \r\n return a.riskSubCategoryDetailsId - b.riskSubCategoryDetailsId;\r\n });\r\n\r\n if (this.selectedSubCategory.riskSubCategoryId == 0) {\r\n this.ChartDetails();\r\n }\r\n else {\r\n if (this.selectedSubCategoryDetails.riskSubCategoryDetailsId == 0) {\r\n this.ChartDetails();\r\n }\r\n }\r\n });\r\n }\r\n\r\n getDashboardCompositionReportMainTable() {\r\n let id = this.compositionreportdetails.id;\r\n let BusinessUnitsId = this.compositionreportdetails.BusinessUnitsId;\r\n let Years = this.compositionreportdetails.Years;\r\n let RiskSubCategoryId = 0;\r\n let RiskSubCategoryDetailsId = 0;\r\n let RiskCategory = this.compositionreportdetails.RiskCategory;\r\n this.httpGenericService\r\n .fetchAll(\r\n `${\r\n this.api.dashboard.DashboardCompositionReportMainTable\r\n }?EntityId=${id}&BusinessUnitsId=${BusinessUnitsId}&RiskSubCategoryId=${RiskSubCategoryId}&RiskSubCategoryDetailsId=${RiskSubCategoryDetailsId}&RiskCategory=${RiskCategory}&year=${Years}`\r\n )\r\n .pipe(first())\r\n .subscribe((res) => {\r\n let response: any = res[\"Result\"];\r\n this.compositionReportMainTableList = response\r\n });\r\n }\r\n\r\n setColumns = () => {\r\n this.cols = [\r\n { field: \"riskTypeAttributeClassification\", header: \"Attribute Classification\" },\r\n { field: \"riskAttribute1\", header: \"Row Labels\" },\r\n { field: \"customersScore\", header: \"Sum of No.of Customers\" },\r\n { field: \"volumeOfTrasactionsScore\", header: \"Sum of Volume of Transactions\" },\r\n { field: \"valueOfTransactionsScore\", header: \"Sum of Value of Transactions\" }\r\n \r\n ];\r\n this.colsMain = [\r\n { field: \"subCategory\", header: \"Category\" },\r\n { field: \"riskSubCategoryScore\", header: \"Risk Rating\" }\r\n ];\r\n \r\n };\r\n\r\n ChartDetails() {\r\n this.compositionReportChildTableList = null;\r\n let id = this.compositionreportdetails.id;\r\n let BusinessUnitsId = this.compositionreportdetails.BusinessUnitsId;\r\n let Years = this.compositionreportdetails.Years;\r\n let RiskSubCategoryId = this.selectedSubCategory.riskSubCategoryId;\r\n let RiskSubCategoryDetailsId = this.selectedSubCategoryDetails != undefined ? this.selectedSubCategoryDetails.riskSubCategoryDetailsId : 0;\r\n let RiskTypeId = this.selectedSubCategoryDetails.riskTypeId != undefined ? this.selectedSubCategoryDetails.riskTypeId : 0;\r\n let RiskCategory = this.compositionreportdetails.RiskCategory;\r\n let RiskAttributeTemp = this.selectedSubCategoryDetails != undefined ? this.selectedSubCategoryDetails.riskAttribute : \"\";\r\n let RiskAttribute = encodeURIComponent(RiskAttributeTemp)\r\n this.httpGenericService\r\n .fetchAll(\r\n `${\r\n this.api.dashboard.DashboardCompositionReport\r\n }?EntityId=${id}&BusinessUnitsId=${BusinessUnitsId}&RiskSubCategoryId=${RiskSubCategoryId}&RiskSubCategoryDetailsId=${RiskSubCategoryDetailsId}&RiskCategory=${RiskCategory}&year=${Years}&RiskAttribute=${RiskAttribute}&RiskTypeId=${RiskTypeId}`\r\n )\r\n .pipe(first())\r\n .subscribe((res) => {\r\n let response: any = res[\"Result\"];\r\n this.compositionReportChildTableList = response;\r\n //this.CompositionReportChildTable = response\r\n });\r\n }\r\n\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21vZHVsZXMvaG9tZS9jb21wb25lbnRzL2RldGFpbGVkLXJlcG9ydC9kZXRhaWxlZC1yZXBvcnQuY29tcG9uZW50LnNjc3MifQ== */\";","import { Component, OnInit } from '@angular/core';\r\nimport { HttpGenericService } from '../../../../core/services/http-genric.service';\r\nimport { first } from 'rxjs/operators';\r\nimport { API } from 'src/app/shared/constants/api.constants';\r\nimport * as Highcharts from 'highcharts';\r\n\r\n@Component({\r\n selector: 'app-detailed-report',\r\n templateUrl: './detailed-report.component.html',\r\n styleUrls: ['./detailed-report.component.scss']\r\n})\r\nexport class DetailedReportComponent implements OnInit {\r\n detailedreportdetails: any;\r\n riskCategoryid: number;\r\n irceList: any;\r\n api = API;\r\n selectedSubCategory;\r\n selectedSubCategoryDetails;\r\n subcategorydetails: any[];\r\n constructor(private httpGenericService: HttpGenericService) { }\r\n\r\n ngOnInit(): void {\r\n this.detailedreportdetails = JSON.parse(localStorage.getItem(\"setdetailedreport\"));\r\n this.getSubcategory();\r\n }\r\n\r\n getSubcategory() {\r\n if (this.detailedreportdetails.RiskCategory == \"IR\") {\r\n this.riskCategoryid = 1;\r\n }\r\n else {\r\n this.riskCategoryid = 2;\r\n }\r\n this.httpGenericService\r\n .fetchAll(\r\n `${\r\n this.api.entityAssessmentReview.getAllRiskSubCategories\r\n }?entityDetailsId=${this.detailedreportdetails.id}&businessUnitId=${this.detailedreportdetails.BusinessUnitsId}\r\n&riskCategoryId=${ this.riskCategoryid}&assessmentStartDate=${this.detailedreportdetails.Years}`\r\n )\r\n .pipe(first())\r\n .subscribe((res) => {\r\n let response: any = res[\"Result\"];\r\n this.irceList = response;\r\n \r\n this.irceList.push({\r\n subCategory: \"Show All\",\r\n riskSubCategoryId: 0\r\n });\r\n this.irceList = this.irceList.sort(function (a, b) {\r\n return a.riskSubCategoryId - b.riskSubCategoryId;\r\n });\r\n });\r\n }\r\n\r\n getSubcategorydetails() {\r\n document.getElementById('SubCategoryDetailsChartContainer0').innerHTML = \"\";\r\n document.getElementById('SubCategoryDetailsChartContainer1').innerHTML = \"\";\r\n document.getElementById('SubCategoryDetailsChartContainer2').innerHTML = \"\";\r\n document.getElementById('SubCategoryDetailsChartContainer3').innerHTML = \"\";\r\n document.getElementById('SubCategoryDetailsChartContainer4').innerHTML = \"\";\r\n document.getElementById('SubCategoryDetailsChartContainer5').innerHTML = \"\";\r\n document.getElementById('SubCategoryDetailsChartContainer6').innerHTML = \"\";\r\n document.getElementById('SubCategoryDetailsChartContainer7').innerHTML = \"\";\r\n document.getElementById('SubCategoryDetailsChartContainer8').innerHTML = \"\";\r\n document.getElementById('SubCategoryDetailsChartContainer9').innerHTML = \"\";\r\n document.getElementById('SubCategoryDetailsChartContainer10').innerHTML = \"\";\r\n document.getElementById('SubCategoryDetailsChartContainer11').innerHTML = \"\";\r\n document.getElementById('SubCategoryDetailsChartContainer12').innerHTML = \"\";\r\n document.getElementById('SubCategoryDetailsChartContainer13').innerHTML = \"\";\r\n document.getElementById('SubCategoryDetailsChartContainer14').innerHTML = \"\";\r\n let id = +this.selectedSubCategory.riskSubCategoryId;\r\n this.httpGenericService\r\n .fetchAll(\r\n `${\r\n this.api.entityAssessmentReview.getAllRiskSubCategoryDetailsBySubCatergory\r\n }?riskSubCategoryId=${id}&entityDetailsId=${this.detailedreportdetails.id}&businessUnitId=${this.detailedreportdetails.BusinessUnitsId}\r\n&riskCategoryId=${ this.riskCategoryid}&assessmentStartDate=${this.detailedreportdetails.Years}&IsDashboard=1`\r\n )\r\n .pipe(first())\r\n .subscribe((res) => {\r\n let response: any = res[\"Result\"];\r\n this.subcategorydetails = response;\r\n this.subcategorydetails.push({\r\n riskAttribute: \"Show All\",\r\n riskSubCategoryDetailsId: 0\r\n });\r\n this.subcategorydetails = this.subcategorydetails.sort(function (a, b) {\r\n return a.riskSubCategoryDetailsId - b.riskSubCategoryDetailsId;\r\n });\r\n\r\n if (this.selectedSubCategory.riskSubCategoryId == 0) {\r\n this.ChartDetails();\r\n }\r\n else {\r\n if (this.selectedSubCategoryDetails.riskSubCategoryDetailsId == 0) {\r\n this.ChartDetails();\r\n }\r\n }\r\n });\r\n }\r\n\r\n public SubCategoryDetailsChart: any = {\r\n chart: {\r\n type: 'column'\r\n },\r\n title: {\r\n text: 'Customer Type'\r\n },\r\n credits: {\r\n enabled: false\r\n },\r\n exporting: {\r\n enabled: false // hide button\r\n },\r\n xAxis: {\r\n categories: ['%Customer', '%Transaction (Volume)', '%Transaction (Value)', 'Average']\r\n },\r\n color: [\"#FF0000\",\"#FFFF00\",\"#00B050\"],\r\n yAxis: {\r\n min: 0,\r\n title: {\r\n text: 'PERCENTAGE DISTRUBUTION'\r\n },\r\n stackLabels: {\r\n enabled: true,\r\n style: {\r\n fontWeight: 'bold',\r\n color: ( // theme\r\n Highcharts.defaultOptions.title.style &&\r\n Highcharts.defaultOptions.title.style.color\r\n ) || 'gray'\r\n }\r\n }\r\n },\r\n legend: {\r\n align: 'right',\r\n x: -30,\r\n verticalAlign: 'top',\r\n y: 25,\r\n floating: true,\r\n backgroundColor:\r\n Highcharts.defaultOptions.legend.backgroundColor || 'white',\r\n borderColor: '#CCC',\r\n borderWidth: 1,\r\n shadow: false\r\n },\r\n tooltip: {\r\n headerFormat: '{point.x}
',\r\n pointFormat: '{series.name}: {point.y}
Total: {point.stackTotal}'\r\n },\r\n plotOptions: {\r\n column: {\r\n stacking: 'normal',\r\n dataLabels: {\r\n enabled: true\r\n }\r\n }\r\n },\r\n series: [{\r\n name: 'High',\r\n data: [5, 3, 4, 7]\r\n }, {\r\n name: 'Medium',\r\n data: [2, 2, 3, 2]\r\n }, {\r\n name: 'Low',\r\n data: [3, 4, 4, 2]\r\n }]\r\n }\r\n\r\n ChartDetails() {\r\n debugger;\r\n let id = this.detailedreportdetails.id ;\r\n let BusinessUnitsId = this.detailedreportdetails.BusinessUnitsId ;\r\n let Years = this.detailedreportdetails.Years ;\r\n let RiskSubCategoryId = this.selectedSubCategory.riskSubCategoryId;\r\n let RiskSubCategoryDetailsId = this.selectedSubCategoryDetails != undefined ? this.selectedSubCategoryDetails.riskSubCategoryDetailsId : 0;\r\n let RiskTypeId = this.selectedSubCategoryDetails.riskTypeId != undefined ? this.selectedSubCategoryDetails.riskTypeId : 0;\r\n let RiskCategory = this.detailedreportdetails.RiskCategory;\r\n this.httpGenericService\r\n .fetchAll(\r\n `${\r\n this.api.dashboard.DashboardDetialedReport\r\n }?EntityId=${id}&BusinessUnitsId=${BusinessUnitsId}&RiskSubCategoryId=${RiskSubCategoryId}&RiskSubCategoryDetailsId=${RiskSubCategoryDetailsId}&RiskCategory=${RiskCategory}&year=${Years}&RiskTypeId=${RiskTypeId}`\r\n )\r\n .pipe(first())\r\n .subscribe((res) => {\r\n let response: any = res[\"Result\"];\r\n for (var i = 0; i < response.length; i++) {\r\n this.SubCategoryDetailsChart.series = response[i].series;\r\n this.SubCategoryDetailsChart.title.text = response[i].name;\r\n Highcharts.chart('SubCategoryDetailsChartContainer' + i.toString(), this.SubCategoryDetailsChart);\r\n }\r\n \r\n //this.CEoptions.xAxis.categories = response.xAxiscategories;\r\n //this.CEoptions.series = response.series;\r\n //this.IRoptions.series = response.series;\r\n //Highcharts.chart('CEcontainer', this.CEoptions);\r\n });\r\n }\r\n}\r\n","export default \".home-container {\\n margin: 0 auto;\\n max-width: 960px;\\n}\\n.home-container .home-logo {\\n width: 240px;\\n}\\n.home-container .home-text {\\n text-align: center;\\n}\\n@media (min-width: 992px) {\\n .home-container .home-text {\\n text-align: left;\\n }\\n}\\n.home-container .home-text-big {\\n font-size: 3.9375rem;\\n}\\n.home-container .highcharts-figure, .home-container .highcharts-data-table table {\\n min-width: 310px;\\n max-width: 800px;\\n margin: 1em auto;\\n}\\n.home-container #container {\\n height: 400px;\\n}\\n.home-container .highcharts-data-table table {\\n font-family: Verdana, sans-serif;\\n border-collapse: collapse;\\n border: 1px solid #EBEBEB;\\n margin: 10px auto;\\n text-align: center;\\n width: 100%;\\n max-width: 500px;\\n}\\n.home-container .highcharts-data-table caption {\\n padding: 1em 0;\\n font-size: 1.2em;\\n color: #555;\\n}\\n.home-container .highcharts-data-table th {\\n font-weight: 600;\\n padding: 0.5em;\\n}\\n.home-container .highcharts-data-table td, .home-container .highcharts-data-table th, .home-container .highcharts-data-table caption {\\n padding: 0.5em;\\n}\\n.home-container .highcharts-data-table thead tr, .home-container .highcharts-data-table tr:nth-child(even) {\\n background: #f8f8f8;\\n}\\n.home-container .highcharts-data-table tr:hover {\\n background: #f1f7ff;\\n}\\n.home-container #main-head {\\n background-color: cornflowerblue;\\n text-align: center;\\n}\\n.reportlink {\\n color: blue;\\n}\\n.reportlink:hover {\\n cursor: pointer;\\n text-decoration: underline;\\n}\\n#download {\\n display: none;\\n}\\nhr {\\n border-top: 0.2em solid #E9EEF2;\\n margin-top: 0;\\n}\\n#IRcontainer {\\n width: 320px !important;\\n}\\n#CEcontainer {\\n /*width: 420px !important;*/\\n}\\n#IRRiskMeterGaugecontainer0,\\n#CERiskMeterGaugecontainer0,\\n#IRRiskMeterGaugecontainer1,\\n#CERiskMeterGaugecontainer1,\\n#IRRiskMeterGaugecontainer2,\\n#CERiskMeterGaugecontainer2,\\n#IRRiskMeterGaugecontainer3,\\n#CERiskMeterGaugecontainer3,\\n#IRRiskMeterGaugecontainer4,\\n#CERiskMeterGaugecontainer4 {\\n width: 220px !important;\\n}\\n.disable {\\n color: grey;\\n cursor: not-allowed;\\n}\\n.row-negpad {\\n display: flex;\\n flex-wrap: wrap;\\n margin-right: -15px;\\n margin-left: 0px;\\n}\\n.control-padding {\\n margin: 0px;\\n padding: 5px;\\n}\\n.headers {\\n background-color: #86bc25 !important;\\n margin-left: 5px;\\n margin-right: 5px;\\n text-align: center;\\n min-height: 15px;\\n border: 1px solid #ccc !important;\\n border-radius: 5px;\\n}\\n.header-label {\\n font-size: 14px;\\n margin: auto;\\n padding: 5px;\\n color: white;\\n display: block;\\n}\\n.card-dashboard {\\n box-shadow: 0 8px 9px rgba(0, 0, 0, 0.25) !important;\\n border-radius: 1px !important;\\n margin-bottom: 1.25rem;\\n}\\n.card-dashboard .card-dashboard-body {\\n padding: 0.9375rem;\\n}\\n.card-dashboard-body {\\n flex: 1 1 auto;\\n padding: 1.25rem;\\n background-color: white;\\n min-height: 450px;\\n -o-object-fit: contain;\\n object-fit: contain;\\n text-align: center;\\n margin: auto;\\n display: block;\\n}\\n.img-center {\\n margin: auto;\\n padding: 0px;\\n display: block;\\n text-align: center;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n flex-direction: column;\\n}\\n.float-left {\\n float: left;\\n}\\n.float-right {\\n float: right;\\n}\\n.mt-50p {\\n margin-top: 50px !important;\\n}\\n.mt-80p {\\n margin-top: 80px !important;\\n}\\n.services-container {\\n width: 100%;\\n height: 300px;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n flex-direction: column;\\n}\\n.services-container svg {\\n width: 70px;\\n}\\n.risk-meter-label {\\n text-align: center !important;\\n font-size: 12px;\\n font-weight: bold;\\n color: #333333;\\n padding-top: 10px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbW9kdWxlcy9ob21lL2NvbXBvbmVudHMvRDpcXEluZGlhQlVcXEFnZW50UG9vbFxcRG90TmV0XFxEb3ROZXRGcmFtZXdvcmtcXF93b3JrXFwyOTZcXHMvc3JjXFxhcHBcXG1vZHVsZXNcXGhvbWVcXGNvbXBvbmVudHNcXGhvbWUuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL21vZHVsZXMvaG9tZS9jb21wb25lbnRzL2hvbWUuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL21vZHVsZXMvaG9tZS9jb21wb25lbnRzL0Q6XFxJbmRpYUJVXFxBZ2VudFBvb2xcXERvdE5ldFxcRG90TmV0RnJhbWV3b3JrXFxfd29ya1xcMjk2XFxzL3NyY1xcYXBwXFxzaGFyZWRcXHN0eWxlc1xcYm9vdHN0cmFwXFxtaXhpbnNcXF9icmVha3BvaW50cy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBO0VBQ0UsY0FBQTtFQUNBLGdCQUFBO0FDSkY7QURNRTtFQUNFLFlBQUE7QUNKSjtBRE9FO0VBQ0Usa0JBQUE7QUNMSjtBQ21ESTtFRi9DRjtJQUlJLGdCQUFBO0VDSko7QUFDRjtBRE9FO0VBQ0Usb0JBQUE7QUNMSjtBRFFFO0VBQ0UsZ0JBQUE7RUFDQSxnQkFBQTtFQUNBLGdCQUFBO0FDTko7QURTRTtFQUNFLGFBQUE7QUNQSjtBRFVFO0VBQ0UsZ0NBQUE7RUFDQSx5QkFBQTtFQUNBLHlCQUFBO0VBQ0EsaUJBQUE7RUFDQSxrQkFBQTtFQUNBLFdBQUE7RUFDQSxnQkFBQTtBQ1JKO0FEV0U7RUFDRSxjQUFBO0VBQ0EsZ0JBQUE7RUFDQSxXQUFBO0FDVEo7QURZRTtFQUNFLGdCQUFBO0VBQ0EsY0FBQTtBQ1ZKO0FEYUU7RUFDRSxjQUFBO0FDWEo7QURjRTtFQUNFLG1CQUFBO0FDWko7QURlRTtFQUNFLG1CQUFBO0FDYko7QURnQkU7RUFDRSxnQ0FBQTtFQUNBLGtCQUFBO0FDZEo7QURrQkE7RUFDRSxXQUFBO0FDZkY7QURrQkE7RUFDRSxlQUFBO0VBQ0EsMEJBQUE7QUNmRjtBRGtCQTtFQUNFLGFBQUE7QUNmRjtBRGtCQTtFQUNFLCtCQUFBO0VBQ0EsYUFBQTtBQ2ZGO0FEa0JBO0VBQ0UsdUJBQUE7QUNmRjtBRG1CQTtFQUNFLDJCQUFBO0FDaEJGO0FEbUJBOzs7Ozs7Ozs7O0VBVUUsdUJBQUE7QUNoQkY7QURtQkE7RUFDRSxXQUFBO0VBQ0EsbUJBQUE7QUNoQkY7QURtQkE7RUFDSSxhQUFBO0VBQ0EsZUFBQTtFQUNBLG1CQUFBO0VBQ0EsZ0JBQUE7QUNoQko7QURtQkE7RUFDRSxXQUFBO0VBQVcsWUFBQTtBQ2ZiO0FEa0JBO0VBRUksb0NBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBO0VBQ0Esa0JBQUE7RUFDQSxnQkFBQTtFQUNBLGlDQUFBO0VBQ0Esa0JBQUE7QUNoQko7QURtQkE7RUFDRSxlQUFBO0VBQ0EsWUFBQTtFQUNBLFlBQUE7RUFDQSxZQUFBO0VBQ0EsY0FBQTtBQ2hCRjtBRG1CQTtFQUNJLG9EQUFBO0VBQ0EsNkJBQUE7RUFDQSxzQkFBQTtBQ2hCSjtBRG1CQTtFQUNJLGtCQUFBO0FDaEJKO0FEb0JBO0VBQ0ksY0FBQTtFQUNBLGdCQUFBO0VBQ0EsdUJBQUE7RUFDQSxpQkFBQTtFQUNBLHNCQUFBO0tBQUEsbUJBQUE7RUFDQSxrQkFBQTtFQUNDLFlBQUE7RUFDSixjQUFBO0FDakJEO0FEdUJBO0VBQ0UsWUFBQTtFQUNBLFlBQUE7RUFDQSxjQUFBO0VBQ0Esa0JBQUE7RUFDQSxhQUFBO0VBQ0EsdUJBQUE7RUFDQSxtQkFBQTtFQUNBLHNCQUFBO0FDcEJGO0FEdUJBO0VBQ0UsV0FBQTtBQ3BCRjtBRHVCQTtFQUNFLFlBQUE7QUNwQkY7QUR1QkE7RUFDSSwyQkFBQTtBQ3BCSjtBRHVCQTtFQUNJLDJCQUFBO0FDcEJKO0FEdUJJO0VBQ0YsV0FBQTtFQUNBLGFBQUE7RUFDQSxhQUFBO0VBQ0EsdUJBQUE7RUFDQSxtQkFBQTtFQUNBLHNCQUFBO0FDcEJGO0FEdUJBO0VBQ0UsV0FBQTtBQ3BCRjtBRHVCQTtFQUNFLDZCQUFBO0VBRUEsZUFBQTtFQUNBLGlCQUFBO0VBQ0EsY0FBQTtFQUNBLGlCQUFBO0FDckJGIiwiZmlsZSI6InNyYy9hcHAvbW9kdWxlcy9ob21lL2NvbXBvbmVudHMvaG9tZS5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgXCIuLi8uLi8uLi9zaGFyZWQvc3R5bGVzL2Jvb3RzdHJhcC9fZnVuY3Rpb25zLnNjc3NcIjtcclxuQGltcG9ydCBcIi4uLy4uLy4uL3NoYXJlZC9zdHlsZXMvYm9vdHN0cmFwL192YXJpYWJsZXMuc2Nzc1wiO1xyXG5AaW1wb3J0IFwiLi4vLi4vLi4vc2hhcmVkL3N0eWxlcy9ib290c3RyYXAvX21peGluc1wiO1xyXG5AaW1wb3J0ICcuLi8uLi8uLi9zaGFyZWQvc3R5bGVzL2FwcC92YXJpYWJsZXMuc2Nzcyc7XHJcblxyXG4uaG9tZS1jb250YWluZXIge1xyXG4gIG1hcmdpbjogMCBhdXRvO1xyXG4gIG1heC13aWR0aDogbWFwLWdldCgkY29udGFpbmVyLW1heC13aWR0aHMsIFwibGdcIik7XHJcblxyXG4gIC5ob21lLWxvZ28ge1xyXG4gICAgd2lkdGg6IDI0MHB4O1xyXG4gIH1cclxuXHJcbiAgLmhvbWUtdGV4dCB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChsZykge1xyXG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmhvbWUtdGV4dC1iaWcge1xyXG4gICAgZm9udC1zaXplOiAzLjkzNzVyZW07XHJcbiAgfVxyXG5cclxuICAuaGlnaGNoYXJ0cy1maWd1cmUsIC5oaWdoY2hhcnRzLWRhdGEtdGFibGUgdGFibGUge1xyXG4gICAgbWluLXdpZHRoOiAzMTBweDtcclxuICAgIG1heC13aWR0aDogODAwcHg7XHJcbiAgICBtYXJnaW46IDFlbSBhdXRvO1xyXG4gIH1cclxuXHJcbiAgI2NvbnRhaW5lciB7XHJcbiAgICBoZWlnaHQ6IDQwMHB4O1xyXG4gIH1cclxuXHJcbiAgLmhpZ2hjaGFydHMtZGF0YS10YWJsZSB0YWJsZSB7XHJcbiAgICBmb250LWZhbWlseTogVmVyZGFuYSwgc2Fucy1zZXJpZjtcclxuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjRUJFQkVCO1xyXG4gICAgbWFyZ2luOiAxMHB4IGF1dG87XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1heC13aWR0aDogNTAwcHg7XHJcbiAgfVxyXG5cclxuICAuaGlnaGNoYXJ0cy1kYXRhLXRhYmxlIGNhcHRpb24ge1xyXG4gICAgcGFkZGluZzogMWVtIDA7XHJcbiAgICBmb250LXNpemU6IDEuMmVtO1xyXG4gICAgY29sb3I6ICM1NTU7XHJcbiAgfVxyXG5cclxuICAuaGlnaGNoYXJ0cy1kYXRhLXRhYmxlIHRoIHtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICBwYWRkaW5nOiAwLjVlbTtcclxuICB9XHJcblxyXG4gIC5oaWdoY2hhcnRzLWRhdGEtdGFibGUgdGQsIC5oaWdoY2hhcnRzLWRhdGEtdGFibGUgdGgsIC5oaWdoY2hhcnRzLWRhdGEtdGFibGUgY2FwdGlvbiB7XHJcbiAgICBwYWRkaW5nOiAwLjVlbTtcclxuICB9XHJcblxyXG4gIC5oaWdoY2hhcnRzLWRhdGEtdGFibGUgdGhlYWQgdHIsIC5oaWdoY2hhcnRzLWRhdGEtdGFibGUgdHI6bnRoLWNoaWxkKGV2ZW4pIHtcclxuICAgIGJhY2tncm91bmQ6ICNmOGY4Zjg7XHJcbiAgfVxyXG5cclxuICAuaGlnaGNoYXJ0cy1kYXRhLXRhYmxlIHRyOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQ6ICNmMWY3ZmY7XHJcbiAgfVxyXG5cclxuICAjbWFpbi1oZWFkIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IGNvcm5mbG93ZXJibHVlO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIH1cclxufVxyXG5cclxuLnJlcG9ydGxpbmsge1xyXG4gIGNvbG9yOiBibHVlO1xyXG59XHJcblxyXG4ucmVwb3J0bGluazpob3ZlciB7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG59XHJcblxyXG4jZG93bmxvYWQge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuXHJcbmhyIHtcclxuICBib3JkZXItdG9wOiAwLjJlbSBzb2xpZCAjRTlFRUYyO1xyXG4gIG1hcmdpbi10b3A6IDA7XHJcbn1cclxuXHJcbiNJUmNvbnRhaW5lciB7XHJcbiAgd2lkdGg6IDMyMHB4ICFpbXBvcnRhbnQ7XHJcbiAgLy9oZWlnaHQ6IDQwMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbiNDRWNvbnRhaW5lciB7XHJcbiAgLyp3aWR0aDogNDIwcHggIWltcG9ydGFudDsqL1xyXG59XHJcblxyXG4jSVJSaXNrTWV0ZXJHYXVnZWNvbnRhaW5lcjAsXHJcbiNDRVJpc2tNZXRlckdhdWdlY29udGFpbmVyMCxcclxuI0lSUmlza01ldGVyR2F1Z2Vjb250YWluZXIxLFxyXG4jQ0VSaXNrTWV0ZXJHYXVnZWNvbnRhaW5lcjEsXHJcbiNJUlJpc2tNZXRlckdhdWdlY29udGFpbmVyMixcclxuI0NFUmlza01ldGVyR2F1Z2Vjb250YWluZXIyLFxyXG4jSVJSaXNrTWV0ZXJHYXVnZWNvbnRhaW5lcjMsXHJcbiNDRVJpc2tNZXRlckdhdWdlY29udGFpbmVyMyxcclxuI0lSUmlza01ldGVyR2F1Z2Vjb250YWluZXI0LFxyXG4jQ0VSaXNrTWV0ZXJHYXVnZWNvbnRhaW5lcjQge1xyXG4gIHdpZHRoOiAyMjBweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uZGlzYWJsZSB7XHJcbiAgY29sb3I6IGdyZXk7XHJcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcclxufVxyXG5cclxuLnJvdy1uZWdwYWQge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICAgIG1hcmdpbi1yaWdodDogLTE1cHg7XHJcbiAgICBtYXJnaW4tbGVmdDogMHB4O1xyXG59XHJcblxyXG4uY29udHJvbC1wYWRkaW5ne1xyXG4gIG1hcmdpbjowcHg7cGFkZGluZzo1cHg7XHJcbn1cclxuXHJcbi5oZWFkZXJzIHtcclxuICAgIC8vbWFyZ2luLXRvcDogMTVweDs7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjODZiYzI1ICFpbXBvcnRhbnQ7XHJcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xyXG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBtaW4taGVpZ2h0OiAxNXB4O1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NjYyFpbXBvcnRhbnQ7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbn1cclxuXHJcbi5oZWFkZXItbGFiZWwge1xyXG4gIGZvbnQtc2l6ZTogMTRweDs7XHJcbiAgbWFyZ2luOiBhdXRvOyBcclxuICBwYWRkaW5nOiA1cHg7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcblxyXG4uY2FyZC1kYXNoYm9hcmQge1xyXG4gICAgYm94LXNoYWRvdzogMCA4cHggOXB4IHJnYmEoMCwwLDAsLjI1KSFpbXBvcnRhbnQ7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxcHghaW1wb3J0YW50O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMS4yNXJlbTtcclxufVxyXG5cclxuLmNhcmQtZGFzaGJvYXJkIC5jYXJkLWRhc2hib2FyZC1ib2R5IHtcclxuICAgIHBhZGRpbmc6IC45Mzc1cmVtO1xyXG59XHJcblxyXG5cclxuLmNhcmQtZGFzaGJvYXJkLWJvZHkge1xyXG4gICAgZmxleDogMSAxIGF1dG87XHJcbiAgICBwYWRkaW5nOiAxLjI1cmVtO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbiAgICBtaW4taGVpZ2h0OiA0NTBweDtcclxuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgbWFyZ2luOiBhdXRvOyBcclxuIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcblxyXG5cclxuXHJcblxyXG4uaW1nLWNlbnRlciB7XHJcbiAgbWFyZ2luOiBhdXRvOyBcclxuICBwYWRkaW5nOiAwcHg7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG59XHJcblxyXG4uZmxvYXQtbGVmdCB7XHJcbiAgZmxvYXQ6IGxlZnQ7XHJcbn1cclxuXHJcbi5mbG9hdC1yaWdodCB7XHJcbiAgZmxvYXQ6IHJpZ2h0O1xyXG59XHJcblxyXG4ubXQtNTBwe1xyXG4gICAgbWFyZ2luLXRvcDogNTBweCAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG5cclxuLm10LTgwcHtcclxuICAgIG1hcmdpbi10b3A6IDgwcHggIWltcG9ydGFudDtcclxuICAgIH1cclxuXHJcbiAgICAuc2VydmljZXMtY29udGFpbmVyIHtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDMwMHB4O1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG59XHJcblxyXG4uc2VydmljZXMtY29udGFpbmVyIHN2ZyB7XHJcbiAgd2lkdGg6IDcwcHg7XHJcbn1cclxuXHJcbi5yaXNrLW1ldGVyLWxhYmVsIHtcclxuICB0ZXh0LWFsaWduOmNlbnRlciAhaW1wb3J0YW50OyBcclxuIC8vIGZvbnQtZmFtaWx5OiBcIkx1Y2lkYSBHcmFuZGUsIEx1Y2lkYSBTYW5zIFVuaWNvZGUgLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmXCI7IFxyXG4gIGZvbnQtc2l6ZToxMnB4O1xyXG4gIGZvbnQtd2VpZ2h0OmJvbGQ7IFxyXG4gIGNvbG9yOiMzMzMzMzM7IFxyXG4gIHBhZGRpbmctdG9wOiAxMHB4XHJcbn1cclxuXHJcbiIsIi5ob21lLWNvbnRhaW5lciB7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBtYXgtd2lkdGg6IDk2MHB4O1xufVxuLmhvbWUtY29udGFpbmVyIC5ob21lLWxvZ28ge1xuICB3aWR0aDogMjQwcHg7XG59XG4uaG9tZS1jb250YWluZXIgLmhvbWUtdGV4dCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAuaG9tZS1jb250YWluZXIgLmhvbWUtdGV4dCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxufVxuLmhvbWUtY29udGFpbmVyIC5ob21lLXRleHQtYmlnIHtcbiAgZm9udC1zaXplOiAzLjkzNzVyZW07XG59XG4uaG9tZS1jb250YWluZXIgLmhpZ2hjaGFydHMtZmlndXJlLCAuaG9tZS1jb250YWluZXIgLmhpZ2hjaGFydHMtZGF0YS10YWJsZSB0YWJsZSB7XG4gIG1pbi13aWR0aDogMzEwcHg7XG4gIG1heC13aWR0aDogODAwcHg7XG4gIG1hcmdpbjogMWVtIGF1dG87XG59XG4uaG9tZS1jb250YWluZXIgI2NvbnRhaW5lciB7XG4gIGhlaWdodDogNDAwcHg7XG59XG4uaG9tZS1jb250YWluZXIgLmhpZ2hjaGFydHMtZGF0YS10YWJsZSB0YWJsZSB7XG4gIGZvbnQtZmFtaWx5OiBWZXJkYW5hLCBzYW5zLXNlcmlmO1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXI6IDFweCBzb2xpZCAjRUJFQkVCO1xuICBtYXJnaW46IDEwcHggYXV0bztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA1MDBweDtcbn1cbi5ob21lLWNvbnRhaW5lciAuaGlnaGNoYXJ0cy1kYXRhLXRhYmxlIGNhcHRpb24ge1xuICBwYWRkaW5nOiAxZW0gMDtcbiAgZm9udC1zaXplOiAxLjJlbTtcbiAgY29sb3I6ICM1NTU7XG59XG4uaG9tZS1jb250YWluZXIgLmhpZ2hjaGFydHMtZGF0YS10YWJsZSB0aCB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHBhZGRpbmc6IDAuNWVtO1xufVxuLmhvbWUtY29udGFpbmVyIC5oaWdoY2hhcnRzLWRhdGEtdGFibGUgdGQsIC5ob21lLWNvbnRhaW5lciAuaGlnaGNoYXJ0cy1kYXRhLXRhYmxlIHRoLCAuaG9tZS1jb250YWluZXIgLmhpZ2hjaGFydHMtZGF0YS10YWJsZSBjYXB0aW9uIHtcbiAgcGFkZGluZzogMC41ZW07XG59XG4uaG9tZS1jb250YWluZXIgLmhpZ2hjaGFydHMtZGF0YS10YWJsZSB0aGVhZCB0ciwgLmhvbWUtY29udGFpbmVyIC5oaWdoY2hhcnRzLWRhdGEtdGFibGUgdHI6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgYmFja2dyb3VuZDogI2Y4ZjhmODtcbn1cbi5ob21lLWNvbnRhaW5lciAuaGlnaGNoYXJ0cy1kYXRhLXRhYmxlIHRyOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogI2YxZjdmZjtcbn1cbi5ob21lLWNvbnRhaW5lciAjbWFpbi1oZWFkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogY29ybmZsb3dlcmJsdWU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnJlcG9ydGxpbmsge1xuICBjb2xvcjogYmx1ZTtcbn1cblxuLnJlcG9ydGxpbms6aG92ZXIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4jZG93bmxvYWQge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5ociB7XG4gIGJvcmRlci10b3A6IDAuMmVtIHNvbGlkICNFOUVFRjI7XG4gIG1hcmdpbi10b3A6IDA7XG59XG5cbiNJUmNvbnRhaW5lciB7XG4gIHdpZHRoOiAzMjBweCAhaW1wb3J0YW50O1xufVxuXG4jQ0Vjb250YWluZXIge1xuICAvKndpZHRoOiA0MjBweCAhaW1wb3J0YW50OyovXG59XG5cbiNJUlJpc2tNZXRlckdhdWdlY29udGFpbmVyMCxcbiNDRVJpc2tNZXRlckdhdWdlY29udGFpbmVyMCxcbiNJUlJpc2tNZXRlckdhdWdlY29udGFpbmVyMSxcbiNDRVJpc2tNZXRlckdhdWdlY29udGFpbmVyMSxcbiNJUlJpc2tNZXRlckdhdWdlY29udGFpbmVyMixcbiNDRVJpc2tNZXRlckdhdWdlY29udGFpbmVyMixcbiNJUlJpc2tNZXRlckdhdWdlY29udGFpbmVyMyxcbiNDRVJpc2tNZXRlckdhdWdlY29udGFpbmVyMyxcbiNJUlJpc2tNZXRlckdhdWdlY29udGFpbmVyNCxcbiNDRVJpc2tNZXRlckdhdWdlY29udGFpbmVyNCB7XG4gIHdpZHRoOiAyMjBweCAhaW1wb3J0YW50O1xufVxuXG4uZGlzYWJsZSB7XG4gIGNvbG9yOiBncmV5O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4ucm93LW5lZ3BhZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgbWFyZ2luLXJpZ2h0OiAtMTVweDtcbiAgbWFyZ2luLWxlZnQ6IDBweDtcbn1cblxuLmNvbnRyb2wtcGFkZGluZyB7XG4gIG1hcmdpbjogMHB4O1xuICBwYWRkaW5nOiA1cHg7XG59XG5cbi5oZWFkZXJzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzg2YmMyNSAhaW1wb3J0YW50O1xuICBtYXJnaW4tbGVmdDogNXB4O1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtaW4taGVpZ2h0OiAxNXB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbn1cblxuLmhlYWRlci1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbWFyZ2luOiBhdXRvO1xuICBwYWRkaW5nOiA1cHg7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5jYXJkLWRhc2hib2FyZCB7XG4gIGJveC1zaGFkb3c6IDAgOHB4IDlweCByZ2JhKDAsIDAsIDAsIDAuMjUpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDFweCAhaW1wb3J0YW50O1xuICBtYXJnaW4tYm90dG9tOiAxLjI1cmVtO1xufVxuXG4uY2FyZC1kYXNoYm9hcmQgLmNhcmQtZGFzaGJvYXJkLWJvZHkge1xuICBwYWRkaW5nOiAwLjkzNzVyZW07XG59XG5cbi5jYXJkLWRhc2hib2FyZC1ib2R5IHtcbiAgZmxleDogMSAxIGF1dG87XG4gIHBhZGRpbmc6IDEuMjVyZW07XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBtaW4taGVpZ2h0OiA0NTBweDtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW46IGF1dG87XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uaW1nLWNlbnRlciB7XG4gIG1hcmdpbjogYXV0bztcbiAgcGFkZGluZzogMHB4O1xuICBkaXNwbGF5OiBibG9jaztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLmZsb2F0LWxlZnQge1xuICBmbG9hdDogbGVmdDtcbn1cblxuLmZsb2F0LXJpZ2h0IHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4ubXQtNTBwIHtcbiAgbWFyZ2luLXRvcDogNTBweCAhaW1wb3J0YW50O1xufVxuXG4ubXQtODBwIHtcbiAgbWFyZ2luLXRvcDogODBweCAhaW1wb3J0YW50O1xufVxuXG4uc2VydmljZXMtY29udGFpbmVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMzAwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4uc2VydmljZXMtY29udGFpbmVyIHN2ZyB7XG4gIHdpZHRoOiA3MHB4O1xufVxuXG4ucmlzay1tZXRlci1sYWJlbCB7XG4gIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogIzMzMzMzMztcbiAgcGFkZGluZy10b3A6IDEwcHg7XG59IiwiLy8gQnJlYWtwb2ludCB2aWV3cG9ydCBzaXplcyBhbmQgbWVkaWEgcXVlcmllcy5cclxuLy9cclxuLy8gQnJlYWtwb2ludHMgYXJlIGRlZmluZWQgYXMgYSBtYXAgb2YgKG5hbWU6IG1pbmltdW0gd2lkdGgpLCBvcmRlciBmcm9tIHNtYWxsIHRvIGxhcmdlOlxyXG4vL1xyXG4vLyAgICAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpXHJcbi8vXHJcbi8vIFRoZSBtYXAgZGVmaW5lZCBpbiB0aGUgYCRncmlkLWJyZWFrcG9pbnRzYCBnbG9iYWwgdmFyaWFibGUgaXMgdXNlZCBhcyB0aGUgYCRicmVha3BvaW50c2AgYXJndW1lbnQgYnkgZGVmYXVsdC5cclxuXHJcbi8vIE5hbWUgb2YgdGhlIG5leHQgYnJlYWtwb2ludCwgb3IgbnVsbCBmb3IgdGhlIGxhc3QgYnJlYWtwb2ludC5cclxuLy9cclxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtKVxyXG4vLyAgICBtZFxyXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXHJcbi8vICAgIG1kXHJcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgJGJyZWFrcG9pbnQtbmFtZXM6ICh4cyBzbSBtZCBsZyB4bCkpXHJcbi8vICAgIG1kXHJcbkBmdW5jdGlvbiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMsICRicmVha3BvaW50LW5hbWVzOiBtYXAta2V5cygkYnJlYWtwb2ludHMpKSB7XHJcbiAgJG46IGluZGV4KCRicmVha3BvaW50LW5hbWVzLCAkbmFtZSk7XHJcbiAgQHJldHVybiBpZigkbiAhPSBudWxsIGFuZCAkbiA8IGxlbmd0aCgkYnJlYWtwb2ludC1uYW1lcyksIG50aCgkYnJlYWtwb2ludC1uYW1lcywgJG4gKyAxKSwgbnVsbCk7XHJcbn1cclxuXHJcbi8vIE1pbmltdW0gYnJlYWtwb2ludCB3aWR0aC4gTnVsbCBmb3IgdGhlIHNtYWxsZXN0IChmaXJzdCkgYnJlYWtwb2ludC5cclxuLy9cclxuLy8gICAgPj4gYnJlYWtwb2ludC1taW4oc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXHJcbi8vICAgIDU3NnB4XHJcbkBmdW5jdGlvbiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xyXG4gICRtaW46IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XHJcbiAgQHJldHVybiBpZigkbWluICE9IDAsICRtaW4sIG51bGwpO1xyXG59XHJcblxyXG4vLyBNYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguIE51bGwgZm9yIHRoZSBsYXJnZXN0IChsYXN0KSBicmVha3BvaW50LlxyXG4vLyBUaGUgbWF4aW11bSB2YWx1ZSBpcyBjYWxjdWxhdGVkIGFzIHRoZSBtaW5pbXVtIG9mIHRoZSBuZXh0IG9uZSBsZXNzIDAuMDJweFxyXG4vLyB0byB3b3JrIGFyb3VuZCB0aGUgbGltaXRhdGlvbnMgb2YgYG1pbi1gIGFuZCBgbWF4LWAgcHJlZml4ZXMgYW5kIHZpZXdwb3J0cyB3aXRoIGZyYWN0aW9uYWwgd2lkdGhzLlxyXG4vLyBTZWUgaHR0cHM6Ly93d3cudzMub3JnL1RSL21lZGlhcXVlcmllcy00LyNtcS1taW4tbWF4XHJcbi8vIFVzZXMgMC4wMnB4IHJhdGhlciB0aGFuIDAuMDFweCB0byB3b3JrIGFyb3VuZCBhIGN1cnJlbnQgcm91bmRpbmcgYnVnIGluIFNhZmFyaS5cclxuLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzgyNjFcclxuLy9cclxuLy8gICAgPj4gYnJlYWtwb2ludC1tYXgoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXHJcbi8vICAgIDc2Ny45OHB4XHJcbkBmdW5jdGlvbiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xyXG4gICRuZXh0OiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50cyk7XHJcbiAgQHJldHVybiBpZigkbmV4dCwgYnJlYWtwb2ludC1taW4oJG5leHQsICRicmVha3BvaW50cykgLSAuMDIsIG51bGwpO1xyXG59XHJcblxyXG4vLyBSZXR1cm5zIGEgYmxhbmsgc3RyaW5nIGlmIHNtYWxsZXN0IGJyZWFrcG9pbnQsIG90aGVyd2lzZSByZXR1cm5zIHRoZSBuYW1lIHdpdGggYSBkYXNoIGluIGZyb250LlxyXG4vLyBVc2VmdWwgZm9yIG1ha2luZyByZXNwb25zaXZlIHV0aWxpdGllcy5cclxuLy9cclxuLy8gICAgPj4gYnJlYWtwb2ludC1pbmZpeCh4cywgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcclxuLy8gICAgXCJcIiAgKFJldHVybnMgYSBibGFuayBzdHJpbmcpXHJcbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXHJcbi8vICAgIFwiLXNtXCJcclxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtaW5maXgoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcclxuICBAcmV0dXJuIGlmKGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpID09IG51bGwsIFwiXCIsIFwiLSN7JG5hbWV9XCIpO1xyXG59XHJcblxyXG4vLyBNZWRpYSBvZiBhdCBsZWFzdCB0aGUgbWluaW11bSBicmVha3BvaW50IHdpZHRoLiBObyBxdWVyeSBmb3IgdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQuXHJcbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCBhbmQgd2lkZXIuXHJcbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LXVwKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XHJcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XHJcbiAgQGlmICRtaW4ge1xyXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAY29udGVudDtcclxuICB9XHJcbn1cclxuXHJcbi8vIE1lZGlhIG9mIGF0IG1vc3QgdGhlIG1heGltdW0gYnJlYWtwb2ludCB3aWR0aC4gTm8gcXVlcnkgZm9yIHRoZSBsYXJnZXN0IGJyZWFrcG9pbnQuXHJcbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCBhbmQgbmFycm93ZXIuXHJcbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWRvd24oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcclxuICAkbWF4OiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcclxuICBAaWYgJG1heCB7XHJcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG1heCkge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9IEBlbHNlIHtcclxuICAgIEBjb250ZW50O1xyXG4gIH1cclxufVxyXG5cclxuLy8gTWVkaWEgdGhhdCBzcGFucyBtdWx0aXBsZSBicmVha3BvaW50IHdpZHRocy5cclxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IGJldHdlZW4gdGhlIG1pbiBhbmQgbWF4IGJyZWFrcG9pbnRzXHJcbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWJldHdlZW4oJGxvd2VyLCAkdXBwZXIsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcclxuICAkbWluOiBicmVha3BvaW50LW1pbigkbG93ZXIsICRicmVha3BvaW50cyk7XHJcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJHVwcGVyLCAkYnJlYWtwb2ludHMpO1xyXG5cclxuICBAaWYgJG1pbiAhPSBudWxsIGFuZCAkbWF4ICE9IG51bGwge1xyXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGxvd2VyLCAkYnJlYWtwb2ludHMpIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSBpZiAkbWluID09IG51bGwge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCR1cHBlciwgJGJyZWFrcG9pbnRzKSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8gTWVkaWEgYmV0d2VlbiB0aGUgYnJlYWtwb2ludCdzIG1pbmltdW0gYW5kIG1heGltdW0gd2lkdGhzLlxyXG4vLyBObyBtaW5pbXVtIGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludCwgYW5kIG5vIG1heGltdW0gZm9yIHRoZSBsYXJnZXN0IG9uZS5cclxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IG9ubHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQsIG5vdCB2aWV3cG9ydHMgYW55IHdpZGVyIG9yIG5hcnJvd2VyLlxyXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1vbmx5KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XHJcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XHJcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50cyk7XHJcblxyXG4gIEBpZiAkbWluICE9IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XHJcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikgYW5kIChtYXgtd2lkdGg6ICRtYXgpIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSBpZiAkbWF4ID09IG51bGwge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzKSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgJG1pbiA9PSBudWxsIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmFtZSwgJGJyZWFrcG9pbnRzKSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0= */\";","\r\nimport { Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { first } from 'rxjs/operators';\r\nimport * as Highcharts from 'highcharts';\r\nimport HC_exporting from 'highcharts/modules/exporting';\r\nHC_exporting(Highcharts);\r\nimport HC_exportData from 'highcharts/modules/export-data';\r\nHC_exportData(Highcharts);\r\nimport { HttpGenericService } from 'src/app/core/services/http-genric.service';\r\nimport { API } from 'src/app/shared/constants/api.constants';\r\nimport { Router } from '@angular/router';\r\nimport { CredentialsService } from '../../../core/services/credentials.service';\r\nconst swal = require(\"sweetalert\");\r\nimport html2canvas from 'html2canvas';\r\nimport { DownloadFileService } from \"src/app/core/services/download-file.service\";\r\n\r\ndeclare var require: any;\r\n\r\n@Component({\r\n selector: 'app-home',\r\n templateUrl: './home.component.html',\r\n styleUrls: ['./home.component.scss']\r\n})\r\nexport class HomeComponent implements OnInit {\r\n title = 'TESTING';\r\n api = API;\r\n ResidualRiskScoreDetails: any;\r\n id = 0;\r\n BusinessUnitsId = 0;\r\n Years = \"\";\r\n\r\n IRCategories: [];\r\n IRSeries: [];\r\n selectedBU = null;\r\n selectedToYear : any = []; \r\n selectedFromYear : any = []; \r\n \r\n public IRoptions: any = {\r\n chart: {\r\n type: 'bar',\r\n height: 250\r\n },\r\n title: {\r\n text: 'Inherent Risk',\r\n style: {\r\n color: '',\r\n fontSize: '12px',\r\n fontWeight:'bold'\r\n }\r\n },\r\n exporting: {\r\n enabled: false // hide button\r\n },\r\n credits: {\r\n enabled: false\r\n },\r\n accessibility: {\r\n announceNewData: {\r\n enabled: true\r\n }\r\n },\r\n xAxis: {\r\n type: 'category'\r\n \r\n },\r\n yAxis: {\r\n title: {\r\n text: ''\r\n },\r\n max: 3\r\n\r\n },\r\n legend: {\r\n enabled: false\r\n },\r\n plotOptions: {\r\n series: {\r\n borderWidth: 0,\r\n dataLabels: {\r\n enabled: true,\r\n format: '{point.y:.2f}',\r\n\r\n pointWidth: 11\r\n }\r\n \r\n },\r\n \r\n \r\n },\r\n\r\n tooltip: {\r\n headerFormat: '{series.name}
',\r\n pointFormat: '{point.name}: {point.y:.2f}'\r\n },\r\n colors: ['#2f7ed8', '#8bbc21', '#910000', '#1aadce',\r\n '#492970', '#f28f43', '#77a1e5', '#c42525', '#a6c96a', '#0d233a'],\r\n series: [\r\n {\r\n\r\n colorByPoint: true,\r\n data: [\r\n {\r\n name: \"Chrome\",\r\n y: 62.74,\r\n color: 'tomato'\r\n },\r\n {\r\n name: \"Firefox\",\r\n y: 10.57,\r\n color: 'cyan'\r\n },\r\n {\r\n name: \"Internet Explorer\",\r\n y: 7.23,\r\n color: 'yellow'\r\n },\r\n {\r\n name: \"Safari\",\r\n y: 5.58\r\n },\r\n {\r\n name: \"Edge\",\r\n y: 4.02\r\n },\r\n {\r\n name: \"Opera\",\r\n y: 1.92\r\n },\r\n {\r\n name: \"Other\",\r\n y: 7.62\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n\r\n public CEoptions: any = {\r\n chart: {\r\n type: 'bar',\r\n height: 350\r\n },\r\n title: {\r\n text: 'Control Risk Indicators',\r\n style: {\r\n color: '',\r\n fontSize: '12px',\r\n fontWeight: 'bold'\r\n }\r\n },\r\n exporting: {\r\n enabled: false // hide button\r\n },\r\n credits: {\r\n enabled: false\r\n },\r\n accessibility: {\r\n announceNewData: {\r\n enabled: true\r\n }\r\n },\r\n xAxis: {\r\n type: 'category'\r\n },\r\n yAxis: {\r\n title: {\r\n text: ''\r\n },\r\n max\r\n : 4\r\n },\r\n legend: {\r\n enabled: false\r\n },\r\n plotOptions: {\r\n series: {\r\n borderWidth: 0,\r\n dataLabels: {\r\n enabled: true,\r\n format: '{point.y:.2f}'\r\n },\r\n fontSize:'11'\r\n },\r\n \r\n },\r\n\r\n tooltip: {\r\n headerFormat: '{series.name}
',\r\n pointFormat: '{point.name}: {point.y:.2f}'\r\n },\r\n colors: ['#2f7ed8', '#8bbc21', '#910000', '#1aadce',\r\n '#492970', '#f28f43', '#77a1e5', '#c42525', '#a6c96a', '#0d233a'],\r\n series: [\r\n {\r\n\r\n colorByPoint: true,\r\n data: [\r\n {\r\n name: \"Chrome\",\r\n y: 62.74,\r\n color: 'tomato'\r\n },\r\n {\r\n name: \"Firefox\",\r\n y: 10.57,\r\n color: 'cyan'\r\n },\r\n {\r\n name: \"Internet Explorer\",\r\n y: 7.23,\r\n color: 'yellow'\r\n },\r\n {\r\n name: \"Safari\",\r\n y: 5.58\r\n },\r\n {\r\n name: \"Edge\",\r\n y: 4.02\r\n },\r\n {\r\n name: \"Opera\",\r\n y: 1.92\r\n },\r\n {\r\n name: \"Other\",\r\n y: 7.62\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n\r\n public IRRiskMeterGauge: any = {\r\n chart: {\r\n //height: 100 + '%', // 16:9 ratio\r\n height: 200,\r\n //width: 100 + '%',\r\n /*margin: [0, 0, 0, 0],\r\n spacingTop: 0,\r\n spacingBottom: 0,\r\n spacingLeft: 0,\r\n spacingRight: 0*/\r\n },\r\n exporting: {\r\n enabled: false // hide button\r\n },\r\n credits: {\r\n enabled: false\r\n },\r\n title: {\r\n text: '',\r\n style: {\r\n\r\n font: 'bold 11px Lucida Grande, Lucida Sans Unicode , Arial, Helvetica, sans-serif'\r\n \r\n },\r\n\r\n verticalAlign: 'top',\r\n y: 60\r\n },\r\n tooltip: {\r\n pointFormat: '{series.name}: {point.y:.1f}'\r\n },\r\n accessibility: {\r\n point: {\r\n valueSuffix: '%'\r\n }\r\n },\r\n plotOptions: {\r\n pie: {\r\n dataLabels: {\r\n enabled: true,\r\n distance: -50,\r\n style: {\r\n fontWeight: 'bold',\r\n color: 'black'\r\n }\r\n },\r\n startAngle: -90,\r\n endAngle: 90,\r\n center: ['50%', '75%'],\r\n size: '80%'\r\n }\r\n },\r\n series: [{\r\n type: 'pie',\r\n name: '',\r\n innerSize: '50%',\r\n data: [\r\n ['Low', 50],\r\n ['Others', 50]\r\n ]\r\n }]\r\n }\r\n\r\n public CERiskMeterGauge: any = {\r\n chart: {\r\n\r\n height: 200,\r\n //width:200,// 16:9 ratio*/\r\n //margin: [0, 0, 0, 0],\r\n //spacingTop: 0,\r\n //spacingBottom: 0,\r\n /*spacingLeft: 0,\r\n spacingRight: 0,*/\r\n //height: 100 + '%',\r\n\r\n },\r\n exporting: {\r\n enabled: false // hide button\r\n },\r\n credits: {\r\n enabled: false\r\n },\r\n title: {\r\n text: '',\r\n style: {\r\n\r\n font: 'bold 11px Lucida Grande, Lucida Sans Unicode , Arial, Helvetica, sans-serif'\r\n },\r\n y: 60,\r\n verticalAlign: 'top',\r\n \r\n },\r\n tooltip: {\r\n pointFormat: '{series.name}: {point.y:.1f}'\r\n },\r\n accessibility: {\r\n point: {\r\n valueSuffix: '%'\r\n }\r\n },\r\n plotOptions: {\r\n pie: {\r\n dataLabels: {\r\n enabled: true,\r\n distance: -50,\r\n style: {\r\n fontWeight: 'bold',\r\n color: 'black'\r\n }\r\n },\r\n startAngle: -90,\r\n endAngle: 90,\r\n center: ['50%', '75%'],\r\n size: '80%'\r\n }\r\n },\r\n series: [{\r\n type: 'pie',\r\n name: '',\r\n innerSize: '50%',\r\n data: [\r\n ['Satifactory', 58.9],\r\n\r\n {\r\n name: 'Other',\r\n color: 'red',\r\n y: 7.61,\r\n dataLabels: {\r\n enabled: false\r\n }\r\n }\r\n ]\r\n }]\r\n }\r\n bulist = [];\r\n ToYearList: any=[]; \r\n FromYearList: any = [];\r\n isLoad: boolean = false;\r\n entityName: any;\r\n svgIRString: any;\r\n svgCEString: any;\r\n maintab: string;\r\n cycle: any;\r\n\r\n @ViewChild('screen') screen: ElementRef;\r\n @ViewChild('scorecard') scorecard: ElementRef;\r\n @ViewChild('buscorecardIR') buscorecardIR: ElementRef;\r\n @ViewChild('buscorecardCE') buscorecardCE: ElementRef;\r\n @ViewChild('canvas') canvas: ElementRef;\r\n @ViewChild('downloadLink') downloadLink: ElementRef;\r\n htmldata: string;\r\n htmldatascorecard: string;\r\n headerName: string;\r\n reportmodel: boolean;\r\n assessmentcyclevalue: any;\r\n userId: any;\r\n taYear1: any =[];\r\n taYear2: any = [];\r\n trendAnalysisResult: any;\r\n enableSearch: boolean=true;\r\n assessmentPeriod: any;\r\n quarterOrHalfyearNo: any;\r\n taYear1Value: string;\r\n taYear1temp: any;\r\n //showTrendAnalysis: boolean;\r\n\r\n getIRChartDetails() {\r\n return new Promise((resolve, reject) => {\r\n this.httpGenericService\r\n .fetchAll(\r\n `${\r\n this.api.dashboard.IRBarChartDetails\r\n }?EntityId=${this.id}&BusinessUnitsId=${this.BusinessUnitsId}&year=${this.Years}`\r\n )\r\n .pipe(first())\r\n .subscribe((res) => {\r\n let response: any = res[\"Result\"];\r\n //let barSeries = response.series;\r\n //barSeries.forEach(item => item.data.forEach(a => a.y = Number(a.y.toFixed(2))));\r\n //this.IRoptions.xAxis.categories = response.xAxiscategories;\r\n this.IRoptions.xAxis.categories = response.xAxiscategories;\r\n this.IRoptions.series = response.series;\r\n //this.IRoptions.series = barSeries;\r\n // Highcharts.chart('IRcontainer', this.IRoptions);\r\n let chartIR = Highcharts.chart('IRcontainer', this.IRoptions);\r\n // Get Actual SVG of a chart\r\n \r\n // this.svgIRString = chartIR.getSVG();\r\n let temp = chartIR.getSVG();\r\n this.svgIRString = this.credentialsService.encryptdata(temp);\r\n \r\n resolve(true)\r\n });\r\n });\r\n }\r\n\r\n getCEChartDetails() {\r\n return new Promise((resolve, reject) => {\r\n this.httpGenericService\r\n .fetchAll(\r\n `${\r\n this.api.dashboard.CEBarChartDetails\r\n }?EntityId=${this.id}&BusinessUnitsId=${this.BusinessUnitsId}&year=${this.Years}`\r\n )\r\n .pipe(first())\r\n .subscribe((res) => {\r\n let response: any = res[\"Result\"];\r\n //this.IRoptions.xAxis.categories = response.xAxiscategories;\r\n this.CEoptions.xAxis.categories = response.xAxiscategories;\r\n this.CEoptions.series = response.series;\r\n //this.IRoptions.series = response.series;\r\n // Highcharts.chart('CEcontainer', this.CEoptions);\r\n\r\n let chartCE = Highcharts.chart('CEcontainer', this.CEoptions);\r\n // Get Actual SVG of a chart\r\n // this.svgCEString = chartCE.getSVG();\r\n let temp = chartCE.getSVG();\r\n this.svgCEString = this.credentialsService.encryptdata(temp);\r\n resolve(true)\r\n });\r\n });\r\n }\r\n\r\n getResidualRiskScoreDetails() {\r\n return new Promise((resolve, reject) => {\r\n this.httpGenericService\r\n .fetchAll(\r\n `${this.api.dashboard.ResidualRiskScoreDetails\r\n }?EntityId=${this.id}&BusinessUnitsId=${this.BusinessUnitsId}&year=${this.Years}¤tDashboardYear=${this.cycle}`\r\n )\r\n .pipe(first())\r\n .subscribe((res) => {\r\n let response: any = res[\"Result\"];\r\n this.ResidualRiskScoreDetails = response;\r\n \r\n //this.CEoptions.xAxis.categories = response.xAxiscategories;\r\n //this.CEoptions.series = response.series;\r\n //this.IRoptions.series = response.series;\r\n //Highcharts.chart('CEcontainer', this.CEoptions);\r\n resolve(true)\r\n });\r\n });\r\n }\r\n\r\n DashboardIRRiskMeterDetails() {\r\n return new Promise((resolve, reject) => {\r\n this.httpGenericService\r\n .fetchAll(\r\n `${\r\n this.api.dashboard.DashboardIRRiskMeterDetails\r\n }?EntityId=${this.id}&BusinessUnitsId=${this.BusinessUnitsId}&year=${this.Years}`\r\n )\r\n .pipe(first())\r\n .subscribe((res) => {\r\n let response: any = res[\"Result\"];\r\n for (let j = 0; j < response.length; j++) {\r\n document.getElementById('IRRiskMeterGaugecontainer' + j.toString()).innerHTML = \"\";\r\n for (let i = 0; i < response[j].length; i++) {\r\n response[j][i][1] = parseFloat(response[j][i][1]);\r\n }\r\n //let count = parseInt(this.selectedToYear.YearText) - parseInt(this.selectedFromYear.YearText);\r\n let count = parseInt(this.selectedFromYear.id) - parseInt(this.selectedToYear.id);\r\n if (count >= j) {\r\n this.IRRiskMeterGauge.series[0].data = response[j];\r\n if (response[j][0].y == 0) {\r\n\r\n // document.getElementById('IRRiskMeterYear' + j.toString()).innerHTML = (parseInt(this.selectedFromYear.YearText) + j).toString();\r\n //document.getElementById('IRRiskMeterGaugecontainer' + j.toString()).innerHTML = \"No Data Found for year \" + (parseInt(this.selectedFromYear.YearText) + j).toString();\r\n document.getElementById('IRRiskMeterGaugecontainer' + j.toString()).innerHTML = \"No Data Found for year \" + this.ToYearList.find((x) => x.id == this.selectedFromYear.id - j).value.toString();\r\n\r\n\r\n }\r\n else {\r\n // document.getElementById('IRRiskMeterYear' + j.toString()).innerHTML = (parseInt(this.selectedFromYear.YearText) + j).toString();\r\n //this.IRRiskMeterGauge.title.text = \"IR
\" + (parseInt(this.selectedFromYear.YearText) + j).toString();\r\n this.IRRiskMeterGauge.title.text = \"IR
\" + this.ToYearList.find((x) => x.id == this.selectedFromYear.id - j).value.toString();\r\n Highcharts.chart('IRRiskMeterGaugecontainer' + j.toString(), this.IRRiskMeterGauge);\r\n }\r\n }\r\n for (let j = 0; j < 5; j++) \r\n {\r\n if (response.length <= j) {\r\n // document.getElementById('IRRiskMeterYear' + j.toString()).innerHTML = \"\";\r\n document.getElementById('IRRiskMeterGaugecontainer' + j.toString()).innerHTML = \"\";\r\n }\r\n }\r\n\r\n }\r\n resolve(true)\r\n });\r\n });\r\n }\r\n\r\n DashboardCERiskMeterDetails() {\r\n return new Promise((resolve, reject) => {\r\n this.httpGenericService\r\n .fetchAll(\r\n `${\r\n this.api.dashboard.DashboardCERiskMeterDetails\r\n }?EntityId=${this.id}&BusinessUnitsId=${this.BusinessUnitsId}&year=${this.Years}`\r\n )\r\n .pipe(first())\r\n .subscribe((res) => {\r\n let response: any = res[\"Result\"];\r\n // for (let i = 0; i < response.length; i++) {\r\n // response[i][1] = parseFloat(response[i][1]);\r\n // }\r\n // this.CERiskMeterGauge.series[0].data = response;\r\n // Highcharts.chart('CERiskMeterGaugecontainer', this.CERiskMeterGauge);\r\n \r\n //});\r\n for (let j = 0; j < response.length; j++) {\r\n document.getElementById('CERiskMeterGaugecontainer' + j.toString()).innerHTML = \"\";\r\n for (let i = 0; i < response[j].length; i++) {\r\n response[j][i][1] = parseFloat(response[j][i][1]);\r\n }\r\n // let count = parseInt(this.selectedToYear.YearText) - parseInt(this.selectedFromYear.YearText);\r\n let count = parseInt(this.selectedFromYear.id) - parseInt(this.selectedToYear.id);\r\n if (count >= j) {\r\n this.CERiskMeterGauge.series[0].data = response[j];\r\n if (response[j][0].y == 0) {\r\n //document.getElementById('CERiskMeterGaugecontainer' + j.toString()).innerHTML = \"No Data Found for year \" + (parseInt(this.selectedFromYear.YearText) + j).toString();document.getElementById('CERiskMeterGaugecontainer' + j.toString()).innerHTML = \"No Data Found for year \" + (parseInt(this.selectedFromYear.YearText) + j).toString();\r\n document.getElementById('CERiskMeterGaugecontainer' + j.toString()).innerHTML = \"No Data Found for year \" + this.ToYearList.find((x) => x.id == this.selectedFromYear.id - j).value.toString(); \r\n }\r\n else {\r\n //this.CERiskMeterGauge.title.text = \"CE
\" + (parseInt(this.selectedFromYear.YearText) + j).toString();\r\n this.CERiskMeterGauge.title.text = \"CE
\" + this.ToYearList.find((x) => x.id == this.selectedFromYear.id - j).value.toString();\r\n Highcharts.chart('CERiskMeterGaugecontainer' + j.toString(), this.CERiskMeterGauge);\r\n }\r\n }\r\n\r\n for (let j = 0; j < 5; j++) {\r\n if (response.length <= j) {\r\n document.getElementById('CERiskMeterGaugecontainer' + j.toString()).innerHTML = \"\";\r\n }\r\n }\r\n }\r\n resolve(true)\r\n });\r\n });\r\n }\r\n\r\n saveChartSVG(strSvg, Category, isUpdate) {\r\n //return new Promise((resolve, reject) => {\r\n let obj = {\r\n EntityId: this.id,\r\n BusinessUnitsId: this.BusinessUnitsId,\r\n year: this.selectedFromYear.value,\r\n Category: Category,\r\n strSVG: strSvg\r\n };\r\n this.httpGenericService\r\n\r\n //.postDataPromise(this.api.dashboard.SaveSVG, obj)\r\n //.then((data) => {\r\n \r\n .postData(\r\n `${this.api.dashboard.SaveSVG}?isUpdate=${isUpdate}`, obj)\r\n \r\n .pipe(first())\r\n .subscribe((data) => {\r\n \r\n //resolve(true)\r\n //});\r\n });\r\n \r\n //this.httpGenericService\r\n // .fetchAll(\r\n // `${\r\n // this.api.dashboard.SaveSVG\r\n // }?EntityId=${this.id}&BusinessUnitsId=${this.BusinessUnitsId}&year=${this.Years}&Category=${Category}&strSVG=${strSvg}`\r\n // )\r\n // .pipe(first())\r\n // .subscribe((res) => {\r\n // let response: any = res[\"Result\"];\r\n \r\n // });\r\n }\r\n \r\n constructor(private httpGenericService: HttpGenericService, private route: Router, private credentialsService: CredentialsService, private downloadfile: DownloadFileService,) {\r\n\r\n }\r\n\r\n async ngOnInit(): Promise {\r\n this.maintab = localStorage.getItem(\"maintab\");\r\n // if (this.maintab == \"AssessmentStatus\") {\r\n this.id = JSON.parse(localStorage.getItem(\"ASEntityId\"));\r\n //this.assessmentPeriod = JSON.parse(localStorage.getItem(\"DashboardAssessmentCycle\"));\r\n this.cycle = JSON.parse(localStorage.getItem(\"ASAssessmentCycle\"));\r\n //this.cycle = this.assessmentPeriod.value.toString();\r\n //}\r\n /* else {\r\n this.id = JSON.parse(localStorage.getItem(\"GenDashboardEntiy\"));\r\n this.cycle = JSON.parse(localStorage.getItem(\"GenDashboardYear\"));\r\n }*/\r\n this.userId = this.credentialsService.credentials.userId;\r\n await this.ToFromYearDropDown();\r\n await this.getBUList();\r\n \r\n //this.Years = cycle.split(\"-\")[0];\r\n //let yearVal = this.cycle.split(\"-\")[0];\r\n //let yearVal = this.cycle;\r\n this.selectedFromYear = this.FromYearList.find((x) => x.value == this.cycle);\r\n this.selectedToYear = this.ToYearList.find((x) => x.value == this.cycle);\r\n //this.selectedFromYear.push({ Value: yearVal });\r\n //this.selectedFromYear = this.selectedFromYear[0];\r\n //this.selectedToYear.push({ Value: yearVal });\r\n //this.selectedToYear = this.selectedToYear[0];\r\n //let prevYear = (parseInt(yearVal) - 1).toString();\r\n //this.taYear1.push({ YearText: prevYear });\r\n //this.taYear1 = this.taYear1[0];\r\n if (this.cycle.split(\"-\").length > 1) {\r\n this.quarterOrHalfyearNo = this.cycle.split(\"-\")[1].substring(this.cycle.split(\"-\")[1].length - 1);\r\n if ((parseInt(this.quarterOrHalfyearNo) - 1) == 0) {\r\n if (this.cycle.split(\"-\")[1].substring(0, 1) == \"Q\") {\r\n this.taYear1Value = (parseInt(this.cycle.split(\"-\")[0]) - 1).toString() + \"-\" + this.cycle.split(\"-\")[1].substring(0, this.cycle.split(\"-\")[1].length - 1) + \"4\";\r\n\r\n }\r\n else if (this.cycle.split(\"-\")[1].substring(0, 1) == \"H\") {\r\n this.taYear1Value = (parseInt(this.cycle.split(\"-\")[0]) - 1).toString() + \"-\" + this.cycle.split(\"-\")[1].substring(0, this.cycle.split(\"-\")[1].length - 1) + \"2\";\r\n }\r\n }\r\n else {\r\n this.taYear1Value = this.cycle.substring(0, this.cycle.length - 1) + (parseInt(this.quarterOrHalfyearNo) - 1).toString();\r\n }\r\n }\r\n else {\r\n this.taYear1Value = (parseInt(this.cycle) - 1).toString();\r\n }\r\n \r\n //this.taYear2.push({ Value: yearVal });\r\n //this.taYear2 = this.taYear2[0];\r\n this.taYear1temp = this.FromYearList.find((x) => x.value == this.taYear1Value);\r\n if(this.taYear1temp !== undefined)\r\n this.taYear1 = this.taYear1temp\r\n else\r\n this.taYear1.value = this.taYear1Value\r\n this.taYear2 = this.ToYearList.find((x) => x.value == this.cycle);\r\n this.loadCharts();\r\n this.GetTrendAnalysis();\r\n }\r\n\r\n async loadCharts() {\r\n \r\n if (this.selectedFromYear == null || this.selectedToYear == null) {\r\n swal({\r\n icon: \"warning\",\r\n text: \"From year and To year.\"\r\n });\r\n }\r\n else {\r\n if (parseInt(this.selectedToYear.id) > parseInt(this.selectedFromYear.id)) {\r\n swal({\r\n icon: \"warning\",\r\n text: \"From year should be less than To year.\"\r\n });\r\n }\r\n else {\r\n this.isLoad = true;\r\n // this.Years = \"\";\r\n // this.id = 20196;\r\n //this.taYear1 = this.selectedFromYear;\r\n //this.taYear2 = this.selectedToYear;\r\n this.BusinessUnitsId = this.selectedBU != null ? this.selectedBU.businessUnitId : 0;\r\n //this.Years = \"2020,2020,2020\";\r\n\r\n //let count = parseInt(this.selectedToYear.YearText) - parseInt(this.selectedFromYear.YearText);\r\n //let count = parseInt(this.selectedFromYear.id) - parseInt(this.selectedToYear.id);\r\n //for (let i = 0; i <= count; i++) {\r\n // this.Years = this.Years + (parseInt(this.selectedFromYear.YearText) + i).toString() + \",\";\r\n //}\r\n for (let i = this.selectedFromYear.id; i >= this.selectedToYear.id; i--)\r\n {\r\n let assessmentPeriod1 = this.ToYearList.find((x) => x.id == i);\r\n this.Years = this.Years + assessmentPeriod1.value + \",\";\r\n }\r\n this.Years = this.Years.replace(/,\\s*$/, \"\");\r\n await this.DashboardIRRiskMeterDetails();\r\n await this.DashboardCERiskMeterDetails();\r\n await this.getResidualRiskScoreDetails();\r\n await this.getIRChartDetails();\r\n await this.getCEChartDetails();\r\n if (this.selectedFromYear.value == this.selectedToYear.value) {\r\n await this.dashboardtable();\r\n if (this.BusinessUnitsId == 0) {\r\n this.headerName = 'Overall Rating';\r\n }\r\n else {\r\n this.headerName = this.selectedBU.buname;\r\n }\r\n //this.scoreCardTable();\r\n }\r\n //this.saveChartSVG(this.canvas.nativeElement.src,\"IR\");\r\n //this.saveChartSVG(this.canvas.nativeElement.src,\"CE\");\r\n this.Years = \"\";\r\n // HC_exporting(Highcharts);\r\n }\r\n }\r\n }\r\n\r\n getBUList() {\r\n this.httpGenericService\r\n .fetchAll(\r\n `${\r\n this.api.entityBusinessUnits.getAllEntityBusinessUnits\r\n }?entityDetailsId=${this.id}`\r\n )\r\n .pipe(first())\r\n .subscribe((res) => {\r\n let response: any = res[\"Result\"];\r\n this.bulist = response;\r\n this.bulist = this.bulist.filter(\r\n x => x.isActive == true\r\n );\r\n this.bulist.push({\r\n buname: \"All\",\r\n businessUnitId: 0\r\n });\r\n this.bulist = this.bulist.sort(function (a, b) {\r\n return a.businessUnitId - b.businessUnitId;\r\n });\r\n });\r\n }\r\n detailedReport() {\r\n\r\n //let count = parseInt(this.selectedToYear.YearText) - parseInt(this.selectedFromYear.YearText);\r\n //for (let i = 0; i <= count; i++) {\r\n // this.Years = this.Years + (parseInt(this.selectedFromYear.YearText) + i).toString() + \",\";\r\n //}\r\n\r\n for (let i = this.selectedFromYear.id; i >= this.selectedToYear.id; i--) {\r\n let assessmentPeriod1 = this.ToYearList.find((x) => x.id == i);\r\n this.Years = this.Years + assessmentPeriod1.value + \",\";\r\n }\r\n this.Years = this.Years.replace(/,\\s*$/, \"\");\r\n\r\n var obj = {\r\n id: this.id,\r\n BusinessUnitsId: this.selectedBU != null ? this.selectedBU.businessUnitId : 0,\r\n Years: this.Years,\r\n RiskCategory: \"IR\"\r\n };\r\n localStorage.setItem('setdetailedreport', JSON.stringify(obj));\r\n this.route.navigate([\"/business/detailedreport\"]);\r\n }\r\n compositionreport() {\r\n //let count = parseInt(this.selectedToYear.YearText) - parseInt(this.selectedFromYear.YearText);\r\n //for (let i = 0; i <= count; i++) {\r\n // this.Years = this.Years + (parseInt(this.selectedFromYear.YearText) + i).toString() + \",\";\r\n //}\r\n for (let i = this.selectedFromYear.id; i >= this.selectedToYear.id; i--) {\r\n let assessmentPeriod1 = this.ToYearList.find((x) => x.id == i);\r\n this.Years = this.Years + assessmentPeriod1.value + \",\";\r\n }\r\n this.Years = this.Years.replace(/,\\s*$/, \"\");\r\n\r\n var obj = {\r\n id: this.id,\r\n BusinessUnitsId: this.selectedBU != null ? this.selectedBU.businessUnitId : 0,\r\n Years: this.Years,\r\n RiskCategory: \"IR\"\r\n };\r\n localStorage.setItem('setcompositionreport', JSON.stringify(obj));\r\n this.route.navigate([\"/business/compositionreport\"]);\r\n }\r\n CEdetailedReport() {\r\n\r\n //let count = parseInt(this.selectedToYear.YearText) - parseInt(this.selectedFromYear.YearText);\r\n //for (let i = 0; i <= count; i++) {\r\n // this.Years = this.Years + (parseInt(this.selectedFromYear.YearText) + i).toString() + \",\";\r\n //}\r\n for (let i = this.selectedFromYear.id; i >= this.selectedToYear.id; i--) {\r\n let assessmentPeriod1 = this.ToYearList.find((x) => x.id == i);\r\n this.Years = this.Years + assessmentPeriod1.value + \",\";\r\n }\r\n this.Years = this.Years.replace(/,\\s*$/, \"\");\r\n\r\n var obj = {\r\n id: this.id,\r\n BusinessUnitsId: this.selectedBU != null ? this.selectedBU.businessUnitId : 0,\r\n Years: this.Years,\r\n RiskCategory: \"CE\"\r\n };\r\n localStorage.setItem('setdetailedreport', JSON.stringify(obj));\r\n this.route.navigate([\"/home/detailedreport\"]);\r\n }\r\n CEcompositionreport() {\r\n\r\n //let count = parseInt(this.selectedToYear.YearText) - parseInt(this.selectedFromYear.YearText);\r\n //for (let i = 0; i <= count; i++) {\r\n // this.Years = this.Years + (parseInt(this.selectedFromYear.YearText) + i).toString() + \",\";\r\n //}\r\n for (let i = this.selectedFromYear.id; i >= this.selectedToYear.id; i--) {\r\n let assessmentPeriod1 = this.ToYearList.find((x) => x.id == i);\r\n this.Years = this.Years + assessmentPeriod1.value + \",\";\r\n }\r\n this.Years = this.Years.replace(/,\\s*$/, \"\");\r\n\r\n var obj = {\r\n id: this.id,\r\n BusinessUnitsId: this.selectedBU != null ? this.selectedBU.businessUnitId : 0,\r\n Years: this.Years,\r\n RiskCategory: \"CE\"\r\n };\r\n localStorage.setItem('setcompositionreport', JSON.stringify(obj));\r\n this.route.navigate([\"/home/compositionreport\"]);\r\n }\r\n ToFromYearDropDown() {\r\n \r\n //let year = new Date().getFullYear();\r\n //for (let i = 0; i < 5; i++) {\r\n // let date = (year - i).toString();\r\n\r\n // if (parseInt(date) >= 2020)\r\n // {\r\n // this.ToYearList.push({\r\n // YearText: date,\r\n // });\r\n // this.FromYearList.push({\r\n // YearText: date,\r\n // });\r\n // }\r\n //}\r\n return new Promise((resolve, reject) => {\r\n //this.entityDetailsId = 20196;\r\n this.httpGenericService\r\n .fetchAll(`${this.api.BusinessUnits.getAssessmentCycles}?entityDetailsID=${this.id}`)\r\n\r\n .pipe(first())\r\n .subscribe((res) => {\r\n this.ToYearList = res[\"Result\"];\r\n this.FromYearList = res[\"Result\"];\r\n\r\n //this.selectedAssessmentCycle = this.assessmentCycles[0];\r\n //this.assessmentCycles = this.selectedAssessmentCycle;\r\n resolve(true)\r\n });\r\n });\r\n }\r\n\r\n dashboardtable() {\r\n setTimeout(async () => {\r\n //return new Promise((resolve, reject) => {\r\n html2canvas(this.screen.nativeElement).then(canvas => {\r\n this.htmldata = this.canvas.nativeElement.src = canvas.toDataURL();\r\n this.downloadLink.nativeElement.href = canvas.toDataURL('image/png');\r\n //this.downloadLink.nativeElement.download = 'dashboardchart.png';\r\n //this.downloadLink.nativeElement.click();\r\n this.saveChartSVG(this.htmldata, \"IR\", false);\r\n this.saveChartSVG(this.htmldata, \"CE\", false);\r\n });\r\n\r\n html2canvas(this.scorecard.nativeElement).then(canvas => {\r\n this.htmldatascorecard = this.canvas.nativeElement.src = canvas.toDataURL();\r\n this.downloadLink.nativeElement.href = canvas.toDataURL('image/png');\r\n //this.downloadLink.nativeElement.download = 'dashboardchart.png';\r\n //this.downloadLink.nativeElement.click();\r\n this.saveChartSVG(this.htmldatascorecard, \"ScoreCard\", false);\r\n //this.saveChartSVG(this.canvas.nativeElement.src, \"CE\");\r\n });\r\n\r\n html2canvas(this.buscorecardIR.nativeElement).then(canvas => {\r\n this.htmldatascorecard = this.canvas.nativeElement.src = canvas.toDataURL();\r\n this.downloadLink.nativeElement.href = canvas.toDataURL('image/png');\r\n //this.downloadLink.nativeElement.download = 'dashboardchartIR.png';\r\n //this.downladLink.nativeElement.click();\r\n //this.saveChartSVG(this.htmldatascorecard, \"buScoreCard\");\r\n if (this.BusinessUnitsId == 0) {\r\n this.saveChartSVG(this.canvas.nativeElement.src, \"OverallIR\", false);\r\n }\r\n else {\r\n this.saveChartSVG(this.canvas.nativeElement.src, \"BUIR\", false);\r\n }\r\n });\r\n\r\n html2canvas(this.buscorecardCE.nativeElement).then(canvas => {\r\n this.htmldatascorecard = this.canvas.nativeElement.src = canvas.toDataURL();\r\n this.downloadLink.nativeElement.href = canvas.toDataURL('image/png');\r\n //this.downloadLink.nativeElement.download = 'dashboardchartCE.png';\r\n //this.downloadLink.nativeElement.click();\r\n //this.saveChartSVG(this.htmldatascorecard, \"buScoreCard\");\r\n if (this.BusinessUnitsId == 0) {\r\n this.saveChartSVG(this.canvas.nativeElement.src, \"OverallCE\", false);\r\n }\r\n else {\r\n this.saveChartSVG(this.canvas.nativeElement.src, \"BUCE\", true);\r\n }\r\n });\r\n },800);\r\n // resolve(true)\r\n // });\r\n }\r\n\r\n \r\n\r\n Generatereport() {\r\n this.httpGenericService\r\n .fetchAll(\r\n `${this.api.reportTemplates.IsDashboardGenerated}?EntityId=${this.id}&assessmentCycle=${this.cycle}`\r\n )\r\n .pipe(first())\r\n .subscribe((res) => {\r\n let response: any = res;\r\n if (response.StatusCode === 200) {\r\n this.reportmodel = true;\r\n }\r\n else {\r\n swal({\r\n icon: \"warning\",\r\n text: response.Message,\r\n });\r\n }\r\n });\r\n \r\n }\r\n\r\n Generatedocorpdfreport(data: boolean) {\r\n \r\n let fileextension = data == true ? \".docx\" : \".pdf\";\r\n this.httpGenericService\r\n .fetchAll(\r\n `${this.api.reportTemplates.generateReport}?EntityId=${this.id}&assessmentCycle=${this.cycle}&reportGeneratedBy=${this.userId}&fileExtension=${fileextension}`\r\n )\r\n .pipe(first())\r\n .subscribe((res) => {\r\n let response: any = res;\r\n if (response.StatusCode === 200 && response.Result !== \"ERROR\") {\r\n if (data == true) {\r\n this.downloadfile.downloadDocument(\r\n response.Result.filePathDOCX,\r\n response.Result.fileNameDOCX\r\n );\r\n } else {\r\n this.downloadfile.downloadDocument(\r\n response.Result.filePathPDF,\r\n response.Result.fileNamePDF\r\n );\r\n }\r\n this.reportmodel = false;\r\n } else {\r\n swal({\r\n icon: \"error\",\r\n text: \"Error occured while downloading\",\r\n });\r\n }\r\n });\r\n }\r\n\r\n GetTrendAnalysis() {\r\n //let fromYear = parseInt(this.selectedFromYear.id);\r\n //let toYear = parseInt(this.selectedToYear.id);\r\n //if (fromYear != toYear) {\r\n // //this.showTrendAnalysis = true;\r\n //}\r\n // if (this.enableSearch && this.showTrendAnalysis) {\r\n if (this.enableSearch) {\r\n //let year1 = parseInt(this.taYear1.textYear);\r\n //let year2 = parseInt(this.taYear2.textYear);\r\n let year1 = (this.taYear1temp !== undefined || this.taYear1 !== undefined )? this.taYear1.value : this.taYear1Value ;\r\n let year2 = this.taYear2.value\r\n\r\n this.httpGenericService\r\n .fetchAll(\r\n `${this.api.dashboard.GetDashboardTrendAnalysis}?entityDetailsId=${this.id}&businessUnitId=${this.BusinessUnitsId}&year1=${year1}&year2=${year2}`\r\n )\r\n .pipe(first())\r\n .subscribe((res) => {\r\n let response: any = res;\r\n if (response.StatusCode === 200) {\r\n this.trendAnalysisResult = response[\"Result\"];\r\n /*this.trendAnalysisResult.ForEach(item => {\r\n item.riskCategory == 1 ? item.riskCategory = \"INHERENT RISK\" :\r\n item.riskCategory == 2 ? item.riskCategory = \"CONTROLS\" : item.riskCategory == 3 ? item.riskCategory = \"RESIDUAL RISK\" : item.riskCategory = item.riskCategory;\r\n });*/\r\n\r\n }\r\n else {\r\n swal({\r\n icon: \"warning\",\r\n text: \"Failed to get the trend analysis for the selected years\",\r\n });\r\n }\r\n });\r\n }\r\n \r\n }\r\n\r\n CheckYears() {\r\n this.trendAnalysisResult = null;\r\n let year1Id = parseInt(this.taYear1.id);\r\n let year2Id= parseInt(this.taYear2.id);\r\n if (year1Id == year2Id) {\r\n this.enableSearch = false;\r\n swal({\r\n icon: \"warning\",\r\n text: \"The from and to year cannot be the same\",\r\n });\r\n }\r\n else if (year1Id < year2Id) {\r\n this.enableSearch = false;\r\n swal({\r\n icon: \"warning\",\r\n text: \"The from year cannot be greater than to year\",\r\n });\r\n }\r\n else\r\n this.enableSearch = true;\r\n\r\n }\r\n\r\n \r\n}\r\n","const Dashboard = {\r\n text: \"Dashboard\",\r\n link: \"/home\",\r\n icon: \"icon-grid\",\r\n isAdmin: false,\r\n};\r\n\r\nconst Assessment = {\r\n text: \"Assessment\",\r\n link: '/entity/assessmentreview',\r\n icon: 'icon-speech',\r\n isAdmin: false,\r\n};\r\n\r\nconst Weightages = {\r\n text: \"Weightages\",\r\n link: '/entity/assignweightage',\r\n icon: 'icon-calculator',\r\n isAdmin: false,\r\n};\r\n\r\nconst Mapquestionnaire = {\r\n text: \"Map Questionnaire\",\r\n link: '/entity/mapquestionnaire',\r\n icon: 'icon-calculator',\r\n isAdmin: false,\r\n};\r\n\r\nconst BusinessUnits = {\r\n text: \"Assessment Status\",\r\n link: '/business',\r\n icon: 'icon-layers',\r\n isAdmin: false,\r\n};\r\n\r\nconst RemedialMeasure = {\r\n text: \"Remedial Measure\",\r\n link: '/remedial',\r\n icon: 'icon-grid',\r\n isAdmin: false,\r\n};\r\n\r\nconst UserManagement = {\r\n text: \"User Management\",\r\n link: \"/users\",\r\n icon: \"icon-people\",\r\n isAdmin: false,\r\n};\r\n\r\nconst EntityManagement = {\r\n text: \"Entity Management\",\r\n link: '/entity',\r\n icon: 'icon-support',\r\n isAdmin: false,\r\n};\r\n\r\nconst Emailtemplates = {\r\n text: \"Email Templates\",\r\n link: '/email',\r\n icon: 'icon-envelope',\r\n isAdmin: false,\r\n};\r\n\r\nconst Reporttemplates = {\r\n text: \"Report Templates\",\r\n link: '/report',\r\n icon: 'icon-notebook',\r\n isAdmin: false,\r\n};\r\n\r\nconst RolesPermission = {\r\n text: \"Role Management\",\r\n link: \"/RolesPermission\",\r\n icon: \"icon-briefcase\",\r\n isAdmin: false,\r\n};\r\n\r\nconst PermissionManagement = {\r\n text: \"Access Permission\",\r\n link: \"/Permission\",\r\n icon: \"icon-user-follow\",\r\n isAdmin: true,\r\n};\r\n\r\nconst AuditReport = {\r\n text: \"Audit Report\",\r\n link: \"/audit\",\r\n icon: \"icon-note\",\r\n isAdmin: false,\r\n};\r\n\r\nconst RegulatoryGuidelines = {\r\n text: \"Regulatory Guidelines\",\r\n link: \"/regulatory-guideline\",\r\n icon: \"icon-list\",\r\n isAdmin: false,\r\n};\r\n\r\nconst ClientMangement = {\r\n text: \"Client Management\",\r\n link: \"/client\",\r\n icon: \"icon-calendar\",\r\n isAdmin: false,\r\n submenu: [\r\n {\r\n text: 'Dashbord v1',\r\n link: '/dashboard/v1'\r\n },\r\n {\r\n text: 'Dashbord v2',\r\n link: '/dashboard/v2'\r\n },\r\n {\r\n text: 'Dashbord v3',\r\n link: '/dashboard/v3'\r\n }\r\n ]\r\n};\r\n\r\nconst TaskManagement = {\r\n text: \"Task Management\",\r\n link: \"/task\",\r\n icon: \"icon-list\",\r\n isAdmin: false,\r\n};\r\n\r\nconst Masters = {\r\n text: \"Masters\",\r\n link: \"/masters\",\r\n icon: \"icon-user-following\",\r\n isAdmin: false,\r\n};\r\n\r\nconst Settings = {\r\n text: \"Settings\",\r\n link: \"/Settings\",\r\n icon: \"icon-settings\",\r\n isAdmin: false,\r\n isClient: false,\r\n};\r\n\r\nexport const Admin = [\r\n //Dashboard,\r\n UserManagement,\r\n RolesPermission,\r\n PermissionManagement,\r\n EntityManagement,\r\n BusinessUnits,\r\n Weightages,\r\n Assessment,\r\n Emailtemplates,\r\n Reporttemplates,\r\n AuditReport,\r\n RegulatoryGuidelines,\r\n Mapquestionnaire \r\n //RemedialMeasure\r\n];\r\n\r\n/*export const Admin = [\r\n {\r\n text: 'Dashboard',\r\n link: '/home',\r\n icon: 'icon-grid',\r\n isAdmin: false,\r\n },\r\n {\r\n text: \"User Management\",\r\n link: \"/users\",\r\n icon: \"icon-people\",\r\n isAdmin: true,\r\n },\r\n {\r\n text: \"Roles Management\",\r\n link: \"/RolesPermission\",\r\n icon: \"icon-user-follow\",\r\n isAdmin: true,\r\n },\r\n {\r\n text: \"Permissions\",\r\n link: \"/Permission\",\r\n icon: \"icon-user-follow\",\r\n isAdmin: true,\r\n },\r\n {\r\n text: \"Masters\",\r\n link: \"/masters\",\r\n icon: \"icon-user-following\",\r\n isAdmin: true,\r\n },\r\n {\r\n text: 'Settings',\r\n link: '/Settings',\r\n icon: 'icon-settings',\r\n isAdmin: true,\r\n }\r\n];*/\r\n\r\nexport const menu = [\r\n // Dashboard,\r\n TaskManagement,\r\n ClientMangement,\r\n //UserManagement,\r\n //RolesPermission,\r\n //PermissionManagement,\r\n //Masters,\r\n //Settings,\r\n // Admin\r\n];\r\n\r\nexport const Manager = [\r\n Dashboard,\r\n Assessment,\r\n Weightages,\r\n BusinessUnits,\r\n RemedialMeasure\r\n];\r\n\r\nexport const Analyst = [\r\n Dashboard,\r\n Assessment,\r\n Weightages,\r\n UserManagement,\r\n RemedialMeasure\r\n];\r\n","export default \"@charset \\\"UTF-8\\\";\\n.form-control {\\n display: block;\\n width: 100%;\\n height: 2.1875rem;\\n padding: 0.375rem 1rem;\\n font-size: 14px;\\n font-weight: 400;\\n line-height: 1.528571429;\\n color: black;\\n background-color: #fff;\\n background-clip: padding-box;\\n border: 1px solid grey;\\n border-radius: 0.25rem;\\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\\n}\\n.bluebtn {\\n width: 30% !important;\\n}\\n.margin {\\n margin-right: 32% !important;\\n}\\n.margintop {\\n margin-top: 17% !important;\\n}\\n@media screen and (max-width: 425px) {\\n .margintop {\\n margin-top: 1.8rem !important;\\n }\\n}\\n* {\\n box-sizing: border-box;\\n}\\n.fa-search {\\n content: \\\"\\\";\\n color: grey;\\n font-size: 13px;\\n}\\n/* Style the search field */\\nform.example input[type=text] {\\n padding: 10px;\\n font-size: 14px;\\n float: left;\\n width: 80%;\\n background: white;\\n border-left: none;\\n border-top-left-radius: 0rem;\\n border-bottom-left-radius: 0rem;\\n border-top-right-radius: 0.25rem;\\n border-bottom-right-radius: 0.25rem;\\n}\\n/* Style the submit button */\\nform.example button {\\n height: 2.1875rem;\\n float: left;\\n width: 10%;\\n padding: 10px;\\n background: white;\\n color: black;\\n font-size: 6px;\\n border-right: none;\\n /* Prevent double borders */\\n border-left: 1px solid #dde6e9;\\n border-top: 1px solid #dde6e9;\\n border-bottom: 1px solid #dde6e9;\\n border-bottom-left-radius: 0.25rem;\\n border-top-left-radius: 0.25rem;\\n border-top-right-radius: 0rem;\\n border-bottom-right-radius: 0rem;\\n}\\n.text-sm {\\n font-size: 15px;\\n}\\n/* Clear floats */\\nform.example::after {\\n content: \\\"\\\";\\n clear: both;\\n display: table;\\n}\\n/* The switch - the box around the slider */\\n.switch {\\n position: relative;\\n display: inline-block;\\n width: 60px;\\n height: 34px;\\n}\\n/* Hide default HTML checkbox */\\n.switch input {\\n opacity: 0;\\n width: 0;\\n height: 0;\\n}\\n/* The slider */\\n.slider {\\n position: absolute;\\n cursor: pointer;\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n background-color: #ccc;\\n transition: 0.4s;\\n}\\ninput:checked + .slider {\\n background-color: yellowgreen;\\n border: none;\\n}\\ninput:focus + .slider {\\n box-shadow: 0 0 1px yellowgreen;\\n}\\ninput:checked + .slider:before {\\n transform: translateX(26px);\\n}\\n/* Rounded sliders */\\n.slider.round {\\n border-radius: 34px;\\n}\\n.slider.round:before {\\n border-radius: 50%;\\n}\\n.card-header:first-child, .panel-heading:first-child {\\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;\\n padding: 18px;\\n font-size: 1.2rem;\\n}\\n.adjustwidth {\\n padding-right: 71px;\\n width: -webkit-fill-available;\\n}\\n.Button {\\n background-color: black;\\n color: white;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbW9kdWxlcy91c2VyLW1hbmFnZW1lbnQvY29tcG9uZW50cy9hZGQtdXNlci9hZGQtdXNlci5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvbW9kdWxlcy91c2VyLW1hbmFnZW1lbnQvY29tcG9uZW50cy9hZGQtdXNlci9EOlxcSW5kaWFCVVxcQWdlbnRQb29sXFxEb3ROZXRcXERvdE5ldEZyYW1ld29ya1xcX3dvcmtcXDI5Nlxccy9zcmNcXGFwcFxcbW9kdWxlc1xcdXNlci1tYW5hZ2VtZW50XFxjb21wb25lbnRzXFxhZGQtdXNlclxcYWRkLXVzZXIuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0JBQWdCO0FDQWhCO0VBQ0UsY0FBQTtFQUNBLFdBQUE7RUFDQSxpQkFBQTtFQUNBLHNCQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0Esd0JBQUE7RUFDQSxZQUFBO0VBQ0Esc0JBQUE7RUFDQSw0QkFBQTtFQUNBLHNCQUFBO0VBQ0Esc0JBQUE7RUFDQSx3RUFBQTtBREVGO0FDQ0E7RUFDRSxxQkFBQTtBREVGO0FDQ0E7RUFDSSw0QkFBQTtBREVKO0FDQ0E7RUFDQSwwQkFBQTtBREVBO0FDQ0E7RUFDRTtJQUNFLDZCQUFBO0VERUY7QUFDRjtBQ0VBO0VBQ0ksc0JBQUE7QURBSjtBQ0VFO0VBQ0UsWUFBQTtFQUNBLFdBQUE7RUFDQSxlQUFBO0FEQ0o7QUNHRSwyQkFBQTtBQUNBO0VBQ0UsYUFBQTtFQUNBLGVBQUE7RUFDQSxXQUFBO0VBQ0EsVUFBQTtFQUNBLGlCQUFBO0VBQ0EsaUJBQUE7RUFDQSw0QkFBQTtFQUNBLCtCQUFBO0VBQ0EsZ0NBQUE7RUFDQSxtQ0FBQTtBREFKO0FDSUUsNEJBQUE7QUFDQTtFQUNFLGlCQUFBO0VBQ0EsV0FBQTtFQUNBLFVBQUE7RUFDQSxhQUFBO0VBQ0EsaUJBQUE7RUFDQSxZQUFBO0VBQ0EsY0FBQTtFQUNBLGtCQUFBO0VBQW9CLDJCQUFBO0VBQ3BCLDhCQUFBO0VBQ0EsNkJBQUE7RUFDQSxnQ0FBQTtFQUNBLGtDQUFBO0VBQ0EsK0JBQUE7RUFDQSw2QkFBQTtFQUNBLGdDQUFBO0FEQUo7QUNHRTtFQUNFLGVBQUE7QURBSjtBQ0dBLGlCQUFBO0FBQ0E7RUFDRSxXQUFBO0VBQ0EsV0FBQTtFQUNBLGNBQUE7QURBRjtBQ0dBLDJDQUFBO0FBQ0E7RUFDRSxrQkFBQTtFQUNBLHFCQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7QURBRjtBQ0VBLCtCQUFBO0FBQ0E7RUFDRSxVQUFBO0VBQ0EsUUFBQTtFQUNBLFNBQUE7QURDRjtBQ0VBLGVBQUE7QUFDQTtFQUNFLGtCQUFBO0VBQ0EsZUFBQTtFQUNBLE1BQUE7RUFDQSxPQUFBO0VBQ0EsUUFBQTtFQUNBLFNBQUE7RUFDQSxzQkFBQTtFQUVBLGdCQUFBO0FEQ0Y7QUNJQTtFQUNFLDZCQUFBO0VBQ0EsWUFBQTtBRERGO0FDSUE7RUFDRSwrQkFBQTtBRERGO0FDSUE7RUFHRSwyQkFBQTtBRERGO0FDR0Esb0JBQUE7QUFDQTtFQUNFLG1CQUFBO0FEQUY7QUNHQTtFQUNFLGtCQUFBO0FEQUY7QUNJQTtFQUNJLDBEQUFBO0VBQ0EsYUFBQTtFQUNBLGlCQUFBO0FEREo7QUNJQTtFQUNFLG1CQUFBO0VBQ0EsNkJBQUE7QURERjtBQ0lBO0VBQ0UsdUJBQUE7RUFDQSxZQUFBO0FEREYiLCJmaWxlIjoic3JjL2FwcC9tb2R1bGVzL3VzZXItbWFuYWdlbWVudC9jb21wb25lbnRzL2FkZC11c2VyL2FkZC11c2VyLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLmZvcm0tY29udHJvbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAyLjE4NzVyZW07XG4gIHBhZGRpbmc6IDAuMzc1cmVtIDFyZW07XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNTI4NTcxNDI5O1xuICBjb2xvcjogYmxhY2s7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGdyZXk7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjE1cyBlYXNlLWluLW91dCwgYm94LXNoYWRvdyAwLjE1cyBlYXNlLWluLW91dDtcbn1cblxuLmJsdWVidG4ge1xuICB3aWR0aDogMzAlICFpbXBvcnRhbnQ7XG59XG5cbi5tYXJnaW4ge1xuICBtYXJnaW4tcmlnaHQ6IDMyJSAhaW1wb3J0YW50O1xufVxuXG4ubWFyZ2ludG9wIHtcbiAgbWFyZ2luLXRvcDogMTclICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQyNXB4KSB7XG4gIC5tYXJnaW50b3Age1xuICAgIG1hcmdpbi10b3A6IDEuOHJlbSAhaW1wb3J0YW50O1xuICB9XG59XG4qIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLmZhLXNlYXJjaCB7XG4gIGNvbnRlbnQ6IFwi74CCXCI7XG4gIGNvbG9yOiBncmV5O1xuICBmb250LXNpemU6IDEzcHg7XG59XG5cbi8qIFN0eWxlIHRoZSBzZWFyY2ggZmllbGQgKi9cbmZvcm0uZXhhbXBsZSBpbnB1dFt0eXBlPXRleHRdIHtcbiAgcGFkZGluZzogMTBweDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDgwJTtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwcmVtO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwcmVtO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMC4yNXJlbTtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDAuMjVyZW07XG59XG5cbi8qIFN0eWxlIHRoZSBzdWJtaXQgYnV0dG9uICovXG5mb3JtLmV4YW1wbGUgYnV0dG9uIHtcbiAgaGVpZ2h0OiAyLjE4NzVyZW07XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogMTAlO1xuICBwYWRkaW5nOiAxMHB4O1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgY29sb3I6IGJsYWNrO1xuICBmb250LXNpemU6IDZweDtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAvKiBQcmV2ZW50IGRvdWJsZSBib3JkZXJzICovXG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2RkZTZlOTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkZGU2ZTk7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRlNmU5O1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwLjI1cmVtO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwLjI1cmVtO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMHJlbTtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDByZW07XG59XG5cbi50ZXh0LXNtIHtcbiAgZm9udC1zaXplOiAxNXB4O1xufVxuXG4vKiBDbGVhciBmbG9hdHMgKi9cbmZvcm0uZXhhbXBsZTo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBjbGVhcjogYm90aDtcbiAgZGlzcGxheTogdGFibGU7XG59XG5cbi8qIFRoZSBzd2l0Y2ggLSB0aGUgYm94IGFyb3VuZCB0aGUgc2xpZGVyICovXG4uc3dpdGNoIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiA2MHB4O1xuICBoZWlnaHQ6IDM0cHg7XG59XG5cbi8qIEhpZGUgZGVmYXVsdCBIVE1MIGNoZWNrYm94ICovXG4uc3dpdGNoIGlucHV0IHtcbiAgb3BhY2l0eTogMDtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbn1cblxuLyogVGhlIHNsaWRlciAqL1xuLnNsaWRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogMC40cztcbiAgdHJhbnNpdGlvbjogMC40cztcbn1cblxuaW5wdXQ6Y2hlY2tlZCArIC5zbGlkZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3dncmVlbjtcbiAgYm9yZGVyOiBub25lO1xufVxuXG5pbnB1dDpmb2N1cyArIC5zbGlkZXIge1xuICBib3gtc2hhZG93OiAwIDAgMXB4IHllbGxvd2dyZWVuO1xufVxuXG5pbnB1dDpjaGVja2VkICsgLnNsaWRlcjpiZWZvcmUge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgyNnB4KTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgyNnB4KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDI2cHgpO1xufVxuXG4vKiBSb3VuZGVkIHNsaWRlcnMgKi9cbi5zbGlkZXIucm91bmQge1xuICBib3JkZXItcmFkaXVzOiAzNHB4O1xufVxuXG4uc2xpZGVyLnJvdW5kOmJlZm9yZSB7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cblxuLmNhcmQtaGVhZGVyOmZpcnN0LWNoaWxkLCAucGFuZWwtaGVhZGluZzpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IGNhbGMoMC4yNXJlbSAtIDFweCkgY2FsYygwLjI1cmVtIC0gMXB4KSAwIDA7XG4gIHBhZGRpbmc6IDE4cHg7XG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xufVxuXG4uYWRqdXN0d2lkdGgge1xuICBwYWRkaW5nLXJpZ2h0OiA3MXB4O1xuICB3aWR0aDogLXdlYmtpdC1maWxsLWF2YWlsYWJsZTtcbn1cblxuLkJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICBjb2xvcjogd2hpdGU7XG59IiwiLmZvcm0tY29udHJvbCB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAyLjE4NzVyZW07XHJcbiAgcGFkZGluZzogMC4zNzVyZW0gMXJlbTtcclxuICBmb250LXNpemU6IDE0cHg7XHJcbiAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICBsaW5lLWhlaWdodDogMS41Mjg1NzE0Mjk7XHJcbiAgY29sb3I6YmxhY2s7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIGdyZXk7XHJcbiAgYm9yZGVyLXJhZGl1czogMC4yNXJlbTtcclxuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xNXMgZWFzZS1pbi1vdXQsIGJveC1zaGFkb3cgMC4xNXMgZWFzZS1pbi1vdXQ7XHJcbn1cclxuXHJcbi5ibHVlYnRue1xyXG4gIHdpZHRoOiAzMCUgIWltcG9ydGFudDtcclxufVxyXG5cclxuLm1hcmdpbntcclxuICAgIG1hcmdpbi1yaWdodDogMzIlICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5tYXJnaW50b3B7XHJcbm1hcmdpbi10b3A6IDE3JSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjQyNXB4KXtcclxuICAubWFyZ2ludG9we1xyXG4gICAgbWFyZ2luLXRvcDogMS44cmVtICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcblxyXG59XHJcblxyXG4qIHtcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgfVxyXG4gIC5mYS1zZWFyY2gge1xyXG4gICAgY29udGVudDogXCJcXGYwMDJcIjtcclxuICAgIGNvbG9yOiBncmV5O1xyXG4gICAgZm9udC1zaXplOiAxM3B4O1xyXG59XHJcblxyXG5cclxuICAvKiBTdHlsZSB0aGUgc2VhcmNoIGZpZWxkICovXHJcbiAgZm9ybS5leGFtcGxlIGlucHV0W3R5cGU9dGV4dF0ge1xyXG4gICAgcGFkZGluZzogMTBweDtcclxuICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgd2lkdGg6IDgwJTtcclxuICAgIGJhY2tncm91bmQ6d2hpdGU7XHJcbiAgICBib3JkZXItbGVmdDogbm9uZTtcclxuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDByZW07XHJcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwcmVtO1xyXG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDAuMjVyZW07XHJcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMC4yNXJlbTtcclxuXHJcbiAgfVxyXG4gIFxyXG4gIC8qIFN0eWxlIHRoZSBzdWJtaXQgYnV0dG9uICovXHJcbiAgZm9ybS5leGFtcGxlIGJ1dHRvbiB7XHJcbiAgICBoZWlnaHQ6IDIuMTg3NXJlbTtcclxuICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgd2lkdGg6IDEwJTtcclxuICAgIHBhZGRpbmc6IDEwcHg7XHJcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcclxuICAgIGNvbG9yOmJsYWNrO1xyXG4gICAgZm9udC1zaXplOiA2cHg7XHJcbiAgICBib3JkZXItcmlnaHQ6IG5vbmU7IC8qIFByZXZlbnQgZG91YmxlIGJvcmRlcnMgKi9cclxuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2RkZTZlOTtcclxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGRlNmU5O1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGU2ZTk7XHJcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjAuMjVyZW0gO1xyXG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czowLjI1cmVtIDtcclxuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwcmVtO1xyXG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDByZW07XHJcbiAgfVxyXG4gIFxyXG4gIC50ZXh0LXNtIHtcclxuICAgIGZvbnQtc2l6ZTogMTVweDtcclxufVxyXG5cclxuLyogQ2xlYXIgZmxvYXRzICovXHJcbmZvcm0uZXhhbXBsZTo6YWZ0ZXIge1xyXG4gIGNvbnRlbnQ6IFwiXCI7XHJcbiAgY2xlYXI6IGJvdGg7XHJcbiAgZGlzcGxheTogdGFibGU7XHJcbn1cclxuXHJcbi8qIFRoZSBzd2l0Y2ggLSB0aGUgYm94IGFyb3VuZCB0aGUgc2xpZGVyICovXHJcbi5zd2l0Y2gge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgd2lkdGg6IDYwcHg7XHJcbiAgaGVpZ2h0OiAzNHB4O1xyXG59XHJcbi8qIEhpZGUgZGVmYXVsdCBIVE1MIGNoZWNrYm94ICovXHJcbi5zd2l0Y2ggaW5wdXQge1xyXG4gIG9wYWNpdHk6IDA7XHJcbiAgd2lkdGg6IDA7XHJcbiAgaGVpZ2h0OiAwO1xyXG59XHJcblxyXG4vKiBUaGUgc2xpZGVyICovXHJcbi5zbGlkZXIge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgdG9wOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgYm90dG9tOiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XHJcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAuNHM7XHJcbiAgdHJhbnNpdGlvbjogLjRzO1xyXG59XHJcblxyXG5cclxuXHJcbmlucHV0OmNoZWNrZWQgKyAuc2xpZGVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOnllbGxvd2dyZWVuO1xyXG4gIGJvcmRlcjogbm9uZTtcclxufVxyXG5cclxuaW5wdXQ6Zm9jdXMgKyAuc2xpZGVyIHtcclxuICBib3gtc2hhZG93OiAwIDAgMXB4IHllbGxvd2dyZWVuO1xyXG59XHJcblxyXG5pbnB1dDpjaGVja2VkICsgLnNsaWRlcjpiZWZvcmUge1xyXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDI2cHgpO1xyXG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjZweCk7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDI2cHgpO1xyXG59XHJcbi8qIFJvdW5kZWQgc2xpZGVycyAqL1xyXG4uc2xpZGVyLnJvdW5kIHtcclxuICBib3JkZXItcmFkaXVzOiAzNHB4O1xyXG59XHJcblxyXG4uc2xpZGVyLnJvdW5kOmJlZm9yZSB7XHJcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG59XHJcblxyXG5cclxuLmNhcmQtaGVhZGVyOmZpcnN0LWNoaWxkLCAucGFuZWwtaGVhZGluZzpmaXJzdC1jaGlsZCB7XHJcbiAgICBib3JkZXItcmFkaXVzOiBjYWxjKDAuMjVyZW0gLSAxcHgpIGNhbGMoMC4yNXJlbSAtIDFweCkgMCAwO1xyXG4gICAgcGFkZGluZzogMThweDtcclxuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xyXG59XHJcblxyXG4uYWRqdXN0d2lkdGh7XHJcbiAgcGFkZGluZy1yaWdodDogNzFweDtcclxuICB3aWR0aDogLXdlYmtpdC1maWxsLWF2YWlsYWJsZTtcclxufVxyXG5cclxuLkJ1dHRvbntcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjazsgXHJcbiAgY29sb3I6d2hpdGU7XHJcbiAgXHJcbn0iXX0= */\";","import { Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { CustomValidators } from 'ng2-validation';\r\nimport { HttpCancelService } from 'src/app/core/services/http-cancel.service';\r\nimport { UserManagementService } from '../../services/user-management.service';\r\nimport { ValidationMessage, Pattern } from 'src/app/shared/constants/validations.constants';\r\nimport { Designations } from '../../../../shared/constants/globle.constants';\r\nimport { API } from '../../../../shared/constants/api.constants';\r\nimport { DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport { DynamicDialogConfig } from 'primeng/dynamicdialog';\r\nimport { HttpGenericService } from '../../../../core/services/http-genric.service';\r\nimport { CredentialsService } from '../../../../core/services/credentials.service';\r\nimport { CommonserviceService } from 'src/app/shared/commonservices/commonservice.service';\r\nconst swal = require('sweetalert');\r\n\r\n@Component({\r\n\tselector: 'app-add-user',\r\n\ttemplateUrl: './add-user.component.html',\r\n\tstyleUrls: ['./add-user.component.scss']\r\n})\r\n\r\nexport class AddUserComponent implements OnInit {\r\n\tvalForm = new FormGroup({\r\n\t\temail: new FormControl(),\r\n\t\tname: new FormControl(),\r\n\t\tdesignation: new FormControl(),\r\n\t\trole: new FormControl(),\r\n\t\tisAdmin: new FormControl(),\r\n\t});\r\n\tdesginationlist: any[] = [];\r\n\troleList: any[] = [{ label: 'Select Role', value: '' }];\r\n\tRole: [];\r\n\tactive = false;\r\n\trequired = ValidationMessage.required;\r\n\tvalidemail = ValidationMessage.valid_email;\r\n\tnoWhiteSpace = ValidationMessage.noWhiteSpace;\r\n\tdesignations = Designations;\r\n\tapi = API;\r\n\tuserData: any;\r\n\tisEdit: boolean = false;\r\n\tpattern = Pattern;\r\n\tvalidationMessage = ValidationMessage;\r\n\treadOnly: boolean = false;\r\n\r\n\r\n\tconstructor(\r\n\t\tfb: FormBuilder,\r\n\t\tpublic userManagementService: UserManagementService,\r\n\t\tprivate httpCancelService: HttpCancelService,\r\n\t\tprivate httpGenericService: HttpGenericService,\r\n\t\tpublic ref: DynamicDialogRef,\r\n\t\tpublic config: DynamicDialogConfig,\r\n\t\tprivate credentialsService: CredentialsService,\r\n\t\tprivate commonserviceService: CommonserviceService\r\n\t) {\r\n\t\tthis.valForm = fb.group({\r\n\t\t\temail: new FormControl('', Validators.compose([Validators.required, CustomValidators.email, this.commonserviceService.noWhitespaceValidator])),\r\n\t\t\tname: new FormControl('', Validators.compose([Validators.required, Validators.pattern(this.pattern.name), this.commonserviceService.noWhitespaceValidator])),\r\n\t\t\tdesignation: new FormControl('', Validators.required),\r\n\t\t\trole: new FormControl('', Validators.required),\r\n\t\t\tisAdmin: new FormControl(false, Validators.required),\r\n\t\t});\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tthis.userData = this.credentialsService.credentials;\r\n\t\tthis.roleList = this.userManagementService.getRoleList();\r\n\t\tthis.desginationlist = this.userManagementService.getDesignationList();\r\n\t\tif (this.config.data.user != null) {\r\n\t\t\tthis.valForm.controls.email.setValue(this.config.data.user.userName);\r\n\t\t\tthis.valForm.controls.name.setValue(this.config.data.user.fullName);\r\n\t\t\tthis.valForm.controls.isAdmin.setValue(this.config.data.user.isAdmin);\r\n\t\t\tthis.active = this.config.data.user.isAdmin;\r\n\t\t\tlet designation: any = this.desginationlist.filter(x => x.value == this.config.data.user.designationId);\r\n\t\t\tlet role: any = this.roleList.filter(x => x.value === this.config.data.user.roleId);\r\n\t\t\tthis.valForm.controls.designation.setValue(designation[0]);\r\n\t\t\tthis.valForm.controls.role.setValue(role[0]);\r\n\t\t\tif (this.config.data.readonly == true) {\r\n\t\t\t\tthis.readOnly = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.isEdit = true;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tngOnDestroy = () => {\r\n\t\tthis.httpCancelService.cancelPendingRequests();\r\n\t}\r\n\r\n\ttoggleSlider() {\r\n\t\tthis.active = !this.active;\r\n\t\tif (this.active) {\r\n\t\t\tthis.valForm.controls.isAdmin.setValue(true);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.valForm.controls.isAdmin.setValue(false);\r\n\r\n\t}\r\n\r\n\tsubmitForm($ev: Event, value: any) {\r\n\t\t$ev.preventDefault();\r\n\t\tfor (const c in this.valForm.controls) {\r\n\t\t\tthis.valForm.controls[c].markAsTouched();\r\n\t\t}\r\n\t\tif (this.valForm.valid) {\r\n\t\t\tif (this.isEdit) {\r\n\t\t\t\tthis.onEdit(value);\r\n\t\t\t} else {\r\n\t\t\t\tthis.addUserAPICall(value);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\taddUserAPICall = (user) => {\r\n\t\tlet userData = {\r\n\t\t\t\"fullName\": user.name.toString().trim(),\r\n\t\t\t\"email\": user.email.toString().trim(),\r\n\t\t\t\"userName\": user.email.trim(),\r\n\t\t\t\"isAdmin\": user.isAdmin,\r\n\t\t\t\"isActive\": true,\r\n\t\t\t\"createdBy\": this.userData.userId,\r\n\t\t\t\"designationId\": user.designation.value,\r\n\t\t\t\"roleId\": user.role.value,\r\n\t\t};\r\n\t\tthis.httpGenericService.postData(this.api.userManagement.addUser, userData).subscribe(res => {\r\n\t\t\tlet response: any = res;\r\n\t\t\tif (response.StatusCode === 200 && response.Result === 'SUCCESS') {\r\n\t\t\t\tswal(\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ticon: 'success',\r\n\t\t\t\t\t\ttext: response.Message\r\n\t\t\t\t\t});\r\n\t\t\t\tthis.ref.close(response.Result);\r\n\t\t\t}\r\n\t\t\telse if (response.StatusCode === 500 && response.Result === 'DUPLICATE') {\r\n\t\t\t\tswal(\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ticon: 'warning',\r\n\t\t\t\t\t\ttext: response.Message\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tswal(\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ticon: 'error',\r\n\t\t\t\t\t\ttext: response.Message\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\r\n\tonEdit(user) {\r\n\t\tlet editUserDetails = {\r\n\t\t\t\"userId\": this.config.data.user.userId,\r\n\t\t\t\"fullName\": user.name.toString().trim(),\r\n\t\t\t\"email\": user.email.toString().trim(),\r\n\t\t\t\"userName\": user.email.toString().trim(),\r\n\t\t\t\"isAdmin\": user.isAdmin,\r\n\t\t\t\"isActive\": this.config.data.user.isActive,\r\n\t\t\t\"modifiedBy\": this.userData.userId,\r\n\t\t\t\"designationId\": user.designation.value,\r\n\t\t\t\"roleId\": user.role.value,\r\n\t\t};\r\n\t\tthis.httpGenericService.postData(this.api.userManagement.editUser, editUserDetails).subscribe(res => {\r\n\t\t\tlet response: any = res;\r\n\t\t\tif (response.StatusCode === 200 && response.Result === 'SUCCESS') {\r\n\t\t\t\tswal(\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ticon: 'success',\r\n\t\t\t\t\t\ttext: response.Message\r\n\t\t\t\t\t});\r\n\t\t\t\tthis.ref.close(response.Result);\r\n\t\t\t}\r\n\t\t\telse if (response.StatusCode === 500 && response.Result === 'DUPLICATE') {\r\n\t\t\t\tswal(\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ticon: 'warning',\r\n\t\t\t\t\t\ttext: response.Message\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tswal(\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ticon: 'error',\r\n\t\t\t\t\t\ttext: response.Message\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t}\r\n\r\n\tprevent(event: Event, type: number) {\r\n\t\tif (type == 1) {\r\n\t\t\tif (this.valForm.value.name == \"\") {\r\n\t\t\t\tthis.commonserviceService.preventSpace(event);\r\n\t\t\t}\r\n\t\t}\r\n\t\telse if (type == 2) {\r\n\t\t\tthis.commonserviceService.preventSpace(event);\r\n\t\t}\r\n\t}\r\n}\r\n","import { MUserListGrid, MUserGrid } from 'src/app/shared/models/MUserGrid';\r\nimport { MUsers, MUser } from '../../../shared/models/MUser';\r\nimport { Injectable, Injector } from '@angular/core';\r\nimport { MAddUser, AddUser, MRole, MDesignation, MRoleList } from 'src/app/shared/models/MAddUser';\r\n\r\nimport * as _ from 'lodash';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UserManagementService {\r\n\r\n\r\n\r\n roleList: any[] = [];\r\n roleIdList: any[] = [];\r\n designationList: any[] = [];\r\n addEntity: any[] = [];\r\n permissionMode: any;\r\n\r\n constructor(private injector: Injector) {\r\n }\r\n\r\n getMappedUserGridModel = (user: MUser[]) => {\r\n return this.mapUserGridViewModel([...user]);\r\n }\r\n\r\n mappedToUserModel = (userGrid: MUserGrid) => {\r\n return this.mapUserGridTOUserModel({ ...userGrid });\r\n }\r\n\r\n isArrayType = (val) => {\r\n return Array.isArray(val) ? true : false;\r\n }\r\n isObjectType = (val) => {\r\n return typeof (val) == 'object' ? true : false;\r\n }\r\n\r\n setRoleList(roleArray: any[]) {\r\n this.roleList = roleArray;\r\n }\r\n getRoleList() {\r\n return this.roleList;\r\n }\r\n setRoleIdList(roleIdArray: any[]) {\r\n this.roleIdList = roleIdArray;\r\n }\r\n getRoleIdList() {\r\n return this.roleIdList;\r\n }\r\n setDesignationList(designationArray: any[]) {\r\n this.designationList = designationArray;\r\n }\r\n getDesignationList() {\r\n return this.designationList;\r\n }\r\n setAddorEditEntity(entityArray: any[]) {\r\n this.addEntity = entityArray;\r\n }\r\n getAddorEditEntity() {\r\n return this.addEntity;\r\n }\r\n mapUserGridViewModel = (user: MUser[]) => {\r\n const userGridModelCollection: MUserGrid[] = [];\r\n user.map((user) => {\r\n let userGridModel: MUserGrid;\r\n userGridModel = { ..._.assignWith({ ...userGridModel }, { ...user }) };\r\n userGridModel.designation = { label: user.designation.designationName, value: user.designation.designationId };\r\n userGridModel.role = { label: user.role.roleName, value: user.role.roleId };\r\n userGridModelCollection.push(userGridModel);\r\n });\r\n return userGridModelCollection;\r\n }\r\n\r\n mapUserGridTOUserModel = (userGrid: MUserGrid) => {\r\n let userModel: MUser;\r\n userModel = { ..._.assignWith({ ...userModel }, { ...userGrid }) };\r\n userModel.designation = { designationName: userGrid.designation.value, designationId: userGrid.designation.value };\r\n userModel.role = { roleName: userGrid.role.label, roleId: userGrid.role.value };\r\n return userModel;\r\n }\r\n\r\n setPermissionMode(mode: any) {\r\n this.permissionMode = mode;\r\n }\r\n\r\n getPermissionMode() {\r\n return this.permissionMode;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { TranslatorService } from './core/translator/translator.service';\r\nimport { MenuService } from './core/services/menu.service';\r\nimport { SharedModule } from './shared/shared.module';\r\n\r\nimport { menu } from './modules/menu';\r\nimport { routes } from './routes';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@NgModule({\r\n imports: [\r\n SharedModule,\r\n CommonModule,\r\n RouterModule.forRoot(routes, { useHash: true })\r\n ],\r\n declarations: [],\r\n exports: [\r\n RouterModule\r\n ]\r\n})\r\n\r\nexport class RoutesModule {\r\n constructor(public menuService: MenuService, tr: TranslatorService) {\r\n menuService.addMenu(menu);\r\n }\r\n}\r\n","import { LayoutComponent } from './layout/layout.component';\r\nimport { PartnerGuard } from '../app/core/gaurds/authentication.guard';\r\n\r\nexport const routes = [\r\n\r\n { path: '', redirectTo: 'login', pathMatch: 'full' },\r\n {\r\n path: 'login',\r\n loadChildren: () => import('./modules/authentication/authentication.module')\r\n .then(m => m.AuthenticationModule)\r\n },\r\n\r\n {\r\n path: '',\r\n canActivate: [PartnerGuard], // uncomment when guard get ready(login and authentication)\r\n component: LayoutComponent,\r\n children: [\r\n {\r\n path: 'users',\r\n loadChildren: () => import('./modules/user-management/user-management.module')\r\n .then(m => m.UserManagementModule)\r\n },\r\n {\r\n path: 'login',\r\n loadChildren: () => import('./modules/authentication/authentication.module')\r\n .then(m => m.AuthenticationModule)\r\n },\r\n {\r\n path: 'RolesPermission',\r\n loadChildren: () => import('./modules/role-permission-management/role-permission-management.module')\r\n .then(m => m.RolePermissionManagementModule)\r\n },\r\n {\r\n path: 'Permission',\r\n loadChildren: () => import('./modules/permission-management/permission-management.module')\r\n .then(m => m.PermissionManagementModule)\r\n },\r\n {\r\n path: 'entity',\r\n loadChildren: () => import('./modules/entity-management/entity-management.module')\r\n .then(m => m.EntityManagementModule)\r\n },\r\n\r\n {\r\n path: 'email',\r\n loadChildren: () => import('./modules/Email-Templates/Email-Templates.module')\r\n .then(m => m.EmailTemplatesModule)\r\n },\r\n\r\n {\r\n path: 'report',\r\n loadChildren: () => import('./modules/Report-Templates/Report-Templates.module')\r\n .then(m => m.ReportTemplatesModule)\r\n },\r\n {\r\n path: 'business',\r\n loadChildren: () => import('./modules/BusinessUnits/BusinessUnits.module')\r\n .then(m => m.BusinessUnitsModule)\r\n },\r\n\r\n {\r\n path: 'audit',\r\n loadChildren: () => import('./modules/audit-report/audit-report.module')\r\n .then(m => m.AuditReportModule)\r\n },\r\n\r\n {\r\n path: 'regulatory-guideline',\r\n loadChildren: () => import('./modules/regulatory-guideline/regulatory-guidelines.module')\r\n .then(m => m.RegulatoryGuidelinesModule)\r\n }\r\n\r\n ]\r\n },\r\n];\r\n\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class ColorsService {\r\n\r\n\tAPP_COLORS = {\r\n\t\t'primary': '#00ABE7',\r\n\t\t'success': '#27c24c',\r\n\t\t'info': '#23b7e5',\r\n\t\t'warning': '#ff902b',\r\n\t\t'danger': '#f05050',\r\n\t\t'inverse': '#131e26',\r\n\t\t'green': '#31B44A',\r\n\t\t'pink': '#f532e5',\r\n\t\t'purple': '#7266ba',\r\n\t\t'dark': '#3a3f51',\r\n\t\t'yellow': '#fad732',\r\n\t\t'gray-darker': '#232735',\r\n\t\t'gray-dark': '#3a3f51',\r\n\t\t'gray': '#dde6e9',\r\n\t\t'gray-light': '#e4eaec',\r\n\t\t'gray-lighter': '#edf1f2'\r\n\t};\r\n\r\n\tconstructor () { }\r\n\r\n\tbyName (name) {\r\n\t\treturn (this.APP_COLORS[name] || '#fff');\r\n\t}\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { FormControl} from \"@angular/forms\";\r\nimport { first } from 'rxjs/operators';\r\nimport { CredentialsService } from 'src/app/core/services/credentials.service';\r\nimport { HttpGenericService } from 'src/app/core/services/http-genric.service';\r\nimport { API } from '../constants/api.constants';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CommonserviceService {\r\n api = API;\r\n permission = [];\r\n public dotCount:number=0;\r\n checkNumberOnly: any;\r\n checkString: any;\r\n\r\n constructor(\r\n private httpGenericService: HttpGenericService,\r\n private credentialsService: CredentialsService)\r\n { }\r\n\r\n preventSpace(event: Event) {\r\n return event.preventDefault();\r\n }\r\n\r\n public noWhitespaceValidator(control: FormControl) {\r\n \r\n if (control.value != null && control.value.toString().indexOf(' ') >= 0) {\r\n const isWhitespace = control.value.toString().trim().length === 0;\r\n const isValid = !isWhitespace;\r\n\r\n return isValid ? null : { 'whitespace': true };\r\n \r\n }\r\n }\r\n\r\n permissioncheck(userData: any, roleEntity: any){\r\n return new Promise((resolve, reject) => {\r\n this.httpGenericService\r\n .postData(\r\n `${this.api.permissions.GetRoleWisePermission}?IsAdmin=${userData.isAdmin}`,\r\n roleEntity\r\n )\r\n .pipe(first())\r\n .subscribe((permission) => {\r\n let list = permission[\"Result\"];\r\n this.permission = list;\r\n this.credentialsService.setPermissionDetails(this.permission);\r\n resolve(true)\r\n });\r\n });\r\n }\r\n\r\n numberOnly(event): boolean { \r\n const charCode = (event.which) ? event.which : event.keyCode; \r\n if (charCode == 46) {\r\n this.dotCount += 1;\r\n this.checkNumberOnly = (event.target.value);\r\n var numericCheck = (event.target.value).toString();\r\n if (numericCheck.includes('.')) {\r\n this.dotCount += 1;\r\n }\r\n if (this.dotCount > 1) { \r\n this.dotCount = 0;\r\n return false;\r\n }\r\n }\r\n if (charCode > 31 && (charCode < 45 || charCode > 57 || charCode==47)) {\r\n return false;\r\n }\r\n this.checkNumberOnly = (event.target.value);\r\n if (this.checkNumberOnly != null) {\r\n var numeric = (event.target.value).toString();\r\n if (numeric.includes('.')) {\r\n var checkNumeric = numeric.split('.');\r\n if (checkNumeric.length > 2) {\r\n return false;\r\n }\r\n this.checkString = checkNumeric[1].split('');\r\n if (this.checkString.length > 1) {\r\n return false;\r\n }\r\n }\r\n\r\n }\r\n this.dotCount = 0;\r\n return true;\r\n}\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL3NoYXJlZC9jb21wb25lbnRzL2xvYWRpbmctc2NyZWVuL2xvYWRpbmctc2NyZWVuLmNvbXBvbmVudC5zY3NzIn0= */\";","import { LoadingScreenService } from './../../../core/services/loading-screen.service';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { debounceTime } from 'rxjs/operators';\r\nimport { BlockUI, NgBlockUI } from 'ng-block-ui';\r\n@Component({\r\n selector: 'app-loading-screen',\r\n templateUrl: './loading-screen.component.html',\r\n styleUrls: ['./loading-screen.component.scss']\r\n})\r\nexport class LoadingScreenComponent implements OnInit {\r\n\r\n loading: boolean = false;\r\n loadingSubscription: Subscription;\r\n @BlockUI() blockUI: NgBlockUI;\r\n constructor(private loadingScreenService: LoadingScreenService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.loadingSubscription = this.loadingScreenService.loadingStatus.pipe(\r\n debounceTime(200)\r\n ).subscribe((value) => {\r\n this.loading = value;\r\n if(this.loading){\r\n this.blockUI.start('Loading...');\r\n }else{\r\n this.blockUI.stop();\r\n this.blockUI.reset();\r\n }\r\n\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.loadingSubscription.unsubscribe();\r\n }\r\n}\r\n","export const API = {\r\n\tauthentication: {\r\n\t\tcreateToken: 'JwtTokenAuthentication/CreateToken',\r\n validateUser: 'Authentication/UserLoginAuthentication',\r\n logoutUser: 'Authentication/UserLogOut',\r\n },\r\n dashboard: {\r\n IRBarChartDetails: 'Dashboard/GetDashboardIRBarChartDetails',\r\n CEBarChartDetails: 'Dashboard/GetDashboardCEBarChartDetails',\r\n ResidualRiskScoreDetails: 'Dashboard/GetDashboardResidualRiskScoreCardMatrixDetails',\r\n DashboardIRRiskMeterDetails: 'Dashboard/GetDashboardIRRiskMeterDetails',\r\n DashboardCERiskMeterDetails: 'Dashboard/GetDashboardCERiskMeterDetails',\r\n DashboardDetialedReport: 'Dashboard/GetDashboardDetialedReport',\r\n DashboardCompositionReportMainTable: 'Dashboard/GetDashboardCompositionReportMainTable',\r\n DashboardCompositionReport: 'Dashboard/GetDashboardCompositionReport',\r\n SaveSVG: 'Dashboard/SaveSVG',\r\n GetDashboardTrendAnalysis:'Dashboard/GetDashboardTrendAnalysis',\r\n \r\n \r\n },\r\n\tuserManagement: {\r\n\t\taddUser: 'UserManagement/AddUser',\r\n\t\teditUser: 'UserManagement/EditUser',\r\n\t\tactivateDeactivateUser: 'UserManagement/ActiveDeactiveUser',\r\n\t\tgetAllUser: 'UserManagement/GetAllUsers',\r\n getUserByEmail: 'UserManagement/GetUserbyEmail'\r\n\t},\r\n\trole: {\r\n\t\tgetRoles: 'Role/GetRoles',\r\n\t\tgetRoleList: 'Role/GetRoleList',\r\n\t\tinsertRole: 'Role/InsertRole',\r\n\t\tupdateRole: 'Role/UpdateRole',\r\n\t\tdeleteRole: 'Role/ActiveDeactiveRole',\r\n\t\tGetRegulatoryGuidelines:'Role/GetRegulatoryGuidelines',\r\n\t\tInsertRegulatoryGuidelines:'Role/InsertRegulatoryGuidelines'\r\n\t},\r\n\tpermissions: {\r\n\t\tgetroles: 'Role/GetRolesForPermissions',\r\n\t\tGetRoleWisePermission: 'Permission/GetRoleWisePermission',\r\n\t\tUpdateRoleWisePermission: 'Permission/UpdateRoleWisePermission',\r\n\t},\r\n\tentityDetails: {\r\n\t\tgetEntityDetailsById: 'EntityDetails/GetEntityDetailsById',\r\n\t\tgetEntityDetailsByuserId: 'EntityDetails/GetEntityDetailsByuserId',\r\n\t\tgetAllEntityDetails: 'EntityDetails/GetAllEntityDetails',\r\n\t\tcreateEntityDetails: 'EntityDetails/CreateEntityDetails',\r\n\t\tupdateEntityDetails: 'EntityDetails/UpdateEntityDetails',\r\n\t\tdeleteEntityDetails: 'EntityDetails/DeleteEntityDetails',\r\n\t\tgetStaticValuesByCategoryName: 'StaticValue/GetStaticValuesByCategoryName',\r\n\t\tgetAllEntitiesList: 'EntityDetails/GetAllEntitiesList',\r\n\t\tGetRegulatoryGuidelinesByEntityId:'EntityDetails/GetRegulatoryGuidelinesByEntityId'\r\n\t},\r\n\tentityBusinessUnits: {\r\n\t\tgetEntityBusinessUnitsById: 'EntityBusinessUnits/GetEntityBusinessUnitsById',\r\n\t\tgetAllEntityBusinessUnits: 'EntityBusinessUnits/GetAllEntityBusinessUnits',\r\n\t\tcreateEntityBusinessUnits: 'EntityBusinessUnits/CreateEntityBusinessUnits',\r\n\t\tupdateEntityBusinessUnits: 'EntityBusinessUnits/UpdateEntityBusinessUnits',\r\n\t\tdeleteEntityBusinessUnits: 'EntityBusinessUnits/DeleteEntityBusinessUnits',\r\n\t},\r\n\tentityContactPersons: {\r\n\t\tgetAllEntityContactPersons: 'EntityContactPersons/GetAllEntityContactPersons',\r\n\t\tcreateEntityContactPersons: 'EntityContactPersons/CreateEntityContactPersons',\r\n\t\tupdateEntityDetails: 'EntityContactPersons/UpdateEntityDetails',\r\n\t\tdeleteEntityDetails: 'EntityContactPersons/DeleteEntityDetails',\r\n\t},\r\n\tweightages: {\r\n\t\tgetAllEntityBusinessUnitsWeightage: 'Weightages/GetAllEntityBusinessUnitsWeightage',\r\n\t\tgetAllRiskCategoryandSubCategoryWeighatages: 'Weightages/GetAllRiskCategoryandSubCategoryWeighatages',\r\n\t\tupdateEntityBusinessUnits: 'Weightages/UpdateEntityBusinessUnits',\r\n\t\t//SaveAllRiskCategoryandSubCategoryWeighatages: 'Weightages/SaveAllRiskCategoryandSubCategoryWeighatages',\r\n\t\tupdateEntityRiskSubCategoryWeightage: 'Weightages/UpdateEntityRiskSubCategoryWeightage',\r\n\t\tupdateEntityRiskSubCategoryDetailsWeightage: 'Weightages/UpdateEntityRiskSubCategoryDetailsWeightage',\r\n\t\tsaveAllRiskCategoryandSubCategoryWeighatages : 'Weightages/SaveAllRiskCategoryandSubCategoryWeighatages',\r\n\t\tgetAllEntityRiskSubCategoryDetailsWeightage: 'Weightages/GetAllEntityRiskSubCategoryDetailsWeightage'\r\n\t},\r\n\tquestionsTemplates: {\r\n\t\tgetQuestionsTemplateById: 'QuestionsTemplate/GetQuestionsTemplateById',\r\n\t\tgetAllQuestionsTemplate: 'QuestionsTemplate/GetAllQuestionsTemplate',\r\n\t\tcreateQuestionsTemplate: 'QuestionsTemplate/CreateQuestionsTemplate', \r\n\t\tUploadUpdatedEntityReport:'QuestionsTemplate/UploadUpdatedEntityReport',\r\n\t\tupdateQuestionsTemplate: 'QuestionsTemplate/UpdateQuestionsTemplate',\r\n\t\tmapQuestionsTemplateToEntity: 'QuestionsTemplate/MapQuestionsTemplateToEntity',\r\n\t\tdeleteQuestionsTemplate: 'QuestionsTemplate/DeleteQuestionsTemplate',\r\n \tdownloadFile: 'QuestionsTemplate/DownloadFile',\r\n \tDownloadReport: 'QuestionsTemplate/DownloadReport',\r\n\t\tDownloadQuestionTemplate:'QuestionsTemplate/DownloadQuestionTemplate'\r\n },\r\n\tquestionBank: {\r\n getQuestionBankById: 'QuestionBank/GetQuestionBankById',\r\n getAllQuestionBank: 'QuestionBank/GetAllQuestionBank',\r\n createQuestionBank: 'QuestionBank/CreateQuestionBank',\r\n updateQuestionBank: 'QuestionBank/UpdateQuestionBank',\r\n mapQuestionBankToEntity: 'QuestionBank/MapQuestionBankToEntity',\r\n deleteQuestionBank: 'QuestionBank/DeleteQuestionBank',\r\n\t},\r\n\tentityAssessmentReview: {\r\n\t\tgetEntityAssessmentReview: 'EntityAssessmentReview/GetEntityAssessmentReview',\r\n\t\tgetAllRiskSubCategories: 'EntityAssessmentReview/GetAllRiskSubCategories',\r\n\t\tgetAllRiskSubCategoryDetailsBySubCatergory: 'EntityAssessmentReview/GetAllRiskSubCategoryDetailsBySubCatergory',\r\n \tgetAllRiskTypeBySubCatergoryDetails: 'EntityAssessmentReview/GetAllRiskTypeBySubCatergoryDetails',\r\n \tsaveEntityAssesmentReview: 'EntityAssessmentReview/SaveEntityAssesmentReview',\r\n\t\tgetRiskClassifications: 'EntityAssessmentReview/GetRiskClassifications',\r\n\t\tsubmitAssessment: 'EntityAssessmentReview/SubmitAssessment',\r\n validateAssessment: 'EntityAssessmentReview/ValidateAssessment',\r\n getEntityAssessmentStatus: 'EntityAssessmentReview/GetEntityAssessmentStatus',\r\n\r\n\t},\r\n\r\n\treportTemplates: {\r\n generateReport: 'ReportTemplate/GenerateReport',\r\n IsDashboardGenerated: 'ReportTemplate/IsDashboardGenerated'\r\n\t},\r\n\r\n\tstaticCategory: {\r\n\t\tgetStaticCategories: 'StaticCategory/GetStaticCategories',\r\n\t},\r\n\tstaticValue: {\r\n\t\tgetAllDesignations: 'StaticValue/GetStaticValuesByCategoryName',\r\n\t\tgetAssismentYear: 'StaticValue/GetStaticValuesByCategoryName',\r\n\t\tgetMasterData: 'StaticValue/GetStaticValues',\r\n\t\taddMasterData: 'StaticValue/CreateStaticValue',\r\n\t\tgetMasterById: 'StaticValue/GetStaticValueById',\r\n\t\tdeleteMasterData: 'StaticValue/DeleteStaticValue',\r\n\t\teditMasterData: 'StaticValue/UpdateStaticValue'\r\n\t},\r\n\tclientManagement: {\r\n\t\tGetClientEngementTeams: 'ClientManagement/GetClientEngementTeams',\r\n\t\tGetClientList: 'ClientManagement/GetClientList',\r\n\t\tAcitveDeactiveClient: 'ClientManagement/AcitveDeactiveClient',\r\n\t\tgetClientEngementTeamsByClientId: 'ClientManagement/GetClientEngementTeamsByClientId',\r\n\t\tgetIndustryTaxonomy: 'ClientManagement/GetIndustryTaxonomy',\r\n\t\tgetIndustryTaxonomyDetails: 'ClientManagement/GetIndustryTaxonomyDetails',\r\n\t\tmanageClientEngagementTeam: 'ClientManagement/ManageClientEngagementTeam',\r\n\t\tgetClientOnboardingDetails: 'ClientManagement/GetClientOnboardingDetails',\r\n\t\tgetSubSectorsBySectorId: 'ClientManagement/GetSubSectorsBySectorId',\r\n\t\taddClientGroup: 'ClientManagement/AddClientGroup',\r\n\t\tgetClientGroups: 'ClientManagement/GetClientGroups',\r\n\t\tgetSectors: 'ClientManagement/GetSectors',\r\n\t\tgetStaticValuesByCategoryName: 'StaticValue/GetStaticValuesByCategoryName',\r\n\t\tonBoardClient: 'ClientManagement/OnBoardClient',\r\n\t\tgetSectorCodeBySubSectorId: 'ClientManagement/GetSectorCodeBySubSectorId',\r\n\t\tsaveXMLTemplate: 'ClientManagement/SaveXMLTemplate',\r\n\t},\r\n\tupload: {\r\n\t\tuploadXML: 'api/Upload/UploadFile',\r\n\t\tupload: 'api/Upload/S3BucketUploadFile',\r\n\t\taddEngagementTeam: 'ClientManagement/ManageClientEngagementTeam',\r\n\t\tAcitveDeactiveClient: 'ClientManagement/AcitveDeactiveClient',\r\n\t\tdownload: \"Upload/S3BucketDownloadFile\",\r\n\t\tupload1: 'api/Upload/S3BucketUploadFile1',\r\n\t},\r\n\ttemplates: {\r\n\t\tgetAllTemplateStatus: 'StaticValue/GetStaticValuesByCategoryName',\r\n\t\tgetDataTemplateDetails: 'Template/GetDataTemplate',\r\n\t\tdownloadTemplate: 'Template/GetTaskWiseTemplateExcel',\r\n\t\tuploadTemmplate: 'Template/UploadTaskwiseTemplateExcel',\r\n\t\tshareThroughSyatem: 'Template/SaveDataTemplateRequest',\r\n\t\tgetShareThroughSyatemDetails: 'Template/GetShareThroughSystemDetails'\r\n\t},\r\n workflow: {\r\n\r\n\t\tgetWorkFlowMapping: 'Workflow/GetWorkFlowMappingRolesByRoleId',\r\n\t\tgetToUserListForClient: 'TaskWorkflow/GetToUserListForClient',\r\n\t\tgetTaskWorkflowHistory: 'TaskWorkflow/GetTaskWorkflowHistory',\r\n\t\tgetRolewiseUsers: 'TaskWorkflow/GetRolewiseUsers',\r\n\t\tsaveTaskWorkflow: 'TaskWorkflow/SaveTaskWorkflow',\r\n\t\tshareThroughSyatem: 'Template/SaveDataTemplateRequest',\r\n\r\n\r\n },\r\n\r\n EmailTemplates: {\r\n getAllEmailTemplates: 'EmailTemplates/GetAllEmailTemplates',\r\n UpdateEmailTemplates: 'EmailTemplates/UpdateEmailTemplates',\r\n ActivateOrInactivateEmailTemplates: 'EmailTemplates/ActivateOrDeactiveEmailTemplates'\r\n\r\n },\r\n\r\n ReportTemplates: {\r\n getAllReportTemplates: 'ReportTemplates/GetAllReportTemplates',\r\n UpdateReportTemplate: 'ReportTemplates/UpdateReportTemplate',\r\n ActivateOrInactivateReportTemplates: 'ReportTemplates/ActivateOrDeactiveReportTemplates',\r\n\tmapReportTemplate: 'ReportTemplates/MapReportTemplate',\r\n\tgetReportTemplateById: 'ReportTemplates/GetReportTemplateById'\r\n },\r\n\r\n BusinessUnits: {\r\n getAllBusinessUnits: 'BankManager/GetAllManagerBusinessUnits',\r\n getAssessmentCycles: 'BankManager/GetAssessmentCycles'\r\n },\r\n\r\n AuditReport: {\r\n GenerateAuditReport: 'AssessmentAuditReport/GenerateAuditReport',\r\n GetEntityAssessmentSummary: 'AssessmentAuditReport/GetEntityAssessmentSummary',\r\n ExportExcel: 'AssessmentAuditReport/ExportExcel'\r\n },\r\n\r\n// RegulatoryGuidelines: {\r\n// GenerateAuditReport: 'AssessmentAuditReport/GenerateAuditReport',\r\n// GetEntityAssessmentSummary: 'AssessmentAuditReport/GetEntityAssessmentSummary',\r\n// ExportExcel: 'AssessmentAuditReport/ExportExcel'\r\n// }\r\n\r\n};\r\n\r\n//StaticValue Controller\r\nexport const GetStaticValues = 'StaticValue/GetStaticValues';\r\nexport const GetStaticValueByStCategoryId = 'StaticValue/GetStaticValueByStCategoryId?';\r\nexport const GetCategoriesValueList = 'StaticValue/GetStaticValuesByCategoryName?staticCategoryName=';\r\nexport const GetAplicabilityList = 'Master/GetAplicabilityList';\r\n\r\n//Static Category Controller\r\nexport const GetStaticCategories = 'StaticCategory/GetStaticCategories';\r\nexport const GetStaticCategoriesId = 'StaticCategory/GetStaticCategories?id=';\r\n\r\n//Client\r\nexport const GetClientDetailsById = 'Client/GetClientDetailsById?clientId=';\r\nexport const GetClientList = 'Client/GetAllClients?userId=';\r\n\r\n//Task\r\nexport const GetAllTask = 'TaskManagment/GetAllTask?userId=';\r\nexport const SaveTaskAsync = 'TaskManagment/SaveTaskAsync';\r\nexport const SaveTaskClientDetails = 'TaskManagment/SaveTaskClientDetails';\r\nexport const GetTaskClientDetails = 'TaskManagment/GetTaskClientDetails?taskId=';\r\nexport const SaveApplicability = 'TaskManagment/SaveApplicability';\r\nexport const GetTaskApplicability = 'TaskManagment/GetTaskApplicability?taskId=';\r\nexport const SaveForm3CEBDetails = 'TaskManagment/SaveForm3CEBDetails';\r\nexport const GetTaskForm3CEBDetails = 'TaskManagment/GetTaskForm3CEBDetails?taskId=';\r\nexport const GetTaskDetailsByTaskId = 'TaskManagment/GetTaskDetailsByTaskId?taskId=';\r\nexport const GetAssessmentYrByTaskId = 'TaskManagment/GetAssessmentYrByTaskId?taskId=';\r\nexport const SaveCustomisedComment = 'TaskManagment/SaveCustomisedComment';\r\n\r\n//Annexure Part B\r\n\r\n//Annexure Part B - Clause 10\r\nexport const GetAnnexurePartBClause10Details = 'AnnexurePartB/GetAnnexurePartBClause10Details?taskId=';\r\nexport const SaveAnnexurePartBClause10Details = 'AnnexurePartB/SaveAnnexurePartBClause10Details';\r\n\r\n//Annexure Part B - Clause 11A\r\nexport const GetPartBClause11ADetails = 'AnnexurePartB/GetPartBClause11ADetails?taskId=';\r\nexport const SavePartBClause11ADetails = 'AnnexurePartB/SavePartBClause11ADetails';\r\n\r\n//Annexure Part B - Clause 11B\r\nexport const GetPartBClause11BDetails = 'AnnexurePartB/GetPartBClause11BDetails?taskId=';\r\nexport const SavePartBClause11BDetails = 'AnnexurePartB/SavePartBClause11BDetails';\r\n\r\n//Annexure Part B - Clause 11C\r\nexport const GetPartBClause11CDetails = 'AnnexurePartB/GetPartBClause11CDetails?taskId=';\r\nexport const SavePartBClause11CDetails = 'AnnexurePartB/SavePartBClause11CDetails';\r\n\r\n//Annexure Part B - Clause12\r\nexport const GetPartBClause12Details = 'AnnexurePartB/GetPartBClause12Details?taskId=';\r\nexport const SavePartBClause12Details = 'AnnexurePartB/SavePartBClause12Details';\r\n\r\n//Annexure Part B - Clause13\r\nexport const GetPartBClause13Details = 'AnnexurePartB/GetPartBClause13Details?taskId=';\r\nexport const SavePartBClause13Details = 'AnnexurePartB/SavePartBClause13Details';\r\n\r\n//Annexure Part B - Clause14\r\nexport const GetPartBClause14Details = 'AnnexurePartB/GetPartBClause14Details?taskId=';\r\nexport const SavePartBClause14Details = 'AnnexurePartB/SavePartBClause14Details';\r\n\r\n//Annexure Part B - Clause 15\r\nexport const GetPartBClause15Details = 'AnnexurePartB/GetPartBClause15Details?taskId=';\r\nexport const SavePartBClause15Details = 'AnnexurePartB/SavePartBClause15Details';\r\n\r\n//Annexure Part B - Clause16\r\nexport const GetPartBClause16Details = 'AnnexurePartB/GetPartBClause16Details?taskId=';\r\nexport const SavePartBClause16Details = 'AnnexurePartB/SavePartBClause16Details';\r\n\r\n//Annexure Part B - Clause17\r\nexport const GetPartBClause17Details = 'AnnexurePartB/GetPartBClause17Details?taskId=';\r\nexport const SavePartBClause17Details = 'AnnexurePartB/SavePartBClause17Details';\r\n\r\n//Annexure Part B - Clause18\r\nexport const GetPartBClause18Details = 'AnnexurePartB/GetPartBClause18Details?taskId=';\r\nexport const SavePartBClause18Details = 'AnnexurePartB/SavePartBClause18Details';\r\n\r\n//Annexure Part B - Clause19\r\nexport const GetPartBClause19Details = 'AnnexurePartB/GetPartBClause19Details?taskId=';\r\nexport const SavePartBClause19Details = 'AnnexurePartB/SavePartBClause19Details';\r\n\r\n//Annexure Part B - Clause20\r\nexport const GetPartBClause20Details = 'AnnexurePartB/GetPartBClause20Details?taskId=';\r\nexport const SavePartBClause20Details = 'AnnexurePartB/SavePartBClause20Details';\r\n\r\n//Annexure Part B\r\n\r\n//Annexture Part C - Clause21\r\nexport const GetAnnexurePartCClause21Details = 'AnnexurePartC/GetPartCClause21Details?taskId=';\r\nexport const SaveAnnexurePartCClause21Details = 'AnnexurePartC/SavePartCClause21Details';\r\n\r\n//Annexture Part C - Clause22\r\nexport const GetAnnexurePartCClause22Details = 'AnnexurePartC/GetPartCClause22Details?taskId=';\r\nexport const SaveAnnexurePartCClause22Details = 'AnnexurePartC/SavePartCClause22Details';\r\n\r\n//Annexture Part C - Clause23A\r\nexport const GetAnnexurePartCClause23ADetails = 'AnnexurePartC/GetPartCClause23ADetails?taskId=';\r\nexport const SaveAnnexurePartCClause23ADetails = 'AnnexurePartC/SavePartCClause23ADetails';\r\n\r\n//Annexture Part C - Clause23B\r\nexport const GetAnnexurePartCClause23BDetails = 'AnnexurePartC/GetPartCClause23BDetails?taskId=';\r\nexport const SaveAnnexurePartCClause23BDetails = 'AnnexurePartC/SavePartCClause23BDetails';\r\n\r\n//Annexture Part C - Clause24\r\nexport const GetAnnexurePartCClause24Details = 'AnnexurePartC/GetPartCClause24Details?taskId=';\r\nexport const SaveAnnexurePartCClause24Details = 'AnnexurePartC/SavePartCClause24Details';\r\n\r\n//Annexture Part C - Clause25\r\nexport const GetAnnexurePartCClause25Details = 'AnnexurePartC/GetPartCClause25Details?taskId=';\r\nexport const SaveAnnexurePartCClause25Details = 'AnnexurePartC/SavePartCClause25Details';\r\n\r\n//Comment\r\nexport const GetForm3CEBCommentClauseDataList = 'TaskManagment/GetForm3CEBCommentClauseDataList?clauseName=';\r\nexport const GetSubmitedCommentsList = 'TaskManagment/GetSubmitedCommentsList?clauseName=';\r\nexport const GetSubmitedCustomisedCommentsList = 'TaskManagment/GetSubmitedCustomisedCommentsList?clauseName=';\r\nexport const GetSubmitedClientCommentsList = 'TaskManagment/GetSubmitedClientCommentsList?clauseName=';\r\nexport const SaveForm3CebtaskClientComments = 'TaskManagment/SaveForm3CebtaskClientComments';\r\n\r\nexport const CreateFlipSideReturn = 'TaskManagment/CreateFlipSideReturn?clientId=';\r\nexport const Export3CEBExcel = 'Export3Ceb/Export3CEBExcel?TaskId=';\r\n\r\n//Template\r\nexport const GetIrcQuestionsInfoData = 'IRCquestionsTemplate/GetIrcQuestionsInfoData';\r\nexport const GetIrcQuestions = 'IRCquestionsTemplate/GetIrcQuestions?questionType=';\r\nexport const SaveIrcQuestionsInfoDataDetails = 'IRCquestionsTemplate/SaveIrcQuestionsInfoDataDetails';\r\nexport const GetIrcTransaction = 'IRCquestionsTemplate/GetIrcTransaction?taskId=';\r\nexport const GetIrcTransactionByTaskId = 'IRCquestionsTemplate/GetIrcTransactionByTaskId?taskId=';\r\nexport const SaveIrcTransaction = 'IRCquestionsTemplate/SaveIrcTransaction';\r\n\r\nexport const GetIRCQuestionsUploadedFileData = 'IRCquestionsTemplate/GetIRCQuestionsUploadedFileData';\r\nexport const Export3CEBPDF = 'Export3Ceb/Export3CEBPDF?TaskId=';\r\n\r\nexport const GenericUploadFiles = 'Upload/GenericUploadFiles?taskId=';\r\nexport const DownloadFileByFileName = 'Upload/DownloadFileByFileName?FileName=';\r\nexport const XMLValidation = 'XMLGeneration/XMLValidation?taskId=';\r\nexport const GenerateXML = 'XMLGeneration/GenerateXML?taskId=';\r\n\r\n","/**\r\n * Set all constants and enums value hear\r\n */\r\n\r\n\r\nexport const EncryptionKey = 'Deloitee_AML';\r\n//require('dotenv').config();\r\n\r\n// Application Controller\r\nexport const GetApplications = 'Application/GetApplications';\r\nexport const GetApplicationSortByList = 'Master/GetApplicationSortByList';\r\n\r\n\r\n\r\n//export const AESEncryptionKey = process.env.AES_ENCRYPTION_KEY;\r\n//export const AESEncryptionIV = process.env.AES_ENCRYPTION_IV;\r\n\r\n\r\nexport enum SortByList {\r\n\tAscending_A_Z = 'Ascending A_Z',\r\n\tDescending_Z_A = 'Descending Z_A',\r\n\tRecentlyAdded = 'Recently Added',\r\n\tModifiedLast = 'Modified Last',\r\n\tDescendingByRating = 'Descending By Rating',\r\n\tAscendingByRating = 'Ascending By Rating'\r\n}\r\n//#endregion\r\n\r\n\r\nexport const Designations = {\r\n\tEXECUTIVE: 'Executive',\r\n\tASSISTANT_MANAGER: 'Assistant Manager',\r\n\tDEPUTY_MANAGER: 'Deputy Manager',\r\n\tMANAGER: 'Manager',\r\n\tSENIOR_MANAGER: 'Senior Manager',\r\n\tDIRECTOT: 'Director',\r\n\tSENIOR_DIRECTOR: 'Senior Director',\r\n\tPARTNER: 'Partner',\r\n\tCLIENT: 'Client',\r\n\tANALYST: 'Analyst',\r\n\tCEC_ANALYST: 'CEC Analyst',\r\n\tREVIEWER: 'Reviewer',\r\n\tSIGNING_PARTNER: 'Signing Partner',\r\n\tREVIEWING_PARTNER: 'Reviewing Partner',\r\n\tADMIN: 'Admin',\r\n\tSTACKHOLDER: 'Stakeholder',\r\n\tSUPERADMIN: 'SUPER ADMIN',\r\n};\r\n\r\n\r\nexport const StaticCategory = {\r\n\tDesignation: 'Designation',\r\n\tRiskGrading: 'RiskGrading',\r\n\tForeignEntityType: 'ForeignEntityType',\r\n\tClientRole: 'ClientRole',\r\n\tPermissionType: 'PermissionType',\r\n\tReturnType: 'ReturnType',\r\n\tAssessMentYear: 'AssessMentYear',\r\n\tTaskStatus: 'TaskStatus',\r\n\tApplicabilty: 'Applicabilty',\r\n\tMethodUsedForDeterminingTheArmsLengthPrice: 'MethodUsedForDeterminingTheArmsLengthPrice',\r\n\tClause10NatureOfTheRelationship: 'Clause10NatureOfTheRelationship',\r\n\tClause11ADescriptionOfTransactionType: 'Clause11ADescriptionOfTransactionType',\r\n\tClause11BDescriptionOfTransactionType: 'Clause11BDescriptionOfTransactionType',\r\n\tClause15CompensationTransactionType: 'Clause15CompensationTransactionType',\r\n\tClause16ConsiderationTransactionType: 'Clause16ConsiderationTransactionType',\r\n\tClause11CAmountPaidType: 'Clause11CAmountPaidType',\r\n\tClause12AmountPaidType: 'Clause12AmountPaidType',\r\n\tClause13AmountPaidType: 'Clause13AmountPaidType',\r\n\tClause14AmountPaidType: 'Clause14AmountPaidType',\r\n\tClause14LendingOrBorrowing: 'Clause14LendingOrBorrowing',\r\n\tClause17TransactionType: 'Clause17TransactionType',\r\n\tClause17AmountPaidType: 'Clause17AmountPaidType',\r\n\tClause19AmountPaidType: 'Clause19AmountPaidType',\r\n\tClause20AmountPaidType: 'Clause20AmountPaidType',\r\n\tClause24AmountPaidType: 'Clause24AmountPaidType',\r\n\tClause25AmountPaidType: 'Clause25AmountPaidType',\r\n\tForm3CEBStatus: 'Form3CEBStatus',\r\n\tForm3CEBDeclarationPoint1: 'Form3CEBDeclarationPoint1',\r\n\tForm3CEBDeclarationPoint2: 'Form3CEBDeclarationPoint2',\r\n\tIRCQuestionStatus: 'IRCQuestionStatus',\r\n\tIRCUploadedFile: 'IRCUploadedFile',\r\n\tIRCQuestionType: 'IRCQuestionType',\r\n\tDataTemplateStatus: 'DataTemplateStatus'\r\n};\r\n\r\nexport const StaticValue = {\r\n\tBasic: 'Basic',\r\n\tGeneral: 'General',\r\n\tClauseSpecific: 'ClauseSpecific',\r\n\tOtherComment: 'Others (Add Comment)',\r\n};\r\n\r\nexport enum Permission {\r\n\tPermission = 'PermissionType'\r\n}\r\n\r\nexport enum PermissionTypeEnum {\r\n\tNoAccess = 'NoAccess',\r\n\tEdit = 'Edit',\r\n\tView = 'View',\r\n\tDelete = 'Delete'\r\n\t//Comment = 'Comment'\r\n}\r\n\r\nexport enum PermissionsEnum {\r\n\tClientListing = 'Client Listing',\r\n\tClientManualOnboarding = 'Client Manual Onboarding',\r\n\tClientXMLOnboarding = 'Client XML Onboarding',\r\n\tTaskManagement = 'Task Management',\r\n\tFormAML = 'Form AML',\r\n\tDataTemplateDownload = 'Data Template - Download',\r\n\tDataTemplateUpload = 'Data Template - Upload',\r\n\tInformationRequestChecklistDownload = \"Information Request Checklist - Download\",\r\n\tInformationRequestChecklistUpload = \"Information Request Checklist - Upload\",\r\n\tInformationTracking = 'Information Tracking',\r\n\tSubmitAnalyst = 'Submit to Analyst',\r\n\tSubmitReviewer = 'Submit to Reviewer',\r\n\tSubmitReviewingPartner = 'Submit to Reviewing Partner',\r\n\tSubmitSigningPartner = 'Submit to Signing Partner',\r\n\tSubmitClient = 'Submit to Client',\r\n\tFlipSide = 'Flipside',\r\n\tGenerateXML = 'Generate XML',\r\n\tExportAML = \"Export AML\",\r\n\tWorkflow = 'Workflow',\r\n\tSendEmail = 'Send submission Email to Client',\r\n\t/* Deloiite_AMLTool Implementation */\r\n\tDashboard = 'Dashboard',\r\n\tUserManagement = 'User Management',\r\n\tRoleManagement = 'Role Management',\r\n\tPermissionManagement = 'Access Permission',\r\n\tEmailTemplates = 'Email Templates',\r\n\tEntityManagement = 'Entity Management',\r\n\tBusinessUnits = 'Assessment Status',\r\n\tWeightages = 'Weightages',\r\n\tAssessment = 'Assessment',\r\n\tReportTemplates = 'Report Templates',\r\n\tAuditReport = 'Audit Report',\r\n\tMapQuestionnaire = 'Map Questionnaire',\r\n\tRegulatoryGuidelines = 'Regulatory Guidelines'\r\n} \r\n\r\nexport const CommentClausesEnum = { \r\n\tFormAML: 'FormAML',\r\n\tClause10: 'Clause10',\r\n\tClause11A: 'Clause11A', \r\n\tClause11B: 'Clause11B',\r\n\tClause11C: 'Clause11C',\r\n\tClause12: 'Clause12',\r\n\tClause13: 'Clause13',\r\n\tClause14: 'Clause14',\r\n\tClause15: 'Clause15',\r\n\tClause16: 'Clause16',\r\n\tClause17: 'Clause17',\r\n\tClause18: 'Clause18',\r\n\tClause19: 'Clause19',\r\n\tClause20: 'Clause20',\r\n\tClause21: 'Clause21',\r\n\tClause22: 'Clause22',\r\n\tClause23A: 'Clause23A',\r\n\tClause23B: 'Clause23B',\r\n\tClause24: 'Clause24',\r\n\tClause25: 'Clause25',\r\n};\r\n\r\n\r\nexport const CommentTypeEnum ={\r\n\tFormAML: 'FormAML',\r\n\tStandardComment: 'Standard Comment',\r\n\tDeloitteSpecificComments: 'Deloitte Specific Comments'\r\n};\r\nexport const NoOfClauses = {\r\n\tClause10: '10',\r\n\tClause11A: '11A',\r\n\tClause11B: '11B',\r\n\tClause11C: '11C',\r\n\tClause12: '12',\r\n\tClause13: '13',\r\n\tClause14: '14',\r\n\tClause15: '15',\r\n\tClause16: '16',\r\n\tClause17: '17',\r\n\tClause18: '18',\r\n\tClause19: '19',\r\n\tClause20: '20',\r\n\tClause21: '21',\r\n\tClause22: '22',\r\n\tClause23A: '23A',\r\n\tClause23B: '23B',\r\n\tClause24: '24',\r\n\tClause25: '25',\r\n};\r\n\r\nexport const NotForeignFormCaluse = [NoOfClauses.Clause11A, NoOfClauses.Clause11B, NoOfClauses.Clause11C, NoOfClauses.Clause20];\r\n\r\nexport const FormTypeEnum = {\r\n\tPrepareAML: 1,\r\n\tIssueAML: 0\r\n};\r\n\r\nexport const ModeName = 'MODE';\r\n\r\nexport const Modes = {\r\n\tEdit: 'Edit',\r\n\tView: 'View',\r\n\tNone: 'None'\r\n};\r\n\r\nexport const LocalStorageKeys = {\r\n\tTaskClientId: 'TCID'\r\n};\r\n\r\nexport const KeyDelimiter = '//';\r\nexport const haveNotBeen = 'have not been';\r\n\r\nexport const PaginatorIconList = [\r\n\t{\r\n\t icon: \".pi-caret-left\",\r\n\t text: \"Previous\",\r\n\t hide: false,\r\n\t},\r\n\t{\r\n\t icon: \".pi-caret-right\",\r\n\t text: \"Next\",\r\n\t hide: false,\r\n\t},\r\n\t{\r\n\t icon: \".pi-step-forward\",\r\n\t hide: false,\r\n\t text: \"Last\",\r\n\t},\r\n\t{\r\n\t icon: \".pi-step-backward\",\r\n\t text: \"First\",\r\n\t hide: false,\r\n\t},\r\n ];\r\n","export enum ValidationMessage {\r\n\trequired = 'This field is required',\r\n\tvalid_email = 'Please provide valid email address',\r\n\r\n\tmaxlength = 'This field should not exceed more than 50 characters',\r\n\tminlength = 'This field must be 8 or more characters in length',\r\n\tshortRequired = 'Required',\r\n\tpan = 'PAN number should be 10 characters',\r\n\tpanPattern = 'PAN number should be in format ABDPE1234L',\r\n\tpanDuplicate = 'PAN number should be unique',\r\n\tinputFieldPatternErrorMessage = \"< > % \\\\ these characters are not allowed\",\r\n\ttextFieldPatternErrorMessage = \"< > % \\\\ these characters are not allowed\",\r\n\r\n\tnoWhiteSpace = \"This field can not be blank\",\r\n\tweightages = \"This field allows only decimal values\",\r\n\tmax_value = \"Maximum value is 100\"\r\n}\r\n\r\nexport enum MaxLength {\r\n\tname = 125,\r\n\taddress = 150,\r\n\tdescription = 300,\r\n\tdescOfAggreement = 150,\r\n\tdescOfBusiness = 100,\r\n\tdescOfProperty = 100,\r\n\tdescOfTransaction = 100,\r\n\tshortDescription = 30,\r\n\tpurchaseSoldDesc = 75,\r\n\tpurchaseSoldQuantity = 50,\r\n\tdetails = 150,\r\n\tpricingPolicy = 100,\r\n\tbenchmarking = 300,\r\n\tcomment = 1000,\r\n\tnature = 100,\r\n\tnature150 = 150,\r\n\tcategoryUnits = 100,\r\n\tinterestRate = 100,\r\n\tcurrency = 25,\r\n\tcurrency100 = 100,\r\n\tplace = 20,\r\n\tfrn = 8,\r\n\tpan = 10,\r\n\tmembershipNo = 6,\r\n}\r\n\r\nexport enum MinLength {\r\n\tname = 0,\r\n\taddress = 0,\r\n\tdescOfBusiness = 5,\r\n\tpurchaseSoldDesc = 0,\r\n\tpurchaseSoldQuantity = 0,\r\n\tdescription = 0,\r\n\tshortDescription = 0,\r\n\tplace = 0,\r\n\tmembershipNo = 3,\r\n\tfrn = 0,\r\n\tcategoryUnits = 0,\r\n\tinterestRate = 0,\r\n\tpan = 10,\r\n}\r\n\r\nexport enum MaxValue {\r\n\tamount = 99999999999999,\r\n}\r\n\r\nexport enum MinValue {\r\n\tamount = 0,\r\n}\r\n\r\nexport enum Pattern {\r\n\tmembershipNo = '^[0-9]*$',\r\n\tfrn = '^[A-Za-z0-9]*$',\r\n\t// frn = '^[0-9]*$',\r\n \tname = '^[ A-Za-z0-9]*$',\r\n\tenterpriseName = '^(?!0).*$|^$',\r\n\tpan = '^[A-Za-z]{5}[0-9]{4}[A-Za-z]{1}$',\r\n\tinputField = '^[ A-Za-z0-9_@./):\"}=|;?`~$[{!(#&+-]*$',\r\n\ttextAreaField = '^[ A-Za-z0-9_@./):\"}=|;?`~{!(#&+-]*$',\r\n \r\n \tweightages = '^[0-9.]*$'\r\n}\r\n","import { Directive, ElementRef } from '@angular/core';\r\ndeclare var $: any;\r\n\r\n@Directive({\r\n selector: '[checkAll]'\r\n})\r\nexport class CheckallDirective {\r\n\r\n constructor(public el: ElementRef) {\r\n let $element = $(el.nativeElement);\r\n\r\n $element.on('change', function() {\r\n let index = $element.index() + 1,\r\n checkbox = $element.find('input[type=\"checkbox\"]'),\r\n table = $element.parents('table');\r\n // Make sure to affect only the correct checkbox column\r\n table.find('tbody > tr > td:nth-child(' + index + ') input[type=\"checkbox\"]')\r\n .prop('checked', checkbox[0].checked);\r\n\r\n });\r\n\r\n }\r\n\r\n}\r\n","import { OnInit, OnChanges, Directive, Input, SimpleChange, ElementRef } from '@angular/core';\r\n\r\ndeclare var $: any;\r\nconst EasyPieChart = null; //require('easy-pie-chart');\r\n\r\n@Directive({\r\n selector: '[easypiechart]'\r\n})\r\nexport class EasypiechartDirective implements OnInit, OnChanges {\r\n\r\n /**\r\n * default easy pie chart options\r\n * @type {Object}\r\n */\r\n public defaultOptions = {\r\n barColor: '#ef1e25',\r\n trackColor: '#f9f9f9',\r\n scaleColor: '#dfe0e0',\r\n scaleLength: 5,\r\n lineCap: 'round',\r\n lineWidth: 3,\r\n size: 110,\r\n rotate: 0,\r\n animate: {\r\n duration: 1000,\r\n enabled: true\r\n }\r\n };\r\n\r\n public pieChart: any;\r\n @Input() percent;\r\n @Input() options;\r\n\r\n constructor(public element: ElementRef) {\r\n this.percent = this.percent || 0;\r\n this.options = $.extend({}, this.defaultOptions, this.options);\r\n }\r\n\r\n ngOnInit() {\r\n if(EasyPieChart) {\r\n this.pieChart = new EasyPieChart(this.element.nativeElement, this.options);\r\n this.pieChart.update(this.percent);\r\n }\r\n }\r\n\r\n ngOnChanges(changes: { [propertyName: string]: SimpleChange }) {\r\n if (this.pieChart && changes['percent']) {\r\n this.pieChart.update(this.percent);\r\n }\r\n }\r\n\r\n}\r\n","import { OnInit, OnChanges, OnDestroy, Directive, ElementRef, Input, Output, SimpleChange, EventEmitter } from '@angular/core';\r\n\r\ndeclare var $: any;\r\n\r\n@Directive({\r\n selector: '[flot]'\r\n})\r\nexport class FlotDirective implements OnInit, OnChanges, OnDestroy {\r\n\r\n element: any;\r\n plot: any;\r\n width: any;\r\n\r\n @Input() dataset: any;\r\n @Input() options: any;\r\n @Input() attrWidth: any;\r\n @Input() height: number;\r\n @Input() series: any;\r\n\r\n @Output() ready = new EventEmitter();\r\n\r\n constructor(public el: ElementRef) {\r\n this.element = $(this.el.nativeElement);\r\n\r\n if (!$.plot) {\r\n // console.log('Flot chart no available.');\r\n }\r\n\r\n this.plot = null;\r\n }\r\n\r\n ngOnInit() { }\r\n\r\n ngOnChanges(changes: { [propertyName: string]: SimpleChange }) {\r\n if (!$.plot) {\r\n return;\r\n }\r\n if (changes['dataset']) {\r\n this.onDatasetChanged(this.dataset);\r\n }\r\n if (changes['series']) {\r\n this.onSerieToggled(this.series);\r\n }\r\n }\r\n\r\n init() {\r\n\r\n const heightDefault = 220;\r\n\r\n this.width = this.attrWidth || '100%';\r\n this.height = this.height || heightDefault;\r\n\r\n this.element.css({\r\n width: this.width,\r\n height: this.height\r\n });\r\n\r\n let plotObj;\r\n if (!this.dataset || !this.options) {\r\n return;\r\n }\r\n plotObj = $.plot(this.el.nativeElement, this.dataset, this.options);\r\n if (this.ready) {\r\n this.ready.next({ plot: plotObj });\r\n }\r\n return plotObj;\r\n }\r\n\r\n onDatasetChanged(dataset) {\r\n if (this.plot) {\r\n this.plot.setData(dataset);\r\n this.plot.setupGrid();\r\n return this.plot.draw();\r\n } else {\r\n this.plot = this.init();\r\n this.onSerieToggled(this.series);\r\n return this.plot;\r\n }\r\n }\r\n\r\n onSerieToggled(series) {\r\n if (!this.plot || !series) {\r\n return;\r\n }\r\n let someData = this.plot.getData();\r\n for (let sName in series) {\r\n series[sName].forEach(toggleFor(sName));\r\n }\r\n\r\n this.plot.setData(someData);\r\n this.plot.draw();\r\n\r\n function toggleFor(sName) {\r\n return function(s, i) {\r\n if (someData[i] && someData[i][sName]) {\r\n someData[i][sName].show = s;\r\n }\r\n };\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.plot) {\r\n this.plot.shutdown();\r\n }\r\n }\r\n}\r\n","import { Directive, Input, OnInit, OnDestroy, ElementRef, OnChanges, SimpleChange } from '@angular/core';\r\ndeclare var $: any;\r\n\r\n@Directive({\r\n selector: '[jqcloud]'\r\n})\r\nexport class JqcloudDirective implements OnInit, OnDestroy, OnChanges {\r\n\r\n @Input() words;\r\n @Input() width;\r\n @Input() height;\r\n @Input() steps;\r\n $elem: any;\r\n options: any;\r\n initialized = false; // flag to not update before plugin was initialized\r\n\r\n constructor(element: ElementRef) {\r\n this.$elem = $(element.nativeElement);\r\n this.options = $.fn.jQCloud.defaults.get();\r\n }\r\n\r\n ngOnInit() {\r\n let opts: any = {};\r\n if (this.width) {\r\n opts.width = this.width;\r\n }\r\n if (this.height) {\r\n opts.height = this.height;\r\n }\r\n if (this.steps) {\r\n opts.steps = this.steps;\r\n }\r\n\r\n $.extend(this.options, opts);\r\n this.$elem.jQCloud(this.words, opts);\r\n this.initialized = true;\r\n }\r\n\r\n ngOnChanges(changes: { [propertyName: string]: SimpleChange }) {\r\n if (this.initialized && this.words && changes['words']) {\r\n this.$elem.jQCloud('update', this.words);\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.$elem.jQCloud('destroy');\r\n }\r\n}\r\n","import { OnInit, OnDestroy, Directive, Input, ElementRef } from '@angular/core';\r\nimport moment from 'moment';\r\n\r\n@Directive({\r\n selector: '[now]'\r\n})\r\nexport class NowDirective implements OnInit, OnDestroy {\r\n\r\n @Input() format;\r\n intervalId;\r\n\r\n constructor(public element: ElementRef) { }\r\n\r\n ngOnInit() {\r\n this.updateTime();\r\n this.intervalId = setInterval(this.updateTime.bind(this), 1000);\r\n }\r\n\r\n updateTime() {\r\n let dt = moment().format(this.format);\r\n this.element.nativeElement.innerHTML = dt;\r\n }\r\n\r\n ngOnDestroy() {\r\n clearInterval(this.intervalId);\r\n }\r\n\r\n}\r\n","import { OnInit, Directive, Input, ElementRef } from '@angular/core';\r\ndeclare var $: any;\r\n\r\n@Directive({\r\n selector: 'scrollable'\r\n})\r\nexport class ScrollableDirective implements OnInit {\r\n\r\n @Input() height: number;\r\n defaultHeight = 250;\r\n\r\n constructor(public element: ElementRef) { }\r\n\r\n ngOnInit() {\r\n $(this.element.nativeElement).slimScroll({\r\n height: (this.height || this.defaultHeight)\r\n });\r\n }\r\n\r\n}\r\n","import { OnInit, OnDestroy, Directive, Input, ElementRef } from '@angular/core';\r\ndeclare var $: any;\r\n\r\n@Directive({\r\n selector: '[sparkline]'\r\n})\r\nexport class SparklineDirective implements OnInit, OnDestroy {\r\n\r\n @Input() sparkline;\r\n @Input() values;\r\n\r\n // generate a unique resize event so we can detach later\r\n private resizeEventId = 'resize.sparkline' + 1324;\r\n private $element;\r\n\r\n constructor(private el: ElementRef) {\r\n this.$element = $(el.nativeElement);\r\n }\r\n\r\n ngOnInit() {\r\n this.initSparkLine();\r\n }\r\n\r\n initSparkLine() {\r\n let options = this.sparkline,\r\n data = this.$element.data();\r\n\r\n if (!options) {// if no scope options, try with data attributes\r\n options = data;\r\n }\r\n else {\r\n if (data) {// data attributes overrides scope options\r\n options = $.extend({}, options, data);\r\n }\r\n }\r\n\r\n options.type = options.type || 'bar'; // default chart is bar\r\n options.disableHiddenCheck = true;\r\n\r\n this.runSparkline(options);\r\n\r\n if (options.resize) {\r\n $(window).on(this.resizeEventId, () => {\r\n this.runSparkline(options);\r\n });\r\n }\r\n }\r\n\r\n runSparkline(options) {\r\n if(this.values) {\r\n if( typeof this.values === 'string')\r\n this.values = this.values.split(','); // assume comma separated string\r\n this.$element.sparkline(this.values, options);\r\n }\r\n else {\r\n this.$element.sparkline('html', options);\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n $(window).off(this.resizeEventId);\r\n }\r\n}\r\n","import { OnInit, Directive, Input, ElementRef, OnDestroy } from '@angular/core';\r\ndeclare var $: any;\r\n\r\n@Directive({\r\n selector: '[vectormap]'\r\n})\r\nexport class VectormapDirective implements OnInit, OnDestroy {\r\n\r\n @Input() mapHeight: number;\r\n @Input() mapName: any;\r\n @Input() mapOptions: any;\r\n @Input() seriesData: any;\r\n @Input() markersData: any;\r\n\r\n $element: any;\r\n\r\n constructor(public element: ElementRef) { }\r\n\r\n ngOnInit() {\r\n\r\n this.$element = $(this.element.nativeElement);\r\n this.$element.css('height', this.mapHeight);\r\n\r\n if (!this.$element.length || !this.$element.vectorMap) {\r\n return;\r\n }\r\n\r\n this.$element.vectorMap({\r\n map: this.mapName,\r\n backgroundColor: this.mapOptions.bgColor,\r\n zoomMin: 1,\r\n zoomMax: 8,\r\n zoomOnScroll: false,\r\n regionStyle: {\r\n initial: {\r\n 'fill': this.mapOptions.regionFill,\r\n 'fill-opacity': 1,\r\n 'stroke': 'none',\r\n 'stroke-width': 1.5,\r\n 'stroke-opacity': 1\r\n },\r\n hover: {\r\n 'fill-opacity': 0.8\r\n },\r\n selected: {\r\n fill: 'blue'\r\n },\r\n selectedHover: {\r\n }\r\n },\r\n focusOn: { x: 0.4, y: 0.6, scale: this.mapOptions.scale },\r\n markerStyle: {\r\n initial: {\r\n fill: this.mapOptions.markerColor,\r\n stroke: this.mapOptions.markerColor\r\n }\r\n },\r\n onRegionLabelShow: (e, el, code) => {\r\n if (this.seriesData && this.seriesData[code]) {\r\n el.html(el.html() + ': ' + this.seriesData[code] + ' visitors');\r\n }\r\n },\r\n markers: this.markersData,\r\n series: {\r\n regions: [{\r\n values: this.seriesData,\r\n scale: this.mapOptions.scaleColors,\r\n normalizeFunction: 'polynomial'\r\n }]\r\n },\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.$element.vectorMap('get', 'mapObject').remove();\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'keys'\r\n})\r\nexport class DynamictablePipe implements PipeTransform {\r\n\r\n transform(value: any, args: any[]): any {\r\n let keys = [];\r\n for (let key in value) {\r\n // console.log(key);\r\n keys.push(key);\r\n }\r\n return keys;\r\n }\r\n\r\n}\r\n","export default \".color {\\n background-color: #ffffff;\\n}\\n\\n.style {\\n font-weight: bold;\\n border-color: honeydew;\\n}\\n\\nbutton:enabled:hover {\\n background-color: #86bc25 !important;\\n color: #fff !important;\\n}\\n\\nbutton:disabled {\\n color: black;\\n}\\n\\n.sticky-header {\\n z-index: 10;\\n background: #f5f7fa;\\n width: 100%;\\n position: fixed;\\n top: 55px;\\n}\\n\\n.sticky-header-margin-top-30px {\\n margin-top: 30px;\\n}\\n\\n.sticky-header-margin-top-0px {\\n margin-top: 0px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL2VudGl0eS1oZWFkZXIvRDpcXEluZGlhQlVcXEFnZW50UG9vbFxcRG90TmV0XFxEb3ROZXRGcmFtZXdvcmtcXF93b3JrXFwyOTZcXHMvc3JjXFxhcHBcXHNoYXJlZFxcZW50aXR5LWhlYWRlclxcZW50aXR5LWhlYWRlci5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvc2hhcmVkL2VudGl0eS1oZWFkZXIvZW50aXR5LWhlYWRlci5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLHlCQUFBO0FDQ0o7O0FERUE7RUFDSSxpQkFBQTtFQUNBLHNCQUFBO0FDQ0o7O0FERUE7RUFDSSxvQ0FBQTtFQUNBLHNCQUFBO0FDQ0o7O0FERUE7RUFDSSxZQUFBO0FDQ0o7O0FEQ0E7RUFDSSxXQUFBO0VBQ0EsbUJBQUE7RUFDQSxXQUFBO0VBQ0EsZUFBQTtFQUNBLFNBQUE7QUNFSjs7QURDQTtFQUNJLGdCQUFBO0FDRUo7O0FEQ0E7RUFDSSxlQUFBO0FDRUoiLCJmaWxlIjoic3JjL2FwcC9zaGFyZWQvZW50aXR5LWhlYWRlci9lbnRpdHktaGVhZGVyLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmNvbG9ye1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmO1xyXG4gICAgfVxyXG5cclxuLnN0eWxle1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICBib3JkZXItY29sb3I6IGhvbmV5ZGV3O1xyXG4gICAgfVxyXG5cclxuYnV0dG9uOmVuYWJsZWQ6aG92ZXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzg2YmMyNSAhaW1wb3J0YW50O1xyXG4gICAgY29sb3I6ICNmZmYhaW1wb3J0YW50O1xyXG4gICAgfVxyXG5cclxuYnV0dG9uOmRpc2FibGVkIHtcclxuICAgIGNvbG9yOiBibGFjaztcclxufVxyXG4uc3RpY2t5LWhlYWRlcntcclxuICAgIHotaW5kZXg6IDEwO1xyXG4gICAgYmFja2dyb3VuZDogI2Y1ZjdmYTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgdG9wOiA1NXB4O1xyXG59XHJcblxyXG4uc3RpY2t5LWhlYWRlci1tYXJnaW4tdG9wLTMwcHgge1xyXG4gICAgbWFyZ2luLXRvcDogMzBweDsgIFxyXG59XHJcblxyXG4uc3RpY2t5LWhlYWRlci1tYXJnaW4tdG9wLTBweCB7XHJcbiAgICBtYXJnaW4tdG9wOiAwcHg7ICBcclxufSIsIi5jb2xvciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG59XG5cbi5zdHlsZSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBib3JkZXItY29sb3I6IGhvbmV5ZGV3O1xufVxuXG5idXR0b246ZW5hYmxlZDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4NmJjMjUgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmYgIWltcG9ydGFudDtcbn1cblxuYnV0dG9uOmRpc2FibGVkIHtcbiAgY29sb3I6IGJsYWNrO1xufVxuXG4uc3RpY2t5LWhlYWRlciB7XG4gIHotaW5kZXg6IDEwO1xuICBiYWNrZ3JvdW5kOiAjZjVmN2ZhO1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDU1cHg7XG59XG5cbi5zdGlja3ktaGVhZGVyLW1hcmdpbi10b3AtMzBweCB7XG4gIG1hcmdpbi10b3A6IDMwcHg7XG59XG5cbi5zdGlja3ktaGVhZGVyLW1hcmdpbi10b3AtMHB4IHtcbiAgbWFyZ2luLXRvcDogMHB4O1xufSJdfQ== */\";","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { HttpGenericService } from 'src/app/core/services/http-genric.service';\r\nimport * as consts from \"../../shared/constants/api.constants\";\r\nimport { first } from 'rxjs/operators';\r\nconst swal = require(\"sweetalert\");\r\nimport Swal from 'sweetalert2';\r\n\r\n\r\n@Component({\r\n selector: 'app-entity-header',\r\n templateUrl: './entity-header.component.html',\r\n styleUrls: ['./entity-header.component.scss']\r\n})\r\nexport class EntityHeaderComponent implements OnInit {\r\n entity: boolean = false;\r\n business: boolean = false;\r\n weightage: boolean = false;\r\n user: boolean = false;\r\n questionnaire: boolean = false;\r\n assessment: boolean = false;\r\n entityEnable: boolean;\r\n businessEnable: boolean;\r\n weightageEnable: boolean;\r\n userEnable: boolean;\r\n questionnaireEnable: boolean;\r\n assessmentEnable: boolean;\r\n status: string;\r\n isDisabled: boolean;\r\n maintab: string;\r\n dashboardEnable: boolean;\r\n dashboard: boolean;\r\n AssessmentStatusEntityName: any;\r\n entityrowdata: any;\r\n entityName: any;\r\n buassessment: boolean;\r\n buweighate: boolean;\r\n RCsum: number = 0;\r\n subcategory: boolean = false;\r\n subcategorydetails: boolean = false;\r\n Customersum: number = 0;\r\n Productsum: number = 0;\r\n Transactionsum: number = 0;\r\n Geographysum: number = 0;\r\n Channelssum: number = 0;\r\n QFsum: number = 0;\r\n\r\n constructor(\r\n private route: Router,\r\n private httpGenericService: HttpGenericService,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.entityName = JSON.parse(localStorage.getItem(\"setEntityName\"));\r\n this.maintab = localStorage.getItem('maintab');\r\n // if (this.entityManagementService.getEntityEnsableTab() == true) {\r\n // this.entityEnable = true;\r\n // }\r\n if (this.maintab == 'AssessmentStatus')\r\n this.AssessmentStatusEntityName = JSON.parse(localStorage.getItem('ASEntityName'));\r\n\r\n if (JSON.parse(localStorage.getItem('setDashboardEnableTab')) == true) {\r\n this.dashboardEnable = true;\r\n }\r\n if (JSON.parse(localStorage.getItem('setEntityEnableTab')) == true) {\r\n this.entityEnable = true;\r\n }\r\n // if (this.entityManagementService.getBusinessEnsableTab() == true) {\r\n // this.businessEnable = true;\r\n // }\r\n if (JSON.parse(localStorage.getItem('setBusinessEnableTab')) == true) {\r\n this.businessEnable = true;\r\n }\r\n // if (this.entityManagementService.getWeightageEnsableTab() == true) {\r\n // this.weightageEnable = true;\r\n // }\r\n if (JSON.parse(localStorage.getItem('setWeightageEnableTab')) == true) {\r\n this.weightageEnable = true;\r\n }\r\n // if (this.entityManagementService.getUsersEnsableTab() == true) {\r\n // this.userEnable = true;\r\n // }\r\n if (JSON.parse(localStorage.getItem('setUsersEnableTab')) == true) {\r\n this.userEnable = true;\r\n }\r\n // if (this.entityManagementService.getQuestionnaireEnsableTab() == true) {\r\n // this.questionnaireEnable = true;\r\n // }\r\n if (JSON.parse(localStorage.getItem('setQuestionnaireEnableTab')) == true) {\r\n this.questionnaireEnable = true;\r\n }\r\n // if (this.entityManagementService.getAssessmentEnsableTab() == true) {\r\n // this.assessmentEnable = true;\r\n // }\r\n if (JSON.parse(localStorage.getItem('setAssessmentEnableTab')) == true) {\r\n this.assessmentEnable = true;\r\n }\r\n //this.status = this.entityManagementService.getCss();\r\n this.status = localStorage.getItem('setCss');\r\n if (this.status == '1') {\r\n this.entity = true;\r\n }else if (this.status == '2') {\r\n this.business = true;\r\n }else if (this.status == '3') {\r\n this.user = true;\r\n }else if (this.status == '4') {\r\n this.questionnaire = true;\r\n }else if (this.status == '5') {\r\n this.weightage = true;\r\n }else if (this.status == '6') {\r\n this.assessment = true;\r\n } else if (this.status == '7') { \r\n this.dashboard = true;\r\n }\r\n else if (this.status == '8') { \r\n this.buweighate = true;\r\n }\r\n else if (this.status == '9') { \r\n this.buassessment = true;\r\n }\r\n }\r\n\r\n routeToEntity () {\r\n //this.entityManagementService.setCss(1);\r\n localStorage.setItem('setCss', '1');\r\n\t\tthis.route.navigate([\"/entity/entityonboarding\"]);\r\n }\r\n \r\n routeToBusiness () {\r\n //this.entityManagementService.setCss(2);\r\n localStorage.setItem('setCss', '2');\r\n\t\tthis.route.navigate([\"/entity/addbusinessunit\"]);\r\n }\r\n\r\n routeToUser () {\r\n //this.entityManagementService.setCss(3);\r\n localStorage.setItem('setCss', '3');\r\n\t\tthis.route.navigate([\"/entity/addusers\"]);\r\n }\r\n\r\n routeToQuestionnaire () {\r\n //this.entityManagementService.setCss(4);\r\n localStorage.setItem('setCss', '4');\r\n this.route.navigate([\"/entity/mapquestionnaire\"]);\r\n }\r\n\r\n routeToWeightage () {\r\n //this.entityManagementService.setCss(5);\r\n localStorage.setItem('setCss', '5');\r\n //this.entityManagementService.setWeightageCss(1);\r\n localStorage.setItem('setWeightageCss', '1');\r\n\t\tthis.route.navigate([\"/entity/assignweightage\"]);\r\n }\r\n\r\n routeToAssessment () {\r\n this.RCsum = +localStorage.getItem('RCsum');\r\n this.Customersum = +localStorage.getItem('Customersum');\r\n this.Productsum = +localStorage.getItem('Productsum');\r\n this.Transactionsum = +localStorage.getItem('Transactionsum');\r\n this.Geographysum = +localStorage.getItem('Geographysum');\r\n this.Channelssum = +localStorage.getItem('Channelssum');\r\n this.QFsum = +localStorage.getItem('QFsum');\r\ndebugger\r\n if (\r\n this.RCsum == 100 ||\r\n this.Customersum == 100 ||\r\n this.Productsum == 100 ||\r\n this.Transactionsum == 100 ||\r\n this.Geographysum == 100 ||\r\n this.Channelssum == 100 ||\r\n this.QFsum == 100\r\n ){\r\n localStorage.setItem('setCss', '6');\r\n this.route.navigate([\"/entity/assessmentreview\"]); \r\n } \r\n }\r\n\r\n routeToDashboard() {\r\n //this.entityManagementService.setCss(6);\r\n localStorage.setItem('setCss', '7');\r\n //this.route.navigate([\"/entity/dashboard\"]);\r\n this.route.navigate([\"/business/Dashboard\"]);\r\n }\r\n\r\n routeToBUWeightage() {\r\n localStorage.setItem('setCss', '8');\r\n this.route.navigate([\"/business/BUWeightage\"]);\r\n }\r\n\r\n routeToBUAssessment() {\r\n localStorage.setItem('setCss', '9');\r\n this.route.navigate([\"/business/BUAssessment\"]);\r\n }\r\n \r\n getEntityData(id: number) {\r\n this.httpGenericService\r\n .fetchAll(\r\n `${consts.API.entityDetails.getEntityDetailsById\r\n }?entityId=${id}`\r\n )\r\n .pipe(first())\r\n .subscribe((res) => {\r\n let response: any = res[\"Result\"];\r\n this.entityrowdata = response;\r\n });\r\n }\r\n}\r\n","import { MessageService } from 'primeng/api';\r\nimport { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { RouterModule } from '@angular/router';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { AccordionModule } from 'ngx-bootstrap/accordion';\r\nimport { AlertModule } from 'ngx-bootstrap/alert';\r\nimport { ButtonsModule } from 'ngx-bootstrap/buttons';\r\nimport { CarouselModule } from 'ngx-bootstrap/carousel';\r\nimport { CollapseModule } from 'ngx-bootstrap/collapse';\r\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\r\nimport { ModalModule } from 'ngx-bootstrap/modal';\r\nimport { PaginationModule } from 'ngx-bootstrap/pagination';\r\nimport { ProgressbarModule } from 'ngx-bootstrap/progressbar';\r\nimport { RatingModule } from 'ngx-bootstrap/rating';\r\nimport { TabsModule } from 'ngx-bootstrap/tabs';\r\nimport { TimepickerModule } from 'ngx-bootstrap/timepicker';\r\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\r\nimport { PopoverModule } from 'ngx-bootstrap/popover';\r\nimport { TypeaheadModule } from 'ngx-bootstrap/typeahead';\r\nimport { DatepickerModule } from 'ngx-bootstrap/datepicker';\r\nimport { BsDatepickerModule } from 'ngx-bootstrap/datepicker';\r\nimport { FlotDirective } from './directives/flot/flot.directive';\r\nimport { SparklineDirective } from './directives/sparkline/sparkline.directive';\r\nimport { EasypiechartDirective } from './directives/easypiechart/easypiechart.directive';\r\nimport { ColorsService } from './colors/colors.service';\r\nimport { CheckallDirective } from './directives/checkall/checkall.directive';\r\nimport { VectormapDirective } from './directives/vectormap/vectormap.directive';\r\nimport { NowDirective } from './directives/now/now.directive';\r\nimport { ScrollableDirective } from './directives/scrollable/scrollable.directive';\r\nimport { JqcloudDirective } from './directives/jqcloud/jqcloud.directive';\r\nimport { LoadingScreenComponent } from './components/loading-screen/loading-screen.component';\r\nimport { BlockUIModule } from 'ng-block-ui';\r\nimport {ToastModule} from 'primeng/toast';\r\nimport {InputTextModule} from 'primeng/inputtext';\r\nimport {InputSwitchModule} from 'primeng/inputswitch';\r\nimport {CheckboxModule} from 'primeng/checkbox';\r\nimport {TableModule} from 'primeng/table';\r\nimport {ButtonModule} from 'primeng/button';\r\nimport {DropdownModule} from 'primeng/dropdown';\r\nimport {MultiSelectModule} from 'primeng/multiselect';\r\nimport {TreeTableModule} from 'primeng/treetable';\r\nimport {TreeNode} from 'primeng/api';\r\nimport {DialogModule} from 'primeng/dialog';\r\nimport {DatePipe} from '@angular/common';\r\nimport {PanelModule} from 'primeng/panel';\r\nimport {FileUploadModule} from 'primeng/fileupload';\r\nimport { DialogService } from 'primeng/dynamicdialog';\r\nimport {RadioButtonModule} from 'primeng/radiobutton';\r\nimport {ChipsModule} from 'primeng/chips';\r\nimport { EntityHeaderComponent } from './entity-header/entity-header.component';\r\nimport { HomeComponent } from '../modules/home/components/home.component';\r\nimport { AssessmentreviewComponent } from '../modules/entity-management/components/assessmentreview/assessmentreview.component';\r\nimport { AssignweightagesComponent } from '../modules/entity-management/components/assignweightages/assignweightages.component';\r\nimport { CustomCssPipePipe } from '../Pipes/custom-css-pipe.pipe';\r\nimport { DetailedReportComponent } from '../modules/home/components/detailed-report/detailed-report.component';\r\nimport { CompositionReportComponent } from '../modules/home/components/composition-report/composition-report.component';\r\nimport {NgxPaginationModule} from 'ngx-pagination';\r\n// https://angular.io/styleguide#!#04-10\r\n@NgModule({\r\n imports: [\r\n ChipsModule,\r\n RadioButtonModule,\r\n CheckboxModule,\r\n InputSwitchModule,\r\n MultiSelectModule,\r\n DropdownModule,\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n TranslateModule,\r\n DialogModule,\r\n AccordionModule.forRoot(),\r\n AlertModule.forRoot(),\r\n ButtonsModule.forRoot(),\r\n CarouselModule.forRoot(),\r\n CollapseModule.forRoot(),\r\n DatepickerModule.forRoot(),\r\n BsDatepickerModule.forRoot(),\r\n BsDropdownModule.forRoot(),\r\n ModalModule.forRoot(),\r\n PaginationModule.forRoot(),\r\n ProgressbarModule.forRoot(),\r\n RatingModule.forRoot(),\r\n TabsModule.forRoot(),\r\n TimepickerModule.forRoot(),\r\n TooltipModule.forRoot(),\r\n PopoverModule.forRoot(),\r\n TypeaheadModule.forRoot(),\r\n BlockUIModule.forRoot(),\r\n ToastModule,\r\n InputTextModule,\r\n TableModule,\r\n ButtonModule,\r\n DropdownModule,\r\n MultiSelectModule,\r\n DropdownModule,\r\n TreeTableModule,\r\n InputSwitchModule,\r\n PanelModule,\r\n CheckboxModule,\r\n FileUploadModule,\r\n NgxPaginationModule\r\n ],\r\n providers: [\r\n ColorsService,\r\n MessageService,DialogService,DatePipe\r\n ],\r\n declarations: [\r\n FlotDirective,\r\n SparklineDirective,\r\n EasypiechartDirective,\r\n CheckallDirective,\r\n VectormapDirective,\r\n NowDirective,\r\n ScrollableDirective,\r\n JqcloudDirective,\r\n LoadingScreenComponent,\r\n EntityHeaderComponent,\r\n HomeComponent,\r\n AssignweightagesComponent,\r\n AssessmentreviewComponent,\r\n CustomCssPipePipe,\r\n DetailedReportComponent,\r\n CompositionReportComponent\r\n ],\r\n exports: [\r\n ChipsModule,\r\n RadioButtonModule,\r\n DialogModule,\r\n CheckboxModule,\r\n InputSwitchModule,\r\n MultiSelectModule,\r\n DropdownModule,\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n TranslateModule,\r\n RouterModule,\r\n AccordionModule,\r\n AlertModule,\r\n ButtonsModule,\r\n CarouselModule,\r\n CollapseModule,\r\n DatepickerModule,\r\n BsDatepickerModule,\r\n BsDropdownModule,\r\n ModalModule,\r\n PaginationModule,\r\n ProgressbarModule,\r\n RatingModule,\r\n TabsModule,\r\n TimepickerModule,\r\n TooltipModule,\r\n PopoverModule,\r\n TypeaheadModule,\r\n FlotDirective,\r\n SparklineDirective,\r\n EasypiechartDirective,\r\n CheckallDirective,\r\n VectormapDirective,\r\n NowDirective,\r\n ScrollableDirective,\r\n JqcloudDirective,\r\n LoadingScreenComponent,\r\n BlockUIModule,\r\n ToastModule,\r\n InputTextModule,\r\n TableModule,\r\n ButtonModule,\r\n DropdownModule,\r\n MultiSelectModule,\r\n DropdownModule,\r\n TreeTableModule,\r\n InputSwitchModule,\r\n PanelModule,\r\n CheckboxModule,\r\n FileUploadModule,\r\n EntityHeaderComponent,\r\n HomeComponent,\r\n AssignweightagesComponent,\r\n AssessmentreviewComponent,\r\n CustomCssPipePipe,\r\n DetailedReportComponent,\r\n CompositionReportComponent\r\n ]\r\n})\r\n\r\n// https://github.com/ocombe/ng2-translate/issues/209\r\n\r\nexport class SharedModule {\r\n static forRoot(): ModuleWithProviders {\r\n return {\r\n ngModule: SharedModule\r\n };\r\n }\r\n}\r\n","export default \"/* ========================================================================\\n Component: layout\\n ========================================================================== */\\nbody, .wrapper .section-container {\\n background-color: #f5f7fa;\\n}\\n.wrapper .aside-container {\\n background-color: #fff;\\n}\\n/* ========================================================================\\n Component: top-navbar\\n ========================================================================== */\\n.topnavbar {\\n background-color: #86BC25;\\n background-image: linear-gradient(to right, #86BC25 0%, #a0d93b 100%);\\n background-repeat: repeat-x;\\n}\\n@media (min-width: 992px) {\\n .topnavbar .navbar-nav > .nav-item.show > .nav-link, .topnavbar .navbar-nav > .nav-item.show > .nav-link:hover, .topnavbar .navbar-nav > .nav-item.show > .nav-link:focus {\\n box-shadow: 0 -3px 0 #74a220 inset;\\n }\\n}\\n.topnavbar .navbar-nav > .nav-item > .navbar-text {\\n color: #fff;\\n}\\n.topnavbar .navbar-nav > .nav-item > .nav-link,\\n.topnavbar .navbar-nav > .nav-item.show > .nav-link {\\n color: #fff;\\n}\\n.topnavbar .navbar-nav > .nav-item > .nav-link:hover, .topnavbar .navbar-nav > .nav-item > .nav-link:focus,\\n.topnavbar .navbar-nav > .nav-item.show > .nav-link:hover,\\n.topnavbar .navbar-nav > .nav-item.show > .nav-link:focus {\\n color: #496714;\\n}\\n.topnavbar .dropdown-item.active, .topnavbar .dropdown-item:active {\\n background-color: #86BC25;\\n}\\n/* ========================================================================\\n Component: sidebar\\n ========================================================================== */\\n.sidebar {\\n background-color: #fff;\\n}\\n.sidebar .nav-heading {\\n color: #919DA8;\\n}\\n.sidebar-nav > li > a, .sidebar-nav > li > .nav-item {\\n color: #000;\\n}\\n.sidebar-nav > li > a:focus, .sidebar-nav > li > a:hover, .sidebar-nav > li > .nav-item:focus, .sidebar-nav > li > .nav-item:hover {\\n background-color: #86BC25;\\n color: #fff;\\n}\\n.sidebar-nav > li > a > em, .sidebar-nav > li > .nav-item > em {\\n color: inherits;\\n}\\n.sidebar-nav > li.active, .sidebar-nav > li.active > a, .sidebar-nav > li.active > .nav-item, .sidebar-nav > li.active .sidebar-nav, .sidebar-nav > li.open, .sidebar-nav > li.open > a, .sidebar-nav > li.open > .nav-item, .sidebar-nav > li.open .sidebar-nav {\\n background-color: #86BC25;\\n color: #fff;\\n}\\n.sidebar-nav > li.active > .nav-item > em, .sidebar-nav > li.active > a > em, .sidebar-nav > li.open > .nav-item > em, .sidebar-nav > li.open > a > em {\\n background-color: #86BC25;\\n color: #fff;\\n}\\n.sidebar-nav > li.active {\\n background-color: #86BC25;\\n color: #86BC25;\\n}\\n.sidebar-subnav {\\n background-color: #fff;\\n}\\n.sidebar-subnav > .sidebar-subnav-header {\\n color: #000;\\n}\\n.sidebar-subnav > li > a, .sidebar-subnav > li > .nav-item {\\n color: #000;\\n}\\n.sidebar-subnav > li > a:focus, .sidebar-subnav > li > a:hover, .sidebar-subnav > li > .nav-item:focus, .sidebar-subnav > li > .nav-item:hover {\\n background-color: #86BC25;\\n color: #86BC25;\\n}\\n.sidebar-subnav > li.active > a, .sidebar-subnav > li.active > .nav-item {\\n color: #86BC25;\\n}\\n.sidebar-subnav > li.active > a:after, .sidebar-subnav > li.active > .nav-item:after {\\n border-color: #86BC25;\\n background-color: #86BC25;\\n}\\n/* ========================================================================\\n Component: offsidebar\\n ========================================================================== */\\n.offsidebar {\\n border-left: 1px solid greyscale(#cccccc);\\n background-color: #fff;\\n color: #656565;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL3N0eWxlcy90aGVtZXMvRDpcXEluZGlhQlVcXEFnZW50UG9vbFxcRG90TmV0XFxEb3ROZXRGcmFtZXdvcmtcXF93b3JrXFwyOTZcXHMvc3JjXFxhcHBcXHNoYXJlZFxcc3R5bGVzXFx0aGVtZXNcXHRoZW1lLWEuc2NzcyIsInNyYy9hcHAvc2hhcmVkL3N0eWxlcy90aGVtZXMvdGhlbWUtYS5zY3NzIiwic3JjL2FwcC9zaGFyZWQvc3R5bGVzL3RoZW1lcy9EOlxcSW5kaWFCVVxcQWdlbnRQb29sXFxEb3ROZXRcXERvdE5ldEZyYW1ld29ya1xcX3dvcmtcXDI5Nlxccy9zcmNcXGFwcFxcc2hhcmVkXFxzdHlsZXNcXGFwcFxcdmFyaWFibGVzLnNjc3MiLCJzcmMvYXBwL3NoYXJlZC9zdHlsZXMvdGhlbWVzL0Q6XFxJbmRpYUJVXFxBZ2VudFBvb2xcXERvdE5ldFxcRG90TmV0RnJhbWV3b3JrXFxfd29ya1xcMjk2XFxzL3NyY1xcYXBwXFxzaGFyZWRcXHN0eWxlc1xcYm9vdHN0cmFwXFxtaXhpbnNcXF9ncmFkaWVudHMuc2NzcyIsInNyYy9hcHAvc2hhcmVkL3N0eWxlcy90aGVtZXMvRDpcXEluZGlhQlVcXEFnZW50UG9vbFxcRG90TmV0XFxEb3ROZXRGcmFtZXdvcmtcXF93b3JrXFwyOTZcXHMvc3JjXFxhcHBcXHNoYXJlZFxcc3R5bGVzXFxib290c3RyYXBcXG1peGluc1xcX2JyZWFrcG9pbnRzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBbURBOzs2RUFBQTtBQUdBO0VBQ0kseUJBOUM0QjtBQ0poQztBRHFEQTtFQUNJLHNCQWpENEI7QUNEaEM7QURxREE7OzZFQUFBO0FBR0E7RUFDSSx5QkVoRG9CO0VDSnRCLHFFQUFBO0VBQ0EsMkJBQUE7QUZHRjtBRzBDSTtFSldRO0lBQ0ksa0NBQUE7RUNsRGQ7QUFDRjtBRHNESTtFQUNJLFdBM0R3QjtBQ09oQztBRHVESTs7RUFFSSxXQWhFd0I7QUNXaEM7QURzRFE7OztFQUNJLGNBakVvQjtBQ2VoQztBRHNESTtFQUNJLHlCRXhFZ0I7QURvQnhCO0FEd0RBOzs2RUFBQTtBQUdBO0VBQ0ksc0JBeEY0QjtBQ21DaEM7QUR1REk7RUFDSSxjQWpFMEI7QUNZbEM7QUQ0RFE7RUFDSSxXQW5Gc0I7QUMwQmxDO0FEMkRZO0VBQ0kseUJBakUwQjtFQWtFMUIsV0FqRTBCO0FDUTFDO0FENkRZO0VBQ0ksZUF4RmtCO0FDNkJsQztBRGtFWTtFQUNJLHlCQS9FMEI7RUFnRjFCLFdBL0UwQjtBQ2UxQztBRG1FWTtFQUNJLHlCQXBGMEI7RUFxRjFCLFdBcEYwQjtBQ21CMUM7QURzRVE7RUFDSSx5QkEzRjhCO0VBNEY5QixjRXpIWTtBRHFEeEI7QUQyRUE7RUFDSSxzQkF6STRCO0FDaUVoQztBRDBFSTtFQUNJLFdBNUgwQjtBQ29EbEM7QUQ0RVE7RUFDSSxXQWpJc0I7QUN1RGxDO0FENEVZO0VBQ0kseUJBL0cwQjtFQWdIMUIsY0U3SVE7QURtRXhCO0FEZ0ZZO0VBQ0ksY0VwSlE7QURzRXhCO0FEZ0ZnQjtFQUNJLHFCRXZKSTtFRndKSix5QkV4Skk7QUQwRXhCO0FEeUZBOzs2RUFBQTtBQUdBO0VBQ0kseUNBQUE7RUFDQSxzQkFqSnNCO0VBa0p0QixjRTlDd0I7QUR4QzVCIiwiZmlsZSI6InNyYy9hcHAvc2hhcmVkL3N0eWxlcy90aGVtZXMvdGhlbWUtYS5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQm9vdHN0cmFwXHJcbkBpbXBvcnQgXCIuLi9ib290c3RyYXAvZnVuY3Rpb25zXCI7XHJcbkBpbXBvcnQgXCIuLi9ib290c3RyYXAvdmFyaWFibGVzXCI7XHJcbkBpbXBvcnQgXCIuLi9ib290c3RyYXAvbWl4aW5zXCI7XHJcbkBpbXBvcnQgJy4uL2FwcC92YXJpYWJsZXMnO1xyXG5cclxuXHJcbi8vIExBWU9VVFxyXG5cclxuJGNvbnRlbnQtYmc6ICAgICAgICAgICAgICAgICAgICAjZjVmN2ZhO1xyXG4kYXNpZGUtYmc6ICAgICAgICAgICAgICAgICAgICAgICNmZmY7XHJcblxyXG4vLyBOQVZCQVIgVE9QXHJcblxyXG4kbmF2LXRvcC1iZzogICAgICAgICAgICAgICAgICAgICRpbmZvO1xyXG4kbmF2LXRvcC1iZy1zdGFydDogICAgICAgICAgICAgICRuYXYtdG9wLWJnO1xyXG4kbmF2LXRvcC1iZy1lbmQ6ICAgICAgICAgICAgICAgICRpbmZvLWxpZ2h0O1xyXG4kbmF2LWhlYWRlci1iZzogICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50O1xyXG5cclxuJG5hdi10b3AtaXRlbTogICAgICAgICAgICAgICAgICAjZmZmO1xyXG4kbmF2LXRvcC1pdGVtLWFjdGl2ZTogICAgICAgICAgIGRhcmtlbigkbmF2LXRvcC1iZywgMjAlKTtcclxuXHJcbi8vIFNJREVCQVJcclxuXHJcbiRzaWRlYmFyLWJnOiAgICAgICAgICAgICAgICAgICAgICAkYXNpZGUtYmc7XHJcblxyXG4kc2lkZWJhci1pdGVtLWNvbG9yOiAgICAgICAgICAgICAgIzAwMDtcclxuJHNpZGViYXItaXRlbS1jb2xvci1hY3RpdmU6ICAgICAgICRuYXYtdG9wLWJnO1xyXG4kc2lkZWJhci1pdGVtLWJnLWFjdGl2ZTogICAgICAgICAgZGFya2VuKCRzaWRlYmFyLWJnLCAxJSk7XHJcblxyXG4kc2lkZWJhci1pY29uLWNvbG9yOiAgICAgICAgICAgICAgaW5oZXJpdHM7XHJcbiRzaWRlYmFyLWljb24tY29sb3ItYWN0aXZlOiAgICAgICAkbmF2LXRvcC1iZztcclxuXHJcbiRzaWRlYmFyLWJ1bGxldC1jb2xvcjogICAgICAgICAgICByZ2JhKDAsMCwwLC4yNSk7XHJcbiRzaWRlYmFyLWJ1bGxldC1jb2xvci1hY3RpdmU6ICAgICAkc2lkZWJhci1pY29uLWNvbG9yLWFjdGl2ZTtcclxuXHJcbiRzaWRlYmFyLWhlYWRpbmctY29sb3I6ICAgICAgICAgICAjOTE5REE4O1xyXG4kc2lkZWJhci1sYWJlbC1jb2xvcjogICAgICAgICAgICAgJHNpZGViYXItaXRlbS1jb2xvcjtcclxuXHJcbi8vIE9GRlNJREVCQVJcclxuXHJcbiRvZmZzaWRlYmFyLWJnOiAgICAgICAgICAgI2ZmZjtcclxuJG9mZnNpZGViYXItYm9yZGVyLWNvbG9yOiBncmV5c2NhbGUoZGFya2VuKCRvZmZzaWRlYmFyLWJnLCAyMCUpKTtcclxuJG9mZnNpZGViYXItY29sb3I6ICAgICAgICAkYm9keS1jb2xvcjtcclxuXHJcbi8vIFNpZGViYXIgTmV3IHN0eWxlXHJcblxyXG4kc2lkZWJhci1pdGVtLXNlbGVjdGlvbi1iZ2NvbG9yOiAgICAgICAgICAjODZCQzI1O1xyXG4kc2lkZWJhci1pdGVtLXNlbGVjdGlvbi1jb2xvcjogICAgICAgICAgICAjZmZmO1xyXG5cclxuXHJcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBDb21wb25lbnQ6IGxheW91dFxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuYm9keSwgLndyYXBwZXIgLnNlY3Rpb24tY29udGFpbmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb250ZW50LWJnO1xyXG59XHJcblxyXG4ud3JhcHBlciAuYXNpZGUtY29udGFpbmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRhc2lkZS1iZztcclxufVxyXG5cclxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIENvbXBvbmVudDogdG9wLW5hdmJhclxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuLnRvcG5hdmJhciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2LXRvcC1iZztcclxuICAgIEBpbmNsdWRlIGdyYWRpZW50LXgoJG5hdi10b3AtYmctc3RhcnQsICRuYXYtdG9wLWJnLWVuZCk7XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChsZykge1xyXG4gICAgICAgIC5uYXZiYXItbmF2ID4gLm5hdi1pdGVtLnNob3cgPiAubmF2LWxpbmsge1xyXG4gICAgICAgICAgICAmLCAmOmhvdmVyLCAmOmZvY3VzIHtcclxuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTNweCAwIGRhcmtlbigkbmF2LXRvcC1iZywgNiUpIGluc2V0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5uYXZiYXItbmF2ID4gLm5hdi1pdGVtID4gLm5hdmJhci10ZXh0IHtcclxuICAgICAgICBjb2xvcjogJG5hdi10b3AtaXRlbTtcclxuICAgIH1cclxuXHJcbiAgICAubmF2YmFyLW5hdiA+IC5uYXYtaXRlbSA+IC5uYXYtbGluayxcclxuICAgIC5uYXZiYXItbmF2ID4gLm5hdi1pdGVtLnNob3cgPiAubmF2LWxpbmsge1xyXG4gICAgICAgIGNvbG9yOiAkbmF2LXRvcC1pdGVtO1xyXG4gICAgICAgICY6aG92ZXIsICY6Zm9jdXMge1xyXG4gICAgICAgICAgICBjb2xvcjogJG5hdi10b3AtaXRlbS1hY3RpdmU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5kcm9wZG93bi1pdGVtLmFjdGl2ZSwgLmRyb3Bkb3duLWl0ZW06YWN0aXZlIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2LXRvcC1iZztcclxuICAgIH1cclxufVxyXG5cclxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIENvbXBvbmVudDogc2lkZWJhclxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuLnNpZGViYXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHNpZGViYXItYmc7XHJcblxyXG4gICAgLm5hdi1oZWFkaW5nIHtcclxuICAgICAgICBjb2xvcjogJHNpZGViYXItaGVhZGluZy1jb2xvcjtcclxuICAgIH1cclxufVxyXG5cclxuLy8gSXRlbXNcclxuLnNpZGViYXItbmF2IHtcclxuICAgID4gbGkge1xyXG4gICAgICAgID4gYSwgPiAubmF2LWl0ZW0ge1xyXG4gICAgICAgICAgICBjb2xvcjogJHNpZGViYXItaXRlbS1jb2xvcjtcclxuXHJcbiAgICAgICAgICAgICY6Zm9jdXMsICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNpZGViYXItaXRlbS1zZWxlY3Rpb24tYmdjb2xvcjtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2lkZWJhci1pdGVtLXNlbGVjdGlvbi1jb2xvcjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gSXRlbSBpY29uXHJcbiAgICAgICAgICAgID4gZW0ge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICRzaWRlYmFyLWljb24tY29sb3I7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBBY3RpdmUgaXRlbSBzdGF0ZVxyXG4gICAgICAgICYuYWN0aXZlLCAmLm9wZW4ge1xyXG4gICAgICAgICAgICAmLCA+IGEsID4gLm5hdi1pdGVtLCAuc2lkZWJhci1uYXYge1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNpZGViYXItaXRlbS1zZWxlY3Rpb24tYmdjb2xvcjtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2lkZWJhci1pdGVtLXNlbGVjdGlvbi1jb2xvcjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgPiAubmF2LWl0ZW0gPiBlbSwgPiBhID4gZW0ge1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNpZGViYXItaXRlbS1zZWxlY3Rpb24tYmdjb2xvcjtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2lkZWJhci1pdGVtLXNlbGVjdGlvbi1jb2xvcjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuYWN0aXZlIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNpZGViYXItaXRlbS1zZWxlY3Rpb24tYmdjb2xvcjtcclxuICAgICAgICAgICAgY29sb3I6ICRzaWRlYmFyLWl0ZW0tY29sb3ItYWN0aXZlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG59XHJcblxyXG4uc2lkZWJhci1zdWJuYXYge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHNpZGViYXItYmc7XHJcblxyXG4gICAgPiAuc2lkZWJhci1zdWJuYXYtaGVhZGVyIHtcclxuICAgICAgICBjb2xvcjogJHNpZGViYXItaXRlbS1jb2xvcjtcclxuICAgIH1cclxuXHJcbiAgICA+IGxpIHtcclxuICAgICAgICA+IGEsID4gLm5hdi1pdGVtIHtcclxuICAgICAgICAgICAgY29sb3I6ICRzaWRlYmFyLWl0ZW0tY29sb3I7XHJcblxyXG4gICAgICAgICAgICAmOmZvY3VzLCAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzaWRlYmFyLWl0ZW0tc2VsZWN0aW9uLWJnY29sb3I7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNpZGViYXItaXRlbS1jb2xvci1hY3RpdmU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLmFjdGl2ZSB7XHJcbiAgICAgICAgICAgID4gYSwgPiAubmF2LWl0ZW0ge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICRzaWRlYmFyLWljb24tY29sb3ItYWN0aXZlO1xyXG5cclxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNpZGViYXItYnVsbGV0LWNvbG9yLWFjdGl2ZTtcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2lkZWJhci1idWxsZXQtY29sb3ItYWN0aXZlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxufVxyXG5cclxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIENvbXBvbmVudDogb2Zmc2lkZWJhclxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuLm9mZnNpZGViYXIge1xyXG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkb2Zmc2lkZWJhci1ib3JkZXItY29sb3I7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb2Zmc2lkZWJhci1iZztcclxuICAgIGNvbG9yOiAkb2Zmc2lkZWJhci1jb2xvcjtcclxufVxyXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogbGF5b3V0XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbmJvZHksIC53cmFwcGVyIC5zZWN0aW9uLWNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY3ZmE7XG59XG5cbi53cmFwcGVyIC5hc2lkZS1jb250YWluZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogdG9wLW5hdmJhclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udG9wbmF2YmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzg2QkMyNTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjODZCQzI1IDAlLCAjYTBkOTNiIDEwMCUpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLnRvcG5hdmJhciAubmF2YmFyLW5hdiA+IC5uYXYtaXRlbS5zaG93ID4gLm5hdi1saW5rLCAudG9wbmF2YmFyIC5uYXZiYXItbmF2ID4gLm5hdi1pdGVtLnNob3cgPiAubmF2LWxpbms6aG92ZXIsIC50b3BuYXZiYXIgLm5hdmJhci1uYXYgPiAubmF2LWl0ZW0uc2hvdyA+IC5uYXYtbGluazpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogMCAtM3B4IDAgIzc0YTIyMCBpbnNldDtcbiAgfVxufVxuLnRvcG5hdmJhciAubmF2YmFyLW5hdiA+IC5uYXYtaXRlbSA+IC5uYXZiYXItdGV4dCB7XG4gIGNvbG9yOiAjZmZmO1xufVxuLnRvcG5hdmJhciAubmF2YmFyLW5hdiA+IC5uYXYtaXRlbSA+IC5uYXYtbGluayxcbi50b3BuYXZiYXIgLm5hdmJhci1uYXYgPiAubmF2LWl0ZW0uc2hvdyA+IC5uYXYtbGluayB7XG4gIGNvbG9yOiAjZmZmO1xufVxuLnRvcG5hdmJhciAubmF2YmFyLW5hdiA+IC5uYXYtaXRlbSA+IC5uYXYtbGluazpob3ZlciwgLnRvcG5hdmJhciAubmF2YmFyLW5hdiA+IC5uYXYtaXRlbSA+IC5uYXYtbGluazpmb2N1cyxcbi50b3BuYXZiYXIgLm5hdmJhci1uYXYgPiAubmF2LWl0ZW0uc2hvdyA+IC5uYXYtbGluazpob3Zlcixcbi50b3BuYXZiYXIgLm5hdmJhci1uYXYgPiAubmF2LWl0ZW0uc2hvdyA+IC5uYXYtbGluazpmb2N1cyB7XG4gIGNvbG9yOiAjNDk2NzE0O1xufVxuLnRvcG5hdmJhciAuZHJvcGRvd24taXRlbS5hY3RpdmUsIC50b3BuYXZiYXIgLmRyb3Bkb3duLWl0ZW06YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzg2QkMyNTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IHNpZGViYXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnNpZGViYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLnNpZGViYXIgLm5hdi1oZWFkaW5nIHtcbiAgY29sb3I6ICM5MTlEQTg7XG59XG5cbi5zaWRlYmFyLW5hdiA+IGxpID4gYSwgLnNpZGViYXItbmF2ID4gbGkgPiAubmF2LWl0ZW0ge1xuICBjb2xvcjogIzAwMDtcbn1cbi5zaWRlYmFyLW5hdiA+IGxpID4gYTpmb2N1cywgLnNpZGViYXItbmF2ID4gbGkgPiBhOmhvdmVyLCAuc2lkZWJhci1uYXYgPiBsaSA+IC5uYXYtaXRlbTpmb2N1cywgLnNpZGViYXItbmF2ID4gbGkgPiAubmF2LWl0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjODZCQzI1O1xuICBjb2xvcjogI2ZmZjtcbn1cbi5zaWRlYmFyLW5hdiA+IGxpID4gYSA+IGVtLCAuc2lkZWJhci1uYXYgPiBsaSA+IC5uYXYtaXRlbSA+IGVtIHtcbiAgY29sb3I6IGluaGVyaXRzO1xufVxuLnNpZGViYXItbmF2ID4gbGkuYWN0aXZlLCAuc2lkZWJhci1uYXYgPiBsaS5hY3RpdmUgPiBhLCAuc2lkZWJhci1uYXYgPiBsaS5hY3RpdmUgPiAubmF2LWl0ZW0sIC5zaWRlYmFyLW5hdiA+IGxpLmFjdGl2ZSAuc2lkZWJhci1uYXYsIC5zaWRlYmFyLW5hdiA+IGxpLm9wZW4sIC5zaWRlYmFyLW5hdiA+IGxpLm9wZW4gPiBhLCAuc2lkZWJhci1uYXYgPiBsaS5vcGVuID4gLm5hdi1pdGVtLCAuc2lkZWJhci1uYXYgPiBsaS5vcGVuIC5zaWRlYmFyLW5hdiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4NkJDMjU7XG4gIGNvbG9yOiAjZmZmO1xufVxuLnNpZGViYXItbmF2ID4gbGkuYWN0aXZlID4gLm5hdi1pdGVtID4gZW0sIC5zaWRlYmFyLW5hdiA+IGxpLmFjdGl2ZSA+IGEgPiBlbSwgLnNpZGViYXItbmF2ID4gbGkub3BlbiA+IC5uYXYtaXRlbSA+IGVtLCAuc2lkZWJhci1uYXYgPiBsaS5vcGVuID4gYSA+IGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzg2QkMyNTtcbiAgY29sb3I6ICNmZmY7XG59XG4uc2lkZWJhci1uYXYgPiBsaS5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjODZCQzI1O1xuICBjb2xvcjogIzg2QkMyNTtcbn1cblxuLnNpZGViYXItc3VibmF2IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cbi5zaWRlYmFyLXN1Ym5hdiA+IC5zaWRlYmFyLXN1Ym5hdi1oZWFkZXIge1xuICBjb2xvcjogIzAwMDtcbn1cbi5zaWRlYmFyLXN1Ym5hdiA+IGxpID4gYSwgLnNpZGViYXItc3VibmF2ID4gbGkgPiAubmF2LWl0ZW0ge1xuICBjb2xvcjogIzAwMDtcbn1cbi5zaWRlYmFyLXN1Ym5hdiA+IGxpID4gYTpmb2N1cywgLnNpZGViYXItc3VibmF2ID4gbGkgPiBhOmhvdmVyLCAuc2lkZWJhci1zdWJuYXYgPiBsaSA+IC5uYXYtaXRlbTpmb2N1cywgLnNpZGViYXItc3VibmF2ID4gbGkgPiAubmF2LWl0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjODZCQzI1O1xuICBjb2xvcjogIzg2QkMyNTtcbn1cbi5zaWRlYmFyLXN1Ym5hdiA+IGxpLmFjdGl2ZSA+IGEsIC5zaWRlYmFyLXN1Ym5hdiA+IGxpLmFjdGl2ZSA+IC5uYXYtaXRlbSB7XG4gIGNvbG9yOiAjODZCQzI1O1xufVxuLnNpZGViYXItc3VibmF2ID4gbGkuYWN0aXZlID4gYTphZnRlciwgLnNpZGViYXItc3VibmF2ID4gbGkuYWN0aXZlID4gLm5hdi1pdGVtOmFmdGVyIHtcbiAgYm9yZGVyLWNvbG9yOiAjODZCQzI1O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjODZCQzI1O1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogb2Zmc2lkZWJhclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4ub2Zmc2lkZWJhciB7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgZ3JleXNjYWxlKCNjY2NjY2MpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBjb2xvcjogIzY1NjU2NTtcbn0iLCJcclxuLy8gQ3V0b21zIEdyYXkgY29sb3JzIGZvciB0aGVtZVxyXG4kZ3JheS1kYXJrZXI6ICAgICAgICAgICAjMjMyNzM1O1xyXG4kZ3JheS1kYXJrOiAgICAgICAgICAgICAjM2EzZjUxO1xyXG4kZ3JheTogICAgICAgICAgICAgICAgICAjZGRlNmU5O1xyXG4kZ3JheS1saWdodDogICAgICAgICAgICAjZTRlYWVjO1xyXG4kZ3JheS1saWdodGVyOiAgICAgICAgICAjZWRmMWYyO1xyXG5cclxuLy8gQ3VzdG9tIGJyYW5kIGNvbG9ycyBmb3IgdGhlbWVcclxuJGludmVyc2U6ICAgICAgICAgICAgICAgIzEzMWUyNjtcclxuJHB1cnBsZTogICAgICAgICAgICAgICAgIzcyNjZiYTtcclxuJHBpbms6ICAgICAgICAgICAgICAgICAgI2Y1MzJlNTtcclxuJHllbGxvdzogICAgICAgICAgICAgICAgI2ZhZDczMjtcclxuJGdyZWVuOiAgICAgICAgICAgICAgICAgIzMxQjQ0QTtcclxuXHJcbiRwcmltYXJ5OiAgICAgICAgICAgICAgICMwMEFCRTc7XHJcbiRzZWNvbmRhcnk6ICAgICAgICAgICAgICNmZmY7XHJcbiRzdWNjZXNzOiAgICAgICAgICAgICAgICMyN2MyNGM7XHJcbiRpbmZvOiAgICAgICAgICAgICAgICAgICM4NkJDMjUgIDtcclxuJHdhcm5pbmc6ICAgICAgICAgICAgICAgI2ZmOTAyYjtcclxuJGRhbmdlcjogICAgICAgICAgICAgICAgI2YwNTA1MDtcclxuJGRhcms6ICAgICAgICAgICAgICAgICAgIzNhM2Y1MTtcclxuXHJcbi8vIEN1c3RvbSBjb2xvciB2YXJpYW50c1xyXG4kYW1vdW50T2ZMaWdodDogMTAlO1xyXG5cclxuJHByaW1hcnktbGlnaHQ6ICAgICAgICAgbGlnaHRlbigkcHJpbWFyeSwgJGFtb3VudE9mTGlnaHQpO1xyXG4kc3VjY2Vzcy1saWdodDogICAgICAgICBsaWdodGVuKCRzdWNjZXNzLCAkYW1vdW50T2ZMaWdodCk7XHJcbiRpbmZvLWxpZ2h0OiAgICAgICAgICAgIGxpZ2h0ZW4oJGluZm8sICRhbW91bnRPZkxpZ2h0KTtcclxuJHdhcm5pbmctbGlnaHQ6ICAgICAgICAgbGlnaHRlbigkd2FybmluZywgJGFtb3VudE9mTGlnaHQpO1xyXG4kZGFuZ2VyLWxpZ2h0OiAgICAgICAgICBsaWdodGVuKCRkYW5nZXIsICRhbW91bnRPZkxpZ2h0KTtcclxuJGludmVyc2UtbGlnaHQ6ICAgICAgICAgbGlnaHRlbigkaW52ZXJzZSwgJGFtb3VudE9mTGlnaHQpO1xyXG4kZ3JlZW4tbGlnaHQ6ICAgICAgICAgICBsaWdodGVuKCRncmVlbiwgJGFtb3VudE9mTGlnaHQpO1xyXG4kcGluay1saWdodDogICAgICAgICAgICBsaWdodGVuKCRwaW5rLCAkYW1vdW50T2ZMaWdodCk7XHJcbiRwdXJwbGUtbGlnaHQ6ICAgICAgICAgIGxpZ2h0ZW4oJHB1cnBsZSwgJGFtb3VudE9mTGlnaHQpO1xyXG4keWVsbG93LWxpZ2h0OiAgICAgICAgICBsaWdodGVuKCR5ZWxsb3csICRhbW91bnRPZkxpZ2h0KTtcclxuJHByaW1hcnktZGFyazogICAgICAgICAgZGFya2VuKCRwcmltYXJ5LCAkYW1vdW50T2ZMaWdodCk7XHJcbiRzdWNjZXNzLWRhcms6ICAgICAgICAgIGRhcmtlbigkc3VjY2VzcywgJGFtb3VudE9mTGlnaHQpO1xyXG4kaW5mby1kYXJrOiAgICAgICAgICAgICBkYXJrZW4oJGluZm8sICRhbW91bnRPZkxpZ2h0KTtcclxuJHdhcm5pbmctZGFyazogICAgICAgICAgZGFya2VuKCR3YXJuaW5nLCAkYW1vdW50T2ZMaWdodCk7XHJcbiRkYW5nZXItZGFyazogICAgICAgICAgIGRhcmtlbigkZGFuZ2VyLCAkYW1vdW50T2ZMaWdodCk7XHJcbiRpbnZlcnNlLWRhcms6ICAgICAgICAgIGRhcmtlbigkaW52ZXJzZSwgJGFtb3VudE9mTGlnaHQpO1xyXG4kZ3JlZW4tZGFyazogICAgICAgICAgICBkYXJrZW4oJGdyZWVuLCAkYW1vdW50T2ZMaWdodCk7XHJcbiRwaW5rLWRhcms6ICAgICAgICAgICAgIGRhcmtlbigkcGluaywgJGFtb3VudE9mTGlnaHQpO1xyXG4kcHVycGxlLWRhcms6ICAgICAgICAgICBkYXJrZW4oJHB1cnBsZSwgJGFtb3VudE9mTGlnaHQpO1xyXG4keWVsbG93LWRhcms6ICAgICAgICAgICBkYXJrZW4oJHllbGxvdywgJGFtb3VudE9mTGlnaHQpO1xyXG5cclxuLy8gVGhlbWUgdmFyaWFibGVzXHJcblxyXG4vLyB1c2VkIGZvciBzaWRlYmFycyBhbmQgY29udGVudCBzcGFjaW5nXHJcbiRuYXZiYXItaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgNTVweDtcclxuXHJcbi8vIEJ1dHRvbiBzZWNvbmRhcnkgcmVkZWZpbml0aW9uIHN0eWxlIGZvciB0aGVtZVxyXG4kYnRuLXNlY29uZGFyeS1jb2xvcjogICAgICAgICAgICAgICMzMzM7XHJcbiRidG4tc2Vjb25kYXJ5LWJnOiAgICAgICAgICAgICAgICAgI2ZmZjtcclxuJGJ0bi1zZWNvbmRhcnktYm9yZGVyOiAgICAgICAgICAgICAjZWFlYWVhO1xyXG5cclxuLy8gVG9wIEJvcmRlciBjb2xvciBmb3IgY3VzdG9tIGRlZmF1bHQgY2FyZHMgKC5jYXJkLWRlZmF1bHQpXHJcbiRjYXJkLWRlZmF1bHQtYm9yZGVyLWNvbG9yOiAgICAgICAgI2NmZGJlMjtcclxuXHJcblxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuLy8gVXRpbGl0aWVzIHZhcmlhYmxlc1xyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiR0ZXh0LWFscGhhOiAgICAgICAgICAgIHJnYmEoMjU1LDI1NSwyNTUsLjUpO1xyXG4kdGV4dC1hbHBoYS1pbnZlcnNlOiAgICByZ2JhKDAsMCwwLC41KTtcclxuXHJcbiRmb250LXNpemUtYmFzZTogICAgICAgIDFyZW07XHJcbiR0ZXh0LXNtOiAgICAgICAgICAgICAgICRmb250LXNpemUtYmFzZSAqIDAuNzQzNzU7XHJcbiR0ZXh0LW1kOiAgICAgICAgICAgICAgICRmb250LXNpemUtYmFzZSAqIDEuNjYyNTtcclxuJHRleHQtbGc6ICAgICAgICAgICAgICAgJGZvbnQtc2l6ZS1iYXNlICogMi42MjU7XHJcblxyXG4kYm9yZGVyLWNvbG9yOiAgICAgICAgICByZ2JhKDAsMCwwLC4xMik7XHJcblxyXG4kd2QteHhzOiAgICAgICAgICAgICAgICA2MHB4O1xyXG4kd2QteHM6ICAgICAgICAgICAgICAgICA5MHB4O1xyXG4kd2Qtc206ICAgICAgICAgICAgICAgICAxNTBweDtcclxuJHdkLXNkOiAgICAgICAgICAgICAgICAgMjAwcHg7IC8vIHNkID09IHN0YW5kYXJkXHJcbiR3ZC1tZDogICAgICAgICAgICAgICAgIDI0MHB4O1xyXG4kd2QtbGc6ICAgICAgICAgICAgICAgICAyODBweDtcclxuJHdkLXhsOiAgICAgICAgICAgICAgICAgMzIwcHg7XHJcbiR3ZC14eGw6ICAgICAgICAgICAgICAgIDM2MHB4O1xyXG4kd2Qtd2lkZTogICAgICAgICAgICAgICAxMDAlO1xyXG4kd2QtYXV0bzogICAgICAgICAgICAgICBhdXRvO1xyXG4kd2QtemVybzogICAgICAgICAgICAgICAwO1xyXG5cclxuXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4vLyBCb290c3RyYXAgNCBWYXJpYWJsZXMgT3ZlcnJpZGVcclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4vLyBDb2xvciBzeXN0ZW1cclxuXHJcbiRjb2xvcnM6IChcclxuICAgIFwicHVycGxlXCI6ICAgICAkcHVycGxlLFxyXG4gICAgXCJwaW5rXCI6ICAgICAgICRwaW5rLFxyXG4gICAgXCJ5ZWxsb3dcIjogICAgICR5ZWxsb3csXHJcbiAgICBcImdyZWVuXCI6ICAgICAgJGdyZWVuLFxyXG4gICAgXCJwcmltYXJ5XCI6ICAgICRwcmltYXJ5LFxyXG4gICAgXCJzdWNjZXNzXCI6ICAgICRzdWNjZXNzLFxyXG4gICAgXCJpbmZvXCI6ICAgICAgICRpbmZvLFxyXG4gICAgXCJ3YXJuaW5nXCI6ICAgICR3YXJuaW5nLFxyXG4gICAgXCJkYW5nZXJcIjogICAgICRkYW5nZXIsXHJcbiAgICAnaW52ZXJzZSc6ICAgICRpbnZlcnNlLFxyXG5cclxuICAgICdwcmltYXJ5LWxpZ2h0JzogJHByaW1hcnktbGlnaHQsXHJcbiAgICAncHJpbWFyeS1kYXJrJzogICRwcmltYXJ5LWRhcmssXHJcbiAgICAnc3VjY2Vzcy1saWdodCc6ICRzdWNjZXNzLWxpZ2h0LFxyXG4gICAgJ3N1Y2Nlc3MtZGFyayc6ICAkc3VjY2Vzcy1kYXJrLFxyXG4gICAgJ2luZm8tbGlnaHQnOiAgICAkaW5mby1saWdodCxcclxuICAgICdpbmZvLWRhcmsnOiAgICAgJGluZm8tZGFyayxcclxuICAgICd3YXJuaW5nLWxpZ2h0JzogJHdhcm5pbmctbGlnaHQsXHJcbiAgICAnd2FybmluZy1kYXJrJzogICR3YXJuaW5nLWRhcmssXHJcbiAgICAnZGFuZ2VyLWxpZ2h0JzogICRkYW5nZXItbGlnaHQsXHJcbiAgICAnZGFuZ2VyLWRhcmsnOiAgICRkYW5nZXItZGFyayxcclxuICAgICdncmVlbi1saWdodCc6ICAgJGdyZWVuLWxpZ2h0LFxyXG4gICAgJ2dyZWVuLWRhcmsnOiAgICAkZ3JlZW4tZGFyayxcclxuICAgICdwaW5rLWxpZ2h0JzogICAgJHBpbmstbGlnaHQsXHJcbiAgICAncGluay1kYXJrJzogICAgICRwaW5rLWRhcmssXHJcbiAgICAncHVycGxlLWxpZ2h0JzogICRwdXJwbGUtbGlnaHQsXHJcbiAgICAncHVycGxlLWRhcmsnOiAgICRwdXJwbGUtZGFyayxcclxuICAgICdpbnZlcnNlLWxpZ2h0JzogJGludmVyc2UtbGlnaHQsXHJcbiAgICAnaW52ZXJzZS1kYXJrJzogICRpbnZlcnNlLWRhcmssXHJcbiAgICAneWVsbG93LWxpZ2h0JzogICR5ZWxsb3ctbGlnaHQsXHJcbiAgICAneWVsbG93LWRhcmsnOiAgICR5ZWxsb3ctZGFyayxcclxuKTtcclxuXHJcblxyXG4kdGhlbWUtY29sb3JzOiAoXHJcbiAgXCJwcmltYXJ5XCI6ICAgICRwcmltYXJ5LFxyXG4gIFwic2Vjb25kYXJ5XCI6ICAkc2Vjb25kYXJ5LFxyXG4gIFwic3VjY2Vzc1wiOiAgICAkc3VjY2VzcyxcclxuICBcImluZm9cIjogICAgICAgJGluZm8sXHJcbiAgXCJ3YXJuaW5nXCI6ICAgICR3YXJuaW5nLFxyXG4gIFwiZGFuZ2VyXCI6ICAgICAkZGFuZ2VyXHJcbik7XHJcblxyXG4vLyBCb2R5XHJcblxyXG4kYm9keS1iZzogICAgICAgICAgICAgICAgICAgI2Y1ZjdmYTtcclxuJGJvZHktY29sb3I6ICAgICAgICAgICAgICAgICM2NTY1NjU7XHJcblxyXG4kYm9yZGVyLXJhZGl1czogICAgICAgICAgICAgICAuMjVyZW07XHJcbiRib3JkZXItcmFkaXVzLWxnOiAgICAgICAgICAgIC4zNzVyZW07XHJcblxyXG4kbGluZS1oZWlnaHQtYmFzZTogICAgICAgICAgICAxLjUyODU3MTQyOTtcclxuXHJcbiRoZWFkaW5ncy1saW5lLWhlaWdodDogICAgICAgIDEuMTtcclxuXHJcbiR0ZXh0LW11dGVkOiAgICAgICAgICAgICAgICAgICM5MDlGQTc7XHJcblxyXG4vLyBUYWJsZXNcclxuXHJcbiR0YWJsZS1hY2NlbnQtYmc6ICAgICAgICAgICAgICNmYWZiZmM7XHJcbiR0YWJsZS1ob3Zlci1iZzogICAgICAgICAgICAgICNmYWZiZmM7XHJcblxyXG4kdGFibGUtYm9yZGVyLWNvbG9yOiAgICAgICAgICAjZWVlO1xyXG5cclxuLy8gQnV0dG9ucyArIEZvcm1zXHJcblxyXG4kaW5wdXQtYnRuLXBhZGRpbmcteTogICAgICAgICAuMzc1cmVtO1xyXG4kaW5wdXQtYnRuLXBhZGRpbmcteDogICAgICAgICAxcmVtO1xyXG5cclxuJGlucHV0LWJ0bi1wYWRkaW5nLXktc206ICAgICAgLjMxMjVyZW07XHJcbiRpbnB1dC1idG4tcGFkZGluZy14LXNtOiAgICAgIC42MjVyZW07XHJcblxyXG4kaW5wdXQtYnRuLXBhZGRpbmcteS1sZzogICAgICAuNjI1cmVtO1xyXG4kaW5wdXQtYnRuLXBhZGRpbmcteC1sZzogICAgICAxLjI1cmVtO1xyXG5cclxuJGlucHV0LWhlaWdodDogICAgICAgICAgICAgICAgMi4xODc1cmVtOyAvLyAzNXB4XHJcblxyXG4vLyBGb3Jtc1xyXG5cclxuJGlucHV0LWRpc2FibGVkLWJnOiAgICAgICAgICAgICAgICAgICAgICRncmF5LWxpZ2h0ZXI7XHJcbiRpbnB1dC1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAkZ3JheTtcclxuJGlucHV0LWZvY3VzLWJvcmRlci1jb2xvcjogICAgICAgICAgICAgICM2NmFmZTk7XHJcbiRpbnB1dC1wbGFjZWhvbGRlci1jb2xvcjogICAgICAgICAgICAgICAjYjdiYWM5O1xyXG5cclxuJGZvcm0tZmVlZGJhY2staWNvbi12YWxpZDogICAgICAgICAgICAgIG5vbmU7XHJcbiRmb3JtLWZlZWRiYWNrLWljb24taW52YWxpZDogICAgICAgICAgICBub25lO1xyXG5cclxuJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1hY3RpdmUtYmc6ICAgIGxpZ2h0ZW4oJHByaW1hcnksIDI1JSk7XHJcblxyXG4vLyBEcm9wZG93bnNcclxuXHJcbiRkcm9wZG93bi1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICNlMWUxZTE7XHJcblxyXG4vLyBOYXZzXHJcblxyXG4kbmF2LXRhYnMtbGluay1hY3RpdmUtYmc6ICAgICAgICAgICAjZmZmO1xyXG5cclxuLy8gSnVtYm90cm9uXHJcblxyXG4kanVtYm90cm9uLWJnOiAgICAgICAgICAgICAgICAgICAgICAjZmNmY2ZjO1xyXG5cclxuLy8gTGlzdCBncm91cFxyXG5cclxuJGxpc3QtZ3JvdXAtYm9yZGVyLWNvbG9yOiAgICAgICAgICAgI2U0ZWFlYztcclxuXHJcbi8vIEltYWdlIHRodW1ibmFpbHNcclxuXHJcbiR0aHVtYm5haWwtcGFkZGluZzogICAgICAgICAgICAgICAgIC4xMjVyZW07XHJcblxyXG5cclxuLy8gQnJlYWRjcnVtYnNcclxuXHJcbiRicmVhZGNydW1iLWJnOiAgICAgICAgICAgICAgICAgICAgICNmYWZhZmE7XHJcbiRicmVhZGNydW1iLWRpdmlkZXItY29sb3I6ICAgICAgICAgICNjMWMyYzM7XHJcbiRicmVhZGNydW1iLWFjdGl2ZS1jb2xvcjogICAgICAgICAgICRib2R5LWNvbG9yO1xyXG4iLCIvLyBHcmFkaWVudHNcclxuXHJcbkBtaXhpbiBncmFkaWVudC1iZygkY29sb3IpIHtcclxuICBAaWYgJGVuYWJsZS1ncmFkaWVudHMge1xyXG4gICAgYmFja2dyb3VuZDogJGNvbG9yIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIG1peCgkYm9keS1iZywgJGNvbG9yLCAxNSUpLCAkY29sb3IpIHJlcGVhdC14O1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xyXG4gIH1cclxufVxyXG5cclxuLy8gSG9yaXpvbnRhbCBncmFkaWVudCwgZnJvbSBsZWZ0IHRvIHJpZ2h0XHJcbi8vXHJcbi8vIENyZWF0ZXMgdHdvIGNvbG9yIHN0b3BzLCBzdGFydCBhbmQgZW5kLCBieSBzcGVjaWZ5aW5nIGEgY29sb3IgYW5kIHBvc2l0aW9uIGZvciBlYWNoIGNvbG9yIHN0b3AuXHJcbkBtaXhpbiBncmFkaWVudC14KCRzdGFydC1jb2xvcjogJGdyYXktNzAwLCAkZW5kLWNvbG9yOiAkZ3JheS04MDAsICRzdGFydC1wZXJjZW50OiAwJSwgJGVuZC1wZXJjZW50OiAxMDAlKSB7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAkc3RhcnQtY29sb3IgJHN0YXJ0LXBlcmNlbnQsICRlbmQtY29sb3IgJGVuZC1wZXJjZW50KTtcclxuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XHJcbn1cclxuXHJcbi8vIFZlcnRpY2FsIGdyYWRpZW50LCBmcm9tIHRvcCB0byBib3R0b21cclxuLy9cclxuLy8gQ3JlYXRlcyB0d28gY29sb3Igc3RvcHMsIHN0YXJ0IGFuZCBlbmQsIGJ5IHNwZWNpZnlpbmcgYSBjb2xvciBhbmQgcG9zaXRpb24gZm9yIGVhY2ggY29sb3Igc3RvcC5cclxuQG1peGluIGdyYWRpZW50LXkoJHN0YXJ0LWNvbG9yOiAkZ3JheS03MDAsICRlbmQtY29sb3I6ICRncmF5LTgwMCwgJHN0YXJ0LXBlcmNlbnQ6IDAlLCAkZW5kLXBlcmNlbnQ6IDEwMCUpIHtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAkc3RhcnQtY29sb3IgJHN0YXJ0LXBlcmNlbnQsICRlbmQtY29sb3IgJGVuZC1wZXJjZW50KTtcclxuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XHJcbn1cclxuXHJcbkBtaXhpbiBncmFkaWVudC1kaXJlY3Rpb25hbCgkc3RhcnQtY29sb3I6ICRncmF5LTcwMCwgJGVuZC1jb2xvcjogJGdyYXktODAwLCAkZGVnOiA0NWRlZykge1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgkZGVnLCAkc3RhcnQtY29sb3IsICRlbmQtY29sb3IpO1xyXG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcclxufVxyXG5AbWl4aW4gZ3JhZGllbnQteC10aHJlZS1jb2xvcnMoJHN0YXJ0LWNvbG9yOiAkYmx1ZSwgJG1pZC1jb2xvcjogJHB1cnBsZSwgJGNvbG9yLXN0b3A6IDUwJSwgJGVuZC1jb2xvcjogJHJlZCkge1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJHN0YXJ0LWNvbG9yLCAkbWlkLWNvbG9yICRjb2xvci1zdG9wLCAkZW5kLWNvbG9yKTtcclxuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG59XHJcbkBtaXhpbiBncmFkaWVudC15LXRocmVlLWNvbG9ycygkc3RhcnQtY29sb3I6ICRibHVlLCAkbWlkLWNvbG9yOiAkcHVycGxlLCAkY29sb3Itc3RvcDogNTAlLCAkZW5kLWNvbG9yOiAkcmVkKSB7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KCRzdGFydC1jb2xvciwgJG1pZC1jb2xvciAkY29sb3Itc3RvcCwgJGVuZC1jb2xvcik7XHJcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxufVxyXG5AbWl4aW4gZ3JhZGllbnQtcmFkaWFsKCRpbm5lci1jb2xvcjogJGdyYXktNzAwLCAkb3V0ZXItY29sb3I6ICRncmF5LTgwMCkge1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUsICRpbm5lci1jb2xvciwgJG91dGVyLWNvbG9yKTtcclxuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG59XHJcbkBtaXhpbiBncmFkaWVudC1zdHJpcGVkKCRjb2xvcjogcmdiYSgkd2hpdGUsIC4xNSksICRhbmdsZTogNDVkZWcpIHtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoJGFuZ2xlLCAkY29sb3IgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgJGNvbG9yIDUwJSwgJGNvbG9yIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XHJcbn1cclxuIiwiLy8gQnJlYWtwb2ludCB2aWV3cG9ydCBzaXplcyBhbmQgbWVkaWEgcXVlcmllcy5cclxuLy9cclxuLy8gQnJlYWtwb2ludHMgYXJlIGRlZmluZWQgYXMgYSBtYXAgb2YgKG5hbWU6IG1pbmltdW0gd2lkdGgpLCBvcmRlciBmcm9tIHNtYWxsIHRvIGxhcmdlOlxyXG4vL1xyXG4vLyAgICAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpXHJcbi8vXHJcbi8vIFRoZSBtYXAgZGVmaW5lZCBpbiB0aGUgYCRncmlkLWJyZWFrcG9pbnRzYCBnbG9iYWwgdmFyaWFibGUgaXMgdXNlZCBhcyB0aGUgYCRicmVha3BvaW50c2AgYXJndW1lbnQgYnkgZGVmYXVsdC5cclxuXHJcbi8vIE5hbWUgb2YgdGhlIG5leHQgYnJlYWtwb2ludCwgb3IgbnVsbCBmb3IgdGhlIGxhc3QgYnJlYWtwb2ludC5cclxuLy9cclxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtKVxyXG4vLyAgICBtZFxyXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXHJcbi8vICAgIG1kXHJcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgJGJyZWFrcG9pbnQtbmFtZXM6ICh4cyBzbSBtZCBsZyB4bCkpXHJcbi8vICAgIG1kXHJcbkBmdW5jdGlvbiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMsICRicmVha3BvaW50LW5hbWVzOiBtYXAta2V5cygkYnJlYWtwb2ludHMpKSB7XHJcbiAgJG46IGluZGV4KCRicmVha3BvaW50LW5hbWVzLCAkbmFtZSk7XHJcbiAgQHJldHVybiBpZigkbiAhPSBudWxsIGFuZCAkbiA8IGxlbmd0aCgkYnJlYWtwb2ludC1uYW1lcyksIG50aCgkYnJlYWtwb2ludC1uYW1lcywgJG4gKyAxKSwgbnVsbCk7XHJcbn1cclxuXHJcbi8vIE1pbmltdW0gYnJlYWtwb2ludCB3aWR0aC4gTnVsbCBmb3IgdGhlIHNtYWxsZXN0IChmaXJzdCkgYnJlYWtwb2ludC5cclxuLy9cclxuLy8gICAgPj4gYnJlYWtwb2ludC1taW4oc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXHJcbi8vICAgIDU3NnB4XHJcbkBmdW5jdGlvbiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xyXG4gICRtaW46IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XHJcbiAgQHJldHVybiBpZigkbWluICE9IDAsICRtaW4sIG51bGwpO1xyXG59XHJcblxyXG4vLyBNYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguIE51bGwgZm9yIHRoZSBsYXJnZXN0IChsYXN0KSBicmVha3BvaW50LlxyXG4vLyBUaGUgbWF4aW11bSB2YWx1ZSBpcyBjYWxjdWxhdGVkIGFzIHRoZSBtaW5pbXVtIG9mIHRoZSBuZXh0IG9uZSBsZXNzIDAuMDJweFxyXG4vLyB0byB3b3JrIGFyb3VuZCB0aGUgbGltaXRhdGlvbnMgb2YgYG1pbi1gIGFuZCBgbWF4LWAgcHJlZml4ZXMgYW5kIHZpZXdwb3J0cyB3aXRoIGZyYWN0aW9uYWwgd2lkdGhzLlxyXG4vLyBTZWUgaHR0cHM6Ly93d3cudzMub3JnL1RSL21lZGlhcXVlcmllcy00LyNtcS1taW4tbWF4XHJcbi8vIFVzZXMgMC4wMnB4IHJhdGhlciB0aGFuIDAuMDFweCB0byB3b3JrIGFyb3VuZCBhIGN1cnJlbnQgcm91bmRpbmcgYnVnIGluIFNhZmFyaS5cclxuLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzgyNjFcclxuLy9cclxuLy8gICAgPj4gYnJlYWtwb2ludC1tYXgoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXHJcbi8vICAgIDc2Ny45OHB4XHJcbkBmdW5jdGlvbiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xyXG4gICRuZXh0OiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50cyk7XHJcbiAgQHJldHVybiBpZigkbmV4dCwgYnJlYWtwb2ludC1taW4oJG5leHQsICRicmVha3BvaW50cykgLSAuMDIsIG51bGwpO1xyXG59XHJcblxyXG4vLyBSZXR1cm5zIGEgYmxhbmsgc3RyaW5nIGlmIHNtYWxsZXN0IGJyZWFrcG9pbnQsIG90aGVyd2lzZSByZXR1cm5zIHRoZSBuYW1lIHdpdGggYSBkYXNoIGluIGZyb250LlxyXG4vLyBVc2VmdWwgZm9yIG1ha2luZyByZXNwb25zaXZlIHV0aWxpdGllcy5cclxuLy9cclxuLy8gICAgPj4gYnJlYWtwb2ludC1pbmZpeCh4cywgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcclxuLy8gICAgXCJcIiAgKFJldHVybnMgYSBibGFuayBzdHJpbmcpXHJcbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXHJcbi8vICAgIFwiLXNtXCJcclxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtaW5maXgoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcclxuICBAcmV0dXJuIGlmKGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpID09IG51bGwsIFwiXCIsIFwiLSN7JG5hbWV9XCIpO1xyXG59XHJcblxyXG4vLyBNZWRpYSBvZiBhdCBsZWFzdCB0aGUgbWluaW11bSBicmVha3BvaW50IHdpZHRoLiBObyBxdWVyeSBmb3IgdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQuXHJcbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCBhbmQgd2lkZXIuXHJcbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LXVwKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XHJcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XHJcbiAgQGlmICRtaW4ge1xyXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAY29udGVudDtcclxuICB9XHJcbn1cclxuXHJcbi8vIE1lZGlhIG9mIGF0IG1vc3QgdGhlIG1heGltdW0gYnJlYWtwb2ludCB3aWR0aC4gTm8gcXVlcnkgZm9yIHRoZSBsYXJnZXN0IGJyZWFrcG9pbnQuXHJcbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCBhbmQgbmFycm93ZXIuXHJcbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWRvd24oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcclxuICAkbWF4OiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcclxuICBAaWYgJG1heCB7XHJcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG1heCkge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9IEBlbHNlIHtcclxuICAgIEBjb250ZW50O1xyXG4gIH1cclxufVxyXG5cclxuLy8gTWVkaWEgdGhhdCBzcGFucyBtdWx0aXBsZSBicmVha3BvaW50IHdpZHRocy5cclxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IGJldHdlZW4gdGhlIG1pbiBhbmQgbWF4IGJyZWFrcG9pbnRzXHJcbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWJldHdlZW4oJGxvd2VyLCAkdXBwZXIsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcclxuICAkbWluOiBicmVha3BvaW50LW1pbigkbG93ZXIsICRicmVha3BvaW50cyk7XHJcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJHVwcGVyLCAkYnJlYWtwb2ludHMpO1xyXG5cclxuICBAaWYgJG1pbiAhPSBudWxsIGFuZCAkbWF4ICE9IG51bGwge1xyXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGxvd2VyLCAkYnJlYWtwb2ludHMpIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSBpZiAkbWluID09IG51bGwge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCR1cHBlciwgJGJyZWFrcG9pbnRzKSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8gTWVkaWEgYmV0d2VlbiB0aGUgYnJlYWtwb2ludCdzIG1pbmltdW0gYW5kIG1heGltdW0gd2lkdGhzLlxyXG4vLyBObyBtaW5pbXVtIGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludCwgYW5kIG5vIG1heGltdW0gZm9yIHRoZSBsYXJnZXN0IG9uZS5cclxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IG9ubHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQsIG5vdCB2aWV3cG9ydHMgYW55IHdpZGVyIG9yIG5hcnJvd2VyLlxyXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1vbmx5KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XHJcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XHJcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50cyk7XHJcblxyXG4gIEBpZiAkbWluICE9IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XHJcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikgYW5kIChtYXgtd2lkdGg6ICRtYXgpIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSBpZiAkbWF4ID09IG51bGwge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzKSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgJG1pbiA9PSBudWxsIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmFtZSwgJGJyZWFrcG9pbnRzKSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0= */\";","export default \"/* ========================================================================\\n Component: layout\\n ========================================================================== */\\nbody, .wrapper .section-container {\\n background-color: #f5f7fa;\\n}\\n.wrapper .aside-container {\\n background-color: #fff;\\n}\\n/* ========================================================================\\n Component: top-navbar\\n ========================================================================== */\\n.topnavbar {\\n background-color: #31B44A;\\n background-image: linear-gradient(to right, #31B44A 0%, #4ace63 100%);\\n background-repeat: repeat-x;\\n}\\n@media (min-width: 992px) {\\n .topnavbar .navbar-nav > .nav-item.show > .nav-link, .topnavbar .navbar-nav > .nav-item.show > .nav-link:hover, .topnavbar .navbar-nav > .nav-item.show > .nav-link:focus {\\n box-shadow: 0 -3px 0 #2a9c40 inset;\\n }\\n}\\n.topnavbar .navbar-nav > .nav-item > .navbar-text {\\n color: #fff;\\n}\\n.topnavbar .navbar-nav > .nav-item > .nav-link,\\n.topnavbar .navbar-nav > .nav-item.show > .nav-link {\\n color: #fff;\\n}\\n.topnavbar .navbar-nav > .nav-item > .nav-link:hover, .topnavbar .navbar-nav > .nav-item > .nav-link:focus,\\n.topnavbar .navbar-nav > .nav-item.show > .nav-link:hover,\\n.topnavbar .navbar-nav > .nav-item.show > .nav-link:focus {\\n color: #1b6429;\\n}\\n.topnavbar .dropdown-item.active, .topnavbar .dropdown-item:active {\\n background-color: #31B44A;\\n}\\n/* ========================================================================\\n Component: sidebar\\n ========================================================================== */\\n.sidebar {\\n background-color: #fff;\\n}\\n.sidebar .nav-heading {\\n color: #919DA8;\\n}\\n.sidebar-nav > li > a, .sidebar-nav > li > .nav-item {\\n color: #515253;\\n}\\n.sidebar-nav > li > a:focus, .sidebar-nav > li > a:hover, .sidebar-nav > li > .nav-item:focus, .sidebar-nav > li > .nav-item:hover {\\n color: #31B44A;\\n}\\n.sidebar-nav > li > a > em, .sidebar-nav > li > .nav-item > em {\\n color: inherits;\\n}\\n.sidebar-nav > li.active, .sidebar-nav > li.active > a, .sidebar-nav > li.active > .nav-item, .sidebar-nav > li.active .sidebar-nav, .sidebar-nav > li.open, .sidebar-nav > li.open > a, .sidebar-nav > li.open > .nav-item, .sidebar-nav > li.open .sidebar-nav {\\n background-color: #fcfcfc;\\n color: #31B44A;\\n}\\n.sidebar-nav > li.active > .nav-item > em, .sidebar-nav > li.active > a > em, .sidebar-nav > li.open > .nav-item > em, .sidebar-nav > li.open > a > em {\\n color: #31B44A;\\n}\\n.sidebar-nav > li.active {\\n border-left-color: #31B44A;\\n}\\n.sidebar-subnav {\\n background-color: #fff;\\n}\\n.sidebar-subnav > .sidebar-subnav-header {\\n color: #515253;\\n}\\n.sidebar-subnav > li > a, .sidebar-subnav > li > .nav-item {\\n color: #515253;\\n}\\n.sidebar-subnav > li > a:focus, .sidebar-subnav > li > a:hover, .sidebar-subnav > li > .nav-item:focus, .sidebar-subnav > li > .nav-item:hover {\\n color: #31B44A;\\n}\\n.sidebar-subnav > li.active > a, .sidebar-subnav > li.active > .nav-item {\\n color: #31B44A;\\n}\\n.sidebar-subnav > li.active > a:after, .sidebar-subnav > li.active > .nav-item:after {\\n border-color: #31B44A;\\n background-color: #31B44A;\\n}\\n/* ========================================================================\\n Component: offsidebar\\n ========================================================================== */\\n.offsidebar {\\n border-left: 1px solid greyscale(#cccccc);\\n background-color: #fff;\\n color: #656565;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL3N0eWxlcy90aGVtZXMvRDpcXEluZGlhQlVcXEFnZW50UG9vbFxcRG90TmV0XFxEb3ROZXRGcmFtZXdvcmtcXF93b3JrXFwyOTZcXHMvc3JjXFxhcHBcXHNoYXJlZFxcc3R5bGVzXFx0aGVtZXNcXHRoZW1lLWIuc2NzcyIsInNyYy9hcHAvc2hhcmVkL3N0eWxlcy90aGVtZXMvdGhlbWUtYi5zY3NzIiwic3JjL2FwcC9zaGFyZWQvc3R5bGVzL3RoZW1lcy9EOlxcSW5kaWFCVVxcQWdlbnRQb29sXFxEb3ROZXRcXERvdE5ldEZyYW1ld29ya1xcX3dvcmtcXDI5Nlxccy9zcmNcXGFwcFxcc2hhcmVkXFxzdHlsZXNcXGFwcFxcdmFyaWFibGVzLnNjc3MiLCJzcmMvYXBwL3NoYXJlZC9zdHlsZXMvdGhlbWVzL0Q6XFxJbmRpYUJVXFxBZ2VudFBvb2xcXERvdE5ldFxcRG90TmV0RnJhbWV3b3JrXFxfd29ya1xcMjk2XFxzL3NyY1xcYXBwXFxzaGFyZWRcXHN0eWxlc1xcYm9vdHN0cmFwXFxtaXhpbnNcXF9ncmFkaWVudHMuc2NzcyIsInNyYy9hcHAvc2hhcmVkL3N0eWxlcy90aGVtZXMvRDpcXEluZGlhQlVcXEFnZW50UG9vbFxcRG90TmV0XFxEb3ROZXRGcmFtZXdvcmtcXF93b3JrXFwyOTZcXHMvc3JjXFxhcHBcXHNoYXJlZFxcc3R5bGVzXFxib290c3RyYXBcXG1peGluc1xcX2JyZWFrcG9pbnRzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBOENBOzs2RUFBQTtBQUdBO0VBQ0kseUJBekM0QjtBQ0poQztBRGdEQTtFQUNJLHNCQTVDNEI7QUNEaEM7QURnREE7OzZFQUFBO0FBR0E7RUFDSSx5QkVoRG9CO0VDQ3RCLHFFQUFBO0VBQ0EsMkJBQUE7QUZHRjtBRzBDSTtFSk1RO0lBQ0ksa0NBQUE7RUM3Q2Q7QUFDRjtBRGlESTtFQUNJLFdBdER3QjtBQ09oQztBRGtESTs7RUFFSSxXQTNEd0I7QUNXaEM7QURpRFE7OztFQUNJLGNBNURvQjtBQ2VoQztBRGlESTtFQUNJLHlCRXhFZ0I7QUR5QnhCO0FEbURBOzs2RUFBQTtBQUdBO0VBQ0ksc0JBbkY0QjtBQ21DaEM7QURrREk7RUFDSSxjQTVEMEI7QUNZbEM7QUR1RFE7RUFDSSxjQTlFc0I7QUMwQmxDO0FEc0RZO0VBQ0ksY0U5RlE7QUQwQ3hCO0FEd0RZO0VBQ0ksZUFsRmtCO0FDNEJsQztBRDZEWTtFQUNJLHlCQTVGa0I7RUE2RmxCLGNFNUdRO0FEaUR4QjtBRDhEWTtFQUNJLGNFaEhRO0FEb0R4QjtBRGlFUTtFQUNJLDBCRXRIWTtBRHVEeEI7QURzRUE7RUFDSSxzQkFqSTRCO0FDOERoQztBRHFFSTtFQUNJLGNBcEgwQjtBQ2lEbEM7QUR1RVE7RUFDSSxjQXpIc0I7QUNvRGxDO0FEdUVZO0VBQ0ksY0V6SVE7QURvRXhCO0FEMkVZO0VBQ0ksY0VoSlE7QUR1RXhCO0FEMkVnQjtFQUNJLHFCRW5KSTtFRm9KSix5QkVwSkk7QUQyRXhCO0FEb0ZBOzs2RUFBQTtBQUdBO0VBQ0kseUNBQUE7RUFDQSxzQkF4SXNCO0VBeUl0QixjRXJDd0I7QUQ1QzVCIiwiZmlsZSI6InNyYy9hcHAvc2hhcmVkL3N0eWxlcy90aGVtZXMvdGhlbWUtYi5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQm9vdHN0cmFwXHJcbkBpbXBvcnQgXCIuLi9ib290c3RyYXAvZnVuY3Rpb25zXCI7XHJcbkBpbXBvcnQgXCIuLi9ib290c3RyYXAvdmFyaWFibGVzXCI7XHJcbkBpbXBvcnQgXCIuLi9ib290c3RyYXAvbWl4aW5zXCI7XHJcbkBpbXBvcnQgJy4uL2FwcC92YXJpYWJsZXMnO1xyXG5cclxuXHJcbi8vIExBWU9VVFxyXG5cclxuJGNvbnRlbnQtYmc6ICAgICAgICAgICAgICAgICAgICAjZjVmN2ZhO1xyXG4kYXNpZGUtYmc6ICAgICAgICAgICAgICAgICAgICAgICNmZmY7XHJcblxyXG4vLyBOQVZCQVIgVE9QXHJcblxyXG4kbmF2LXRvcC1iZzogICAgICAgICAgICAgICAgICAgICRncmVlbjtcclxuJG5hdi10b3AtYmctc3RhcnQ6ICAgICAgICAgICAgICAkbmF2LXRvcC1iZztcclxuJG5hdi10b3AtYmctZW5kOiAgICAgICAgICAgICAgICAkZ3JlZW4tbGlnaHQ7XHJcbiRuYXYtaGVhZGVyLWJnOiAgICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQ7XHJcblxyXG4kbmF2LXRvcC1pdGVtOiAgICAgICAgICAgICAgICAgICNmZmY7XHJcbiRuYXYtdG9wLWl0ZW0tYWN0aXZlOiAgICAgICAgICAgZGFya2VuKCRuYXYtdG9wLWJnLCAyMCUpO1xyXG5cclxuLy8gU0lERUJBUlxyXG5cclxuJHNpZGViYXItYmc6ICAgICAgICAgICAgICAgICAgICAgICRhc2lkZS1iZztcclxuXHJcbiRzaWRlYmFyLWl0ZW0tY29sb3I6ICAgICAgICAgICAgICAjNTE1MjUzO1xyXG4kc2lkZWJhci1pdGVtLWNvbG9yLWFjdGl2ZTogICAgICAgJG5hdi10b3AtYmc7XHJcbiRzaWRlYmFyLWl0ZW0tYmctYWN0aXZlOiAgICAgICAgICBkYXJrZW4oJHNpZGViYXItYmcsIDElKTtcclxuXHJcbiRzaWRlYmFyLWljb24tY29sb3I6ICAgICAgICAgICAgICBpbmhlcml0cztcclxuJHNpZGViYXItaWNvbi1jb2xvci1hY3RpdmU6ICAgICAgICRuYXYtdG9wLWJnO1xyXG5cclxuJHNpZGViYXItYnVsbGV0LWNvbG9yOiAgICAgICAgICAgIHJnYmEoMCwwLDAsLjI1KTtcclxuJHNpZGViYXItYnVsbGV0LWNvbG9yLWFjdGl2ZTogICAgICRzaWRlYmFyLWljb24tY29sb3ItYWN0aXZlO1xyXG5cclxuJHNpZGViYXItaGVhZGluZy1jb2xvcjogICAgICAgICAgICM5MTlEQTg7XHJcbiRzaWRlYmFyLWxhYmVsLWNvbG9yOiAgICAgICAgICAgICAkc2lkZWJhci1pdGVtLWNvbG9yO1xyXG5cclxuLy8gT0ZGU0lERUJBUlxyXG5cclxuJG9mZnNpZGViYXItYmc6ICAgICAgICAgICAjZmZmO1xyXG4kb2Zmc2lkZWJhci1ib3JkZXItY29sb3I6IGdyZXlzY2FsZShkYXJrZW4oJG9mZnNpZGViYXItYmcsIDIwJSkpO1xyXG4kb2Zmc2lkZWJhci1jb2xvcjogICAgICAgICRib2R5LWNvbG9yO1xyXG5cclxuXHJcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBDb21wb25lbnQ6IGxheW91dFxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuYm9keSwgLndyYXBwZXIgLnNlY3Rpb24tY29udGFpbmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb250ZW50LWJnO1xyXG59XHJcblxyXG4ud3JhcHBlciAuYXNpZGUtY29udGFpbmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRhc2lkZS1iZztcclxufVxyXG5cclxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIENvbXBvbmVudDogdG9wLW5hdmJhclxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuLnRvcG5hdmJhciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2LXRvcC1iZztcclxuICAgIEBpbmNsdWRlIGdyYWRpZW50LXgoJG5hdi10b3AtYmctc3RhcnQsICRuYXYtdG9wLWJnLWVuZCk7XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChsZykge1xyXG4gICAgICAgIC5uYXZiYXItbmF2ID4gLm5hdi1pdGVtLnNob3cgPiAubmF2LWxpbmsge1xyXG4gICAgICAgICAgICAmLCAmOmhvdmVyLCAmOmZvY3VzIHtcclxuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTNweCAwIGRhcmtlbigkbmF2LXRvcC1iZywgNiUpIGluc2V0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5uYXZiYXItbmF2ID4gLm5hdi1pdGVtID4gLm5hdmJhci10ZXh0IHtcclxuICAgICAgICBjb2xvcjogJG5hdi10b3AtaXRlbTtcclxuICAgIH1cclxuXHJcbiAgICAubmF2YmFyLW5hdiA+IC5uYXYtaXRlbSA+IC5uYXYtbGluayxcclxuICAgIC5uYXZiYXItbmF2ID4gLm5hdi1pdGVtLnNob3cgPiAubmF2LWxpbmsge1xyXG4gICAgICAgIGNvbG9yOiAkbmF2LXRvcC1pdGVtO1xyXG4gICAgICAgICY6aG92ZXIsICY6Zm9jdXMge1xyXG4gICAgICAgICAgICBjb2xvcjogJG5hdi10b3AtaXRlbS1hY3RpdmU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5kcm9wZG93bi1pdGVtLmFjdGl2ZSwgLmRyb3Bkb3duLWl0ZW06YWN0aXZlIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2LXRvcC1iZztcclxuICAgIH1cclxufVxyXG5cclxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIENvbXBvbmVudDogc2lkZWJhclxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuLnNpZGViYXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHNpZGViYXItYmc7XHJcblxyXG4gICAgLm5hdi1oZWFkaW5nIHtcclxuICAgICAgICBjb2xvcjogJHNpZGViYXItaGVhZGluZy1jb2xvcjtcclxuICAgIH1cclxufVxyXG5cclxuLy8gSXRlbXNcclxuLnNpZGViYXItbmF2IHtcclxuICAgID4gbGkge1xyXG4gICAgICAgID4gYSwgPiAubmF2LWl0ZW0ge1xyXG4gICAgICAgICAgICBjb2xvcjogJHNpZGViYXItaXRlbS1jb2xvcjtcclxuXHJcbiAgICAgICAgICAgICY6Zm9jdXMsICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICRzaWRlYmFyLWl0ZW0tY29sb3ItYWN0aXZlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyBJdGVtIGljb25cclxuICAgICAgICAgICAgPiBlbSB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNpZGViYXItaWNvbi1jb2xvcjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIEFjdGl2ZSBpdGVtIHN0YXRlXHJcbiAgICAgICAgJi5hY3RpdmUsICYub3BlbiB7XHJcbiAgICAgICAgICAgICYsID4gYSwgPiAubmF2LWl0ZW0sIC5zaWRlYmFyLW5hdiB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2lkZWJhci1pdGVtLWJnLWFjdGl2ZTtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2lkZWJhci1pdGVtLWNvbG9yLWFjdGl2ZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgPiAubmF2LWl0ZW0gPiBlbSwgPiBhID4gZW0ge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICRzaWRlYmFyLWljb24tY29sb3ItYWN0aXZlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5hY3RpdmUge1xyXG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogJHNpZGViYXItaXRlbS1jb2xvci1hY3RpdmU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbn1cclxuXHJcbi5zaWRlYmFyLXN1Ym5hdiB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2lkZWJhci1iZztcclxuXHJcbiAgICA+IC5zaWRlYmFyLXN1Ym5hdi1oZWFkZXIge1xyXG4gICAgICAgIGNvbG9yOiAkc2lkZWJhci1pdGVtLWNvbG9yO1xyXG4gICAgfVxyXG5cclxuICAgID4gbGkge1xyXG4gICAgICAgID4gYSwgPiAubmF2LWl0ZW0ge1xyXG4gICAgICAgICAgICBjb2xvcjogJHNpZGViYXItaXRlbS1jb2xvcjtcclxuXHJcbiAgICAgICAgICAgICY6Zm9jdXMsICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICRzaWRlYmFyLWl0ZW0tY29sb3ItYWN0aXZlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5hY3RpdmUge1xyXG4gICAgICAgICAgICA+IGEsID4gLm5hdi1pdGVtIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2lkZWJhci1pY29uLWNvbG9yLWFjdGl2ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzaWRlYmFyLWJ1bGxldC1jb2xvci1hY3RpdmU7XHJcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNpZGViYXItYnVsbGV0LWNvbG9yLWFjdGl2ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbn1cclxuXHJcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBDb21wb25lbnQ6IG9mZnNpZGViYXJcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcbi5vZmZzaWRlYmFyIHtcclxuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJG9mZnNpZGViYXItYm9yZGVyLWNvbG9yO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG9mZnNpZGViYXItYmc7XHJcbiAgICBjb2xvcjogJG9mZnNpZGViYXItY29sb3I7XHJcbn1cclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IGxheW91dFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5ib2R5LCAud3JhcHBlciAuc2VjdGlvbi1jb250YWluZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmN2ZhO1xufVxuXG4ud3JhcHBlciAuYXNpZGUtY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IHRvcC1uYXZiYXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnRvcG5hdmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMUI0NEE7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzMxQjQ0QSAwJSwgIzRhY2U2MyAxMDAlKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC50b3BuYXZiYXIgLm5hdmJhci1uYXYgPiAubmF2LWl0ZW0uc2hvdyA+IC5uYXYtbGluaywgLnRvcG5hdmJhciAubmF2YmFyLW5hdiA+IC5uYXYtaXRlbS5zaG93ID4gLm5hdi1saW5rOmhvdmVyLCAudG9wbmF2YmFyIC5uYXZiYXItbmF2ID4gLm5hdi1pdGVtLnNob3cgPiAubmF2LWxpbms6Zm9jdXMge1xuICAgIGJveC1zaGFkb3c6IDAgLTNweCAwICMyYTljNDAgaW5zZXQ7XG4gIH1cbn1cbi50b3BuYXZiYXIgLm5hdmJhci1uYXYgPiAubmF2LWl0ZW0gPiAubmF2YmFyLXRleHQge1xuICBjb2xvcjogI2ZmZjtcbn1cbi50b3BuYXZiYXIgLm5hdmJhci1uYXYgPiAubmF2LWl0ZW0gPiAubmF2LWxpbmssXG4udG9wbmF2YmFyIC5uYXZiYXItbmF2ID4gLm5hdi1pdGVtLnNob3cgPiAubmF2LWxpbmsge1xuICBjb2xvcjogI2ZmZjtcbn1cbi50b3BuYXZiYXIgLm5hdmJhci1uYXYgPiAubmF2LWl0ZW0gPiAubmF2LWxpbms6aG92ZXIsIC50b3BuYXZiYXIgLm5hdmJhci1uYXYgPiAubmF2LWl0ZW0gPiAubmF2LWxpbms6Zm9jdXMsXG4udG9wbmF2YmFyIC5uYXZiYXItbmF2ID4gLm5hdi1pdGVtLnNob3cgPiAubmF2LWxpbms6aG92ZXIsXG4udG9wbmF2YmFyIC5uYXZiYXItbmF2ID4gLm5hdi1pdGVtLnNob3cgPiAubmF2LWxpbms6Zm9jdXMge1xuICBjb2xvcjogIzFiNjQyOTtcbn1cbi50b3BuYXZiYXIgLmRyb3Bkb3duLWl0ZW0uYWN0aXZlLCAudG9wbmF2YmFyIC5kcm9wZG93bi1pdGVtOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMUI0NEE7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBzaWRlYmFyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5zaWRlYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cbi5zaWRlYmFyIC5uYXYtaGVhZGluZyB7XG4gIGNvbG9yOiAjOTE5REE4O1xufVxuXG4uc2lkZWJhci1uYXYgPiBsaSA+IGEsIC5zaWRlYmFyLW5hdiA+IGxpID4gLm5hdi1pdGVtIHtcbiAgY29sb3I6ICM1MTUyNTM7XG59XG4uc2lkZWJhci1uYXYgPiBsaSA+IGE6Zm9jdXMsIC5zaWRlYmFyLW5hdiA+IGxpID4gYTpob3ZlciwgLnNpZGViYXItbmF2ID4gbGkgPiAubmF2LWl0ZW06Zm9jdXMsIC5zaWRlYmFyLW5hdiA+IGxpID4gLm5hdi1pdGVtOmhvdmVyIHtcbiAgY29sb3I6ICMzMUI0NEE7XG59XG4uc2lkZWJhci1uYXYgPiBsaSA+IGEgPiBlbSwgLnNpZGViYXItbmF2ID4gbGkgPiAubmF2LWl0ZW0gPiBlbSB7XG4gIGNvbG9yOiBpbmhlcml0cztcbn1cbi5zaWRlYmFyLW5hdiA+IGxpLmFjdGl2ZSwgLnNpZGViYXItbmF2ID4gbGkuYWN0aXZlID4gYSwgLnNpZGViYXItbmF2ID4gbGkuYWN0aXZlID4gLm5hdi1pdGVtLCAuc2lkZWJhci1uYXYgPiBsaS5hY3RpdmUgLnNpZGViYXItbmF2LCAuc2lkZWJhci1uYXYgPiBsaS5vcGVuLCAuc2lkZWJhci1uYXYgPiBsaS5vcGVuID4gYSwgLnNpZGViYXItbmF2ID4gbGkub3BlbiA+IC5uYXYtaXRlbSwgLnNpZGViYXItbmF2ID4gbGkub3BlbiAuc2lkZWJhci1uYXYge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmNmY2ZjO1xuICBjb2xvcjogIzMxQjQ0QTtcbn1cbi5zaWRlYmFyLW5hdiA+IGxpLmFjdGl2ZSA+IC5uYXYtaXRlbSA+IGVtLCAuc2lkZWJhci1uYXYgPiBsaS5hY3RpdmUgPiBhID4gZW0sIC5zaWRlYmFyLW5hdiA+IGxpLm9wZW4gPiAubmF2LWl0ZW0gPiBlbSwgLnNpZGViYXItbmF2ID4gbGkub3BlbiA+IGEgPiBlbSB7XG4gIGNvbG9yOiAjMzFCNDRBO1xufVxuLnNpZGViYXItbmF2ID4gbGkuYWN0aXZlIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICMzMUI0NEE7XG59XG5cbi5zaWRlYmFyLXN1Ym5hdiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG4uc2lkZWJhci1zdWJuYXYgPiAuc2lkZWJhci1zdWJuYXYtaGVhZGVyIHtcbiAgY29sb3I6ICM1MTUyNTM7XG59XG4uc2lkZWJhci1zdWJuYXYgPiBsaSA+IGEsIC5zaWRlYmFyLXN1Ym5hdiA+IGxpID4gLm5hdi1pdGVtIHtcbiAgY29sb3I6ICM1MTUyNTM7XG59XG4uc2lkZWJhci1zdWJuYXYgPiBsaSA+IGE6Zm9jdXMsIC5zaWRlYmFyLXN1Ym5hdiA+IGxpID4gYTpob3ZlciwgLnNpZGViYXItc3VibmF2ID4gbGkgPiAubmF2LWl0ZW06Zm9jdXMsIC5zaWRlYmFyLXN1Ym5hdiA+IGxpID4gLm5hdi1pdGVtOmhvdmVyIHtcbiAgY29sb3I6ICMzMUI0NEE7XG59XG4uc2lkZWJhci1zdWJuYXYgPiBsaS5hY3RpdmUgPiBhLCAuc2lkZWJhci1zdWJuYXYgPiBsaS5hY3RpdmUgPiAubmF2LWl0ZW0ge1xuICBjb2xvcjogIzMxQjQ0QTtcbn1cbi5zaWRlYmFyLXN1Ym5hdiA+IGxpLmFjdGl2ZSA+IGE6YWZ0ZXIsIC5zaWRlYmFyLXN1Ym5hdiA+IGxpLmFjdGl2ZSA+IC5uYXYtaXRlbTphZnRlciB7XG4gIGJvcmRlci1jb2xvcjogIzMxQjQ0QTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMxQjQ0QTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IG9mZnNpZGViYXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLm9mZnNpZGViYXIge1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIGdyZXlzY2FsZSgjY2NjY2NjKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgY29sb3I6ICM2NTY1NjU7XG59IiwiXHJcbi8vIEN1dG9tcyBHcmF5IGNvbG9ycyBmb3IgdGhlbWVcclxuJGdyYXktZGFya2VyOiAgICAgICAgICAgIzIzMjczNTtcclxuJGdyYXktZGFyazogICAgICAgICAgICAgIzNhM2Y1MTtcclxuJGdyYXk6ICAgICAgICAgICAgICAgICAgI2RkZTZlOTtcclxuJGdyYXktbGlnaHQ6ICAgICAgICAgICAgI2U0ZWFlYztcclxuJGdyYXktbGlnaHRlcjogICAgICAgICAgI2VkZjFmMjtcclxuXHJcbi8vIEN1c3RvbSBicmFuZCBjb2xvcnMgZm9yIHRoZW1lXHJcbiRpbnZlcnNlOiAgICAgICAgICAgICAgICMxMzFlMjY7XHJcbiRwdXJwbGU6ICAgICAgICAgICAgICAgICM3MjY2YmE7XHJcbiRwaW5rOiAgICAgICAgICAgICAgICAgICNmNTMyZTU7XHJcbiR5ZWxsb3c6ICAgICAgICAgICAgICAgICNmYWQ3MzI7XHJcbiRncmVlbjogICAgICAgICAgICAgICAgICMzMUI0NEE7XHJcblxyXG4kcHJpbWFyeTogICAgICAgICAgICAgICAjMDBBQkU3O1xyXG4kc2Vjb25kYXJ5OiAgICAgICAgICAgICAjZmZmO1xyXG4kc3VjY2VzczogICAgICAgICAgICAgICAjMjdjMjRjO1xyXG4kaW5mbzogICAgICAgICAgICAgICAgICAjODZCQzI1ICA7XHJcbiR3YXJuaW5nOiAgICAgICAgICAgICAgICNmZjkwMmI7XHJcbiRkYW5nZXI6ICAgICAgICAgICAgICAgICNmMDUwNTA7XHJcbiRkYXJrOiAgICAgICAgICAgICAgICAgICMzYTNmNTE7XHJcblxyXG4vLyBDdXN0b20gY29sb3IgdmFyaWFudHNcclxuJGFtb3VudE9mTGlnaHQ6IDEwJTtcclxuXHJcbiRwcmltYXJ5LWxpZ2h0OiAgICAgICAgIGxpZ2h0ZW4oJHByaW1hcnksICRhbW91bnRPZkxpZ2h0KTtcclxuJHN1Y2Nlc3MtbGlnaHQ6ICAgICAgICAgbGlnaHRlbigkc3VjY2VzcywgJGFtb3VudE9mTGlnaHQpO1xyXG4kaW5mby1saWdodDogICAgICAgICAgICBsaWdodGVuKCRpbmZvLCAkYW1vdW50T2ZMaWdodCk7XHJcbiR3YXJuaW5nLWxpZ2h0OiAgICAgICAgIGxpZ2h0ZW4oJHdhcm5pbmcsICRhbW91bnRPZkxpZ2h0KTtcclxuJGRhbmdlci1saWdodDogICAgICAgICAgbGlnaHRlbigkZGFuZ2VyLCAkYW1vdW50T2ZMaWdodCk7XHJcbiRpbnZlcnNlLWxpZ2h0OiAgICAgICAgIGxpZ2h0ZW4oJGludmVyc2UsICRhbW91bnRPZkxpZ2h0KTtcclxuJGdyZWVuLWxpZ2h0OiAgICAgICAgICAgbGlnaHRlbigkZ3JlZW4sICRhbW91bnRPZkxpZ2h0KTtcclxuJHBpbmstbGlnaHQ6ICAgICAgICAgICAgbGlnaHRlbigkcGluaywgJGFtb3VudE9mTGlnaHQpO1xyXG4kcHVycGxlLWxpZ2h0OiAgICAgICAgICBsaWdodGVuKCRwdXJwbGUsICRhbW91bnRPZkxpZ2h0KTtcclxuJHllbGxvdy1saWdodDogICAgICAgICAgbGlnaHRlbigkeWVsbG93LCAkYW1vdW50T2ZMaWdodCk7XHJcbiRwcmltYXJ5LWRhcms6ICAgICAgICAgIGRhcmtlbigkcHJpbWFyeSwgJGFtb3VudE9mTGlnaHQpO1xyXG4kc3VjY2Vzcy1kYXJrOiAgICAgICAgICBkYXJrZW4oJHN1Y2Nlc3MsICRhbW91bnRPZkxpZ2h0KTtcclxuJGluZm8tZGFyazogICAgICAgICAgICAgZGFya2VuKCRpbmZvLCAkYW1vdW50T2ZMaWdodCk7XHJcbiR3YXJuaW5nLWRhcms6ICAgICAgICAgIGRhcmtlbigkd2FybmluZywgJGFtb3VudE9mTGlnaHQpO1xyXG4kZGFuZ2VyLWRhcms6ICAgICAgICAgICBkYXJrZW4oJGRhbmdlciwgJGFtb3VudE9mTGlnaHQpO1xyXG4kaW52ZXJzZS1kYXJrOiAgICAgICAgICBkYXJrZW4oJGludmVyc2UsICRhbW91bnRPZkxpZ2h0KTtcclxuJGdyZWVuLWRhcms6ICAgICAgICAgICAgZGFya2VuKCRncmVlbiwgJGFtb3VudE9mTGlnaHQpO1xyXG4kcGluay1kYXJrOiAgICAgICAgICAgICBkYXJrZW4oJHBpbmssICRhbW91bnRPZkxpZ2h0KTtcclxuJHB1cnBsZS1kYXJrOiAgICAgICAgICAgZGFya2VuKCRwdXJwbGUsICRhbW91bnRPZkxpZ2h0KTtcclxuJHllbGxvdy1kYXJrOiAgICAgICAgICAgZGFya2VuKCR5ZWxsb3csICRhbW91bnRPZkxpZ2h0KTtcclxuXHJcbi8vIFRoZW1lIHZhcmlhYmxlc1xyXG5cclxuLy8gdXNlZCBmb3Igc2lkZWJhcnMgYW5kIGNvbnRlbnQgc3BhY2luZ1xyXG4kbmF2YmFyLWhlaWdodDogICAgICAgICAgICAgICAgICAgIDU1cHg7XHJcblxyXG4vLyBCdXR0b24gc2Vjb25kYXJ5IHJlZGVmaW5pdGlvbiBzdHlsZSBmb3IgdGhlbWVcclxuJGJ0bi1zZWNvbmRhcnktY29sb3I6ICAgICAgICAgICAgICAjMzMzO1xyXG4kYnRuLXNlY29uZGFyeS1iZzogICAgICAgICAgICAgICAgICNmZmY7XHJcbiRidG4tc2Vjb25kYXJ5LWJvcmRlcjogICAgICAgICAgICAgI2VhZWFlYTtcclxuXHJcbi8vIFRvcCBCb3JkZXIgY29sb3IgZm9yIGN1c3RvbSBkZWZhdWx0IGNhcmRzICguY2FyZC1kZWZhdWx0KVxyXG4kY2FyZC1kZWZhdWx0LWJvcmRlci1jb2xvcjogICAgICAgICNjZmRiZTI7XHJcblxyXG5cclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbi8vIFV0aWxpdGllcyB2YXJpYWJsZXNcclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4kdGV4dC1hbHBoYTogICAgICAgICAgICByZ2JhKDI1NSwyNTUsMjU1LC41KTtcclxuJHRleHQtYWxwaGEtaW52ZXJzZTogICAgcmdiYSgwLDAsMCwuNSk7XHJcblxyXG4kZm9udC1zaXplLWJhc2U6ICAgICAgICAxcmVtO1xyXG4kdGV4dC1zbTogICAgICAgICAgICAgICAkZm9udC1zaXplLWJhc2UgKiAwLjc0Mzc1O1xyXG4kdGV4dC1tZDogICAgICAgICAgICAgICAkZm9udC1zaXplLWJhc2UgKiAxLjY2MjU7XHJcbiR0ZXh0LWxnOiAgICAgICAgICAgICAgICRmb250LXNpemUtYmFzZSAqIDIuNjI1O1xyXG5cclxuJGJvcmRlci1jb2xvcjogICAgICAgICAgcmdiYSgwLDAsMCwuMTIpO1xyXG5cclxuJHdkLXh4czogICAgICAgICAgICAgICAgNjBweDtcclxuJHdkLXhzOiAgICAgICAgICAgICAgICAgOTBweDtcclxuJHdkLXNtOiAgICAgICAgICAgICAgICAgMTUwcHg7XHJcbiR3ZC1zZDogICAgICAgICAgICAgICAgIDIwMHB4OyAvLyBzZCA9PSBzdGFuZGFyZFxyXG4kd2QtbWQ6ICAgICAgICAgICAgICAgICAyNDBweDtcclxuJHdkLWxnOiAgICAgICAgICAgICAgICAgMjgwcHg7XHJcbiR3ZC14bDogICAgICAgICAgICAgICAgIDMyMHB4O1xyXG4kd2QteHhsOiAgICAgICAgICAgICAgICAzNjBweDtcclxuJHdkLXdpZGU6ICAgICAgICAgICAgICAgMTAwJTtcclxuJHdkLWF1dG86ICAgICAgICAgICAgICAgYXV0bztcclxuJHdkLXplcm86ICAgICAgICAgICAgICAgMDtcclxuXHJcblxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuLy8gQm9vdHN0cmFwIDQgVmFyaWFibGVzIE92ZXJyaWRlXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuLy8gQ29sb3Igc3lzdGVtXHJcblxyXG4kY29sb3JzOiAoXHJcbiAgICBcInB1cnBsZVwiOiAgICAgJHB1cnBsZSxcclxuICAgIFwicGlua1wiOiAgICAgICAkcGluayxcclxuICAgIFwieWVsbG93XCI6ICAgICAkeWVsbG93LFxyXG4gICAgXCJncmVlblwiOiAgICAgICRncmVlbixcclxuICAgIFwicHJpbWFyeVwiOiAgICAkcHJpbWFyeSxcclxuICAgIFwic3VjY2Vzc1wiOiAgICAkc3VjY2VzcyxcclxuICAgIFwiaW5mb1wiOiAgICAgICAkaW5mbyxcclxuICAgIFwid2FybmluZ1wiOiAgICAkd2FybmluZyxcclxuICAgIFwiZGFuZ2VyXCI6ICAgICAkZGFuZ2VyLFxyXG4gICAgJ2ludmVyc2UnOiAgICAkaW52ZXJzZSxcclxuXHJcbiAgICAncHJpbWFyeS1saWdodCc6ICRwcmltYXJ5LWxpZ2h0LFxyXG4gICAgJ3ByaW1hcnktZGFyayc6ICAkcHJpbWFyeS1kYXJrLFxyXG4gICAgJ3N1Y2Nlc3MtbGlnaHQnOiAkc3VjY2Vzcy1saWdodCxcclxuICAgICdzdWNjZXNzLWRhcmsnOiAgJHN1Y2Nlc3MtZGFyayxcclxuICAgICdpbmZvLWxpZ2h0JzogICAgJGluZm8tbGlnaHQsXHJcbiAgICAnaW5mby1kYXJrJzogICAgICRpbmZvLWRhcmssXHJcbiAgICAnd2FybmluZy1saWdodCc6ICR3YXJuaW5nLWxpZ2h0LFxyXG4gICAgJ3dhcm5pbmctZGFyayc6ICAkd2FybmluZy1kYXJrLFxyXG4gICAgJ2Rhbmdlci1saWdodCc6ICAkZGFuZ2VyLWxpZ2h0LFxyXG4gICAgJ2Rhbmdlci1kYXJrJzogICAkZGFuZ2VyLWRhcmssXHJcbiAgICAnZ3JlZW4tbGlnaHQnOiAgICRncmVlbi1saWdodCxcclxuICAgICdncmVlbi1kYXJrJzogICAgJGdyZWVuLWRhcmssXHJcbiAgICAncGluay1saWdodCc6ICAgICRwaW5rLWxpZ2h0LFxyXG4gICAgJ3BpbmstZGFyayc6ICAgICAkcGluay1kYXJrLFxyXG4gICAgJ3B1cnBsZS1saWdodCc6ICAkcHVycGxlLWxpZ2h0LFxyXG4gICAgJ3B1cnBsZS1kYXJrJzogICAkcHVycGxlLWRhcmssXHJcbiAgICAnaW52ZXJzZS1saWdodCc6ICRpbnZlcnNlLWxpZ2h0LFxyXG4gICAgJ2ludmVyc2UtZGFyayc6ICAkaW52ZXJzZS1kYXJrLFxyXG4gICAgJ3llbGxvdy1saWdodCc6ICAkeWVsbG93LWxpZ2h0LFxyXG4gICAgJ3llbGxvdy1kYXJrJzogICAkeWVsbG93LWRhcmssXHJcbik7XHJcblxyXG5cclxuJHRoZW1lLWNvbG9yczogKFxyXG4gIFwicHJpbWFyeVwiOiAgICAkcHJpbWFyeSxcclxuICBcInNlY29uZGFyeVwiOiAgJHNlY29uZGFyeSxcclxuICBcInN1Y2Nlc3NcIjogICAgJHN1Y2Nlc3MsXHJcbiAgXCJpbmZvXCI6ICAgICAgICRpbmZvLFxyXG4gIFwid2FybmluZ1wiOiAgICAkd2FybmluZyxcclxuICBcImRhbmdlclwiOiAgICAgJGRhbmdlclxyXG4pO1xyXG5cclxuLy8gQm9keVxyXG5cclxuJGJvZHktYmc6ICAgICAgICAgICAgICAgICAgICNmNWY3ZmE7XHJcbiRib2R5LWNvbG9yOiAgICAgICAgICAgICAgICAjNjU2NTY1O1xyXG5cclxuJGJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgICAgLjI1cmVtO1xyXG4kYm9yZGVyLXJhZGl1cy1sZzogICAgICAgICAgICAuMzc1cmVtO1xyXG5cclxuJGxpbmUtaGVpZ2h0LWJhc2U6ICAgICAgICAgICAgMS41Mjg1NzE0Mjk7XHJcblxyXG4kaGVhZGluZ3MtbGluZS1oZWlnaHQ6ICAgICAgICAxLjE7XHJcblxyXG4kdGV4dC1tdXRlZDogICAgICAgICAgICAgICAgICAjOTA5RkE3O1xyXG5cclxuLy8gVGFibGVzXHJcblxyXG4kdGFibGUtYWNjZW50LWJnOiAgICAgICAgICAgICAjZmFmYmZjO1xyXG4kdGFibGUtaG92ZXItYmc6ICAgICAgICAgICAgICAjZmFmYmZjO1xyXG5cclxuJHRhYmxlLWJvcmRlci1jb2xvcjogICAgICAgICAgI2VlZTtcclxuXHJcbi8vIEJ1dHRvbnMgKyBGb3Jtc1xyXG5cclxuJGlucHV0LWJ0bi1wYWRkaW5nLXk6ICAgICAgICAgLjM3NXJlbTtcclxuJGlucHV0LWJ0bi1wYWRkaW5nLXg6ICAgICAgICAgMXJlbTtcclxuXHJcbiRpbnB1dC1idG4tcGFkZGluZy15LXNtOiAgICAgIC4zMTI1cmVtO1xyXG4kaW5wdXQtYnRuLXBhZGRpbmcteC1zbTogICAgICAuNjI1cmVtO1xyXG5cclxuJGlucHV0LWJ0bi1wYWRkaW5nLXktbGc6ICAgICAgLjYyNXJlbTtcclxuJGlucHV0LWJ0bi1wYWRkaW5nLXgtbGc6ICAgICAgMS4yNXJlbTtcclxuXHJcbiRpbnB1dC1oZWlnaHQ6ICAgICAgICAgICAgICAgIDIuMTg3NXJlbTsgLy8gMzVweFxyXG5cclxuLy8gRm9ybXNcclxuXHJcbiRpbnB1dC1kaXNhYmxlZC1iZzogICAgICAgICAgICAgICAgICAgICAkZ3JheS1saWdodGVyO1xyXG4kaW5wdXQtYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgJGdyYXk7XHJcbiRpbnB1dC1mb2N1cy1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICAjNjZhZmU5O1xyXG4kaW5wdXQtcGxhY2Vob2xkZXItY29sb3I6ICAgICAgICAgICAgICAgI2I3YmFjOTtcclxuXHJcbiRmb3JtLWZlZWRiYWNrLWljb24tdmFsaWQ6ICAgICAgICAgICAgICBub25lO1xyXG4kZm9ybS1mZWVkYmFjay1pY29uLWludmFsaWQ6ICAgICAgICAgICAgbm9uZTtcclxuXHJcbiRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItYWN0aXZlLWJnOiAgICBsaWdodGVuKCRwcmltYXJ5LCAyNSUpO1xyXG5cclxuLy8gRHJvcGRvd25zXHJcblxyXG4kZHJvcGRvd24tYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAjZTFlMWUxO1xyXG5cclxuLy8gTmF2c1xyXG5cclxuJG5hdi10YWJzLWxpbmstYWN0aXZlLWJnOiAgICAgICAgICAgI2ZmZjtcclxuXHJcbi8vIEp1bWJvdHJvblxyXG5cclxuJGp1bWJvdHJvbi1iZzogICAgICAgICAgICAgICAgICAgICAgI2ZjZmNmYztcclxuXHJcbi8vIExpc3QgZ3JvdXBcclxuXHJcbiRsaXN0LWdyb3VwLWJvcmRlci1jb2xvcjogICAgICAgICAgICNlNGVhZWM7XHJcblxyXG4vLyBJbWFnZSB0aHVtYm5haWxzXHJcblxyXG4kdGh1bWJuYWlsLXBhZGRpbmc6ICAgICAgICAgICAgICAgICAuMTI1cmVtO1xyXG5cclxuXHJcbi8vIEJyZWFkY3J1bWJzXHJcblxyXG4kYnJlYWRjcnVtYi1iZzogICAgICAgICAgICAgICAgICAgICAjZmFmYWZhO1xyXG4kYnJlYWRjcnVtYi1kaXZpZGVyLWNvbG9yOiAgICAgICAgICAjYzFjMmMzO1xyXG4kYnJlYWRjcnVtYi1hY3RpdmUtY29sb3I6ICAgICAgICAgICAkYm9keS1jb2xvcjtcclxuIiwiLy8gR3JhZGllbnRzXHJcblxyXG5AbWl4aW4gZ3JhZGllbnQtYmcoJGNvbG9yKSB7XHJcbiAgQGlmICRlbmFibGUtZ3JhZGllbnRzIHtcclxuICAgIGJhY2tncm91bmQ6ICRjb2xvciBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCBtaXgoJGJvZHktYmcsICRjb2xvciwgMTUlKSwgJGNvbG9yKSByZXBlYXQteDtcclxuICB9IEBlbHNlIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcclxuICB9XHJcbn1cclxuXHJcbi8vIEhvcml6b250YWwgZ3JhZGllbnQsIGZyb20gbGVmdCB0byByaWdodFxyXG4vL1xyXG4vLyBDcmVhdGVzIHR3byBjb2xvciBzdG9wcywgc3RhcnQgYW5kIGVuZCwgYnkgc3BlY2lmeWluZyBhIGNvbG9yIGFuZCBwb3NpdGlvbiBmb3IgZWFjaCBjb2xvciBzdG9wLlxyXG5AbWl4aW4gZ3JhZGllbnQteCgkc3RhcnQtY29sb3I6ICRncmF5LTcwMCwgJGVuZC1jb2xvcjogJGdyYXktODAwLCAkc3RhcnQtcGVyY2VudDogMCUsICRlbmQtcGVyY2VudDogMTAwJSkge1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJHN0YXJ0LWNvbG9yICRzdGFydC1wZXJjZW50LCAkZW5kLWNvbG9yICRlbmQtcGVyY2VudCk7XHJcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xyXG59XHJcblxyXG4vLyBWZXJ0aWNhbCBncmFkaWVudCwgZnJvbSB0b3AgdG8gYm90dG9tXHJcbi8vXHJcbi8vIENyZWF0ZXMgdHdvIGNvbG9yIHN0b3BzLCBzdGFydCBhbmQgZW5kLCBieSBzcGVjaWZ5aW5nIGEgY29sb3IgYW5kIHBvc2l0aW9uIGZvciBlYWNoIGNvbG9yIHN0b3AuXHJcbkBtaXhpbiBncmFkaWVudC15KCRzdGFydC1jb2xvcjogJGdyYXktNzAwLCAkZW5kLWNvbG9yOiAkZ3JheS04MDAsICRzdGFydC1wZXJjZW50OiAwJSwgJGVuZC1wZXJjZW50OiAxMDAlKSB7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgJHN0YXJ0LWNvbG9yICRzdGFydC1wZXJjZW50LCAkZW5kLWNvbG9yICRlbmQtcGVyY2VudCk7XHJcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xyXG59XHJcblxyXG5AbWl4aW4gZ3JhZGllbnQtZGlyZWN0aW9uYWwoJHN0YXJ0LWNvbG9yOiAkZ3JheS03MDAsICRlbmQtY29sb3I6ICRncmF5LTgwMCwgJGRlZzogNDVkZWcpIHtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoJGRlZywgJHN0YXJ0LWNvbG9yLCAkZW5kLWNvbG9yKTtcclxuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XHJcbn1cclxuQG1peGluIGdyYWRpZW50LXgtdGhyZWUtY29sb3JzKCRzdGFydC1jb2xvcjogJGJsdWUsICRtaWQtY29sb3I6ICRwdXJwbGUsICRjb2xvci1zdG9wOiA1MCUsICRlbmQtY29sb3I6ICRyZWQpIHtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICRzdGFydC1jb2xvciwgJG1pZC1jb2xvciAkY29sb3Itc3RvcCwgJGVuZC1jb2xvcik7XHJcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxufVxyXG5AbWl4aW4gZ3JhZGllbnQteS10aHJlZS1jb2xvcnMoJHN0YXJ0LWNvbG9yOiAkYmx1ZSwgJG1pZC1jb2xvcjogJHB1cnBsZSwgJGNvbG9yLXN0b3A6IDUwJSwgJGVuZC1jb2xvcjogJHJlZCkge1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgkc3RhcnQtY29sb3IsICRtaWQtY29sb3IgJGNvbG9yLXN0b3AsICRlbmQtY29sb3IpO1xyXG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbn1cclxuQG1peGluIGdyYWRpZW50LXJhZGlhbCgkaW5uZXItY29sb3I6ICRncmF5LTcwMCwgJG91dGVyLWNvbG9yOiAkZ3JheS04MDApIHtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCAkaW5uZXItY29sb3IsICRvdXRlci1jb2xvcik7XHJcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxufVxyXG5AbWl4aW4gZ3JhZGllbnQtc3RyaXBlZCgkY29sb3I6IHJnYmEoJHdoaXRlLCAuMTUpLCAkYW5nbGU6IDQ1ZGVnKSB7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KCRhbmdsZSwgJGNvbG9yIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsICRjb2xvciA1MCUsICRjb2xvciA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xyXG59XHJcbiIsIi8vIEJyZWFrcG9pbnQgdmlld3BvcnQgc2l6ZXMgYW5kIG1lZGlhIHF1ZXJpZXMuXHJcbi8vXHJcbi8vIEJyZWFrcG9pbnRzIGFyZSBkZWZpbmVkIGFzIGEgbWFwIG9mIChuYW1lOiBtaW5pbXVtIHdpZHRoKSwgb3JkZXIgZnJvbSBzbWFsbCB0byBsYXJnZTpcclxuLy9cclxuLy8gICAgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KVxyXG4vL1xyXG4vLyBUaGUgbWFwIGRlZmluZWQgaW4gdGhlIGAkZ3JpZC1icmVha3BvaW50c2AgZ2xvYmFsIHZhcmlhYmxlIGlzIHVzZWQgYXMgdGhlIGAkYnJlYWtwb2ludHNgIGFyZ3VtZW50IGJ5IGRlZmF1bHQuXHJcblxyXG4vLyBOYW1lIG9mIHRoZSBuZXh0IGJyZWFrcG9pbnQsIG9yIG51bGwgZm9yIHRoZSBsYXN0IGJyZWFrcG9pbnQuXHJcbi8vXHJcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSlcclxuLy8gICAgbWRcclxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxyXG4vLyAgICBtZFxyXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20sICRicmVha3BvaW50LW5hbWVzOiAoeHMgc20gbWQgbGcgeGwpKVxyXG4vLyAgICBtZFxyXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1uZXh0KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludC1uYW1lczogbWFwLWtleXMoJGJyZWFrcG9pbnRzKSkge1xyXG4gICRuOiBpbmRleCgkYnJlYWtwb2ludC1uYW1lcywgJG5hbWUpO1xyXG4gIEByZXR1cm4gaWYoJG4gIT0gbnVsbCBhbmQgJG4gPCBsZW5ndGgoJGJyZWFrcG9pbnQtbmFtZXMpLCBudGgoJGJyZWFrcG9pbnQtbmFtZXMsICRuICsgMSksIG51bGwpO1xyXG59XHJcblxyXG4vLyBNaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE51bGwgZm9yIHRoZSBzbWFsbGVzdCAoZmlyc3QpIGJyZWFrcG9pbnQuXHJcbi8vXHJcbi8vICAgID4+IGJyZWFrcG9pbnQtbWluKHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxyXG4vLyAgICA1NzZweFxyXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcclxuICAkbWluOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xyXG4gIEByZXR1cm4gaWYoJG1pbiAhPSAwLCAkbWluLCBudWxsKTtcclxufVxyXG5cclxuLy8gTWF4aW11bSBicmVha3BvaW50IHdpZHRoLiBOdWxsIGZvciB0aGUgbGFyZ2VzdCAobGFzdCkgYnJlYWtwb2ludC5cclxuLy8gVGhlIG1heGltdW0gdmFsdWUgaXMgY2FsY3VsYXRlZCBhcyB0aGUgbWluaW11bSBvZiB0aGUgbmV4dCBvbmUgbGVzcyAwLjAycHhcclxuLy8gdG8gd29yayBhcm91bmQgdGhlIGxpbWl0YXRpb25zIG9mIGBtaW4tYCBhbmQgYG1heC1gIHByZWZpeGVzIGFuZCB2aWV3cG9ydHMgd2l0aCBmcmFjdGlvbmFsIHdpZHRocy5cclxuLy8gU2VlIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9tZWRpYXF1ZXJpZXMtNC8jbXEtbWluLW1heFxyXG4vLyBVc2VzIDAuMDJweCByYXRoZXIgdGhhbiAwLjAxcHggdG8gd29yayBhcm91bmQgYSBjdXJyZW50IHJvdW5kaW5nIGJ1ZyBpbiBTYWZhcmkuXHJcbi8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4MjYxXHJcbi8vXHJcbi8vICAgID4+IGJyZWFrcG9pbnQtbWF4KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxyXG4vLyAgICA3NjcuOThweFxyXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcclxuICAkbmV4dDogYnJlYWtwb2ludC1uZXh0KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xyXG4gIEByZXR1cm4gaWYoJG5leHQsIGJyZWFrcG9pbnQtbWluKCRuZXh0LCAkYnJlYWtwb2ludHMpIC0gLjAyLCBudWxsKTtcclxufVxyXG5cclxuLy8gUmV0dXJucyBhIGJsYW5rIHN0cmluZyBpZiBzbWFsbGVzdCBicmVha3BvaW50LCBvdGhlcndpc2UgcmV0dXJucyB0aGUgbmFtZSB3aXRoIGEgZGFzaCBpbiBmcm9udC5cclxuLy8gVXNlZnVsIGZvciBtYWtpbmcgcmVzcG9uc2l2ZSB1dGlsaXRpZXMuXHJcbi8vXHJcbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoeHMsICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXHJcbi8vICAgIFwiXCIgIChSZXR1cm5zIGEgYmxhbmsgc3RyaW5nKVxyXG4vLyAgICA+PiBicmVha3BvaW50LWluZml4KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxyXG4vLyAgICBcIi1zbVwiXHJcbkBmdW5jdGlvbiBicmVha3BvaW50LWluZml4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XHJcbiAgQHJldHVybiBpZihicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKSA9PSBudWxsLCBcIlwiLCBcIi0jeyRuYW1lfVwiKTtcclxufVxyXG5cclxuLy8gTWVkaWEgb2YgYXQgbGVhc3QgdGhlIG1pbmltdW0gYnJlYWtwb2ludCB3aWR0aC4gTm8gcXVlcnkgZm9yIHRoZSBzbWFsbGVzdCBicmVha3BvaW50LlxyXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIHdpZGVyLlxyXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xyXG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpO1xyXG4gIEBpZiAkbWluIHtcclxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2Uge1xyXG4gICAgQGNvbnRlbnQ7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBNZWRpYSBvZiBhdCBtb3N0IHRoZSBtYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgbGFyZ2VzdCBicmVha3BvaW50LlxyXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIG5hcnJvd2VyLlxyXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1kb3duKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XHJcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50cyk7XHJcbiAgQGlmICRtYXgge1xyXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRtYXgpIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAY29udGVudDtcclxuICB9XHJcbn1cclxuXHJcbi8vIE1lZGlhIHRoYXQgc3BhbnMgbXVsdGlwbGUgYnJlYWtwb2ludCB3aWR0aHMuXHJcbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSBiZXR3ZWVuIHRoZSBtaW4gYW5kIG1heCBicmVha3BvaW50c1xyXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1iZXR3ZWVuKCRsb3dlciwgJHVwcGVyLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XHJcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJGxvd2VyLCAkYnJlYWtwb2ludHMpO1xyXG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCR1cHBlciwgJGJyZWFrcG9pbnRzKTtcclxuXHJcbiAgQGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcclxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSBhbmQgKG1heC13aWR0aDogJG1heCkge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9IEBlbHNlIGlmICRtYXggPT0gbnVsbCB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRsb3dlciwgJGJyZWFrcG9pbnRzKSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgJG1pbiA9PSBudWxsIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkdXBwZXIsICRicmVha3BvaW50cykge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vIE1lZGlhIGJldHdlZW4gdGhlIGJyZWFrcG9pbnQncyBtaW5pbXVtIGFuZCBtYXhpbXVtIHdpZHRocy5cclxuLy8gTm8gbWluaW11bSBmb3IgdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQsIGFuZCBubyBtYXhpbXVtIGZvciB0aGUgbGFyZ2VzdCBvbmUuXHJcbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSBvbmx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50LCBub3Qgdmlld3BvcnRzIGFueSB3aWRlciBvciBuYXJyb3dlci5cclxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtb25seSgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xyXG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpO1xyXG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xyXG5cclxuICBAaWYgJG1pbiAhPSBudWxsIGFuZCAkbWF4ICE9IG51bGwge1xyXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50cykge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9IEBlbHNlIGlmICRtaW4gPT0gbnVsbCB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJG5hbWUsICRicmVha3BvaW50cykge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19 */\";","export default \"/* ========================================================================\\n Component: layout\\n ========================================================================== */\\nbody, .wrapper .section-container {\\n background-color: #f5f7fa;\\n}\\n.wrapper .aside-container {\\n background-color: #fff;\\n}\\n/* ========================================================================\\n Component: top-navbar\\n ========================================================================== */\\n.topnavbar {\\n background-color: #7266ba;\\n background-image: linear-gradient(to right, #7266ba 0%, #9289ca 100%);\\n background-repeat: repeat-x;\\n}\\n@media (min-width: 992px) {\\n .topnavbar .navbar-nav > .nav-item.show > .nav-link, .topnavbar .navbar-nav > .nav-item.show > .nav-link:hover, .topnavbar .navbar-nav > .nav-item.show > .nav-link:focus {\\n box-shadow: 0 -3px 0 #5f51b0 inset;\\n }\\n}\\n.topnavbar .navbar-nav > .nav-item > .navbar-text {\\n color: #fff;\\n}\\n.topnavbar .navbar-nav > .nav-item > .nav-link,\\n.topnavbar .navbar-nav > .nav-item.show > .nav-link {\\n color: #fff;\\n}\\n.topnavbar .navbar-nav > .nav-item > .nav-link:hover, .topnavbar .navbar-nav > .nav-item > .nav-link:focus,\\n.topnavbar .navbar-nav > .nav-item.show > .nav-link:hover,\\n.topnavbar .navbar-nav > .nav-item.show > .nav-link:focus {\\n color: #443a80;\\n}\\n.topnavbar .dropdown-item.active, .topnavbar .dropdown-item:active {\\n background-color: #7266ba;\\n}\\n/* ========================================================================\\n Component: sidebar\\n ========================================================================== */\\n.sidebar {\\n background-color: #fff;\\n}\\n.sidebar .nav-heading {\\n color: #919DA8;\\n}\\n.sidebar-nav > li > a, .sidebar-nav > li > .nav-item {\\n color: #515253;\\n}\\n.sidebar-nav > li > a:focus, .sidebar-nav > li > a:hover, .sidebar-nav > li > .nav-item:focus, .sidebar-nav > li > .nav-item:hover {\\n color: #7266ba;\\n}\\n.sidebar-nav > li > a > em, .sidebar-nav > li > .nav-item > em {\\n color: inherits;\\n}\\n.sidebar-nav > li.active, .sidebar-nav > li.active > a, .sidebar-nav > li.active > .nav-item, .sidebar-nav > li.active .sidebar-nav, .sidebar-nav > li.open, .sidebar-nav > li.open > a, .sidebar-nav > li.open > .nav-item, .sidebar-nav > li.open .sidebar-nav {\\n background-color: #fcfcfc;\\n color: #7266ba;\\n}\\n.sidebar-nav > li.active > .nav-item > em, .sidebar-nav > li.active > a > em, .sidebar-nav > li.open > .nav-item > em, .sidebar-nav > li.open > a > em {\\n color: #7266ba;\\n}\\n.sidebar-nav > li.active {\\n border-left-color: #7266ba;\\n}\\n.sidebar-subnav {\\n background-color: #fff;\\n}\\n.sidebar-subnav > .sidebar-subnav-header {\\n color: #515253;\\n}\\n.sidebar-subnav > li > a, .sidebar-subnav > li > .nav-item {\\n color: #515253;\\n}\\n.sidebar-subnav > li > a:focus, .sidebar-subnav > li > a:hover, .sidebar-subnav > li > .nav-item:focus, .sidebar-subnav > li > .nav-item:hover {\\n color: #7266ba;\\n}\\n.sidebar-subnav > li.active > a, .sidebar-subnav > li.active > .nav-item {\\n color: #7266ba;\\n}\\n.sidebar-subnav > li.active > a:after, .sidebar-subnav > li.active > .nav-item:after {\\n border-color: #7266ba;\\n background-color: #7266ba;\\n}\\n/* ========================================================================\\n Component: offsidebar\\n ========================================================================== */\\n.offsidebar {\\n border-left: 1px solid greyscale(#cccccc);\\n background-color: #fff;\\n color: #656565;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL3N0eWxlcy90aGVtZXMvRDpcXEluZGlhQlVcXEFnZW50UG9vbFxcRG90TmV0XFxEb3ROZXRGcmFtZXdvcmtcXF93b3JrXFwyOTZcXHMvc3JjXFxhcHBcXHNoYXJlZFxcc3R5bGVzXFx0aGVtZXNcXHRoZW1lLWMuc2NzcyIsInNyYy9hcHAvc2hhcmVkL3N0eWxlcy90aGVtZXMvdGhlbWUtYy5zY3NzIiwic3JjL2FwcC9zaGFyZWQvc3R5bGVzL3RoZW1lcy9EOlxcSW5kaWFCVVxcQWdlbnRQb29sXFxEb3ROZXRcXERvdE5ldEZyYW1ld29ya1xcX3dvcmtcXDI5Nlxccy9zcmNcXGFwcFxcc2hhcmVkXFxzdHlsZXNcXGFwcFxcdmFyaWFibGVzLnNjc3MiLCJzcmMvYXBwL3NoYXJlZC9zdHlsZXMvdGhlbWVzL0Q6XFxJbmRpYUJVXFxBZ2VudFBvb2xcXERvdE5ldFxcRG90TmV0RnJhbWV3b3JrXFxfd29ya1xcMjk2XFxzL3NyY1xcYXBwXFxzaGFyZWRcXHN0eWxlc1xcYm9vdHN0cmFwXFxtaXhpbnNcXF9ncmFkaWVudHMuc2NzcyIsInNyYy9hcHAvc2hhcmVkL3N0eWxlcy90aGVtZXMvRDpcXEluZGlhQlVcXEFnZW50UG9vbFxcRG90TmV0XFxEb3ROZXRGcmFtZXdvcmtcXF93b3JrXFwyOTZcXHMvc3JjXFxhcHBcXHNoYXJlZFxcc3R5bGVzXFxib290c3RyYXBcXG1peGluc1xcX2JyZWFrcG9pbnRzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBOENBOzs2RUFBQTtBQUdBO0VBQ0kseUJBekM0QjtBQ0poQztBRGdEQTtFQUNJLHNCQTVDNEI7QUNEaEM7QURnREE7OzZFQUFBO0FBR0E7RUFDSSx5QkVuRG9CO0VDSXRCLHFFQUFBO0VBQ0EsMkJBQUE7QUZHRjtBRzBDSTtFSk1RO0lBQ0ksa0NBQUE7RUM3Q2Q7QUFDRjtBRGlESTtFQUNJLFdBdER3QjtBQ09oQztBRGtESTs7RUFFSSxXQTNEd0I7QUNXaEM7QURpRFE7OztFQUNJLGNBNURvQjtBQ2VoQztBRGlESTtFQUNJLHlCRTNFZ0I7QUQ0QnhCO0FEbURBOzs2RUFBQTtBQUdBO0VBQ0ksc0JBbkY0QjtBQ21DaEM7QURrREk7RUFDSSxjQTVEMEI7QUNZbEM7QUR1RFE7RUFDSSxjQTlFc0I7QUMwQmxDO0FEc0RZO0VBQ0ksY0VqR1E7QUQ2Q3hCO0FEd0RZO0VBQ0ksZUFsRmtCO0FDNEJsQztBRDZEWTtFQUNJLHlCQTVGa0I7RUE2RmxCLGNFL0dRO0FEb0R4QjtBRDhEWTtFQUNJLGNFbkhRO0FEdUR4QjtBRGlFUTtFQUNJLDBCRXpIWTtBRDBEeEI7QURzRUE7RUFDSSxzQkFqSTRCO0FDOERoQztBRHFFSTtFQUNJLGNBcEgwQjtBQ2lEbEM7QUR1RVE7RUFDSSxjQXpIc0I7QUNvRGxDO0FEdUVZO0VBQ0ksY0U1SVE7QUR1RXhCO0FEMkVZO0VBQ0ksY0VuSlE7QUQwRXhCO0FEMkVnQjtFQUNJLHFCRXRKSTtFRnVKSix5QkV2Skk7QUQ4RXhCO0FEb0ZBOzs2RUFBQTtBQUdBO0VBQ0kseUNBQUE7RUFDQSxzQkF4SXNCO0VBeUl0QixjRXJDd0I7QUQ1QzVCIiwiZmlsZSI6InNyYy9hcHAvc2hhcmVkL3N0eWxlcy90aGVtZXMvdGhlbWUtYy5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQm9vdHN0cmFwXHJcbkBpbXBvcnQgXCIuLi9ib290c3RyYXAvZnVuY3Rpb25zXCI7XHJcbkBpbXBvcnQgXCIuLi9ib290c3RyYXAvdmFyaWFibGVzXCI7XHJcbkBpbXBvcnQgXCIuLi9ib290c3RyYXAvbWl4aW5zXCI7XHJcbkBpbXBvcnQgJy4uL2FwcC92YXJpYWJsZXMnO1xyXG5cclxuXHJcbi8vIExBWU9VVFxyXG5cclxuJGNvbnRlbnQtYmc6ICAgICAgICAgICAgICAgICAgICAjZjVmN2ZhO1xyXG4kYXNpZGUtYmc6ICAgICAgICAgICAgICAgICAgICAgICNmZmY7XHJcblxyXG4vLyBOQVZCQVIgVE9QXHJcblxyXG4kbmF2LXRvcC1iZzogICAgICAgICAgICAgICAgICAgICRwdXJwbGU7XHJcbiRuYXYtdG9wLWJnLXN0YXJ0OiAgICAgICAgICAgICAgJG5hdi10b3AtYmc7XHJcbiRuYXYtdG9wLWJnLWVuZDogICAgICAgICAgICAgICAgJHB1cnBsZS1saWdodDtcclxuJG5hdi1oZWFkZXItYmc6ICAgICAgICAgICAgICAgICB0cmFuc3BhcmVudDtcclxuXHJcbiRuYXYtdG9wLWl0ZW06ICAgICAgICAgICAgICAgICAgI2ZmZjtcclxuJG5hdi10b3AtaXRlbS1hY3RpdmU6ICAgICAgICAgICBkYXJrZW4oJG5hdi10b3AtYmcsIDIwJSk7XHJcblxyXG4vLyBTSURFQkFSXHJcblxyXG4kc2lkZWJhci1iZzogICAgICAgICAgICAgICAgICAgICAgJGFzaWRlLWJnO1xyXG5cclxuJHNpZGViYXItaXRlbS1jb2xvcjogICAgICAgICAgICAgICM1MTUyNTM7XHJcbiRzaWRlYmFyLWl0ZW0tY29sb3ItYWN0aXZlOiAgICAgICAkbmF2LXRvcC1iZztcclxuJHNpZGViYXItaXRlbS1iZy1hY3RpdmU6ICAgICAgICAgIGRhcmtlbigkc2lkZWJhci1iZywgMSUpO1xyXG5cclxuJHNpZGViYXItaWNvbi1jb2xvcjogICAgICAgICAgICAgIGluaGVyaXRzO1xyXG4kc2lkZWJhci1pY29uLWNvbG9yLWFjdGl2ZTogICAgICAgJG5hdi10b3AtYmc7XHJcblxyXG4kc2lkZWJhci1idWxsZXQtY29sb3I6ICAgICAgICAgICAgcmdiYSgwLDAsMCwuMjUpO1xyXG4kc2lkZWJhci1idWxsZXQtY29sb3ItYWN0aXZlOiAgICAgJHNpZGViYXItaWNvbi1jb2xvci1hY3RpdmU7XHJcblxyXG4kc2lkZWJhci1oZWFkaW5nLWNvbG9yOiAgICAgICAgICAgIzkxOURBODtcclxuJHNpZGViYXItbGFiZWwtY29sb3I6ICAgICAgICAgICAgICRzaWRlYmFyLWl0ZW0tY29sb3I7XHJcblxyXG4vLyBPRkZTSURFQkFSXHJcblxyXG4kb2Zmc2lkZWJhci1iZzogICAgICAgICAgICNmZmY7XHJcbiRvZmZzaWRlYmFyLWJvcmRlci1jb2xvcjogZ3JleXNjYWxlKGRhcmtlbigkb2Zmc2lkZWJhci1iZywgMjAlKSk7XHJcbiRvZmZzaWRlYmFyLWNvbG9yOiAgICAgICAgJGJvZHktY29sb3I7XHJcblxyXG5cclxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIENvbXBvbmVudDogbGF5b3V0XHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5ib2R5LCAud3JhcHBlciAuc2VjdGlvbi1jb250YWluZXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbnRlbnQtYmc7XHJcbn1cclxuXHJcbi53cmFwcGVyIC5hc2lkZS1jb250YWluZXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGFzaWRlLWJnO1xyXG59XHJcblxyXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQ29tcG9uZW50OiB0b3AtbmF2YmFyXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG4udG9wbmF2YmFyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRuYXYtdG9wLWJnO1xyXG4gICAgQGluY2x1ZGUgZ3JhZGllbnQteCgkbmF2LXRvcC1iZy1zdGFydCwgJG5hdi10b3AtYmctZW5kKTtcclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKGxnKSB7XHJcbiAgICAgICAgLm5hdmJhci1uYXYgPiAubmF2LWl0ZW0uc2hvdyA+IC5uYXYtbGluayB7XHJcbiAgICAgICAgICAgICYsICY6aG92ZXIsICY6Zm9jdXMge1xyXG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCAtM3B4IDAgZGFya2VuKCRuYXYtdG9wLWJnLCA2JSkgaW5zZXQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLm5hdmJhci1uYXYgPiAubmF2LWl0ZW0gPiAubmF2YmFyLXRleHQge1xyXG4gICAgICAgIGNvbG9yOiAkbmF2LXRvcC1pdGVtO1xyXG4gICAgfVxyXG5cclxuICAgIC5uYXZiYXItbmF2ID4gLm5hdi1pdGVtID4gLm5hdi1saW5rLFxyXG4gICAgLm5hdmJhci1uYXYgPiAubmF2LWl0ZW0uc2hvdyA+IC5uYXYtbGluayB7XHJcbiAgICAgICAgY29sb3I6ICRuYXYtdG9wLWl0ZW07XHJcbiAgICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkbmF2LXRvcC1pdGVtLWFjdGl2ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmRyb3Bkb3duLWl0ZW0uYWN0aXZlLCAuZHJvcGRvd24taXRlbTphY3RpdmUge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRuYXYtdG9wLWJnO1xyXG4gICAgfVxyXG59XHJcblxyXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQ29tcG9uZW50OiBzaWRlYmFyXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG4uc2lkZWJhciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2lkZWJhci1iZztcclxuXHJcbiAgICAubmF2LWhlYWRpbmcge1xyXG4gICAgICAgIGNvbG9yOiAkc2lkZWJhci1oZWFkaW5nLWNvbG9yO1xyXG4gICAgfVxyXG59XHJcblxyXG4vLyBJdGVtc1xyXG4uc2lkZWJhci1uYXYge1xyXG4gICAgPiBsaSB7XHJcbiAgICAgICAgPiBhLCA+IC5uYXYtaXRlbSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkc2lkZWJhci1pdGVtLWNvbG9yO1xyXG5cclxuICAgICAgICAgICAgJjpmb2N1cywgJjpob3ZlciB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNpZGViYXItaXRlbS1jb2xvci1hY3RpdmU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vIEl0ZW0gaWNvblxyXG4gICAgICAgICAgICA+IGVtIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2lkZWJhci1pY29uLWNvbG9yO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gQWN0aXZlIGl0ZW0gc3RhdGVcclxuICAgICAgICAmLmFjdGl2ZSwgJi5vcGVuIHtcclxuICAgICAgICAgICAgJiwgPiBhLCA+IC5uYXYtaXRlbSwgLnNpZGViYXItbmF2IHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzaWRlYmFyLWl0ZW0tYmctYWN0aXZlO1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICRzaWRlYmFyLWl0ZW0tY29sb3ItYWN0aXZlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICA+IC5uYXYtaXRlbSA+IGVtLCA+IGEgPiBlbSB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNpZGViYXItaWNvbi1jb2xvci1hY3RpdmU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLmFjdGl2ZSB7XHJcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAkc2lkZWJhci1pdGVtLWNvbG9yLWFjdGl2ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxufVxyXG5cclxuLnNpZGViYXItc3VibmF2IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRzaWRlYmFyLWJnO1xyXG5cclxuICAgID4gLnNpZGViYXItc3VibmF2LWhlYWRlciB7XHJcbiAgICAgICAgY29sb3I6ICRzaWRlYmFyLWl0ZW0tY29sb3I7XHJcbiAgICB9XHJcblxyXG4gICAgPiBsaSB7XHJcbiAgICAgICAgPiBhLCA+IC5uYXYtaXRlbSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkc2lkZWJhci1pdGVtLWNvbG9yO1xyXG5cclxuICAgICAgICAgICAgJjpmb2N1cywgJjpob3ZlciB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNpZGViYXItaXRlbS1jb2xvci1hY3RpdmU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLmFjdGl2ZSB7XHJcbiAgICAgICAgICAgID4gYSwgPiAubmF2LWl0ZW0ge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICRzaWRlYmFyLWljb24tY29sb3ItYWN0aXZlO1xyXG5cclxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNpZGViYXItYnVsbGV0LWNvbG9yLWFjdGl2ZTtcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2lkZWJhci1idWxsZXQtY29sb3ItYWN0aXZlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxufVxyXG5cclxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIENvbXBvbmVudDogb2Zmc2lkZWJhclxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuLm9mZnNpZGViYXIge1xyXG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkb2Zmc2lkZWJhci1ib3JkZXItY29sb3I7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb2Zmc2lkZWJhci1iZztcclxuICAgIGNvbG9yOiAkb2Zmc2lkZWJhci1jb2xvcjtcclxufVxyXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogbGF5b3V0XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbmJvZHksIC53cmFwcGVyIC5zZWN0aW9uLWNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY3ZmE7XG59XG5cbi53cmFwcGVyIC5hc2lkZS1jb250YWluZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogdG9wLW5hdmJhclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udG9wbmF2YmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzcyNjZiYTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjNzI2NmJhIDAlLCAjOTI4OWNhIDEwMCUpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLnRvcG5hdmJhciAubmF2YmFyLW5hdiA+IC5uYXYtaXRlbS5zaG93ID4gLm5hdi1saW5rLCAudG9wbmF2YmFyIC5uYXZiYXItbmF2ID4gLm5hdi1pdGVtLnNob3cgPiAubmF2LWxpbms6aG92ZXIsIC50b3BuYXZiYXIgLm5hdmJhci1uYXYgPiAubmF2LWl0ZW0uc2hvdyA+IC5uYXYtbGluazpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogMCAtM3B4IDAgIzVmNTFiMCBpbnNldDtcbiAgfVxufVxuLnRvcG5hdmJhciAubmF2YmFyLW5hdiA+IC5uYXYtaXRlbSA+IC5uYXZiYXItdGV4dCB7XG4gIGNvbG9yOiAjZmZmO1xufVxuLnRvcG5hdmJhciAubmF2YmFyLW5hdiA+IC5uYXYtaXRlbSA+IC5uYXYtbGluayxcbi50b3BuYXZiYXIgLm5hdmJhci1uYXYgPiAubmF2LWl0ZW0uc2hvdyA+IC5uYXYtbGluayB7XG4gIGNvbG9yOiAjZmZmO1xufVxuLnRvcG5hdmJhciAubmF2YmFyLW5hdiA+IC5uYXYtaXRlbSA+IC5uYXYtbGluazpob3ZlciwgLnRvcG5hdmJhciAubmF2YmFyLW5hdiA+IC5uYXYtaXRlbSA+IC5uYXYtbGluazpmb2N1cyxcbi50b3BuYXZiYXIgLm5hdmJhci1uYXYgPiAubmF2LWl0ZW0uc2hvdyA+IC5uYXYtbGluazpob3Zlcixcbi50b3BuYXZiYXIgLm5hdmJhci1uYXYgPiAubmF2LWl0ZW0uc2hvdyA+IC5uYXYtbGluazpmb2N1cyB7XG4gIGNvbG9yOiAjNDQzYTgwO1xufVxuLnRvcG5hdmJhciAuZHJvcGRvd24taXRlbS5hY3RpdmUsIC50b3BuYXZiYXIgLmRyb3Bkb3duLWl0ZW06YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzcyNjZiYTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IHNpZGViYXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnNpZGViYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLnNpZGViYXIgLm5hdi1oZWFkaW5nIHtcbiAgY29sb3I6ICM5MTlEQTg7XG59XG5cbi5zaWRlYmFyLW5hdiA+IGxpID4gYSwgLnNpZGViYXItbmF2ID4gbGkgPiAubmF2LWl0ZW0ge1xuICBjb2xvcjogIzUxNTI1Mztcbn1cbi5zaWRlYmFyLW5hdiA+IGxpID4gYTpmb2N1cywgLnNpZGViYXItbmF2ID4gbGkgPiBhOmhvdmVyLCAuc2lkZWJhci1uYXYgPiBsaSA+IC5uYXYtaXRlbTpmb2N1cywgLnNpZGViYXItbmF2ID4gbGkgPiAubmF2LWl0ZW06aG92ZXIge1xuICBjb2xvcjogIzcyNjZiYTtcbn1cbi5zaWRlYmFyLW5hdiA+IGxpID4gYSA+IGVtLCAuc2lkZWJhci1uYXYgPiBsaSA+IC5uYXYtaXRlbSA+IGVtIHtcbiAgY29sb3I6IGluaGVyaXRzO1xufVxuLnNpZGViYXItbmF2ID4gbGkuYWN0aXZlLCAuc2lkZWJhci1uYXYgPiBsaS5hY3RpdmUgPiBhLCAuc2lkZWJhci1uYXYgPiBsaS5hY3RpdmUgPiAubmF2LWl0ZW0sIC5zaWRlYmFyLW5hdiA+IGxpLmFjdGl2ZSAuc2lkZWJhci1uYXYsIC5zaWRlYmFyLW5hdiA+IGxpLm9wZW4sIC5zaWRlYmFyLW5hdiA+IGxpLm9wZW4gPiBhLCAuc2lkZWJhci1uYXYgPiBsaS5vcGVuID4gLm5hdi1pdGVtLCAuc2lkZWJhci1uYXYgPiBsaS5vcGVuIC5zaWRlYmFyLW5hdiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmY2ZjZmM7XG4gIGNvbG9yOiAjNzI2NmJhO1xufVxuLnNpZGViYXItbmF2ID4gbGkuYWN0aXZlID4gLm5hdi1pdGVtID4gZW0sIC5zaWRlYmFyLW5hdiA+IGxpLmFjdGl2ZSA+IGEgPiBlbSwgLnNpZGViYXItbmF2ID4gbGkub3BlbiA+IC5uYXYtaXRlbSA+IGVtLCAuc2lkZWJhci1uYXYgPiBsaS5vcGVuID4gYSA+IGVtIHtcbiAgY29sb3I6ICM3MjY2YmE7XG59XG4uc2lkZWJhci1uYXYgPiBsaS5hY3RpdmUge1xuICBib3JkZXItbGVmdC1jb2xvcjogIzcyNjZiYTtcbn1cblxuLnNpZGViYXItc3VibmF2IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cbi5zaWRlYmFyLXN1Ym5hdiA+IC5zaWRlYmFyLXN1Ym5hdi1oZWFkZXIge1xuICBjb2xvcjogIzUxNTI1Mztcbn1cbi5zaWRlYmFyLXN1Ym5hdiA+IGxpID4gYSwgLnNpZGViYXItc3VibmF2ID4gbGkgPiAubmF2LWl0ZW0ge1xuICBjb2xvcjogIzUxNTI1Mztcbn1cbi5zaWRlYmFyLXN1Ym5hdiA+IGxpID4gYTpmb2N1cywgLnNpZGViYXItc3VibmF2ID4gbGkgPiBhOmhvdmVyLCAuc2lkZWJhci1zdWJuYXYgPiBsaSA+IC5uYXYtaXRlbTpmb2N1cywgLnNpZGViYXItc3VibmF2ID4gbGkgPiAubmF2LWl0ZW06aG92ZXIge1xuICBjb2xvcjogIzcyNjZiYTtcbn1cbi5zaWRlYmFyLXN1Ym5hdiA+IGxpLmFjdGl2ZSA+IGEsIC5zaWRlYmFyLXN1Ym5hdiA+IGxpLmFjdGl2ZSA+IC5uYXYtaXRlbSB7XG4gIGNvbG9yOiAjNzI2NmJhO1xufVxuLnNpZGViYXItc3VibmF2ID4gbGkuYWN0aXZlID4gYTphZnRlciwgLnNpZGViYXItc3VibmF2ID4gbGkuYWN0aXZlID4gLm5hdi1pdGVtOmFmdGVyIHtcbiAgYm9yZGVyLWNvbG9yOiAjNzI2NmJhO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzI2NmJhO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogb2Zmc2lkZWJhclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4ub2Zmc2lkZWJhciB7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgZ3JleXNjYWxlKCNjY2NjY2MpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBjb2xvcjogIzY1NjU2NTtcbn0iLCJcclxuLy8gQ3V0b21zIEdyYXkgY29sb3JzIGZvciB0aGVtZVxyXG4kZ3JheS1kYXJrZXI6ICAgICAgICAgICAjMjMyNzM1O1xyXG4kZ3JheS1kYXJrOiAgICAgICAgICAgICAjM2EzZjUxO1xyXG4kZ3JheTogICAgICAgICAgICAgICAgICAjZGRlNmU5O1xyXG4kZ3JheS1saWdodDogICAgICAgICAgICAjZTRlYWVjO1xyXG4kZ3JheS1saWdodGVyOiAgICAgICAgICAjZWRmMWYyO1xyXG5cclxuLy8gQ3VzdG9tIGJyYW5kIGNvbG9ycyBmb3IgdGhlbWVcclxuJGludmVyc2U6ICAgICAgICAgICAgICAgIzEzMWUyNjtcclxuJHB1cnBsZTogICAgICAgICAgICAgICAgIzcyNjZiYTtcclxuJHBpbms6ICAgICAgICAgICAgICAgICAgI2Y1MzJlNTtcclxuJHllbGxvdzogICAgICAgICAgICAgICAgI2ZhZDczMjtcclxuJGdyZWVuOiAgICAgICAgICAgICAgICAgIzMxQjQ0QTtcclxuXHJcbiRwcmltYXJ5OiAgICAgICAgICAgICAgICMwMEFCRTc7XHJcbiRzZWNvbmRhcnk6ICAgICAgICAgICAgICNmZmY7XHJcbiRzdWNjZXNzOiAgICAgICAgICAgICAgICMyN2MyNGM7XHJcbiRpbmZvOiAgICAgICAgICAgICAgICAgICM4NkJDMjUgIDtcclxuJHdhcm5pbmc6ICAgICAgICAgICAgICAgI2ZmOTAyYjtcclxuJGRhbmdlcjogICAgICAgICAgICAgICAgI2YwNTA1MDtcclxuJGRhcms6ICAgICAgICAgICAgICAgICAgIzNhM2Y1MTtcclxuXHJcbi8vIEN1c3RvbSBjb2xvciB2YXJpYW50c1xyXG4kYW1vdW50T2ZMaWdodDogMTAlO1xyXG5cclxuJHByaW1hcnktbGlnaHQ6ICAgICAgICAgbGlnaHRlbigkcHJpbWFyeSwgJGFtb3VudE9mTGlnaHQpO1xyXG4kc3VjY2Vzcy1saWdodDogICAgICAgICBsaWdodGVuKCRzdWNjZXNzLCAkYW1vdW50T2ZMaWdodCk7XHJcbiRpbmZvLWxpZ2h0OiAgICAgICAgICAgIGxpZ2h0ZW4oJGluZm8sICRhbW91bnRPZkxpZ2h0KTtcclxuJHdhcm5pbmctbGlnaHQ6ICAgICAgICAgbGlnaHRlbigkd2FybmluZywgJGFtb3VudE9mTGlnaHQpO1xyXG4kZGFuZ2VyLWxpZ2h0OiAgICAgICAgICBsaWdodGVuKCRkYW5nZXIsICRhbW91bnRPZkxpZ2h0KTtcclxuJGludmVyc2UtbGlnaHQ6ICAgICAgICAgbGlnaHRlbigkaW52ZXJzZSwgJGFtb3VudE9mTGlnaHQpO1xyXG4kZ3JlZW4tbGlnaHQ6ICAgICAgICAgICBsaWdodGVuKCRncmVlbiwgJGFtb3VudE9mTGlnaHQpO1xyXG4kcGluay1saWdodDogICAgICAgICAgICBsaWdodGVuKCRwaW5rLCAkYW1vdW50T2ZMaWdodCk7XHJcbiRwdXJwbGUtbGlnaHQ6ICAgICAgICAgIGxpZ2h0ZW4oJHB1cnBsZSwgJGFtb3VudE9mTGlnaHQpO1xyXG4keWVsbG93LWxpZ2h0OiAgICAgICAgICBsaWdodGVuKCR5ZWxsb3csICRhbW91bnRPZkxpZ2h0KTtcclxuJHByaW1hcnktZGFyazogICAgICAgICAgZGFya2VuKCRwcmltYXJ5LCAkYW1vdW50T2ZMaWdodCk7XHJcbiRzdWNjZXNzLWRhcms6ICAgICAgICAgIGRhcmtlbigkc3VjY2VzcywgJGFtb3VudE9mTGlnaHQpO1xyXG4kaW5mby1kYXJrOiAgICAgICAgICAgICBkYXJrZW4oJGluZm8sICRhbW91bnRPZkxpZ2h0KTtcclxuJHdhcm5pbmctZGFyazogICAgICAgICAgZGFya2VuKCR3YXJuaW5nLCAkYW1vdW50T2ZMaWdodCk7XHJcbiRkYW5nZXItZGFyazogICAgICAgICAgIGRhcmtlbigkZGFuZ2VyLCAkYW1vdW50T2ZMaWdodCk7XHJcbiRpbnZlcnNlLWRhcms6ICAgICAgICAgIGRhcmtlbigkaW52ZXJzZSwgJGFtb3VudE9mTGlnaHQpO1xyXG4kZ3JlZW4tZGFyazogICAgICAgICAgICBkYXJrZW4oJGdyZWVuLCAkYW1vdW50T2ZMaWdodCk7XHJcbiRwaW5rLWRhcms6ICAgICAgICAgICAgIGRhcmtlbigkcGluaywgJGFtb3VudE9mTGlnaHQpO1xyXG4kcHVycGxlLWRhcms6ICAgICAgICAgICBkYXJrZW4oJHB1cnBsZSwgJGFtb3VudE9mTGlnaHQpO1xyXG4keWVsbG93LWRhcms6ICAgICAgICAgICBkYXJrZW4oJHllbGxvdywgJGFtb3VudE9mTGlnaHQpO1xyXG5cclxuLy8gVGhlbWUgdmFyaWFibGVzXHJcblxyXG4vLyB1c2VkIGZvciBzaWRlYmFycyBhbmQgY29udGVudCBzcGFjaW5nXHJcbiRuYXZiYXItaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgNTVweDtcclxuXHJcbi8vIEJ1dHRvbiBzZWNvbmRhcnkgcmVkZWZpbml0aW9uIHN0eWxlIGZvciB0aGVtZVxyXG4kYnRuLXNlY29uZGFyeS1jb2xvcjogICAgICAgICAgICAgICMzMzM7XHJcbiRidG4tc2Vjb25kYXJ5LWJnOiAgICAgICAgICAgICAgICAgI2ZmZjtcclxuJGJ0bi1zZWNvbmRhcnktYm9yZGVyOiAgICAgICAgICAgICAjZWFlYWVhO1xyXG5cclxuLy8gVG9wIEJvcmRlciBjb2xvciBmb3IgY3VzdG9tIGRlZmF1bHQgY2FyZHMgKC5jYXJkLWRlZmF1bHQpXHJcbiRjYXJkLWRlZmF1bHQtYm9yZGVyLWNvbG9yOiAgICAgICAgI2NmZGJlMjtcclxuXHJcblxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuLy8gVXRpbGl0aWVzIHZhcmlhYmxlc1xyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiR0ZXh0LWFscGhhOiAgICAgICAgICAgIHJnYmEoMjU1LDI1NSwyNTUsLjUpO1xyXG4kdGV4dC1hbHBoYS1pbnZlcnNlOiAgICByZ2JhKDAsMCwwLC41KTtcclxuXHJcbiRmb250LXNpemUtYmFzZTogICAgICAgIDFyZW07XHJcbiR0ZXh0LXNtOiAgICAgICAgICAgICAgICRmb250LXNpemUtYmFzZSAqIDAuNzQzNzU7XHJcbiR0ZXh0LW1kOiAgICAgICAgICAgICAgICRmb250LXNpemUtYmFzZSAqIDEuNjYyNTtcclxuJHRleHQtbGc6ICAgICAgICAgICAgICAgJGZvbnQtc2l6ZS1iYXNlICogMi42MjU7XHJcblxyXG4kYm9yZGVyLWNvbG9yOiAgICAgICAgICByZ2JhKDAsMCwwLC4xMik7XHJcblxyXG4kd2QteHhzOiAgICAgICAgICAgICAgICA2MHB4O1xyXG4kd2QteHM6ICAgICAgICAgICAgICAgICA5MHB4O1xyXG4kd2Qtc206ICAgICAgICAgICAgICAgICAxNTBweDtcclxuJHdkLXNkOiAgICAgICAgICAgICAgICAgMjAwcHg7IC8vIHNkID09IHN0YW5kYXJkXHJcbiR3ZC1tZDogICAgICAgICAgICAgICAgIDI0MHB4O1xyXG4kd2QtbGc6ICAgICAgICAgICAgICAgICAyODBweDtcclxuJHdkLXhsOiAgICAgICAgICAgICAgICAgMzIwcHg7XHJcbiR3ZC14eGw6ICAgICAgICAgICAgICAgIDM2MHB4O1xyXG4kd2Qtd2lkZTogICAgICAgICAgICAgICAxMDAlO1xyXG4kd2QtYXV0bzogICAgICAgICAgICAgICBhdXRvO1xyXG4kd2QtemVybzogICAgICAgICAgICAgICAwO1xyXG5cclxuXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4vLyBCb290c3RyYXAgNCBWYXJpYWJsZXMgT3ZlcnJpZGVcclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4vLyBDb2xvciBzeXN0ZW1cclxuXHJcbiRjb2xvcnM6IChcclxuICAgIFwicHVycGxlXCI6ICAgICAkcHVycGxlLFxyXG4gICAgXCJwaW5rXCI6ICAgICAgICRwaW5rLFxyXG4gICAgXCJ5ZWxsb3dcIjogICAgICR5ZWxsb3csXHJcbiAgICBcImdyZWVuXCI6ICAgICAgJGdyZWVuLFxyXG4gICAgXCJwcmltYXJ5XCI6ICAgICRwcmltYXJ5LFxyXG4gICAgXCJzdWNjZXNzXCI6ICAgICRzdWNjZXNzLFxyXG4gICAgXCJpbmZvXCI6ICAgICAgICRpbmZvLFxyXG4gICAgXCJ3YXJuaW5nXCI6ICAgICR3YXJuaW5nLFxyXG4gICAgXCJkYW5nZXJcIjogICAgICRkYW5nZXIsXHJcbiAgICAnaW52ZXJzZSc6ICAgICRpbnZlcnNlLFxyXG5cclxuICAgICdwcmltYXJ5LWxpZ2h0JzogJHByaW1hcnktbGlnaHQsXHJcbiAgICAncHJpbWFyeS1kYXJrJzogICRwcmltYXJ5LWRhcmssXHJcbiAgICAnc3VjY2Vzcy1saWdodCc6ICRzdWNjZXNzLWxpZ2h0LFxyXG4gICAgJ3N1Y2Nlc3MtZGFyayc6ICAkc3VjY2Vzcy1kYXJrLFxyXG4gICAgJ2luZm8tbGlnaHQnOiAgICAkaW5mby1saWdodCxcclxuICAgICdpbmZvLWRhcmsnOiAgICAgJGluZm8tZGFyayxcclxuICAgICd3YXJuaW5nLWxpZ2h0JzogJHdhcm5pbmctbGlnaHQsXHJcbiAgICAnd2FybmluZy1kYXJrJzogICR3YXJuaW5nLWRhcmssXHJcbiAgICAnZGFuZ2VyLWxpZ2h0JzogICRkYW5nZXItbGlnaHQsXHJcbiAgICAnZGFuZ2VyLWRhcmsnOiAgICRkYW5nZXItZGFyayxcclxuICAgICdncmVlbi1saWdodCc6ICAgJGdyZWVuLWxpZ2h0LFxyXG4gICAgJ2dyZWVuLWRhcmsnOiAgICAkZ3JlZW4tZGFyayxcclxuICAgICdwaW5rLWxpZ2h0JzogICAgJHBpbmstbGlnaHQsXHJcbiAgICAncGluay1kYXJrJzogICAgICRwaW5rLWRhcmssXHJcbiAgICAncHVycGxlLWxpZ2h0JzogICRwdXJwbGUtbGlnaHQsXHJcbiAgICAncHVycGxlLWRhcmsnOiAgICRwdXJwbGUtZGFyayxcclxuICAgICdpbnZlcnNlLWxpZ2h0JzogJGludmVyc2UtbGlnaHQsXHJcbiAgICAnaW52ZXJzZS1kYXJrJzogICRpbnZlcnNlLWRhcmssXHJcbiAgICAneWVsbG93LWxpZ2h0JzogICR5ZWxsb3ctbGlnaHQsXHJcbiAgICAneWVsbG93LWRhcmsnOiAgICR5ZWxsb3ctZGFyayxcclxuKTtcclxuXHJcblxyXG4kdGhlbWUtY29sb3JzOiAoXHJcbiAgXCJwcmltYXJ5XCI6ICAgICRwcmltYXJ5LFxyXG4gIFwic2Vjb25kYXJ5XCI6ICAkc2Vjb25kYXJ5LFxyXG4gIFwic3VjY2Vzc1wiOiAgICAkc3VjY2VzcyxcclxuICBcImluZm9cIjogICAgICAgJGluZm8sXHJcbiAgXCJ3YXJuaW5nXCI6ICAgICR3YXJuaW5nLFxyXG4gIFwiZGFuZ2VyXCI6ICAgICAkZGFuZ2VyXHJcbik7XHJcblxyXG4vLyBCb2R5XHJcblxyXG4kYm9keS1iZzogICAgICAgICAgICAgICAgICAgI2Y1ZjdmYTtcclxuJGJvZHktY29sb3I6ICAgICAgICAgICAgICAgICM2NTY1NjU7XHJcblxyXG4kYm9yZGVyLXJhZGl1czogICAgICAgICAgICAgICAuMjVyZW07XHJcbiRib3JkZXItcmFkaXVzLWxnOiAgICAgICAgICAgIC4zNzVyZW07XHJcblxyXG4kbGluZS1oZWlnaHQtYmFzZTogICAgICAgICAgICAxLjUyODU3MTQyOTtcclxuXHJcbiRoZWFkaW5ncy1saW5lLWhlaWdodDogICAgICAgIDEuMTtcclxuXHJcbiR0ZXh0LW11dGVkOiAgICAgICAgICAgICAgICAgICM5MDlGQTc7XHJcblxyXG4vLyBUYWJsZXNcclxuXHJcbiR0YWJsZS1hY2NlbnQtYmc6ICAgICAgICAgICAgICNmYWZiZmM7XHJcbiR0YWJsZS1ob3Zlci1iZzogICAgICAgICAgICAgICNmYWZiZmM7XHJcblxyXG4kdGFibGUtYm9yZGVyLWNvbG9yOiAgICAgICAgICAjZWVlO1xyXG5cclxuLy8gQnV0dG9ucyArIEZvcm1zXHJcblxyXG4kaW5wdXQtYnRuLXBhZGRpbmcteTogICAgICAgICAuMzc1cmVtO1xyXG4kaW5wdXQtYnRuLXBhZGRpbmcteDogICAgICAgICAxcmVtO1xyXG5cclxuJGlucHV0LWJ0bi1wYWRkaW5nLXktc206ICAgICAgLjMxMjVyZW07XHJcbiRpbnB1dC1idG4tcGFkZGluZy14LXNtOiAgICAgIC42MjVyZW07XHJcblxyXG4kaW5wdXQtYnRuLXBhZGRpbmcteS1sZzogICAgICAuNjI1cmVtO1xyXG4kaW5wdXQtYnRuLXBhZGRpbmcteC1sZzogICAgICAxLjI1cmVtO1xyXG5cclxuJGlucHV0LWhlaWdodDogICAgICAgICAgICAgICAgMi4xODc1cmVtOyAvLyAzNXB4XHJcblxyXG4vLyBGb3Jtc1xyXG5cclxuJGlucHV0LWRpc2FibGVkLWJnOiAgICAgICAgICAgICAgICAgICAgICRncmF5LWxpZ2h0ZXI7XHJcbiRpbnB1dC1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAkZ3JheTtcclxuJGlucHV0LWZvY3VzLWJvcmRlci1jb2xvcjogICAgICAgICAgICAgICM2NmFmZTk7XHJcbiRpbnB1dC1wbGFjZWhvbGRlci1jb2xvcjogICAgICAgICAgICAgICAjYjdiYWM5O1xyXG5cclxuJGZvcm0tZmVlZGJhY2staWNvbi12YWxpZDogICAgICAgICAgICAgIG5vbmU7XHJcbiRmb3JtLWZlZWRiYWNrLWljb24taW52YWxpZDogICAgICAgICAgICBub25lO1xyXG5cclxuJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1hY3RpdmUtYmc6ICAgIGxpZ2h0ZW4oJHByaW1hcnksIDI1JSk7XHJcblxyXG4vLyBEcm9wZG93bnNcclxuXHJcbiRkcm9wZG93bi1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICNlMWUxZTE7XHJcblxyXG4vLyBOYXZzXHJcblxyXG4kbmF2LXRhYnMtbGluay1hY3RpdmUtYmc6ICAgICAgICAgICAjZmZmO1xyXG5cclxuLy8gSnVtYm90cm9uXHJcblxyXG4kanVtYm90cm9uLWJnOiAgICAgICAgICAgICAgICAgICAgICAjZmNmY2ZjO1xyXG5cclxuLy8gTGlzdCBncm91cFxyXG5cclxuJGxpc3QtZ3JvdXAtYm9yZGVyLWNvbG9yOiAgICAgICAgICAgI2U0ZWFlYztcclxuXHJcbi8vIEltYWdlIHRodW1ibmFpbHNcclxuXHJcbiR0aHVtYm5haWwtcGFkZGluZzogICAgICAgICAgICAgICAgIC4xMjVyZW07XHJcblxyXG5cclxuLy8gQnJlYWRjcnVtYnNcclxuXHJcbiRicmVhZGNydW1iLWJnOiAgICAgICAgICAgICAgICAgICAgICNmYWZhZmE7XHJcbiRicmVhZGNydW1iLWRpdmlkZXItY29sb3I6ICAgICAgICAgICNjMWMyYzM7XHJcbiRicmVhZGNydW1iLWFjdGl2ZS1jb2xvcjogICAgICAgICAgICRib2R5LWNvbG9yO1xyXG4iLCIvLyBHcmFkaWVudHNcclxuXHJcbkBtaXhpbiBncmFkaWVudC1iZygkY29sb3IpIHtcclxuICBAaWYgJGVuYWJsZS1ncmFkaWVudHMge1xyXG4gICAgYmFja2dyb3VuZDogJGNvbG9yIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIG1peCgkYm9keS1iZywgJGNvbG9yLCAxNSUpLCAkY29sb3IpIHJlcGVhdC14O1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xyXG4gIH1cclxufVxyXG5cclxuLy8gSG9yaXpvbnRhbCBncmFkaWVudCwgZnJvbSBsZWZ0IHRvIHJpZ2h0XHJcbi8vXHJcbi8vIENyZWF0ZXMgdHdvIGNvbG9yIHN0b3BzLCBzdGFydCBhbmQgZW5kLCBieSBzcGVjaWZ5aW5nIGEgY29sb3IgYW5kIHBvc2l0aW9uIGZvciBlYWNoIGNvbG9yIHN0b3AuXHJcbkBtaXhpbiBncmFkaWVudC14KCRzdGFydC1jb2xvcjogJGdyYXktNzAwLCAkZW5kLWNvbG9yOiAkZ3JheS04MDAsICRzdGFydC1wZXJjZW50OiAwJSwgJGVuZC1wZXJjZW50OiAxMDAlKSB7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAkc3RhcnQtY29sb3IgJHN0YXJ0LXBlcmNlbnQsICRlbmQtY29sb3IgJGVuZC1wZXJjZW50KTtcclxuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XHJcbn1cclxuXHJcbi8vIFZlcnRpY2FsIGdyYWRpZW50LCBmcm9tIHRvcCB0byBib3R0b21cclxuLy9cclxuLy8gQ3JlYXRlcyB0d28gY29sb3Igc3RvcHMsIHN0YXJ0IGFuZCBlbmQsIGJ5IHNwZWNpZnlpbmcgYSBjb2xvciBhbmQgcG9zaXRpb24gZm9yIGVhY2ggY29sb3Igc3RvcC5cclxuQG1peGluIGdyYWRpZW50LXkoJHN0YXJ0LWNvbG9yOiAkZ3JheS03MDAsICRlbmQtY29sb3I6ICRncmF5LTgwMCwgJHN0YXJ0LXBlcmNlbnQ6IDAlLCAkZW5kLXBlcmNlbnQ6IDEwMCUpIHtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAkc3RhcnQtY29sb3IgJHN0YXJ0LXBlcmNlbnQsICRlbmQtY29sb3IgJGVuZC1wZXJjZW50KTtcclxuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XHJcbn1cclxuXHJcbkBtaXhpbiBncmFkaWVudC1kaXJlY3Rpb25hbCgkc3RhcnQtY29sb3I6ICRncmF5LTcwMCwgJGVuZC1jb2xvcjogJGdyYXktODAwLCAkZGVnOiA0NWRlZykge1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgkZGVnLCAkc3RhcnQtY29sb3IsICRlbmQtY29sb3IpO1xyXG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcclxufVxyXG5AbWl4aW4gZ3JhZGllbnQteC10aHJlZS1jb2xvcnMoJHN0YXJ0LWNvbG9yOiAkYmx1ZSwgJG1pZC1jb2xvcjogJHB1cnBsZSwgJGNvbG9yLXN0b3A6IDUwJSwgJGVuZC1jb2xvcjogJHJlZCkge1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJHN0YXJ0LWNvbG9yLCAkbWlkLWNvbG9yICRjb2xvci1zdG9wLCAkZW5kLWNvbG9yKTtcclxuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG59XHJcbkBtaXhpbiBncmFkaWVudC15LXRocmVlLWNvbG9ycygkc3RhcnQtY29sb3I6ICRibHVlLCAkbWlkLWNvbG9yOiAkcHVycGxlLCAkY29sb3Itc3RvcDogNTAlLCAkZW5kLWNvbG9yOiAkcmVkKSB7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KCRzdGFydC1jb2xvciwgJG1pZC1jb2xvciAkY29sb3Itc3RvcCwgJGVuZC1jb2xvcik7XHJcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxufVxyXG5AbWl4aW4gZ3JhZGllbnQtcmFkaWFsKCRpbm5lci1jb2xvcjogJGdyYXktNzAwLCAkb3V0ZXItY29sb3I6ICRncmF5LTgwMCkge1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUsICRpbm5lci1jb2xvciwgJG91dGVyLWNvbG9yKTtcclxuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG59XHJcbkBtaXhpbiBncmFkaWVudC1zdHJpcGVkKCRjb2xvcjogcmdiYSgkd2hpdGUsIC4xNSksICRhbmdsZTogNDVkZWcpIHtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoJGFuZ2xlLCAkY29sb3IgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgJGNvbG9yIDUwJSwgJGNvbG9yIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XHJcbn1cclxuIiwiLy8gQnJlYWtwb2ludCB2aWV3cG9ydCBzaXplcyBhbmQgbWVkaWEgcXVlcmllcy5cclxuLy9cclxuLy8gQnJlYWtwb2ludHMgYXJlIGRlZmluZWQgYXMgYSBtYXAgb2YgKG5hbWU6IG1pbmltdW0gd2lkdGgpLCBvcmRlciBmcm9tIHNtYWxsIHRvIGxhcmdlOlxyXG4vL1xyXG4vLyAgICAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpXHJcbi8vXHJcbi8vIFRoZSBtYXAgZGVmaW5lZCBpbiB0aGUgYCRncmlkLWJyZWFrcG9pbnRzYCBnbG9iYWwgdmFyaWFibGUgaXMgdXNlZCBhcyB0aGUgYCRicmVha3BvaW50c2AgYXJndW1lbnQgYnkgZGVmYXVsdC5cclxuXHJcbi8vIE5hbWUgb2YgdGhlIG5leHQgYnJlYWtwb2ludCwgb3IgbnVsbCBmb3IgdGhlIGxhc3QgYnJlYWtwb2ludC5cclxuLy9cclxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtKVxyXG4vLyAgICBtZFxyXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXHJcbi8vICAgIG1kXHJcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgJGJyZWFrcG9pbnQtbmFtZXM6ICh4cyBzbSBtZCBsZyB4bCkpXHJcbi8vICAgIG1kXHJcbkBmdW5jdGlvbiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMsICRicmVha3BvaW50LW5hbWVzOiBtYXAta2V5cygkYnJlYWtwb2ludHMpKSB7XHJcbiAgJG46IGluZGV4KCRicmVha3BvaW50LW5hbWVzLCAkbmFtZSk7XHJcbiAgQHJldHVybiBpZigkbiAhPSBudWxsIGFuZCAkbiA8IGxlbmd0aCgkYnJlYWtwb2ludC1uYW1lcyksIG50aCgkYnJlYWtwb2ludC1uYW1lcywgJG4gKyAxKSwgbnVsbCk7XHJcbn1cclxuXHJcbi8vIE1pbmltdW0gYnJlYWtwb2ludCB3aWR0aC4gTnVsbCBmb3IgdGhlIHNtYWxsZXN0IChmaXJzdCkgYnJlYWtwb2ludC5cclxuLy9cclxuLy8gICAgPj4gYnJlYWtwb2ludC1taW4oc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXHJcbi8vICAgIDU3NnB4XHJcbkBmdW5jdGlvbiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xyXG4gICRtaW46IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XHJcbiAgQHJldHVybiBpZigkbWluICE9IDAsICRtaW4sIG51bGwpO1xyXG59XHJcblxyXG4vLyBNYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguIE51bGwgZm9yIHRoZSBsYXJnZXN0IChsYXN0KSBicmVha3BvaW50LlxyXG4vLyBUaGUgbWF4aW11bSB2YWx1ZSBpcyBjYWxjdWxhdGVkIGFzIHRoZSBtaW5pbXVtIG9mIHRoZSBuZXh0IG9uZSBsZXNzIDAuMDJweFxyXG4vLyB0byB3b3JrIGFyb3VuZCB0aGUgbGltaXRhdGlvbnMgb2YgYG1pbi1gIGFuZCBgbWF4LWAgcHJlZml4ZXMgYW5kIHZpZXdwb3J0cyB3aXRoIGZyYWN0aW9uYWwgd2lkdGhzLlxyXG4vLyBTZWUgaHR0cHM6Ly93d3cudzMub3JnL1RSL21lZGlhcXVlcmllcy00LyNtcS1taW4tbWF4XHJcbi8vIFVzZXMgMC4wMnB4IHJhdGhlciB0aGFuIDAuMDFweCB0byB3b3JrIGFyb3VuZCBhIGN1cnJlbnQgcm91bmRpbmcgYnVnIGluIFNhZmFyaS5cclxuLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzgyNjFcclxuLy9cclxuLy8gICAgPj4gYnJlYWtwb2ludC1tYXgoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXHJcbi8vICAgIDc2Ny45OHB4XHJcbkBmdW5jdGlvbiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xyXG4gICRuZXh0OiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50cyk7XHJcbiAgQHJldHVybiBpZigkbmV4dCwgYnJlYWtwb2ludC1taW4oJG5leHQsICRicmVha3BvaW50cykgLSAuMDIsIG51bGwpO1xyXG59XHJcblxyXG4vLyBSZXR1cm5zIGEgYmxhbmsgc3RyaW5nIGlmIHNtYWxsZXN0IGJyZWFrcG9pbnQsIG90aGVyd2lzZSByZXR1cm5zIHRoZSBuYW1lIHdpdGggYSBkYXNoIGluIGZyb250LlxyXG4vLyBVc2VmdWwgZm9yIG1ha2luZyByZXNwb25zaXZlIHV0aWxpdGllcy5cclxuLy9cclxuLy8gICAgPj4gYnJlYWtwb2ludC1pbmZpeCh4cywgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcclxuLy8gICAgXCJcIiAgKFJldHVybnMgYSBibGFuayBzdHJpbmcpXHJcbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXHJcbi8vICAgIFwiLXNtXCJcclxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtaW5maXgoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcclxuICBAcmV0dXJuIGlmKGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpID09IG51bGwsIFwiXCIsIFwiLSN7JG5hbWV9XCIpO1xyXG59XHJcblxyXG4vLyBNZWRpYSBvZiBhdCBsZWFzdCB0aGUgbWluaW11bSBicmVha3BvaW50IHdpZHRoLiBObyBxdWVyeSBmb3IgdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQuXHJcbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCBhbmQgd2lkZXIuXHJcbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LXVwKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XHJcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XHJcbiAgQGlmICRtaW4ge1xyXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAY29udGVudDtcclxuICB9XHJcbn1cclxuXHJcbi8vIE1lZGlhIG9mIGF0IG1vc3QgdGhlIG1heGltdW0gYnJlYWtwb2ludCB3aWR0aC4gTm8gcXVlcnkgZm9yIHRoZSBsYXJnZXN0IGJyZWFrcG9pbnQuXHJcbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCBhbmQgbmFycm93ZXIuXHJcbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWRvd24oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcclxuICAkbWF4OiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcclxuICBAaWYgJG1heCB7XHJcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG1heCkge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9IEBlbHNlIHtcclxuICAgIEBjb250ZW50O1xyXG4gIH1cclxufVxyXG5cclxuLy8gTWVkaWEgdGhhdCBzcGFucyBtdWx0aXBsZSBicmVha3BvaW50IHdpZHRocy5cclxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IGJldHdlZW4gdGhlIG1pbiBhbmQgbWF4IGJyZWFrcG9pbnRzXHJcbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWJldHdlZW4oJGxvd2VyLCAkdXBwZXIsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcclxuICAkbWluOiBicmVha3BvaW50LW1pbigkbG93ZXIsICRicmVha3BvaW50cyk7XHJcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJHVwcGVyLCAkYnJlYWtwb2ludHMpO1xyXG5cclxuICBAaWYgJG1pbiAhPSBudWxsIGFuZCAkbWF4ICE9IG51bGwge1xyXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGxvd2VyLCAkYnJlYWtwb2ludHMpIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSBpZiAkbWluID09IG51bGwge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCR1cHBlciwgJGJyZWFrcG9pbnRzKSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8gTWVkaWEgYmV0d2VlbiB0aGUgYnJlYWtwb2ludCdzIG1pbmltdW0gYW5kIG1heGltdW0gd2lkdGhzLlxyXG4vLyBObyBtaW5pbXVtIGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludCwgYW5kIG5vIG1heGltdW0gZm9yIHRoZSBsYXJnZXN0IG9uZS5cclxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IG9ubHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQsIG5vdCB2aWV3cG9ydHMgYW55IHdpZGVyIG9yIG5hcnJvd2VyLlxyXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1vbmx5KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XHJcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XHJcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50cyk7XHJcblxyXG4gIEBpZiAkbWluICE9IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XHJcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikgYW5kIChtYXgtd2lkdGg6ICRtYXgpIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSBpZiAkbWF4ID09IG51bGwge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzKSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgJG1pbiA9PSBudWxsIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmFtZSwgJGJyZWFrcG9pbnRzKSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0= */\";","export default \"/* ========================================================================\\n Component: layout\\n ========================================================================== */\\nbody, .wrapper .section-container {\\n background-color: #f5f7fa;\\n}\\n.wrapper .aside-container {\\n background-color: #fff;\\n}\\n/* ========================================================================\\n Component: top-navbar\\n ========================================================================== */\\n.topnavbar {\\n background-color: #f05050;\\n background-image: linear-gradient(to right, #f05050 0%, #f47f7f 100%);\\n background-repeat: repeat-x;\\n}\\n@media (min-width: 992px) {\\n .topnavbar .navbar-nav > .nav-item.show > .nav-link, .topnavbar .navbar-nav > .nav-item.show > .nav-link:hover, .topnavbar .navbar-nav > .nav-item.show > .nav-link:focus {\\n box-shadow: 0 -3px 0 #ee3434 inset;\\n }\\n}\\n.topnavbar .navbar-nav > .nav-item > .navbar-text {\\n color: #fff;\\n}\\n.topnavbar .navbar-nav > .nav-item > .nav-link,\\n.topnavbar .navbar-nav > .nav-item.show > .nav-link {\\n color: #fff;\\n}\\n.topnavbar .navbar-nav > .nav-item > .nav-link:hover, .topnavbar .navbar-nav > .nav-item > .nav-link:focus,\\n.topnavbar .navbar-nav > .nav-item.show > .nav-link:hover,\\n.topnavbar .navbar-nav > .nav-item.show > .nav-link:focus {\\n color: #c91111;\\n}\\n.topnavbar .dropdown-item.active, .topnavbar .dropdown-item:active {\\n background-color: #f05050;\\n}\\n/* ========================================================================\\n Component: sidebar\\n ========================================================================== */\\n.sidebar {\\n background-color: #fff;\\n}\\n.sidebar .nav-heading {\\n color: #919DA8;\\n}\\n.sidebar-nav > li > a, .sidebar-nav > li > .nav-item {\\n color: #515253;\\n}\\n.sidebar-nav > li > a:focus, .sidebar-nav > li > a:hover, .sidebar-nav > li > .nav-item:focus, .sidebar-nav > li > .nav-item:hover {\\n color: #f05050;\\n}\\n.sidebar-nav > li > a > em, .sidebar-nav > li > .nav-item > em {\\n color: inherits;\\n}\\n.sidebar-nav > li.active, .sidebar-nav > li.active > a, .sidebar-nav > li.active > .nav-item, .sidebar-nav > li.active .sidebar-nav, .sidebar-nav > li.open, .sidebar-nav > li.open > a, .sidebar-nav > li.open > .nav-item, .sidebar-nav > li.open .sidebar-nav {\\n background-color: #fcfcfc;\\n color: #f05050;\\n}\\n.sidebar-nav > li.active > .nav-item > em, .sidebar-nav > li.active > a > em, .sidebar-nav > li.open > .nav-item > em, .sidebar-nav > li.open > a > em {\\n color: #f05050;\\n}\\n.sidebar-nav > li.active {\\n border-left-color: #f05050;\\n}\\n.sidebar-subnav {\\n background-color: #fff;\\n}\\n.sidebar-subnav > .sidebar-subnav-header {\\n color: #515253;\\n}\\n.sidebar-subnav > li > a, .sidebar-subnav > li > .nav-item {\\n color: #515253;\\n}\\n.sidebar-subnav > li > a:focus, .sidebar-subnav > li > a:hover, .sidebar-subnav > li > .nav-item:focus, .sidebar-subnav > li > .nav-item:hover {\\n color: #f05050;\\n}\\n.sidebar-subnav > li.active > a, .sidebar-subnav > li.active > .nav-item {\\n color: #f05050;\\n}\\n.sidebar-subnav > li.active > a:after, .sidebar-subnav > li.active > .nav-item:after {\\n border-color: #f05050;\\n background-color: #f05050;\\n}\\n/* ========================================================================\\n Component: offsidebar\\n ========================================================================== */\\n.offsidebar {\\n border-left: 1px solid greyscale(#cccccc);\\n background-color: #fff;\\n color: #656565;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL3N0eWxlcy90aGVtZXMvRDpcXEluZGlhQlVcXEFnZW50UG9vbFxcRG90TmV0XFxEb3ROZXRGcmFtZXdvcmtcXF93b3JrXFwyOTZcXHMvc3JjXFxhcHBcXHNoYXJlZFxcc3R5bGVzXFx0aGVtZXNcXHRoZW1lLWQuc2NzcyIsInNyYy9hcHAvc2hhcmVkL3N0eWxlcy90aGVtZXMvdGhlbWUtZC5zY3NzIiwic3JjL2FwcC9zaGFyZWQvc3R5bGVzL3RoZW1lcy9EOlxcSW5kaWFCVVxcQWdlbnRQb29sXFxEb3ROZXRcXERvdE5ldEZyYW1ld29ya1xcX3dvcmtcXDI5Nlxccy9zcmNcXGFwcFxcc2hhcmVkXFxzdHlsZXNcXGFwcFxcdmFyaWFibGVzLnNjc3MiLCJzcmMvYXBwL3NoYXJlZC9zdHlsZXMvdGhlbWVzL0Q6XFxJbmRpYUJVXFxBZ2VudFBvb2xcXERvdE5ldFxcRG90TmV0RnJhbWV3b3JrXFxfd29ya1xcMjk2XFxzL3NyY1xcYXBwXFxzaGFyZWRcXHN0eWxlc1xcYm9vdHN0cmFwXFxtaXhpbnNcXF9ncmFkaWVudHMuc2NzcyIsInNyYy9hcHAvc2hhcmVkL3N0eWxlcy90aGVtZXMvRDpcXEluZGlhQlVcXEFnZW50UG9vbFxcRG90TmV0XFxEb3ROZXRGcmFtZXdvcmtcXF93b3JrXFwyOTZcXHMvc3JjXFxhcHBcXHNoYXJlZFxcc3R5bGVzXFxib290c3RyYXBcXG1peGluc1xcX2JyZWFrcG9pbnRzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBOENBOzs2RUFBQTtBQUdBO0VBQ0kseUJBekM0QjtBQ0poQztBRGdEQTtFQUNJLHNCQTVDNEI7QUNEaEM7QURnREE7OzZFQUFBO0FBR0E7RUFDSSx5QkV6Q29CO0VDTnRCLHFFQUFBO0VBQ0EsMkJBQUE7QUZHRjtBRzBDSTtFSk1RO0lBQ0ksa0NBQUE7RUM3Q2Q7QUFDRjtBRGlESTtFQUNJLFdBdER3QjtBQ09oQztBRGtESTs7RUFFSSxXQTNEd0I7QUNXaEM7QURpRFE7OztFQUNJLGNBNURvQjtBQ2VoQztBRGlESTtFQUNJLHlCRWpFZ0I7QURrQnhCO0FEbURBOzs2RUFBQTtBQUdBO0VBQ0ksc0JBbkY0QjtBQ21DaEM7QURrREk7RUFDSSxjQTVEMEI7QUNZbEM7QUR1RFE7RUFDSSxjQTlFc0I7QUMwQmxDO0FEc0RZO0VBQ0ksY0V2RlE7QURtQ3hCO0FEd0RZO0VBQ0ksZUFsRmtCO0FDNEJsQztBRDZEWTtFQUNJLHlCQTVGa0I7RUE2RmxCLGNFckdRO0FEMEN4QjtBRDhEWTtFQUNJLGNFekdRO0FENkN4QjtBRGlFUTtFQUNJLDBCRS9HWTtBRGdEeEI7QURzRUE7RUFDSSxzQkFqSTRCO0FDOERoQztBRHFFSTtFQUNJLGNBcEgwQjtBQ2lEbEM7QUR1RVE7RUFDSSxjQXpIc0I7QUNvRGxDO0FEdUVZO0VBQ0ksY0VsSVE7QUQ2RHhCO0FEMkVZO0VBQ0ksY0V6SVE7QURnRXhCO0FEMkVnQjtFQUNJLHFCRTVJSTtFRjZJSix5QkU3SUk7QURvRXhCO0FEb0ZBOzs2RUFBQTtBQUdBO0VBQ0kseUNBQUE7RUFDQSxzQkF4SXNCO0VBeUl0QixjRXJDd0I7QUQ1QzVCIiwiZmlsZSI6InNyYy9hcHAvc2hhcmVkL3N0eWxlcy90aGVtZXMvdGhlbWUtZC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQm9vdHN0cmFwXHJcbkBpbXBvcnQgXCIuLi9ib290c3RyYXAvZnVuY3Rpb25zXCI7XHJcbkBpbXBvcnQgXCIuLi9ib290c3RyYXAvdmFyaWFibGVzXCI7XHJcbkBpbXBvcnQgXCIuLi9ib290c3RyYXAvbWl4aW5zXCI7XHJcbkBpbXBvcnQgJy4uL2FwcC92YXJpYWJsZXMnO1xyXG5cclxuXHJcbi8vIExBWU9VVFxyXG5cclxuJGNvbnRlbnQtYmc6ICAgICAgICAgICAgICAgICAgICAjZjVmN2ZhO1xyXG4kYXNpZGUtYmc6ICAgICAgICAgICAgICAgICAgICAgICNmZmY7XHJcblxyXG4vLyBOQVZCQVIgVE9QXHJcblxyXG4kbmF2LXRvcC1iZzogICAgICAgICAgICAgICAgICAgICRkYW5nZXI7XHJcbiRuYXYtdG9wLWJnLXN0YXJ0OiAgICAgICAgICAgICAgJG5hdi10b3AtYmc7XHJcbiRuYXYtdG9wLWJnLWVuZDogICAgICAgICAgICAgICAgJGRhbmdlci1saWdodDtcclxuJG5hdi1oZWFkZXItYmc6ICAgICAgICAgICAgICAgICB0cmFuc3BhcmVudDtcclxuXHJcbiRuYXYtdG9wLWl0ZW06ICAgICAgICAgICAgICAgICAgI2ZmZjtcclxuJG5hdi10b3AtaXRlbS1hY3RpdmU6ICAgICAgICAgICBkYXJrZW4oJG5hdi10b3AtYmcsIDIwJSk7XHJcblxyXG4vLyBTSURFQkFSXHJcblxyXG4kc2lkZWJhci1iZzogICAgICAgICAgICAgICAgICAgICAgJGFzaWRlLWJnO1xyXG5cclxuJHNpZGViYXItaXRlbS1jb2xvcjogICAgICAgICAgICAgICM1MTUyNTM7XHJcbiRzaWRlYmFyLWl0ZW0tY29sb3ItYWN0aXZlOiAgICAgICAkbmF2LXRvcC1iZztcclxuJHNpZGViYXItaXRlbS1iZy1hY3RpdmU6ICAgICAgICAgIGRhcmtlbigkc2lkZWJhci1iZywgMSUpO1xyXG5cclxuJHNpZGViYXItaWNvbi1jb2xvcjogICAgICAgICAgICAgIGluaGVyaXRzO1xyXG4kc2lkZWJhci1pY29uLWNvbG9yLWFjdGl2ZTogICAgICAgJG5hdi10b3AtYmc7XHJcblxyXG4kc2lkZWJhci1idWxsZXQtY29sb3I6ICAgICAgICAgICAgcmdiYSgwLDAsMCwuMjUpO1xyXG4kc2lkZWJhci1idWxsZXQtY29sb3ItYWN0aXZlOiAgICAgJHNpZGViYXItaWNvbi1jb2xvci1hY3RpdmU7XHJcblxyXG4kc2lkZWJhci1oZWFkaW5nLWNvbG9yOiAgICAgICAgICAgIzkxOURBODtcclxuJHNpZGViYXItbGFiZWwtY29sb3I6ICAgICAgICAgICAgICRzaWRlYmFyLWl0ZW0tY29sb3I7XHJcblxyXG4vLyBPRkZTSURFQkFSXHJcblxyXG4kb2Zmc2lkZWJhci1iZzogICAgICAgICAgICNmZmY7XHJcbiRvZmZzaWRlYmFyLWJvcmRlci1jb2xvcjogZ3JleXNjYWxlKGRhcmtlbigkb2Zmc2lkZWJhci1iZywgMjAlKSk7XHJcbiRvZmZzaWRlYmFyLWNvbG9yOiAgICAgICAgJGJvZHktY29sb3I7XHJcblxyXG5cclxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIENvbXBvbmVudDogbGF5b3V0XHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5ib2R5LCAud3JhcHBlciAuc2VjdGlvbi1jb250YWluZXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbnRlbnQtYmc7XHJcbn1cclxuXHJcbi53cmFwcGVyIC5hc2lkZS1jb250YWluZXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGFzaWRlLWJnO1xyXG59XHJcblxyXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQ29tcG9uZW50OiB0b3AtbmF2YmFyXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG4udG9wbmF2YmFyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRuYXYtdG9wLWJnO1xyXG4gICAgQGluY2x1ZGUgZ3JhZGllbnQteCgkbmF2LXRvcC1iZy1zdGFydCwgJG5hdi10b3AtYmctZW5kKTtcclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKGxnKSB7XHJcbiAgICAgICAgLm5hdmJhci1uYXYgPiAubmF2LWl0ZW0uc2hvdyA+IC5uYXYtbGluayB7XHJcbiAgICAgICAgICAgICYsICY6aG92ZXIsICY6Zm9jdXMge1xyXG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCAtM3B4IDAgZGFya2VuKCRuYXYtdG9wLWJnLCA2JSkgaW5zZXQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLm5hdmJhci1uYXYgPiAubmF2LWl0ZW0gPiAubmF2YmFyLXRleHQge1xyXG4gICAgICAgIGNvbG9yOiAkbmF2LXRvcC1pdGVtO1xyXG4gICAgfVxyXG5cclxuICAgIC5uYXZiYXItbmF2ID4gLm5hdi1pdGVtID4gLm5hdi1saW5rLFxyXG4gICAgLm5hdmJhci1uYXYgPiAubmF2LWl0ZW0uc2hvdyA+IC5uYXYtbGluayB7XHJcbiAgICAgICAgY29sb3I6ICRuYXYtdG9wLWl0ZW07XHJcbiAgICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkbmF2LXRvcC1pdGVtLWFjdGl2ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmRyb3Bkb3duLWl0ZW0uYWN0aXZlLCAuZHJvcGRvd24taXRlbTphY3RpdmUge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRuYXYtdG9wLWJnO1xyXG4gICAgfVxyXG59XHJcblxyXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQ29tcG9uZW50OiBzaWRlYmFyXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG4uc2lkZWJhciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2lkZWJhci1iZztcclxuXHJcbiAgICAubmF2LWhlYWRpbmcge1xyXG4gICAgICAgIGNvbG9yOiAkc2lkZWJhci1oZWFkaW5nLWNvbG9yO1xyXG4gICAgfVxyXG59XHJcblxyXG4vLyBJdGVtc1xyXG4uc2lkZWJhci1uYXYge1xyXG4gICAgPiBsaSB7XHJcbiAgICAgICAgPiBhLCA+IC5uYXYtaXRlbSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkc2lkZWJhci1pdGVtLWNvbG9yO1xyXG5cclxuICAgICAgICAgICAgJjpmb2N1cywgJjpob3ZlciB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNpZGViYXItaXRlbS1jb2xvci1hY3RpdmU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vIEl0ZW0gaWNvblxyXG4gICAgICAgICAgICA+IGVtIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2lkZWJhci1pY29uLWNvbG9yO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gQWN0aXZlIGl0ZW0gc3RhdGVcclxuICAgICAgICAmLmFjdGl2ZSwgJi5vcGVuIHtcclxuICAgICAgICAgICAgJiwgPiBhLCA+IC5uYXYtaXRlbSwgLnNpZGViYXItbmF2IHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzaWRlYmFyLWl0ZW0tYmctYWN0aXZlO1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICRzaWRlYmFyLWl0ZW0tY29sb3ItYWN0aXZlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICA+IC5uYXYtaXRlbSA+IGVtLCA+IGEgPiBlbSB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNpZGViYXItaWNvbi1jb2xvci1hY3RpdmU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLmFjdGl2ZSB7XHJcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAkc2lkZWJhci1pdGVtLWNvbG9yLWFjdGl2ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxufVxyXG5cclxuLnNpZGViYXItc3VibmF2IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRzaWRlYmFyLWJnO1xyXG5cclxuICAgID4gLnNpZGViYXItc3VibmF2LWhlYWRlciB7XHJcbiAgICAgICAgY29sb3I6ICRzaWRlYmFyLWl0ZW0tY29sb3I7XHJcbiAgICB9XHJcblxyXG4gICAgPiBsaSB7XHJcbiAgICAgICAgPiBhLCA+IC5uYXYtaXRlbSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkc2lkZWJhci1pdGVtLWNvbG9yO1xyXG5cclxuICAgICAgICAgICAgJjpmb2N1cywgJjpob3ZlciB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNpZGViYXItaXRlbS1jb2xvci1hY3RpdmU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLmFjdGl2ZSB7XHJcbiAgICAgICAgICAgID4gYSwgPiAubmF2LWl0ZW0ge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICRzaWRlYmFyLWljb24tY29sb3ItYWN0aXZlO1xyXG5cclxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNpZGViYXItYnVsbGV0LWNvbG9yLWFjdGl2ZTtcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2lkZWJhci1idWxsZXQtY29sb3ItYWN0aXZlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxufVxyXG5cclxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIENvbXBvbmVudDogb2Zmc2lkZWJhclxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuLm9mZnNpZGViYXIge1xyXG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkb2Zmc2lkZWJhci1ib3JkZXItY29sb3I7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb2Zmc2lkZWJhci1iZztcclxuICAgIGNvbG9yOiAkb2Zmc2lkZWJhci1jb2xvcjtcclxufVxyXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogbGF5b3V0XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbmJvZHksIC53cmFwcGVyIC5zZWN0aW9uLWNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY3ZmE7XG59XG5cbi53cmFwcGVyIC5hc2lkZS1jb250YWluZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogdG9wLW5hdmJhclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4udG9wbmF2YmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YwNTA1MDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjZjA1MDUwIDAlLCAjZjQ3ZjdmIDEwMCUpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLnRvcG5hdmJhciAubmF2YmFyLW5hdiA+IC5uYXYtaXRlbS5zaG93ID4gLm5hdi1saW5rLCAudG9wbmF2YmFyIC5uYXZiYXItbmF2ID4gLm5hdi1pdGVtLnNob3cgPiAubmF2LWxpbms6aG92ZXIsIC50b3BuYXZiYXIgLm5hdmJhci1uYXYgPiAubmF2LWl0ZW0uc2hvdyA+IC5uYXYtbGluazpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogMCAtM3B4IDAgI2VlMzQzNCBpbnNldDtcbiAgfVxufVxuLnRvcG5hdmJhciAubmF2YmFyLW5hdiA+IC5uYXYtaXRlbSA+IC5uYXZiYXItdGV4dCB7XG4gIGNvbG9yOiAjZmZmO1xufVxuLnRvcG5hdmJhciAubmF2YmFyLW5hdiA+IC5uYXYtaXRlbSA+IC5uYXYtbGluayxcbi50b3BuYXZiYXIgLm5hdmJhci1uYXYgPiAubmF2LWl0ZW0uc2hvdyA+IC5uYXYtbGluayB7XG4gIGNvbG9yOiAjZmZmO1xufVxuLnRvcG5hdmJhciAubmF2YmFyLW5hdiA+IC5uYXYtaXRlbSA+IC5uYXYtbGluazpob3ZlciwgLnRvcG5hdmJhciAubmF2YmFyLW5hdiA+IC5uYXYtaXRlbSA+IC5uYXYtbGluazpmb2N1cyxcbi50b3BuYXZiYXIgLm5hdmJhci1uYXYgPiAubmF2LWl0ZW0uc2hvdyA+IC5uYXYtbGluazpob3Zlcixcbi50b3BuYXZiYXIgLm5hdmJhci1uYXYgPiAubmF2LWl0ZW0uc2hvdyA+IC5uYXYtbGluazpmb2N1cyB7XG4gIGNvbG9yOiAjYzkxMTExO1xufVxuLnRvcG5hdmJhciAuZHJvcGRvd24taXRlbS5hY3RpdmUsIC50b3BuYXZiYXIgLmRyb3Bkb3duLWl0ZW06YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YwNTA1MDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IHNpZGViYXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnNpZGViYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLnNpZGViYXIgLm5hdi1oZWFkaW5nIHtcbiAgY29sb3I6ICM5MTlEQTg7XG59XG5cbi5zaWRlYmFyLW5hdiA+IGxpID4gYSwgLnNpZGViYXItbmF2ID4gbGkgPiAubmF2LWl0ZW0ge1xuICBjb2xvcjogIzUxNTI1Mztcbn1cbi5zaWRlYmFyLW5hdiA+IGxpID4gYTpmb2N1cywgLnNpZGViYXItbmF2ID4gbGkgPiBhOmhvdmVyLCAuc2lkZWJhci1uYXYgPiBsaSA+IC5uYXYtaXRlbTpmb2N1cywgLnNpZGViYXItbmF2ID4gbGkgPiAubmF2LWl0ZW06aG92ZXIge1xuICBjb2xvcjogI2YwNTA1MDtcbn1cbi5zaWRlYmFyLW5hdiA+IGxpID4gYSA+IGVtLCAuc2lkZWJhci1uYXYgPiBsaSA+IC5uYXYtaXRlbSA+IGVtIHtcbiAgY29sb3I6IGluaGVyaXRzO1xufVxuLnNpZGViYXItbmF2ID4gbGkuYWN0aXZlLCAuc2lkZWJhci1uYXYgPiBsaS5hY3RpdmUgPiBhLCAuc2lkZWJhci1uYXYgPiBsaS5hY3RpdmUgPiAubmF2LWl0ZW0sIC5zaWRlYmFyLW5hdiA+IGxpLmFjdGl2ZSAuc2lkZWJhci1uYXYsIC5zaWRlYmFyLW5hdiA+IGxpLm9wZW4sIC5zaWRlYmFyLW5hdiA+IGxpLm9wZW4gPiBhLCAuc2lkZWJhci1uYXYgPiBsaS5vcGVuID4gLm5hdi1pdGVtLCAuc2lkZWJhci1uYXYgPiBsaS5vcGVuIC5zaWRlYmFyLW5hdiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmY2ZjZmM7XG4gIGNvbG9yOiAjZjA1MDUwO1xufVxuLnNpZGViYXItbmF2ID4gbGkuYWN0aXZlID4gLm5hdi1pdGVtID4gZW0sIC5zaWRlYmFyLW5hdiA+IGxpLmFjdGl2ZSA+IGEgPiBlbSwgLnNpZGViYXItbmF2ID4gbGkub3BlbiA+IC5uYXYtaXRlbSA+IGVtLCAuc2lkZWJhci1uYXYgPiBsaS5vcGVuID4gYSA+IGVtIHtcbiAgY29sb3I6ICNmMDUwNTA7XG59XG4uc2lkZWJhci1uYXYgPiBsaS5hY3RpdmUge1xuICBib3JkZXItbGVmdC1jb2xvcjogI2YwNTA1MDtcbn1cblxuLnNpZGViYXItc3VibmF2IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cbi5zaWRlYmFyLXN1Ym5hdiA+IC5zaWRlYmFyLXN1Ym5hdi1oZWFkZXIge1xuICBjb2xvcjogIzUxNTI1Mztcbn1cbi5zaWRlYmFyLXN1Ym5hdiA+IGxpID4gYSwgLnNpZGViYXItc3VibmF2ID4gbGkgPiAubmF2LWl0ZW0ge1xuICBjb2xvcjogIzUxNTI1Mztcbn1cbi5zaWRlYmFyLXN1Ym5hdiA+IGxpID4gYTpmb2N1cywgLnNpZGViYXItc3VibmF2ID4gbGkgPiBhOmhvdmVyLCAuc2lkZWJhci1zdWJuYXYgPiBsaSA+IC5uYXYtaXRlbTpmb2N1cywgLnNpZGViYXItc3VibmF2ID4gbGkgPiAubmF2LWl0ZW06aG92ZXIge1xuICBjb2xvcjogI2YwNTA1MDtcbn1cbi5zaWRlYmFyLXN1Ym5hdiA+IGxpLmFjdGl2ZSA+IGEsIC5zaWRlYmFyLXN1Ym5hdiA+IGxpLmFjdGl2ZSA+IC5uYXYtaXRlbSB7XG4gIGNvbG9yOiAjZjA1MDUwO1xufVxuLnNpZGViYXItc3VibmF2ID4gbGkuYWN0aXZlID4gYTphZnRlciwgLnNpZGViYXItc3VibmF2ID4gbGkuYWN0aXZlID4gLm5hdi1pdGVtOmFmdGVyIHtcbiAgYm9yZGVyLWNvbG9yOiAjZjA1MDUwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjA1MDUwO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogb2Zmc2lkZWJhclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4ub2Zmc2lkZWJhciB7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgZ3JleXNjYWxlKCNjY2NjY2MpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBjb2xvcjogIzY1NjU2NTtcbn0iLCJcclxuLy8gQ3V0b21zIEdyYXkgY29sb3JzIGZvciB0aGVtZVxyXG4kZ3JheS1kYXJrZXI6ICAgICAgICAgICAjMjMyNzM1O1xyXG4kZ3JheS1kYXJrOiAgICAgICAgICAgICAjM2EzZjUxO1xyXG4kZ3JheTogICAgICAgICAgICAgICAgICAjZGRlNmU5O1xyXG4kZ3JheS1saWdodDogICAgICAgICAgICAjZTRlYWVjO1xyXG4kZ3JheS1saWdodGVyOiAgICAgICAgICAjZWRmMWYyO1xyXG5cclxuLy8gQ3VzdG9tIGJyYW5kIGNvbG9ycyBmb3IgdGhlbWVcclxuJGludmVyc2U6ICAgICAgICAgICAgICAgIzEzMWUyNjtcclxuJHB1cnBsZTogICAgICAgICAgICAgICAgIzcyNjZiYTtcclxuJHBpbms6ICAgICAgICAgICAgICAgICAgI2Y1MzJlNTtcclxuJHllbGxvdzogICAgICAgICAgICAgICAgI2ZhZDczMjtcclxuJGdyZWVuOiAgICAgICAgICAgICAgICAgIzMxQjQ0QTtcclxuXHJcbiRwcmltYXJ5OiAgICAgICAgICAgICAgICMwMEFCRTc7XHJcbiRzZWNvbmRhcnk6ICAgICAgICAgICAgICNmZmY7XHJcbiRzdWNjZXNzOiAgICAgICAgICAgICAgICMyN2MyNGM7XHJcbiRpbmZvOiAgICAgICAgICAgICAgICAgICM4NkJDMjUgIDtcclxuJHdhcm5pbmc6ICAgICAgICAgICAgICAgI2ZmOTAyYjtcclxuJGRhbmdlcjogICAgICAgICAgICAgICAgI2YwNTA1MDtcclxuJGRhcms6ICAgICAgICAgICAgICAgICAgIzNhM2Y1MTtcclxuXHJcbi8vIEN1c3RvbSBjb2xvciB2YXJpYW50c1xyXG4kYW1vdW50T2ZMaWdodDogMTAlO1xyXG5cclxuJHByaW1hcnktbGlnaHQ6ICAgICAgICAgbGlnaHRlbigkcHJpbWFyeSwgJGFtb3VudE9mTGlnaHQpO1xyXG4kc3VjY2Vzcy1saWdodDogICAgICAgICBsaWdodGVuKCRzdWNjZXNzLCAkYW1vdW50T2ZMaWdodCk7XHJcbiRpbmZvLWxpZ2h0OiAgICAgICAgICAgIGxpZ2h0ZW4oJGluZm8sICRhbW91bnRPZkxpZ2h0KTtcclxuJHdhcm5pbmctbGlnaHQ6ICAgICAgICAgbGlnaHRlbigkd2FybmluZywgJGFtb3VudE9mTGlnaHQpO1xyXG4kZGFuZ2VyLWxpZ2h0OiAgICAgICAgICBsaWdodGVuKCRkYW5nZXIsICRhbW91bnRPZkxpZ2h0KTtcclxuJGludmVyc2UtbGlnaHQ6ICAgICAgICAgbGlnaHRlbigkaW52ZXJzZSwgJGFtb3VudE9mTGlnaHQpO1xyXG4kZ3JlZW4tbGlnaHQ6ICAgICAgICAgICBsaWdodGVuKCRncmVlbiwgJGFtb3VudE9mTGlnaHQpO1xyXG4kcGluay1saWdodDogICAgICAgICAgICBsaWdodGVuKCRwaW5rLCAkYW1vdW50T2ZMaWdodCk7XHJcbiRwdXJwbGUtbGlnaHQ6ICAgICAgICAgIGxpZ2h0ZW4oJHB1cnBsZSwgJGFtb3VudE9mTGlnaHQpO1xyXG4keWVsbG93LWxpZ2h0OiAgICAgICAgICBsaWdodGVuKCR5ZWxsb3csICRhbW91bnRPZkxpZ2h0KTtcclxuJHByaW1hcnktZGFyazogICAgICAgICAgZGFya2VuKCRwcmltYXJ5LCAkYW1vdW50T2ZMaWdodCk7XHJcbiRzdWNjZXNzLWRhcms6ICAgICAgICAgIGRhcmtlbigkc3VjY2VzcywgJGFtb3VudE9mTGlnaHQpO1xyXG4kaW5mby1kYXJrOiAgICAgICAgICAgICBkYXJrZW4oJGluZm8sICRhbW91bnRPZkxpZ2h0KTtcclxuJHdhcm5pbmctZGFyazogICAgICAgICAgZGFya2VuKCR3YXJuaW5nLCAkYW1vdW50T2ZMaWdodCk7XHJcbiRkYW5nZXItZGFyazogICAgICAgICAgIGRhcmtlbigkZGFuZ2VyLCAkYW1vdW50T2ZMaWdodCk7XHJcbiRpbnZlcnNlLWRhcms6ICAgICAgICAgIGRhcmtlbigkaW52ZXJzZSwgJGFtb3VudE9mTGlnaHQpO1xyXG4kZ3JlZW4tZGFyazogICAgICAgICAgICBkYXJrZW4oJGdyZWVuLCAkYW1vdW50T2ZMaWdodCk7XHJcbiRwaW5rLWRhcms6ICAgICAgICAgICAgIGRhcmtlbigkcGluaywgJGFtb3VudE9mTGlnaHQpO1xyXG4kcHVycGxlLWRhcms6ICAgICAgICAgICBkYXJrZW4oJHB1cnBsZSwgJGFtb3VudE9mTGlnaHQpO1xyXG4keWVsbG93LWRhcms6ICAgICAgICAgICBkYXJrZW4oJHllbGxvdywgJGFtb3VudE9mTGlnaHQpO1xyXG5cclxuLy8gVGhlbWUgdmFyaWFibGVzXHJcblxyXG4vLyB1c2VkIGZvciBzaWRlYmFycyBhbmQgY29udGVudCBzcGFjaW5nXHJcbiRuYXZiYXItaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgNTVweDtcclxuXHJcbi8vIEJ1dHRvbiBzZWNvbmRhcnkgcmVkZWZpbml0aW9uIHN0eWxlIGZvciB0aGVtZVxyXG4kYnRuLXNlY29uZGFyeS1jb2xvcjogICAgICAgICAgICAgICMzMzM7XHJcbiRidG4tc2Vjb25kYXJ5LWJnOiAgICAgICAgICAgICAgICAgI2ZmZjtcclxuJGJ0bi1zZWNvbmRhcnktYm9yZGVyOiAgICAgICAgICAgICAjZWFlYWVhO1xyXG5cclxuLy8gVG9wIEJvcmRlciBjb2xvciBmb3IgY3VzdG9tIGRlZmF1bHQgY2FyZHMgKC5jYXJkLWRlZmF1bHQpXHJcbiRjYXJkLWRlZmF1bHQtYm9yZGVyLWNvbG9yOiAgICAgICAgI2NmZGJlMjtcclxuXHJcblxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuLy8gVXRpbGl0aWVzIHZhcmlhYmxlc1xyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiR0ZXh0LWFscGhhOiAgICAgICAgICAgIHJnYmEoMjU1LDI1NSwyNTUsLjUpO1xyXG4kdGV4dC1hbHBoYS1pbnZlcnNlOiAgICByZ2JhKDAsMCwwLC41KTtcclxuXHJcbiRmb250LXNpemUtYmFzZTogICAgICAgIDFyZW07XHJcbiR0ZXh0LXNtOiAgICAgICAgICAgICAgICRmb250LXNpemUtYmFzZSAqIDAuNzQzNzU7XHJcbiR0ZXh0LW1kOiAgICAgICAgICAgICAgICRmb250LXNpemUtYmFzZSAqIDEuNjYyNTtcclxuJHRleHQtbGc6ICAgICAgICAgICAgICAgJGZvbnQtc2l6ZS1iYXNlICogMi42MjU7XHJcblxyXG4kYm9yZGVyLWNvbG9yOiAgICAgICAgICByZ2JhKDAsMCwwLC4xMik7XHJcblxyXG4kd2QteHhzOiAgICAgICAgICAgICAgICA2MHB4O1xyXG4kd2QteHM6ICAgICAgICAgICAgICAgICA5MHB4O1xyXG4kd2Qtc206ICAgICAgICAgICAgICAgICAxNTBweDtcclxuJHdkLXNkOiAgICAgICAgICAgICAgICAgMjAwcHg7IC8vIHNkID09IHN0YW5kYXJkXHJcbiR3ZC1tZDogICAgICAgICAgICAgICAgIDI0MHB4O1xyXG4kd2QtbGc6ICAgICAgICAgICAgICAgICAyODBweDtcclxuJHdkLXhsOiAgICAgICAgICAgICAgICAgMzIwcHg7XHJcbiR3ZC14eGw6ICAgICAgICAgICAgICAgIDM2MHB4O1xyXG4kd2Qtd2lkZTogICAgICAgICAgICAgICAxMDAlO1xyXG4kd2QtYXV0bzogICAgICAgICAgICAgICBhdXRvO1xyXG4kd2QtemVybzogICAgICAgICAgICAgICAwO1xyXG5cclxuXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4vLyBCb290c3RyYXAgNCBWYXJpYWJsZXMgT3ZlcnJpZGVcclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4vLyBDb2xvciBzeXN0ZW1cclxuXHJcbiRjb2xvcnM6IChcclxuICAgIFwicHVycGxlXCI6ICAgICAkcHVycGxlLFxyXG4gICAgXCJwaW5rXCI6ICAgICAgICRwaW5rLFxyXG4gICAgXCJ5ZWxsb3dcIjogICAgICR5ZWxsb3csXHJcbiAgICBcImdyZWVuXCI6ICAgICAgJGdyZWVuLFxyXG4gICAgXCJwcmltYXJ5XCI6ICAgICRwcmltYXJ5LFxyXG4gICAgXCJzdWNjZXNzXCI6ICAgICRzdWNjZXNzLFxyXG4gICAgXCJpbmZvXCI6ICAgICAgICRpbmZvLFxyXG4gICAgXCJ3YXJuaW5nXCI6ICAgICR3YXJuaW5nLFxyXG4gICAgXCJkYW5nZXJcIjogICAgICRkYW5nZXIsXHJcbiAgICAnaW52ZXJzZSc6ICAgICRpbnZlcnNlLFxyXG5cclxuICAgICdwcmltYXJ5LWxpZ2h0JzogJHByaW1hcnktbGlnaHQsXHJcbiAgICAncHJpbWFyeS1kYXJrJzogICRwcmltYXJ5LWRhcmssXHJcbiAgICAnc3VjY2Vzcy1saWdodCc6ICRzdWNjZXNzLWxpZ2h0LFxyXG4gICAgJ3N1Y2Nlc3MtZGFyayc6ICAkc3VjY2Vzcy1kYXJrLFxyXG4gICAgJ2luZm8tbGlnaHQnOiAgICAkaW5mby1saWdodCxcclxuICAgICdpbmZvLWRhcmsnOiAgICAgJGluZm8tZGFyayxcclxuICAgICd3YXJuaW5nLWxpZ2h0JzogJHdhcm5pbmctbGlnaHQsXHJcbiAgICAnd2FybmluZy1kYXJrJzogICR3YXJuaW5nLWRhcmssXHJcbiAgICAnZGFuZ2VyLWxpZ2h0JzogICRkYW5nZXItbGlnaHQsXHJcbiAgICAnZGFuZ2VyLWRhcmsnOiAgICRkYW5nZXItZGFyayxcclxuICAgICdncmVlbi1saWdodCc6ICAgJGdyZWVuLWxpZ2h0LFxyXG4gICAgJ2dyZWVuLWRhcmsnOiAgICAkZ3JlZW4tZGFyayxcclxuICAgICdwaW5rLWxpZ2h0JzogICAgJHBpbmstbGlnaHQsXHJcbiAgICAncGluay1kYXJrJzogICAgICRwaW5rLWRhcmssXHJcbiAgICAncHVycGxlLWxpZ2h0JzogICRwdXJwbGUtbGlnaHQsXHJcbiAgICAncHVycGxlLWRhcmsnOiAgICRwdXJwbGUtZGFyayxcclxuICAgICdpbnZlcnNlLWxpZ2h0JzogJGludmVyc2UtbGlnaHQsXHJcbiAgICAnaW52ZXJzZS1kYXJrJzogICRpbnZlcnNlLWRhcmssXHJcbiAgICAneWVsbG93LWxpZ2h0JzogICR5ZWxsb3ctbGlnaHQsXHJcbiAgICAneWVsbG93LWRhcmsnOiAgICR5ZWxsb3ctZGFyayxcclxuKTtcclxuXHJcblxyXG4kdGhlbWUtY29sb3JzOiAoXHJcbiAgXCJwcmltYXJ5XCI6ICAgICRwcmltYXJ5LFxyXG4gIFwic2Vjb25kYXJ5XCI6ICAkc2Vjb25kYXJ5LFxyXG4gIFwic3VjY2Vzc1wiOiAgICAkc3VjY2VzcyxcclxuICBcImluZm9cIjogICAgICAgJGluZm8sXHJcbiAgXCJ3YXJuaW5nXCI6ICAgICR3YXJuaW5nLFxyXG4gIFwiZGFuZ2VyXCI6ICAgICAkZGFuZ2VyXHJcbik7XHJcblxyXG4vLyBCb2R5XHJcblxyXG4kYm9keS1iZzogICAgICAgICAgICAgICAgICAgI2Y1ZjdmYTtcclxuJGJvZHktY29sb3I6ICAgICAgICAgICAgICAgICM2NTY1NjU7XHJcblxyXG4kYm9yZGVyLXJhZGl1czogICAgICAgICAgICAgICAuMjVyZW07XHJcbiRib3JkZXItcmFkaXVzLWxnOiAgICAgICAgICAgIC4zNzVyZW07XHJcblxyXG4kbGluZS1oZWlnaHQtYmFzZTogICAgICAgICAgICAxLjUyODU3MTQyOTtcclxuXHJcbiRoZWFkaW5ncy1saW5lLWhlaWdodDogICAgICAgIDEuMTtcclxuXHJcbiR0ZXh0LW11dGVkOiAgICAgICAgICAgICAgICAgICM5MDlGQTc7XHJcblxyXG4vLyBUYWJsZXNcclxuXHJcbiR0YWJsZS1hY2NlbnQtYmc6ICAgICAgICAgICAgICNmYWZiZmM7XHJcbiR0YWJsZS1ob3Zlci1iZzogICAgICAgICAgICAgICNmYWZiZmM7XHJcblxyXG4kdGFibGUtYm9yZGVyLWNvbG9yOiAgICAgICAgICAjZWVlO1xyXG5cclxuLy8gQnV0dG9ucyArIEZvcm1zXHJcblxyXG4kaW5wdXQtYnRuLXBhZGRpbmcteTogICAgICAgICAuMzc1cmVtO1xyXG4kaW5wdXQtYnRuLXBhZGRpbmcteDogICAgICAgICAxcmVtO1xyXG5cclxuJGlucHV0LWJ0bi1wYWRkaW5nLXktc206ICAgICAgLjMxMjVyZW07XHJcbiRpbnB1dC1idG4tcGFkZGluZy14LXNtOiAgICAgIC42MjVyZW07XHJcblxyXG4kaW5wdXQtYnRuLXBhZGRpbmcteS1sZzogICAgICAuNjI1cmVtO1xyXG4kaW5wdXQtYnRuLXBhZGRpbmcteC1sZzogICAgICAxLjI1cmVtO1xyXG5cclxuJGlucHV0LWhlaWdodDogICAgICAgICAgICAgICAgMi4xODc1cmVtOyAvLyAzNXB4XHJcblxyXG4vLyBGb3Jtc1xyXG5cclxuJGlucHV0LWRpc2FibGVkLWJnOiAgICAgICAgICAgICAgICAgICAgICRncmF5LWxpZ2h0ZXI7XHJcbiRpbnB1dC1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAkZ3JheTtcclxuJGlucHV0LWZvY3VzLWJvcmRlci1jb2xvcjogICAgICAgICAgICAgICM2NmFmZTk7XHJcbiRpbnB1dC1wbGFjZWhvbGRlci1jb2xvcjogICAgICAgICAgICAgICAjYjdiYWM5O1xyXG5cclxuJGZvcm0tZmVlZGJhY2staWNvbi12YWxpZDogICAgICAgICAgICAgIG5vbmU7XHJcbiRmb3JtLWZlZWRiYWNrLWljb24taW52YWxpZDogICAgICAgICAgICBub25lO1xyXG5cclxuJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1hY3RpdmUtYmc6ICAgIGxpZ2h0ZW4oJHByaW1hcnksIDI1JSk7XHJcblxyXG4vLyBEcm9wZG93bnNcclxuXHJcbiRkcm9wZG93bi1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICNlMWUxZTE7XHJcblxyXG4vLyBOYXZzXHJcblxyXG4kbmF2LXRhYnMtbGluay1hY3RpdmUtYmc6ICAgICAgICAgICAjZmZmO1xyXG5cclxuLy8gSnVtYm90cm9uXHJcblxyXG4kanVtYm90cm9uLWJnOiAgICAgICAgICAgICAgICAgICAgICAjZmNmY2ZjO1xyXG5cclxuLy8gTGlzdCBncm91cFxyXG5cclxuJGxpc3QtZ3JvdXAtYm9yZGVyLWNvbG9yOiAgICAgICAgICAgI2U0ZWFlYztcclxuXHJcbi8vIEltYWdlIHRodW1ibmFpbHNcclxuXHJcbiR0aHVtYm5haWwtcGFkZGluZzogICAgICAgICAgICAgICAgIC4xMjVyZW07XHJcblxyXG5cclxuLy8gQnJlYWRjcnVtYnNcclxuXHJcbiRicmVhZGNydW1iLWJnOiAgICAgICAgICAgICAgICAgICAgICNmYWZhZmE7XHJcbiRicmVhZGNydW1iLWRpdmlkZXItY29sb3I6ICAgICAgICAgICNjMWMyYzM7XHJcbiRicmVhZGNydW1iLWFjdGl2ZS1jb2xvcjogICAgICAgICAgICRib2R5LWNvbG9yO1xyXG4iLCIvLyBHcmFkaWVudHNcclxuXHJcbkBtaXhpbiBncmFkaWVudC1iZygkY29sb3IpIHtcclxuICBAaWYgJGVuYWJsZS1ncmFkaWVudHMge1xyXG4gICAgYmFja2dyb3VuZDogJGNvbG9yIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIG1peCgkYm9keS1iZywgJGNvbG9yLCAxNSUpLCAkY29sb3IpIHJlcGVhdC14O1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xyXG4gIH1cclxufVxyXG5cclxuLy8gSG9yaXpvbnRhbCBncmFkaWVudCwgZnJvbSBsZWZ0IHRvIHJpZ2h0XHJcbi8vXHJcbi8vIENyZWF0ZXMgdHdvIGNvbG9yIHN0b3BzLCBzdGFydCBhbmQgZW5kLCBieSBzcGVjaWZ5aW5nIGEgY29sb3IgYW5kIHBvc2l0aW9uIGZvciBlYWNoIGNvbG9yIHN0b3AuXHJcbkBtaXhpbiBncmFkaWVudC14KCRzdGFydC1jb2xvcjogJGdyYXktNzAwLCAkZW5kLWNvbG9yOiAkZ3JheS04MDAsICRzdGFydC1wZXJjZW50OiAwJSwgJGVuZC1wZXJjZW50OiAxMDAlKSB7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAkc3RhcnQtY29sb3IgJHN0YXJ0LXBlcmNlbnQsICRlbmQtY29sb3IgJGVuZC1wZXJjZW50KTtcclxuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XHJcbn1cclxuXHJcbi8vIFZlcnRpY2FsIGdyYWRpZW50LCBmcm9tIHRvcCB0byBib3R0b21cclxuLy9cclxuLy8gQ3JlYXRlcyB0d28gY29sb3Igc3RvcHMsIHN0YXJ0IGFuZCBlbmQsIGJ5IHNwZWNpZnlpbmcgYSBjb2xvciBhbmQgcG9zaXRpb24gZm9yIGVhY2ggY29sb3Igc3RvcC5cclxuQG1peGluIGdyYWRpZW50LXkoJHN0YXJ0LWNvbG9yOiAkZ3JheS03MDAsICRlbmQtY29sb3I6ICRncmF5LTgwMCwgJHN0YXJ0LXBlcmNlbnQ6IDAlLCAkZW5kLXBlcmNlbnQ6IDEwMCUpIHtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAkc3RhcnQtY29sb3IgJHN0YXJ0LXBlcmNlbnQsICRlbmQtY29sb3IgJGVuZC1wZXJjZW50KTtcclxuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XHJcbn1cclxuXHJcbkBtaXhpbiBncmFkaWVudC1kaXJlY3Rpb25hbCgkc3RhcnQtY29sb3I6ICRncmF5LTcwMCwgJGVuZC1jb2xvcjogJGdyYXktODAwLCAkZGVnOiA0NWRlZykge1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgkZGVnLCAkc3RhcnQtY29sb3IsICRlbmQtY29sb3IpO1xyXG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcclxufVxyXG5AbWl4aW4gZ3JhZGllbnQteC10aHJlZS1jb2xvcnMoJHN0YXJ0LWNvbG9yOiAkYmx1ZSwgJG1pZC1jb2xvcjogJHB1cnBsZSwgJGNvbG9yLXN0b3A6IDUwJSwgJGVuZC1jb2xvcjogJHJlZCkge1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJHN0YXJ0LWNvbG9yLCAkbWlkLWNvbG9yICRjb2xvci1zdG9wLCAkZW5kLWNvbG9yKTtcclxuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG59XHJcbkBtaXhpbiBncmFkaWVudC15LXRocmVlLWNvbG9ycygkc3RhcnQtY29sb3I6ICRibHVlLCAkbWlkLWNvbG9yOiAkcHVycGxlLCAkY29sb3Itc3RvcDogNTAlLCAkZW5kLWNvbG9yOiAkcmVkKSB7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KCRzdGFydC1jb2xvciwgJG1pZC1jb2xvciAkY29sb3Itc3RvcCwgJGVuZC1jb2xvcik7XHJcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxufVxyXG5AbWl4aW4gZ3JhZGllbnQtcmFkaWFsKCRpbm5lci1jb2xvcjogJGdyYXktNzAwLCAkb3V0ZXItY29sb3I6ICRncmF5LTgwMCkge1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUsICRpbm5lci1jb2xvciwgJG91dGVyLWNvbG9yKTtcclxuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG59XHJcbkBtaXhpbiBncmFkaWVudC1zdHJpcGVkKCRjb2xvcjogcmdiYSgkd2hpdGUsIC4xNSksICRhbmdsZTogNDVkZWcpIHtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoJGFuZ2xlLCAkY29sb3IgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgJGNvbG9yIDUwJSwgJGNvbG9yIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XHJcbn1cclxuIiwiLy8gQnJlYWtwb2ludCB2aWV3cG9ydCBzaXplcyBhbmQgbWVkaWEgcXVlcmllcy5cclxuLy9cclxuLy8gQnJlYWtwb2ludHMgYXJlIGRlZmluZWQgYXMgYSBtYXAgb2YgKG5hbWU6IG1pbmltdW0gd2lkdGgpLCBvcmRlciBmcm9tIHNtYWxsIHRvIGxhcmdlOlxyXG4vL1xyXG4vLyAgICAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpXHJcbi8vXHJcbi8vIFRoZSBtYXAgZGVmaW5lZCBpbiB0aGUgYCRncmlkLWJyZWFrcG9pbnRzYCBnbG9iYWwgdmFyaWFibGUgaXMgdXNlZCBhcyB0aGUgYCRicmVha3BvaW50c2AgYXJndW1lbnQgYnkgZGVmYXVsdC5cclxuXHJcbi8vIE5hbWUgb2YgdGhlIG5leHQgYnJlYWtwb2ludCwgb3IgbnVsbCBmb3IgdGhlIGxhc3QgYnJlYWtwb2ludC5cclxuLy9cclxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtKVxyXG4vLyAgICBtZFxyXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXHJcbi8vICAgIG1kXHJcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgJGJyZWFrcG9pbnQtbmFtZXM6ICh4cyBzbSBtZCBsZyB4bCkpXHJcbi8vICAgIG1kXHJcbkBmdW5jdGlvbiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMsICRicmVha3BvaW50LW5hbWVzOiBtYXAta2V5cygkYnJlYWtwb2ludHMpKSB7XHJcbiAgJG46IGluZGV4KCRicmVha3BvaW50LW5hbWVzLCAkbmFtZSk7XHJcbiAgQHJldHVybiBpZigkbiAhPSBudWxsIGFuZCAkbiA8IGxlbmd0aCgkYnJlYWtwb2ludC1uYW1lcyksIG50aCgkYnJlYWtwb2ludC1uYW1lcywgJG4gKyAxKSwgbnVsbCk7XHJcbn1cclxuXHJcbi8vIE1pbmltdW0gYnJlYWtwb2ludCB3aWR0aC4gTnVsbCBmb3IgdGhlIHNtYWxsZXN0IChmaXJzdCkgYnJlYWtwb2ludC5cclxuLy9cclxuLy8gICAgPj4gYnJlYWtwb2ludC1taW4oc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXHJcbi8vICAgIDU3NnB4XHJcbkBmdW5jdGlvbiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xyXG4gICRtaW46IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XHJcbiAgQHJldHVybiBpZigkbWluICE9IDAsICRtaW4sIG51bGwpO1xyXG59XHJcblxyXG4vLyBNYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguIE51bGwgZm9yIHRoZSBsYXJnZXN0IChsYXN0KSBicmVha3BvaW50LlxyXG4vLyBUaGUgbWF4aW11bSB2YWx1ZSBpcyBjYWxjdWxhdGVkIGFzIHRoZSBtaW5pbXVtIG9mIHRoZSBuZXh0IG9uZSBsZXNzIDAuMDJweFxyXG4vLyB0byB3b3JrIGFyb3VuZCB0aGUgbGltaXRhdGlvbnMgb2YgYG1pbi1gIGFuZCBgbWF4LWAgcHJlZml4ZXMgYW5kIHZpZXdwb3J0cyB3aXRoIGZyYWN0aW9uYWwgd2lkdGhzLlxyXG4vLyBTZWUgaHR0cHM6Ly93d3cudzMub3JnL1RSL21lZGlhcXVlcmllcy00LyNtcS1taW4tbWF4XHJcbi8vIFVzZXMgMC4wMnB4IHJhdGhlciB0aGFuIDAuMDFweCB0byB3b3JrIGFyb3VuZCBhIGN1cnJlbnQgcm91bmRpbmcgYnVnIGluIFNhZmFyaS5cclxuLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzgyNjFcclxuLy9cclxuLy8gICAgPj4gYnJlYWtwb2ludC1tYXgoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXHJcbi8vICAgIDc2Ny45OHB4XHJcbkBmdW5jdGlvbiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xyXG4gICRuZXh0OiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50cyk7XHJcbiAgQHJldHVybiBpZigkbmV4dCwgYnJlYWtwb2ludC1taW4oJG5leHQsICRicmVha3BvaW50cykgLSAuMDIsIG51bGwpO1xyXG59XHJcblxyXG4vLyBSZXR1cm5zIGEgYmxhbmsgc3RyaW5nIGlmIHNtYWxsZXN0IGJyZWFrcG9pbnQsIG90aGVyd2lzZSByZXR1cm5zIHRoZSBuYW1lIHdpdGggYSBkYXNoIGluIGZyb250LlxyXG4vLyBVc2VmdWwgZm9yIG1ha2luZyByZXNwb25zaXZlIHV0aWxpdGllcy5cclxuLy9cclxuLy8gICAgPj4gYnJlYWtwb2ludC1pbmZpeCh4cywgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcclxuLy8gICAgXCJcIiAgKFJldHVybnMgYSBibGFuayBzdHJpbmcpXHJcbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXHJcbi8vICAgIFwiLXNtXCJcclxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtaW5maXgoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcclxuICBAcmV0dXJuIGlmKGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpID09IG51bGwsIFwiXCIsIFwiLSN7JG5hbWV9XCIpO1xyXG59XHJcblxyXG4vLyBNZWRpYSBvZiBhdCBsZWFzdCB0aGUgbWluaW11bSBicmVha3BvaW50IHdpZHRoLiBObyBxdWVyeSBmb3IgdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQuXHJcbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCBhbmQgd2lkZXIuXHJcbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LXVwKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XHJcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XHJcbiAgQGlmICRtaW4ge1xyXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAY29udGVudDtcclxuICB9XHJcbn1cclxuXHJcbi8vIE1lZGlhIG9mIGF0IG1vc3QgdGhlIG1heGltdW0gYnJlYWtwb2ludCB3aWR0aC4gTm8gcXVlcnkgZm9yIHRoZSBsYXJnZXN0IGJyZWFrcG9pbnQuXHJcbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCBhbmQgbmFycm93ZXIuXHJcbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWRvd24oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcclxuICAkbWF4OiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcclxuICBAaWYgJG1heCB7XHJcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG1heCkge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9IEBlbHNlIHtcclxuICAgIEBjb250ZW50O1xyXG4gIH1cclxufVxyXG5cclxuLy8gTWVkaWEgdGhhdCBzcGFucyBtdWx0aXBsZSBicmVha3BvaW50IHdpZHRocy5cclxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IGJldHdlZW4gdGhlIG1pbiBhbmQgbWF4IGJyZWFrcG9pbnRzXHJcbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWJldHdlZW4oJGxvd2VyLCAkdXBwZXIsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcclxuICAkbWluOiBicmVha3BvaW50LW1pbigkbG93ZXIsICRicmVha3BvaW50cyk7XHJcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJHVwcGVyLCAkYnJlYWtwb2ludHMpO1xyXG5cclxuICBAaWYgJG1pbiAhPSBudWxsIGFuZCAkbWF4ICE9IG51bGwge1xyXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGxvd2VyLCAkYnJlYWtwb2ludHMpIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSBpZiAkbWluID09IG51bGwge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCR1cHBlciwgJGJyZWFrcG9pbnRzKSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8gTWVkaWEgYmV0d2VlbiB0aGUgYnJlYWtwb2ludCdzIG1pbmltdW0gYW5kIG1heGltdW0gd2lkdGhzLlxyXG4vLyBObyBtaW5pbXVtIGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludCwgYW5kIG5vIG1heGltdW0gZm9yIHRoZSBsYXJnZXN0IG9uZS5cclxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IG9ubHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQsIG5vdCB2aWV3cG9ydHMgYW55IHdpZGVyIG9yIG5hcnJvd2VyLlxyXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1vbmx5KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XHJcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XHJcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50cyk7XHJcblxyXG4gIEBpZiAkbWluICE9IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XHJcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikgYW5kIChtYXgtd2lkdGg6ICRtYXgpIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSBpZiAkbWF4ID09IG51bGwge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzKSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgJG1pbiA9PSBudWxsIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmFtZSwgJGJyZWFrcG9pbnRzKSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0= */\";","export default \"/* ========================================================================\\n Component: layout\\n ========================================================================== */\\nbody, .wrapper .section-container {\\n background-color: #f5f7fa;\\n}\\n.wrapper .aside-container {\\n background-color: #3a3f51;\\n}\\n/* ========================================================================\\n Component: top-navbar\\n ========================================================================== */\\n.topnavbar {\\n background-color: #68911d;\\n background-image: linear-gradient(to right, #68911d 0%, #86BC25 100%);\\n background-repeat: repeat-x;\\n}\\n@media (min-width: 992px) {\\n .topnavbar .navbar-nav > .nav-item.show > .nav-link, .topnavbar .navbar-nav > .nav-item.show > .nav-link:hover, .topnavbar .navbar-nav > .nav-item.show > .nav-link:focus {\\n box-shadow: 0 -3px 0 #557818 inset;\\n }\\n}\\n.topnavbar .navbar-nav > .nav-item > .navbar-text {\\n color: #fff;\\n}\\n.topnavbar .navbar-nav > .nav-item > .nav-link,\\n.topnavbar .navbar-nav > .nav-item.show > .nav-link {\\n color: #fff;\\n}\\n.topnavbar .navbar-nav > .nav-item > .nav-link:hover, .topnavbar .navbar-nav > .nav-item > .nav-link:focus,\\n.topnavbar .navbar-nav > .nav-item.show > .nav-link:hover,\\n.topnavbar .navbar-nav > .nav-item.show > .nav-link:focus {\\n color: #2b3c0c;\\n}\\n.topnavbar .dropdown-item.active, .topnavbar .dropdown-item:active {\\n background-color: #68911d;\\n}\\n/* ========================================================================\\n Component: sidebar\\n ========================================================================== */\\n.sidebar {\\n background-color: #3a3f51;\\n}\\n.sidebar .nav-heading {\\n color: #919DA8;\\n}\\n.sidebar-nav > li > a, .sidebar-nav > li > .nav-item {\\n color: #e1e2e3;\\n}\\n.sidebar-nav > li > a:focus, .sidebar-nav > li > a:hover, .sidebar-nav > li > .nav-item:focus, .sidebar-nav > li > .nav-item:hover {\\n color: #68911d;\\n}\\n.sidebar-nav > li > a > em, .sidebar-nav > li > .nav-item > em {\\n color: inherits;\\n}\\n.sidebar-nav > li.active, .sidebar-nav > li.active > a, .sidebar-nav > li.active > .nav-item, .sidebar-nav > li.active .sidebar-nav, .sidebar-nav > li.open, .sidebar-nav > li.open > a, .sidebar-nav > li.open > .nav-item, .sidebar-nav > li.open .sidebar-nav {\\n background-color: #383d4e;\\n color: #68911d;\\n}\\n.sidebar-nav > li.active > .nav-item > em, .sidebar-nav > li.active > a > em, .sidebar-nav > li.open > .nav-item > em, .sidebar-nav > li.open > a > em {\\n color: #68911d;\\n}\\n.sidebar-nav > li.active {\\n border-left-color: #68911d;\\n}\\n.sidebar-subnav {\\n background-color: #3a3f51;\\n}\\n.sidebar-subnav > .sidebar-subnav-header {\\n color: #e1e2e3;\\n}\\n.sidebar-subnav > li > a, .sidebar-subnav > li > .nav-item {\\n color: #e1e2e3;\\n}\\n.sidebar-subnav > li > a:focus, .sidebar-subnav > li > a:hover, .sidebar-subnav > li > .nav-item:focus, .sidebar-subnav > li > .nav-item:hover {\\n color: #68911d;\\n}\\n.sidebar-subnav > li.active > a, .sidebar-subnav > li.active > .nav-item {\\n color: #68911d;\\n}\\n.sidebar-subnav > li.active > a:after, .sidebar-subnav > li.active > .nav-item:after {\\n border-color: #68911d;\\n background-color: #68911d;\\n}\\n/* ========================================================================\\n Component: offsidebar\\n ========================================================================== */\\n.offsidebar {\\n border-left: 1px solid greyscale(#cccccc);\\n background-color: #fff;\\n color: #656565;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL3N0eWxlcy90aGVtZXMvRDpcXEluZGlhQlVcXEFnZW50UG9vbFxcRG90TmV0XFxEb3ROZXRGcmFtZXdvcmtcXF93b3JrXFwyOTZcXHMvc3JjXFxhcHBcXHNoYXJlZFxcc3R5bGVzXFx0aGVtZXNcXHRoZW1lLWUuc2NzcyIsInNyYy9hcHAvc2hhcmVkL3N0eWxlcy90aGVtZXMvdGhlbWUtZS5zY3NzIiwic3JjL2FwcC9zaGFyZWQvc3R5bGVzL3RoZW1lcy9EOlxcSW5kaWFCVVxcQWdlbnRQb29sXFxEb3ROZXRcXERvdE5ldEZyYW1ld29ya1xcX3dvcmtcXDI5Nlxccy9zcmNcXGFwcFxcc2hhcmVkXFxzdHlsZXNcXGFwcFxcdmFyaWFibGVzLnNjc3MiLCJzcmMvYXBwL3NoYXJlZC9zdHlsZXMvdGhlbWVzL0Q6XFxJbmRpYUJVXFxBZ2VudFBvb2xcXERvdE5ldFxcRG90TmV0RnJhbWV3b3JrXFxfd29ya1xcMjk2XFxzL3NyY1xcYXBwXFxzaGFyZWRcXHN0eWxlc1xcYm9vdHN0cmFwXFxtaXhpbnNcXF9ncmFkaWVudHMuc2NzcyIsInNyYy9hcHAvc2hhcmVkL3N0eWxlcy90aGVtZXMvRDpcXEluZGlhQlVcXEFnZW50UG9vbFxcRG90TmV0XFxEb3ROZXRGcmFtZXdvcmtcXF93b3JrXFwyOTZcXHMvc3JjXFxhcHBcXHNoYXJlZFxcc3R5bGVzXFxib290c3RyYXBcXG1peGluc1xcX2JyZWFrcG9pbnRzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBOENBOzs2RUFBQTtBQUdBO0VBQ0kseUJBekM0QjtBQ0poQztBRGdEQTtFQUNJLHlCRW5Eb0I7QURNeEI7QURnREE7OzZFQUFBO0FBR0E7RUFDSSx5QkV2Qm9CO0VDeEJ0QixxRUFBQTtFQUNBLDJCQUFBO0FGR0Y7QUcwQ0k7RUpNUTtJQUNJLGtDQUFBO0VDN0NkO0FBQ0Y7QURpREk7RUFDSSxXQXREd0I7QUNPaEM7QURrREk7O0VBRUksV0EzRHdCO0FDV2hDO0FEaURROzs7RUFDSSxjQTVEb0I7QUNlaEM7QURpREk7RUFDSSx5QkUvQ2dCO0FEQXhCO0FEbURBOzs2RUFBQTtBQUdBO0VBQ0kseUJFMUZvQjtBRDBDeEI7QURrREk7RUFDSSxjQTVEMEI7QUNZbEM7QUR1RFE7RUFDSSxjQTlFc0I7QUMwQmxDO0FEc0RZO0VBQ0ksY0VyRVE7QURpQnhCO0FEd0RZO0VBQ0ksZUFsRmtCO0FDNEJsQztBRDZEWTtFQUNJLHlCQTVGa0I7RUE2RmxCLGNFbkZRO0FEd0J4QjtBRDhEWTtFQUNJLGNFdkZRO0FEMkJ4QjtBRGlFUTtFQUNJLDBCRTdGWTtBRDhCeEI7QURzRUE7RUFDSSx5QkV4SW9CO0FEcUV4QjtBRHFFSTtFQUNJLGNBcEgwQjtBQ2lEbEM7QUR1RVE7RUFDSSxjQXpIc0I7QUNvRGxDO0FEdUVZO0VBQ0ksY0VoSFE7QUQyQ3hCO0FEMkVZO0VBQ0ksY0V2SFE7QUQ4Q3hCO0FEMkVnQjtFQUNJLHFCRTFISTtFRjJISix5QkUzSEk7QURrRHhCO0FEb0ZBOzs2RUFBQTtBQUdBO0VBQ0kseUNBQUE7RUFDQSxzQkF4SXNCO0VBeUl0QixjRXJDd0I7QUQ1QzVCIiwiZmlsZSI6InNyYy9hcHAvc2hhcmVkL3N0eWxlcy90aGVtZXMvdGhlbWUtZS5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQm9vdHN0cmFwXHJcbkBpbXBvcnQgXCIuLi9ib290c3RyYXAvZnVuY3Rpb25zXCI7XHJcbkBpbXBvcnQgXCIuLi9ib290c3RyYXAvdmFyaWFibGVzXCI7XHJcbkBpbXBvcnQgXCIuLi9ib290c3RyYXAvbWl4aW5zXCI7XHJcbkBpbXBvcnQgJy4uL2FwcC92YXJpYWJsZXMnO1xyXG5cclxuXHJcbi8vIExBWU9VVFxyXG5cclxuJGNvbnRlbnQtYmc6ICAgICAgICAgICAgICAgICAgICAjZjVmN2ZhO1xyXG4kYXNpZGUtYmc6ICAgICAgICAgICAgICAgICAgICAgICRncmF5LWRhcms7XHJcblxyXG4vLyBOQVZCQVIgVE9QXHJcblxyXG4kbmF2LXRvcC1iZzogICAgICAgICAgICAgICAgICAgICRpbmZvLWRhcms7XHJcbiRuYXYtdG9wLWJnLXN0YXJ0OiAgICAgICAgICAgICAgJG5hdi10b3AtYmc7XHJcbiRuYXYtdG9wLWJnLWVuZDogICAgICAgICAgICAgICAgJGluZm87XHJcbiRuYXYtaGVhZGVyLWJnOiAgICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQ7XHJcblxyXG4kbmF2LXRvcC1pdGVtOiAgICAgICAgICAgICAgICAgICNmZmY7XHJcbiRuYXYtdG9wLWl0ZW0tYWN0aXZlOiAgICAgICAgICAgZGFya2VuKCRuYXYtdG9wLWJnLCAyMCUpO1xyXG5cclxuLy8gU0lERUJBUlxyXG5cclxuJHNpZGViYXItYmc6ICAgICAgICAgICAgICAgICAgICAgICRhc2lkZS1iZztcclxuXHJcbiRzaWRlYmFyLWl0ZW0tY29sb3I6ICAgICAgICAgICAgICAjZTFlMmUzO1xyXG4kc2lkZWJhci1pdGVtLWNvbG9yLWFjdGl2ZTogICAgICAgJG5hdi10b3AtYmc7XHJcbiRzaWRlYmFyLWl0ZW0tYmctYWN0aXZlOiAgICAgICAgICBkYXJrZW4oJHNpZGViYXItYmcsIDElKTtcclxuXHJcbiRzaWRlYmFyLWljb24tY29sb3I6ICAgICAgICAgICAgICBpbmhlcml0cztcclxuJHNpZGViYXItaWNvbi1jb2xvci1hY3RpdmU6ICAgICAgICRuYXYtdG9wLWJnO1xyXG5cclxuJHNpZGViYXItYnVsbGV0LWNvbG9yOiAgICAgICAgICAgIHJnYmEoMCwwLDAsLjI1KTtcclxuJHNpZGViYXItYnVsbGV0LWNvbG9yLWFjdGl2ZTogICAgICRzaWRlYmFyLWljb24tY29sb3ItYWN0aXZlO1xyXG5cclxuJHNpZGViYXItaGVhZGluZy1jb2xvcjogICAgICAgICAgICM5MTlEQTg7XHJcbiRzaWRlYmFyLWxhYmVsLWNvbG9yOiAgICAgICAgICAgICAkc2lkZWJhci1pdGVtLWNvbG9yO1xyXG5cclxuLy8gT0ZGU0lERUJBUlxyXG5cclxuJG9mZnNpZGViYXItYmc6ICAgICAgICAgICAjZmZmO1xyXG4kb2Zmc2lkZWJhci1ib3JkZXItY29sb3I6IGdyZXlzY2FsZShkYXJrZW4oJG9mZnNpZGViYXItYmcsIDIwJSkpO1xyXG4kb2Zmc2lkZWJhci1jb2xvcjogICAgICAgICRib2R5LWNvbG9yO1xyXG5cclxuXHJcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBDb21wb25lbnQ6IGxheW91dFxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuYm9keSwgLndyYXBwZXIgLnNlY3Rpb24tY29udGFpbmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb250ZW50LWJnO1xyXG59XHJcblxyXG4ud3JhcHBlciAuYXNpZGUtY29udGFpbmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRhc2lkZS1iZztcclxufVxyXG5cclxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIENvbXBvbmVudDogdG9wLW5hdmJhclxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuLnRvcG5hdmJhciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2LXRvcC1iZztcclxuICAgIEBpbmNsdWRlIGdyYWRpZW50LXgoJG5hdi10b3AtYmctc3RhcnQsICRuYXYtdG9wLWJnLWVuZCk7XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChsZykge1xyXG4gICAgICAgIC5uYXZiYXItbmF2ID4gLm5hdi1pdGVtLnNob3cgPiAubmF2LWxpbmsge1xyXG4gICAgICAgICAgICAmLCAmOmhvdmVyLCAmOmZvY3VzIHtcclxuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTNweCAwIGRhcmtlbigkbmF2LXRvcC1iZywgNiUpIGluc2V0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5uYXZiYXItbmF2ID4gLm5hdi1pdGVtID4gLm5hdmJhci10ZXh0IHtcclxuICAgICAgICBjb2xvcjogJG5hdi10b3AtaXRlbTtcclxuICAgIH1cclxuXHJcbiAgICAubmF2YmFyLW5hdiA+IC5uYXYtaXRlbSA+IC5uYXYtbGluayxcclxuICAgIC5uYXZiYXItbmF2ID4gLm5hdi1pdGVtLnNob3cgPiAubmF2LWxpbmsge1xyXG4gICAgICAgIGNvbG9yOiAkbmF2LXRvcC1pdGVtO1xyXG4gICAgICAgICY6aG92ZXIsICY6Zm9jdXMge1xyXG4gICAgICAgICAgICBjb2xvcjogJG5hdi10b3AtaXRlbS1hY3RpdmU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5kcm9wZG93bi1pdGVtLmFjdGl2ZSwgLmRyb3Bkb3duLWl0ZW06YWN0aXZlIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2LXRvcC1iZztcclxuICAgIH1cclxufVxyXG5cclxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIENvbXBvbmVudDogc2lkZWJhclxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuLnNpZGViYXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHNpZGViYXItYmc7XHJcblxyXG4gICAgLm5hdi1oZWFkaW5nIHtcclxuICAgICAgICBjb2xvcjogJHNpZGViYXItaGVhZGluZy1jb2xvcjtcclxuICAgIH1cclxufVxyXG5cclxuLy8gSXRlbXNcclxuLnNpZGViYXItbmF2IHtcclxuICAgID4gbGkge1xyXG4gICAgICAgID4gYSwgPiAubmF2LWl0ZW0ge1xyXG4gICAgICAgICAgICBjb2xvcjogJHNpZGViYXItaXRlbS1jb2xvcjtcclxuXHJcbiAgICAgICAgICAgICY6Zm9jdXMsICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICRzaWRlYmFyLWl0ZW0tY29sb3ItYWN0aXZlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyBJdGVtIGljb25cclxuICAgICAgICAgICAgPiBlbSB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNpZGViYXItaWNvbi1jb2xvcjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIEFjdGl2ZSBpdGVtIHN0YXRlXHJcbiAgICAgICAgJi5hY3RpdmUsICYub3BlbiB7XHJcbiAgICAgICAgICAgICYsID4gYSwgPiAubmF2LWl0ZW0sIC5zaWRlYmFyLW5hdiB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2lkZWJhci1pdGVtLWJnLWFjdGl2ZTtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2lkZWJhci1pdGVtLWNvbG9yLWFjdGl2ZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgPiAubmF2LWl0ZW0gPiBlbSwgPiBhID4gZW0ge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICRzaWRlYmFyLWljb24tY29sb3ItYWN0aXZlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5hY3RpdmUge1xyXG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogJHNpZGViYXItaXRlbS1jb2xvci1hY3RpdmU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbn1cclxuXHJcbi5zaWRlYmFyLXN1Ym5hdiB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2lkZWJhci1iZztcclxuXHJcbiAgICA+IC5zaWRlYmFyLXN1Ym5hdi1oZWFkZXIge1xyXG4gICAgICAgIGNvbG9yOiAkc2lkZWJhci1pdGVtLWNvbG9yO1xyXG4gICAgfVxyXG5cclxuICAgID4gbGkge1xyXG4gICAgICAgID4gYSwgPiAubmF2LWl0ZW0ge1xyXG4gICAgICAgICAgICBjb2xvcjogJHNpZGViYXItaXRlbS1jb2xvcjtcclxuXHJcbiAgICAgICAgICAgICY6Zm9jdXMsICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICRzaWRlYmFyLWl0ZW0tY29sb3ItYWN0aXZlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5hY3RpdmUge1xyXG4gICAgICAgICAgICA+IGEsID4gLm5hdi1pdGVtIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2lkZWJhci1pY29uLWNvbG9yLWFjdGl2ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzaWRlYmFyLWJ1bGxldC1jb2xvci1hY3RpdmU7XHJcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNpZGViYXItYnVsbGV0LWNvbG9yLWFjdGl2ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbn1cclxuXHJcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBDb21wb25lbnQ6IG9mZnNpZGViYXJcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcbi5vZmZzaWRlYmFyIHtcclxuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJG9mZnNpZGViYXItYm9yZGVyLWNvbG9yO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG9mZnNpZGViYXItYmc7XHJcbiAgICBjb2xvcjogJG9mZnNpZGViYXItY29sb3I7XHJcbn1cclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IGxheW91dFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5ib2R5LCAud3JhcHBlciAuc2VjdGlvbi1jb250YWluZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmN2ZhO1xufVxuXG4ud3JhcHBlciAuYXNpZGUtY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNhM2Y1MTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IHRvcC1uYXZiYXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnRvcG5hdmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2ODkxMWQ7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzY4OTExZCAwJSwgIzg2QkMyNSAxMDAlKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC50b3BuYXZiYXIgLm5hdmJhci1uYXYgPiAubmF2LWl0ZW0uc2hvdyA+IC5uYXYtbGluaywgLnRvcG5hdmJhciAubmF2YmFyLW5hdiA+IC5uYXYtaXRlbS5zaG93ID4gLm5hdi1saW5rOmhvdmVyLCAudG9wbmF2YmFyIC5uYXZiYXItbmF2ID4gLm5hdi1pdGVtLnNob3cgPiAubmF2LWxpbms6Zm9jdXMge1xuICAgIGJveC1zaGFkb3c6IDAgLTNweCAwICM1NTc4MTggaW5zZXQ7XG4gIH1cbn1cbi50b3BuYXZiYXIgLm5hdmJhci1uYXYgPiAubmF2LWl0ZW0gPiAubmF2YmFyLXRleHQge1xuICBjb2xvcjogI2ZmZjtcbn1cbi50b3BuYXZiYXIgLm5hdmJhci1uYXYgPiAubmF2LWl0ZW0gPiAubmF2LWxpbmssXG4udG9wbmF2YmFyIC5uYXZiYXItbmF2ID4gLm5hdi1pdGVtLnNob3cgPiAubmF2LWxpbmsge1xuICBjb2xvcjogI2ZmZjtcbn1cbi50b3BuYXZiYXIgLm5hdmJhci1uYXYgPiAubmF2LWl0ZW0gPiAubmF2LWxpbms6aG92ZXIsIC50b3BuYXZiYXIgLm5hdmJhci1uYXYgPiAubmF2LWl0ZW0gPiAubmF2LWxpbms6Zm9jdXMsXG4udG9wbmF2YmFyIC5uYXZiYXItbmF2ID4gLm5hdi1pdGVtLnNob3cgPiAubmF2LWxpbms6aG92ZXIsXG4udG9wbmF2YmFyIC5uYXZiYXItbmF2ID4gLm5hdi1pdGVtLnNob3cgPiAubmF2LWxpbms6Zm9jdXMge1xuICBjb2xvcjogIzJiM2MwYztcbn1cbi50b3BuYXZiYXIgLmRyb3Bkb3duLWl0ZW0uYWN0aXZlLCAudG9wbmF2YmFyIC5kcm9wZG93bi1pdGVtOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2ODkxMWQ7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBzaWRlYmFyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5zaWRlYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNhM2Y1MTtcbn1cbi5zaWRlYmFyIC5uYXYtaGVhZGluZyB7XG4gIGNvbG9yOiAjOTE5REE4O1xufVxuXG4uc2lkZWJhci1uYXYgPiBsaSA+IGEsIC5zaWRlYmFyLW5hdiA+IGxpID4gLm5hdi1pdGVtIHtcbiAgY29sb3I6ICNlMWUyZTM7XG59XG4uc2lkZWJhci1uYXYgPiBsaSA+IGE6Zm9jdXMsIC5zaWRlYmFyLW5hdiA+IGxpID4gYTpob3ZlciwgLnNpZGViYXItbmF2ID4gbGkgPiAubmF2LWl0ZW06Zm9jdXMsIC5zaWRlYmFyLW5hdiA+IGxpID4gLm5hdi1pdGVtOmhvdmVyIHtcbiAgY29sb3I6ICM2ODkxMWQ7XG59XG4uc2lkZWJhci1uYXYgPiBsaSA+IGEgPiBlbSwgLnNpZGViYXItbmF2ID4gbGkgPiAubmF2LWl0ZW0gPiBlbSB7XG4gIGNvbG9yOiBpbmhlcml0cztcbn1cbi5zaWRlYmFyLW5hdiA+IGxpLmFjdGl2ZSwgLnNpZGViYXItbmF2ID4gbGkuYWN0aXZlID4gYSwgLnNpZGViYXItbmF2ID4gbGkuYWN0aXZlID4gLm5hdi1pdGVtLCAuc2lkZWJhci1uYXYgPiBsaS5hY3RpdmUgLnNpZGViYXItbmF2LCAuc2lkZWJhci1uYXYgPiBsaS5vcGVuLCAuc2lkZWJhci1uYXYgPiBsaS5vcGVuID4gYSwgLnNpZGViYXItbmF2ID4gbGkub3BlbiA+IC5uYXYtaXRlbSwgLnNpZGViYXItbmF2ID4gbGkub3BlbiAuc2lkZWJhci1uYXYge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzgzZDRlO1xuICBjb2xvcjogIzY4OTExZDtcbn1cbi5zaWRlYmFyLW5hdiA+IGxpLmFjdGl2ZSA+IC5uYXYtaXRlbSA+IGVtLCAuc2lkZWJhci1uYXYgPiBsaS5hY3RpdmUgPiBhID4gZW0sIC5zaWRlYmFyLW5hdiA+IGxpLm9wZW4gPiAubmF2LWl0ZW0gPiBlbSwgLnNpZGViYXItbmF2ID4gbGkub3BlbiA+IGEgPiBlbSB7XG4gIGNvbG9yOiAjNjg5MTFkO1xufVxuLnNpZGViYXItbmF2ID4gbGkuYWN0aXZlIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICM2ODkxMWQ7XG59XG5cbi5zaWRlYmFyLXN1Ym5hdiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzYTNmNTE7XG59XG4uc2lkZWJhci1zdWJuYXYgPiAuc2lkZWJhci1zdWJuYXYtaGVhZGVyIHtcbiAgY29sb3I6ICNlMWUyZTM7XG59XG4uc2lkZWJhci1zdWJuYXYgPiBsaSA+IGEsIC5zaWRlYmFyLXN1Ym5hdiA+IGxpID4gLm5hdi1pdGVtIHtcbiAgY29sb3I6ICNlMWUyZTM7XG59XG4uc2lkZWJhci1zdWJuYXYgPiBsaSA+IGE6Zm9jdXMsIC5zaWRlYmFyLXN1Ym5hdiA+IGxpID4gYTpob3ZlciwgLnNpZGViYXItc3VibmF2ID4gbGkgPiAubmF2LWl0ZW06Zm9jdXMsIC5zaWRlYmFyLXN1Ym5hdiA+IGxpID4gLm5hdi1pdGVtOmhvdmVyIHtcbiAgY29sb3I6ICM2ODkxMWQ7XG59XG4uc2lkZWJhci1zdWJuYXYgPiBsaS5hY3RpdmUgPiBhLCAuc2lkZWJhci1zdWJuYXYgPiBsaS5hY3RpdmUgPiAubmF2LWl0ZW0ge1xuICBjb2xvcjogIzY4OTExZDtcbn1cbi5zaWRlYmFyLXN1Ym5hdiA+IGxpLmFjdGl2ZSA+IGE6YWZ0ZXIsIC5zaWRlYmFyLXN1Ym5hdiA+IGxpLmFjdGl2ZSA+IC5uYXYtaXRlbTphZnRlciB7XG4gIGJvcmRlci1jb2xvcjogIzY4OTExZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY4OTExZDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IG9mZnNpZGViYXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLm9mZnNpZGViYXIge1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIGdyZXlzY2FsZSgjY2NjY2NjKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgY29sb3I6ICM2NTY1NjU7XG59IiwiXHJcbi8vIEN1dG9tcyBHcmF5IGNvbG9ycyBmb3IgdGhlbWVcclxuJGdyYXktZGFya2VyOiAgICAgICAgICAgIzIzMjczNTtcclxuJGdyYXktZGFyazogICAgICAgICAgICAgIzNhM2Y1MTtcclxuJGdyYXk6ICAgICAgICAgICAgICAgICAgI2RkZTZlOTtcclxuJGdyYXktbGlnaHQ6ICAgICAgICAgICAgI2U0ZWFlYztcclxuJGdyYXktbGlnaHRlcjogICAgICAgICAgI2VkZjFmMjtcclxuXHJcbi8vIEN1c3RvbSBicmFuZCBjb2xvcnMgZm9yIHRoZW1lXHJcbiRpbnZlcnNlOiAgICAgICAgICAgICAgICMxMzFlMjY7XHJcbiRwdXJwbGU6ICAgICAgICAgICAgICAgICM3MjY2YmE7XHJcbiRwaW5rOiAgICAgICAgICAgICAgICAgICNmNTMyZTU7XHJcbiR5ZWxsb3c6ICAgICAgICAgICAgICAgICNmYWQ3MzI7XHJcbiRncmVlbjogICAgICAgICAgICAgICAgICMzMUI0NEE7XHJcblxyXG4kcHJpbWFyeTogICAgICAgICAgICAgICAjMDBBQkU3O1xyXG4kc2Vjb25kYXJ5OiAgICAgICAgICAgICAjZmZmO1xyXG4kc3VjY2VzczogICAgICAgICAgICAgICAjMjdjMjRjO1xyXG4kaW5mbzogICAgICAgICAgICAgICAgICAjODZCQzI1ICA7XHJcbiR3YXJuaW5nOiAgICAgICAgICAgICAgICNmZjkwMmI7XHJcbiRkYW5nZXI6ICAgICAgICAgICAgICAgICNmMDUwNTA7XHJcbiRkYXJrOiAgICAgICAgICAgICAgICAgICMzYTNmNTE7XHJcblxyXG4vLyBDdXN0b20gY29sb3IgdmFyaWFudHNcclxuJGFtb3VudE9mTGlnaHQ6IDEwJTtcclxuXHJcbiRwcmltYXJ5LWxpZ2h0OiAgICAgICAgIGxpZ2h0ZW4oJHByaW1hcnksICRhbW91bnRPZkxpZ2h0KTtcclxuJHN1Y2Nlc3MtbGlnaHQ6ICAgICAgICAgbGlnaHRlbigkc3VjY2VzcywgJGFtb3VudE9mTGlnaHQpO1xyXG4kaW5mby1saWdodDogICAgICAgICAgICBsaWdodGVuKCRpbmZvLCAkYW1vdW50T2ZMaWdodCk7XHJcbiR3YXJuaW5nLWxpZ2h0OiAgICAgICAgIGxpZ2h0ZW4oJHdhcm5pbmcsICRhbW91bnRPZkxpZ2h0KTtcclxuJGRhbmdlci1saWdodDogICAgICAgICAgbGlnaHRlbigkZGFuZ2VyLCAkYW1vdW50T2ZMaWdodCk7XHJcbiRpbnZlcnNlLWxpZ2h0OiAgICAgICAgIGxpZ2h0ZW4oJGludmVyc2UsICRhbW91bnRPZkxpZ2h0KTtcclxuJGdyZWVuLWxpZ2h0OiAgICAgICAgICAgbGlnaHRlbigkZ3JlZW4sICRhbW91bnRPZkxpZ2h0KTtcclxuJHBpbmstbGlnaHQ6ICAgICAgICAgICAgbGlnaHRlbigkcGluaywgJGFtb3VudE9mTGlnaHQpO1xyXG4kcHVycGxlLWxpZ2h0OiAgICAgICAgICBsaWdodGVuKCRwdXJwbGUsICRhbW91bnRPZkxpZ2h0KTtcclxuJHllbGxvdy1saWdodDogICAgICAgICAgbGlnaHRlbigkeWVsbG93LCAkYW1vdW50T2ZMaWdodCk7XHJcbiRwcmltYXJ5LWRhcms6ICAgICAgICAgIGRhcmtlbigkcHJpbWFyeSwgJGFtb3VudE9mTGlnaHQpO1xyXG4kc3VjY2Vzcy1kYXJrOiAgICAgICAgICBkYXJrZW4oJHN1Y2Nlc3MsICRhbW91bnRPZkxpZ2h0KTtcclxuJGluZm8tZGFyazogICAgICAgICAgICAgZGFya2VuKCRpbmZvLCAkYW1vdW50T2ZMaWdodCk7XHJcbiR3YXJuaW5nLWRhcms6ICAgICAgICAgIGRhcmtlbigkd2FybmluZywgJGFtb3VudE9mTGlnaHQpO1xyXG4kZGFuZ2VyLWRhcms6ICAgICAgICAgICBkYXJrZW4oJGRhbmdlciwgJGFtb3VudE9mTGlnaHQpO1xyXG4kaW52ZXJzZS1kYXJrOiAgICAgICAgICBkYXJrZW4oJGludmVyc2UsICRhbW91bnRPZkxpZ2h0KTtcclxuJGdyZWVuLWRhcms6ICAgICAgICAgICAgZGFya2VuKCRncmVlbiwgJGFtb3VudE9mTGlnaHQpO1xyXG4kcGluay1kYXJrOiAgICAgICAgICAgICBkYXJrZW4oJHBpbmssICRhbW91bnRPZkxpZ2h0KTtcclxuJHB1cnBsZS1kYXJrOiAgICAgICAgICAgZGFya2VuKCRwdXJwbGUsICRhbW91bnRPZkxpZ2h0KTtcclxuJHllbGxvdy1kYXJrOiAgICAgICAgICAgZGFya2VuKCR5ZWxsb3csICRhbW91bnRPZkxpZ2h0KTtcclxuXHJcbi8vIFRoZW1lIHZhcmlhYmxlc1xyXG5cclxuLy8gdXNlZCBmb3Igc2lkZWJhcnMgYW5kIGNvbnRlbnQgc3BhY2luZ1xyXG4kbmF2YmFyLWhlaWdodDogICAgICAgICAgICAgICAgICAgIDU1cHg7XHJcblxyXG4vLyBCdXR0b24gc2Vjb25kYXJ5IHJlZGVmaW5pdGlvbiBzdHlsZSBmb3IgdGhlbWVcclxuJGJ0bi1zZWNvbmRhcnktY29sb3I6ICAgICAgICAgICAgICAjMzMzO1xyXG4kYnRuLXNlY29uZGFyeS1iZzogICAgICAgICAgICAgICAgICNmZmY7XHJcbiRidG4tc2Vjb25kYXJ5LWJvcmRlcjogICAgICAgICAgICAgI2VhZWFlYTtcclxuXHJcbi8vIFRvcCBCb3JkZXIgY29sb3IgZm9yIGN1c3RvbSBkZWZhdWx0IGNhcmRzICguY2FyZC1kZWZhdWx0KVxyXG4kY2FyZC1kZWZhdWx0LWJvcmRlci1jb2xvcjogICAgICAgICNjZmRiZTI7XHJcblxyXG5cclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbi8vIFV0aWxpdGllcyB2YXJpYWJsZXNcclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4kdGV4dC1hbHBoYTogICAgICAgICAgICByZ2JhKDI1NSwyNTUsMjU1LC41KTtcclxuJHRleHQtYWxwaGEtaW52ZXJzZTogICAgcmdiYSgwLDAsMCwuNSk7XHJcblxyXG4kZm9udC1zaXplLWJhc2U6ICAgICAgICAxcmVtO1xyXG4kdGV4dC1zbTogICAgICAgICAgICAgICAkZm9udC1zaXplLWJhc2UgKiAwLjc0Mzc1O1xyXG4kdGV4dC1tZDogICAgICAgICAgICAgICAkZm9udC1zaXplLWJhc2UgKiAxLjY2MjU7XHJcbiR0ZXh0LWxnOiAgICAgICAgICAgICAgICRmb250LXNpemUtYmFzZSAqIDIuNjI1O1xyXG5cclxuJGJvcmRlci1jb2xvcjogICAgICAgICAgcmdiYSgwLDAsMCwuMTIpO1xyXG5cclxuJHdkLXh4czogICAgICAgICAgICAgICAgNjBweDtcclxuJHdkLXhzOiAgICAgICAgICAgICAgICAgOTBweDtcclxuJHdkLXNtOiAgICAgICAgICAgICAgICAgMTUwcHg7XHJcbiR3ZC1zZDogICAgICAgICAgICAgICAgIDIwMHB4OyAvLyBzZCA9PSBzdGFuZGFyZFxyXG4kd2QtbWQ6ICAgICAgICAgICAgICAgICAyNDBweDtcclxuJHdkLWxnOiAgICAgICAgICAgICAgICAgMjgwcHg7XHJcbiR3ZC14bDogICAgICAgICAgICAgICAgIDMyMHB4O1xyXG4kd2QteHhsOiAgICAgICAgICAgICAgICAzNjBweDtcclxuJHdkLXdpZGU6ICAgICAgICAgICAgICAgMTAwJTtcclxuJHdkLWF1dG86ICAgICAgICAgICAgICAgYXV0bztcclxuJHdkLXplcm86ICAgICAgICAgICAgICAgMDtcclxuXHJcblxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuLy8gQm9vdHN0cmFwIDQgVmFyaWFibGVzIE92ZXJyaWRlXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuLy8gQ29sb3Igc3lzdGVtXHJcblxyXG4kY29sb3JzOiAoXHJcbiAgICBcInB1cnBsZVwiOiAgICAgJHB1cnBsZSxcclxuICAgIFwicGlua1wiOiAgICAgICAkcGluayxcclxuICAgIFwieWVsbG93XCI6ICAgICAkeWVsbG93LFxyXG4gICAgXCJncmVlblwiOiAgICAgICRncmVlbixcclxuICAgIFwicHJpbWFyeVwiOiAgICAkcHJpbWFyeSxcclxuICAgIFwic3VjY2Vzc1wiOiAgICAkc3VjY2VzcyxcclxuICAgIFwiaW5mb1wiOiAgICAgICAkaW5mbyxcclxuICAgIFwid2FybmluZ1wiOiAgICAkd2FybmluZyxcclxuICAgIFwiZGFuZ2VyXCI6ICAgICAkZGFuZ2VyLFxyXG4gICAgJ2ludmVyc2UnOiAgICAkaW52ZXJzZSxcclxuXHJcbiAgICAncHJpbWFyeS1saWdodCc6ICRwcmltYXJ5LWxpZ2h0LFxyXG4gICAgJ3ByaW1hcnktZGFyayc6ICAkcHJpbWFyeS1kYXJrLFxyXG4gICAgJ3N1Y2Nlc3MtbGlnaHQnOiAkc3VjY2Vzcy1saWdodCxcclxuICAgICdzdWNjZXNzLWRhcmsnOiAgJHN1Y2Nlc3MtZGFyayxcclxuICAgICdpbmZvLWxpZ2h0JzogICAgJGluZm8tbGlnaHQsXHJcbiAgICAnaW5mby1kYXJrJzogICAgICRpbmZvLWRhcmssXHJcbiAgICAnd2FybmluZy1saWdodCc6ICR3YXJuaW5nLWxpZ2h0LFxyXG4gICAgJ3dhcm5pbmctZGFyayc6ICAkd2FybmluZy1kYXJrLFxyXG4gICAgJ2Rhbmdlci1saWdodCc6ICAkZGFuZ2VyLWxpZ2h0LFxyXG4gICAgJ2Rhbmdlci1kYXJrJzogICAkZGFuZ2VyLWRhcmssXHJcbiAgICAnZ3JlZW4tbGlnaHQnOiAgICRncmVlbi1saWdodCxcclxuICAgICdncmVlbi1kYXJrJzogICAgJGdyZWVuLWRhcmssXHJcbiAgICAncGluay1saWdodCc6ICAgICRwaW5rLWxpZ2h0LFxyXG4gICAgJ3BpbmstZGFyayc6ICAgICAkcGluay1kYXJrLFxyXG4gICAgJ3B1cnBsZS1saWdodCc6ICAkcHVycGxlLWxpZ2h0LFxyXG4gICAgJ3B1cnBsZS1kYXJrJzogICAkcHVycGxlLWRhcmssXHJcbiAgICAnaW52ZXJzZS1saWdodCc6ICRpbnZlcnNlLWxpZ2h0LFxyXG4gICAgJ2ludmVyc2UtZGFyayc6ICAkaW52ZXJzZS1kYXJrLFxyXG4gICAgJ3llbGxvdy1saWdodCc6ICAkeWVsbG93LWxpZ2h0LFxyXG4gICAgJ3llbGxvdy1kYXJrJzogICAkeWVsbG93LWRhcmssXHJcbik7XHJcblxyXG5cclxuJHRoZW1lLWNvbG9yczogKFxyXG4gIFwicHJpbWFyeVwiOiAgICAkcHJpbWFyeSxcclxuICBcInNlY29uZGFyeVwiOiAgJHNlY29uZGFyeSxcclxuICBcInN1Y2Nlc3NcIjogICAgJHN1Y2Nlc3MsXHJcbiAgXCJpbmZvXCI6ICAgICAgICRpbmZvLFxyXG4gIFwid2FybmluZ1wiOiAgICAkd2FybmluZyxcclxuICBcImRhbmdlclwiOiAgICAgJGRhbmdlclxyXG4pO1xyXG5cclxuLy8gQm9keVxyXG5cclxuJGJvZHktYmc6ICAgICAgICAgICAgICAgICAgICNmNWY3ZmE7XHJcbiRib2R5LWNvbG9yOiAgICAgICAgICAgICAgICAjNjU2NTY1O1xyXG5cclxuJGJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgICAgLjI1cmVtO1xyXG4kYm9yZGVyLXJhZGl1cy1sZzogICAgICAgICAgICAuMzc1cmVtO1xyXG5cclxuJGxpbmUtaGVpZ2h0LWJhc2U6ICAgICAgICAgICAgMS41Mjg1NzE0Mjk7XHJcblxyXG4kaGVhZGluZ3MtbGluZS1oZWlnaHQ6ICAgICAgICAxLjE7XHJcblxyXG4kdGV4dC1tdXRlZDogICAgICAgICAgICAgICAgICAjOTA5RkE3O1xyXG5cclxuLy8gVGFibGVzXHJcblxyXG4kdGFibGUtYWNjZW50LWJnOiAgICAgICAgICAgICAjZmFmYmZjO1xyXG4kdGFibGUtaG92ZXItYmc6ICAgICAgICAgICAgICAjZmFmYmZjO1xyXG5cclxuJHRhYmxlLWJvcmRlci1jb2xvcjogICAgICAgICAgI2VlZTtcclxuXHJcbi8vIEJ1dHRvbnMgKyBGb3Jtc1xyXG5cclxuJGlucHV0LWJ0bi1wYWRkaW5nLXk6ICAgICAgICAgLjM3NXJlbTtcclxuJGlucHV0LWJ0bi1wYWRkaW5nLXg6ICAgICAgICAgMXJlbTtcclxuXHJcbiRpbnB1dC1idG4tcGFkZGluZy15LXNtOiAgICAgIC4zMTI1cmVtO1xyXG4kaW5wdXQtYnRuLXBhZGRpbmcteC1zbTogICAgICAuNjI1cmVtO1xyXG5cclxuJGlucHV0LWJ0bi1wYWRkaW5nLXktbGc6ICAgICAgLjYyNXJlbTtcclxuJGlucHV0LWJ0bi1wYWRkaW5nLXgtbGc6ICAgICAgMS4yNXJlbTtcclxuXHJcbiRpbnB1dC1oZWlnaHQ6ICAgICAgICAgICAgICAgIDIuMTg3NXJlbTsgLy8gMzVweFxyXG5cclxuLy8gRm9ybXNcclxuXHJcbiRpbnB1dC1kaXNhYmxlZC1iZzogICAgICAgICAgICAgICAgICAgICAkZ3JheS1saWdodGVyO1xyXG4kaW5wdXQtYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgJGdyYXk7XHJcbiRpbnB1dC1mb2N1cy1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICAjNjZhZmU5O1xyXG4kaW5wdXQtcGxhY2Vob2xkZXItY29sb3I6ICAgICAgICAgICAgICAgI2I3YmFjOTtcclxuXHJcbiRmb3JtLWZlZWRiYWNrLWljb24tdmFsaWQ6ICAgICAgICAgICAgICBub25lO1xyXG4kZm9ybS1mZWVkYmFjay1pY29uLWludmFsaWQ6ICAgICAgICAgICAgbm9uZTtcclxuXHJcbiRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItYWN0aXZlLWJnOiAgICBsaWdodGVuKCRwcmltYXJ5LCAyNSUpO1xyXG5cclxuLy8gRHJvcGRvd25zXHJcblxyXG4kZHJvcGRvd24tYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAjZTFlMWUxO1xyXG5cclxuLy8gTmF2c1xyXG5cclxuJG5hdi10YWJzLWxpbmstYWN0aXZlLWJnOiAgICAgICAgICAgI2ZmZjtcclxuXHJcbi8vIEp1bWJvdHJvblxyXG5cclxuJGp1bWJvdHJvbi1iZzogICAgICAgICAgICAgICAgICAgICAgI2ZjZmNmYztcclxuXHJcbi8vIExpc3QgZ3JvdXBcclxuXHJcbiRsaXN0LWdyb3VwLWJvcmRlci1jb2xvcjogICAgICAgICAgICNlNGVhZWM7XHJcblxyXG4vLyBJbWFnZSB0aHVtYm5haWxzXHJcblxyXG4kdGh1bWJuYWlsLXBhZGRpbmc6ICAgICAgICAgICAgICAgICAuMTI1cmVtO1xyXG5cclxuXHJcbi8vIEJyZWFkY3J1bWJzXHJcblxyXG4kYnJlYWRjcnVtYi1iZzogICAgICAgICAgICAgICAgICAgICAjZmFmYWZhO1xyXG4kYnJlYWRjcnVtYi1kaXZpZGVyLWNvbG9yOiAgICAgICAgICAjYzFjMmMzO1xyXG4kYnJlYWRjcnVtYi1hY3RpdmUtY29sb3I6ICAgICAgICAgICAkYm9keS1jb2xvcjtcclxuIiwiLy8gR3JhZGllbnRzXHJcblxyXG5AbWl4aW4gZ3JhZGllbnQtYmcoJGNvbG9yKSB7XHJcbiAgQGlmICRlbmFibGUtZ3JhZGllbnRzIHtcclxuICAgIGJhY2tncm91bmQ6ICRjb2xvciBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCBtaXgoJGJvZHktYmcsICRjb2xvciwgMTUlKSwgJGNvbG9yKSByZXBlYXQteDtcclxuICB9IEBlbHNlIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcclxuICB9XHJcbn1cclxuXHJcbi8vIEhvcml6b250YWwgZ3JhZGllbnQsIGZyb20gbGVmdCB0byByaWdodFxyXG4vL1xyXG4vLyBDcmVhdGVzIHR3byBjb2xvciBzdG9wcywgc3RhcnQgYW5kIGVuZCwgYnkgc3BlY2lmeWluZyBhIGNvbG9yIGFuZCBwb3NpdGlvbiBmb3IgZWFjaCBjb2xvciBzdG9wLlxyXG5AbWl4aW4gZ3JhZGllbnQteCgkc3RhcnQtY29sb3I6ICRncmF5LTcwMCwgJGVuZC1jb2xvcjogJGdyYXktODAwLCAkc3RhcnQtcGVyY2VudDogMCUsICRlbmQtcGVyY2VudDogMTAwJSkge1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJHN0YXJ0LWNvbG9yICRzdGFydC1wZXJjZW50LCAkZW5kLWNvbG9yICRlbmQtcGVyY2VudCk7XHJcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xyXG59XHJcblxyXG4vLyBWZXJ0aWNhbCBncmFkaWVudCwgZnJvbSB0b3AgdG8gYm90dG9tXHJcbi8vXHJcbi8vIENyZWF0ZXMgdHdvIGNvbG9yIHN0b3BzLCBzdGFydCBhbmQgZW5kLCBieSBzcGVjaWZ5aW5nIGEgY29sb3IgYW5kIHBvc2l0aW9uIGZvciBlYWNoIGNvbG9yIHN0b3AuXHJcbkBtaXhpbiBncmFkaWVudC15KCRzdGFydC1jb2xvcjogJGdyYXktNzAwLCAkZW5kLWNvbG9yOiAkZ3JheS04MDAsICRzdGFydC1wZXJjZW50OiAwJSwgJGVuZC1wZXJjZW50OiAxMDAlKSB7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgJHN0YXJ0LWNvbG9yICRzdGFydC1wZXJjZW50LCAkZW5kLWNvbG9yICRlbmQtcGVyY2VudCk7XHJcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xyXG59XHJcblxyXG5AbWl4aW4gZ3JhZGllbnQtZGlyZWN0aW9uYWwoJHN0YXJ0LWNvbG9yOiAkZ3JheS03MDAsICRlbmQtY29sb3I6ICRncmF5LTgwMCwgJGRlZzogNDVkZWcpIHtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoJGRlZywgJHN0YXJ0LWNvbG9yLCAkZW5kLWNvbG9yKTtcclxuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XHJcbn1cclxuQG1peGluIGdyYWRpZW50LXgtdGhyZWUtY29sb3JzKCRzdGFydC1jb2xvcjogJGJsdWUsICRtaWQtY29sb3I6ICRwdXJwbGUsICRjb2xvci1zdG9wOiA1MCUsICRlbmQtY29sb3I6ICRyZWQpIHtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICRzdGFydC1jb2xvciwgJG1pZC1jb2xvciAkY29sb3Itc3RvcCwgJGVuZC1jb2xvcik7XHJcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxufVxyXG5AbWl4aW4gZ3JhZGllbnQteS10aHJlZS1jb2xvcnMoJHN0YXJ0LWNvbG9yOiAkYmx1ZSwgJG1pZC1jb2xvcjogJHB1cnBsZSwgJGNvbG9yLXN0b3A6IDUwJSwgJGVuZC1jb2xvcjogJHJlZCkge1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgkc3RhcnQtY29sb3IsICRtaWQtY29sb3IgJGNvbG9yLXN0b3AsICRlbmQtY29sb3IpO1xyXG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbn1cclxuQG1peGluIGdyYWRpZW50LXJhZGlhbCgkaW5uZXItY29sb3I6ICRncmF5LTcwMCwgJG91dGVyLWNvbG9yOiAkZ3JheS04MDApIHtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCAkaW5uZXItY29sb3IsICRvdXRlci1jb2xvcik7XHJcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxufVxyXG5AbWl4aW4gZ3JhZGllbnQtc3RyaXBlZCgkY29sb3I6IHJnYmEoJHdoaXRlLCAuMTUpLCAkYW5nbGU6IDQ1ZGVnKSB7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KCRhbmdsZSwgJGNvbG9yIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsICRjb2xvciA1MCUsICRjb2xvciA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xyXG59XHJcbiIsIi8vIEJyZWFrcG9pbnQgdmlld3BvcnQgc2l6ZXMgYW5kIG1lZGlhIHF1ZXJpZXMuXHJcbi8vXHJcbi8vIEJyZWFrcG9pbnRzIGFyZSBkZWZpbmVkIGFzIGEgbWFwIG9mIChuYW1lOiBtaW5pbXVtIHdpZHRoKSwgb3JkZXIgZnJvbSBzbWFsbCB0byBsYXJnZTpcclxuLy9cclxuLy8gICAgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KVxyXG4vL1xyXG4vLyBUaGUgbWFwIGRlZmluZWQgaW4gdGhlIGAkZ3JpZC1icmVha3BvaW50c2AgZ2xvYmFsIHZhcmlhYmxlIGlzIHVzZWQgYXMgdGhlIGAkYnJlYWtwb2ludHNgIGFyZ3VtZW50IGJ5IGRlZmF1bHQuXHJcblxyXG4vLyBOYW1lIG9mIHRoZSBuZXh0IGJyZWFrcG9pbnQsIG9yIG51bGwgZm9yIHRoZSBsYXN0IGJyZWFrcG9pbnQuXHJcbi8vXHJcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSlcclxuLy8gICAgbWRcclxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxyXG4vLyAgICBtZFxyXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20sICRicmVha3BvaW50LW5hbWVzOiAoeHMgc20gbWQgbGcgeGwpKVxyXG4vLyAgICBtZFxyXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1uZXh0KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludC1uYW1lczogbWFwLWtleXMoJGJyZWFrcG9pbnRzKSkge1xyXG4gICRuOiBpbmRleCgkYnJlYWtwb2ludC1uYW1lcywgJG5hbWUpO1xyXG4gIEByZXR1cm4gaWYoJG4gIT0gbnVsbCBhbmQgJG4gPCBsZW5ndGgoJGJyZWFrcG9pbnQtbmFtZXMpLCBudGgoJGJyZWFrcG9pbnQtbmFtZXMsICRuICsgMSksIG51bGwpO1xyXG59XHJcblxyXG4vLyBNaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE51bGwgZm9yIHRoZSBzbWFsbGVzdCAoZmlyc3QpIGJyZWFrcG9pbnQuXHJcbi8vXHJcbi8vICAgID4+IGJyZWFrcG9pbnQtbWluKHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxyXG4vLyAgICA1NzZweFxyXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcclxuICAkbWluOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xyXG4gIEByZXR1cm4gaWYoJG1pbiAhPSAwLCAkbWluLCBudWxsKTtcclxufVxyXG5cclxuLy8gTWF4aW11bSBicmVha3BvaW50IHdpZHRoLiBOdWxsIGZvciB0aGUgbGFyZ2VzdCAobGFzdCkgYnJlYWtwb2ludC5cclxuLy8gVGhlIG1heGltdW0gdmFsdWUgaXMgY2FsY3VsYXRlZCBhcyB0aGUgbWluaW11bSBvZiB0aGUgbmV4dCBvbmUgbGVzcyAwLjAycHhcclxuLy8gdG8gd29yayBhcm91bmQgdGhlIGxpbWl0YXRpb25zIG9mIGBtaW4tYCBhbmQgYG1heC1gIHByZWZpeGVzIGFuZCB2aWV3cG9ydHMgd2l0aCBmcmFjdGlvbmFsIHdpZHRocy5cclxuLy8gU2VlIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9tZWRpYXF1ZXJpZXMtNC8jbXEtbWluLW1heFxyXG4vLyBVc2VzIDAuMDJweCByYXRoZXIgdGhhbiAwLjAxcHggdG8gd29yayBhcm91bmQgYSBjdXJyZW50IHJvdW5kaW5nIGJ1ZyBpbiBTYWZhcmkuXHJcbi8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4MjYxXHJcbi8vXHJcbi8vICAgID4+IGJyZWFrcG9pbnQtbWF4KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxyXG4vLyAgICA3NjcuOThweFxyXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcclxuICAkbmV4dDogYnJlYWtwb2ludC1uZXh0KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xyXG4gIEByZXR1cm4gaWYoJG5leHQsIGJyZWFrcG9pbnQtbWluKCRuZXh0LCAkYnJlYWtwb2ludHMpIC0gLjAyLCBudWxsKTtcclxufVxyXG5cclxuLy8gUmV0dXJucyBhIGJsYW5rIHN0cmluZyBpZiBzbWFsbGVzdCBicmVha3BvaW50LCBvdGhlcndpc2UgcmV0dXJucyB0aGUgbmFtZSB3aXRoIGEgZGFzaCBpbiBmcm9udC5cclxuLy8gVXNlZnVsIGZvciBtYWtpbmcgcmVzcG9uc2l2ZSB1dGlsaXRpZXMuXHJcbi8vXHJcbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoeHMsICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXHJcbi8vICAgIFwiXCIgIChSZXR1cm5zIGEgYmxhbmsgc3RyaW5nKVxyXG4vLyAgICA+PiBicmVha3BvaW50LWluZml4KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxyXG4vLyAgICBcIi1zbVwiXHJcbkBmdW5jdGlvbiBicmVha3BvaW50LWluZml4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XHJcbiAgQHJldHVybiBpZihicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKSA9PSBudWxsLCBcIlwiLCBcIi0jeyRuYW1lfVwiKTtcclxufVxyXG5cclxuLy8gTWVkaWEgb2YgYXQgbGVhc3QgdGhlIG1pbmltdW0gYnJlYWtwb2ludCB3aWR0aC4gTm8gcXVlcnkgZm9yIHRoZSBzbWFsbGVzdCBicmVha3BvaW50LlxyXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIHdpZGVyLlxyXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xyXG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpO1xyXG4gIEBpZiAkbWluIHtcclxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2Uge1xyXG4gICAgQGNvbnRlbnQ7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBNZWRpYSBvZiBhdCBtb3N0IHRoZSBtYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgbGFyZ2VzdCBicmVha3BvaW50LlxyXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIG5hcnJvd2VyLlxyXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1kb3duKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XHJcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50cyk7XHJcbiAgQGlmICRtYXgge1xyXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRtYXgpIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAY29udGVudDtcclxuICB9XHJcbn1cclxuXHJcbi8vIE1lZGlhIHRoYXQgc3BhbnMgbXVsdGlwbGUgYnJlYWtwb2ludCB3aWR0aHMuXHJcbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSBiZXR3ZWVuIHRoZSBtaW4gYW5kIG1heCBicmVha3BvaW50c1xyXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1iZXR3ZWVuKCRsb3dlciwgJHVwcGVyLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XHJcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJGxvd2VyLCAkYnJlYWtwb2ludHMpO1xyXG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCR1cHBlciwgJGJyZWFrcG9pbnRzKTtcclxuXHJcbiAgQGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcclxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSBhbmQgKG1heC13aWR0aDogJG1heCkge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9IEBlbHNlIGlmICRtYXggPT0gbnVsbCB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRsb3dlciwgJGJyZWFrcG9pbnRzKSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgJG1pbiA9PSBudWxsIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkdXBwZXIsICRicmVha3BvaW50cykge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vIE1lZGlhIGJldHdlZW4gdGhlIGJyZWFrcG9pbnQncyBtaW5pbXVtIGFuZCBtYXhpbXVtIHdpZHRocy5cclxuLy8gTm8gbWluaW11bSBmb3IgdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQsIGFuZCBubyBtYXhpbXVtIGZvciB0aGUgbGFyZ2VzdCBvbmUuXHJcbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSBvbmx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50LCBub3Qgdmlld3BvcnRzIGFueSB3aWRlciBvciBuYXJyb3dlci5cclxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtb25seSgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xyXG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpO1xyXG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xyXG5cclxuICBAaWYgJG1pbiAhPSBudWxsIGFuZCAkbWF4ICE9IG51bGwge1xyXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50cykge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9IEBlbHNlIGlmICRtaW4gPT0gbnVsbCB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJG5hbWUsICRicmVha3BvaW50cykge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19 */\";","export default \"/* ========================================================================\\n Component: layout\\n ========================================================================== */\\nbody, .wrapper .section-container {\\n background-color: #f5f7fa;\\n}\\n.wrapper .aside-container {\\n background-color: #3a3f51;\\n}\\n/* ========================================================================\\n Component: top-navbar\\n ========================================================================== */\\n.topnavbar {\\n background-color: #268c3a;\\n background-image: linear-gradient(to right, #268c3a 0%, #31B44A 100%);\\n background-repeat: repeat-x;\\n}\\n@media (min-width: 992px) {\\n .topnavbar .navbar-nav > .nav-item.show > .nav-link, .topnavbar .navbar-nav > .nav-item.show > .nav-link:hover, .topnavbar .navbar-nav > .nav-item.show > .nav-link:focus {\\n box-shadow: 0 -3px 0 #207430 inset;\\n }\\n}\\n.topnavbar .navbar-nav > .nav-item > .navbar-text {\\n color: #fff;\\n}\\n.topnavbar .navbar-nav > .nav-item > .nav-link,\\n.topnavbar .navbar-nav > .nav-item.show > .nav-link {\\n color: #fff;\\n}\\n.topnavbar .navbar-nav > .nav-item > .nav-link:hover, .topnavbar .navbar-nav > .nav-item > .nav-link:focus,\\n.topnavbar .navbar-nav > .nav-item.show > .nav-link:hover,\\n.topnavbar .navbar-nav > .nav-item.show > .nav-link:focus {\\n color: #103c19;\\n}\\n.topnavbar .dropdown-item.active, .topnavbar .dropdown-item:active {\\n background-color: #268c3a;\\n}\\n/* ========================================================================\\n Component: sidebar\\n ========================================================================== */\\n.sidebar {\\n background-color: #3a3f51;\\n}\\n.sidebar .nav-heading {\\n color: #919DA8;\\n}\\n.sidebar-nav > li > a, .sidebar-nav > li > .nav-item {\\n color: #e1e2e3;\\n}\\n.sidebar-nav > li > a:focus, .sidebar-nav > li > a:hover, .sidebar-nav > li > .nav-item:focus, .sidebar-nav > li > .nav-item:hover {\\n color: #268c3a;\\n}\\n.sidebar-nav > li > a > em, .sidebar-nav > li > .nav-item > em {\\n color: inherits;\\n}\\n.sidebar-nav > li.active, .sidebar-nav > li.active > a, .sidebar-nav > li.active > .nav-item, .sidebar-nav > li.active .sidebar-nav, .sidebar-nav > li.open, .sidebar-nav > li.open > a, .sidebar-nav > li.open > .nav-item, .sidebar-nav > li.open .sidebar-nav {\\n background-color: #383d4e;\\n color: #268c3a;\\n}\\n.sidebar-nav > li.active > .nav-item > em, .sidebar-nav > li.active > a > em, .sidebar-nav > li.open > .nav-item > em, .sidebar-nav > li.open > a > em {\\n color: #268c3a;\\n}\\n.sidebar-nav > li.active {\\n border-left-color: #268c3a;\\n}\\n.sidebar-subnav {\\n background-color: #3a3f51;\\n}\\n.sidebar-subnav > .sidebar-subnav-header {\\n color: #e1e2e3;\\n}\\n.sidebar-subnav > li > a, .sidebar-subnav > li > .nav-item {\\n color: #e1e2e3;\\n}\\n.sidebar-subnav > li > a:focus, .sidebar-subnav > li > a:hover, .sidebar-subnav > li > .nav-item:focus, .sidebar-subnav > li > .nav-item:hover {\\n color: #268c3a;\\n}\\n.sidebar-subnav > li.active > a, .sidebar-subnav > li.active > .nav-item {\\n color: #268c3a;\\n}\\n.sidebar-subnav > li.active > a:after, .sidebar-subnav > li.active > .nav-item:after {\\n border-color: #268c3a;\\n background-color: #268c3a;\\n}\\n/* ========================================================================\\n Component: offsidebar\\n ========================================================================== */\\n.offsidebar {\\n border-left: 1px solid greyscale(#cccccc);\\n background-color: #fff;\\n color: #656565;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL3N0eWxlcy90aGVtZXMvRDpcXEluZGlhQlVcXEFnZW50UG9vbFxcRG90TmV0XFxEb3ROZXRGcmFtZXdvcmtcXF93b3JrXFwyOTZcXHMvc3JjXFxhcHBcXHNoYXJlZFxcc3R5bGVzXFx0aGVtZXNcXHRoZW1lLWYuc2NzcyIsInNyYy9hcHAvc2hhcmVkL3N0eWxlcy90aGVtZXMvdGhlbWUtZi5zY3NzIiwic3JjL2FwcC9zaGFyZWQvc3R5bGVzL3RoZW1lcy9EOlxcSW5kaWFCVVxcQWdlbnRQb29sXFxEb3ROZXRcXERvdE5ldEZyYW1ld29ya1xcX3dvcmtcXDI5Nlxccy9zcmNcXGFwcFxcc2hhcmVkXFxzdHlsZXNcXGFwcFxcdmFyaWFibGVzLnNjc3MiLCJzcmMvYXBwL3NoYXJlZC9zdHlsZXMvdGhlbWVzL0Q6XFxJbmRpYUJVXFxBZ2VudFBvb2xcXERvdE5ldFxcRG90TmV0RnJhbWV3b3JrXFxfd29ya1xcMjk2XFxzL3NyY1xcYXBwXFxzaGFyZWRcXHN0eWxlc1xcYm9vdHN0cmFwXFxtaXhpbnNcXF9ncmFkaWVudHMuc2NzcyIsInNyYy9hcHAvc2hhcmVkL3N0eWxlcy90aGVtZXMvRDpcXEluZGlhQlVcXEFnZW50UG9vbFxcRG90TmV0XFxEb3ROZXRGcmFtZXdvcmtcXF93b3JrXFwyOTZcXHMvc3JjXFxhcHBcXHNoYXJlZFxcc3R5bGVzXFxib290c3RyYXBcXG1peGluc1xcX2JyZWFrcG9pbnRzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBOENBOzs2RUFBQTtBQUdBO0VBQ0kseUJBekM0QjtBQ0poQztBRGdEQTtFQUNJLHlCRW5Eb0I7QURNeEI7QURnREE7OzZFQUFBO0FBR0E7RUFDSSx5QkVuQm9CO0VDNUJ0QixxRUFBQTtFQUNBLDJCQUFBO0FGR0Y7QUcwQ0k7RUpNUTtJQUNJLGtDQUFBO0VDN0NkO0FBQ0Y7QURpREk7RUFDSSxXQXREd0I7QUNPaEM7QURrREk7O0VBRUksV0EzRHdCO0FDV2hDO0FEaURROzs7RUFDSSxjQTVEb0I7QUNlaEM7QURpREk7RUFDSSx5QkUzQ2dCO0FESnhCO0FEbURBOzs2RUFBQTtBQUdBO0VBQ0kseUJFMUZvQjtBRDBDeEI7QURrREk7RUFDSSxjQTVEMEI7QUNZbEM7QUR1RFE7RUFDSSxjQTlFc0I7QUMwQmxDO0FEc0RZO0VBQ0ksY0VqRVE7QURheEI7QUR3RFk7RUFDSSxlQWxGa0I7QUM0QmxDO0FENkRZO0VBQ0kseUJBNUZrQjtFQTZGbEIsY0UvRVE7QURvQnhCO0FEOERZO0VBQ0ksY0VuRlE7QUR1QnhCO0FEaUVRO0VBQ0ksMEJFekZZO0FEMEJ4QjtBRHNFQTtFQUNJLHlCRXhJb0I7QURxRXhCO0FEcUVJO0VBQ0ksY0FwSDBCO0FDaURsQztBRHVFUTtFQUNJLGNBekhzQjtBQ29EbEM7QUR1RVk7RUFDSSxjRTVHUTtBRHVDeEI7QUQyRVk7RUFDSSxjRW5IUTtBRDBDeEI7QUQyRWdCO0VBQ0kscUJFdEhJO0VGdUhKLHlCRXZISTtBRDhDeEI7QURvRkE7OzZFQUFBO0FBR0E7RUFDSSx5Q0FBQTtFQUNBLHNCQXhJc0I7RUF5SXRCLGNFckN3QjtBRDVDNUIiLCJmaWxlIjoic3JjL2FwcC9zaGFyZWQvc3R5bGVzL3RoZW1lcy90aGVtZS1mLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBCb290c3RyYXBcclxuQGltcG9ydCBcIi4uL2Jvb3RzdHJhcC9mdW5jdGlvbnNcIjtcclxuQGltcG9ydCBcIi4uL2Jvb3RzdHJhcC92YXJpYWJsZXNcIjtcclxuQGltcG9ydCBcIi4uL2Jvb3RzdHJhcC9taXhpbnNcIjtcclxuQGltcG9ydCAnLi4vYXBwL3ZhcmlhYmxlcyc7XHJcblxyXG5cclxuLy8gTEFZT1VUXHJcblxyXG4kY29udGVudC1iZzogICAgICAgICAgICAgICAgICAgICNmNWY3ZmE7XHJcbiRhc2lkZS1iZzogICAgICAgICAgICAgICAgICAgICAgJGdyYXktZGFyaztcclxuXHJcbi8vIE5BVkJBUiBUT1BcclxuXHJcbiRuYXYtdG9wLWJnOiAgICAgICAgICAgICAgICAgICAgJGdyZWVuLWRhcms7XHJcbiRuYXYtdG9wLWJnLXN0YXJ0OiAgICAgICAgICAgICAgJG5hdi10b3AtYmc7XHJcbiRuYXYtdG9wLWJnLWVuZDogICAgICAgICAgICAgICAgJGdyZWVuO1xyXG4kbmF2LWhlYWRlci1iZzogICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50O1xyXG5cclxuJG5hdi10b3AtaXRlbTogICAgICAgICAgICAgICAgICAjZmZmO1xyXG4kbmF2LXRvcC1pdGVtLWFjdGl2ZTogICAgICAgICAgIGRhcmtlbigkbmF2LXRvcC1iZywgMjAlKTtcclxuXHJcbi8vIFNJREVCQVJcclxuXHJcbiRzaWRlYmFyLWJnOiAgICAgICAgICAgICAgICAgICAgICAkYXNpZGUtYmc7XHJcblxyXG4kc2lkZWJhci1pdGVtLWNvbG9yOiAgICAgICAgICAgICAgI2UxZTJlMztcclxuJHNpZGViYXItaXRlbS1jb2xvci1hY3RpdmU6ICAgICAgICRuYXYtdG9wLWJnO1xyXG4kc2lkZWJhci1pdGVtLWJnLWFjdGl2ZTogICAgICAgICAgZGFya2VuKCRzaWRlYmFyLWJnLCAxJSk7XHJcblxyXG4kc2lkZWJhci1pY29uLWNvbG9yOiAgICAgICAgICAgICAgaW5oZXJpdHM7XHJcbiRzaWRlYmFyLWljb24tY29sb3ItYWN0aXZlOiAgICAgICAkbmF2LXRvcC1iZztcclxuXHJcbiRzaWRlYmFyLWJ1bGxldC1jb2xvcjogICAgICAgICAgICByZ2JhKDAsMCwwLC4yNSk7XHJcbiRzaWRlYmFyLWJ1bGxldC1jb2xvci1hY3RpdmU6ICAgICAkc2lkZWJhci1pY29uLWNvbG9yLWFjdGl2ZTtcclxuXHJcbiRzaWRlYmFyLWhlYWRpbmctY29sb3I6ICAgICAgICAgICAjOTE5REE4O1xyXG4kc2lkZWJhci1sYWJlbC1jb2xvcjogICAgICAgICAgICAgJHNpZGViYXItaXRlbS1jb2xvcjtcclxuXHJcbi8vIE9GRlNJREVCQVJcclxuXHJcbiRvZmZzaWRlYmFyLWJnOiAgICAgICAgICAgI2ZmZjtcclxuJG9mZnNpZGViYXItYm9yZGVyLWNvbG9yOiBncmV5c2NhbGUoZGFya2VuKCRvZmZzaWRlYmFyLWJnLCAyMCUpKTtcclxuJG9mZnNpZGViYXItY29sb3I6ICAgICAgICAkYm9keS1jb2xvcjtcclxuXHJcblxyXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQ29tcG9uZW50OiBsYXlvdXRcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcbmJvZHksIC53cmFwcGVyIC5zZWN0aW9uLWNvbnRhaW5lciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29udGVudC1iZztcclxufVxyXG5cclxuLndyYXBwZXIgLmFzaWRlLWNvbnRhaW5lciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYXNpZGUtYmc7XHJcbn1cclxuXHJcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBDb21wb25lbnQ6IHRvcC1uYXZiYXJcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcbi50b3BuYXZiYXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG5hdi10b3AtYmc7XHJcbiAgICBAaW5jbHVkZSBncmFkaWVudC14KCRuYXYtdG9wLWJnLXN0YXJ0LCAkbmF2LXRvcC1iZy1lbmQpO1xyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAobGcpIHtcclxuICAgICAgICAubmF2YmFyLW5hdiA+IC5uYXYtaXRlbS5zaG93ID4gLm5hdi1saW5rIHtcclxuICAgICAgICAgICAgJiwgJjpob3ZlciwgJjpmb2N1cyB7XHJcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAwIC0zcHggMCBkYXJrZW4oJG5hdi10b3AtYmcsIDYlKSBpbnNldDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAubmF2YmFyLW5hdiA+IC5uYXYtaXRlbSA+IC5uYXZiYXItdGV4dCB7XHJcbiAgICAgICAgY29sb3I6ICRuYXYtdG9wLWl0ZW07XHJcbiAgICB9XHJcblxyXG4gICAgLm5hdmJhci1uYXYgPiAubmF2LWl0ZW0gPiAubmF2LWxpbmssXHJcbiAgICAubmF2YmFyLW5hdiA+IC5uYXYtaXRlbS5zaG93ID4gLm5hdi1saW5rIHtcclxuICAgICAgICBjb2xvcjogJG5hdi10b3AtaXRlbTtcclxuICAgICAgICAmOmhvdmVyLCAmOmZvY3VzIHtcclxuICAgICAgICAgICAgY29sb3I6ICRuYXYtdG9wLWl0ZW0tYWN0aXZlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuZHJvcGRvd24taXRlbS5hY3RpdmUsIC5kcm9wZG93bi1pdGVtOmFjdGl2ZSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG5hdi10b3AtYmc7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBDb21wb25lbnQ6IHNpZGViYXJcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcbi5zaWRlYmFyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRzaWRlYmFyLWJnO1xyXG5cclxuICAgIC5uYXYtaGVhZGluZyB7XHJcbiAgICAgICAgY29sb3I6ICRzaWRlYmFyLWhlYWRpbmctY29sb3I7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vIEl0ZW1zXHJcbi5zaWRlYmFyLW5hdiB7XHJcbiAgICA+IGxpIHtcclxuICAgICAgICA+IGEsID4gLm5hdi1pdGVtIHtcclxuICAgICAgICAgICAgY29sb3I6ICRzaWRlYmFyLWl0ZW0tY29sb3I7XHJcblxyXG4gICAgICAgICAgICAmOmZvY3VzLCAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2lkZWJhci1pdGVtLWNvbG9yLWFjdGl2ZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gSXRlbSBpY29uXHJcbiAgICAgICAgICAgID4gZW0ge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICRzaWRlYmFyLWljb24tY29sb3I7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBBY3RpdmUgaXRlbSBzdGF0ZVxyXG4gICAgICAgICYuYWN0aXZlLCAmLm9wZW4ge1xyXG4gICAgICAgICAgICAmLCA+IGEsID4gLm5hdi1pdGVtLCAuc2lkZWJhci1uYXYge1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNpZGViYXItaXRlbS1iZy1hY3RpdmU7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNpZGViYXItaXRlbS1jb2xvci1hY3RpdmU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgID4gLm5hdi1pdGVtID4gZW0sID4gYSA+IGVtIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2lkZWJhci1pY29uLWNvbG9yLWFjdGl2ZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuYWN0aXZlIHtcclxuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICRzaWRlYmFyLWl0ZW0tY29sb3ItYWN0aXZlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG59XHJcblxyXG4uc2lkZWJhci1zdWJuYXYge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHNpZGViYXItYmc7XHJcblxyXG4gICAgPiAuc2lkZWJhci1zdWJuYXYtaGVhZGVyIHtcclxuICAgICAgICBjb2xvcjogJHNpZGViYXItaXRlbS1jb2xvcjtcclxuICAgIH1cclxuXHJcbiAgICA+IGxpIHtcclxuICAgICAgICA+IGEsID4gLm5hdi1pdGVtIHtcclxuICAgICAgICAgICAgY29sb3I6ICRzaWRlYmFyLWl0ZW0tY29sb3I7XHJcblxyXG4gICAgICAgICAgICAmOmZvY3VzLCAmOmhvdmVyIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2lkZWJhci1pdGVtLWNvbG9yLWFjdGl2ZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYuYWN0aXZlIHtcclxuICAgICAgICAgICAgPiBhLCA+IC5uYXYtaXRlbSB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNpZGViYXItaWNvbi1jb2xvci1hY3RpdmU7XHJcblxyXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2lkZWJhci1idWxsZXQtY29sb3ItYWN0aXZlO1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzaWRlYmFyLWJ1bGxldC1jb2xvci1hY3RpdmU7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG59XHJcblxyXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgQ29tcG9uZW50OiBvZmZzaWRlYmFyXHJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG4ub2Zmc2lkZWJhciB7XHJcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICRvZmZzaWRlYmFyLWJvcmRlci1jb2xvcjtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRvZmZzaWRlYmFyLWJnO1xyXG4gICAgY29sb3I6ICRvZmZzaWRlYmFyLWNvbG9yO1xyXG59XHJcbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBsYXlvdXRcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuYm9keSwgLndyYXBwZXIgLnNlY3Rpb24tY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjdmYTtcbn1cblxuLndyYXBwZXIgLmFzaWRlLWNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzYTNmNTE7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiB0b3AtbmF2YmFyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi50b3BuYXZiYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjY4YzNhO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICMyNjhjM2EgMCUsICMzMUI0NEEgMTAwJSk7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAudG9wbmF2YmFyIC5uYXZiYXItbmF2ID4gLm5hdi1pdGVtLnNob3cgPiAubmF2LWxpbmssIC50b3BuYXZiYXIgLm5hdmJhci1uYXYgPiAubmF2LWl0ZW0uc2hvdyA+IC5uYXYtbGluazpob3ZlciwgLnRvcG5hdmJhciAubmF2YmFyLW5hdiA+IC5uYXYtaXRlbS5zaG93ID4gLm5hdi1saW5rOmZvY3VzIHtcbiAgICBib3gtc2hhZG93OiAwIC0zcHggMCAjMjA3NDMwIGluc2V0O1xuICB9XG59XG4udG9wbmF2YmFyIC5uYXZiYXItbmF2ID4gLm5hdi1pdGVtID4gLm5hdmJhci10ZXh0IHtcbiAgY29sb3I6ICNmZmY7XG59XG4udG9wbmF2YmFyIC5uYXZiYXItbmF2ID4gLm5hdi1pdGVtID4gLm5hdi1saW5rLFxuLnRvcG5hdmJhciAubmF2YmFyLW5hdiA+IC5uYXYtaXRlbS5zaG93ID4gLm5hdi1saW5rIHtcbiAgY29sb3I6ICNmZmY7XG59XG4udG9wbmF2YmFyIC5uYXZiYXItbmF2ID4gLm5hdi1pdGVtID4gLm5hdi1saW5rOmhvdmVyLCAudG9wbmF2YmFyIC5uYXZiYXItbmF2ID4gLm5hdi1pdGVtID4gLm5hdi1saW5rOmZvY3VzLFxuLnRvcG5hdmJhciAubmF2YmFyLW5hdiA+IC5uYXYtaXRlbS5zaG93ID4gLm5hdi1saW5rOmhvdmVyLFxuLnRvcG5hdmJhciAubmF2YmFyLW5hdiA+IC5uYXYtaXRlbS5zaG93ID4gLm5hdi1saW5rOmZvY3VzIHtcbiAgY29sb3I6ICMxMDNjMTk7XG59XG4udG9wbmF2YmFyIC5kcm9wZG93bi1pdGVtLmFjdGl2ZSwgLnRvcG5hdmJhciAuZHJvcGRvd24taXRlbTphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjY4YzNhO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbXBvbmVudDogc2lkZWJhclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uc2lkZWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzYTNmNTE7XG59XG4uc2lkZWJhciAubmF2LWhlYWRpbmcge1xuICBjb2xvcjogIzkxOURBODtcbn1cblxuLnNpZGViYXItbmF2ID4gbGkgPiBhLCAuc2lkZWJhci1uYXYgPiBsaSA+IC5uYXYtaXRlbSB7XG4gIGNvbG9yOiAjZTFlMmUzO1xufVxuLnNpZGViYXItbmF2ID4gbGkgPiBhOmZvY3VzLCAuc2lkZWJhci1uYXYgPiBsaSA+IGE6aG92ZXIsIC5zaWRlYmFyLW5hdiA+IGxpID4gLm5hdi1pdGVtOmZvY3VzLCAuc2lkZWJhci1uYXYgPiBsaSA+IC5uYXYtaXRlbTpob3ZlciB7XG4gIGNvbG9yOiAjMjY4YzNhO1xufVxuLnNpZGViYXItbmF2ID4gbGkgPiBhID4gZW0sIC5zaWRlYmFyLW5hdiA+IGxpID4gLm5hdi1pdGVtID4gZW0ge1xuICBjb2xvcjogaW5oZXJpdHM7XG59XG4uc2lkZWJhci1uYXYgPiBsaS5hY3RpdmUsIC5zaWRlYmFyLW5hdiA+IGxpLmFjdGl2ZSA+IGEsIC5zaWRlYmFyLW5hdiA+IGxpLmFjdGl2ZSA+IC5uYXYtaXRlbSwgLnNpZGViYXItbmF2ID4gbGkuYWN0aXZlIC5zaWRlYmFyLW5hdiwgLnNpZGViYXItbmF2ID4gbGkub3BlbiwgLnNpZGViYXItbmF2ID4gbGkub3BlbiA+IGEsIC5zaWRlYmFyLW5hdiA+IGxpLm9wZW4gPiAubmF2LWl0ZW0sIC5zaWRlYmFyLW5hdiA+IGxpLm9wZW4gLnNpZGViYXItbmF2IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM4M2Q0ZTtcbiAgY29sb3I6ICMyNjhjM2E7XG59XG4uc2lkZWJhci1uYXYgPiBsaS5hY3RpdmUgPiAubmF2LWl0ZW0gPiBlbSwgLnNpZGViYXItbmF2ID4gbGkuYWN0aXZlID4gYSA+IGVtLCAuc2lkZWJhci1uYXYgPiBsaS5vcGVuID4gLm5hdi1pdGVtID4gZW0sIC5zaWRlYmFyLW5hdiA+IGxpLm9wZW4gPiBhID4gZW0ge1xuICBjb2xvcjogIzI2OGMzYTtcbn1cbi5zaWRlYmFyLW5hdiA+IGxpLmFjdGl2ZSB7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiAjMjY4YzNhO1xufVxuXG4uc2lkZWJhci1zdWJuYXYge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2EzZjUxO1xufVxuLnNpZGViYXItc3VibmF2ID4gLnNpZGViYXItc3VibmF2LWhlYWRlciB7XG4gIGNvbG9yOiAjZTFlMmUzO1xufVxuLnNpZGViYXItc3VibmF2ID4gbGkgPiBhLCAuc2lkZWJhci1zdWJuYXYgPiBsaSA+IC5uYXYtaXRlbSB7XG4gIGNvbG9yOiAjZTFlMmUzO1xufVxuLnNpZGViYXItc3VibmF2ID4gbGkgPiBhOmZvY3VzLCAuc2lkZWJhci1zdWJuYXYgPiBsaSA+IGE6aG92ZXIsIC5zaWRlYmFyLXN1Ym5hdiA+IGxpID4gLm5hdi1pdGVtOmZvY3VzLCAuc2lkZWJhci1zdWJuYXYgPiBsaSA+IC5uYXYtaXRlbTpob3ZlciB7XG4gIGNvbG9yOiAjMjY4YzNhO1xufVxuLnNpZGViYXItc3VibmF2ID4gbGkuYWN0aXZlID4gYSwgLnNpZGViYXItc3VibmF2ID4gbGkuYWN0aXZlID4gLm5hdi1pdGVtIHtcbiAgY29sb3I6ICMyNjhjM2E7XG59XG4uc2lkZWJhci1zdWJuYXYgPiBsaS5hY3RpdmUgPiBhOmFmdGVyLCAuc2lkZWJhci1zdWJuYXYgPiBsaS5hY3RpdmUgPiAubmF2LWl0ZW06YWZ0ZXIge1xuICBib3JkZXItY29sb3I6ICMyNjhjM2E7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyNjhjM2E7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBvZmZzaWRlYmFyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5vZmZzaWRlYmFyIHtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCBncmV5c2NhbGUoI2NjY2NjYyk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGNvbG9yOiAjNjU2NTY1O1xufSIsIlxyXG4vLyBDdXRvbXMgR3JheSBjb2xvcnMgZm9yIHRoZW1lXHJcbiRncmF5LWRhcmtlcjogICAgICAgICAgICMyMzI3MzU7XHJcbiRncmF5LWRhcms6ICAgICAgICAgICAgICMzYTNmNTE7XHJcbiRncmF5OiAgICAgICAgICAgICAgICAgICNkZGU2ZTk7XHJcbiRncmF5LWxpZ2h0OiAgICAgICAgICAgICNlNGVhZWM7XHJcbiRncmF5LWxpZ2h0ZXI6ICAgICAgICAgICNlZGYxZjI7XHJcblxyXG4vLyBDdXN0b20gYnJhbmQgY29sb3JzIGZvciB0aGVtZVxyXG4kaW52ZXJzZTogICAgICAgICAgICAgICAjMTMxZTI2O1xyXG4kcHVycGxlOiAgICAgICAgICAgICAgICAjNzI2NmJhO1xyXG4kcGluazogICAgICAgICAgICAgICAgICAjZjUzMmU1O1xyXG4keWVsbG93OiAgICAgICAgICAgICAgICAjZmFkNzMyO1xyXG4kZ3JlZW46ICAgICAgICAgICAgICAgICAjMzFCNDRBO1xyXG5cclxuJHByaW1hcnk6ICAgICAgICAgICAgICAgIzAwQUJFNztcclxuJHNlY29uZGFyeTogICAgICAgICAgICAgI2ZmZjtcclxuJHN1Y2Nlc3M6ICAgICAgICAgICAgICAgIzI3YzI0YztcclxuJGluZm86ICAgICAgICAgICAgICAgICAgIzg2QkMyNSAgO1xyXG4kd2FybmluZzogICAgICAgICAgICAgICAjZmY5MDJiO1xyXG4kZGFuZ2VyOiAgICAgICAgICAgICAgICAjZjA1MDUwO1xyXG4kZGFyazogICAgICAgICAgICAgICAgICAjM2EzZjUxO1xyXG5cclxuLy8gQ3VzdG9tIGNvbG9yIHZhcmlhbnRzXHJcbiRhbW91bnRPZkxpZ2h0OiAxMCU7XHJcblxyXG4kcHJpbWFyeS1saWdodDogICAgICAgICBsaWdodGVuKCRwcmltYXJ5LCAkYW1vdW50T2ZMaWdodCk7XHJcbiRzdWNjZXNzLWxpZ2h0OiAgICAgICAgIGxpZ2h0ZW4oJHN1Y2Nlc3MsICRhbW91bnRPZkxpZ2h0KTtcclxuJGluZm8tbGlnaHQ6ICAgICAgICAgICAgbGlnaHRlbigkaW5mbywgJGFtb3VudE9mTGlnaHQpO1xyXG4kd2FybmluZy1saWdodDogICAgICAgICBsaWdodGVuKCR3YXJuaW5nLCAkYW1vdW50T2ZMaWdodCk7XHJcbiRkYW5nZXItbGlnaHQ6ICAgICAgICAgIGxpZ2h0ZW4oJGRhbmdlciwgJGFtb3VudE9mTGlnaHQpO1xyXG4kaW52ZXJzZS1saWdodDogICAgICAgICBsaWdodGVuKCRpbnZlcnNlLCAkYW1vdW50T2ZMaWdodCk7XHJcbiRncmVlbi1saWdodDogICAgICAgICAgIGxpZ2h0ZW4oJGdyZWVuLCAkYW1vdW50T2ZMaWdodCk7XHJcbiRwaW5rLWxpZ2h0OiAgICAgICAgICAgIGxpZ2h0ZW4oJHBpbmssICRhbW91bnRPZkxpZ2h0KTtcclxuJHB1cnBsZS1saWdodDogICAgICAgICAgbGlnaHRlbigkcHVycGxlLCAkYW1vdW50T2ZMaWdodCk7XHJcbiR5ZWxsb3ctbGlnaHQ6ICAgICAgICAgIGxpZ2h0ZW4oJHllbGxvdywgJGFtb3VudE9mTGlnaHQpO1xyXG4kcHJpbWFyeS1kYXJrOiAgICAgICAgICBkYXJrZW4oJHByaW1hcnksICRhbW91bnRPZkxpZ2h0KTtcclxuJHN1Y2Nlc3MtZGFyazogICAgICAgICAgZGFya2VuKCRzdWNjZXNzLCAkYW1vdW50T2ZMaWdodCk7XHJcbiRpbmZvLWRhcms6ICAgICAgICAgICAgIGRhcmtlbigkaW5mbywgJGFtb3VudE9mTGlnaHQpO1xyXG4kd2FybmluZy1kYXJrOiAgICAgICAgICBkYXJrZW4oJHdhcm5pbmcsICRhbW91bnRPZkxpZ2h0KTtcclxuJGRhbmdlci1kYXJrOiAgICAgICAgICAgZGFya2VuKCRkYW5nZXIsICRhbW91bnRPZkxpZ2h0KTtcclxuJGludmVyc2UtZGFyazogICAgICAgICAgZGFya2VuKCRpbnZlcnNlLCAkYW1vdW50T2ZMaWdodCk7XHJcbiRncmVlbi1kYXJrOiAgICAgICAgICAgIGRhcmtlbigkZ3JlZW4sICRhbW91bnRPZkxpZ2h0KTtcclxuJHBpbmstZGFyazogICAgICAgICAgICAgZGFya2VuKCRwaW5rLCAkYW1vdW50T2ZMaWdodCk7XHJcbiRwdXJwbGUtZGFyazogICAgICAgICAgIGRhcmtlbigkcHVycGxlLCAkYW1vdW50T2ZMaWdodCk7XHJcbiR5ZWxsb3ctZGFyazogICAgICAgICAgIGRhcmtlbigkeWVsbG93LCAkYW1vdW50T2ZMaWdodCk7XHJcblxyXG4vLyBUaGVtZSB2YXJpYWJsZXNcclxuXHJcbi8vIHVzZWQgZm9yIHNpZGViYXJzIGFuZCBjb250ZW50IHNwYWNpbmdcclxuJG5hdmJhci1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICA1NXB4O1xyXG5cclxuLy8gQnV0dG9uIHNlY29uZGFyeSByZWRlZmluaXRpb24gc3R5bGUgZm9yIHRoZW1lXHJcbiRidG4tc2Vjb25kYXJ5LWNvbG9yOiAgICAgICAgICAgICAgIzMzMztcclxuJGJ0bi1zZWNvbmRhcnktYmc6ICAgICAgICAgICAgICAgICAjZmZmO1xyXG4kYnRuLXNlY29uZGFyeS1ib3JkZXI6ICAgICAgICAgICAgICNlYWVhZWE7XHJcblxyXG4vLyBUb3AgQm9yZGVyIGNvbG9yIGZvciBjdXN0b20gZGVmYXVsdCBjYXJkcyAoLmNhcmQtZGVmYXVsdClcclxuJGNhcmQtZGVmYXVsdC1ib3JkZXItY29sb3I6ICAgICAgICAjY2ZkYmUyO1xyXG5cclxuXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4vLyBVdGlsaXRpZXMgdmFyaWFibGVzXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuJHRleHQtYWxwaGE6ICAgICAgICAgICAgcmdiYSgyNTUsMjU1LDI1NSwuNSk7XHJcbiR0ZXh0LWFscGhhLWludmVyc2U6ICAgIHJnYmEoMCwwLDAsLjUpO1xyXG5cclxuJGZvbnQtc2l6ZS1iYXNlOiAgICAgICAgMXJlbTtcclxuJHRleHQtc206ICAgICAgICAgICAgICAgJGZvbnQtc2l6ZS1iYXNlICogMC43NDM3NTtcclxuJHRleHQtbWQ6ICAgICAgICAgICAgICAgJGZvbnQtc2l6ZS1iYXNlICogMS42NjI1O1xyXG4kdGV4dC1sZzogICAgICAgICAgICAgICAkZm9udC1zaXplLWJhc2UgKiAyLjYyNTtcclxuXHJcbiRib3JkZXItY29sb3I6ICAgICAgICAgIHJnYmEoMCwwLDAsLjEyKTtcclxuXHJcbiR3ZC14eHM6ICAgICAgICAgICAgICAgIDYwcHg7XHJcbiR3ZC14czogICAgICAgICAgICAgICAgIDkwcHg7XHJcbiR3ZC1zbTogICAgICAgICAgICAgICAgIDE1MHB4O1xyXG4kd2Qtc2Q6ICAgICAgICAgICAgICAgICAyMDBweDsgLy8gc2QgPT0gc3RhbmRhcmRcclxuJHdkLW1kOiAgICAgICAgICAgICAgICAgMjQwcHg7XHJcbiR3ZC1sZzogICAgICAgICAgICAgICAgIDI4MHB4O1xyXG4kd2QteGw6ICAgICAgICAgICAgICAgICAzMjBweDtcclxuJHdkLXh4bDogICAgICAgICAgICAgICAgMzYwcHg7XHJcbiR3ZC13aWRlOiAgICAgICAgICAgICAgIDEwMCU7XHJcbiR3ZC1hdXRvOiAgICAgICAgICAgICAgIGF1dG87XHJcbiR3ZC16ZXJvOiAgICAgICAgICAgICAgIDA7XHJcblxyXG5cclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbi8vIEJvb3RzdHJhcCA0IFZhcmlhYmxlcyBPdmVycmlkZVxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbi8vIENvbG9yIHN5c3RlbVxyXG5cclxuJGNvbG9yczogKFxyXG4gICAgXCJwdXJwbGVcIjogICAgICRwdXJwbGUsXHJcbiAgICBcInBpbmtcIjogICAgICAgJHBpbmssXHJcbiAgICBcInllbGxvd1wiOiAgICAgJHllbGxvdyxcclxuICAgIFwiZ3JlZW5cIjogICAgICAkZ3JlZW4sXHJcbiAgICBcInByaW1hcnlcIjogICAgJHByaW1hcnksXHJcbiAgICBcInN1Y2Nlc3NcIjogICAgJHN1Y2Nlc3MsXHJcbiAgICBcImluZm9cIjogICAgICAgJGluZm8sXHJcbiAgICBcIndhcm5pbmdcIjogICAgJHdhcm5pbmcsXHJcbiAgICBcImRhbmdlclwiOiAgICAgJGRhbmdlcixcclxuICAgICdpbnZlcnNlJzogICAgJGludmVyc2UsXHJcblxyXG4gICAgJ3ByaW1hcnktbGlnaHQnOiAkcHJpbWFyeS1saWdodCxcclxuICAgICdwcmltYXJ5LWRhcmsnOiAgJHByaW1hcnktZGFyayxcclxuICAgICdzdWNjZXNzLWxpZ2h0JzogJHN1Y2Nlc3MtbGlnaHQsXHJcbiAgICAnc3VjY2Vzcy1kYXJrJzogICRzdWNjZXNzLWRhcmssXHJcbiAgICAnaW5mby1saWdodCc6ICAgICRpbmZvLWxpZ2h0LFxyXG4gICAgJ2luZm8tZGFyayc6ICAgICAkaW5mby1kYXJrLFxyXG4gICAgJ3dhcm5pbmctbGlnaHQnOiAkd2FybmluZy1saWdodCxcclxuICAgICd3YXJuaW5nLWRhcmsnOiAgJHdhcm5pbmctZGFyayxcclxuICAgICdkYW5nZXItbGlnaHQnOiAgJGRhbmdlci1saWdodCxcclxuICAgICdkYW5nZXItZGFyayc6ICAgJGRhbmdlci1kYXJrLFxyXG4gICAgJ2dyZWVuLWxpZ2h0JzogICAkZ3JlZW4tbGlnaHQsXHJcbiAgICAnZ3JlZW4tZGFyayc6ICAgICRncmVlbi1kYXJrLFxyXG4gICAgJ3BpbmstbGlnaHQnOiAgICAkcGluay1saWdodCxcclxuICAgICdwaW5rLWRhcmsnOiAgICAgJHBpbmstZGFyayxcclxuICAgICdwdXJwbGUtbGlnaHQnOiAgJHB1cnBsZS1saWdodCxcclxuICAgICdwdXJwbGUtZGFyayc6ICAgJHB1cnBsZS1kYXJrLFxyXG4gICAgJ2ludmVyc2UtbGlnaHQnOiAkaW52ZXJzZS1saWdodCxcclxuICAgICdpbnZlcnNlLWRhcmsnOiAgJGludmVyc2UtZGFyayxcclxuICAgICd5ZWxsb3ctbGlnaHQnOiAgJHllbGxvdy1saWdodCxcclxuICAgICd5ZWxsb3ctZGFyayc6ICAgJHllbGxvdy1kYXJrLFxyXG4pO1xyXG5cclxuXHJcbiR0aGVtZS1jb2xvcnM6IChcclxuICBcInByaW1hcnlcIjogICAgJHByaW1hcnksXHJcbiAgXCJzZWNvbmRhcnlcIjogICRzZWNvbmRhcnksXHJcbiAgXCJzdWNjZXNzXCI6ICAgICRzdWNjZXNzLFxyXG4gIFwiaW5mb1wiOiAgICAgICAkaW5mbyxcclxuICBcIndhcm5pbmdcIjogICAgJHdhcm5pbmcsXHJcbiAgXCJkYW5nZXJcIjogICAgICRkYW5nZXJcclxuKTtcclxuXHJcbi8vIEJvZHlcclxuXHJcbiRib2R5LWJnOiAgICAgICAgICAgICAgICAgICAjZjVmN2ZhO1xyXG4kYm9keS1jb2xvcjogICAgICAgICAgICAgICAgIzY1NjU2NTtcclxuXHJcbiRib3JkZXItcmFkaXVzOiAgICAgICAgICAgICAgIC4yNXJlbTtcclxuJGJvcmRlci1yYWRpdXMtbGc6ICAgICAgICAgICAgLjM3NXJlbTtcclxuXHJcbiRsaW5lLWhlaWdodC1iYXNlOiAgICAgICAgICAgIDEuNTI4NTcxNDI5O1xyXG5cclxuJGhlYWRpbmdzLWxpbmUtaGVpZ2h0OiAgICAgICAgMS4xO1xyXG5cclxuJHRleHQtbXV0ZWQ6ICAgICAgICAgICAgICAgICAgIzkwOUZBNztcclxuXHJcbi8vIFRhYmxlc1xyXG5cclxuJHRhYmxlLWFjY2VudC1iZzogICAgICAgICAgICAgI2ZhZmJmYztcclxuJHRhYmxlLWhvdmVyLWJnOiAgICAgICAgICAgICAgI2ZhZmJmYztcclxuXHJcbiR0YWJsZS1ib3JkZXItY29sb3I6ICAgICAgICAgICNlZWU7XHJcblxyXG4vLyBCdXR0b25zICsgRm9ybXNcclxuXHJcbiRpbnB1dC1idG4tcGFkZGluZy15OiAgICAgICAgIC4zNzVyZW07XHJcbiRpbnB1dC1idG4tcGFkZGluZy14OiAgICAgICAgIDFyZW07XHJcblxyXG4kaW5wdXQtYnRuLXBhZGRpbmcteS1zbTogICAgICAuMzEyNXJlbTtcclxuJGlucHV0LWJ0bi1wYWRkaW5nLXgtc206ICAgICAgLjYyNXJlbTtcclxuXHJcbiRpbnB1dC1idG4tcGFkZGluZy15LWxnOiAgICAgIC42MjVyZW07XHJcbiRpbnB1dC1idG4tcGFkZGluZy14LWxnOiAgICAgIDEuMjVyZW07XHJcblxyXG4kaW5wdXQtaGVpZ2h0OiAgICAgICAgICAgICAgICAyLjE4NzVyZW07IC8vIDM1cHhcclxuXHJcbi8vIEZvcm1zXHJcblxyXG4kaW5wdXQtZGlzYWJsZWQtYmc6ICAgICAgICAgICAgICAgICAgICAgJGdyYXktbGlnaHRlcjtcclxuJGlucHV0LWJvcmRlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICRncmF5O1xyXG4kaW5wdXQtZm9jdXMtYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAgIzY2YWZlOTtcclxuJGlucHV0LXBsYWNlaG9sZGVyLWNvbG9yOiAgICAgICAgICAgICAgICNiN2JhYzk7XHJcblxyXG4kZm9ybS1mZWVkYmFjay1pY29uLXZhbGlkOiAgICAgICAgICAgICAgbm9uZTtcclxuJGZvcm0tZmVlZGJhY2staWNvbi1pbnZhbGlkOiAgICAgICAgICAgIG5vbmU7XHJcblxyXG4kY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLWFjdGl2ZS1iZzogICAgbGlnaHRlbigkcHJpbWFyeSwgMjUlKTtcclxuXHJcbi8vIERyb3Bkb3duc1xyXG5cclxuJGRyb3Bkb3duLWJvcmRlci1jb2xvcjogICAgICAgICAgICAgI2UxZTFlMTtcclxuXHJcbi8vIE5hdnNcclxuXHJcbiRuYXYtdGFicy1saW5rLWFjdGl2ZS1iZzogICAgICAgICAgICNmZmY7XHJcblxyXG4vLyBKdW1ib3Ryb25cclxuXHJcbiRqdW1ib3Ryb24tYmc6ICAgICAgICAgICAgICAgICAgICAgICNmY2ZjZmM7XHJcblxyXG4vLyBMaXN0IGdyb3VwXHJcblxyXG4kbGlzdC1ncm91cC1ib3JkZXItY29sb3I6ICAgICAgICAgICAjZTRlYWVjO1xyXG5cclxuLy8gSW1hZ2UgdGh1bWJuYWlsc1xyXG5cclxuJHRodW1ibmFpbC1wYWRkaW5nOiAgICAgICAgICAgICAgICAgLjEyNXJlbTtcclxuXHJcblxyXG4vLyBCcmVhZGNydW1ic1xyXG5cclxuJGJyZWFkY3J1bWItYmc6ICAgICAgICAgICAgICAgICAgICAgI2ZhZmFmYTtcclxuJGJyZWFkY3J1bWItZGl2aWRlci1jb2xvcjogICAgICAgICAgI2MxYzJjMztcclxuJGJyZWFkY3J1bWItYWN0aXZlLWNvbG9yOiAgICAgICAgICAgJGJvZHktY29sb3I7XHJcbiIsIi8vIEdyYWRpZW50c1xyXG5cclxuQG1peGluIGdyYWRpZW50LWJnKCRjb2xvcikge1xyXG4gIEBpZiAkZW5hYmxlLWdyYWRpZW50cyB7XHJcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3IgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgbWl4KCRib2R5LWJnLCAkY29sb3IsIDE1JSksICRjb2xvcikgcmVwZWF0LXg7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBIb3Jpem9udGFsIGdyYWRpZW50LCBmcm9tIGxlZnQgdG8gcmlnaHRcclxuLy9cclxuLy8gQ3JlYXRlcyB0d28gY29sb3Igc3RvcHMsIHN0YXJ0IGFuZCBlbmQsIGJ5IHNwZWNpZnlpbmcgYSBjb2xvciBhbmQgcG9zaXRpb24gZm9yIGVhY2ggY29sb3Igc3RvcC5cclxuQG1peGluIGdyYWRpZW50LXgoJHN0YXJ0LWNvbG9yOiAkZ3JheS03MDAsICRlbmQtY29sb3I6ICRncmF5LTgwMCwgJHN0YXJ0LXBlcmNlbnQ6IDAlLCAkZW5kLXBlcmNlbnQ6IDEwMCUpIHtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICRzdGFydC1jb2xvciAkc3RhcnQtcGVyY2VudCwgJGVuZC1jb2xvciAkZW5kLXBlcmNlbnQpO1xyXG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcclxufVxyXG5cclxuLy8gVmVydGljYWwgZ3JhZGllbnQsIGZyb20gdG9wIHRvIGJvdHRvbVxyXG4vL1xyXG4vLyBDcmVhdGVzIHR3byBjb2xvciBzdG9wcywgc3RhcnQgYW5kIGVuZCwgYnkgc3BlY2lmeWluZyBhIGNvbG9yIGFuZCBwb3NpdGlvbiBmb3IgZWFjaCBjb2xvciBzdG9wLlxyXG5AbWl4aW4gZ3JhZGllbnQteSgkc3RhcnQtY29sb3I6ICRncmF5LTcwMCwgJGVuZC1jb2xvcjogJGdyYXktODAwLCAkc3RhcnQtcGVyY2VudDogMCUsICRlbmQtcGVyY2VudDogMTAwJSkge1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICRzdGFydC1jb2xvciAkc3RhcnQtcGVyY2VudCwgJGVuZC1jb2xvciAkZW5kLXBlcmNlbnQpO1xyXG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcclxufVxyXG5cclxuQG1peGluIGdyYWRpZW50LWRpcmVjdGlvbmFsKCRzdGFydC1jb2xvcjogJGdyYXktNzAwLCAkZW5kLWNvbG9yOiAkZ3JheS04MDAsICRkZWc6IDQ1ZGVnKSB7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KCRkZWcsICRzdGFydC1jb2xvciwgJGVuZC1jb2xvcik7XHJcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xyXG59XHJcbkBtaXhpbiBncmFkaWVudC14LXRocmVlLWNvbG9ycygkc3RhcnQtY29sb3I6ICRibHVlLCAkbWlkLWNvbG9yOiAkcHVycGxlLCAkY29sb3Itc3RvcDogNTAlLCAkZW5kLWNvbG9yOiAkcmVkKSB7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAkc3RhcnQtY29sb3IsICRtaWQtY29sb3IgJGNvbG9yLXN0b3AsICRlbmQtY29sb3IpO1xyXG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbn1cclxuQG1peGluIGdyYWRpZW50LXktdGhyZWUtY29sb3JzKCRzdGFydC1jb2xvcjogJGJsdWUsICRtaWQtY29sb3I6ICRwdXJwbGUsICRjb2xvci1zdG9wOiA1MCUsICRlbmQtY29sb3I6ICRyZWQpIHtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoJHN0YXJ0LWNvbG9yLCAkbWlkLWNvbG9yICRjb2xvci1zdG9wLCAkZW5kLWNvbG9yKTtcclxuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG59XHJcbkBtaXhpbiBncmFkaWVudC1yYWRpYWwoJGlubmVyLWNvbG9yOiAkZ3JheS03MDAsICRvdXRlci1jb2xvcjogJGdyYXktODAwKSB7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgJGlubmVyLWNvbG9yLCAkb3V0ZXItY29sb3IpO1xyXG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbn1cclxuQG1peGluIGdyYWRpZW50LXN0cmlwZWQoJGNvbG9yOiByZ2JhKCR3aGl0ZSwgLjE1KSwgJGFuZ2xlOiA0NWRlZykge1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgkYW5nbGUsICRjb2xvciAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCAkY29sb3IgNTAlLCAkY29sb3IgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcclxufVxyXG4iLCIvLyBCcmVha3BvaW50IHZpZXdwb3J0IHNpemVzIGFuZCBtZWRpYSBxdWVyaWVzLlxyXG4vL1xyXG4vLyBCcmVha3BvaW50cyBhcmUgZGVmaW5lZCBhcyBhIG1hcCBvZiAobmFtZTogbWluaW11bSB3aWR0aCksIG9yZGVyIGZyb20gc21hbGwgdG8gbGFyZ2U6XHJcbi8vXHJcbi8vICAgICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweClcclxuLy9cclxuLy8gVGhlIG1hcCBkZWZpbmVkIGluIHRoZSBgJGdyaWQtYnJlYWtwb2ludHNgIGdsb2JhbCB2YXJpYWJsZSBpcyB1c2VkIGFzIHRoZSBgJGJyZWFrcG9pbnRzYCBhcmd1bWVudCBieSBkZWZhdWx0LlxyXG5cclxuLy8gTmFtZSBvZiB0aGUgbmV4dCBicmVha3BvaW50LCBvciBudWxsIGZvciB0aGUgbGFzdCBicmVha3BvaW50LlxyXG4vL1xyXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20pXHJcbi8vICAgIG1kXHJcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcclxuLy8gICAgbWRcclxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAkYnJlYWtwb2ludC1uYW1lczogKHhzIHNtIG1kIGxnIHhsKSlcclxuLy8gICAgbWRcclxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cywgJGJyZWFrcG9pbnQtbmFtZXM6IG1hcC1rZXlzKCRicmVha3BvaW50cykpIHtcclxuICAkbjogaW5kZXgoJGJyZWFrcG9pbnQtbmFtZXMsICRuYW1lKTtcclxuICBAcmV0dXJuIGlmKCRuICE9IG51bGwgYW5kICRuIDwgbGVuZ3RoKCRicmVha3BvaW50LW5hbWVzKSwgbnRoKCRicmVha3BvaW50LW5hbWVzLCAkbiArIDEpLCBudWxsKTtcclxufVxyXG5cclxuLy8gTWluaW11bSBicmVha3BvaW50IHdpZHRoLiBOdWxsIGZvciB0aGUgc21hbGxlc3QgKGZpcnN0KSBicmVha3BvaW50LlxyXG4vL1xyXG4vLyAgICA+PiBicmVha3BvaW50LW1pbihzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcclxuLy8gICAgNTc2cHhcclxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XHJcbiAgJG1pbjogbWFwLWdldCgkYnJlYWtwb2ludHMsICRuYW1lKTtcclxuICBAcmV0dXJuIGlmKCRtaW4gIT0gMCwgJG1pbiwgbnVsbCk7XHJcbn1cclxuXHJcbi8vIE1heGltdW0gYnJlYWtwb2ludCB3aWR0aC4gTnVsbCBmb3IgdGhlIGxhcmdlc3QgKGxhc3QpIGJyZWFrcG9pbnQuXHJcbi8vIFRoZSBtYXhpbXVtIHZhbHVlIGlzIGNhbGN1bGF0ZWQgYXMgdGhlIG1pbmltdW0gb2YgdGhlIG5leHQgb25lIGxlc3MgMC4wMnB4XHJcbi8vIHRvIHdvcmsgYXJvdW5kIHRoZSBsaW1pdGF0aW9ucyBvZiBgbWluLWAgYW5kIGBtYXgtYCBwcmVmaXhlcyBhbmQgdmlld3BvcnRzIHdpdGggZnJhY3Rpb25hbCB3aWR0aHMuXHJcbi8vIFNlZSBodHRwczovL3d3dy53My5vcmcvVFIvbWVkaWFxdWVyaWVzLTQvI21xLW1pbi1tYXhcclxuLy8gVXNlcyAwLjAycHggcmF0aGVyIHRoYW4gMC4wMXB4IHRvIHdvcmsgYXJvdW5kIGEgY3VycmVudCByb3VuZGluZyBidWcgaW4gU2FmYXJpLlxyXG4vLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODI2MVxyXG4vL1xyXG4vLyAgICA+PiBicmVha3BvaW50LW1heChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcclxuLy8gICAgNzY3Ljk4cHhcclxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XHJcbiAgJG5leHQ6IGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcclxuICBAcmV0dXJuIGlmKCRuZXh0LCBicmVha3BvaW50LW1pbigkbmV4dCwgJGJyZWFrcG9pbnRzKSAtIC4wMiwgbnVsbCk7XHJcbn1cclxuXHJcbi8vIFJldHVybnMgYSBibGFuayBzdHJpbmcgaWYgc21hbGxlc3QgYnJlYWtwb2ludCwgb3RoZXJ3aXNlIHJldHVybnMgdGhlIG5hbWUgd2l0aCBhIGRhc2ggaW4gZnJvbnQuXHJcbi8vIFVzZWZ1bCBmb3IgbWFraW5nIHJlc3BvbnNpdmUgdXRpbGl0aWVzLlxyXG4vL1xyXG4vLyAgICA+PiBicmVha3BvaW50LWluZml4KHhzLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxyXG4vLyAgICBcIlwiICAoUmV0dXJucyBhIGJsYW5rIHN0cmluZylcclxuLy8gICAgPj4gYnJlYWtwb2ludC1pbmZpeChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcclxuLy8gICAgXCItc21cIlxyXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1pbmZpeCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xyXG4gIEByZXR1cm4gaWYoYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cykgPT0gbnVsbCwgXCJcIiwgXCItI3skbmFtZX1cIik7XHJcbn1cclxuXHJcbi8vIE1lZGlhIG9mIGF0IGxlYXN0IHRoZSBtaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludC5cclxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCB3aWRlci5cclxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcclxuICAkbWluOiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKTtcclxuICBAaWYgJG1pbiB7XHJcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9IEBlbHNlIHtcclxuICAgIEBjb250ZW50O1xyXG4gIH1cclxufVxyXG5cclxuLy8gTWVkaWEgb2YgYXQgbW9zdCB0aGUgbWF4aW11bSBicmVha3BvaW50IHdpZHRoLiBObyBxdWVyeSBmb3IgdGhlIGxhcmdlc3QgYnJlYWtwb2ludC5cclxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCBuYXJyb3dlci5cclxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xyXG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xyXG4gIEBpZiAkbWF4IHtcclxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWF4KSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2Uge1xyXG4gICAgQGNvbnRlbnQ7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBNZWRpYSB0aGF0IHNwYW5zIG11bHRpcGxlIGJyZWFrcG9pbnQgd2lkdGhzLlxyXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgYmV0d2VlbiB0aGUgbWluIGFuZCBtYXggYnJlYWtwb2ludHNcclxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtYmV0d2VlbigkbG93ZXIsICR1cHBlciwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xyXG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRsb3dlciwgJGJyZWFrcG9pbnRzKTtcclxuICAkbWF4OiBicmVha3BvaW50LW1heCgkdXBwZXIsICRicmVha3BvaW50cyk7XHJcblxyXG4gIEBpZiAkbWluICE9IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XHJcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikgYW5kIChtYXgtd2lkdGg6ICRtYXgpIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSBpZiAkbWF4ID09IG51bGwge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkbG93ZXIsICRicmVha3BvaW50cykge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9IEBlbHNlIGlmICRtaW4gPT0gbnVsbCB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJHVwcGVyLCAkYnJlYWtwb2ludHMpIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vLyBNZWRpYSBiZXR3ZWVuIHRoZSBicmVha3BvaW50J3MgbWluaW11bSBhbmQgbWF4aW11bSB3aWR0aHMuXHJcbi8vIE5vIG1pbmltdW0gZm9yIHRoZSBzbWFsbGVzdCBicmVha3BvaW50LCBhbmQgbm8gbWF4aW11bSBmb3IgdGhlIGxhcmdlc3Qgb25lLlxyXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgb25seSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCwgbm90IHZpZXdwb3J0cyBhbnkgd2lkZXIgb3IgbmFycm93ZXIuXHJcbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LW9ubHkoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcclxuICAkbWluOiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKTtcclxuICAkbWF4OiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcclxuXHJcbiAgQGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcclxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSBhbmQgKG1heC13aWR0aDogJG1heCkge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9IEBlbHNlIGlmICRtYXggPT0gbnVsbCB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRuYW1lLCAkYnJlYWtwb2ludHMpIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSBpZiAkbWluID09IG51bGwge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCRuYW1lLCAkYnJlYWtwb2ludHMpIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ== */\";","export default \"/* ========================================================================\\n Component: layout\\n ========================================================================== */\\nbody, .wrapper .section-container {\\n background-color: #f5f7fa;\\n}\\n.wrapper .aside-container {\\n background-color: #3a3f51;\\n}\\n/* ========================================================================\\n Component: top-navbar\\n ========================================================================== */\\n.topnavbar {\\n background-color: #564aa3;\\n background-image: linear-gradient(to right, #564aa3 0%, #7266ba 100%);\\n background-repeat: repeat-x;\\n}\\n@media (min-width: 992px) {\\n .topnavbar .navbar-nav > .nav-item.show > .nav-link, .topnavbar .navbar-nav > .nav-item.show > .nav-link:hover, .topnavbar .navbar-nav > .nav-item.show > .nav-link:focus {\\n box-shadow: 0 -3px 0 #4b408e inset;\\n }\\n}\\n.topnavbar .navbar-nav > .nav-item > .navbar-text {\\n color: #fff;\\n}\\n.topnavbar .navbar-nav > .nav-item > .nav-link,\\n.topnavbar .navbar-nav > .nav-item.show > .nav-link {\\n color: #fff;\\n}\\n.topnavbar .navbar-nav > .nav-item > .nav-link:hover, .topnavbar .navbar-nav > .nav-item > .nav-link:focus,\\n.topnavbar .navbar-nav > .nav-item.show > .nav-link:hover,\\n.topnavbar .navbar-nav > .nav-item.show > .nav-link:focus {\\n color: #312a5d;\\n}\\n.topnavbar .dropdown-item.active, .topnavbar .dropdown-item:active {\\n background-color: #564aa3;\\n}\\n/* ========================================================================\\n Component: sidebar\\n ========================================================================== */\\n.sidebar {\\n background-color: #3a3f51;\\n}\\n.sidebar .nav-heading {\\n color: #919DA8;\\n}\\n.sidebar-nav > li > a, .sidebar-nav > li > .nav-item {\\n color: #e1e2e3;\\n}\\n.sidebar-nav > li > a:focus, .sidebar-nav > li > a:hover, .sidebar-nav > li > .nav-item:focus, .sidebar-nav > li > .nav-item:hover {\\n color: #9289ca;\\n}\\n.sidebar-nav > li > a > em, .sidebar-nav > li > .nav-item > em {\\n color: inherits;\\n}\\n.sidebar-nav > li.active, .sidebar-nav > li.active > a, .sidebar-nav > li.active > .nav-item, .sidebar-nav > li.active .sidebar-nav, .sidebar-nav > li.open, .sidebar-nav > li.open > a, .sidebar-nav > li.open > .nav-item, .sidebar-nav > li.open .sidebar-nav {\\n background-color: #383d4e;\\n color: #9289ca;\\n}\\n.sidebar-nav > li.active > .nav-item > em, .sidebar-nav > li.active > a > em, .sidebar-nav > li.open > .nav-item > em, .sidebar-nav > li.open > a > em {\\n color: #9289ca;\\n}\\n.sidebar-nav > li.active {\\n border-left-color: #9289ca;\\n}\\n.sidebar-subnav {\\n background-color: #3a3f51;\\n}\\n.sidebar-subnav > .sidebar-subnav-header {\\n color: #e1e2e3;\\n}\\n.sidebar-subnav > li > a, .sidebar-subnav > li > .nav-item {\\n color: #e1e2e3;\\n}\\n.sidebar-subnav > li > a:focus, .sidebar-subnav > li > a:hover, .sidebar-subnav > li > .nav-item:focus, .sidebar-subnav > li > .nav-item:hover {\\n color: #9289ca;\\n}\\n.sidebar-subnav > li.active > a, .sidebar-subnav > li.active > .nav-item {\\n color: #9289ca;\\n}\\n.sidebar-subnav > li.active > a:after, .sidebar-subnav > li.active > .nav-item:after {\\n border-color: #9289ca;\\n background-color: #9289ca;\\n}\\n/* ========================================================================\\n Component: offsidebar\\n ========================================================================== */\\n.offsidebar {\\n border-left: 1px solid greyscale(#cccccc);\\n background-color: #fff;\\n color: #656565;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL3N0eWxlcy90aGVtZXMvRDpcXEluZGlhQlVcXEFnZW50UG9vbFxcRG90TmV0XFxEb3ROZXRGcmFtZXdvcmtcXF93b3JrXFwyOTZcXHMvc3JjXFxhcHBcXHNoYXJlZFxcc3R5bGVzXFx0aGVtZXNcXHRoZW1lLWcuc2NzcyIsInNyYy9hcHAvc2hhcmVkL3N0eWxlcy90aGVtZXMvdGhlbWUtZy5zY3NzIiwic3JjL2FwcC9zaGFyZWQvc3R5bGVzL3RoZW1lcy9EOlxcSW5kaWFCVVxcQWdlbnRQb29sXFxEb3ROZXRcXERvdE5ldEZyYW1ld29ya1xcX3dvcmtcXDI5Nlxccy9zcmNcXGFwcFxcc2hhcmVkXFxzdHlsZXNcXGFwcFxcdmFyaWFibGVzLnNjc3MiLCJzcmMvYXBwL3NoYXJlZC9zdHlsZXMvdGhlbWVzL0Q6XFxJbmRpYUJVXFxBZ2VudFBvb2xcXERvdE5ldFxcRG90TmV0RnJhbWV3b3JrXFxfd29ya1xcMjk2XFxzL3NyY1xcYXBwXFxzaGFyZWRcXHN0eWxlc1xcYm9vdHN0cmFwXFxtaXhpbnNcXF9ncmFkaWVudHMuc2NzcyIsInNyYy9hcHAvc2hhcmVkL3N0eWxlcy90aGVtZXMvRDpcXEluZGlhQlVcXEFnZW50UG9vbFxcRG90TmV0XFxEb3ROZXRGcmFtZXdvcmtcXF93b3JrXFwyOTZcXHMvc3JjXFxhcHBcXHNoYXJlZFxcc3R5bGVzXFxib290c3RyYXBcXG1peGluc1xcX2JyZWFrcG9pbnRzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBOENBOzs2RUFBQTtBQUdBO0VBQ0kseUJBekM0QjtBQ0poQztBRGdEQTtFQUNJLHlCRW5Eb0I7QURNeEI7QURnREE7OzZFQUFBO0FBR0E7RUFDSSx5QkVqQm9CO0VDOUJ0QixxRUFBQTtFQUNBLDJCQUFBO0FGR0Y7QUcwQ0k7RUpNUTtJQUNJLGtDQUFBO0VDN0NkO0FBQ0Y7QURpREk7RUFDSSxXQXREd0I7QUNPaEM7QURrREk7O0VBRUksV0EzRHdCO0FDV2hDO0FEaURROzs7RUFDSSxjQTVEb0I7QUNlaEM7QURpREk7RUFDSSx5QkV6Q2dCO0FETnhCO0FEbURBOzs2RUFBQTtBQUdBO0VBQ0kseUJFMUZvQjtBRDBDeEI7QURrREk7RUFDSSxjQTVEMEI7QUNZbEM7QUR1RFE7RUFDSSxjQTlFc0I7QUMwQmxDO0FEc0RZO0VBQ0ksY0V6RVE7QURxQnhCO0FEd0RZO0VBQ0ksZUFsRmtCO0FDNEJsQztBRDZEWTtFQUNJLHlCQTVGa0I7RUE2RmxCLGNFdkZRO0FENEJ4QjtBRDhEWTtFQUNJLGNFM0ZRO0FEK0J4QjtBRGlFUTtFQUNJLDBCRWpHWTtBRGtDeEI7QURzRUE7RUFDSSx5QkV4SW9CO0FEcUV4QjtBRHFFSTtFQUNJLGNBcEgwQjtBQ2lEbEM7QUR1RVE7RUFDSSxjQXpIc0I7QUNvRGxDO0FEdUVZO0VBQ0ksY0VwSFE7QUQrQ3hCO0FEMkVZO0VBQ0ksY0UzSFE7QURrRHhCO0FEMkVnQjtFQUNJLHFCRTlISTtFRitISix5QkUvSEk7QURzRHhCO0FEb0ZBOzs2RUFBQTtBQUdBO0VBQ0kseUNBQUE7RUFDQSxzQkF4SXNCO0VBeUl0QixjRXJDd0I7QUQ1QzVCIiwiZmlsZSI6InNyYy9hcHAvc2hhcmVkL3N0eWxlcy90aGVtZXMvdGhlbWUtZy5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQm9vdHN0cmFwXHJcbkBpbXBvcnQgXCIuLi9ib290c3RyYXAvZnVuY3Rpb25zXCI7XHJcbkBpbXBvcnQgXCIuLi9ib290c3RyYXAvdmFyaWFibGVzXCI7XHJcbkBpbXBvcnQgXCIuLi9ib290c3RyYXAvbWl4aW5zXCI7XHJcbkBpbXBvcnQgJy4uL2FwcC92YXJpYWJsZXMnO1xyXG5cclxuXHJcbi8vIExBWU9VVFxyXG5cclxuJGNvbnRlbnQtYmc6ICAgICAgICAgICAgICAgICAgICAjZjVmN2ZhO1xyXG4kYXNpZGUtYmc6ICAgICAgICAgICAgICAgICAgICAgICRncmF5LWRhcms7XHJcblxyXG4vLyBOQVZCQVIgVE9QXHJcblxyXG4kbmF2LXRvcC1iZzogICAgICAgICAgICAgICAgICAgICRwdXJwbGUtZGFyaztcclxuJG5hdi10b3AtYmctc3RhcnQ6ICAgICAgICAgICAgICAkbmF2LXRvcC1iZztcclxuJG5hdi10b3AtYmctZW5kOiAgICAgICAgICAgICAgICAkcHVycGxlO1xyXG4kbmF2LWhlYWRlci1iZzogICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50O1xyXG5cclxuJG5hdi10b3AtaXRlbTogICAgICAgICAgICAgICAgICAjZmZmO1xyXG4kbmF2LXRvcC1pdGVtLWFjdGl2ZTogICAgICAgICAgIGRhcmtlbigkbmF2LXRvcC1iZywgMjAlKTtcclxuXHJcbi8vIFNJREVCQVJcclxuXHJcbiRzaWRlYmFyLWJnOiAgICAgICAgICAgICAgICAgICAgICAkYXNpZGUtYmc7XHJcblxyXG4kc2lkZWJhci1pdGVtLWNvbG9yOiAgICAgICAgICAgICAgI2UxZTJlMztcclxuJHNpZGViYXItaXRlbS1jb2xvci1hY3RpdmU6ICAgICAgICRwdXJwbGUtbGlnaHQ7XHJcbiRzaWRlYmFyLWl0ZW0tYmctYWN0aXZlOiAgICAgICAgICBkYXJrZW4oJHNpZGViYXItYmcsIDElKTtcclxuXHJcbiRzaWRlYmFyLWljb24tY29sb3I6ICAgICAgICAgICAgICBpbmhlcml0cztcclxuJHNpZGViYXItaWNvbi1jb2xvci1hY3RpdmU6ICAgICAgICRzaWRlYmFyLWl0ZW0tY29sb3ItYWN0aXZlO1xyXG5cclxuJHNpZGViYXItYnVsbGV0LWNvbG9yOiAgICAgICAgICAgIHJnYmEoMCwwLDAsLjI1KTtcclxuJHNpZGViYXItYnVsbGV0LWNvbG9yLWFjdGl2ZTogICAgICRzaWRlYmFyLWljb24tY29sb3ItYWN0aXZlO1xyXG5cclxuJHNpZGViYXItaGVhZGluZy1jb2xvcjogICAgICAgICAgICM5MTlEQTg7XHJcbiRzaWRlYmFyLWxhYmVsLWNvbG9yOiAgICAgICAgICAgICAkc2lkZWJhci1pdGVtLWNvbG9yO1xyXG5cclxuLy8gT0ZGU0lERUJBUlxyXG5cclxuJG9mZnNpZGViYXItYmc6ICAgICAgICAgICAjZmZmO1xyXG4kb2Zmc2lkZWJhci1ib3JkZXItY29sb3I6IGdyZXlzY2FsZShkYXJrZW4oJG9mZnNpZGViYXItYmcsIDIwJSkpO1xyXG4kb2Zmc2lkZWJhci1jb2xvcjogICAgICAgICRib2R5LWNvbG9yO1xyXG5cclxuXHJcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBDb21wb25lbnQ6IGxheW91dFxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuYm9keSwgLndyYXBwZXIgLnNlY3Rpb24tY29udGFpbmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb250ZW50LWJnO1xyXG59XHJcblxyXG4ud3JhcHBlciAuYXNpZGUtY29udGFpbmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRhc2lkZS1iZztcclxufVxyXG5cclxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIENvbXBvbmVudDogdG9wLW5hdmJhclxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuLnRvcG5hdmJhciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2LXRvcC1iZztcclxuICAgIEBpbmNsdWRlIGdyYWRpZW50LXgoJG5hdi10b3AtYmctc3RhcnQsICRuYXYtdG9wLWJnLWVuZCk7XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChsZykge1xyXG4gICAgICAgIC5uYXZiYXItbmF2ID4gLm5hdi1pdGVtLnNob3cgPiAubmF2LWxpbmsge1xyXG4gICAgICAgICAgICAmLCAmOmhvdmVyLCAmOmZvY3VzIHtcclxuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTNweCAwIGRhcmtlbigkbmF2LXRvcC1iZywgNiUpIGluc2V0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5uYXZiYXItbmF2ID4gLm5hdi1pdGVtID4gLm5hdmJhci10ZXh0IHtcclxuICAgICAgICBjb2xvcjogJG5hdi10b3AtaXRlbTtcclxuICAgIH1cclxuXHJcbiAgICAubmF2YmFyLW5hdiA+IC5uYXYtaXRlbSA+IC5uYXYtbGluayxcclxuICAgIC5uYXZiYXItbmF2ID4gLm5hdi1pdGVtLnNob3cgPiAubmF2LWxpbmsge1xyXG4gICAgICAgIGNvbG9yOiAkbmF2LXRvcC1pdGVtO1xyXG4gICAgICAgICY6aG92ZXIsICY6Zm9jdXMge1xyXG4gICAgICAgICAgICBjb2xvcjogJG5hdi10b3AtaXRlbS1hY3RpdmU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5kcm9wZG93bi1pdGVtLmFjdGl2ZSwgLmRyb3Bkb3duLWl0ZW06YWN0aXZlIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2LXRvcC1iZztcclxuICAgIH1cclxufVxyXG5cclxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIENvbXBvbmVudDogc2lkZWJhclxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuLnNpZGViYXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHNpZGViYXItYmc7XHJcblxyXG4gICAgLm5hdi1oZWFkaW5nIHtcclxuICAgICAgICBjb2xvcjogJHNpZGViYXItaGVhZGluZy1jb2xvcjtcclxuICAgIH1cclxufVxyXG5cclxuLy8gSXRlbXNcclxuLnNpZGViYXItbmF2IHtcclxuICAgID4gbGkge1xyXG4gICAgICAgID4gYSwgPiAubmF2LWl0ZW0ge1xyXG4gICAgICAgICAgICBjb2xvcjogJHNpZGViYXItaXRlbS1jb2xvcjtcclxuXHJcbiAgICAgICAgICAgICY6Zm9jdXMsICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICRzaWRlYmFyLWl0ZW0tY29sb3ItYWN0aXZlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyBJdGVtIGljb25cclxuICAgICAgICAgICAgPiBlbSB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNpZGViYXItaWNvbi1jb2xvcjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIEFjdGl2ZSBpdGVtIHN0YXRlXHJcbiAgICAgICAgJi5hY3RpdmUsICYub3BlbiB7XHJcbiAgICAgICAgICAgICYsID4gYSwgPiAubmF2LWl0ZW0sIC5zaWRlYmFyLW5hdiB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2lkZWJhci1pdGVtLWJnLWFjdGl2ZTtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2lkZWJhci1pdGVtLWNvbG9yLWFjdGl2ZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgPiAubmF2LWl0ZW0gPiBlbSwgPiBhID4gZW0ge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICRzaWRlYmFyLWljb24tY29sb3ItYWN0aXZlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5hY3RpdmUge1xyXG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogJHNpZGViYXItaXRlbS1jb2xvci1hY3RpdmU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbn1cclxuXHJcbi5zaWRlYmFyLXN1Ym5hdiB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2lkZWJhci1iZztcclxuXHJcbiAgICA+IC5zaWRlYmFyLXN1Ym5hdi1oZWFkZXIge1xyXG4gICAgICAgIGNvbG9yOiAkc2lkZWJhci1pdGVtLWNvbG9yO1xyXG4gICAgfVxyXG5cclxuICAgID4gbGkge1xyXG4gICAgICAgID4gYSwgPiAubmF2LWl0ZW0ge1xyXG4gICAgICAgICAgICBjb2xvcjogJHNpZGViYXItaXRlbS1jb2xvcjtcclxuXHJcbiAgICAgICAgICAgICY6Zm9jdXMsICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICRzaWRlYmFyLWl0ZW0tY29sb3ItYWN0aXZlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5hY3RpdmUge1xyXG4gICAgICAgICAgICA+IGEsID4gLm5hdi1pdGVtIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2lkZWJhci1pY29uLWNvbG9yLWFjdGl2ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzaWRlYmFyLWJ1bGxldC1jb2xvci1hY3RpdmU7XHJcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNpZGViYXItYnVsbGV0LWNvbG9yLWFjdGl2ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbn1cclxuXHJcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBDb21wb25lbnQ6IG9mZnNpZGViYXJcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcbi5vZmZzaWRlYmFyIHtcclxuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJG9mZnNpZGViYXItYm9yZGVyLWNvbG9yO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG9mZnNpZGViYXItYmc7XHJcbiAgICBjb2xvcjogJG9mZnNpZGViYXItY29sb3I7XHJcbn1cclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IGxheW91dFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5ib2R5LCAud3JhcHBlciAuc2VjdGlvbi1jb250YWluZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmN2ZhO1xufVxuXG4ud3JhcHBlciAuYXNpZGUtY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNhM2Y1MTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IHRvcC1uYXZiYXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnRvcG5hdmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1NjRhYTM7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzU2NGFhMyAwJSwgIzcyNjZiYSAxMDAlKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC50b3BuYXZiYXIgLm5hdmJhci1uYXYgPiAubmF2LWl0ZW0uc2hvdyA+IC5uYXYtbGluaywgLnRvcG5hdmJhciAubmF2YmFyLW5hdiA+IC5uYXYtaXRlbS5zaG93ID4gLm5hdi1saW5rOmhvdmVyLCAudG9wbmF2YmFyIC5uYXZiYXItbmF2ID4gLm5hdi1pdGVtLnNob3cgPiAubmF2LWxpbms6Zm9jdXMge1xuICAgIGJveC1zaGFkb3c6IDAgLTNweCAwICM0YjQwOGUgaW5zZXQ7XG4gIH1cbn1cbi50b3BuYXZiYXIgLm5hdmJhci1uYXYgPiAubmF2LWl0ZW0gPiAubmF2YmFyLXRleHQge1xuICBjb2xvcjogI2ZmZjtcbn1cbi50b3BuYXZiYXIgLm5hdmJhci1uYXYgPiAubmF2LWl0ZW0gPiAubmF2LWxpbmssXG4udG9wbmF2YmFyIC5uYXZiYXItbmF2ID4gLm5hdi1pdGVtLnNob3cgPiAubmF2LWxpbmsge1xuICBjb2xvcjogI2ZmZjtcbn1cbi50b3BuYXZiYXIgLm5hdmJhci1uYXYgPiAubmF2LWl0ZW0gPiAubmF2LWxpbms6aG92ZXIsIC50b3BuYXZiYXIgLm5hdmJhci1uYXYgPiAubmF2LWl0ZW0gPiAubmF2LWxpbms6Zm9jdXMsXG4udG9wbmF2YmFyIC5uYXZiYXItbmF2ID4gLm5hdi1pdGVtLnNob3cgPiAubmF2LWxpbms6aG92ZXIsXG4udG9wbmF2YmFyIC5uYXZiYXItbmF2ID4gLm5hdi1pdGVtLnNob3cgPiAubmF2LWxpbms6Zm9jdXMge1xuICBjb2xvcjogIzMxMmE1ZDtcbn1cbi50b3BuYXZiYXIgLmRyb3Bkb3duLWl0ZW0uYWN0aXZlLCAudG9wbmF2YmFyIC5kcm9wZG93bi1pdGVtOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1NjRhYTM7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBzaWRlYmFyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5zaWRlYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNhM2Y1MTtcbn1cbi5zaWRlYmFyIC5uYXYtaGVhZGluZyB7XG4gIGNvbG9yOiAjOTE5REE4O1xufVxuXG4uc2lkZWJhci1uYXYgPiBsaSA+IGEsIC5zaWRlYmFyLW5hdiA+IGxpID4gLm5hdi1pdGVtIHtcbiAgY29sb3I6ICNlMWUyZTM7XG59XG4uc2lkZWJhci1uYXYgPiBsaSA+IGE6Zm9jdXMsIC5zaWRlYmFyLW5hdiA+IGxpID4gYTpob3ZlciwgLnNpZGViYXItbmF2ID4gbGkgPiAubmF2LWl0ZW06Zm9jdXMsIC5zaWRlYmFyLW5hdiA+IGxpID4gLm5hdi1pdGVtOmhvdmVyIHtcbiAgY29sb3I6ICM5Mjg5Y2E7XG59XG4uc2lkZWJhci1uYXYgPiBsaSA+IGEgPiBlbSwgLnNpZGViYXItbmF2ID4gbGkgPiAubmF2LWl0ZW0gPiBlbSB7XG4gIGNvbG9yOiBpbmhlcml0cztcbn1cbi5zaWRlYmFyLW5hdiA+IGxpLmFjdGl2ZSwgLnNpZGViYXItbmF2ID4gbGkuYWN0aXZlID4gYSwgLnNpZGViYXItbmF2ID4gbGkuYWN0aXZlID4gLm5hdi1pdGVtLCAuc2lkZWJhci1uYXYgPiBsaS5hY3RpdmUgLnNpZGViYXItbmF2LCAuc2lkZWJhci1uYXYgPiBsaS5vcGVuLCAuc2lkZWJhci1uYXYgPiBsaS5vcGVuID4gYSwgLnNpZGViYXItbmF2ID4gbGkub3BlbiA+IC5uYXYtaXRlbSwgLnNpZGViYXItbmF2ID4gbGkub3BlbiAuc2lkZWJhci1uYXYge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzgzZDRlO1xuICBjb2xvcjogIzkyODljYTtcbn1cbi5zaWRlYmFyLW5hdiA+IGxpLmFjdGl2ZSA+IC5uYXYtaXRlbSA+IGVtLCAuc2lkZWJhci1uYXYgPiBsaS5hY3RpdmUgPiBhID4gZW0sIC5zaWRlYmFyLW5hdiA+IGxpLm9wZW4gPiAubmF2LWl0ZW0gPiBlbSwgLnNpZGViYXItbmF2ID4gbGkub3BlbiA+IGEgPiBlbSB7XG4gIGNvbG9yOiAjOTI4OWNhO1xufVxuLnNpZGViYXItbmF2ID4gbGkuYWN0aXZlIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICM5Mjg5Y2E7XG59XG5cbi5zaWRlYmFyLXN1Ym5hdiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzYTNmNTE7XG59XG4uc2lkZWJhci1zdWJuYXYgPiAuc2lkZWJhci1zdWJuYXYtaGVhZGVyIHtcbiAgY29sb3I6ICNlMWUyZTM7XG59XG4uc2lkZWJhci1zdWJuYXYgPiBsaSA+IGEsIC5zaWRlYmFyLXN1Ym5hdiA+IGxpID4gLm5hdi1pdGVtIHtcbiAgY29sb3I6ICNlMWUyZTM7XG59XG4uc2lkZWJhci1zdWJuYXYgPiBsaSA+IGE6Zm9jdXMsIC5zaWRlYmFyLXN1Ym5hdiA+IGxpID4gYTpob3ZlciwgLnNpZGViYXItc3VibmF2ID4gbGkgPiAubmF2LWl0ZW06Zm9jdXMsIC5zaWRlYmFyLXN1Ym5hdiA+IGxpID4gLm5hdi1pdGVtOmhvdmVyIHtcbiAgY29sb3I6ICM5Mjg5Y2E7XG59XG4uc2lkZWJhci1zdWJuYXYgPiBsaS5hY3RpdmUgPiBhLCAuc2lkZWJhci1zdWJuYXYgPiBsaS5hY3RpdmUgPiAubmF2LWl0ZW0ge1xuICBjb2xvcjogIzkyODljYTtcbn1cbi5zaWRlYmFyLXN1Ym5hdiA+IGxpLmFjdGl2ZSA+IGE6YWZ0ZXIsIC5zaWRlYmFyLXN1Ym5hdiA+IGxpLmFjdGl2ZSA+IC5uYXYtaXRlbTphZnRlciB7XG4gIGJvcmRlci1jb2xvcjogIzkyODljYTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzkyODljYTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IG9mZnNpZGViYXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLm9mZnNpZGViYXIge1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIGdyZXlzY2FsZSgjY2NjY2NjKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgY29sb3I6ICM2NTY1NjU7XG59IiwiXHJcbi8vIEN1dG9tcyBHcmF5IGNvbG9ycyBmb3IgdGhlbWVcclxuJGdyYXktZGFya2VyOiAgICAgICAgICAgIzIzMjczNTtcclxuJGdyYXktZGFyazogICAgICAgICAgICAgIzNhM2Y1MTtcclxuJGdyYXk6ICAgICAgICAgICAgICAgICAgI2RkZTZlOTtcclxuJGdyYXktbGlnaHQ6ICAgICAgICAgICAgI2U0ZWFlYztcclxuJGdyYXktbGlnaHRlcjogICAgICAgICAgI2VkZjFmMjtcclxuXHJcbi8vIEN1c3RvbSBicmFuZCBjb2xvcnMgZm9yIHRoZW1lXHJcbiRpbnZlcnNlOiAgICAgICAgICAgICAgICMxMzFlMjY7XHJcbiRwdXJwbGU6ICAgICAgICAgICAgICAgICM3MjY2YmE7XHJcbiRwaW5rOiAgICAgICAgICAgICAgICAgICNmNTMyZTU7XHJcbiR5ZWxsb3c6ICAgICAgICAgICAgICAgICNmYWQ3MzI7XHJcbiRncmVlbjogICAgICAgICAgICAgICAgICMzMUI0NEE7XHJcblxyXG4kcHJpbWFyeTogICAgICAgICAgICAgICAjMDBBQkU3O1xyXG4kc2Vjb25kYXJ5OiAgICAgICAgICAgICAjZmZmO1xyXG4kc3VjY2VzczogICAgICAgICAgICAgICAjMjdjMjRjO1xyXG4kaW5mbzogICAgICAgICAgICAgICAgICAjODZCQzI1ICA7XHJcbiR3YXJuaW5nOiAgICAgICAgICAgICAgICNmZjkwMmI7XHJcbiRkYW5nZXI6ICAgICAgICAgICAgICAgICNmMDUwNTA7XHJcbiRkYXJrOiAgICAgICAgICAgICAgICAgICMzYTNmNTE7XHJcblxyXG4vLyBDdXN0b20gY29sb3IgdmFyaWFudHNcclxuJGFtb3VudE9mTGlnaHQ6IDEwJTtcclxuXHJcbiRwcmltYXJ5LWxpZ2h0OiAgICAgICAgIGxpZ2h0ZW4oJHByaW1hcnksICRhbW91bnRPZkxpZ2h0KTtcclxuJHN1Y2Nlc3MtbGlnaHQ6ICAgICAgICAgbGlnaHRlbigkc3VjY2VzcywgJGFtb3VudE9mTGlnaHQpO1xyXG4kaW5mby1saWdodDogICAgICAgICAgICBsaWdodGVuKCRpbmZvLCAkYW1vdW50T2ZMaWdodCk7XHJcbiR3YXJuaW5nLWxpZ2h0OiAgICAgICAgIGxpZ2h0ZW4oJHdhcm5pbmcsICRhbW91bnRPZkxpZ2h0KTtcclxuJGRhbmdlci1saWdodDogICAgICAgICAgbGlnaHRlbigkZGFuZ2VyLCAkYW1vdW50T2ZMaWdodCk7XHJcbiRpbnZlcnNlLWxpZ2h0OiAgICAgICAgIGxpZ2h0ZW4oJGludmVyc2UsICRhbW91bnRPZkxpZ2h0KTtcclxuJGdyZWVuLWxpZ2h0OiAgICAgICAgICAgbGlnaHRlbigkZ3JlZW4sICRhbW91bnRPZkxpZ2h0KTtcclxuJHBpbmstbGlnaHQ6ICAgICAgICAgICAgbGlnaHRlbigkcGluaywgJGFtb3VudE9mTGlnaHQpO1xyXG4kcHVycGxlLWxpZ2h0OiAgICAgICAgICBsaWdodGVuKCRwdXJwbGUsICRhbW91bnRPZkxpZ2h0KTtcclxuJHllbGxvdy1saWdodDogICAgICAgICAgbGlnaHRlbigkeWVsbG93LCAkYW1vdW50T2ZMaWdodCk7XHJcbiRwcmltYXJ5LWRhcms6ICAgICAgICAgIGRhcmtlbigkcHJpbWFyeSwgJGFtb3VudE9mTGlnaHQpO1xyXG4kc3VjY2Vzcy1kYXJrOiAgICAgICAgICBkYXJrZW4oJHN1Y2Nlc3MsICRhbW91bnRPZkxpZ2h0KTtcclxuJGluZm8tZGFyazogICAgICAgICAgICAgZGFya2VuKCRpbmZvLCAkYW1vdW50T2ZMaWdodCk7XHJcbiR3YXJuaW5nLWRhcms6ICAgICAgICAgIGRhcmtlbigkd2FybmluZywgJGFtb3VudE9mTGlnaHQpO1xyXG4kZGFuZ2VyLWRhcms6ICAgICAgICAgICBkYXJrZW4oJGRhbmdlciwgJGFtb3VudE9mTGlnaHQpO1xyXG4kaW52ZXJzZS1kYXJrOiAgICAgICAgICBkYXJrZW4oJGludmVyc2UsICRhbW91bnRPZkxpZ2h0KTtcclxuJGdyZWVuLWRhcms6ICAgICAgICAgICAgZGFya2VuKCRncmVlbiwgJGFtb3VudE9mTGlnaHQpO1xyXG4kcGluay1kYXJrOiAgICAgICAgICAgICBkYXJrZW4oJHBpbmssICRhbW91bnRPZkxpZ2h0KTtcclxuJHB1cnBsZS1kYXJrOiAgICAgICAgICAgZGFya2VuKCRwdXJwbGUsICRhbW91bnRPZkxpZ2h0KTtcclxuJHllbGxvdy1kYXJrOiAgICAgICAgICAgZGFya2VuKCR5ZWxsb3csICRhbW91bnRPZkxpZ2h0KTtcclxuXHJcbi8vIFRoZW1lIHZhcmlhYmxlc1xyXG5cclxuLy8gdXNlZCBmb3Igc2lkZWJhcnMgYW5kIGNvbnRlbnQgc3BhY2luZ1xyXG4kbmF2YmFyLWhlaWdodDogICAgICAgICAgICAgICAgICAgIDU1cHg7XHJcblxyXG4vLyBCdXR0b24gc2Vjb25kYXJ5IHJlZGVmaW5pdGlvbiBzdHlsZSBmb3IgdGhlbWVcclxuJGJ0bi1zZWNvbmRhcnktY29sb3I6ICAgICAgICAgICAgICAjMzMzO1xyXG4kYnRuLXNlY29uZGFyeS1iZzogICAgICAgICAgICAgICAgICNmZmY7XHJcbiRidG4tc2Vjb25kYXJ5LWJvcmRlcjogICAgICAgICAgICAgI2VhZWFlYTtcclxuXHJcbi8vIFRvcCBCb3JkZXIgY29sb3IgZm9yIGN1c3RvbSBkZWZhdWx0IGNhcmRzICguY2FyZC1kZWZhdWx0KVxyXG4kY2FyZC1kZWZhdWx0LWJvcmRlci1jb2xvcjogICAgICAgICNjZmRiZTI7XHJcblxyXG5cclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbi8vIFV0aWxpdGllcyB2YXJpYWJsZXNcclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4kdGV4dC1hbHBoYTogICAgICAgICAgICByZ2JhKDI1NSwyNTUsMjU1LC41KTtcclxuJHRleHQtYWxwaGEtaW52ZXJzZTogICAgcmdiYSgwLDAsMCwuNSk7XHJcblxyXG4kZm9udC1zaXplLWJhc2U6ICAgICAgICAxcmVtO1xyXG4kdGV4dC1zbTogICAgICAgICAgICAgICAkZm9udC1zaXplLWJhc2UgKiAwLjc0Mzc1O1xyXG4kdGV4dC1tZDogICAgICAgICAgICAgICAkZm9udC1zaXplLWJhc2UgKiAxLjY2MjU7XHJcbiR0ZXh0LWxnOiAgICAgICAgICAgICAgICRmb250LXNpemUtYmFzZSAqIDIuNjI1O1xyXG5cclxuJGJvcmRlci1jb2xvcjogICAgICAgICAgcmdiYSgwLDAsMCwuMTIpO1xyXG5cclxuJHdkLXh4czogICAgICAgICAgICAgICAgNjBweDtcclxuJHdkLXhzOiAgICAgICAgICAgICAgICAgOTBweDtcclxuJHdkLXNtOiAgICAgICAgICAgICAgICAgMTUwcHg7XHJcbiR3ZC1zZDogICAgICAgICAgICAgICAgIDIwMHB4OyAvLyBzZCA9PSBzdGFuZGFyZFxyXG4kd2QtbWQ6ICAgICAgICAgICAgICAgICAyNDBweDtcclxuJHdkLWxnOiAgICAgICAgICAgICAgICAgMjgwcHg7XHJcbiR3ZC14bDogICAgICAgICAgICAgICAgIDMyMHB4O1xyXG4kd2QteHhsOiAgICAgICAgICAgICAgICAzNjBweDtcclxuJHdkLXdpZGU6ICAgICAgICAgICAgICAgMTAwJTtcclxuJHdkLWF1dG86ICAgICAgICAgICAgICAgYXV0bztcclxuJHdkLXplcm86ICAgICAgICAgICAgICAgMDtcclxuXHJcblxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuLy8gQm9vdHN0cmFwIDQgVmFyaWFibGVzIE92ZXJyaWRlXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuLy8gQ29sb3Igc3lzdGVtXHJcblxyXG4kY29sb3JzOiAoXHJcbiAgICBcInB1cnBsZVwiOiAgICAgJHB1cnBsZSxcclxuICAgIFwicGlua1wiOiAgICAgICAkcGluayxcclxuICAgIFwieWVsbG93XCI6ICAgICAkeWVsbG93LFxyXG4gICAgXCJncmVlblwiOiAgICAgICRncmVlbixcclxuICAgIFwicHJpbWFyeVwiOiAgICAkcHJpbWFyeSxcclxuICAgIFwic3VjY2Vzc1wiOiAgICAkc3VjY2VzcyxcclxuICAgIFwiaW5mb1wiOiAgICAgICAkaW5mbyxcclxuICAgIFwid2FybmluZ1wiOiAgICAkd2FybmluZyxcclxuICAgIFwiZGFuZ2VyXCI6ICAgICAkZGFuZ2VyLFxyXG4gICAgJ2ludmVyc2UnOiAgICAkaW52ZXJzZSxcclxuXHJcbiAgICAncHJpbWFyeS1saWdodCc6ICRwcmltYXJ5LWxpZ2h0LFxyXG4gICAgJ3ByaW1hcnktZGFyayc6ICAkcHJpbWFyeS1kYXJrLFxyXG4gICAgJ3N1Y2Nlc3MtbGlnaHQnOiAkc3VjY2Vzcy1saWdodCxcclxuICAgICdzdWNjZXNzLWRhcmsnOiAgJHN1Y2Nlc3MtZGFyayxcclxuICAgICdpbmZvLWxpZ2h0JzogICAgJGluZm8tbGlnaHQsXHJcbiAgICAnaW5mby1kYXJrJzogICAgICRpbmZvLWRhcmssXHJcbiAgICAnd2FybmluZy1saWdodCc6ICR3YXJuaW5nLWxpZ2h0LFxyXG4gICAgJ3dhcm5pbmctZGFyayc6ICAkd2FybmluZy1kYXJrLFxyXG4gICAgJ2Rhbmdlci1saWdodCc6ICAkZGFuZ2VyLWxpZ2h0LFxyXG4gICAgJ2Rhbmdlci1kYXJrJzogICAkZGFuZ2VyLWRhcmssXHJcbiAgICAnZ3JlZW4tbGlnaHQnOiAgICRncmVlbi1saWdodCxcclxuICAgICdncmVlbi1kYXJrJzogICAgJGdyZWVuLWRhcmssXHJcbiAgICAncGluay1saWdodCc6ICAgICRwaW5rLWxpZ2h0LFxyXG4gICAgJ3BpbmstZGFyayc6ICAgICAkcGluay1kYXJrLFxyXG4gICAgJ3B1cnBsZS1saWdodCc6ICAkcHVycGxlLWxpZ2h0LFxyXG4gICAgJ3B1cnBsZS1kYXJrJzogICAkcHVycGxlLWRhcmssXHJcbiAgICAnaW52ZXJzZS1saWdodCc6ICRpbnZlcnNlLWxpZ2h0LFxyXG4gICAgJ2ludmVyc2UtZGFyayc6ICAkaW52ZXJzZS1kYXJrLFxyXG4gICAgJ3llbGxvdy1saWdodCc6ICAkeWVsbG93LWxpZ2h0LFxyXG4gICAgJ3llbGxvdy1kYXJrJzogICAkeWVsbG93LWRhcmssXHJcbik7XHJcblxyXG5cclxuJHRoZW1lLWNvbG9yczogKFxyXG4gIFwicHJpbWFyeVwiOiAgICAkcHJpbWFyeSxcclxuICBcInNlY29uZGFyeVwiOiAgJHNlY29uZGFyeSxcclxuICBcInN1Y2Nlc3NcIjogICAgJHN1Y2Nlc3MsXHJcbiAgXCJpbmZvXCI6ICAgICAgICRpbmZvLFxyXG4gIFwid2FybmluZ1wiOiAgICAkd2FybmluZyxcclxuICBcImRhbmdlclwiOiAgICAgJGRhbmdlclxyXG4pO1xyXG5cclxuLy8gQm9keVxyXG5cclxuJGJvZHktYmc6ICAgICAgICAgICAgICAgICAgICNmNWY3ZmE7XHJcbiRib2R5LWNvbG9yOiAgICAgICAgICAgICAgICAjNjU2NTY1O1xyXG5cclxuJGJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgICAgLjI1cmVtO1xyXG4kYm9yZGVyLXJhZGl1cy1sZzogICAgICAgICAgICAuMzc1cmVtO1xyXG5cclxuJGxpbmUtaGVpZ2h0LWJhc2U6ICAgICAgICAgICAgMS41Mjg1NzE0Mjk7XHJcblxyXG4kaGVhZGluZ3MtbGluZS1oZWlnaHQ6ICAgICAgICAxLjE7XHJcblxyXG4kdGV4dC1tdXRlZDogICAgICAgICAgICAgICAgICAjOTA5RkE3O1xyXG5cclxuLy8gVGFibGVzXHJcblxyXG4kdGFibGUtYWNjZW50LWJnOiAgICAgICAgICAgICAjZmFmYmZjO1xyXG4kdGFibGUtaG92ZXItYmc6ICAgICAgICAgICAgICAjZmFmYmZjO1xyXG5cclxuJHRhYmxlLWJvcmRlci1jb2xvcjogICAgICAgICAgI2VlZTtcclxuXHJcbi8vIEJ1dHRvbnMgKyBGb3Jtc1xyXG5cclxuJGlucHV0LWJ0bi1wYWRkaW5nLXk6ICAgICAgICAgLjM3NXJlbTtcclxuJGlucHV0LWJ0bi1wYWRkaW5nLXg6ICAgICAgICAgMXJlbTtcclxuXHJcbiRpbnB1dC1idG4tcGFkZGluZy15LXNtOiAgICAgIC4zMTI1cmVtO1xyXG4kaW5wdXQtYnRuLXBhZGRpbmcteC1zbTogICAgICAuNjI1cmVtO1xyXG5cclxuJGlucHV0LWJ0bi1wYWRkaW5nLXktbGc6ICAgICAgLjYyNXJlbTtcclxuJGlucHV0LWJ0bi1wYWRkaW5nLXgtbGc6ICAgICAgMS4yNXJlbTtcclxuXHJcbiRpbnB1dC1oZWlnaHQ6ICAgICAgICAgICAgICAgIDIuMTg3NXJlbTsgLy8gMzVweFxyXG5cclxuLy8gRm9ybXNcclxuXHJcbiRpbnB1dC1kaXNhYmxlZC1iZzogICAgICAgICAgICAgICAgICAgICAkZ3JheS1saWdodGVyO1xyXG4kaW5wdXQtYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgJGdyYXk7XHJcbiRpbnB1dC1mb2N1cy1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICAjNjZhZmU5O1xyXG4kaW5wdXQtcGxhY2Vob2xkZXItY29sb3I6ICAgICAgICAgICAgICAgI2I3YmFjOTtcclxuXHJcbiRmb3JtLWZlZWRiYWNrLWljb24tdmFsaWQ6ICAgICAgICAgICAgICBub25lO1xyXG4kZm9ybS1mZWVkYmFjay1pY29uLWludmFsaWQ6ICAgICAgICAgICAgbm9uZTtcclxuXHJcbiRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItYWN0aXZlLWJnOiAgICBsaWdodGVuKCRwcmltYXJ5LCAyNSUpO1xyXG5cclxuLy8gRHJvcGRvd25zXHJcblxyXG4kZHJvcGRvd24tYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAjZTFlMWUxO1xyXG5cclxuLy8gTmF2c1xyXG5cclxuJG5hdi10YWJzLWxpbmstYWN0aXZlLWJnOiAgICAgICAgICAgI2ZmZjtcclxuXHJcbi8vIEp1bWJvdHJvblxyXG5cclxuJGp1bWJvdHJvbi1iZzogICAgICAgICAgICAgICAgICAgICAgI2ZjZmNmYztcclxuXHJcbi8vIExpc3QgZ3JvdXBcclxuXHJcbiRsaXN0LWdyb3VwLWJvcmRlci1jb2xvcjogICAgICAgICAgICNlNGVhZWM7XHJcblxyXG4vLyBJbWFnZSB0aHVtYm5haWxzXHJcblxyXG4kdGh1bWJuYWlsLXBhZGRpbmc6ICAgICAgICAgICAgICAgICAuMTI1cmVtO1xyXG5cclxuXHJcbi8vIEJyZWFkY3J1bWJzXHJcblxyXG4kYnJlYWRjcnVtYi1iZzogICAgICAgICAgICAgICAgICAgICAjZmFmYWZhO1xyXG4kYnJlYWRjcnVtYi1kaXZpZGVyLWNvbG9yOiAgICAgICAgICAjYzFjMmMzO1xyXG4kYnJlYWRjcnVtYi1hY3RpdmUtY29sb3I6ICAgICAgICAgICAkYm9keS1jb2xvcjtcclxuIiwiLy8gR3JhZGllbnRzXHJcblxyXG5AbWl4aW4gZ3JhZGllbnQtYmcoJGNvbG9yKSB7XHJcbiAgQGlmICRlbmFibGUtZ3JhZGllbnRzIHtcclxuICAgIGJhY2tncm91bmQ6ICRjb2xvciBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCBtaXgoJGJvZHktYmcsICRjb2xvciwgMTUlKSwgJGNvbG9yKSByZXBlYXQteDtcclxuICB9IEBlbHNlIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcclxuICB9XHJcbn1cclxuXHJcbi8vIEhvcml6b250YWwgZ3JhZGllbnQsIGZyb20gbGVmdCB0byByaWdodFxyXG4vL1xyXG4vLyBDcmVhdGVzIHR3byBjb2xvciBzdG9wcywgc3RhcnQgYW5kIGVuZCwgYnkgc3BlY2lmeWluZyBhIGNvbG9yIGFuZCBwb3NpdGlvbiBmb3IgZWFjaCBjb2xvciBzdG9wLlxyXG5AbWl4aW4gZ3JhZGllbnQteCgkc3RhcnQtY29sb3I6ICRncmF5LTcwMCwgJGVuZC1jb2xvcjogJGdyYXktODAwLCAkc3RhcnQtcGVyY2VudDogMCUsICRlbmQtcGVyY2VudDogMTAwJSkge1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJHN0YXJ0LWNvbG9yICRzdGFydC1wZXJjZW50LCAkZW5kLWNvbG9yICRlbmQtcGVyY2VudCk7XHJcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xyXG59XHJcblxyXG4vLyBWZXJ0aWNhbCBncmFkaWVudCwgZnJvbSB0b3AgdG8gYm90dG9tXHJcbi8vXHJcbi8vIENyZWF0ZXMgdHdvIGNvbG9yIHN0b3BzLCBzdGFydCBhbmQgZW5kLCBieSBzcGVjaWZ5aW5nIGEgY29sb3IgYW5kIHBvc2l0aW9uIGZvciBlYWNoIGNvbG9yIHN0b3AuXHJcbkBtaXhpbiBncmFkaWVudC15KCRzdGFydC1jb2xvcjogJGdyYXktNzAwLCAkZW5kLWNvbG9yOiAkZ3JheS04MDAsICRzdGFydC1wZXJjZW50OiAwJSwgJGVuZC1wZXJjZW50OiAxMDAlKSB7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgJHN0YXJ0LWNvbG9yICRzdGFydC1wZXJjZW50LCAkZW5kLWNvbG9yICRlbmQtcGVyY2VudCk7XHJcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xyXG59XHJcblxyXG5AbWl4aW4gZ3JhZGllbnQtZGlyZWN0aW9uYWwoJHN0YXJ0LWNvbG9yOiAkZ3JheS03MDAsICRlbmQtY29sb3I6ICRncmF5LTgwMCwgJGRlZzogNDVkZWcpIHtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoJGRlZywgJHN0YXJ0LWNvbG9yLCAkZW5kLWNvbG9yKTtcclxuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XHJcbn1cclxuQG1peGluIGdyYWRpZW50LXgtdGhyZWUtY29sb3JzKCRzdGFydC1jb2xvcjogJGJsdWUsICRtaWQtY29sb3I6ICRwdXJwbGUsICRjb2xvci1zdG9wOiA1MCUsICRlbmQtY29sb3I6ICRyZWQpIHtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICRzdGFydC1jb2xvciwgJG1pZC1jb2xvciAkY29sb3Itc3RvcCwgJGVuZC1jb2xvcik7XHJcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxufVxyXG5AbWl4aW4gZ3JhZGllbnQteS10aHJlZS1jb2xvcnMoJHN0YXJ0LWNvbG9yOiAkYmx1ZSwgJG1pZC1jb2xvcjogJHB1cnBsZSwgJGNvbG9yLXN0b3A6IDUwJSwgJGVuZC1jb2xvcjogJHJlZCkge1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgkc3RhcnQtY29sb3IsICRtaWQtY29sb3IgJGNvbG9yLXN0b3AsICRlbmQtY29sb3IpO1xyXG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbn1cclxuQG1peGluIGdyYWRpZW50LXJhZGlhbCgkaW5uZXItY29sb3I6ICRncmF5LTcwMCwgJG91dGVyLWNvbG9yOiAkZ3JheS04MDApIHtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCAkaW5uZXItY29sb3IsICRvdXRlci1jb2xvcik7XHJcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxufVxyXG5AbWl4aW4gZ3JhZGllbnQtc3RyaXBlZCgkY29sb3I6IHJnYmEoJHdoaXRlLCAuMTUpLCAkYW5nbGU6IDQ1ZGVnKSB7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KCRhbmdsZSwgJGNvbG9yIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsICRjb2xvciA1MCUsICRjb2xvciA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xyXG59XHJcbiIsIi8vIEJyZWFrcG9pbnQgdmlld3BvcnQgc2l6ZXMgYW5kIG1lZGlhIHF1ZXJpZXMuXHJcbi8vXHJcbi8vIEJyZWFrcG9pbnRzIGFyZSBkZWZpbmVkIGFzIGEgbWFwIG9mIChuYW1lOiBtaW5pbXVtIHdpZHRoKSwgb3JkZXIgZnJvbSBzbWFsbCB0byBsYXJnZTpcclxuLy9cclxuLy8gICAgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KVxyXG4vL1xyXG4vLyBUaGUgbWFwIGRlZmluZWQgaW4gdGhlIGAkZ3JpZC1icmVha3BvaW50c2AgZ2xvYmFsIHZhcmlhYmxlIGlzIHVzZWQgYXMgdGhlIGAkYnJlYWtwb2ludHNgIGFyZ3VtZW50IGJ5IGRlZmF1bHQuXHJcblxyXG4vLyBOYW1lIG9mIHRoZSBuZXh0IGJyZWFrcG9pbnQsIG9yIG51bGwgZm9yIHRoZSBsYXN0IGJyZWFrcG9pbnQuXHJcbi8vXHJcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSlcclxuLy8gICAgbWRcclxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxyXG4vLyAgICBtZFxyXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20sICRicmVha3BvaW50LW5hbWVzOiAoeHMgc20gbWQgbGcgeGwpKVxyXG4vLyAgICBtZFxyXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1uZXh0KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludC1uYW1lczogbWFwLWtleXMoJGJyZWFrcG9pbnRzKSkge1xyXG4gICRuOiBpbmRleCgkYnJlYWtwb2ludC1uYW1lcywgJG5hbWUpO1xyXG4gIEByZXR1cm4gaWYoJG4gIT0gbnVsbCBhbmQgJG4gPCBsZW5ndGgoJGJyZWFrcG9pbnQtbmFtZXMpLCBudGgoJGJyZWFrcG9pbnQtbmFtZXMsICRuICsgMSksIG51bGwpO1xyXG59XHJcblxyXG4vLyBNaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE51bGwgZm9yIHRoZSBzbWFsbGVzdCAoZmlyc3QpIGJyZWFrcG9pbnQuXHJcbi8vXHJcbi8vICAgID4+IGJyZWFrcG9pbnQtbWluKHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxyXG4vLyAgICA1NzZweFxyXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcclxuICAkbWluOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xyXG4gIEByZXR1cm4gaWYoJG1pbiAhPSAwLCAkbWluLCBudWxsKTtcclxufVxyXG5cclxuLy8gTWF4aW11bSBicmVha3BvaW50IHdpZHRoLiBOdWxsIGZvciB0aGUgbGFyZ2VzdCAobGFzdCkgYnJlYWtwb2ludC5cclxuLy8gVGhlIG1heGltdW0gdmFsdWUgaXMgY2FsY3VsYXRlZCBhcyB0aGUgbWluaW11bSBvZiB0aGUgbmV4dCBvbmUgbGVzcyAwLjAycHhcclxuLy8gdG8gd29yayBhcm91bmQgdGhlIGxpbWl0YXRpb25zIG9mIGBtaW4tYCBhbmQgYG1heC1gIHByZWZpeGVzIGFuZCB2aWV3cG9ydHMgd2l0aCBmcmFjdGlvbmFsIHdpZHRocy5cclxuLy8gU2VlIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9tZWRpYXF1ZXJpZXMtNC8jbXEtbWluLW1heFxyXG4vLyBVc2VzIDAuMDJweCByYXRoZXIgdGhhbiAwLjAxcHggdG8gd29yayBhcm91bmQgYSBjdXJyZW50IHJvdW5kaW5nIGJ1ZyBpbiBTYWZhcmkuXHJcbi8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4MjYxXHJcbi8vXHJcbi8vICAgID4+IGJyZWFrcG9pbnQtbWF4KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxyXG4vLyAgICA3NjcuOThweFxyXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcclxuICAkbmV4dDogYnJlYWtwb2ludC1uZXh0KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xyXG4gIEByZXR1cm4gaWYoJG5leHQsIGJyZWFrcG9pbnQtbWluKCRuZXh0LCAkYnJlYWtwb2ludHMpIC0gLjAyLCBudWxsKTtcclxufVxyXG5cclxuLy8gUmV0dXJucyBhIGJsYW5rIHN0cmluZyBpZiBzbWFsbGVzdCBicmVha3BvaW50LCBvdGhlcndpc2UgcmV0dXJucyB0aGUgbmFtZSB3aXRoIGEgZGFzaCBpbiBmcm9udC5cclxuLy8gVXNlZnVsIGZvciBtYWtpbmcgcmVzcG9uc2l2ZSB1dGlsaXRpZXMuXHJcbi8vXHJcbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoeHMsICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXHJcbi8vICAgIFwiXCIgIChSZXR1cm5zIGEgYmxhbmsgc3RyaW5nKVxyXG4vLyAgICA+PiBicmVha3BvaW50LWluZml4KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxyXG4vLyAgICBcIi1zbVwiXHJcbkBmdW5jdGlvbiBicmVha3BvaW50LWluZml4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XHJcbiAgQHJldHVybiBpZihicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKSA9PSBudWxsLCBcIlwiLCBcIi0jeyRuYW1lfVwiKTtcclxufVxyXG5cclxuLy8gTWVkaWEgb2YgYXQgbGVhc3QgdGhlIG1pbmltdW0gYnJlYWtwb2ludCB3aWR0aC4gTm8gcXVlcnkgZm9yIHRoZSBzbWFsbGVzdCBicmVha3BvaW50LlxyXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIHdpZGVyLlxyXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xyXG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpO1xyXG4gIEBpZiAkbWluIHtcclxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2Uge1xyXG4gICAgQGNvbnRlbnQ7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBNZWRpYSBvZiBhdCBtb3N0IHRoZSBtYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgbGFyZ2VzdCBicmVha3BvaW50LlxyXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIG5hcnJvd2VyLlxyXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1kb3duKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XHJcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50cyk7XHJcbiAgQGlmICRtYXgge1xyXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRtYXgpIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAY29udGVudDtcclxuICB9XHJcbn1cclxuXHJcbi8vIE1lZGlhIHRoYXQgc3BhbnMgbXVsdGlwbGUgYnJlYWtwb2ludCB3aWR0aHMuXHJcbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSBiZXR3ZWVuIHRoZSBtaW4gYW5kIG1heCBicmVha3BvaW50c1xyXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1iZXR3ZWVuKCRsb3dlciwgJHVwcGVyLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XHJcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJGxvd2VyLCAkYnJlYWtwb2ludHMpO1xyXG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCR1cHBlciwgJGJyZWFrcG9pbnRzKTtcclxuXHJcbiAgQGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcclxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSBhbmQgKG1heC13aWR0aDogJG1heCkge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9IEBlbHNlIGlmICRtYXggPT0gbnVsbCB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRsb3dlciwgJGJyZWFrcG9pbnRzKSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgJG1pbiA9PSBudWxsIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkdXBwZXIsICRicmVha3BvaW50cykge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vIE1lZGlhIGJldHdlZW4gdGhlIGJyZWFrcG9pbnQncyBtaW5pbXVtIGFuZCBtYXhpbXVtIHdpZHRocy5cclxuLy8gTm8gbWluaW11bSBmb3IgdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQsIGFuZCBubyBtYXhpbXVtIGZvciB0aGUgbGFyZ2VzdCBvbmUuXHJcbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSBvbmx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50LCBub3Qgdmlld3BvcnRzIGFueSB3aWRlciBvciBuYXJyb3dlci5cclxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtb25seSgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xyXG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpO1xyXG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xyXG5cclxuICBAaWYgJG1pbiAhPSBudWxsIGFuZCAkbWF4ICE9IG51bGwge1xyXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50cykge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9IEBlbHNlIGlmICRtaW4gPT0gbnVsbCB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJG5hbWUsICRicmVha3BvaW50cykge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19 */\";","export default \"/* ========================================================================\\n Component: layout\\n ========================================================================== */\\nbody, .wrapper .section-container {\\n background-color: #f5f7fa;\\n}\\n.wrapper .aside-container {\\n background-color: #3a3f51;\\n}\\n/* ========================================================================\\n Component: top-navbar\\n ========================================================================== */\\n.topnavbar {\\n background-color: #ec2121;\\n background-image: linear-gradient(to right, #ec2121 0%, #f05050 100%);\\n background-repeat: repeat-x;\\n}\\n@media (min-width: 992px) {\\n .topnavbar .navbar-nav > .nav-item.show > .nav-link, .topnavbar .navbar-nav > .nav-item.show > .nav-link:hover, .topnavbar .navbar-nav > .nav-item.show > .nav-link:focus {\\n box-shadow: 0 -3px 0 #dc1313 inset;\\n }\\n}\\n.topnavbar .navbar-nav > .nav-item > .navbar-text {\\n color: #fff;\\n}\\n.topnavbar .navbar-nav > .nav-item > .nav-link,\\n.topnavbar .navbar-nav > .nav-item.show > .nav-link {\\n color: #fff;\\n}\\n.topnavbar .navbar-nav > .nav-item > .nav-link:hover, .topnavbar .navbar-nav > .nav-item > .nav-link:focus,\\n.topnavbar .navbar-nav > .nav-item.show > .nav-link:hover,\\n.topnavbar .navbar-nav > .nav-item.show > .nav-link:focus {\\n color: #9a0d0d;\\n}\\n.topnavbar .dropdown-item.active, .topnavbar .dropdown-item:active {\\n background-color: #ec2121;\\n}\\n/* ========================================================================\\n Component: sidebar\\n ========================================================================== */\\n.sidebar {\\n background-color: #3a3f51;\\n}\\n.sidebar .nav-heading {\\n color: #919DA8;\\n}\\n.sidebar-nav > li > a, .sidebar-nav > li > .nav-item {\\n color: #e1e2e3;\\n}\\n.sidebar-nav > li > a:focus, .sidebar-nav > li > a:hover, .sidebar-nav > li > .nav-item:focus, .sidebar-nav > li > .nav-item:hover {\\n color: #f05050;\\n}\\n.sidebar-nav > li > a > em, .sidebar-nav > li > .nav-item > em {\\n color: inherits;\\n}\\n.sidebar-nav > li.active, .sidebar-nav > li.active > a, .sidebar-nav > li.active > .nav-item, .sidebar-nav > li.active .sidebar-nav, .sidebar-nav > li.open, .sidebar-nav > li.open > a, .sidebar-nav > li.open > .nav-item, .sidebar-nav > li.open .sidebar-nav {\\n background-color: #383d4e;\\n color: #f05050;\\n}\\n.sidebar-nav > li.active > .nav-item > em, .sidebar-nav > li.active > a > em, .sidebar-nav > li.open > .nav-item > em, .sidebar-nav > li.open > a > em {\\n color: #f05050;\\n}\\n.sidebar-nav > li.active {\\n border-left-color: #f05050;\\n}\\n.sidebar-subnav {\\n background-color: #3a3f51;\\n}\\n.sidebar-subnav > .sidebar-subnav-header {\\n color: #e1e2e3;\\n}\\n.sidebar-subnav > li > a, .sidebar-subnav > li > .nav-item {\\n color: #e1e2e3;\\n}\\n.sidebar-subnav > li > a:focus, .sidebar-subnav > li > a:hover, .sidebar-subnav > li > .nav-item:focus, .sidebar-subnav > li > .nav-item:hover {\\n color: #f05050;\\n}\\n.sidebar-subnav > li.active > a, .sidebar-subnav > li.active > .nav-item {\\n color: #f05050;\\n}\\n.sidebar-subnav > li.active > a:after, .sidebar-subnav > li.active > .nav-item:after {\\n border-color: #f05050;\\n background-color: #f05050;\\n}\\n/* ========================================================================\\n Component: offsidebar\\n ========================================================================== */\\n.offsidebar {\\n border-left: 1px solid greyscale(#cccccc);\\n background-color: #fff;\\n color: #656565;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvc2hhcmVkL3N0eWxlcy90aGVtZXMvRDpcXEluZGlhQlVcXEFnZW50UG9vbFxcRG90TmV0XFxEb3ROZXRGcmFtZXdvcmtcXF93b3JrXFwyOTZcXHMvc3JjXFxhcHBcXHNoYXJlZFxcc3R5bGVzXFx0aGVtZXNcXHRoZW1lLWguc2NzcyIsInNyYy9hcHAvc2hhcmVkL3N0eWxlcy90aGVtZXMvdGhlbWUtaC5zY3NzIiwic3JjL2FwcC9zaGFyZWQvc3R5bGVzL3RoZW1lcy9EOlxcSW5kaWFCVVxcQWdlbnRQb29sXFxEb3ROZXRcXERvdE5ldEZyYW1ld29ya1xcX3dvcmtcXDI5Nlxccy9zcmNcXGFwcFxcc2hhcmVkXFxzdHlsZXNcXGFwcFxcdmFyaWFibGVzLnNjc3MiLCJzcmMvYXBwL3NoYXJlZC9zdHlsZXMvdGhlbWVzL0Q6XFxJbmRpYUJVXFxBZ2VudFBvb2xcXERvdE5ldFxcRG90TmV0RnJhbWV3b3JrXFxfd29ya1xcMjk2XFxzL3NyY1xcYXBwXFxzaGFyZWRcXHN0eWxlc1xcYm9vdHN0cmFwXFxtaXhpbnNcXF9ncmFkaWVudHMuc2NzcyIsInNyYy9hcHAvc2hhcmVkL3N0eWxlcy90aGVtZXMvRDpcXEluZGlhQlVcXEFnZW50UG9vbFxcRG90TmV0XFxEb3ROZXRGcmFtZXdvcmtcXF93b3JrXFwyOTZcXHMvc3JjXFxhcHBcXHNoYXJlZFxcc3R5bGVzXFxib290c3RyYXBcXG1peGluc1xcX2JyZWFrcG9pbnRzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBOENBOzs2RUFBQTtBQUdBO0VBQ0kseUJBekM0QjtBQ0poQztBRGdEQTtFQUNJLHlCRW5Eb0I7QURNeEI7QURnREE7OzZFQUFBO0FBR0E7RUFDSSx5QkVyQm9CO0VDMUJ0QixxRUFBQTtFQUNBLDJCQUFBO0FGR0Y7QUcwQ0k7RUpNUTtJQUNJLGtDQUFBO0VDN0NkO0FBQ0Y7QURpREk7RUFDSSxXQXREd0I7QUNPaEM7QURrREk7O0VBRUksV0EzRHdCO0FDV2hDO0FEaURROzs7RUFDSSxjQTVEb0I7QUNlaEM7QURpREk7RUFDSSx5QkU3Q2dCO0FERnhCO0FEbURBOzs2RUFBQTtBQUdBO0VBQ0kseUJFMUZvQjtBRDBDeEI7QURrREk7RUFDSSxjQTVEMEI7QUNZbEM7QUR1RFE7RUFDSSxjQTlFc0I7QUMwQmxDO0FEc0RZO0VBQ0ksY0V2RlE7QURtQ3hCO0FEd0RZO0VBQ0ksZUFsRmtCO0FDNEJsQztBRDZEWTtFQUNJLHlCQTVGa0I7RUE2RmxCLGNFckdRO0FEMEN4QjtBRDhEWTtFQUNJLGNFekdRO0FENkN4QjtBRGlFUTtFQUNJLDBCRS9HWTtBRGdEeEI7QURzRUE7RUFDSSx5QkV4SW9CO0FEcUV4QjtBRHFFSTtFQUNJLGNBcEgwQjtBQ2lEbEM7QUR1RVE7RUFDSSxjQXpIc0I7QUNvRGxDO0FEdUVZO0VBQ0ksY0VsSVE7QUQ2RHhCO0FEMkVZO0VBQ0ksY0V6SVE7QURnRXhCO0FEMkVnQjtFQUNJLHFCRTVJSTtFRjZJSix5QkU3SUk7QURvRXhCO0FEb0ZBOzs2RUFBQTtBQUdBO0VBQ0kseUNBQUE7RUFDQSxzQkF4SXNCO0VBeUl0QixjRXJDd0I7QUQ1QzVCIiwiZmlsZSI6InNyYy9hcHAvc2hhcmVkL3N0eWxlcy90aGVtZXMvdGhlbWUtaC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQm9vdHN0cmFwXHJcbkBpbXBvcnQgXCIuLi9ib290c3RyYXAvZnVuY3Rpb25zXCI7XHJcbkBpbXBvcnQgXCIuLi9ib290c3RyYXAvdmFyaWFibGVzXCI7XHJcbkBpbXBvcnQgXCIuLi9ib290c3RyYXAvbWl4aW5zXCI7XHJcbkBpbXBvcnQgJy4uL2FwcC92YXJpYWJsZXMnO1xyXG5cclxuXHJcbi8vIExBWU9VVFxyXG5cclxuJGNvbnRlbnQtYmc6ICAgICAgICAgICAgICAgICAgICAjZjVmN2ZhO1xyXG4kYXNpZGUtYmc6ICAgICAgICAgICAgICAgICAgICAgICRncmF5LWRhcms7XHJcblxyXG4vLyBOQVZCQVIgVE9QXHJcblxyXG4kbmF2LXRvcC1iZzogICAgICAgICAgICAgICAgICAgICRkYW5nZXItZGFyaztcclxuJG5hdi10b3AtYmctc3RhcnQ6ICAgICAgICAgICAgICAkbmF2LXRvcC1iZztcclxuJG5hdi10b3AtYmctZW5kOiAgICAgICAgICAgICAgICAkZGFuZ2VyO1xyXG4kbmF2LWhlYWRlci1iZzogICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50O1xyXG5cclxuJG5hdi10b3AtaXRlbTogICAgICAgICAgICAgICAgICAjZmZmO1xyXG4kbmF2LXRvcC1pdGVtLWFjdGl2ZTogICAgICAgICAgIGRhcmtlbigkbmF2LXRvcC1iZywgMjAlKTtcclxuXHJcbi8vIFNJREVCQVJcclxuXHJcbiRzaWRlYmFyLWJnOiAgICAgICAgICAgICAgICAgICAgICAkYXNpZGUtYmc7XHJcblxyXG4kc2lkZWJhci1pdGVtLWNvbG9yOiAgICAgICAgICAgICAgI2UxZTJlMztcclxuJHNpZGViYXItaXRlbS1jb2xvci1hY3RpdmU6ICAgICAgICRkYW5nZXI7XHJcbiRzaWRlYmFyLWl0ZW0tYmctYWN0aXZlOiAgICAgICAgICBkYXJrZW4oJHNpZGViYXItYmcsIDElKTtcclxuXHJcbiRzaWRlYmFyLWljb24tY29sb3I6ICAgICAgICAgICAgICBpbmhlcml0cztcclxuJHNpZGViYXItaWNvbi1jb2xvci1hY3RpdmU6ICAgICAgICRzaWRlYmFyLWl0ZW0tY29sb3ItYWN0aXZlO1xyXG5cclxuJHNpZGViYXItYnVsbGV0LWNvbG9yOiAgICAgICAgICAgIHJnYmEoMCwwLDAsLjI1KTtcclxuJHNpZGViYXItYnVsbGV0LWNvbG9yLWFjdGl2ZTogICAgICRzaWRlYmFyLWljb24tY29sb3ItYWN0aXZlO1xyXG5cclxuJHNpZGViYXItaGVhZGluZy1jb2xvcjogICAgICAgICAgICM5MTlEQTg7XHJcbiRzaWRlYmFyLWxhYmVsLWNvbG9yOiAgICAgICAgICAgICAkc2lkZWJhci1pdGVtLWNvbG9yO1xyXG5cclxuLy8gT0ZGU0lERUJBUlxyXG5cclxuJG9mZnNpZGViYXItYmc6ICAgICAgICAgICAjZmZmO1xyXG4kb2Zmc2lkZWJhci1ib3JkZXItY29sb3I6IGdyZXlzY2FsZShkYXJrZW4oJG9mZnNpZGViYXItYmcsIDIwJSkpO1xyXG4kb2Zmc2lkZWJhci1jb2xvcjogICAgICAgICRib2R5LWNvbG9yO1xyXG5cclxuXHJcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBDb21wb25lbnQ6IGxheW91dFxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuYm9keSwgLndyYXBwZXIgLnNlY3Rpb24tY29udGFpbmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb250ZW50LWJnO1xyXG59XHJcblxyXG4ud3JhcHBlciAuYXNpZGUtY29udGFpbmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRhc2lkZS1iZztcclxufVxyXG5cclxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIENvbXBvbmVudDogdG9wLW5hdmJhclxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuLnRvcG5hdmJhciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2LXRvcC1iZztcclxuICAgIEBpbmNsdWRlIGdyYWRpZW50LXgoJG5hdi10b3AtYmctc3RhcnQsICRuYXYtdG9wLWJnLWVuZCk7XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChsZykge1xyXG4gICAgICAgIC5uYXZiYXItbmF2ID4gLm5hdi1pdGVtLnNob3cgPiAubmF2LWxpbmsge1xyXG4gICAgICAgICAgICAmLCAmOmhvdmVyLCAmOmZvY3VzIHtcclxuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTNweCAwIGRhcmtlbigkbmF2LXRvcC1iZywgNiUpIGluc2V0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5uYXZiYXItbmF2ID4gLm5hdi1pdGVtID4gLm5hdmJhci10ZXh0IHtcclxuICAgICAgICBjb2xvcjogJG5hdi10b3AtaXRlbTtcclxuICAgIH1cclxuXHJcbiAgICAubmF2YmFyLW5hdiA+IC5uYXYtaXRlbSA+IC5uYXYtbGluayxcclxuICAgIC5uYXZiYXItbmF2ID4gLm5hdi1pdGVtLnNob3cgPiAubmF2LWxpbmsge1xyXG4gICAgICAgIGNvbG9yOiAkbmF2LXRvcC1pdGVtO1xyXG4gICAgICAgICY6aG92ZXIsICY6Zm9jdXMge1xyXG4gICAgICAgICAgICBjb2xvcjogJG5hdi10b3AtaXRlbS1hY3RpdmU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5kcm9wZG93bi1pdGVtLmFjdGl2ZSwgLmRyb3Bkb3duLWl0ZW06YWN0aXZlIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2LXRvcC1iZztcclxuICAgIH1cclxufVxyXG5cclxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIENvbXBvbmVudDogc2lkZWJhclxyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuLnNpZGViYXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHNpZGViYXItYmc7XHJcblxyXG4gICAgLm5hdi1oZWFkaW5nIHtcclxuICAgICAgICBjb2xvcjogJHNpZGViYXItaGVhZGluZy1jb2xvcjtcclxuICAgIH1cclxufVxyXG5cclxuLy8gSXRlbXNcclxuLnNpZGViYXItbmF2IHtcclxuICAgID4gbGkge1xyXG4gICAgICAgID4gYSwgPiAubmF2LWl0ZW0ge1xyXG4gICAgICAgICAgICBjb2xvcjogJHNpZGViYXItaXRlbS1jb2xvcjtcclxuXHJcbiAgICAgICAgICAgICY6Zm9jdXMsICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICRzaWRlYmFyLWl0ZW0tY29sb3ItYWN0aXZlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyBJdGVtIGljb25cclxuICAgICAgICAgICAgPiBlbSB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNpZGViYXItaWNvbi1jb2xvcjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIEFjdGl2ZSBpdGVtIHN0YXRlXHJcbiAgICAgICAgJi5hY3RpdmUsICYub3BlbiB7XHJcbiAgICAgICAgICAgICYsID4gYSwgPiAubmF2LWl0ZW0sIC5zaWRlYmFyLW5hdiB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2lkZWJhci1pdGVtLWJnLWFjdGl2ZTtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2lkZWJhci1pdGVtLWNvbG9yLWFjdGl2ZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgPiAubmF2LWl0ZW0gPiBlbSwgPiBhID4gZW0ge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICRzaWRlYmFyLWljb24tY29sb3ItYWN0aXZlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5hY3RpdmUge1xyXG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogJHNpZGViYXItaXRlbS1jb2xvci1hY3RpdmU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbn1cclxuXHJcbi5zaWRlYmFyLXN1Ym5hdiB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2lkZWJhci1iZztcclxuXHJcbiAgICA+IC5zaWRlYmFyLXN1Ym5hdi1oZWFkZXIge1xyXG4gICAgICAgIGNvbG9yOiAkc2lkZWJhci1pdGVtLWNvbG9yO1xyXG4gICAgfVxyXG5cclxuICAgID4gbGkge1xyXG4gICAgICAgID4gYSwgPiAubmF2LWl0ZW0ge1xyXG4gICAgICAgICAgICBjb2xvcjogJHNpZGViYXItaXRlbS1jb2xvcjtcclxuXHJcbiAgICAgICAgICAgICY6Zm9jdXMsICY6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICRzaWRlYmFyLWl0ZW0tY29sb3ItYWN0aXZlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5hY3RpdmUge1xyXG4gICAgICAgICAgICA+IGEsID4gLm5hdi1pdGVtIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2lkZWJhci1pY29uLWNvbG9yLWFjdGl2ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRzaWRlYmFyLWJ1bGxldC1jb2xvci1hY3RpdmU7XHJcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNpZGViYXItYnVsbGV0LWNvbG9yLWFjdGl2ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbn1cclxuXHJcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICBDb21wb25lbnQ6IG9mZnNpZGViYXJcclxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcbi5vZmZzaWRlYmFyIHtcclxuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJG9mZnNpZGViYXItYm9yZGVyLWNvbG9yO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG9mZnNpZGViYXItYmc7XHJcbiAgICBjb2xvcjogJG9mZnNpZGViYXItY29sb3I7XHJcbn1cclxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IGxheW91dFxuID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5ib2R5LCAud3JhcHBlciAuc2VjdGlvbi1jb250YWluZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmN2ZhO1xufVxuXG4ud3JhcHBlciAuYXNpZGUtY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNhM2Y1MTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IHRvcC1uYXZiYXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnRvcG5hdmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlYzIxMjE7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgI2VjMjEyMSAwJSwgI2YwNTA1MCAxMDAlKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC50b3BuYXZiYXIgLm5hdmJhci1uYXYgPiAubmF2LWl0ZW0uc2hvdyA+IC5uYXYtbGluaywgLnRvcG5hdmJhciAubmF2YmFyLW5hdiA+IC5uYXYtaXRlbS5zaG93ID4gLm5hdi1saW5rOmhvdmVyLCAudG9wbmF2YmFyIC5uYXZiYXItbmF2ID4gLm5hdi1pdGVtLnNob3cgPiAubmF2LWxpbms6Zm9jdXMge1xuICAgIGJveC1zaGFkb3c6IDAgLTNweCAwICNkYzEzMTMgaW5zZXQ7XG4gIH1cbn1cbi50b3BuYXZiYXIgLm5hdmJhci1uYXYgPiAubmF2LWl0ZW0gPiAubmF2YmFyLXRleHQge1xuICBjb2xvcjogI2ZmZjtcbn1cbi50b3BuYXZiYXIgLm5hdmJhci1uYXYgPiAubmF2LWl0ZW0gPiAubmF2LWxpbmssXG4udG9wbmF2YmFyIC5uYXZiYXItbmF2ID4gLm5hdi1pdGVtLnNob3cgPiAubmF2LWxpbmsge1xuICBjb2xvcjogI2ZmZjtcbn1cbi50b3BuYXZiYXIgLm5hdmJhci1uYXYgPiAubmF2LWl0ZW0gPiAubmF2LWxpbms6aG92ZXIsIC50b3BuYXZiYXIgLm5hdmJhci1uYXYgPiAubmF2LWl0ZW0gPiAubmF2LWxpbms6Zm9jdXMsXG4udG9wbmF2YmFyIC5uYXZiYXItbmF2ID4gLm5hdi1pdGVtLnNob3cgPiAubmF2LWxpbms6aG92ZXIsXG4udG9wbmF2YmFyIC5uYXZiYXItbmF2ID4gLm5hdi1pdGVtLnNob3cgPiAubmF2LWxpbms6Zm9jdXMge1xuICBjb2xvcjogIzlhMGQwZDtcbn1cbi50b3BuYXZiYXIgLmRyb3Bkb3duLWl0ZW0uYWN0aXZlLCAudG9wbmF2YmFyIC5kcm9wZG93bi1pdGVtOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlYzIxMjE7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29tcG9uZW50OiBzaWRlYmFyXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5zaWRlYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNhM2Y1MTtcbn1cbi5zaWRlYmFyIC5uYXYtaGVhZGluZyB7XG4gIGNvbG9yOiAjOTE5REE4O1xufVxuXG4uc2lkZWJhci1uYXYgPiBsaSA+IGEsIC5zaWRlYmFyLW5hdiA+IGxpID4gLm5hdi1pdGVtIHtcbiAgY29sb3I6ICNlMWUyZTM7XG59XG4uc2lkZWJhci1uYXYgPiBsaSA+IGE6Zm9jdXMsIC5zaWRlYmFyLW5hdiA+IGxpID4gYTpob3ZlciwgLnNpZGViYXItbmF2ID4gbGkgPiAubmF2LWl0ZW06Zm9jdXMsIC5zaWRlYmFyLW5hdiA+IGxpID4gLm5hdi1pdGVtOmhvdmVyIHtcbiAgY29sb3I6ICNmMDUwNTA7XG59XG4uc2lkZWJhci1uYXYgPiBsaSA+IGEgPiBlbSwgLnNpZGViYXItbmF2ID4gbGkgPiAubmF2LWl0ZW0gPiBlbSB7XG4gIGNvbG9yOiBpbmhlcml0cztcbn1cbi5zaWRlYmFyLW5hdiA+IGxpLmFjdGl2ZSwgLnNpZGViYXItbmF2ID4gbGkuYWN0aXZlID4gYSwgLnNpZGViYXItbmF2ID4gbGkuYWN0aXZlID4gLm5hdi1pdGVtLCAuc2lkZWJhci1uYXYgPiBsaS5hY3RpdmUgLnNpZGViYXItbmF2LCAuc2lkZWJhci1uYXYgPiBsaS5vcGVuLCAuc2lkZWJhci1uYXYgPiBsaS5vcGVuID4gYSwgLnNpZGViYXItbmF2ID4gbGkub3BlbiA+IC5uYXYtaXRlbSwgLnNpZGViYXItbmF2ID4gbGkub3BlbiAuc2lkZWJhci1uYXYge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzgzZDRlO1xuICBjb2xvcjogI2YwNTA1MDtcbn1cbi5zaWRlYmFyLW5hdiA+IGxpLmFjdGl2ZSA+IC5uYXYtaXRlbSA+IGVtLCAuc2lkZWJhci1uYXYgPiBsaS5hY3RpdmUgPiBhID4gZW0sIC5zaWRlYmFyLW5hdiA+IGxpLm9wZW4gPiAubmF2LWl0ZW0gPiBlbSwgLnNpZGViYXItbmF2ID4gbGkub3BlbiA+IGEgPiBlbSB7XG4gIGNvbG9yOiAjZjA1MDUwO1xufVxuLnNpZGViYXItbmF2ID4gbGkuYWN0aXZlIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICNmMDUwNTA7XG59XG5cbi5zaWRlYmFyLXN1Ym5hdiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzYTNmNTE7XG59XG4uc2lkZWJhci1zdWJuYXYgPiAuc2lkZWJhci1zdWJuYXYtaGVhZGVyIHtcbiAgY29sb3I6ICNlMWUyZTM7XG59XG4uc2lkZWJhci1zdWJuYXYgPiBsaSA+IGEsIC5zaWRlYmFyLXN1Ym5hdiA+IGxpID4gLm5hdi1pdGVtIHtcbiAgY29sb3I6ICNlMWUyZTM7XG59XG4uc2lkZWJhci1zdWJuYXYgPiBsaSA+IGE6Zm9jdXMsIC5zaWRlYmFyLXN1Ym5hdiA+IGxpID4gYTpob3ZlciwgLnNpZGViYXItc3VibmF2ID4gbGkgPiAubmF2LWl0ZW06Zm9jdXMsIC5zaWRlYmFyLXN1Ym5hdiA+IGxpID4gLm5hdi1pdGVtOmhvdmVyIHtcbiAgY29sb3I6ICNmMDUwNTA7XG59XG4uc2lkZWJhci1zdWJuYXYgPiBsaS5hY3RpdmUgPiBhLCAuc2lkZWJhci1zdWJuYXYgPiBsaS5hY3RpdmUgPiAubmF2LWl0ZW0ge1xuICBjb2xvcjogI2YwNTA1MDtcbn1cbi5zaWRlYmFyLXN1Ym5hdiA+IGxpLmFjdGl2ZSA+IGE6YWZ0ZXIsIC5zaWRlYmFyLXN1Ym5hdiA+IGxpLmFjdGl2ZSA+IC5uYXYtaXRlbTphZnRlciB7XG4gIGJvcmRlci1jb2xvcjogI2YwNTA1MDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YwNTA1MDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnQ6IG9mZnNpZGViYXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLm9mZnNpZGViYXIge1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIGdyZXlzY2FsZSgjY2NjY2NjKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgY29sb3I6ICM2NTY1NjU7XG59IiwiXHJcbi8vIEN1dG9tcyBHcmF5IGNvbG9ycyBmb3IgdGhlbWVcclxuJGdyYXktZGFya2VyOiAgICAgICAgICAgIzIzMjczNTtcclxuJGdyYXktZGFyazogICAgICAgICAgICAgIzNhM2Y1MTtcclxuJGdyYXk6ICAgICAgICAgICAgICAgICAgI2RkZTZlOTtcclxuJGdyYXktbGlnaHQ6ICAgICAgICAgICAgI2U0ZWFlYztcclxuJGdyYXktbGlnaHRlcjogICAgICAgICAgI2VkZjFmMjtcclxuXHJcbi8vIEN1c3RvbSBicmFuZCBjb2xvcnMgZm9yIHRoZW1lXHJcbiRpbnZlcnNlOiAgICAgICAgICAgICAgICMxMzFlMjY7XHJcbiRwdXJwbGU6ICAgICAgICAgICAgICAgICM3MjY2YmE7XHJcbiRwaW5rOiAgICAgICAgICAgICAgICAgICNmNTMyZTU7XHJcbiR5ZWxsb3c6ICAgICAgICAgICAgICAgICNmYWQ3MzI7XHJcbiRncmVlbjogICAgICAgICAgICAgICAgICMzMUI0NEE7XHJcblxyXG4kcHJpbWFyeTogICAgICAgICAgICAgICAjMDBBQkU3O1xyXG4kc2Vjb25kYXJ5OiAgICAgICAgICAgICAjZmZmO1xyXG4kc3VjY2VzczogICAgICAgICAgICAgICAjMjdjMjRjO1xyXG4kaW5mbzogICAgICAgICAgICAgICAgICAjODZCQzI1ICA7XHJcbiR3YXJuaW5nOiAgICAgICAgICAgICAgICNmZjkwMmI7XHJcbiRkYW5nZXI6ICAgICAgICAgICAgICAgICNmMDUwNTA7XHJcbiRkYXJrOiAgICAgICAgICAgICAgICAgICMzYTNmNTE7XHJcblxyXG4vLyBDdXN0b20gY29sb3IgdmFyaWFudHNcclxuJGFtb3VudE9mTGlnaHQ6IDEwJTtcclxuXHJcbiRwcmltYXJ5LWxpZ2h0OiAgICAgICAgIGxpZ2h0ZW4oJHByaW1hcnksICRhbW91bnRPZkxpZ2h0KTtcclxuJHN1Y2Nlc3MtbGlnaHQ6ICAgICAgICAgbGlnaHRlbigkc3VjY2VzcywgJGFtb3VudE9mTGlnaHQpO1xyXG4kaW5mby1saWdodDogICAgICAgICAgICBsaWdodGVuKCRpbmZvLCAkYW1vdW50T2ZMaWdodCk7XHJcbiR3YXJuaW5nLWxpZ2h0OiAgICAgICAgIGxpZ2h0ZW4oJHdhcm5pbmcsICRhbW91bnRPZkxpZ2h0KTtcclxuJGRhbmdlci1saWdodDogICAgICAgICAgbGlnaHRlbigkZGFuZ2VyLCAkYW1vdW50T2ZMaWdodCk7XHJcbiRpbnZlcnNlLWxpZ2h0OiAgICAgICAgIGxpZ2h0ZW4oJGludmVyc2UsICRhbW91bnRPZkxpZ2h0KTtcclxuJGdyZWVuLWxpZ2h0OiAgICAgICAgICAgbGlnaHRlbigkZ3JlZW4sICRhbW91bnRPZkxpZ2h0KTtcclxuJHBpbmstbGlnaHQ6ICAgICAgICAgICAgbGlnaHRlbigkcGluaywgJGFtb3VudE9mTGlnaHQpO1xyXG4kcHVycGxlLWxpZ2h0OiAgICAgICAgICBsaWdodGVuKCRwdXJwbGUsICRhbW91bnRPZkxpZ2h0KTtcclxuJHllbGxvdy1saWdodDogICAgICAgICAgbGlnaHRlbigkeWVsbG93LCAkYW1vdW50T2ZMaWdodCk7XHJcbiRwcmltYXJ5LWRhcms6ICAgICAgICAgIGRhcmtlbigkcHJpbWFyeSwgJGFtb3VudE9mTGlnaHQpO1xyXG4kc3VjY2Vzcy1kYXJrOiAgICAgICAgICBkYXJrZW4oJHN1Y2Nlc3MsICRhbW91bnRPZkxpZ2h0KTtcclxuJGluZm8tZGFyazogICAgICAgICAgICAgZGFya2VuKCRpbmZvLCAkYW1vdW50T2ZMaWdodCk7XHJcbiR3YXJuaW5nLWRhcms6ICAgICAgICAgIGRhcmtlbigkd2FybmluZywgJGFtb3VudE9mTGlnaHQpO1xyXG4kZGFuZ2VyLWRhcms6ICAgICAgICAgICBkYXJrZW4oJGRhbmdlciwgJGFtb3VudE9mTGlnaHQpO1xyXG4kaW52ZXJzZS1kYXJrOiAgICAgICAgICBkYXJrZW4oJGludmVyc2UsICRhbW91bnRPZkxpZ2h0KTtcclxuJGdyZWVuLWRhcms6ICAgICAgICAgICAgZGFya2VuKCRncmVlbiwgJGFtb3VudE9mTGlnaHQpO1xyXG4kcGluay1kYXJrOiAgICAgICAgICAgICBkYXJrZW4oJHBpbmssICRhbW91bnRPZkxpZ2h0KTtcclxuJHB1cnBsZS1kYXJrOiAgICAgICAgICAgZGFya2VuKCRwdXJwbGUsICRhbW91bnRPZkxpZ2h0KTtcclxuJHllbGxvdy1kYXJrOiAgICAgICAgICAgZGFya2VuKCR5ZWxsb3csICRhbW91bnRPZkxpZ2h0KTtcclxuXHJcbi8vIFRoZW1lIHZhcmlhYmxlc1xyXG5cclxuLy8gdXNlZCBmb3Igc2lkZWJhcnMgYW5kIGNvbnRlbnQgc3BhY2luZ1xyXG4kbmF2YmFyLWhlaWdodDogICAgICAgICAgICAgICAgICAgIDU1cHg7XHJcblxyXG4vLyBCdXR0b24gc2Vjb25kYXJ5IHJlZGVmaW5pdGlvbiBzdHlsZSBmb3IgdGhlbWVcclxuJGJ0bi1zZWNvbmRhcnktY29sb3I6ICAgICAgICAgICAgICAjMzMzO1xyXG4kYnRuLXNlY29uZGFyeS1iZzogICAgICAgICAgICAgICAgICNmZmY7XHJcbiRidG4tc2Vjb25kYXJ5LWJvcmRlcjogICAgICAgICAgICAgI2VhZWFlYTtcclxuXHJcbi8vIFRvcCBCb3JkZXIgY29sb3IgZm9yIGN1c3RvbSBkZWZhdWx0IGNhcmRzICguY2FyZC1kZWZhdWx0KVxyXG4kY2FyZC1kZWZhdWx0LWJvcmRlci1jb2xvcjogICAgICAgICNjZmRiZTI7XHJcblxyXG5cclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbi8vIFV0aWxpdGllcyB2YXJpYWJsZXNcclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4kdGV4dC1hbHBoYTogICAgICAgICAgICByZ2JhKDI1NSwyNTUsMjU1LC41KTtcclxuJHRleHQtYWxwaGEtaW52ZXJzZTogICAgcmdiYSgwLDAsMCwuNSk7XHJcblxyXG4kZm9udC1zaXplLWJhc2U6ICAgICAgICAxcmVtO1xyXG4kdGV4dC1zbTogICAgICAgICAgICAgICAkZm9udC1zaXplLWJhc2UgKiAwLjc0Mzc1O1xyXG4kdGV4dC1tZDogICAgICAgICAgICAgICAkZm9udC1zaXplLWJhc2UgKiAxLjY2MjU7XHJcbiR0ZXh0LWxnOiAgICAgICAgICAgICAgICRmb250LXNpemUtYmFzZSAqIDIuNjI1O1xyXG5cclxuJGJvcmRlci1jb2xvcjogICAgICAgICAgcmdiYSgwLDAsMCwuMTIpO1xyXG5cclxuJHdkLXh4czogICAgICAgICAgICAgICAgNjBweDtcclxuJHdkLXhzOiAgICAgICAgICAgICAgICAgOTBweDtcclxuJHdkLXNtOiAgICAgICAgICAgICAgICAgMTUwcHg7XHJcbiR3ZC1zZDogICAgICAgICAgICAgICAgIDIwMHB4OyAvLyBzZCA9PSBzdGFuZGFyZFxyXG4kd2QtbWQ6ICAgICAgICAgICAgICAgICAyNDBweDtcclxuJHdkLWxnOiAgICAgICAgICAgICAgICAgMjgwcHg7XHJcbiR3ZC14bDogICAgICAgICAgICAgICAgIDMyMHB4O1xyXG4kd2QteHhsOiAgICAgICAgICAgICAgICAzNjBweDtcclxuJHdkLXdpZGU6ICAgICAgICAgICAgICAgMTAwJTtcclxuJHdkLWF1dG86ICAgICAgICAgICAgICAgYXV0bztcclxuJHdkLXplcm86ICAgICAgICAgICAgICAgMDtcclxuXHJcblxyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuLy8gQm9vdHN0cmFwIDQgVmFyaWFibGVzIE92ZXJyaWRlXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuLy8gQ29sb3Igc3lzdGVtXHJcblxyXG4kY29sb3JzOiAoXHJcbiAgICBcInB1cnBsZVwiOiAgICAgJHB1cnBsZSxcclxuICAgIFwicGlua1wiOiAgICAgICAkcGluayxcclxuICAgIFwieWVsbG93XCI6ICAgICAkeWVsbG93LFxyXG4gICAgXCJncmVlblwiOiAgICAgICRncmVlbixcclxuICAgIFwicHJpbWFyeVwiOiAgICAkcHJpbWFyeSxcclxuICAgIFwic3VjY2Vzc1wiOiAgICAkc3VjY2VzcyxcclxuICAgIFwiaW5mb1wiOiAgICAgICAkaW5mbyxcclxuICAgIFwid2FybmluZ1wiOiAgICAkd2FybmluZyxcclxuICAgIFwiZGFuZ2VyXCI6ICAgICAkZGFuZ2VyLFxyXG4gICAgJ2ludmVyc2UnOiAgICAkaW52ZXJzZSxcclxuXHJcbiAgICAncHJpbWFyeS1saWdodCc6ICRwcmltYXJ5LWxpZ2h0LFxyXG4gICAgJ3ByaW1hcnktZGFyayc6ICAkcHJpbWFyeS1kYXJrLFxyXG4gICAgJ3N1Y2Nlc3MtbGlnaHQnOiAkc3VjY2Vzcy1saWdodCxcclxuICAgICdzdWNjZXNzLWRhcmsnOiAgJHN1Y2Nlc3MtZGFyayxcclxuICAgICdpbmZvLWxpZ2h0JzogICAgJGluZm8tbGlnaHQsXHJcbiAgICAnaW5mby1kYXJrJzogICAgICRpbmZvLWRhcmssXHJcbiAgICAnd2FybmluZy1saWdodCc6ICR3YXJuaW5nLWxpZ2h0LFxyXG4gICAgJ3dhcm5pbmctZGFyayc6ICAkd2FybmluZy1kYXJrLFxyXG4gICAgJ2Rhbmdlci1saWdodCc6ICAkZGFuZ2VyLWxpZ2h0LFxyXG4gICAgJ2Rhbmdlci1kYXJrJzogICAkZGFuZ2VyLWRhcmssXHJcbiAgICAnZ3JlZW4tbGlnaHQnOiAgICRncmVlbi1saWdodCxcclxuICAgICdncmVlbi1kYXJrJzogICAgJGdyZWVuLWRhcmssXHJcbiAgICAncGluay1saWdodCc6ICAgICRwaW5rLWxpZ2h0LFxyXG4gICAgJ3BpbmstZGFyayc6ICAgICAkcGluay1kYXJrLFxyXG4gICAgJ3B1cnBsZS1saWdodCc6ICAkcHVycGxlLWxpZ2h0LFxyXG4gICAgJ3B1cnBsZS1kYXJrJzogICAkcHVycGxlLWRhcmssXHJcbiAgICAnaW52ZXJzZS1saWdodCc6ICRpbnZlcnNlLWxpZ2h0LFxyXG4gICAgJ2ludmVyc2UtZGFyayc6ICAkaW52ZXJzZS1kYXJrLFxyXG4gICAgJ3llbGxvdy1saWdodCc6ICAkeWVsbG93LWxpZ2h0LFxyXG4gICAgJ3llbGxvdy1kYXJrJzogICAkeWVsbG93LWRhcmssXHJcbik7XHJcblxyXG5cclxuJHRoZW1lLWNvbG9yczogKFxyXG4gIFwicHJpbWFyeVwiOiAgICAkcHJpbWFyeSxcclxuICBcInNlY29uZGFyeVwiOiAgJHNlY29uZGFyeSxcclxuICBcInN1Y2Nlc3NcIjogICAgJHN1Y2Nlc3MsXHJcbiAgXCJpbmZvXCI6ICAgICAgICRpbmZvLFxyXG4gIFwid2FybmluZ1wiOiAgICAkd2FybmluZyxcclxuICBcImRhbmdlclwiOiAgICAgJGRhbmdlclxyXG4pO1xyXG5cclxuLy8gQm9keVxyXG5cclxuJGJvZHktYmc6ICAgICAgICAgICAgICAgICAgICNmNWY3ZmE7XHJcbiRib2R5LWNvbG9yOiAgICAgICAgICAgICAgICAjNjU2NTY1O1xyXG5cclxuJGJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgICAgLjI1cmVtO1xyXG4kYm9yZGVyLXJhZGl1cy1sZzogICAgICAgICAgICAuMzc1cmVtO1xyXG5cclxuJGxpbmUtaGVpZ2h0LWJhc2U6ICAgICAgICAgICAgMS41Mjg1NzE0Mjk7XHJcblxyXG4kaGVhZGluZ3MtbGluZS1oZWlnaHQ6ICAgICAgICAxLjE7XHJcblxyXG4kdGV4dC1tdXRlZDogICAgICAgICAgICAgICAgICAjOTA5RkE3O1xyXG5cclxuLy8gVGFibGVzXHJcblxyXG4kdGFibGUtYWNjZW50LWJnOiAgICAgICAgICAgICAjZmFmYmZjO1xyXG4kdGFibGUtaG92ZXItYmc6ICAgICAgICAgICAgICAjZmFmYmZjO1xyXG5cclxuJHRhYmxlLWJvcmRlci1jb2xvcjogICAgICAgICAgI2VlZTtcclxuXHJcbi8vIEJ1dHRvbnMgKyBGb3Jtc1xyXG5cclxuJGlucHV0LWJ0bi1wYWRkaW5nLXk6ICAgICAgICAgLjM3NXJlbTtcclxuJGlucHV0LWJ0bi1wYWRkaW5nLXg6ICAgICAgICAgMXJlbTtcclxuXHJcbiRpbnB1dC1idG4tcGFkZGluZy15LXNtOiAgICAgIC4zMTI1cmVtO1xyXG4kaW5wdXQtYnRuLXBhZGRpbmcteC1zbTogICAgICAuNjI1cmVtO1xyXG5cclxuJGlucHV0LWJ0bi1wYWRkaW5nLXktbGc6ICAgICAgLjYyNXJlbTtcclxuJGlucHV0LWJ0bi1wYWRkaW5nLXgtbGc6ICAgICAgMS4yNXJlbTtcclxuXHJcbiRpbnB1dC1oZWlnaHQ6ICAgICAgICAgICAgICAgIDIuMTg3NXJlbTsgLy8gMzVweFxyXG5cclxuLy8gRm9ybXNcclxuXHJcbiRpbnB1dC1kaXNhYmxlZC1iZzogICAgICAgICAgICAgICAgICAgICAkZ3JheS1saWdodGVyO1xyXG4kaW5wdXQtYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgJGdyYXk7XHJcbiRpbnB1dC1mb2N1cy1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICAjNjZhZmU5O1xyXG4kaW5wdXQtcGxhY2Vob2xkZXItY29sb3I6ICAgICAgICAgICAgICAgI2I3YmFjOTtcclxuXHJcbiRmb3JtLWZlZWRiYWNrLWljb24tdmFsaWQ6ICAgICAgICAgICAgICBub25lO1xyXG4kZm9ybS1mZWVkYmFjay1pY29uLWludmFsaWQ6ICAgICAgICAgICAgbm9uZTtcclxuXHJcbiRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItYWN0aXZlLWJnOiAgICBsaWdodGVuKCRwcmltYXJ5LCAyNSUpO1xyXG5cclxuLy8gRHJvcGRvd25zXHJcblxyXG4kZHJvcGRvd24tYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAjZTFlMWUxO1xyXG5cclxuLy8gTmF2c1xyXG5cclxuJG5hdi10YWJzLWxpbmstYWN0aXZlLWJnOiAgICAgICAgICAgI2ZmZjtcclxuXHJcbi8vIEp1bWJvdHJvblxyXG5cclxuJGp1bWJvdHJvbi1iZzogICAgICAgICAgICAgICAgICAgICAgI2ZjZmNmYztcclxuXHJcbi8vIExpc3QgZ3JvdXBcclxuXHJcbiRsaXN0LWdyb3VwLWJvcmRlci1jb2xvcjogICAgICAgICAgICNlNGVhZWM7XHJcblxyXG4vLyBJbWFnZSB0aHVtYm5haWxzXHJcblxyXG4kdGh1bWJuYWlsLXBhZGRpbmc6ICAgICAgICAgICAgICAgICAuMTI1cmVtO1xyXG5cclxuXHJcbi8vIEJyZWFkY3J1bWJzXHJcblxyXG4kYnJlYWRjcnVtYi1iZzogICAgICAgICAgICAgICAgICAgICAjZmFmYWZhO1xyXG4kYnJlYWRjcnVtYi1kaXZpZGVyLWNvbG9yOiAgICAgICAgICAjYzFjMmMzO1xyXG4kYnJlYWRjcnVtYi1hY3RpdmUtY29sb3I6ICAgICAgICAgICAkYm9keS1jb2xvcjtcclxuIiwiLy8gR3JhZGllbnRzXHJcblxyXG5AbWl4aW4gZ3JhZGllbnQtYmcoJGNvbG9yKSB7XHJcbiAgQGlmICRlbmFibGUtZ3JhZGllbnRzIHtcclxuICAgIGJhY2tncm91bmQ6ICRjb2xvciBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCBtaXgoJGJvZHktYmcsICRjb2xvciwgMTUlKSwgJGNvbG9yKSByZXBlYXQteDtcclxuICB9IEBlbHNlIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcclxuICB9XHJcbn1cclxuXHJcbi8vIEhvcml6b250YWwgZ3JhZGllbnQsIGZyb20gbGVmdCB0byByaWdodFxyXG4vL1xyXG4vLyBDcmVhdGVzIHR3byBjb2xvciBzdG9wcywgc3RhcnQgYW5kIGVuZCwgYnkgc3BlY2lmeWluZyBhIGNvbG9yIGFuZCBwb3NpdGlvbiBmb3IgZWFjaCBjb2xvciBzdG9wLlxyXG5AbWl4aW4gZ3JhZGllbnQteCgkc3RhcnQtY29sb3I6ICRncmF5LTcwMCwgJGVuZC1jb2xvcjogJGdyYXktODAwLCAkc3RhcnQtcGVyY2VudDogMCUsICRlbmQtcGVyY2VudDogMTAwJSkge1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJHN0YXJ0LWNvbG9yICRzdGFydC1wZXJjZW50LCAkZW5kLWNvbG9yICRlbmQtcGVyY2VudCk7XHJcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xyXG59XHJcblxyXG4vLyBWZXJ0aWNhbCBncmFkaWVudCwgZnJvbSB0b3AgdG8gYm90dG9tXHJcbi8vXHJcbi8vIENyZWF0ZXMgdHdvIGNvbG9yIHN0b3BzLCBzdGFydCBhbmQgZW5kLCBieSBzcGVjaWZ5aW5nIGEgY29sb3IgYW5kIHBvc2l0aW9uIGZvciBlYWNoIGNvbG9yIHN0b3AuXHJcbkBtaXhpbiBncmFkaWVudC15KCRzdGFydC1jb2xvcjogJGdyYXktNzAwLCAkZW5kLWNvbG9yOiAkZ3JheS04MDAsICRzdGFydC1wZXJjZW50OiAwJSwgJGVuZC1wZXJjZW50OiAxMDAlKSB7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgJHN0YXJ0LWNvbG9yICRzdGFydC1wZXJjZW50LCAkZW5kLWNvbG9yICRlbmQtcGVyY2VudCk7XHJcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xyXG59XHJcblxyXG5AbWl4aW4gZ3JhZGllbnQtZGlyZWN0aW9uYWwoJHN0YXJ0LWNvbG9yOiAkZ3JheS03MDAsICRlbmQtY29sb3I6ICRncmF5LTgwMCwgJGRlZzogNDVkZWcpIHtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoJGRlZywgJHN0YXJ0LWNvbG9yLCAkZW5kLWNvbG9yKTtcclxuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XHJcbn1cclxuQG1peGluIGdyYWRpZW50LXgtdGhyZWUtY29sb3JzKCRzdGFydC1jb2xvcjogJGJsdWUsICRtaWQtY29sb3I6ICRwdXJwbGUsICRjb2xvci1zdG9wOiA1MCUsICRlbmQtY29sb3I6ICRyZWQpIHtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICRzdGFydC1jb2xvciwgJG1pZC1jb2xvciAkY29sb3Itc3RvcCwgJGVuZC1jb2xvcik7XHJcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxufVxyXG5AbWl4aW4gZ3JhZGllbnQteS10aHJlZS1jb2xvcnMoJHN0YXJ0LWNvbG9yOiAkYmx1ZSwgJG1pZC1jb2xvcjogJHB1cnBsZSwgJGNvbG9yLXN0b3A6IDUwJSwgJGVuZC1jb2xvcjogJHJlZCkge1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgkc3RhcnQtY29sb3IsICRtaWQtY29sb3IgJGNvbG9yLXN0b3AsICRlbmQtY29sb3IpO1xyXG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbn1cclxuQG1peGluIGdyYWRpZW50LXJhZGlhbCgkaW5uZXItY29sb3I6ICRncmF5LTcwMCwgJG91dGVyLWNvbG9yOiAkZ3JheS04MDApIHtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCAkaW5uZXItY29sb3IsICRvdXRlci1jb2xvcik7XHJcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxufVxyXG5AbWl4aW4gZ3JhZGllbnQtc3RyaXBlZCgkY29sb3I6IHJnYmEoJHdoaXRlLCAuMTUpLCAkYW5nbGU6IDQ1ZGVnKSB7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KCRhbmdsZSwgJGNvbG9yIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsICRjb2xvciA1MCUsICRjb2xvciA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xyXG59XHJcbiIsIi8vIEJyZWFrcG9pbnQgdmlld3BvcnQgc2l6ZXMgYW5kIG1lZGlhIHF1ZXJpZXMuXHJcbi8vXHJcbi8vIEJyZWFrcG9pbnRzIGFyZSBkZWZpbmVkIGFzIGEgbWFwIG9mIChuYW1lOiBtaW5pbXVtIHdpZHRoKSwgb3JkZXIgZnJvbSBzbWFsbCB0byBsYXJnZTpcclxuLy9cclxuLy8gICAgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KVxyXG4vL1xyXG4vLyBUaGUgbWFwIGRlZmluZWQgaW4gdGhlIGAkZ3JpZC1icmVha3BvaW50c2AgZ2xvYmFsIHZhcmlhYmxlIGlzIHVzZWQgYXMgdGhlIGAkYnJlYWtwb2ludHNgIGFyZ3VtZW50IGJ5IGRlZmF1bHQuXHJcblxyXG4vLyBOYW1lIG9mIHRoZSBuZXh0IGJyZWFrcG9pbnQsIG9yIG51bGwgZm9yIHRoZSBsYXN0IGJyZWFrcG9pbnQuXHJcbi8vXHJcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSlcclxuLy8gICAgbWRcclxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxyXG4vLyAgICBtZFxyXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20sICRicmVha3BvaW50LW5hbWVzOiAoeHMgc20gbWQgbGcgeGwpKVxyXG4vLyAgICBtZFxyXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1uZXh0KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludC1uYW1lczogbWFwLWtleXMoJGJyZWFrcG9pbnRzKSkge1xyXG4gICRuOiBpbmRleCgkYnJlYWtwb2ludC1uYW1lcywgJG5hbWUpO1xyXG4gIEByZXR1cm4gaWYoJG4gIT0gbnVsbCBhbmQgJG4gPCBsZW5ndGgoJGJyZWFrcG9pbnQtbmFtZXMpLCBudGgoJGJyZWFrcG9pbnQtbmFtZXMsICRuICsgMSksIG51bGwpO1xyXG59XHJcblxyXG4vLyBNaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE51bGwgZm9yIHRoZSBzbWFsbGVzdCAoZmlyc3QpIGJyZWFrcG9pbnQuXHJcbi8vXHJcbi8vICAgID4+IGJyZWFrcG9pbnQtbWluKHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxyXG4vLyAgICA1NzZweFxyXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcclxuICAkbWluOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xyXG4gIEByZXR1cm4gaWYoJG1pbiAhPSAwLCAkbWluLCBudWxsKTtcclxufVxyXG5cclxuLy8gTWF4aW11bSBicmVha3BvaW50IHdpZHRoLiBOdWxsIGZvciB0aGUgbGFyZ2VzdCAobGFzdCkgYnJlYWtwb2ludC5cclxuLy8gVGhlIG1heGltdW0gdmFsdWUgaXMgY2FsY3VsYXRlZCBhcyB0aGUgbWluaW11bSBvZiB0aGUgbmV4dCBvbmUgbGVzcyAwLjAycHhcclxuLy8gdG8gd29yayBhcm91bmQgdGhlIGxpbWl0YXRpb25zIG9mIGBtaW4tYCBhbmQgYG1heC1gIHByZWZpeGVzIGFuZCB2aWV3cG9ydHMgd2l0aCBmcmFjdGlvbmFsIHdpZHRocy5cclxuLy8gU2VlIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9tZWRpYXF1ZXJpZXMtNC8jbXEtbWluLW1heFxyXG4vLyBVc2VzIDAuMDJweCByYXRoZXIgdGhhbiAwLjAxcHggdG8gd29yayBhcm91bmQgYSBjdXJyZW50IHJvdW5kaW5nIGJ1ZyBpbiBTYWZhcmkuXHJcbi8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4MjYxXHJcbi8vXHJcbi8vICAgID4+IGJyZWFrcG9pbnQtbWF4KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxyXG4vLyAgICA3NjcuOThweFxyXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcclxuICAkbmV4dDogYnJlYWtwb2ludC1uZXh0KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xyXG4gIEByZXR1cm4gaWYoJG5leHQsIGJyZWFrcG9pbnQtbWluKCRuZXh0LCAkYnJlYWtwb2ludHMpIC0gLjAyLCBudWxsKTtcclxufVxyXG5cclxuLy8gUmV0dXJucyBhIGJsYW5rIHN0cmluZyBpZiBzbWFsbGVzdCBicmVha3BvaW50LCBvdGhlcndpc2UgcmV0dXJucyB0aGUgbmFtZSB3aXRoIGEgZGFzaCBpbiBmcm9udC5cclxuLy8gVXNlZnVsIGZvciBtYWtpbmcgcmVzcG9uc2l2ZSB1dGlsaXRpZXMuXHJcbi8vXHJcbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoeHMsICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXHJcbi8vICAgIFwiXCIgIChSZXR1cm5zIGEgYmxhbmsgc3RyaW5nKVxyXG4vLyAgICA+PiBicmVha3BvaW50LWluZml4KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxyXG4vLyAgICBcIi1zbVwiXHJcbkBmdW5jdGlvbiBicmVha3BvaW50LWluZml4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XHJcbiAgQHJldHVybiBpZihicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKSA9PSBudWxsLCBcIlwiLCBcIi0jeyRuYW1lfVwiKTtcclxufVxyXG5cclxuLy8gTWVkaWEgb2YgYXQgbGVhc3QgdGhlIG1pbmltdW0gYnJlYWtwb2ludCB3aWR0aC4gTm8gcXVlcnkgZm9yIHRoZSBzbWFsbGVzdCBicmVha3BvaW50LlxyXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIHdpZGVyLlxyXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xyXG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpO1xyXG4gIEBpZiAkbWluIHtcclxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2Uge1xyXG4gICAgQGNvbnRlbnQ7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBNZWRpYSBvZiBhdCBtb3N0IHRoZSBtYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgbGFyZ2VzdCBicmVha3BvaW50LlxyXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIG5hcnJvd2VyLlxyXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1kb3duKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XHJcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50cyk7XHJcbiAgQGlmICRtYXgge1xyXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRtYXgpIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAY29udGVudDtcclxuICB9XHJcbn1cclxuXHJcbi8vIE1lZGlhIHRoYXQgc3BhbnMgbXVsdGlwbGUgYnJlYWtwb2ludCB3aWR0aHMuXHJcbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSBiZXR3ZWVuIHRoZSBtaW4gYW5kIG1heCBicmVha3BvaW50c1xyXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1iZXR3ZWVuKCRsb3dlciwgJHVwcGVyLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XHJcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJGxvd2VyLCAkYnJlYWtwb2ludHMpO1xyXG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCR1cHBlciwgJGJyZWFrcG9pbnRzKTtcclxuXHJcbiAgQGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcclxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSBhbmQgKG1heC13aWR0aDogJG1heCkge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9IEBlbHNlIGlmICRtYXggPT0gbnVsbCB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRsb3dlciwgJGJyZWFrcG9pbnRzKSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgJG1pbiA9PSBudWxsIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkdXBwZXIsICRicmVha3BvaW50cykge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vIE1lZGlhIGJldHdlZW4gdGhlIGJyZWFrcG9pbnQncyBtaW5pbXVtIGFuZCBtYXhpbXVtIHdpZHRocy5cclxuLy8gTm8gbWluaW11bSBmb3IgdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQsIGFuZCBubyBtYXhpbXVtIGZvciB0aGUgbGFyZ2VzdCBvbmUuXHJcbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSBvbmx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50LCBub3Qgdmlld3BvcnRzIGFueSB3aWRlciBvciBuYXJyb3dlci5cclxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtb25seSgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xyXG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpO1xyXG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xyXG5cclxuICBAaWYgJG1pbiAhPSBudWxsIGFuZCAkbWF4ICE9IG51bGwge1xyXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50cykge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9IEBlbHNlIGlmICRtaW4gPT0gbnVsbCB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJG5hbWUsICRicmVha3BvaW50cykge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19 */\";","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: false,\r\n tinymce: {\r\n apiKey: '2om3inc9sako1dp33splmq5i11vov7fauxfr0khuszavvvpk',\r\n },\r\n};\r\n\r\n/*\r\n * For easier debugging in development mode, you can import the following file\r\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\r\n *\r\n * This import should be commented out in production mode because it will have a negative impact\r\n * on performance if an error is thrown.\r\n */\r\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\r\n","export const environmentLoader = new Promise((resolve, reject) => {\r\n const xmlhttp = new XMLHttpRequest(),\r\n method = 'GET',\r\n url = './assets/environments/environment.json';\r\n xmlhttp.open(method, url, true);\r\n xmlhttp.onload = () => {\r\n if (xmlhttp.status === 200) {\r\n resolve(xmlhttp.responseText);\r\n } \r\n };\r\n xmlhttp.send();\r\n});\r\n","/*!\r\n *\r\n * Angle - Bootstrap Admin Template\r\n *\r\n * Version: 4.6\r\n * Author: @themicon_co\r\n * Website: http://themicon.co\r\n * License: https://wrapbootstrap.com/help/licenses\r\n *\r\n */\r\n\r\nimport './vendor.ts';\r\nimport { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n//import * as environment from 'src/assets/environments/environment.local.json';\r\nimport { environmentLoader as environmentLoaderPromise } from './environments/environmentLoader';\r\nenvironmentLoaderPromise.then(response => {\r\n const env = JSON.parse(response);\r\n if (env.production) { \r\n enableProdMode();\r\n }\r\n environment['settings'] = { ...env };\r\n function getBaseUrl() {\r\n return document.getElementsByTagName('base')[0].href;\r\n}\r\n\r\nconst providers = [{ provide: 'BASE_URL', useFactory: getBaseUrl, deps: [] }];\r\n\r\nlet p = platformBrowserDynamic(providers).bootstrapModule(AppModule);\r\np.then(() => { (window).appBootstrap && (window).appBootstrap(); });\r\n});\r\n\r\n\r\n\r\n// .catch(err => console.error(err));\r\n","/*!\r\n * modernizr v3.3.1\r\n * Build http://modernizr.com/download?-bgpositionshorthand-bgpositionxy-bgrepeatspace_bgrepeatround-bgsizecover-borderradius-cssanimations-csscalc-csstransforms-csstransforms3d-csstransitions-flexboxtweener-fontface-inlinesvg-localstorage-multiplebgs-preserve3d-sessionstorage-smil-svg-svgasimg-svgclippaths-svgfilters-svgforeignobject-websqldatabase-setclasses-dontmin\r\n *\r\n * Copyright (c)\r\n * Faruk Ates\r\n * Paul Irish\r\n * Alex Sexton\r\n * Ryan Seddon\r\n * Patrick Kettner\r\n * Stu Cox\r\n * Richard Herrera\r\n\r\n * MIT License\r\n */\r\n\r\n/*\r\n * Modernizr tests which native CSS3 and HTML5 features are available in the\r\n * current UA and makes the results available to you in two ways: as properties on\r\n * a global `Modernizr` object, and as classes on the `` element. This\r\n * information allows you to progressively enhance your pages with a granular level\r\n * of control over the experience.\r\n*/\r\n\r\n;(function(window, document, undefined){\r\n var tests = [];\r\n \r\n\r\n /**\r\n *\r\n * ModernizrProto is the constructor for Modernizr\r\n *\r\n * @class\r\n * @access public\r\n */\r\n\r\n var ModernizrProto = {\r\n // The current version, dummy\r\n _version: '3.3.1',\r\n\r\n // Any settings that don't work as separate modules\r\n // can go in here as configuration.\r\n _config: {\r\n 'classPrefix': '',\r\n 'enableClasses': true,\r\n 'enableJSClass': true,\r\n 'usePrefixes': true\r\n },\r\n\r\n // Queue of tests\r\n _q: [],\r\n\r\n // Stub these for people who are listening\r\n on: function(test, cb) {\r\n // I don't really think people should do this, but we can\r\n // safe guard it a bit.\r\n // -- NOTE:: this gets WAY overridden in src/addTest for actual async tests.\r\n // This is in case people listen to synchronous tests. I would leave it out,\r\n // but the code to *disallow* sync tests in the real version of this\r\n // function is actually larger than this.\r\n var self = this;\r\n setTimeout(function() {\r\n cb(self[test]);\r\n }, 0);\r\n },\r\n\r\n addTest: function(name, fn, options) {\r\n tests.push({name: name, fn: fn, options: options});\r\n },\r\n\r\n addAsyncTest: function(fn) {\r\n tests.push({name: null, fn: fn});\r\n }\r\n };\r\n\r\n \r\n\r\n // Fake some of Object.create so we can force non test results to be non \"own\" properties.\r\n var Modernizr = function() {};\r\n Modernizr.prototype = ModernizrProto;\r\n\r\n // Leak modernizr globally when you `require` it rather than force it here.\r\n // Overwrite name so constructor name is nicer :D\r\n Modernizr = new Modernizr();\r\n\r\n \r\n\r\n var classes = [];\r\n \r\n\r\n /**\r\n * is returns a boolean if the typeof an obj is exactly type.\r\n *\r\n * @access private\r\n * @function is\r\n * @param {*} obj - A thing we want to check the type of\r\n * @param {string} type - A string to compare the typeof against\r\n * @returns {boolean}\r\n */\r\n\r\n function is(obj, type) {\r\n return typeof obj === type;\r\n }\r\n ;\r\n\r\n /**\r\n * Run through all tests and detect their support in the current UA.\r\n *\r\n * @access private\r\n */\r\n\r\n function testRunner() {\r\n var featureNames;\r\n var feature;\r\n var aliasIdx;\r\n var result;\r\n var nameIdx;\r\n var featureName;\r\n var featureNameSplit;\r\n\r\n for (var featureIdx in tests) {\r\n if (tests.hasOwnProperty(featureIdx)) {\r\n featureNames = [];\r\n feature = tests[featureIdx];\r\n // run the test, throw the return value into the Modernizr,\r\n // then based on that boolean, define an appropriate className\r\n // and push it into an array of classes we'll join later.\r\n //\r\n // If there is no name, it's an 'async' test that is run,\r\n // but not directly added to the object. That should\r\n // be done with a post-run addTest call.\r\n if (feature.name) {\r\n featureNames.push(feature.name.toLowerCase());\r\n\r\n if (feature.options && feature.options.aliases && feature.options.aliases.length) {\r\n // Add all the aliases into the names list\r\n for (aliasIdx = 0; aliasIdx < feature.options.aliases.length; aliasIdx++) {\r\n featureNames.push(feature.options.aliases[aliasIdx].toLowerCase());\r\n }\r\n }\r\n }\r\n\r\n // Run the test, or use the raw value if it's not a function\r\n result = is(feature.fn, 'function') ? feature.fn() : feature.fn;\r\n\r\n\r\n // Set each of the names on the Modernizr object\r\n for (nameIdx = 0; nameIdx < featureNames.length; nameIdx++) {\r\n featureName = featureNames[nameIdx];\r\n // Support dot properties as sub tests. We don't do checking to make sure\r\n // that the implied parent tests have been added. You must call them in\r\n // order (either in the test, or make the parent test a dependency).\r\n //\r\n // Cap it to TWO to make the logic simple and because who needs that kind of subtesting\r\n // hashtag famous last words\r\n featureNameSplit = featureName.split('.');\r\n\r\n if (featureNameSplit.length === 1) {\r\n Modernizr[featureNameSplit[0]] = result;\r\n } else {\r\n // cast to a Boolean, if not one already\r\n /* jshint -W053 */\r\n if (Modernizr[featureNameSplit[0]] && !(Modernizr[featureNameSplit[0]] instanceof Boolean)) {\r\n Modernizr[featureNameSplit[0]] = new Boolean(Modernizr[featureNameSplit[0]]);\r\n }\r\n\r\n Modernizr[featureNameSplit[0]][featureNameSplit[1]] = result;\r\n }\r\n\r\n classes.push((result ? '' : 'no-') + featureNameSplit.join('-'));\r\n }\r\n }\r\n }\r\n }\r\n ;\r\n\r\n /**\r\n * docElement is a convenience wrapper to grab the root element of the document\r\n *\r\n * @access private\r\n * @returns {HTMLElement|SVGElement} The root element of the document\r\n */\r\n\r\n var docElement = document.documentElement;\r\n \r\n\r\n /**\r\n * A convenience helper to check if the document we are running in is an SVG document\r\n *\r\n * @access private\r\n * @returns {boolean}\r\n */\r\n\r\n var isSVG = docElement.nodeName.toLowerCase() === 'svg';\r\n \r\n\r\n /**\r\n * setClasses takes an array of class names and adds them to the root element\r\n *\r\n * @access private\r\n * @function setClasses\r\n * @param {string[]} classes - Array of class names\r\n */\r\n\r\n // Pass in an and array of class names, e.g.:\r\n // ['no-webp', 'borderradius', ...]\r\n function setClasses(classes) {\r\n var className = docElement.className;\r\n var classPrefix = Modernizr._config.classPrefix || '';\r\n\r\n if (isSVG) {\r\n className = className.baseVal;\r\n }\r\n\r\n // Change `no-js` to `js` (independently of the `enableClasses` option)\r\n // Handle classPrefix on this too\r\n if (Modernizr._config.enableJSClass) {\r\n var reJS = new RegExp('(^|\\\\s)' + classPrefix + 'no-js(\\\\s|$)');\r\n className = className.replace(reJS, '$1' + classPrefix + 'js$2');\r\n }\r\n\r\n if (Modernizr._config.enableClasses) {\r\n // Add the new classes\r\n className += ' ' + classPrefix + classes.join(' ' + classPrefix);\r\n isSVG ? docElement.className.baseVal = className : docElement.className = className;\r\n }\r\n\r\n }\r\n\r\n ;\r\n\r\n /**\r\n * createElement is a convenience wrapper around document.createElement. Since we\r\n * use createElement all over the place, this allows for (slightly) smaller code\r\n * as well as abstracting away issues with creating elements in contexts other than\r\n * HTML documents (e.g. SVG documents).\r\n *\r\n * @access private\r\n * @function createElement\r\n * @returns {HTMLElement|SVGElement} An HTML or SVG element\r\n */\r\n\r\n function createElement() {\r\n if (typeof document.createElement !== 'function') {\r\n // This is the case in IE7, where the type of createElement is \"object\".\r\n // For this reason, we cannot call apply() as Object is not a Function.\r\n return document.createElement(arguments[0]);\r\n } else if (isSVG) {\r\n return document.createElementNS.call(document, 'http://www.w3.org/2000/svg', arguments[0]);\r\n } else {\r\n return document.createElement.apply(document, arguments);\r\n }\r\n }\r\n\r\n ;\r\n/*!\r\n{\r\n \"name\": \"Background Position Shorthand\",\r\n \"property\": \"bgpositionshorthand\",\r\n \"tags\": [\"css\"],\r\n \"builderAliases\": [\"css_backgroundposition_shorthand\"],\r\n \"notes\": [{\r\n \"name\": \"MDN Docs\",\r\n \"href\": \"https://developer.mozilla.org/en/CSS/background-position\"\r\n }, {\r\n \"name\": \"W3 Spec\",\r\n \"href\": \"https://www.w3.org/TR/css3-background/#background-position\"\r\n }, {\r\n \"name\": \"Demo\",\r\n \"href\": \"https://jsfiddle.net/Blink/bBXvt/\"\r\n }]\r\n}\r\n!*/\r\n/* DOC\r\nDetects if you can use the shorthand method to define multiple parts of an\r\nelement's background-position simultaniously.\r\n\r\neg `background-position: right 10px bottom 10px`\r\n*/\r\n\r\n Modernizr.addTest('bgpositionshorthand', function() {\r\n var elem = createElement('a');\r\n var eStyle = elem.style;\r\n var val = 'right 10px bottom 10px';\r\n eStyle.cssText = 'background-position: ' + val + ';';\r\n return (eStyle.backgroundPosition === val);\r\n });\r\n\r\n\r\n /**\r\n * If the browsers follow the spec, then they would expose vendor-specific style as:\r\n * elem.style.WebkitBorderRadius\r\n * instead of something like the following, which would be technically incorrect:\r\n * elem.style.webkitBorderRadius\r\n\r\n * Webkit ghosts their properties in lowercase but Opera & Moz do not.\r\n * Microsoft uses a lowercase `ms` instead of the correct `Ms` in IE8+\r\n * erik.eae.net/archives/2008/03/10/21.48.10/\r\n\r\n * More here: github.com/Modernizr/Modernizr/issues/issue/21\r\n *\r\n * @access private\r\n * @returns {string} The string representing the vendor-specific style properties\r\n */\r\n\r\n var omPrefixes = 'Moz O ms Webkit';\r\n \r\n\r\n var cssomPrefixes = (ModernizrProto._config.usePrefixes ? omPrefixes.split(' ') : []);\r\n ModernizrProto._cssomPrefixes = cssomPrefixes;\r\n \r\n\r\n\r\n /**\r\n * contains checks to see if a string contains another string\r\n *\r\n * @access private\r\n * @function contains\r\n * @param {string} str - The string we want to check for substrings\r\n * @param {string} substr - The substring we want to search the first string for\r\n * @returns {boolean}\r\n */\r\n\r\n function contains(str, substr) {\r\n return !!~('' + str).indexOf(substr);\r\n }\r\n\r\n ;\r\n\r\n /**\r\n * Create our \"modernizr\" element that we do most feature tests on.\r\n *\r\n * @access private\r\n */\r\n\r\n var modElem = {\r\n elem: createElement('modernizr')\r\n };\r\n\r\n // Clean up this element\r\n Modernizr._q.push(function() {\r\n delete modElem.elem;\r\n });\r\n\r\n \r\n\r\n var mStyle = {\r\n style: modElem.elem.style\r\n };\r\n\r\n // kill ref for gc, must happen before mod.elem is removed, so we unshift on to\r\n // the front of the queue.\r\n Modernizr._q.unshift(function() {\r\n delete mStyle.style;\r\n });\r\n\r\n \r\n\r\n /**\r\n * getBody returns the body of a document, or an element that can stand in for\r\n * the body if a real body does not exist\r\n *\r\n * @access private\r\n * @function getBody\r\n * @returns {HTMLElement|SVGElement} Returns the real body of a document, or an\r\n * artificially created element that stands in for the body\r\n */\r\n\r\n function getBody() {\r\n // After page load injecting a fake body doesn't work so check if body exists\r\n var body = document.body;\r\n\r\n if (!body) {\r\n // Can't use the real body create a fake one.\r\n body = createElement(isSVG ? 'svg' : 'body');\r\n body.fake = true;\r\n }\r\n\r\n return body;\r\n }\r\n\r\n ;\r\n\r\n /**\r\n * injectElementWithStyles injects an element with style element and some CSS rules\r\n *\r\n * @access private\r\n * @function injectElementWithStyles\r\n * @param {string} rule - String representing a css rule\r\n * @param {function} callback - A function that is used to test the injected element\r\n * @param {number} [nodes] - An integer representing the number of additional nodes you want injected\r\n * @param {string[]} [testnames] - An array of strings that are used as ids for the additional nodes\r\n * @returns {boolean}\r\n */\r\n\r\n function injectElementWithStyles(rule, callback, nodes, testnames) {\r\n var mod = 'modernizr';\r\n var style;\r\n var ret;\r\n var node;\r\n var docOverflow;\r\n var div = createElement('div');\r\n var body = getBody();\r\n\r\n if (parseInt(nodes, 10)) {\r\n // In order not to give false positives we create a node for each test\r\n // This also allows the method to scale for unspecified uses\r\n while (nodes--) {\r\n node = createElement('div');\r\n node.id = testnames ? testnames[nodes] : mod + (nodes + 1);\r\n div.appendChild(node);\r\n }\r\n }\r\n\r\n style = createElement('style');\r\n style.type = 'text/css';\r\n style.id = 's' + mod;\r\n\r\n // IE6 will false positive on some tests due to the style element inside the test div somehow interfering offsetHeight, so insert it into body or fakebody.\r\n // Opera will act all quirky when injecting elements in documentElement when page is served as xml, needs fakebody too. #270\r\n (!body.fake ? div : body).appendChild(style);\r\n body.appendChild(div);\r\n\r\n if (style.styleSheet) {\r\n style.styleSheet.cssText = rule;\r\n } else {\r\n style.appendChild(document.createTextNode(rule));\r\n }\r\n div.id = mod;\r\n\r\n if (body.fake) {\r\n //avoid crashing IE8, if background image is used\r\n body.style.background = '';\r\n //Safari 5.13/5.1.4 OSX stops loading if ::-webkit-scrollbar is used and scrollbars are visible\r\n body.style.overflow = 'hidden';\r\n docOverflow = docElement.style.overflow;\r\n docElement.style.overflow = 'hidden';\r\n docElement.appendChild(body);\r\n }\r\n\r\n ret = callback(div, rule);\r\n // If this is done after page load we don't want to remove the body so check if body exists\r\n if (body.fake) {\r\n body.parentNode.removeChild(body);\r\n docElement.style.overflow = docOverflow;\r\n // Trigger layout so kinetic scrolling isn't disabled in iOS6+\r\n docElement.offsetHeight;\r\n } else {\r\n div.parentNode.removeChild(div);\r\n }\r\n\r\n return !!ret;\r\n\r\n }\r\n\r\n ;\r\n\r\n /**\r\n * domToCSS takes a camelCase string and converts it to kebab-case\r\n * e.g. boxSizing -> box-sizing\r\n *\r\n * @access private\r\n * @function domToCSS\r\n * @param {string} name - String name of camelCase prop we want to convert\r\n * @returns {string} The kebab-case version of the supplied name\r\n */\r\n\r\n function domToCSS(name) {\r\n return name.replace(/([A-Z])/g, function(str, m1) {\r\n return '-' + m1.toLowerCase();\r\n }).replace(/^ms-/, '-ms-');\r\n }\r\n ;\r\n\r\n /**\r\n * nativeTestProps allows for us to use native feature detection functionality if available.\r\n * some prefixed form, or false, in the case of an unsupported rule\r\n *\r\n * @access private\r\n * @function nativeTestProps\r\n * @param {array} props - An array of property names\r\n * @param {string} value - A string representing the value we want to check via @supports\r\n * @returns {boolean|undefined} A boolean when @supports exists, undefined otherwise\r\n */\r\n\r\n // Accepts a list of property names and a single value\r\n // Returns `undefined` if native detection not available\r\n function nativeTestProps(props, value) {\r\n var i = props.length;\r\n // Start with the JS API: http://www.w3.org/TR/css3-conditional/#the-css-interface\r\n if ('CSS' in window && 'supports' in window.CSS) {\r\n // Try every prefixed variant of the property\r\n while (i--) {\r\n if (window.CSS.supports(domToCSS(props[i]), value)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n // Otherwise fall back to at-rule (for Opera 12.x)\r\n else if ('CSSSupportsRule' in window) {\r\n // Build a condition string for every prefixed variant\r\n var conditionText = [];\r\n while (i--) {\r\n conditionText.push('(' + domToCSS(props[i]) + ':' + value + ')');\r\n }\r\n conditionText = conditionText.join(' or ');\r\n return injectElementWithStyles('@supports (' + conditionText + ') { #modernizr { position: absolute; } }', function(node) {\r\n return getComputedStyle(node, null).position == 'absolute';\r\n });\r\n }\r\n return undefined;\r\n }\r\n ;\r\n\r\n /**\r\n * cssToDOM takes a kebab-case string and converts it to camelCase\r\n * e.g. box-sizing -> boxSizing\r\n *\r\n * @access private\r\n * @function cssToDOM\r\n * @param {string} name - String name of kebab-case prop we want to convert\r\n * @returns {string} The camelCase version of the supplied name\r\n */\r\n\r\n function cssToDOM(name) {\r\n return name.replace(/([a-z])-([a-z])/g, function(str, m1, m2) {\r\n return m1 + m2.toUpperCase();\r\n }).replace(/^-/, '');\r\n }\r\n ;\r\n\r\n // testProps is a generic CSS / DOM property test.\r\n\r\n // In testing support for a given CSS property, it's legit to test:\r\n // `elem.style[styleName] !== undefined`\r\n // If the property is supported it will return an empty string,\r\n // if unsupported it will return undefined.\r\n\r\n // We'll take advantage of this quick test and skip setting a style\r\n // on our modernizr element, but instead just testing undefined vs\r\n // empty string.\r\n\r\n // Property names can be provided in either camelCase or kebab-case.\r\n\r\n function testProps(props, prefixed, value, skipValueTest) {\r\n skipValueTest = is(skipValueTest, 'undefined') ? false : skipValueTest;\r\n\r\n // Try native detect first\r\n if (!is(value, 'undefined')) {\r\n var result = nativeTestProps(props, value);\r\n if (!is(result, 'undefined')) {\r\n return result;\r\n }\r\n }\r\n\r\n // Otherwise do it properly\r\n var afterInit, i, propsLength, prop, before;\r\n\r\n // If we don't have a style element, that means we're running async or after\r\n // the core tests, so we'll need to create our own elements to use\r\n\r\n // inside of an SVG element, in certain browsers, the `style` element is only\r\n // defined for valid tags. Therefore, if `modernizr` does not have one, we\r\n // fall back to a less used element and hope for the best.\r\n var elems = ['modernizr', 'tspan'];\r\n while (!mStyle.style) {\r\n afterInit = true;\r\n mStyle.modElem = createElement(elems.shift());\r\n mStyle.style = mStyle.modElem.style;\r\n }\r\n\r\n // Delete the objects if we created them.\r\n function cleanElems() {\r\n if (afterInit) {\r\n delete mStyle.style;\r\n delete mStyle.modElem;\r\n }\r\n }\r\n\r\n propsLength = props.length;\r\n for (i = 0; i < propsLength; i++) {\r\n prop = props[i];\r\n before = mStyle.style[prop];\r\n\r\n if (contains(prop, '-')) {\r\n prop = cssToDOM(prop);\r\n }\r\n\r\n if (mStyle.style[prop] !== undefined) {\r\n\r\n // If value to test has been passed in, do a set-and-check test.\r\n // 0 (integer) is a valid property value, so check that `value` isn't\r\n // undefined, rather than just checking it's truthy.\r\n if (!skipValueTest && !is(value, 'undefined')) {\r\n\r\n // Needs a try catch block because of old IE. This is slow, but will\r\n // be avoided in most cases because `skipValueTest` will be used.\r\n try {\r\n mStyle.style[prop] = value;\r\n } catch (e) {}\r\n\r\n // If the property value has changed, we assume the value used is\r\n // supported. If `value` is empty string, it'll fail here (because\r\n // it hasn't changed), which matches how browsers have implemented\r\n // CSS.supports()\r\n if (mStyle.style[prop] != before) {\r\n cleanElems();\r\n return prefixed == 'pfx' ? prop : true;\r\n }\r\n }\r\n // Otherwise just return true, or the property name if this is a\r\n // `prefixed()` call\r\n else {\r\n cleanElems();\r\n return prefixed == 'pfx' ? prop : true;\r\n }\r\n }\r\n }\r\n cleanElems();\r\n return false;\r\n }\r\n\r\n ;\r\n\r\n /**\r\n * List of JavaScript DOM values used for tests\r\n *\r\n * @memberof Modernizr\r\n * @name Modernizr._domPrefixes\r\n * @optionName Modernizr._domPrefixes\r\n * @optionProp domPrefixes\r\n * @access public\r\n * @example\r\n *\r\n * Modernizr._domPrefixes is exactly the same as [_prefixes](#modernizr-_prefixes), but rather\r\n * than kebab-case properties, all properties are their Capitalized variant\r\n *\r\n * ```js\r\n * Modernizr._domPrefixes === [ \"Moz\", \"O\", \"ms\", \"Webkit\" ];\r\n * ```\r\n */\r\n\r\n var domPrefixes = (ModernizrProto._config.usePrefixes ? omPrefixes.toLowerCase().split(' ') : []);\r\n ModernizrProto._domPrefixes = domPrefixes;\r\n \r\n\r\n /**\r\n * fnBind is a super small [bind](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind) polyfill.\r\n *\r\n * @access private\r\n * @function fnBind\r\n * @param {function} fn - a function you want to change `this` reference to\r\n * @param {object} that - the `this` you want to call the function with\r\n * @returns {function} The wrapped version of the supplied function\r\n */\r\n\r\n function fnBind(fn, that) {\r\n return function() {\r\n return fn.apply(that, arguments);\r\n };\r\n }\r\n\r\n ;\r\n\r\n /**\r\n * testDOMProps is a generic DOM property test; if a browser supports\r\n * a certain property, it won't return undefined for it.\r\n *\r\n * @access private\r\n * @function testDOMProps\r\n * @param {array.} props - An array of properties to test for\r\n * @param {object} obj - An object or Element you want to use to test the parameters again\r\n * @param {boolean|object} elem - An Element to bind the property lookup again. Use `false` to prevent the check\r\n */\r\n function testDOMProps(props, obj, elem) {\r\n var item;\r\n\r\n for (var i in props) {\r\n if (props[i] in obj) {\r\n\r\n // return the property name as a string\r\n if (elem === false) {\r\n return props[i];\r\n }\r\n\r\n item = obj[props[i]];\r\n\r\n // let's bind a function\r\n if (is(item, 'function')) {\r\n // bind to obj unless overriden\r\n return fnBind(item, elem || obj);\r\n }\r\n\r\n // return the unbound function or obj or value\r\n return item;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n ;\r\n\r\n /**\r\n * testPropsAll tests a list of DOM properties we want to check against.\r\n * We specify literally ALL possible (known and/or likely) properties on\r\n * the element including the non-vendor prefixed one, for forward-\r\n * compatibility.\r\n *\r\n * @access private\r\n * @function testPropsAll\r\n * @param {string} prop - A string of the property to test for\r\n * @param {string|object} [prefixed] - An object to check the prefixed properties on. Use a string to skip\r\n * @param {HTMLElement|SVGElement} [elem] - An element used to test the property and value against\r\n * @param {string} [value] - A string of a css value\r\n * @param {boolean} [skipValueTest] - An boolean representing if you want to test if value sticks when set\r\n */\r\n function testPropsAll(prop, prefixed, elem, value, skipValueTest) {\r\n\r\n var ucProp = prop.charAt(0).toUpperCase() + prop.slice(1),\r\n props = (prop + ' ' + cssomPrefixes.join(ucProp + ' ') + ucProp).split(' ');\r\n\r\n // did they call .prefixed('boxSizing') or are we just testing a prop?\r\n if (is(prefixed, 'string') || is(prefixed, 'undefined')) {\r\n return testProps(props, prefixed, value, skipValueTest);\r\n\r\n // otherwise, they called .prefixed('requestAnimationFrame', window[, elem])\r\n } else {\r\n props = (prop + ' ' + (domPrefixes).join(ucProp + ' ') + ucProp).split(' ');\r\n return testDOMProps(props, prefixed, elem);\r\n }\r\n }\r\n\r\n // Modernizr.testAllProps() investigates whether a given style property,\r\n // or any of its vendor-prefixed variants, is recognized\r\n //\r\n // Note that the property names must be provided in the camelCase variant.\r\n // Modernizr.testAllProps('boxSizing')\r\n ModernizrProto.testAllProps = testPropsAll;\r\n\r\n \r\n\r\n /**\r\n * testAllProps determines whether a given CSS property is supported in the browser\r\n *\r\n * @memberof Modernizr\r\n * @name Modernizr.testAllProps\r\n * @optionName Modernizr.testAllProps()\r\n * @optionProp testAllProps\r\n * @access public\r\n * @function testAllProps\r\n * @param {string} prop - String naming the property to test (either camelCase or kebab-case)\r\n * @param {string} [value] - String of the value to test\r\n * @param {boolean} [skipValueTest=false] - Whether to skip testing that the value is supported when using non-native detection\r\n * @example\r\n *\r\n * testAllProps determines whether a given CSS property, in some prefixed form,\r\n * is supported by the browser.\r\n *\r\n * ```js\r\n * testAllProps('boxSizing') // true\r\n * ```\r\n *\r\n * It can optionally be given a CSS value in string form to test if a property\r\n * value is valid\r\n *\r\n * ```js\r\n * testAllProps('display', 'block') // true\r\n * testAllProps('display', 'penguin') // false\r\n * ```\r\n *\r\n * A boolean can be passed as a third parameter to skip the value check when\r\n * native detection (@supports) isn't available.\r\n *\r\n * ```js\r\n * testAllProps('shapeOutside', 'content-box', true);\r\n * ```\r\n */\r\n\r\n function testAllProps(prop, value, skipValueTest) {\r\n return testPropsAll(prop, undefined, undefined, value, skipValueTest);\r\n }\r\n ModernizrProto.testAllProps = testAllProps;\r\n \r\n/*!\r\n{\r\n \"name\": \"Background Position XY\",\r\n \"property\": \"bgpositionxy\",\r\n \"tags\": [\"css\"],\r\n \"builderAliases\": [\"css_backgroundposition_xy\"],\r\n \"authors\": [\"Allan Lei\", \"Brandom Aaron\"],\r\n \"notes\": [{\r\n \"name\": \"Demo\",\r\n \"href\": \"https://jsfiddle.net/allanlei/R8AYS/\"\r\n }, {\r\n \"name\": \"Adapted From\",\r\n \"href\": \"https://github.com/brandonaaron/jquery-cssHooks/blob/master/bgpos.js\"\r\n }]\r\n}\r\n!*/\r\n/* DOC\r\nDetects the ability to control an element's background position using css\r\n*/\r\n\r\n Modernizr.addTest('bgpositionxy', function() {\r\n return testAllProps('backgroundPositionX', '3px', true) && testAllProps('backgroundPositionY', '5px', true);\r\n });\r\n\r\n/*!\r\n{\r\n \"name\": \"Background Repeat\",\r\n \"property\": [\"bgrepeatspace\", \"bgrepeatround\"],\r\n \"tags\": [\"css\"],\r\n \"builderAliases\": [\"css_backgroundrepeat\"],\r\n \"authors\": [\"Ryan Seddon\"],\r\n \"notes\": [{\r\n \"name\": \"MDN Docs\",\r\n \"href\": \"https://developer.mozilla.org/en-US/docs/Web/CSS/background-repeat\"\r\n }, {\r\n \"name\": \"Test Page\",\r\n \"href\": \"https://jsbin.com/uzesun/\"\r\n }, {\r\n \"name\": \"Demo\",\r\n \"href\": \"https://jsfiddle.net/ryanseddon/yMLTQ/6/\"\r\n }]\r\n}\r\n!*/\r\n/* DOC\r\nDetects the ability to use round and space as properties for background-repeat\r\n*/\r\n\r\n // Must value-test these\r\n Modernizr.addTest('bgrepeatround', testAllProps('backgroundRepeat', 'round'));\r\n Modernizr.addTest('bgrepeatspace', testAllProps('backgroundRepeat', 'space'));\r\n\r\n/*!\r\n{\r\n \"name\": \"Background Size Cover\",\r\n \"property\": \"bgsizecover\",\r\n \"tags\": [\"css\"],\r\n \"builderAliases\": [\"css_backgroundsizecover\"],\r\n \"notes\": [{\r\n \"name\" : \"MDN Docs\",\r\n \"href\": \"https://developer.mozilla.org/en/CSS/background-size\"\r\n }]\r\n}\r\n!*/\r\n\r\n // Must test value, as this specifically tests the `cover` value\r\n Modernizr.addTest('bgsizecover', testAllProps('backgroundSize', 'cover'));\r\n\r\n/*!\r\n{\r\n \"name\": \"Border Radius\",\r\n \"property\": \"borderradius\",\r\n \"caniuse\": \"border-radius\",\r\n \"polyfills\": [\"css3pie\"],\r\n \"tags\": [\"css\"],\r\n \"notes\": [{\r\n \"name\": \"Comprehensive Compat Chart\",\r\n \"href\": \"https://muddledramblings.com/table-of-css3-border-radius-compliance\"\r\n }]\r\n}\r\n!*/\r\n\r\n Modernizr.addTest('borderradius', testAllProps('borderRadius', '0px', true));\r\n\r\n/*!\r\n{\r\n \"name\": \"CSS Animations\",\r\n \"property\": \"cssanimations\",\r\n \"caniuse\": \"css-animation\",\r\n \"polyfills\": [\"transformie\", \"csssandpaper\"],\r\n \"tags\": [\"css\"],\r\n \"warnings\": [\"Android < 4 will pass this test, but can only animate a single property at a time\"],\r\n \"notes\": [{\r\n \"name\" : \"Article: 'Dispelling the Android CSS animation myths'\",\r\n \"href\": \"https://goo.gl/OGw5Gm\"\r\n }]\r\n}\r\n!*/\r\n/* DOC\r\nDetects whether or not elements can be animated using CSS\r\n*/\r\n\r\n Modernizr.addTest('cssanimations', testAllProps('animationName', 'a', true));\r\n\r\n\r\n /**\r\n * List of property values to set for css tests. See ticket #21\r\n * http://git.io/vUGl4\r\n *\r\n * @memberof Modernizr\r\n * @name Modernizr._prefixes\r\n * @optionName Modernizr._prefixes\r\n * @optionProp prefixes\r\n * @access public\r\n * @example\r\n *\r\n * Modernizr._prefixes is the internal list of prefixes that we test against\r\n * inside of things like [prefixed](#modernizr-prefixed) and [prefixedCSS](#-code-modernizr-prefixedcss). It is simply\r\n * an array of kebab-case vendor prefixes you can use within your code.\r\n *\r\n * Some common use cases include\r\n *\r\n * Generating all possible prefixed version of a CSS property\r\n * ```js\r\n * var rule = Modernizr._prefixes.join('transform: rotate(20deg); ');\r\n *\r\n * rule === 'transform: rotate(20deg); webkit-transform: rotate(20deg); moz-transform: rotate(20deg); o-transform: rotate(20deg); ms-transform: rotate(20deg);'\r\n * ```\r\n *\r\n * Generating all possible prefixed version of a CSS value\r\n * ```js\r\n * rule = 'display:' + Modernizr._prefixes.join('flex; display:') + 'flex';\r\n *\r\n * rule === 'display:flex; display:-webkit-flex; display:-moz-flex; display:-o-flex; display:-ms-flex; display:flex'\r\n * ```\r\n */\r\n\r\n var prefixes = (ModernizrProto._config.usePrefixes ? ' -webkit- -moz- -o- -ms- '.split(' ') : []);\r\n\r\n // expose these for the plugin API. Look in the source for how to join() them against your input\r\n ModernizrProto._prefixes = prefixes;\r\n\r\n \r\n/*!\r\n{\r\n \"name\": \"CSS Calc\",\r\n \"property\": \"csscalc\",\r\n \"caniuse\": \"calc\",\r\n \"tags\": [\"css\"],\r\n \"builderAliases\": [\"css_calc\"],\r\n \"authors\": [\"@calvein\"]\r\n}\r\n!*/\r\n/* DOC\r\nMethod of allowing calculated values for length units. For example:\r\n\r\n```css\r\n//lem {\r\n width: calc(100% - 3em);\r\n}\r\n```\r\n*/\r\n\r\n Modernizr.addTest('csscalc', function() {\r\n var prop = 'width:';\r\n var value = 'calc(10px);';\r\n var el = createElement('a');\r\n\r\n el.style.cssText = prop + prefixes.join(value + prop);\r\n\r\n return !!el.style.length;\r\n });\r\n\r\n/*!\r\n{\r\n \"name\": \"CSS Transforms\",\r\n \"property\": \"csstransforms\",\r\n \"caniuse\": \"transforms2d\",\r\n \"tags\": [\"css\"]\r\n}\r\n!*/\r\n\r\n Modernizr.addTest('csstransforms', function() {\r\n // Android < 3.0 is buggy, so we sniff and blacklist\r\n // http://git.io/hHzL7w\r\n return navigator.userAgent.indexOf('Android 2.') === -1 &&\r\n testAllProps('transform', 'scale(1)', true);\r\n });\r\n\r\n\r\n /**\r\n * testStyles injects an element with style element and some CSS rules\r\n *\r\n * @memberof Modernizr\r\n * @name Modernizr.testStyles\r\n * @optionName Modernizr.testStyles()\r\n * @optionProp testStyles\r\n * @access public\r\n * @function testStyles\r\n * @param {string} rule - String representing a css rule\r\n * @param {function} callback - A function that is used to test the injected element\r\n * @param {number} [nodes] - An integer representing the number of additional nodes you want injected\r\n * @param {string[]} [testnames] - An array of strings that are used as ids for the additional nodes\r\n * @returns {boolean}\r\n * @example\r\n *\r\n * `Modernizr.testStyles` takes a CSS rule and injects it onto the current page\r\n * along with (possibly multiple) DOM elements. This lets you check for features\r\n * that can not be detected by simply checking the [IDL](https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Interface_development_guide/IDL_interface_rules).\r\n *\r\n * ```js\r\n * Modernizr.testStyles('#modernizr { width: 9px; color: papayawhip; }', function(elem, rule) {\r\n * // elem is the first DOM node in the page (by default #modernizr)\r\n * // rule is the first argument you supplied - the CSS rule in string form\r\n *\r\n * addTest('widthworks', elem.style.width === '9px')\r\n * });\r\n * ```\r\n *\r\n * If your test requires multiple nodes, you can include a third argument\r\n * indicating how many additional div elements to include on the page. The\r\n * additional nodes are injected as children of the `elem` that is returned as\r\n * the first argument to the callback.\r\n *\r\n * ```js\r\n * Modernizr.testStyles('#modernizr {width: 1px}; #modernizr2 {width: 2px}', function(elem) {\r\n * document.getElementById('modernizr').style.width === '1px'; // true\r\n * document.getElementById('modernizr2').style.width === '2px'; // true\r\n * elem.firstChild === document.getElementById('modernizr2'); // true\r\n * }, 1);\r\n * ```\r\n *\r\n * By default, all of the additional elements have an ID of `modernizr[n]`, where\r\n * `n` is its index (e.g. the first additional, second overall is `#modernizr2`,\r\n * the second additional is `#modernizr3`, etc.).\r\n * If you want to have more meaningful IDs for your function, you can provide\r\n * them as the fourth argument, as an array of strings\r\n *\r\n * ```js\r\n * Modernizr.testStyles('#foo {width: 10px}; #bar {height: 20px}', function(elem) {\r\n * elem.firstChild === document.getElementById('foo'); // true\r\n * elem.lastChild === document.getElementById('bar'); // true\r\n * }, 2, ['foo', 'bar']);\r\n * ```\r\n *\r\n */\r\n\r\n var testStyles = ModernizrProto.testStyles = injectElementWithStyles;\r\n \r\n/*!\r\n{\r\n \"name\": \"CSS Supports\",\r\n \"property\": \"supports\",\r\n \"caniuse\": \"css-featurequeries\",\r\n \"tags\": [\"css\"],\r\n \"builderAliases\": [\"css_supports\"],\r\n \"notes\": [{\r\n \"name\": \"W3 Spec\",\r\n \"href\": \"http://dev.w3.org/csswg/css3-conditional/#at-supports\"\r\n },{\r\n \"name\": \"Related Github Issue\",\r\n \"href\": \"github.com/Modernizr/Modernizr/issues/648\"\r\n },{\r\n \"name\": \"W3 Info\",\r\n \"href\": \"http://dev.w3.org/csswg/css3-conditional/#the-csssupportsrule-interface\"\r\n }]\r\n}\r\n!*/\r\n\r\n var newSyntax = 'CSS' in window && 'supports' in window.CSS;\r\n var oldSyntax = 'supportsCSS' in window;\r\n Modernizr.addTest('supports', newSyntax || oldSyntax);\r\n\r\n/*!\r\n{\r\n \"name\": \"CSS Transforms 3D\",\r\n \"property\": \"csstransforms3d\",\r\n \"caniuse\": \"transforms3d\",\r\n \"tags\": [\"css\"],\r\n \"warnings\": [\r\n \"Chrome may occassionally fail this test on some systems; more info: https://code.google.com/p/chromium/issues/detail?id=129004\"\r\n ]\r\n}\r\n!*/\r\n\r\n Modernizr.addTest('csstransforms3d', function() {\r\n var ret = !!testAllProps('perspective', '1px', true);\r\n var usePrefix = Modernizr._config.usePrefixes;\r\n\r\n // Webkit's 3D transforms are passed off to the browser's own graphics renderer.\r\n // It works fine in Safari on Leopard and Snow Leopard, but not in Chrome in\r\n // some conditions. As a result, Webkit typically recognizes the syntax but\r\n // will sometimes throw a false positive, thus we must do a more thorough check:\r\n if (ret && (!usePrefix || 'webkitPerspective' in docElement.style)) {\r\n var mq;\r\n var defaultStyle = '#modernizr{width:0;height:0}';\r\n // Use CSS Conditional Rules if available\r\n if (Modernizr.supports) {\r\n mq = '@supports (perspective: 1px)';\r\n } else {\r\n // Otherwise, Webkit allows this media query to succeed only if the feature is enabled.\r\n // `@media (transform-3d),(-webkit-transform-3d){ ... }`\r\n mq = '@media (transform-3d)';\r\n if (usePrefix) {\r\n mq += ',(-webkit-transform-3d)';\r\n }\r\n }\r\n\r\n mq += '{#modernizr{width:7px;height:18px;margin:0;padding:0;border:0}}';\r\n\r\n testStyles(defaultStyle + mq, function(elem) {\r\n ret = elem.offsetWidth === 7 && elem.offsetHeight === 18;\r\n });\r\n }\r\n\r\n return ret;\r\n });\r\n\r\n/*!\r\n{\r\n \"name\": \"CSS Transform Style preserve-3d\",\r\n \"property\": \"preserve3d\",\r\n \"authors\": [\"edmellum\"],\r\n \"tags\": [\"css\"],\r\n \"notes\": [{\r\n \"name\": \"MDN Docs\",\r\n \"href\": \"https://developer.mozilla.org/en-US/docs/Web/CSS/transform-style\"\r\n },{\r\n \"name\": \"Related Github Issue\",\r\n \"href\": \"https://github.com/Modernizr/Modernizr/issues/762\"\r\n }]\r\n}\r\n!*/\r\n/* DOC\r\nDetects support for `transform-style: preserve-3d`, for getting a proper 3D perspective on elements.\r\n*/\r\n\r\n Modernizr.addTest('preserve3d', testAllProps('transformStyle', 'preserve-3d'));\r\n\r\n/*!\r\n{\r\n \"name\": \"CSS Transitions\",\r\n \"property\": \"csstransitions\",\r\n \"caniuse\": \"css-transitions\",\r\n \"tags\": [\"css\"]\r\n}\r\n!*/\r\n\r\n Modernizr.addTest('csstransitions', testAllProps('transition', 'all', true));\r\n\r\n/*!\r\n{\r\n \"name\": \"Flexbox (tweener)\",\r\n \"property\": \"flexboxtweener\",\r\n \"tags\": [\"css\"],\r\n \"polyfills\": [\"flexie\"],\r\n \"notes\": [{\r\n \"name\": \"The _inbetween_ flexbox\",\r\n \"href\": \"https://www.w3.org/TR/2011/WD-css3-flexbox-20111129/\"\r\n }],\r\n \"warnings\": [\"This represents an old syntax, not the latest standard syntax.\"]\r\n}\r\n!*/\r\n\r\n Modernizr.addTest('flexboxtweener', testAllProps('flexAlign', 'end', true));\r\n\r\n/*!\r\n{\r\n \"name\": \"@font-face\",\r\n \"property\": \"fontface\",\r\n \"authors\": [\"Diego Perini\", \"Mat Marquis\"],\r\n \"tags\": [\"css\"],\r\n \"knownBugs\": [\r\n \"False Positive: WebOS https://github.com/Modernizr/Modernizr/issues/342\",\r\n \"False Postive: WP7 https://github.com/Modernizr/Modernizr/issues/538\"\r\n ],\r\n \"notes\": [{\r\n \"name\": \"@font-face detection routine by Diego Perini\",\r\n \"href\": \"http://javascript.nwbox.com/CSSSupport/\"\r\n },{\r\n \"name\": \"Filament Group @font-face compatibility research\",\r\n \"href\": \"https://docs.google.com/presentation/d/1n4NyG4uPRjAA8zn_pSQ_Ket0RhcWC6QlZ6LMjKeECo0/edit#slide=id.p\"\r\n },{\r\n \"name\": \"Filament Grunticon/@font-face device testing results\",\r\n \"href\": \"https://docs.google.com/spreadsheet/ccc?key=0Ag5_yGvxpINRdHFYeUJPNnZMWUZKR2ItMEpRTXZPdUE#gid=0\"\r\n },{\r\n \"name\": \"CSS fonts on Android\",\r\n \"href\": \"https://stackoverflow.com/questions/3200069/css-fonts-on-android\"\r\n },{\r\n \"name\": \"@font-face and Android\",\r\n \"href\": \"http://archivist.incutio.com/viewlist/css-discuss/115960\"\r\n }]\r\n}\r\n!*/\r\n\r\n var blacklist = (function() {\r\n var ua = navigator.userAgent;\r\n var wkvers = ua.match(/applewebkit\\/([0-9]+)/gi) && parseFloat(RegExp.$1);\r\n var webos = ua.match(/w(eb)?osbrowser/gi);\r\n var wppre8 = ua.match(/windows phone/gi) && ua.match(/iemobile\\/([0-9])+/gi) && parseFloat(RegExp.$1) >= 9;\r\n var oldandroid = wkvers < 533 && ua.match(/android/gi);\r\n return webos || oldandroid || wppre8;\r\n }());\r\n if (blacklist) {\r\n Modernizr.addTest('fontface', false);\r\n } else {\r\n testStyles('@font-face {font-family:\"font\";src:url(\"https://\")}', function(node, rule) {\r\n var style = document.getElementById('smodernizr');\r\n var sheet = style.sheet || style.styleSheet;\r\n var cssText = sheet ? (sheet.cssRules && sheet.cssRules[0] ? sheet.cssRules[0].cssText : sheet.cssText || '') : '';\r\n var bool = /src/i.test(cssText) && cssText.indexOf(rule.split(' ')[0]) === 0;\r\n Modernizr.addTest('fontface', bool);\r\n });\r\n }\r\n;\r\n/*!\r\n{\r\n \"name\": \"SVG\",\r\n \"property\": \"svg\",\r\n \"caniuse\": \"svg\",\r\n \"tags\": [\"svg\"],\r\n \"authors\": [\"Erik Dahlstrom\"],\r\n \"polyfills\": [\r\n \"svgweb\",\r\n \"raphael\",\r\n \"amplesdk\",\r\n \"canvg\",\r\n \"svg-boilerplate\",\r\n \"sie\",\r\n \"dojogfx\",\r\n \"fabricjs\"\r\n ]\r\n}\r\n!*/\r\n/* DOC\r\nDetects support for SVG in `` or `` elements.\r\n*/\r\n\r\n Modernizr.addTest('svg', !!document.createElementNS && !!document.createElementNS('http://www.w3.org/2000/svg', 'svg').createSVGRect);\r\n\r\n\r\n /**\r\n * hasOwnProp is a shim for hasOwnProperty that is needed for Safari 2.0 support\r\n *\r\n * @author kangax\r\n * @access private\r\n * @function hasOwnProp\r\n * @param {object} object - The object to check for a property\r\n * @param {string} property - The property to check for\r\n * @returns {boolean}\r\n */\r\n\r\n // hasOwnProperty shim by kangax needed for Safari 2.0 support\r\n var hasOwnProp;\r\n\r\n (function() {\r\n var _hasOwnProperty = ({}).hasOwnProperty;\r\n /* istanbul ignore else */\r\n /* we have no way of testing IE 5.5 or safari 2,\r\n * so just assume the else gets hit */\r\n if (!is(_hasOwnProperty, 'undefined') && !is(_hasOwnProperty.call, 'undefined')) {\r\n hasOwnProp = function(object, property) {\r\n return _hasOwnProperty.call(object, property);\r\n };\r\n }\r\n else {\r\n hasOwnProp = function(object, property) { /* yes, this can give false positives/negatives, but most of the time we don't care about those */\r\n return ((property in object) && is(object.constructor.prototype[property], 'undefined'));\r\n };\r\n }\r\n })();\r\n\r\n \r\n\r\n\r\n // _l tracks listeners for async tests, as well as tests that execute after the initial run\r\n ModernizrProto._l = {};\r\n\r\n /**\r\n * Modernizr.on is a way to listen for the completion of async tests. Being\r\n * asynchronous, they may not finish before your scripts run. As a result you\r\n * will get a possibly false negative `undefined` value.\r\n *\r\n * @memberof Modernizr\r\n * @name Modernizr.on\r\n * @access public\r\n * @function on\r\n * @param {string} feature - String name of the feature detect\r\n * @param {function} cb - Callback function returning a Boolean - true if feature is supported, false if not\r\n * @example\r\n *\r\n * ```js\r\n * Modernizr.on('flash', function( result ) {\r\n * if (result) {\r\n * // the browser has flash\r\n * } else {\r\n * // the browser does not have flash\r\n * }\r\n * });\r\n * ```\r\n */\r\n\r\n ModernizrProto.on = function(feature, cb) {\r\n // Create the list of listeners if it doesn't exist\r\n if (!this._l[feature]) {\r\n this._l[feature] = [];\r\n }\r\n\r\n // Push this test on to the listener list\r\n this._l[feature].push(cb);\r\n\r\n // If it's already been resolved, trigger it on next tick\r\n if (Modernizr.hasOwnProperty(feature)) {\r\n // Next Tick\r\n setTimeout(function() {\r\n Modernizr._trigger(feature, Modernizr[feature]);\r\n }, 0);\r\n }\r\n };\r\n\r\n /**\r\n * _trigger is the private function used to signal test completion and run any\r\n * callbacks registered through [Modernizr.on](#modernizr-on)\r\n *\r\n * @memberof Modernizr\r\n * @name Modernizr._trigger\r\n * @access private\r\n * @function _trigger\r\n * @param {string} feature - string name of the feature detect\r\n * @param {function|boolean} [res] - A feature detection function, or the boolean =\r\n * result of a feature detection function\r\n */\r\n\r\n ModernizrProto._trigger = function(feature, res) {\r\n if (!this._l[feature]) {\r\n return;\r\n }\r\n\r\n var cbs = this._l[feature];\r\n\r\n // Force async\r\n setTimeout(function() {\r\n var i, cb;\r\n for (i = 0; i < cbs.length; i++) {\r\n cb = cbs[i];\r\n cb(res);\r\n }\r\n }, 0);\r\n\r\n // Don't trigger these again\r\n delete this._l[feature];\r\n };\r\n\r\n /**\r\n * addTest allows you to define your own feature detects that are not currently\r\n * included in Modernizr (under the covers it's the exact same code Modernizr\r\n * uses for its own [feature detections](https://github.com/Modernizr/Modernizr/tree/master/feature-detects)). Just like the offical detects, the result\r\n * will be added onto the Modernizr object, as well as an appropriate className set on\r\n * the html element when configured to do so\r\n *\r\n * @memberof Modernizr\r\n * @name Modernizr.addTest\r\n * @optionName Modernizr.addTest()\r\n * @optionProp addTest\r\n * @access public\r\n * @function addTest\r\n * @param {string|object} feature - The string name of the feature detect, or an\r\n * object of feature detect names and test\r\n * @param {function|boolean} test - Function returning true if feature is supported,\r\n * false if not. Otherwise a boolean representing the results of a feature detection\r\n * @example\r\n *\r\n * The most common way of creating your own feature detects is by calling\r\n * `Modernizr.addTest` with a string (preferably just lowercase, without any\r\n * punctuation), and a function you want executed that will return a boolean result\r\n *\r\n * ```js\r\n * Modernizr.addTest('itsTuesday', function() {\r\n * var d = new Date();\r\n * return d.getDay() === 2;\r\n * });\r\n * ```\r\n *\r\n * When the above is run, it will set Modernizr.itstuesday to `true` when it is tuesday,\r\n * and to `false` every other day of the week. One thing to notice is that the names of\r\n * feature detect functions are always lowercased when added to the Modernizr object. That\r\n * means that `Modernizr.itsTuesday` will not exist, but `Modernizr.itstuesday` will.\r\n *\r\n *\r\n * Since we only look at the returned value from any feature detection function,\r\n * you do not need to actually use a function. For simple detections, just passing\r\n * in a statement that will return a boolean value works just fine.\r\n *\r\n * ```js\r\n * Modernizr.addTest('hasJquery', 'jQuery' in window);\r\n * ```\r\n *\r\n * Just like before, when the above runs `Modernizr.hasjquery` will be true if\r\n * jQuery has been included on the page. Not using a function saves a small amount\r\n * of overhead for the browser, as well as making your code much more readable.\r\n *\r\n * Finally, you also have the ability to pass in an object of feature names and\r\n * their tests. This is handy if you want to add multiple detections in one go.\r\n * The keys should always be a string, and the value can be either a boolean or\r\n * function that returns a boolean.\r\n *\r\n * ```js\r\n * var detects = {\r\n * 'hasjquery': 'jQuery' in window,\r\n * 'itstuesday': function() {\r\n * var d = new Date();\r\n * return d.getDay() === 2;\r\n * }\r\n * }\r\n *\r\n * Modernizr.addTest(detects);\r\n * ```\r\n *\r\n * There is really no difference between the first methods and this one, it is\r\n * just a convenience to let you write more readable code.\r\n */\r\n\r\n function addTest(feature, test) {\r\n\r\n if (typeof feature == 'object') {\r\n for (var key in feature) {\r\n if (hasOwnProp(feature, key)) {\r\n addTest(key, feature[ key ]);\r\n }\r\n }\r\n } else {\r\n\r\n feature = feature.toLowerCase();\r\n var featureNameSplit = feature.split('.');\r\n var last = Modernizr[featureNameSplit[0]];\r\n\r\n // Again, we don't check for parent test existence. Get that right, though.\r\n if (featureNameSplit.length == 2) {\r\n last = last[featureNameSplit[1]];\r\n }\r\n\r\n if (typeof last != 'undefined') {\r\n // we're going to quit if you're trying to overwrite an existing test\r\n // if we were to allow it, we'd do this:\r\n // var re = new RegExp(\"\\\\b(no-)?\" + feature + \"\\\\b\");\r\n // docElement.className = docElement.className.replace( re, '' );\r\n // but, no rly, stuff 'em.\r\n return Modernizr;\r\n }\r\n\r\n test = typeof test == 'function' ? test() : test;\r\n\r\n // Set the value (this is the magic, right here).\r\n if (featureNameSplit.length == 1) {\r\n Modernizr[featureNameSplit[0]] = test;\r\n } else {\r\n // cast to a Boolean, if not one already\r\n /* jshint -W053 */\r\n if (Modernizr[featureNameSplit[0]] && !(Modernizr[featureNameSplit[0]] instanceof Boolean)) {\r\n Modernizr[featureNameSplit[0]] = new Boolean(Modernizr[featureNameSplit[0]]);\r\n }\r\n\r\n Modernizr[featureNameSplit[0]][featureNameSplit[1]] = test;\r\n }\r\n\r\n // Set a single class (either `feature` or `no-feature`)\r\n /* jshint -W041 */\r\n setClasses([(!!test && test != false ? '' : 'no-') + featureNameSplit.join('-')]);\r\n /* jshint +W041 */\r\n\r\n // Trigger the event\r\n Modernizr._trigger(feature, test);\r\n }\r\n\r\n return Modernizr; // allow chaining.\r\n }\r\n\r\n // After all the tests are run, add self to the Modernizr prototype\r\n Modernizr._q.push(function() {\r\n ModernizrProto.addTest = addTest;\r\n });\r\n\r\n \r\n\r\n/*!\r\n{\r\n \"name\": \"SVG as an tag source\",\r\n \"property\": \"svgasimg\",\r\n \"caniuse\" : \"svg-img\",\r\n \"tags\": [\"svg\"],\r\n \"authors\": [\"Chris Coyier\"],\r\n \"notes\": [{\r\n \"name\": \"HTML5 Spec\",\r\n \"href\": \"http://www.w3.org/TR/html5/embedded-content-0.html#the-img-element\"\r\n }]\r\n}\r\n!*/\r\n\r\n\r\n // Original Async test by Stu Cox\r\n // https://gist.github.com/chriscoyier/8774501\r\n\r\n // Now a Sync test based on good results here\r\n // http://codepen.io/chriscoyier/pen/bADFx\r\n\r\n // Note http://www.w3.org/TR/SVG11/feature#Image is *supposed* to represent\r\n // support for the `` tag in SVG, not an SVG file linked from an ``\r\n // tag in HTML – but it’s a heuristic which works\r\n Modernizr.addTest('svgasimg', document.implementation.hasFeature('http://www.w3.org/TR/SVG11/feature#Image', '1.1'));\r\n\r\n\r\n /**\r\n * Object.prototype.toString can be used with every object and allows you to\r\n * get its class easily. Abstracting it off of an object prevents situations\r\n * where the toString property has been overridden\r\n *\r\n * @access private\r\n * @function toStringFn\r\n * @returns {function} An abstracted toString function\r\n */\r\n\r\n var toStringFn = ({}).toString;\r\n \r\n/*!\r\n{\r\n \"name\": \"SVG clip paths\",\r\n \"property\": \"svgclippaths\",\r\n \"tags\": [\"svg\"],\r\n \"notes\": [{\r\n \"name\": \"Demo\",\r\n \"href\": \"http://srufaculty.sru.edu/david.dailey/svg/newstuff/clipPath4.svg\"\r\n }]\r\n}\r\n!*/\r\n/* DOC\r\nDetects support for clip paths in SVG (only, not on HTML content).\r\n\r\nSee [this discussion](https://github.com/Modernizr/Modernizr/issues/213) regarding applying SVG clip paths to HTML content.\r\n*/\r\n\r\n Modernizr.addTest('svgclippaths', function() {\r\n return !!document.createElementNS &&\r\n /SVGClipPath/.test(toStringFn.call(document.createElementNS('http://www.w3.org/2000/svg', 'clipPath')));\r\n });\r\n\r\n/*!\r\n{\r\n \"name\": \"SVG filters\",\r\n \"property\": \"svgfilters\",\r\n \"caniuse\": \"svg-filters\",\r\n \"tags\": [\"svg\"],\r\n \"builderAliases\": [\"svg_filters\"],\r\n \"authors\": [\"Erik Dahlstrom\"],\r\n \"notes\": [{\r\n \"name\": \"W3C Spec\",\r\n \"href\": \"https://www.w3.org/TR/SVG11/filters.html\"\r\n }]\r\n}\r\n!*/\r\n\r\n // Should fail in Safari: https://stackoverflow.com/questions/9739955/feature-detecting-support-for-svg-filters.\r\n Modernizr.addTest('svgfilters', function() {\r\n var result = false;\r\n try {\r\n result = 'SVGFEColorMatrixElement' in window &&\r\n SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_SATURATE == 2;\r\n }\r\n catch (e) {}\r\n return result;\r\n });\r\n\r\n/*!\r\n{\r\n \"name\": \"SVG foreignObject\",\r\n \"property\": \"svgforeignobject\",\r\n \"tags\": [\"svg\"],\r\n \"notes\": [{\r\n \"name\": \"W3C Spec\",\r\n \"href\": \"https://www.w3.org/TR/SVG11/extend.html\"\r\n }]\r\n}\r\n!*/\r\n/* DOC\r\nDetects support for foreignObject tag in SVG.\r\n*/\r\n\r\n Modernizr.addTest('svgforeignobject', function() {\r\n return !!document.createElementNS &&\r\n /SVGForeignObject/.test(toStringFn.call(document.createElementNS('http://www.w3.org/2000/svg', 'foreignObject')));\r\n });\r\n\r\n/*!\r\n{\r\n \"name\": \"Inline SVG\",\r\n \"property\": \"inlinesvg\",\r\n \"caniuse\": \"svg-html5\",\r\n \"tags\": [\"svg\"],\r\n \"notes\": [{\r\n \"name\": \"Test page\",\r\n \"href\": \"https://paulirish.com/demo/inline-svg\"\r\n }, {\r\n \"name\": \"Test page and results\",\r\n \"href\": \"https://codepen.io/eltonmesquita/full/GgXbvo/\"\r\n }],\r\n \"polyfills\": [\"inline-svg-polyfill\"],\r\n \"knownBugs\": [\"False negative on some Chromia browsers.\"]\r\n}\r\n!*/\r\n/* DOC\r\nDetects support for inline SVG in HTML (not within XHTML).\r\n*/\r\n\r\n Modernizr.addTest('inlinesvg', function() {\r\n var div = createElement('div');\r\n div.innerHTML = '';\r\n return (typeof SVGRect != 'undefined' && div.firstChild && div.firstChild.namespaceURI) == 'http://www.w3.org/2000/svg';\r\n });\r\n\r\n/*!\r\n{\r\n \"name\": \"SVG SMIL animation\",\r\n \"property\": \"smil\",\r\n \"caniuse\": \"svg-smil\",\r\n \"tags\": [\"svg\"],\r\n \"notes\": [{\r\n \"name\": \"W3C Synchronised Multimedia spec\",\r\n \"href\": \"https://www.w3.org/AudioVideo/\"\r\n }]\r\n}\r\n!*/\r\n\r\n // SVG SMIL animation\r\n Modernizr.addTest('smil', function() {\r\n return !!document.createElementNS &&\r\n /SVGAnimate/.test(toStringFn.call(document.createElementNS('http://www.w3.org/2000/svg', 'animate')));\r\n });\r\n\r\n/*!\r\n{\r\n \"name\": \"Local Storage\",\r\n \"property\": \"localstorage\",\r\n \"caniuse\": \"namevalue-storage\",\r\n \"tags\": [\"storage\"],\r\n \"knownBugs\": [],\r\n \"notes\": [],\r\n \"warnings\": [],\r\n \"polyfills\": [\r\n \"joshuabell-polyfill\",\r\n \"cupcake\",\r\n \"storagepolyfill\",\r\n \"amplifyjs\",\r\n \"yui-cacheoffline\"\r\n ]\r\n}\r\n!*/\r\n\r\n // In FF4, if disabled, window.localStorage should === null.\r\n\r\n // Normally, we could not test that directly and need to do a\r\n // `('localStorage' in window) && ` test first because otherwise Firefox will\r\n // throw bugzil.la/365772 if cookies are disabled\r\n\r\n // Also in iOS5 Private Browsing mode, attempting to use localStorage.setItem\r\n // will throw the exception:\r\n // QUOTA_EXCEEDED_ERROR DOM Exception 22.\r\n // Peculiarly, getItem and removeItem calls do not throw.\r\n\r\n // Because we are forced to try/catch this, we'll go aggressive.\r\n\r\n // Just FWIW: IE8 Compat mode supports these features completely:\r\n // www.quirksmode.org/dom/html5.html\r\n // But IE8 doesn't support either with local files\r\n\r\n Modernizr.addTest('localstorage', function() {\r\n var mod = 'modernizr';\r\n try {\r\n localStorage.setItem(mod, mod);\r\n localStorage.removeItem(mod);\r\n return true;\r\n } catch (e) {\r\n return false;\r\n }\r\n });\r\n\r\n/*!\r\n{\r\n \"name\": \"Session Storage\",\r\n \"property\": \"sessionstorage\",\r\n \"tags\": [\"storage\"],\r\n \"polyfills\": [\"joshuabell-polyfill\", \"cupcake\", \"sessionstorage\"]\r\n}\r\n!*/\r\n\r\n // Because we are forced to try/catch this, we'll go aggressive.\r\n\r\n // Just FWIW: IE8 Compat mode supports these features completely:\r\n // www.quirksmode.org/dom/html5.html\r\n // But IE8 doesn't support either with local files\r\n Modernizr.addTest('sessionstorage', function() {\r\n var mod = 'modernizr';\r\n try {\r\n sessionStorage.setItem(mod, mod);\r\n sessionStorage.removeItem(mod);\r\n return true;\r\n } catch (e) {\r\n return false;\r\n }\r\n });\r\n\r\n/*!\r\n{\r\n \"name\": \"Web SQL Database\",\r\n \"property\": \"websqldatabase\",\r\n \"caniuse\": \"sql-storage\",\r\n \"tags\": [\"storage\"]\r\n}\r\n!*/\r\n\r\n // Chrome incognito mode used to throw an exception when using openDatabase\r\n // It doesn't anymore.\r\n Modernizr.addTest('websqldatabase', 'openDatabase' in window);\r\n\r\n/*!\r\n{\r\n \"name\": \"CSS Multiple Backgrounds\",\r\n \"caniuse\": \"multibackgrounds\",\r\n \"property\": \"multiplebgs\",\r\n \"tags\": [\"css\"]\r\n}\r\n!*/\r\n\r\n // Setting multiple images AND a color on the background shorthand property\r\n // and then querying the style.background property value for the number of\r\n // occurrences of \"url(\" is a reliable method for detecting ACTUAL support for this!\r\n\r\n Modernizr.addTest('multiplebgs', function() {\r\n var style = createElement('a').style;\r\n style.cssText = 'background:url(https://),url(https://),red url(https://)';\r\n\r\n // If the UA supports multiple backgrounds, there should be three occurrences\r\n // of the string \"url(\" in the return value for elemStyle.background\r\n return (/(url\\s*\\(.*?){3}/).test(style.background);\r\n });\r\n\r\n\r\n // Run each test\r\n testRunner();\r\n\r\n // Remove the \"no-js\" class if it exists\r\n setClasses(classes);\r\n\r\n delete ModernizrProto.addTest;\r\n delete ModernizrProto.addAsyncTest;\r\n\r\n // Run the things that are supposed to run after the tests\r\n for (var i = 0; i < Modernizr._q.length; i++) {\r\n Modernizr._q[i]();\r\n }\r\n\r\n // Leak Modernizr namespace\r\n window.Modernizr = Modernizr;\r\n\r\n\r\n;\r\n\r\n})(window, document);","\r\nimport './modernizr.js'; // 'npm run modernizr' to create this file\r\n","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */"]}