1 line
64 KiB
JavaScript
1 line
64 KiB
JavaScript
"use strict";(self.webpackChunktimetrex=self.webpackChunktimetrex||[]).push([["company-branch-BranchViewController"],{2424:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"BranchViewController\": () => (/* binding */ BranchViewController)\n/* harmony export */ });\n/* provided dependency */ var _ = __webpack_require__(9050);\n/* provided dependency */ var $ = __webpack_require__(9755);\nclass BranchViewController extends BaseViewController {\n\tconstructor( options = {} ) {\n\t\t_.defaults( options, {\n\t\t\tel: '#branch_view_container',\n\n\t\t\tstatus_array: null,\n\t\t\tcountry_array: null,\n\t\t\tprovince_array: null,\n\n\t\t\te_province_array: null,\n\n\t\t\tuser_group_selection_type_id_array: null,\n\t\t\tuser_title_selection_type_id_array: null,\n\t\t\tuser_default_branch_selection_type_id_array: null,\n\t\t\tuser_default_department_selection_type_id_array: null,\n\n\t\t\tuser_group_array: null,\n\n\t\t\tcompany_api: null\n\t\t} );\n\n\t\tsuper( options );\n\t}\n\n\tinit( options ) {\n\t\t//this._super('initialize', options );\n\t\tthis.edit_view_tpl = 'BranchEditView.html';\n\t\tthis.permission_id = 'branch';\n\t\tthis.viewId = 'Branch';\n\t\tthis.script_name = 'BranchView';\n\t\tthis.table_name_key = 'branch';\n\t\tthis.context_menu_name = $.i18n._( 'Branch' );\n\t\tthis.navigation_label = $.i18n._( 'Branch' );\n\t\tthis.api = TTAPI.APIBranch;\n\t\tthis.company_api = TTAPI.APICompany;\n\n\t\tif ( ( Global.getProductEdition() >= 20 ) ) {\n\t\t\tthis.user_group_api = TTAPI.APIUserGroup;\n\t\t}\n\n\t\tthis.render();\n\t\tthis.buildContextMenu();\n\n\t\tthis.initData();\n\t}\n\n\tinitOptions() {\n\t\tvar $this = this;\n\n\t\tlet options = [\n\t\t\t{ option_name: 'status', api: this.api },\n\t\t\t{ option_name: 'country', field_name: 'country', api: this.company_api },\n\t\t];\n\n\t\tif ( ( Global.getProductEdition() >= 20 ) ) {\n\n\t\t\toptions.push(\n\t\t\t\t{ option_name: 'user_group_selection_type_id', api: this.api },\n\t\t\t\t{ option_name: 'user_title_selection_type_id', api: this.api },\n\t\t\t\t{ option_name: 'user_default_branch_selection_type_id', api: this.api },\n\t\t\t\t{ option_name: 'user_default_department_selection_type_id', api: this.api },\n\t\t\t);\n\n\t\t\tthis.user_group_api.getUserGroup( '', false, false, {\n\t\t\t\tonResult: function( res ) {\n\t\t\t\t\tres = res.getResult();\n\t\t\t\t\tres = Global.buildTreeRecord( res );\n\t\t\t\t\t$this.user_group_array = res;\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\tthis.initDropDownOptions( options );\n\t}\n\n\tgetCustomContextMenuModel() {\n\t\tvar context_menu_model = {\n\t\t\texclude: [],\n\t\t\tinclude: [\n\t\t\t\t{\n\t\t\t\t\tlabel: $.i18n._( 'Import' ),\n\t\t\t\t\tid: 'import_icon',\n\t\t\t\t\tmenu_align: 'right',\n\t\t\t\t\taction_group: 'import_export',\n\t\t\t\t\tgroup: 'other',\n\t\t\t\t\tvue_icon: 'tticon tticon-file_download_black_24dp',\n\t\t\t\t\tpermission_result: PermissionManager.checkTopLevelPermission( 'ImportCSVBranch' ),\n\t\t\t\t\tpermission: null,\n\t\t\t\t\tsort_order: 9010\n\t\t\t\t}\n\t\t\t]\n\t\t};\n\n\t\treturn context_menu_model;\n\t}\n\n\tonSetSearchFilterFinished() {\n\t\tvar combo;\n\t\tvar select_value;\n\t\tif ( this.search_panel.getSelectTabIndex() === 0 ) {\n\t\t\tcombo = this.basic_search_field_ui_dic['country'];\n\t\t\tselect_value = combo.getValue();\n\t\t\tthis.setProvince( select_value );\n\t\t} else if ( this.search_panel.getSelectTabIndex() === 1 ) {\n\t\t\tcombo = this.adv_search_field_ui_dic['country'];\n\t\t\tselect_value = combo.getValue();\n\t\t\tthis.setProvince( select_value );\n\t\t}\n\t}\n\n\tonCustomContextClick( id ) {\n\t\tswitch ( id ) {\n\t\t\tcase 'import_icon':\n\t\t\t\tthis.onImportClick();\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tonImportClick() {\n\t\tvar $this = this;\n\t\tIndexViewController.openWizard( 'ImportCSVWizard', 'Branch', function() {\n\t\t\t$this.search();\n\t\t} );\n\t}\n\n\tonBuildAdvUIFinished() {\n\n\t\tthis.adv_search_field_ui_dic['country'].change( $.proxy( function() {\n\t\t\tvar combo = this.adv_search_field_ui_dic['country'];\n\t\t\tvar selectVal = combo.getValue();\n\n\t\t\tthis.setProvince( selectVal );\n\n\t\t\tthis.adv_search_field_ui_dic['province'].setValue( null );\n\n\t\t}, this ) );\n\t}\n\n\tonBuildBasicUIFinished() {\n\t\tthis.basic_search_field_ui_dic['country'].change( $.proxy( function() {\n\t\t\tvar combo = this.basic_search_field_ui_dic['country'];\n\t\t\tvar selectVal = combo.getValue();\n\n\t\t\tthis.setProvince( selectVal );\n\n\t\t\tthis.basic_search_field_ui_dic['province'].setValue( null );\n\n\t\t}, this ) );\n\t}\n\n\tonFormItemChange( target, doNotValidate ) {\n\n\t\tthis.setIsChanged( target );\n\t\tthis.setMassEditingFieldsWhenFormChange( target );\n\t\tvar key = target.getField();\n\n\t\tswitch ( key ) {\n\t\t\tcase 'country':\n\t\t\t\tvar widget = this.edit_view_ui_dic['province'];\n\t\t\t\twidget.setValue( null );\n\t\t\t\tbreak;\n\t\t}\n\n\t\tthis.current_edit_record[key] = target.getValue();\n\n\t\tif ( key === 'country' ) {\n\t\t\tthis.onCountryChange();\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ( Global.getProductEdition() >= 20 ) ) {\n\t\t\tif ( key === 'user_group_selection_type_id' ) {\n\t\t\t\tthis.onEmployeeGroupSelectionTypeChange();\n\t\t\t}\n\t\t\tif ( key === 'user_title_selection_type_id' ) {\n\t\t\t\tthis.onEmployeeTitleSelectionTypeChange();\n\t\t\t}\n\t\t\tif ( key === 'user_default_branch_selection_type_id' ) {\n\t\t\t\tthis.onEmployeeDefaultBranchSelectionTypeChange();\n\t\t\t}\n\t\t\tif ( key === 'user_default_department_selection_type_id' ) {\n\t\t\t\tthis.onEmployeeDefaultDepartmentSelectionTypeChange();\n\t\t\t}\n\t\t}\n\n\n\t\tif ( !doNotValidate ) {\n\t\t\tthis.validate();\n\t\t}\n\t}\n\n\tonEmployeeGroupSelectionTypeChange() {\n\t\tif ( this.current_edit_record['user_group_selection_type_id'] == 10 ) {\n\t\t\tthis.edit_view_ui_dic['user_group_ids'].setEnabled( false );\n\t\t} else {\n\t\t\tthis.edit_view_ui_dic['user_group_ids'].setEnabled( true );\n\t\t}\n\t}\n\n\tonEmployeeTitleSelectionTypeChange() {\n\t\tif ( this.current_edit_record['user_title_selection_type_id'] == 10 ) {\n\t\t\tthis.edit_view_ui_dic['user_title_ids'].setEnabled( false );\n\t\t} else {\n\t\t\tthis.edit_view_ui_dic['user_title_ids'].setEnabled( true );\n\t\t}\n\t}\n\n\tonEmployeeDefaultBranchSelectionTypeChange() {\n\t\tif ( this.current_edit_record['user_default_branch_selection_type_id'] == 10 ) {\n\t\t\tthis.edit_view_ui_dic['user_default_branch_ids'].setEnabled( false );\n\t\t} else {\n\t\t\tthis.edit_view_ui_dic['user_default_branch_ids'].setEnabled( true );\n\t\t}\n\t}\n\n\tonEmployeeDefaultDepartmentSelectionTypeChange() {\n\t\tif ( this.current_edit_record['user_default_department_selection_type_id'] == 10 ) {\n\t\t\tthis.edit_view_ui_dic['user_default_department_ids'].setEnabled( false );\n\t\t} else {\n\t\t\tthis.edit_view_ui_dic['user_default_department_ids'].setEnabled( true );\n\t\t}\n\t}\n\n\tbuildEditViewUI() {\n\n\t\tsuper.buildEditViewUI();\n\t\tvar $this = this;\n\n\t\tvar tab_model = {\n\t\t\t'tab_branch': { 'label': $.i18n._( 'Branch' ) },\n\t\t\t'tab_employee_criteria': {\n\t\t\t\t'label': $.i18n._( 'Employee Criteria' ),\n\t\t\t\t'init_callback': 'initSubEmployeeCriteriaView',\n\t\t\t\t'html_template': this.getBranchEmployeeCriteriaTabHtml()\n\t\t\t},\n\t\t\t'tab_audit': true,\n\t\t};\n\t\tthis.setTabModel( tab_model );\n\n\t\tvar form_item_input;\n\n\t\tthis.navigation.AComboBox( {\n\t\t\tapi_class: TTAPI.APIBranch,\n\t\t\tid: this.script_name + '_navigation',\n\t\t\tallow_multiple_selection: false,\n\t\t\tlayout_name: 'global_branch',\n\t\t\tnavigation_mode: true,\n\t\t\tshow_search_inputs: true\n\t\t} );\n\n\t\tthis.setNavigation();\n\n\t\t//Tab 0 start\n\n\t\tvar tab_branch = this.edit_view_tab.find( '#tab_branch' );\n\n\t\tvar tab_branch_column1 = tab_branch.find( '.first-column' );\n\n\t\tthis.edit_view_tabs[0] = [];\n\n\t\tthis.edit_view_tabs[0].push( tab_branch_column1 );\n\n\t\t//Status\n\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.COMBO_BOX );\n\t\tform_item_input.TComboBox( { field: 'status_id' } );\n\t\tform_item_input.setSourceData( $this.status_array );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Status' ), form_item_input, tab_branch_column1, '' );\n\n\t\t// Name\n\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT_INPUT );\n\n\t\tform_item_input.TTextInput( { field: 'name', width: '100%' } );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Name' ), form_item_input, tab_branch_column1 );\n\n\t\tform_item_input.parent().width( '45%' );\n\n\t\t// Code\n\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT_INPUT );\n\n\t\tform_item_input.TTextInput( { field: 'manual_id', width: 65 } );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Code' ), form_item_input, tab_branch_column1 );\n\n\t\t// Address1\n\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT_INPUT );\n\n\t\tform_item_input.TTextInput( { field: 'address1', width: '100%' } );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Address (Line 1)' ), form_item_input, tab_branch_column1 );\n\n\t\tform_item_input.parent().width( '45%' );\n\n\t\t// Address2\n\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT_INPUT );\n\n\t\tform_item_input.TTextInput( { field: 'address2', width: '100%' } );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Address (Line 2)' ), form_item_input, tab_branch_column1 );\n\n\t\tform_item_input.parent().width( '45%' );\n\n\t\t// city\n\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT_INPUT );\n\n\t\tform_item_input.TTextInput( { field: 'city', width: 149 } );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'City' ), form_item_input, tab_branch_column1 );\n\n\t\t//Country\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.COMBO_BOX );\n\n\t\tform_item_input.TComboBox( { field: 'country', set_empty: true } );\n\t\tform_item_input.setSourceData( $this.country_array );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Country' ), form_item_input, tab_branch_column1 );\n\n\t\t//Province / State\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.COMBO_BOX );\n\n\t\tform_item_input.TComboBox( { field: 'province' } );\n\t\tform_item_input.setSourceData( [] );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Province/State' ), form_item_input, tab_branch_column1 );\n\n\t\t//City\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT_INPUT );\n\n\t\tform_item_input.TTextInput( { field: 'postal_code', width: 149 } );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Postal/ZIP Code' ), form_item_input, tab_branch_column1 );\n\n\t\t// Phone\n\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT_INPUT );\n\n\t\tform_item_input.TTextInput( { field: 'work_phone', width: 149 } );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Phone' ), form_item_input, tab_branch_column1 );\n\n\t\t// Fax\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TEXT_INPUT );\n\n\t\tform_item_input.TTextInput( { field: 'fax_phone', width: 149 } );\n\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Fax' ), form_item_input, tab_branch_column1 );\n\n\t\t//Allowed GEO Fences\n\t\tif ( Global.getProductEdition() >= 20 ) {\n\t\t\tform_item_input = Global.loadWidgetByName( FormItemType.AWESOME_BOX );\n\t\t\tform_item_input.AComboBox( {\n\t\t\t\tapi_class: TTAPI.APIGEOFence,\n\t\t\t\tallow_multiple_selection: true,\n\t\t\t\tlayout_name: 'global_geo_fence',\n\t\t\t\tshow_search_inputs: true,\n\t\t\t\tset_empty: true,\n\t\t\t\tfield: 'geo_fence_ids'\n\t\t\t} );\n\t\t\tthis.addEditFieldToColumn( $.i18n._( 'Allowed GEO Fences' ), form_item_input, tab_branch_column1 );\n\t\t}\n\n\t\t//Tags\n\t\tform_item_input = Global.loadWidgetByName( FormItemType.TAG_INPUT );\n\n\t\tform_item_input.TTagInput( { field: 'tag', object_type_id: 110 } );\n\t\tthis.addEditFieldToColumn( $.i18n._( 'Tags' ), form_item_input, tab_branch_column1, '', null, null, true );\n\n\t\tif ( ( Global.getProductEdition() >= 20 ) ) {\n\t\t\t//Tab 1 start employee criteria\n\t\t\tvar tab_employee_criteria = this.edit_view_tab.find( '#tab_employee_criteria' );\n\t\t\tvar tab_employee_criteria_column1 = tab_employee_criteria.find( '.first-column' );\n\t\t\tthis.edit_view_tabs[1] = [];\n\t\t\tthis.edit_view_tabs[1].push( tab_employee_criteria_column1 );\n\n\t\t\t//User Groups\n\t\t\tvar v_box = $( '<div class=\\'v-box\\'></div>' );\n\n\t\t\t//Selection Type\n\t\t\tform_item_input = Global.loadWidgetByName( FormItemType.COMBO_BOX );\n\t\t\tform_item_input.TComboBox( { field: 'user_group_selection_type_id' } );\n\t\t\tform_item_input.setSourceData( $this.user_group_selection_type_id_array );\n\n\t\t\tvar form_item = this.putInputToInsideFormItem( form_item_input, $.i18n._( 'Selection Type' ) );\n\n\t\t\tv_box.append( form_item );\n\t\t\tv_box.append( '<div class=\\'clear-both-div\\'></div>' );\n\n\t\t\t//Selection\n\t\t\tvar form_item_input_1 = Global.loadWidgetByName( FormItemType.AWESOME_BOX );\n\n\t\t\tform_item_input_1.AComboBox( {\n\t\t\t\ttree_mode: true,\n\t\t\t\tallow_multiple_selection: true,\n\t\t\t\tlayout_name: 'global_tree_column',\n\t\t\t\tset_empty: true,\n\t\t\t\tfield: 'user_group_ids'\n\t\t\t} );\n\t\t\tform_item_input_1.setSourceData( $this.user_group_array );\n\n\t\t\tform_item = this.putInputToInsideFormItem( form_item_input_1, $.i18n._( 'Selection' ) );\n\n\t\t\tv_box.append( form_item );\n\n\t\t\tthis.addEditFieldToColumn( $.i18n._( 'Employee Groups' ), [form_item_input, form_item_input_1], tab_employee_criteria_column1, '', v_box, false, true );\n\n\t\t\t// User Titles\n\t\t\tv_box = $( '<div class=\\'v-box\\'></div>' );\n\n\t\t\t//Selection Type\n\t\t\tform_item_input = Global.loadWidgetByName( FormItemType.COMBO_BOX );\n\t\t\tform_item_input.TComboBox( { field: 'user_title_selection_type_id', set_empty: false } );\n\t\t\tform_item_input.setSourceData( $this.user_title_selection_type_id_array );\n\n\t\t\tform_item = this.putInputToInsideFormItem( form_item_input, $.i18n._( 'Selection Type' ) );\n\n\t\t\tv_box.append( form_item );\n\t\t\tv_box.append( '<div class=\\'clear-both-div\\'></div>' );\n\n\t\t\t//Selection\n\t\t\tform_item_input_1 = Global.loadWidgetByName( FormItemType.AWESOME_BOX );\n\n\t\t\tform_item_input_1.AComboBox( {\n\t\t\t\tapi_class: TTAPI.UserTitle,\n\t\t\t\tallow_multiple_selection: true,\n\t\t\t\tlayout_name: 'global_user_title',\n\t\t\t\tshow_search_inputs: true,\n\t\t\t\tset_empty: true,\n\t\t\t\tfield: 'user_title_ids'\n\t\t\t} );\n\n\t\t\tform_item = this.putInputToInsideFormItem( form_item_input_1, $.i18n._( 'Selection' ) );\n\n\t\t\tv_box.append( form_item );\n\n\t\t\tthis.addEditFieldToColumn( $.i18n._( 'Employee Titles' ), [form_item_input, form_item_input_1], tab_employee_criteria_column1, '', v_box, false, true );\n\n\t\t\t// User Default Branches\n\t\t\tv_box = $( '<div class=\\'v-box\\'></div>' );\n\n\t\t\t//Selection Type\n\t\t\tform_item_input = Global.loadWidgetByName( FormItemType.COMBO_BOX );\n\t\t\tform_item_input.TComboBox( { field: 'user_default_branch_selection_type_id', set_empty: false } );\n\t\t\tform_item_input.setSourceData( $this.user_default_branch_selection_type_id_array );\n\n\t\t\tform_item = this.putInputToInsideFormItem( form_item_input, $.i18n._( 'Selection Type' ) );\n\n\t\t\tv_box.append( form_item );\n\t\t\tv_box.append( '<div class=\\'clear-both-div\\'></div>' );\n\n\t\t\t//Selection\n\t\t\tform_item_input_1 = Global.loadWidgetByName( FormItemType.AWESOME_BOX );\n\n\t\t\tform_item_input_1.AComboBox( {\n\t\t\t\tapi_class: TTAPI.Branch,\n\t\t\t\tallow_multiple_selection: true,\n\t\t\t\tlayout_name: 'global_user_default_branch',\n\t\t\t\tshow_search_inputs: true,\n\t\t\t\tset_empty: true,\n\t\t\t\tfield: 'user_default_branch_ids'\n\t\t\t} );\n\n\t\t\tform_item = this.putInputToInsideFormItem( form_item_input_1, $.i18n._( 'Selection' ) );\n\n\t\t\tv_box.append( form_item );\n\n\t\t\t// Include Default Branch\n\t\t\tvar form_item_input_2 = Global.loadWidgetByName( FormItemType.CHECKBOX );\n\n\t\t\tform_item_input_2.TCheckbox( { field: 'include_user_default_branch_id' } );\n\n\t\t\tform_item = this.putInputToInsideFormItem( form_item_input_2, $.i18n._( 'Include This Branch' ) );\n\n\t\t\tv_box.append( form_item );\n\n\t\t\tthis.addEditFieldToColumn( $.i18n._( 'Default Branch' ), [form_item_input, form_item_input_1, form_item_input_2], tab_employee_criteria_column1, '', v_box, false, true );\n\n\t\t\t// User Default Department\n\t\t\tv_box = $( '<div class=\\'v-box\\'></div>' );\n\n\t\t\t//Selection Type\n\t\t\tform_item_input = Global.loadWidgetByName( FormItemType.COMBO_BOX );\n\t\t\tform_item_input.TComboBox( { field: 'user_default_department_selection_type_id', set_empty: false } );\n\t\t\tform_item_input.setSourceData( $this.user_default_department_selection_type_id_array );\n\n\t\t\tform_item = this.putInputToInsideFormItem( form_item_input, $.i18n._( 'Selection Type' ) );\n\n\t\t\tv_box.append( form_item );\n\t\t\tv_box.append( '<div class=\\'clear-both-div\\'></div>' );\n\n\t\t\t//Selection\n\t\t\tform_item_input_1 = Global.loadWidgetByName( FormItemType.AWESOME_BOX );\n\n\t\t\tform_item_input_1.AComboBox( {\n\t\t\t\tapi_class: TTAPI.Department,\n\t\t\t\tallow_multiple_selection: true,\n\t\t\t\tlayout_name: 'global_user_default_department',\n\t\t\t\tshow_search_inputs: true,\n\t\t\t\tset_empty: true,\n\t\t\t\tfield: 'user_default_department_ids'\n\t\t\t} );\n\n\t\t\tform_item = this.putInputToInsideFormItem( form_item_input_1, $.i18n._( 'Selection' ) );\n\n\t\t\tv_box.append( form_item );\n\n\t\t\tthis.addEditFieldToColumn( $.i18n._( 'Default Department' ), [form_item_input, form_item_input_1], tab_employee_criteria_column1, '', v_box, false, true );\n\n\t\t\t// Include Employees\n\t\t\tform_item_input = Global.loadWidgetByName( FormItemType.AWESOME_BOX );\n\t\t\tform_item_input.AComboBox( {\n\t\t\t\tapi_class: TTAPI.APIUser,\n\t\t\t\tallow_multiple_selection: true,\n\t\t\t\tlayout_name: 'global_user',\n\t\t\t\tshow_search_inputs: true,\n\t\t\t\tset_empty: true,\n\t\t\t\tfield: 'include_user_ids'\n\t\t\t} );\n\t\t\tthis.addEditFieldToColumn( $.i18n._( 'Include Employees' ), form_item_input, tab_employee_criteria_column1 );\n\n\t\t\t// Exclude Employees\n\t\t\tform_item_input = Global.loadWidgetByName( FormItemType.AWESOME_BOX );\n\t\t\tform_item_input.AComboBox( {\n\t\t\t\tapi_class: TTAPI.APIUser,\n\t\t\t\tallow_multiple_selection: true,\n\t\t\t\tlayout_name: 'global_user',\n\t\t\t\tshow_search_inputs: true,\n\t\t\t\tset_empty: true,\n\t\t\t\tfield: 'exclude_user_ids'\n\t\t\t} );\n\t\t\tthis.addEditFieldToColumn( $.i18n._( 'Exclude Employees' ), form_item_input, tab_employee_criteria_column1, '' );\n\t\t}\n\t}\n\n\tsetProvince( val, m ) {\n\t\tvar $this = this;\n\n\t\tif ( !val || val === '-1' || val === '0' ) {\n\t\t\t$this.province_array = [];\n\t\t\tthis.adv_search_field_ui_dic['province'].setSourceData( [] );\n\t\t\tthis.basic_search_field_ui_dic['province'].setSourceData( [] );\n\n\t\t} else {\n\n\t\t\tthis.company_api.getOptions( 'province', val, {\n\t\t\t\tonResult: function( res ) {\n\t\t\t\t\tres = res.getResult();\n\t\t\t\t\tif ( !res ) {\n\t\t\t\t\t\tres = [];\n\t\t\t\t\t}\n\n\t\t\t\t\t$this.province_array = Global.buildRecordArray( res );\n\t\t\t\t\t$this.adv_search_field_ui_dic['province'].setSourceData( $this.province_array );\n\t\t\t\t\t$this.basic_search_field_ui_dic['province'].setSourceData( $this.province_array );\n\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t}\n\n\teSetProvince( val, refresh ) {\n\t\tvar $this = this;\n\t\tvar province_widget = $this.edit_view_ui_dic['province'];\n\n\t\tif ( !val || val === '-1' || val === '0' ) {\n\t\t\t$this.e_province_array = [];\n\t\t\tprovince_widget.setSourceData( [] );\n\t\t} else {\n\t\t\tthis.company_api.getOptions( 'province', val, {\n\t\t\t\tonResult: function( res ) {\n\t\t\t\t\tres = res.getResult();\n\t\t\t\t\tif ( !res ) {\n\t\t\t\t\t\tres = [];\n\t\t\t\t\t}\n\t\t\t\t\t$this.e_province_array = Global.buildRecordArray( res );\n\t\t\t\t\tif ( refresh && $this.e_province_array.length > 0 ) {\n\t\t\t\t\t\t$this.current_edit_record.province = $this.e_province_array[0].value;\n\t\t\t\t\t\tprovince_widget.setValue( $this.current_edit_record.province );\n\t\t\t\t\t}\n\t\t\t\t\tprovince_widget.setSourceData( $this.e_province_array );\n\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t}\n\n\tbuildSearchFields() {\n\n\t\tsuper.buildSearchFields();\n\t\tthis.search_fields = [\n\t\t\tnew SearchField( {\n\t\t\t\tlabel: $.i18n._( 'Status' ),\n\t\t\t\tin_column: 1,\n\t\t\t\tfield: 'status_id',\n\t\t\t\tmultiple: true,\n\t\t\t\tbasic_search: true,\n\t\t\t\tadv_search: true,\n\t\t\t\tlayout_name: 'global_option_column',\n\t\t\t\tform_item_type: FormItemType.AWESOME_BOX\n\t\t\t} ),\n\t\t\tnew SearchField( {\n\t\t\t\tlabel: $.i18n._( 'Name' ),\n\t\t\t\tin_column: 1,\n\t\t\t\tfield: 'name',\n\t\t\t\tmultiple: true,\n\t\t\t\tbasic_search: true,\n\t\t\t\tadv_search: true,\n\t\t\t\tform_item_type: FormItemType.TEXT_INPUT\n\t\t\t} ),\n\t\t\tnew SearchField( {\n\t\t\t\tlabel: $.i18n._( 'Tags' ),\n\t\t\t\tfield: 'tag',\n\t\t\t\tbasic_search: true,\n\t\t\t\tadv_search: true,\n\t\t\t\tin_column: 1,\n\t\t\t\tform_item_type: FormItemType.TAG_INPUT\n\t\t\t} ),\n\t\t\tnew SearchField( {\n\t\t\t\tlabel: $.i18n._( 'Phone' ),\n\t\t\t\tfield: 'work_phone',\n\t\t\t\tbasic_search: false,\n\t\t\t\tadv_search: true,\n\t\t\t\tin_column: 1,\n\t\t\t\tobject_type_id: 110,\n\t\t\t\tform_item_type: FormItemType.TEXT_INPUT\n\t\t\t} ),\n\t\t\tnew SearchField( {\n\t\t\t\tlabel: $.i18n._( 'Fax' ),\n\t\t\t\tfield: 'fax_phone',\n\t\t\t\tbasic_search: false,\n\t\t\t\tadv_search: true,\n\t\t\t\tin_column: 1,\n\t\t\t\tform_item_type: FormItemType.TEXT_INPUT\n\t\t\t} ),\n\t\t\tnew SearchField( {\n\t\t\t\tlabel: $.i18n._( 'Address (Line1)' ),\n\t\t\t\tfield: 'address1',\n\t\t\t\tbasic_search: false,\n\t\t\t\tadv_search: true,\n\t\t\t\tin_column: 2,\n\t\t\t\tform_item_type: FormItemType.TEXT_INPUT\n\t\t\t} ),\n\t\t\tnew SearchField( {\n\t\t\t\tlabel: $.i18n._( 'Address (Line2)' ),\n\t\t\t\tfield: 'address2',\n\t\t\t\tbasic_search: false,\n\t\t\t\tadv_search: true,\n\t\t\t\tin_column: 2,\n\t\t\t\tform_item_type: FormItemType.TEXT_INPUT\n\t\t\t} ),\n\n\t\t\tnew SearchField( {\n\t\t\t\tlabel: $.i18n._( 'Postal/ZIP Code' ),\n\t\t\t\tfield: 'postal_code',\n\t\t\t\tbasic_search: false,\n\t\t\t\tadv_search: true,\n\t\t\t\tin_column: 2,\n\t\t\t\tform_item_type: FormItemType.TEXT_INPUT\n\t\t\t} ),\n\t\t\tnew SearchField( {\n\t\t\t\tlabel: $.i18n._( 'Country' ),\n\t\t\t\tin_column: 2,\n\t\t\t\tfield: 'country',\n\t\t\t\tmultiple: true,\n\t\t\t\tbasic_search: true,\n\t\t\t\tadv_search: true,\n\t\t\t\tlayout_name: 'global_option_column',\n\t\t\t\tform_item_type: FormItemType.COMBO_BOX\n\t\t\t} ),\n\t\t\tnew SearchField( {\n\t\t\t\tlabel: $.i18n._( 'Province/State' ),\n\t\t\t\tin_column: 2,\n\t\t\t\tfield: 'province',\n\t\t\t\tmultiple: true,\n\t\t\t\tbasic_search: true,\n\t\t\t\tadv_search: true,\n\t\t\t\tlayout_name: 'global_option_column',\n\t\t\t\tform_item_type: FormItemType.AWESOME_BOX\n\t\t\t} ),\n\t\t\tnew SearchField( {\n\t\t\t\tlabel: $.i18n._( 'City' ),\n\t\t\t\tfield: 'city',\n\t\t\t\tbasic_search: true,\n\t\t\t\tadv_search: true,\n\t\t\t\tin_column: 3,\n\t\t\t\tform_item_type: FormItemType.TEXT_INPUT\n\t\t\t} ),\n\t\t\tnew SearchField( {\n\t\t\t\tlabel: $.i18n._( 'Code' ),\n\t\t\t\tfield: 'manual_id',\n\t\t\t\tbasic_search: true,\n\t\t\t\tadv_search: true,\n\t\t\t\tin_column: 3,\n\t\t\t\tform_item_type: FormItemType.TEXT_INPUT\n\t\t\t} ),\n\t\t\tnew SearchField( {\n\t\t\t\tlabel: $.i18n._( 'Created By' ),\n\t\t\t\tin_column: 3,\n\t\t\t\tfield: 'created_by',\n\t\t\t\tlayout_name: 'global_user',\n\t\t\t\tapi_class: TTAPI.APIUser,\n\t\t\t\tmultiple: true,\n\t\t\t\tbasic_search: false,\n\t\t\t\tadv_search: true,\n\t\t\t\tscript_name: 'EmployeeView',\n\t\t\t\tform_item_type: FormItemType.AWESOME_BOX\n\t\t\t} ),\n\n\t\t\tnew SearchField( {\n\t\t\t\tlabel: $.i18n._( 'Updated By' ),\n\t\t\t\tin_column: 3,\n\t\t\t\tfield: 'updated_by',\n\t\t\t\tlayout_name: 'global_user',\n\t\t\t\tapi_class: TTAPI.APIUser,\n\t\t\t\tmultiple: true,\n\t\t\t\tbasic_search: false,\n\t\t\t\tadv_search: true,\n\t\t\t\tscript_name: 'EmployeeView',\n\t\t\t\tform_item_type: FormItemType.AWESOME_BOX\n\t\t\t} )\n\n\t\t];\n\t}\n\n\tsetEditViewDataDone() {\n\t\tsuper.setEditViewDataDone();\n\n\t\tif ( ( Global.getProductEdition() >= 20 ) ) {\n\t\t\tthis.onEmployeeGroupSelectionTypeChange();\n\t\t\tthis.onEmployeeTitleSelectionTypeChange();\n\t\t\tthis.onEmployeeDefaultBranchSelectionTypeChange();\n\t\t\tthis.onEmployeeDefaultDepartmentSelectionTypeChange();\n\t\t}\n\t}\n\n\tinitSubEmployeeCriteriaView() {\n\t\tif ( ( Global.getProductEdition() >= 20 ) ) {\n\t\t\tthis.edit_view_tab.find( '#tab_employee_criteria' ).find( '.first-column' ).css( 'display', 'block' );\n\t\t\tthis.edit_view.find( '.permission-defined-div' ).css( 'display', 'none' );\n\t\t} else {\n\t\t\tthis.edit_view_tab.find( '#tab_employee_criteria' ).find( '.first-column' ).css( 'display', 'none' );\n\t\t\tthis.edit_view.find( '.permission-defined-div' ).css( 'display', 'block' );\n\t\t\tthis.edit_view.find( '.permission-message' ).html( Global.getUpgradeMessage() );\n\t\t}\n\t}\n\n\tgetBranchEmployeeCriteriaTabHtml() {\n\t\treturn `\n\t\t<div id=\"tab_employee_criteria\" class=\"edit-view-tab-outside\">\n\t\t\t<div class=\"edit-view-tab\" id=\"tab_employee_criteria_content_div\">\n\t\t\t\t<div class=\"first-column full-width-column\"></div>\n\t\t\t\t<div class=\"save-and-continue-div permission-defined-div\">\n\t\t\t\t\t<span class=\"message permission-message\"></span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>`;\n\t}\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Q0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLFdBQVcsQ0FBQztBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSxXQUFXLENBQUM7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsV0FBVyxDQUFDO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQSxXQUFXLENBQUM7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsV0FBVyxDQUFDO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSxXQUFXLENBQUM7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLFdBQVcsQ0FBQztBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSxXQUFXLENBQUM7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsV0FBVyxDQUFDO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBLFdBQVcsQ0FBQztBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vaW50ZXJmYWNlL2h0bWw1L3ZpZXdzL2NvbXBhbnkvYnJhbmNoL0JyYW5jaFZpZXdDb250cm9sbGVyLmpzP2Y1MjYiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEJyYW5jaFZpZXdDb250cm9sbGVyIGV4dGVuZHMgQmFzZVZpZXdDb250cm9sbGVyIHtcblx0Y29uc3RydWN0b3IoIG9wdGlvbnMgPSB7fSApIHtcblx0XHRfLmRlZmF1bHRzKCBvcHRpb25zLCB7XG5cdFx0XHRlbDogJyNicmFuY2hfdmlld19jb250YWluZXInLFxuXG5cdFx0XHRzdGF0dXNfYXJyYXk6IG51bGwsXG5cdFx0XHRjb3VudHJ5X2FycmF5OiBudWxsLFxuXHRcdFx0cHJvdmluY2VfYXJyYXk6IG51bGwsXG5cblx0XHRcdGVfcHJvdmluY2VfYXJyYXk6IG51bGwsXG5cblx0XHRcdHVzZXJfZ3JvdXBfc2VsZWN0aW9uX3R5cGVfaWRfYXJyYXk6IG51bGwsXG5cdFx0XHR1c2VyX3RpdGxlX3NlbGVjdGlvbl90eXBlX2lkX2FycmF5OiBudWxsLFxuXHRcdFx0dXNlcl9kZWZhdWx0X2JyYW5jaF9zZWxlY3Rpb25fdHlwZV9pZF9hcnJheTogbnVsbCxcblx0XHRcdHVzZXJfZGVmYXVsdF9kZXBhcnRtZW50X3NlbGVjdGlvbl90eXBlX2lkX2FycmF5OiBudWxsLFxuXG5cdFx0XHR1c2VyX2dyb3VwX2FycmF5OiBudWxsLFxuXG5cdFx0XHRjb21wYW55X2FwaTogbnVsbFxuXHRcdH0gKTtcblxuXHRcdHN1cGVyKCBvcHRpb25zICk7XG5cdH1cblxuXHRpbml0KCBvcHRpb25zICkge1xuXHRcdC8vdGhpcy5fc3VwZXIoJ2luaXRpYWxpemUnLCBvcHRpb25zICk7XG5cdFx0dGhpcy5lZGl0X3ZpZXdfdHBsID0gJ0JyYW5jaEVkaXRWaWV3Lmh0bWwnO1xuXHRcdHRoaXMucGVybWlzc2lvbl9pZCA9ICdicmFuY2gnO1xuXHRcdHRoaXMudmlld0lkID0gJ0JyYW5jaCc7XG5cdFx0dGhpcy5zY3JpcHRfbmFtZSA9ICdCcmFuY2hWaWV3Jztcblx0XHR0aGlzLnRhYmxlX25hbWVfa2V5ID0gJ2JyYW5jaCc7XG5cdFx0dGhpcy5jb250ZXh0X21lbnVfbmFtZSA9ICQuaTE4bi5fKCAnQnJhbmNoJyApO1xuXHRcdHRoaXMubmF2aWdhdGlvbl9sYWJlbCA9ICQuaTE4bi5fKCAnQnJhbmNoJyApO1xuXHRcdHRoaXMuYXBpID0gVFRBUEkuQVBJQnJhbmNoO1xuXHRcdHRoaXMuY29tcGFueV9hcGkgPSBUVEFQSS5BUElDb21wYW55O1xuXG5cdFx0aWYgKCAoIEdsb2JhbC5nZXRQcm9kdWN0RWRpdGlvbigpID49IDIwICkgKSB7XG5cdFx0XHR0aGlzLnVzZXJfZ3JvdXBfYXBpID0gVFRBUEkuQVBJVXNlckdyb3VwO1xuXHRcdH1cblxuXHRcdHRoaXMucmVuZGVyKCk7XG5cdFx0dGhpcy5idWlsZENvbnRleHRNZW51KCk7XG5cblx0XHR0aGlzLmluaXREYXRhKCk7XG5cdH1cblxuXHRpbml0T3B0aW9ucygpIHtcblx0XHR2YXIgJHRoaXMgPSB0aGlzO1xuXG5cdFx0bGV0IG9wdGlvbnMgPSBbXG5cdFx0XHR7IG9wdGlvbl9uYW1lOiAnc3RhdHVzJywgYXBpOiB0aGlzLmFwaSB9LFxuXHRcdFx0eyBvcHRpb25fbmFtZTogJ2NvdW50cnknLCBmaWVsZF9uYW1lOiAnY291bnRyeScsIGFwaTogdGhpcy5jb21wYW55X2FwaSB9LFxuXHRcdF07XG5cblx0XHRpZiAoICggR2xvYmFsLmdldFByb2R1Y3RFZGl0aW9uKCkgPj0gMjAgKSApIHtcblxuXHRcdFx0b3B0aW9ucy5wdXNoKFxuXHRcdFx0XHR7IG9wdGlvbl9uYW1lOiAndXNlcl9ncm91cF9zZWxlY3Rpb25fdHlwZV9pZCcsIGFwaTogdGhpcy5hcGkgfSxcblx0XHRcdFx0eyBvcHRpb25fbmFtZTogJ3VzZXJfdGl0bGVfc2VsZWN0aW9uX3R5cGVfaWQnLCBhcGk6IHRoaXMuYXBpIH0sXG5cdFx0XHRcdHsgb3B0aW9uX25hbWU6ICd1c2VyX2RlZmF1bHRfYnJhbmNoX3NlbGVjdGlvbl90eXBlX2lkJywgYXBpOiB0aGlzLmFwaSB9LFxuXHRcdFx0XHR7IG9wdGlvbl9uYW1lOiAndXNlcl9kZWZhdWx0X2RlcGFydG1lbnRfc2VsZWN0aW9uX3R5cGVfaWQnLCBhcGk6IHRoaXMuYXBpIH0sXG5cdFx0XHQpO1xuXG5cdFx0XHR0aGlzLnVzZXJfZ3JvdXBfYXBpLmdldFVzZXJHcm91cCggJycsIGZhbHNlLCBmYWxzZSwge1xuXHRcdFx0XHRvblJlc3VsdDogZnVuY3Rpb24oIHJlcyApIHtcblx0XHRcdFx0XHRyZXMgPSByZXMuZ2V0UmVzdWx0KCk7XG5cdFx0XHRcdFx0cmVzID0gR2xvYmFsLmJ1aWxkVHJlZVJlY29yZCggcmVzICk7XG5cdFx0XHRcdFx0JHRoaXMudXNlcl9ncm91cF9hcnJheSA9IHJlcztcblx0XHRcdFx0fVxuXHRcdFx0fSApO1xuXHRcdH1cblxuXHRcdHRoaXMuaW5pdERyb3BEb3duT3B0aW9ucyggb3B0aW9ucyApO1xuXHR9XG5cblx0Z2V0Q3VzdG9tQ29udGV4dE1lbnVNb2RlbCgpIHtcblx0XHR2YXIgY29udGV4dF9tZW51X21vZGVsID0ge1xuXHRcdFx0ZXhjbHVkZTogW10sXG5cdFx0XHRpbmNsdWRlOiBbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRsYWJlbDogJC5pMThuLl8oICdJbXBvcnQnICksXG5cdFx0XHRcdFx0aWQ6ICdpbXBvcnRfaWNvbicsXG5cdFx0XHRcdFx0bWVudV9hbGlnbjogJ3JpZ2h0Jyxcblx0XHRcdFx0XHRhY3Rpb25fZ3JvdXA6ICdpbXBvcnRfZXhwb3J0Jyxcblx0XHRcdFx0XHRncm91cDogJ290aGVyJyxcblx0XHRcdFx0XHR2dWVfaWNvbjogJ3R0aWNvbiB0dGljb24tZmlsZV9kb3dubG9hZF9ibGFja18yNGRwJyxcblx0XHRcdFx0XHRwZXJtaXNzaW9uX3Jlc3VsdDogUGVybWlzc2lvbk1hbmFnZXIuY2hlY2tUb3BMZXZlbFBlcm1pc3Npb24oICdJbXBvcnRDU1ZCcmFuY2gnICksXG5cdFx0XHRcdFx0cGVybWlzc2lvbjogbnVsbCxcblx0XHRcdFx0XHRzb3J0X29yZGVyOiA5MDEwXG5cdFx0XHRcdH1cblx0XHRcdF1cblx0XHR9O1xuXG5cdFx0cmV0dXJuIGNvbnRleHRfbWVudV9tb2RlbDtcblx0fVxuXG5cdG9uU2V0U2VhcmNoRmlsdGVyRmluaXNoZWQoKSB7XG5cdFx0dmFyIGNvbWJvO1xuXHRcdHZhciBzZWxlY3RfdmFsdWU7XG5cdFx0aWYgKCB0aGlzLnNlYXJjaF9wYW5lbC5nZXRTZWxlY3RUYWJJbmRleCgpID09PSAwICkge1xuXHRcdFx0Y29tYm8gPSB0aGlzLmJhc2ljX3NlYXJjaF9maWVsZF91aV9kaWNbJ2NvdW50cnknXTtcblx0XHRcdHNlbGVjdF92YWx1ZSA9IGNvbWJvLmdldFZhbHVlKCk7XG5cdFx0XHR0aGlzLnNldFByb3ZpbmNlKCBzZWxlY3RfdmFsdWUgKTtcblx0XHR9IGVsc2UgaWYgKCB0aGlzLnNlYXJjaF9wYW5lbC5nZXRTZWxlY3RUYWJJbmRleCgpID09PSAxICkge1xuXHRcdFx0Y29tYm8gPSB0aGlzLmFkdl9zZWFyY2hfZmllbGRfdWlfZGljWydjb3VudHJ5J107XG5cdFx0XHRzZWxlY3RfdmFsdWUgPSBjb21iby5nZXRWYWx1ZSgpO1xuXHRcdFx0dGhpcy5zZXRQcm92aW5jZSggc2VsZWN0X3ZhbHVlICk7XG5cdFx0fVxuXHR9XG5cblx0b25DdXN0b21Db250ZXh0Q2xpY2soIGlkICkge1xuXHRcdHN3aXRjaCAoIGlkICkge1xuXHRcdFx0Y2FzZSAnaW1wb3J0X2ljb24nOlxuXHRcdFx0XHR0aGlzLm9uSW1wb3J0Q2xpY2soKTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0fVxuXHR9XG5cblx0b25JbXBvcnRDbGljaygpIHtcblx0XHR2YXIgJHRoaXMgPSB0aGlzO1xuXHRcdEluZGV4Vmlld0NvbnRyb2xsZXIub3BlbldpemFyZCggJ0ltcG9ydENTVldpemFyZCcsICdCcmFuY2gnLCBmdW5jdGlvbigpIHtcblx0XHRcdCR0aGlzLnNlYXJjaCgpO1xuXHRcdH0gKTtcblx0fVxuXG5cdG9uQnVpbGRBZHZVSUZpbmlzaGVkKCkge1xuXG5cdFx0dGhpcy5hZHZfc2VhcmNoX2ZpZWxkX3VpX2RpY1snY291bnRyeSddLmNoYW5nZSggJC5wcm94eSggZnVuY3Rpb24oKSB7XG5cdFx0XHR2YXIgY29tYm8gPSB0aGlzLmFkdl9zZWFyY2hfZmllbGRfdWlfZGljWydjb3VudHJ5J107XG5cdFx0XHR2YXIgc2VsZWN0VmFsID0gY29tYm8uZ2V0VmFsdWUoKTtcblxuXHRcdFx0dGhpcy5zZXRQcm92aW5jZSggc2VsZWN0VmFsICk7XG5cblx0XHRcdHRoaXMuYWR2X3NlYXJjaF9maWVsZF91aV9kaWNbJ3Byb3ZpbmNlJ10uc2V0VmFsdWUoIG51bGwgKTtcblxuXHRcdH0sIHRoaXMgKSApO1xuXHR9XG5cblx0b25CdWlsZEJhc2ljVUlGaW5pc2hlZCgpIHtcblx0XHR0aGlzLmJhc2ljX3NlYXJjaF9maWVsZF91aV9kaWNbJ2NvdW50cnknXS5jaGFuZ2UoICQucHJveHkoIGZ1bmN0aW9uKCkge1xuXHRcdFx0dmFyIGNvbWJvID0gdGhpcy5iYXNpY19zZWFyY2hfZmllbGRfdWlfZGljWydjb3VudHJ5J107XG5cdFx0XHR2YXIgc2VsZWN0VmFsID0gY29tYm8uZ2V0VmFsdWUoKTtcblxuXHRcdFx0dGhpcy5zZXRQcm92aW5jZSggc2VsZWN0VmFsICk7XG5cblx0XHRcdHRoaXMuYmFzaWNfc2VhcmNoX2ZpZWxkX3VpX2RpY1sncHJvdmluY2UnXS5zZXRWYWx1ZSggbnVsbCApO1xuXG5cdFx0fSwgdGhpcyApICk7XG5cdH1cblxuXHRvbkZvcm1JdGVtQ2hhbmdlKCB0YXJnZXQsIGRvTm90VmFsaWRhdGUgKSB7XG5cblx0XHR0aGlzLnNldElzQ2hhbmdlZCggdGFyZ2V0ICk7XG5cdFx0dGhpcy5zZXRNYXNzRWRpdGluZ0ZpZWxkc1doZW5Gb3JtQ2hhbmdlKCB0YXJnZXQgKTtcblx0XHR2YXIga2V5ID0gdGFyZ2V0LmdldEZpZWxkKCk7XG5cblx0XHRzd2l0Y2ggKCBrZXkgKSB7XG5cdFx0XHRjYXNlICdjb3VudHJ5Jzpcblx0XHRcdFx0dmFyIHdpZGdldCA9IHRoaXMuZWRpdF92aWV3X3VpX2RpY1sncHJvdmluY2UnXTtcblx0XHRcdFx0d2lkZ2V0LnNldFZhbHVlKCBudWxsICk7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdH1cblxuXHRcdHRoaXMuY3VycmVudF9lZGl0X3JlY29yZFtrZXldID0gdGFyZ2V0LmdldFZhbHVlKCk7XG5cblx0XHRpZiAoIGtleSA9PT0gJ2NvdW50cnknICkge1xuXHRcdFx0dGhpcy5vbkNvdW50cnlDaGFuZ2UoKTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRpZiAoICggR2xvYmFsLmdldFByb2R1Y3RFZGl0aW9uKCkgPj0gMjAgKSApIHtcblx0XHRcdGlmICgga2V5ID09PSAndXNlcl9ncm91cF9zZWxlY3Rpb25fdHlwZV9pZCcgKSB7XG5cdFx0XHRcdHRoaXMub25FbXBsb3llZUdyb3VwU2VsZWN0aW9uVHlwZUNoYW5nZSgpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKCBrZXkgPT09ICd1c2VyX3RpdGxlX3NlbGVjdGlvbl90eXBlX2lkJyApIHtcblx0XHRcdFx0dGhpcy5vbkVtcGxveWVlVGl0bGVTZWxlY3Rpb25UeXBlQ2hhbmdlKCk7XG5cdFx0XHR9XG5cdFx0XHRpZiAoIGtleSA9PT0gJ3VzZXJfZGVmYXVsdF9icmFuY2hfc2VsZWN0aW9uX3R5cGVfaWQnICkge1xuXHRcdFx0XHR0aGlzLm9uRW1wbG95ZWVEZWZhdWx0QnJhbmNoU2VsZWN0aW9uVHlwZUNoYW5nZSgpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKCBrZXkgPT09ICd1c2VyX2RlZmF1bHRfZGVwYXJ0bWVudF9zZWxlY3Rpb25fdHlwZV9pZCcgKSB7XG5cdFx0XHRcdHRoaXMub25FbXBsb3llZURlZmF1bHREZXBhcnRtZW50U2VsZWN0aW9uVHlwZUNoYW5nZSgpO1xuXHRcdFx0fVxuXHRcdH1cblxuXG5cdFx0aWYgKCAhZG9Ob3RWYWxpZGF0ZSApIHtcblx0XHRcdHRoaXMudmFsaWRhdGUoKTtcblx0XHR9XG5cdH1cblxuXHRvbkVtcGxveWVlR3JvdXBTZWxlY3Rpb25UeXBlQ2hhbmdlKCkge1xuXHRcdGlmICggdGhpcy5jdXJyZW50X2VkaXRfcmVjb3JkWyd1c2VyX2dyb3VwX3NlbGVjdGlvbl90eXBlX2lkJ10gPT0gMTAgKSB7XG5cdFx0XHR0aGlzLmVkaXRfdmlld191aV9kaWNbJ3VzZXJfZ3JvdXBfaWRzJ10uc2V0RW5hYmxlZCggZmFsc2UgKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5lZGl0X3ZpZXdfdWlfZGljWyd1c2VyX2dyb3VwX2lkcyddLnNldEVuYWJsZWQoIHRydWUgKTtcblx0XHR9XG5cdH1cblxuXHRvbkVtcGxveWVlVGl0bGVTZWxlY3Rpb25UeXBlQ2hhbmdlKCkge1xuXHRcdGlmICggdGhpcy5jdXJyZW50X2VkaXRfcmVjb3JkWyd1c2VyX3RpdGxlX3NlbGVjdGlvbl90eXBlX2lkJ10gPT0gMTAgKSB7XG5cdFx0XHR0aGlzLmVkaXRfdmlld191aV9kaWNbJ3VzZXJfdGl0bGVfaWRzJ10uc2V0RW5hYmxlZCggZmFsc2UgKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5lZGl0X3ZpZXdfdWlfZGljWyd1c2VyX3RpdGxlX2lkcyddLnNldEVuYWJsZWQoIHRydWUgKTtcblx0XHR9XG5cdH1cblxuXHRvbkVtcGxveWVlRGVmYXVsdEJyYW5jaFNlbGVjdGlvblR5cGVDaGFuZ2UoKSB7XG5cdFx0aWYgKCB0aGlzLmN1cnJlbnRfZWRpdF9yZWNvcmRbJ3VzZXJfZGVmYXVsdF9icmFuY2hfc2VsZWN0aW9uX3R5cGVfaWQnXSA9PSAxMCApIHtcblx0XHRcdHRoaXMuZWRpdF92aWV3X3VpX2RpY1sndXNlcl9kZWZhdWx0X2JyYW5jaF9pZHMnXS5zZXRFbmFibGVkKCBmYWxzZSApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLmVkaXRfdmlld191aV9kaWNbJ3VzZXJfZGVmYXVsdF9icmFuY2hfaWRzJ10uc2V0RW5hYmxlZCggdHJ1ZSApO1xuXHRcdH1cblx0fVxuXG5cdG9uRW1wbG95ZWVEZWZhdWx0RGVwYXJ0bWVudFNlbGVjdGlvblR5cGVDaGFuZ2UoKSB7XG5cdFx0aWYgKCB0aGlzLmN1cnJlbnRfZWRpdF9yZWNvcmRbJ3VzZXJfZGVmYXVsdF9kZXBhcnRtZW50X3NlbGVjdGlvbl90eXBlX2lkJ10gPT0gMTAgKSB7XG5cdFx0XHR0aGlzLmVkaXRfdmlld191aV9kaWNbJ3VzZXJfZGVmYXVsdF9kZXBhcnRtZW50X2lkcyddLnNldEVuYWJsZWQoIGZhbHNlICk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuZWRpdF92aWV3X3VpX2RpY1sndXNlcl9kZWZhdWx0X2RlcGFydG1lbnRfaWRzJ10uc2V0RW5hYmxlZCggdHJ1ZSApO1xuXHRcdH1cblx0fVxuXG5cdGJ1aWxkRWRpdFZpZXdVSSgpIHtcblxuXHRcdHN1cGVyLmJ1aWxkRWRpdFZpZXdVSSgpO1xuXHRcdHZhciAkdGhpcyA9IHRoaXM7XG5cblx0XHR2YXIgdGFiX21vZGVsID0ge1xuXHRcdFx0J3RhYl9icmFuY2gnOiB7ICdsYWJlbCc6ICQuaTE4bi5fKCAnQnJhbmNoJyApIH0sXG5cdFx0XHQndGFiX2VtcGxveWVlX2NyaXRlcmlhJzoge1xuXHRcdFx0XHQnbGFiZWwnOiAkLmkxOG4uXyggJ0VtcGxveWVlIENyaXRlcmlhJyApLFxuXHRcdFx0XHQnaW5pdF9jYWxsYmFjayc6ICdpbml0U3ViRW1wbG95ZWVDcml0ZXJpYVZpZXcnLFxuXHRcdFx0XHQnaHRtbF90ZW1wbGF0ZSc6IHRoaXMuZ2V0QnJhbmNoRW1wbG95ZWVDcml0ZXJpYVRhYkh0bWwoKVxuXHRcdFx0fSxcblx0XHRcdCd0YWJfYXVkaXQnOiB0cnVlLFxuXHRcdH07XG5cdFx0dGhpcy5zZXRUYWJNb2RlbCggdGFiX21vZGVsICk7XG5cblx0XHR2YXIgZm9ybV9pdGVtX2lucHV0O1xuXG5cdFx0dGhpcy5uYXZpZ2F0aW9uLkFDb21ib0JveCgge1xuXHRcdFx0YXBpX2NsYXNzOiBUVEFQSS5BUElCcmFuY2gsXG5cdFx0XHRpZDogdGhpcy5zY3JpcHRfbmFtZSArICdfbmF2aWdhdGlvbicsXG5cdFx0XHRhbGxvd19tdWx0aXBsZV9zZWxlY3Rpb246IGZhbHNlLFxuXHRcdFx0bGF5b3V0X25hbWU6ICdnbG9iYWxfYnJhbmNoJyxcblx0XHRcdG5hdmlnYXRpb25fbW9kZTogdHJ1ZSxcblx0XHRcdHNob3dfc2VhcmNoX2lucHV0czogdHJ1ZVxuXHRcdH0gKTtcblxuXHRcdHRoaXMuc2V0TmF2aWdhdGlvbigpO1xuXG5cdFx0Ly9UYWIgMCBzdGFydFxuXG5cdFx0dmFyIHRhYl9icmFuY2ggPSB0aGlzLmVkaXRfdmlld190YWIuZmluZCggJyN0YWJfYnJhbmNoJyApO1xuXG5cdFx0dmFyIHRhYl9icmFuY2hfY29sdW1uMSA9IHRhYl9icmFuY2guZmluZCggJy5maXJzdC1jb2x1bW4nICk7XG5cblx0XHR0aGlzLmVkaXRfdmlld190YWJzWzBdID0gW107XG5cblx0XHR0aGlzLmVkaXRfdmlld190YWJzWzBdLnB1c2goIHRhYl9icmFuY2hfY29sdW1uMSApO1xuXG5cdFx0Ly9TdGF0dXNcblxuXHRcdGZvcm1faXRlbV9pbnB1dCA9IEdsb2JhbC5sb2FkV2lkZ2V0QnlOYW1lKCBGb3JtSXRlbVR5cGUuQ09NQk9fQk9YICk7XG5cdFx0Zm9ybV9pdGVtX2lucHV0LlRDb21ib0JveCggeyBmaWVsZDogJ3N0YXR1c19pZCcgfSApO1xuXHRcdGZvcm1faXRlbV9pbnB1dC5zZXRTb3VyY2VEYXRhKCAkdGhpcy5zdGF0dXNfYXJyYXkgKTtcblx0XHR0aGlzLmFkZEVkaXRGaWVsZFRvQ29sdW1uKCAkLmkxOG4uXyggJ1N0YXR1cycgKSwgZm9ybV9pdGVtX2lucHV0LCB0YWJfYnJhbmNoX2NvbHVtbjEsICcnICk7XG5cblx0XHQvLyBOYW1lXG5cblx0XHRmb3JtX2l0ZW1faW5wdXQgPSBHbG9iYWwubG9hZFdpZGdldEJ5TmFtZSggRm9ybUl0ZW1UeXBlLlRFWFRfSU5QVVQgKTtcblxuXHRcdGZvcm1faXRlbV9pbnB1dC5UVGV4dElucHV0KCB7IGZpZWxkOiAnbmFtZScsIHdpZHRoOiAnMTAwJScgfSApO1xuXHRcdHRoaXMuYWRkRWRpdEZpZWxkVG9Db2x1bW4oICQuaTE4bi5fKCAnTmFtZScgKSwgZm9ybV9pdGVtX2lucHV0LCB0YWJfYnJhbmNoX2NvbHVtbjEgKTtcblxuXHRcdGZvcm1faXRlbV9pbnB1dC5wYXJlbnQoKS53aWR0aCggJzQ1JScgKTtcblxuXHRcdC8vIENvZGVcblxuXHRcdGZvcm1faXRlbV9pbnB1dCA9IEdsb2JhbC5sb2FkV2lkZ2V0QnlOYW1lKCBGb3JtSXRlbVR5cGUuVEVYVF9JTlBVVCApO1xuXG5cdFx0Zm9ybV9pdGVtX2lucHV0LlRUZXh0SW5wdXQoIHsgZmllbGQ6ICdtYW51YWxfaWQnLCB3aWR0aDogNjUgfSApO1xuXHRcdHRoaXMuYWRkRWRpdEZpZWxkVG9Db2x1bW4oICQuaTE4bi5fKCAnQ29kZScgKSwgZm9ybV9pdGVtX2lucHV0LCB0YWJfYnJhbmNoX2NvbHVtbjEgKTtcblxuXHRcdC8vIEFkZHJlc3MxXG5cblx0XHRmb3JtX2l0ZW1faW5wdXQgPSBHbG9iYWwubG9hZFdpZGdldEJ5TmFtZSggRm9ybUl0ZW1UeXBlLlRFWFRfSU5QVVQgKTtcblxuXHRcdGZvcm1faXRlbV9pbnB1dC5UVGV4dElucHV0KCB7IGZpZWxkOiAnYWRkcmVzczEnLCB3aWR0aDogJzEwMCUnIH0gKTtcblx0XHR0aGlzLmFkZEVkaXRGaWVsZFRvQ29sdW1uKCAkLmkxOG4uXyggJ0FkZHJlc3MgKExpbmUgMSknICksIGZvcm1faXRlbV9pbnB1dCwgdGFiX2JyYW5jaF9jb2x1bW4xICk7XG5cblx0XHRmb3JtX2l0ZW1faW5wdXQucGFyZW50KCkud2lkdGgoICc0NSUnICk7XG5cblx0XHQvLyBBZGRyZXNzMlxuXG5cdFx0Zm9ybV9pdGVtX2lucHV0ID0gR2xvYmFsLmxvYWRXaWRnZXRCeU5hbWUoIEZvcm1JdGVtVHlwZS5URVhUX0lOUFVUICk7XG5cblx0XHRmb3JtX2l0ZW1faW5wdXQuVFRleHRJbnB1dCggeyBmaWVsZDogJ2FkZHJlc3MyJywgd2lkdGg6ICcxMDAlJyB9ICk7XG5cdFx0dGhpcy5hZGRFZGl0RmllbGRUb0NvbHVtbiggJC5pMThuLl8oICdBZGRyZXNzIChMaW5lIDIpJyApLCBmb3JtX2l0ZW1faW5wdXQsIHRhYl9icmFuY2hfY29sdW1uMSApO1xuXG5cdFx0Zm9ybV9pdGVtX2lucHV0LnBhcmVudCgpLndpZHRoKCAnNDUlJyApO1xuXG5cdFx0Ly8gY2l0eVxuXG5cdFx0Zm9ybV9pdGVtX2lucHV0ID0gR2xvYmFsLmxvYWRXaWRnZXRCeU5hbWUoIEZvcm1JdGVtVHlwZS5URVhUX0lOUFVUICk7XG5cblx0XHRmb3JtX2l0ZW1faW5wdXQuVFRleHRJbnB1dCggeyBmaWVsZDogJ2NpdHknLCB3aWR0aDogMTQ5IH0gKTtcblx0XHR0aGlzLmFkZEVkaXRGaWVsZFRvQ29sdW1uKCAkLmkxOG4uXyggJ0NpdHknICksIGZvcm1faXRlbV9pbnB1dCwgdGFiX2JyYW5jaF9jb2x1bW4xICk7XG5cblx0XHQvL0NvdW50cnlcblx0XHRmb3JtX2l0ZW1faW5wdXQgPSBHbG9iYWwubG9hZFdpZGdldEJ5TmFtZSggRm9ybUl0ZW1UeXBlLkNPTUJPX0JPWCApO1xuXG5cdFx0Zm9ybV9pdGVtX2lucHV0LlRDb21ib0JveCggeyBmaWVsZDogJ2NvdW50cnknLCBzZXRfZW1wdHk6IHRydWUgfSApO1xuXHRcdGZvcm1faXRlbV9pbnB1dC5zZXRTb3VyY2VEYXRhKCAkdGhpcy5jb3VudHJ5X2FycmF5ICk7XG5cdFx0dGhpcy5hZGRFZGl0RmllbGRUb0NvbHVtbiggJC5pMThuLl8oICdDb3VudHJ5JyApLCBmb3JtX2l0ZW1faW5wdXQsIHRhYl9icmFuY2hfY29sdW1uMSApO1xuXG5cdFx0Ly9Qcm92aW5jZSAvIFN0YXRlXG5cdFx0Zm9ybV9pdGVtX2lucHV0ID0gR2xvYmFsLmxvYWRXaWRnZXRCeU5hbWUoIEZvcm1JdGVtVHlwZS5DT01CT19CT1ggKTtcblxuXHRcdGZvcm1faXRlbV9pbnB1dC5UQ29tYm9Cb3goIHsgZmllbGQ6ICdwcm92aW5jZScgfSApO1xuXHRcdGZvcm1faXRlbV9pbnB1dC5zZXRTb3VyY2VEYXRhKCBbXSApO1xuXHRcdHRoaXMuYWRkRWRpdEZpZWxkVG9Db2x1bW4oICQuaTE4bi5fKCAnUHJvdmluY2UvU3RhdGUnICksIGZvcm1faXRlbV9pbnB1dCwgdGFiX2JyYW5jaF9jb2x1bW4xICk7XG5cblx0XHQvL0NpdHlcblx0XHRmb3JtX2l0ZW1faW5wdXQgPSBHbG9iYWwubG9hZFdpZGdldEJ5TmFtZSggRm9ybUl0ZW1UeXBlLlRFWFRfSU5QVVQgKTtcblxuXHRcdGZvcm1faXRlbV9pbnB1dC5UVGV4dElucHV0KCB7IGZpZWxkOiAncG9zdGFsX2NvZGUnLCB3aWR0aDogMTQ5IH0gKTtcblx0XHR0aGlzLmFkZEVkaXRGaWVsZFRvQ29sdW1uKCAkLmkxOG4uXyggJ1Bvc3RhbC9aSVAgQ29kZScgKSwgZm9ybV9pdGVtX2lucHV0LCB0YWJfYnJhbmNoX2NvbHVtbjEgKTtcblxuXHRcdC8vIFBob25lXG5cblx0XHRmb3JtX2l0ZW1faW5wdXQgPSBHbG9iYWwubG9hZFdpZGdldEJ5TmFtZSggRm9ybUl0ZW1UeXBlLlRFWFRfSU5QVVQgKTtcblxuXHRcdGZvcm1faXRlbV9pbnB1dC5UVGV4dElucHV0KCB7IGZpZWxkOiAnd29ya19waG9uZScsIHdpZHRoOiAxNDkgfSApO1xuXHRcdHRoaXMuYWRkRWRpdEZpZWxkVG9Db2x1bW4oICQuaTE4bi5fKCAnUGhvbmUnICksIGZvcm1faXRlbV9pbnB1dCwgdGFiX2JyYW5jaF9jb2x1bW4xICk7XG5cblx0XHQvLyBGYXhcblx0XHRmb3JtX2l0ZW1faW5wdXQgPSBHbG9iYWwubG9hZFdpZGdldEJ5TmFtZSggRm9ybUl0ZW1UeXBlLlRFWFRfSU5QVVQgKTtcblxuXHRcdGZvcm1faXRlbV9pbnB1dC5UVGV4dElucHV0KCB7IGZpZWxkOiAnZmF4X3Bob25lJywgd2lkdGg6IDE0OSB9ICk7XG5cblx0XHR0aGlzLmFkZEVkaXRGaWVsZFRvQ29sdW1uKCAkLmkxOG4uXyggJ0ZheCcgKSwgZm9ybV9pdGVtX2lucHV0LCB0YWJfYnJhbmNoX2NvbHVtbjEgKTtcblxuXHRcdC8vQWxsb3dlZCBHRU8gRmVuY2VzXG5cdFx0aWYgKCBHbG9iYWwuZ2V0UHJvZHVjdEVkaXRpb24oKSA+PSAyMCApIHtcblx0XHRcdGZvcm1faXRlbV9pbnB1dCA9IEdsb2JhbC5sb2FkV2lkZ2V0QnlOYW1lKCBGb3JtSXRlbVR5cGUuQVdFU09NRV9CT1ggKTtcblx0XHRcdGZvcm1faXRlbV9pbnB1dC5BQ29tYm9Cb3goIHtcblx0XHRcdFx0YXBpX2NsYXNzOiBUVEFQSS5BUElHRU9GZW5jZSxcblx0XHRcdFx0YWxsb3dfbXVsdGlwbGVfc2VsZWN0aW9uOiB0cnVlLFxuXHRcdFx0XHRsYXlvdXRfbmFtZTogJ2dsb2JhbF9nZW9fZmVuY2UnLFxuXHRcdFx0XHRzaG93X3NlYXJjaF9pbnB1dHM6IHRydWUsXG5cdFx0XHRcdHNldF9lbXB0eTogdHJ1ZSxcblx0XHRcdFx0ZmllbGQ6ICdnZW9fZmVuY2VfaWRzJ1xuXHRcdFx0fSApO1xuXHRcdFx0dGhpcy5hZGRFZGl0RmllbGRUb0NvbHVtbiggJC5pMThuLl8oICdBbGxvd2VkIEdFTyBGZW5jZXMnICksIGZvcm1faXRlbV9pbnB1dCwgdGFiX2JyYW5jaF9jb2x1bW4xICk7XG5cdFx0fVxuXG5cdFx0Ly9UYWdzXG5cdFx0Zm9ybV9pdGVtX2lucHV0ID0gR2xvYmFsLmxvYWRXaWRnZXRCeU5hbWUoIEZvcm1JdGVtVHlwZS5UQUdfSU5QVVQgKTtcblxuXHRcdGZvcm1faXRlbV9pbnB1dC5UVGFnSW5wdXQoIHsgZmllbGQ6ICd0YWcnLCBvYmplY3RfdHlwZV9pZDogMTEwIH0gKTtcblx0XHR0aGlzLmFkZEVkaXRGaWVsZFRvQ29sdW1uKCAkLmkxOG4uXyggJ1RhZ3MnICksIGZvcm1faXRlbV9pbnB1dCwgdGFiX2JyYW5jaF9jb2x1bW4xLCAnJywgbnVsbCwgbnVsbCwgdHJ1ZSApO1xuXG5cdFx0aWYgKCAoIEdsb2JhbC5nZXRQcm9kdWN0RWRpdGlvbigpID49IDIwICkgKSB7XG5cdFx0XHQvL1RhYiAxIHN0YXJ0IGVtcGxveWVlIGNyaXRlcmlhXG5cdFx0XHR2YXIgdGFiX2VtcGxveWVlX2NyaXRlcmlhID0gdGhpcy5lZGl0X3ZpZXdfdGFiLmZpbmQoICcjdGFiX2VtcGxveWVlX2NyaXRlcmlhJyApO1xuXHRcdFx0dmFyIHRhYl9lbXBsb3llZV9jcml0ZXJpYV9jb2x1bW4xID0gdGFiX2VtcGxveWVlX2NyaXRlcmlhLmZpbmQoICcuZmlyc3QtY29sdW1uJyApO1xuXHRcdFx0dGhpcy5lZGl0X3ZpZXdfdGFic1sxXSA9IFtdO1xuXHRcdFx0dGhpcy5lZGl0X3ZpZXdfdGFic1sxXS5wdXNoKCB0YWJfZW1wbG95ZWVfY3JpdGVyaWFfY29sdW1uMSApO1xuXG5cdFx0XHQvL1VzZXIgR3JvdXBzXG5cdFx0XHR2YXIgdl9ib3ggPSAkKCAnPGRpdiBjbGFzcz1cXCd2LWJveFxcJz48L2Rpdj4nICk7XG5cblx0XHRcdC8vU2VsZWN0aW9uIFR5cGVcblx0XHRcdGZvcm1faXRlbV9pbnB1dCA9IEdsb2JhbC5sb2FkV2lkZ2V0QnlOYW1lKCBGb3JtSXRlbVR5cGUuQ09NQk9fQk9YICk7XG5cdFx0XHRmb3JtX2l0ZW1faW5wdXQuVENvbWJvQm94KCB7IGZpZWxkOiAndXNlcl9ncm91cF9zZWxlY3Rpb25fdHlwZV9pZCcgfSApO1xuXHRcdFx0Zm9ybV9pdGVtX2lucHV0LnNldFNvdXJjZURhdGEoICR0aGlzLnVzZXJfZ3JvdXBfc2VsZWN0aW9uX3R5cGVfaWRfYXJyYXkgKTtcblxuXHRcdFx0dmFyIGZvcm1faXRlbSA9IHRoaXMucHV0SW5wdXRUb0luc2lkZUZvcm1JdGVtKCBmb3JtX2l0ZW1faW5wdXQsICQuaTE4bi5fKCAnU2VsZWN0aW9uIFR5cGUnICkgKTtcblxuXHRcdFx0dl9ib3guYXBwZW5kKCBmb3JtX2l0ZW0gKTtcblx0XHRcdHZfYm94LmFwcGVuZCggJzxkaXYgY2xhc3M9XFwnY2xlYXItYm90aC1kaXZcXCc+PC9kaXY+JyApO1xuXG5cdFx0XHQvL1NlbGVjdGlvblxuXHRcdFx0dmFyIGZvcm1faXRlbV9pbnB1dF8xID0gR2xvYmFsLmxvYWRXaWRnZXRCeU5hbWUoIEZvcm1JdGVtVHlwZS5BV0VTT01FX0JPWCApO1xuXG5cdFx0XHRmb3JtX2l0ZW1faW5wdXRfMS5BQ29tYm9Cb3goIHtcblx0XHRcdFx0dHJlZV9tb2RlOiB0cnVlLFxuXHRcdFx0XHRhbGxvd19tdWx0aXBsZV9zZWxlY3Rpb246IHRydWUsXG5cdFx0XHRcdGxheW91dF9uYW1lOiAnZ2xvYmFsX3RyZWVfY29sdW1uJyxcblx0XHRcdFx0c2V0X2VtcHR5OiB0cnVlLFxuXHRcdFx0XHRmaWVsZDogJ3VzZXJfZ3JvdXBfaWRzJ1xuXHRcdFx0fSApO1xuXHRcdFx0Zm9ybV9pdGVtX2lucHV0XzEuc2V0U291cmNlRGF0YSggJHRoaXMudXNlcl9ncm91cF9hcnJheSApO1xuXG5cdFx0XHRmb3JtX2l0ZW0gPSB0aGlzLnB1dElucHV0VG9JbnNpZGVGb3JtSXRlbSggZm9ybV9pdGVtX2lucHV0XzEsICQuaTE4bi5fKCAnU2VsZWN0aW9uJyApICk7XG5cblx0XHRcdHZfYm94LmFwcGVuZCggZm9ybV9pdGVtICk7XG5cblx0XHRcdHRoaXMuYWRkRWRpdEZpZWxkVG9Db2x1bW4oICQuaTE4bi5fKCAnRW1wbG95ZWUgR3JvdXBzJyApLCBbZm9ybV9pdGVtX2lucHV0LCBmb3JtX2l0ZW1faW5wdXRfMV0sIHRhYl9lbXBsb3llZV9jcml0ZXJpYV9jb2x1bW4xLCAnJywgdl9ib3gsIGZhbHNlLCB0cnVlICk7XG5cblx0XHRcdC8vIFVzZXIgVGl0bGVzXG5cdFx0XHR2X2JveCA9ICQoICc8ZGl2IGNsYXNzPVxcJ3YtYm94XFwnPjwvZGl2PicgKTtcblxuXHRcdFx0Ly9TZWxlY3Rpb24gVHlwZVxuXHRcdFx0Zm9ybV9pdGVtX2lucHV0ID0gR2xvYmFsLmxvYWRXaWRnZXRCeU5hbWUoIEZvcm1JdGVtVHlwZS5DT01CT19CT1ggKTtcblx0XHRcdGZvcm1faXRlbV9pbnB1dC5UQ29tYm9Cb3goIHsgZmllbGQ6ICd1c2VyX3RpdGxlX3NlbGVjdGlvbl90eXBlX2lkJywgc2V0X2VtcHR5OiBmYWxzZSB9ICk7XG5cdFx0XHRmb3JtX2l0ZW1faW5wdXQuc2V0U291cmNlRGF0YSggJHRoaXMudXNlcl90aXRsZV9zZWxlY3Rpb25fdHlwZV9pZF9hcnJheSApO1xuXG5cdFx0XHRmb3JtX2l0ZW0gPSB0aGlzLnB1dElucHV0VG9JbnNpZGVGb3JtSXRlbSggZm9ybV9pdGVtX2lucHV0LCAkLmkxOG4uXyggJ1NlbGVjdGlvbiBUeXBlJyApICk7XG5cblx0XHRcdHZfYm94LmFwcGVuZCggZm9ybV9pdGVtICk7XG5cdFx0XHR2X2JveC5hcHBlbmQoICc8ZGl2IGNsYXNzPVxcJ2NsZWFyLWJvdGgtZGl2XFwnPjwvZGl2PicgKTtcblxuXHRcdFx0Ly9TZWxlY3Rpb25cblx0XHRcdGZvcm1faXRlbV9pbnB1dF8xID0gR2xvYmFsLmxvYWRXaWRnZXRCeU5hbWUoIEZvcm1JdGVtVHlwZS5BV0VTT01FX0JPWCApO1xuXG5cdFx0XHRmb3JtX2l0ZW1faW5wdXRfMS5BQ29tYm9Cb3goIHtcblx0XHRcdFx0YXBpX2NsYXNzOiBUVEFQSS5Vc2VyVGl0bGUsXG5cdFx0XHRcdGFsbG93X211bHRpcGxlX3NlbGVjdGlvbjogdHJ1ZSxcblx0XHRcdFx0bGF5b3V0X25hbWU6ICdnbG9iYWxfdXNlcl90aXRsZScsXG5cdFx0XHRcdHNob3dfc2VhcmNoX2lucHV0czogdHJ1ZSxcblx0XHRcdFx0c2V0X2VtcHR5OiB0cnVlLFxuXHRcdFx0XHRmaWVsZDogJ3VzZXJfdGl0bGVfaWRzJ1xuXHRcdFx0fSApO1xuXG5cdFx0XHRmb3JtX2l0ZW0gPSB0aGlzLnB1dElucHV0VG9JbnNpZGVGb3JtSXRlbSggZm9ybV9pdGVtX2lucHV0XzEsICQuaTE4bi5fKCAnU2VsZWN0aW9uJyApICk7XG5cblx0XHRcdHZfYm94LmFwcGVuZCggZm9ybV9pdGVtICk7XG5cblx0XHRcdHRoaXMuYWRkRWRpdEZpZWxkVG9Db2x1bW4oICQuaTE4bi5fKCAnRW1wbG95ZWUgVGl0bGVzJyApLCBbZm9ybV9pdGVtX2lucHV0LCBmb3JtX2l0ZW1faW5wdXRfMV0sIHRhYl9lbXBsb3llZV9jcml0ZXJpYV9jb2x1bW4xLCAnJywgdl9ib3gsIGZhbHNlLCB0cnVlICk7XG5cblx0XHRcdC8vIFVzZXIgRGVmYXVsdCBCcmFuY2hlc1xuXHRcdFx0dl9ib3ggPSAkKCAnPGRpdiBjbGFzcz1cXCd2LWJveFxcJz48L2Rpdj4nICk7XG5cblx0XHRcdC8vU2VsZWN0aW9uIFR5cGVcblx0XHRcdGZvcm1faXRlbV9pbnB1dCA9IEdsb2JhbC5sb2FkV2lkZ2V0QnlOYW1lKCBGb3JtSXRlbVR5cGUuQ09NQk9fQk9YICk7XG5cdFx0XHRmb3JtX2l0ZW1faW5wdXQuVENvbWJvQm94KCB7IGZpZWxkOiAndXNlcl9kZWZhdWx0X2JyYW5jaF9zZWxlY3Rpb25fdHlwZV9pZCcsIHNldF9lbXB0eTogZmFsc2UgfSApO1xuXHRcdFx0Zm9ybV9pdGVtX2lucHV0LnNldFNvdXJjZURhdGEoICR0aGlzLnVzZXJfZGVmYXVsdF9icmFuY2hfc2VsZWN0aW9uX3R5cGVfaWRfYXJyYXkgKTtcblxuXHRcdFx0Zm9ybV9pdGVtID0gdGhpcy5wdXRJbnB1dFRvSW5zaWRlRm9ybUl0ZW0oIGZvcm1faXRlbV9pbnB1dCwgJC5pMThuLl8oICdTZWxlY3Rpb24gVHlwZScgKSApO1xuXG5cdFx0XHR2X2JveC5hcHBlbmQoIGZvcm1faXRlbSApO1xuXHRcdFx0dl9ib3guYXBwZW5kKCAnPGRpdiBjbGFzcz1cXCdjbGVhci1ib3RoLWRpdlxcJz48L2Rpdj4nICk7XG5cblx0XHRcdC8vU2VsZWN0aW9uXG5cdFx0XHRmb3JtX2l0ZW1faW5wdXRfMSA9IEdsb2JhbC5sb2FkV2lkZ2V0QnlOYW1lKCBGb3JtSXRlbVR5cGUuQVdFU09NRV9CT1ggKTtcblxuXHRcdFx0Zm9ybV9pdGVtX2lucHV0XzEuQUNvbWJvQm94KCB7XG5cdFx0XHRcdGFwaV9jbGFzczogVFRBUEkuQnJhbmNoLFxuXHRcdFx0XHRhbGxvd19tdWx0aXBsZV9zZWxlY3Rpb246IHRydWUsXG5cdFx0XHRcdGxheW91dF9uYW1lOiAnZ2xvYmFsX3VzZXJfZGVmYXVsdF9icmFuY2gnLFxuXHRcdFx0XHRzaG93X3NlYXJjaF9pbnB1dHM6IHRydWUsXG5cdFx0XHRcdHNldF9lbXB0eTogdHJ1ZSxcblx0XHRcdFx0ZmllbGQ6ICd1c2VyX2RlZmF1bHRfYnJhbmNoX2lkcydcblx0XHRcdH0gKTtcblxuXHRcdFx0Zm9ybV9pdGVtID0gdGhpcy5wdXRJbnB1dFRvSW5zaWRlRm9ybUl0ZW0oIGZvcm1faXRlbV9pbnB1dF8xLCAkLmkxOG4uXyggJ1NlbGVjdGlvbicgKSApO1xuXG5cdFx0XHR2X2JveC5hcHBlbmQoIGZvcm1faXRlbSApO1xuXG5cdFx0XHQvLyBJbmNsdWRlIERlZmF1bHQgQnJhbmNoXG5cdFx0XHR2YXIgZm9ybV9pdGVtX2lucHV0XzIgPSBHbG9iYWwubG9hZFdpZGdldEJ5TmFtZSggRm9ybUl0ZW1UeXBlLkNIRUNLQk9YICk7XG5cblx0XHRcdGZvcm1faXRlbV9pbnB1dF8yLlRDaGVja2JveCggeyBmaWVsZDogJ2luY2x1ZGVfdXNlcl9kZWZhdWx0X2JyYW5jaF9pZCcgfSApO1xuXG5cdFx0XHRmb3JtX2l0ZW0gPSB0aGlzLnB1dElucHV0VG9JbnNpZGVGb3JtSXRlbSggZm9ybV9pdGVtX2lucHV0XzIsICQuaTE4bi5fKCAnSW5jbHVkZSBUaGlzIEJyYW5jaCcgKSApO1xuXG5cdFx0XHR2X2JveC5hcHBlbmQoIGZvcm1faXRlbSApO1xuXG5cdFx0XHR0aGlzLmFkZEVkaXRGaWVsZFRvQ29sdW1uKCAkLmkxOG4uXyggJ0RlZmF1bHQgQnJhbmNoJyApLCBbZm9ybV9pdGVtX2lucHV0LCBmb3JtX2l0ZW1faW5wdXRfMSwgZm9ybV9pdGVtX2lucHV0XzJdLCB0YWJfZW1wbG95ZWVfY3JpdGVyaWFfY29sdW1uMSwgJycsIHZfYm94LCBmYWxzZSwgdHJ1ZSApO1xuXG5cdFx0XHQvLyBVc2VyIERlZmF1bHQgRGVwYXJ0bWVudFxuXHRcdFx0dl9ib3ggPSAkKCAnPGRpdiBjbGFzcz1cXCd2LWJveFxcJz48L2Rpdj4nICk7XG5cblx0XHRcdC8vU2VsZWN0aW9uIFR5cGVcblx0XHRcdGZvcm1faXRlbV9pbnB1dCA9IEdsb2JhbC5sb2FkV2lkZ2V0QnlOYW1lKCBGb3JtSXRlbVR5cGUuQ09NQk9fQk9YICk7XG5cdFx0XHRmb3JtX2l0ZW1faW5wdXQuVENvbWJvQm94KCB7IGZpZWxkOiAndXNlcl9kZWZhdWx0X2RlcGFydG1lbnRfc2VsZWN0aW9uX3R5cGVfaWQnLCBzZXRfZW1wdHk6IGZhbHNlIH0gKTtcblx0XHRcdGZvcm1faXRlbV9pbnB1dC5zZXRTb3VyY2VEYXRhKCAkdGhpcy51c2VyX2RlZmF1bHRfZGVwYXJ0bWVudF9zZWxlY3Rpb25fdHlwZV9pZF9hcnJheSApO1xuXG5cdFx0XHRmb3JtX2l0ZW0gPSB0aGlzLnB1dElucHV0VG9JbnNpZGVGb3JtSXRlbSggZm9ybV9pdGVtX2lucHV0LCAkLmkxOG4uXyggJ1NlbGVjdGlvbiBUeXBlJyApICk7XG5cblx0XHRcdHZfYm94LmFwcGVuZCggZm9ybV9pdGVtICk7XG5cdFx0XHR2X2JveC5hcHBlbmQoICc8ZGl2IGNsYXNzPVxcJ2NsZWFyLWJvdGgtZGl2XFwnPjwvZGl2PicgKTtcblxuXHRcdFx0Ly9TZWxlY3Rpb25cblx0XHRcdGZvcm1faXRlbV9pbnB1dF8xID0gR2xvYmFsLmxvYWRXaWRnZXRCeU5hbWUoIEZvcm1JdGVtVHlwZS5BV0VTT01FX0JPWCApO1xuXG5cdFx0XHRmb3JtX2l0ZW1faW5wdXRfMS5BQ29tYm9Cb3goIHtcblx0XHRcdFx0YXBpX2NsYXNzOiBUVEFQSS5EZXBhcnRtZW50LFxuXHRcdFx0XHRhbGxvd19tdWx0aXBsZV9zZWxlY3Rpb246IHRydWUsXG5cdFx0XHRcdGxheW91dF9uYW1lOiAnZ2xvYmFsX3VzZXJfZGVmYXVsdF9kZXBhcnRtZW50Jyxcblx0XHRcdFx0c2hvd19zZWFyY2hfaW5wdXRzOiB0cnVlLFxuXHRcdFx0XHRzZXRfZW1wdHk6IHRydWUsXG5cdFx0XHRcdGZpZWxkOiAndXNlcl9kZWZhdWx0X2RlcGFydG1lbnRfaWRzJ1xuXHRcdFx0fSApO1xuXG5cdFx0XHRmb3JtX2l0ZW0gPSB0aGlzLnB1dElucHV0VG9JbnNpZGVGb3JtSXRlbSggZm9ybV9pdGVtX2lucHV0XzEsICQuaTE4bi5fKCAnU2VsZWN0aW9uJyApICk7XG5cblx0XHRcdHZfYm94LmFwcGVuZCggZm9ybV9pdGVtICk7XG5cblx0XHRcdHRoaXMuYWRkRWRpdEZpZWxkVG9Db2x1bW4oICQuaTE4bi5fKCAnRGVmYXVsdCBEZXBhcnRtZW50JyApLCBbZm9ybV9pdGVtX2lucHV0LCBmb3JtX2l0ZW1faW5wdXRfMV0sIHRhYl9lbXBsb3llZV9jcml0ZXJpYV9jb2x1bW4xLCAnJywgdl9ib3gsIGZhbHNlLCB0cnVlICk7XG5cblx0XHRcdC8vIEluY2x1ZGUgRW1wbG95ZWVzXG5cdFx0XHRmb3JtX2l0ZW1faW5wdXQgPSBHbG9iYWwubG9hZFdpZGdldEJ5TmFtZSggRm9ybUl0ZW1UeXBlLkFXRVNPTUVfQk9YICk7XG5cdFx0XHRmb3JtX2l0ZW1faW5wdXQuQUNvbWJvQm94KCB7XG5cdFx0XHRcdGFwaV9jbGFzczogVFRBUEkuQVBJVXNlcixcblx0XHRcdFx0YWxsb3dfbXVsdGlwbGVfc2VsZWN0aW9uOiB0cnVlLFxuXHRcdFx0XHRsYXlvdXRfbmFtZTogJ2dsb2JhbF91c2VyJyxcblx0XHRcdFx0c2hvd19zZWFyY2hfaW5wdXRzOiB0cnVlLFxuXHRcdFx0XHRzZXRfZW1wdHk6IHRydWUsXG5cdFx0XHRcdGZpZWxkOiAnaW5jbHVkZV91c2VyX2lkcydcblx0XHRcdH0gKTtcblx0XHRcdHRoaXMuYWRkRWRpdEZpZWxkVG9Db2x1bW4oICQuaTE4bi5fKCAnSW5jbHVkZSBFbXBsb3llZXMnICksIGZvcm1faXRlbV9pbnB1dCwgdGFiX2VtcGxveWVlX2NyaXRlcmlhX2NvbHVtbjEgKTtcblxuXHRcdFx0Ly8gRXhjbHVkZSBFbXBsb3llZXNcblx0XHRcdGZvcm1faXRlbV9pbnB1dCA9IEdsb2JhbC5sb2FkV2lkZ2V0QnlOYW1lKCBGb3JtSXRlbVR5cGUuQVdFU09NRV9CT1ggKTtcblx0XHRcdGZvcm1faXRlbV9pbnB1dC5BQ29tYm9Cb3goIHtcblx0XHRcdFx0YXBpX2NsYXNzOiBUVEFQSS5BUElVc2VyLFxuXHRcdFx0XHRhbGxvd19tdWx0aXBsZV9zZWxlY3Rpb246IHRydWUsXG5cdFx0XHRcdGxheW91dF9uYW1lOiAnZ2xvYmFsX3VzZXInLFxuXHRcdFx0XHRzaG93X3NlYXJjaF9pbnB1dHM6IHRydWUsXG5cdFx0XHRcdHNldF9lbXB0eTogdHJ1ZSxcblx0XHRcdFx0ZmllbGQ6ICdleGNsdWRlX3VzZXJfaWRzJ1xuXHRcdFx0fSApO1xuXHRcdFx0dGhpcy5hZGRFZGl0RmllbGRUb0NvbHVtbiggJC5pMThuLl8oICdFeGNsdWRlIEVtcGxveWVlcycgKSwgZm9ybV9pdGVtX2lucHV0LCB0YWJfZW1wbG95ZWVfY3JpdGVyaWFfY29sdW1uMSwgJycgKTtcblx0XHR9XG5cdH1cblxuXHRzZXRQcm92aW5jZSggdmFsLCBtICkge1xuXHRcdHZhciAkdGhpcyA9IHRoaXM7XG5cblx0XHRpZiAoICF2YWwgfHwgdmFsID09PSAnLTEnIHx8IHZhbCA9PT0gJzAnICkge1xuXHRcdFx0JHRoaXMucHJvdmluY2VfYXJyYXkgPSBbXTtcblx0XHRcdHRoaXMuYWR2X3NlYXJjaF9maWVsZF91aV9kaWNbJ3Byb3ZpbmNlJ10uc2V0U291cmNlRGF0YSggW10gKTtcblx0XHRcdHRoaXMuYmFzaWNfc2VhcmNoX2ZpZWxkX3VpX2RpY1sncHJvdmluY2UnXS5zZXRTb3VyY2VEYXRhKCBbXSApO1xuXG5cdFx0fSBlbHNlIHtcblxuXHRcdFx0dGhpcy5jb21wYW55X2FwaS5nZXRPcHRpb25zKCAncHJvdmluY2UnLCB2YWwsIHtcblx0XHRcdFx0b25SZXN1bHQ6IGZ1bmN0aW9uKCByZXMgKSB7XG5cdFx0XHRcdFx0cmVzID0gcmVzLmdldFJlc3VsdCgpO1xuXHRcdFx0XHRcdGlmICggIXJlcyApIHtcblx0XHRcdFx0XHRcdHJlcyA9IFtdO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdCR0aGlzLnByb3ZpbmNlX2FycmF5ID0gR2xvYmFsLmJ1aWxkUmVjb3JkQXJyYXkoIHJlcyApO1xuXHRcdFx0XHRcdCR0aGlzLmFkdl9zZWFyY2hfZmllbGRfdWlfZGljWydwcm92aW5jZSddLnNldFNvdXJjZURhdGEoICR0aGlzLnByb3ZpbmNlX2FycmF5ICk7XG5cdFx0XHRcdFx0JHRoaXMuYmFzaWNfc2VhcmNoX2ZpZWxkX3VpX2RpY1sncHJvdmluY2UnXS5zZXRTb3VyY2VEYXRhKCAkdGhpcy5wcm92aW5jZV9hcnJheSApO1xuXG5cdFx0XHRcdH1cblx0XHRcdH0gKTtcblx0XHR9XG5cdH1cblxuXHRlU2V0UHJvdmluY2UoIHZhbCwgcmVmcmVzaCApIHtcblx0XHR2YXIgJHRoaXMgPSB0aGlzO1xuXHRcdHZhciBwcm92aW5jZV93aWRnZXQgPSAkdGhpcy5lZGl0X3ZpZXdfdWlfZGljWydwcm92aW5jZSddO1xuXG5cdFx0aWYgKCAhdmFsIHx8IHZhbCA9PT0gJy0xJyB8fCB2YWwgPT09ICcwJyApIHtcblx0XHRcdCR0aGlzLmVfcHJvdmluY2VfYXJyYXkgPSBbXTtcblx0XHRcdHByb3ZpbmNlX3dpZGdldC5zZXRTb3VyY2VEYXRhKCBbXSApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLmNvbXBhbnlfYXBpLmdldE9wdGlvbnMoICdwcm92aW5jZScsIHZhbCwge1xuXHRcdFx0XHRvblJlc3VsdDogZnVuY3Rpb24oIHJlcyApIHtcblx0XHRcdFx0XHRyZXMgPSByZXMuZ2V0UmVzdWx0KCk7XG5cdFx0XHRcdFx0aWYgKCAhcmVzICkge1xuXHRcdFx0XHRcdFx0cmVzID0gW107XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdCR0aGlzLmVfcHJvdmluY2VfYXJyYXkgPSBHbG9iYWwuYnVpbGRSZWNvcmRBcnJheSggcmVzICk7XG5cdFx0XHRcdFx0aWYgKCByZWZyZXNoICYmICR0aGlzLmVfcHJvdmluY2VfYXJyYXkubGVuZ3RoID4gMCApIHtcblx0XHRcdFx0XHRcdCR0aGlzLmN1cnJlbnRfZWRpdF9yZWNvcmQucHJvdmluY2UgPSAkdGhpcy5lX3Byb3ZpbmNlX2FycmF5WzBdLnZhbHVlO1xuXHRcdFx0XHRcdFx0cHJvdmluY2Vfd2lkZ2V0LnNldFZhbHVlKCAkdGhpcy5jdXJyZW50X2VkaXRfcmVjb3JkLnByb3ZpbmNlICk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHByb3ZpbmNlX3dpZGdldC5zZXRTb3VyY2VEYXRhKCAkdGhpcy5lX3Byb3ZpbmNlX2FycmF5ICk7XG5cblx0XHRcdFx0fVxuXHRcdFx0fSApO1xuXHRcdH1cblx0fVxuXG5cdGJ1aWxkU2VhcmNoRmllbGRzKCkge1xuXG5cdFx0c3VwZXIuYnVpbGRTZWFyY2hGaWVsZHMoKTtcblx0XHR0aGlzLnNlYXJjaF9maWVsZHMgPSBbXG5cdFx0XHRuZXcgU2VhcmNoRmllbGQoIHtcblx0XHRcdFx0bGFiZWw6ICQuaTE4bi5fKCAnU3RhdHVzJyApLFxuXHRcdFx0XHRpbl9jb2x1bW46IDEsXG5cdFx0XHRcdGZpZWxkOiAnc3RhdHVzX2lkJyxcblx0XHRcdFx0bXVsdGlwbGU6IHRydWUsXG5cdFx0XHRcdGJhc2ljX3NlYXJjaDogdHJ1ZSxcblx0XHRcdFx0YWR2X3NlYXJjaDogdHJ1ZSxcblx0XHRcdFx0bGF5b3V0X25hbWU6ICdnbG9iYWxfb3B0aW9uX2NvbHVtbicsXG5cdFx0XHRcdGZvcm1faXRlbV90eXBlOiBGb3JtSXRlbVR5cGUuQVdFU09NRV9CT1hcblx0XHRcdH0gKSxcblx0XHRcdG5ldyBTZWFyY2hGaWVsZCgge1xuXHRcdFx0XHRsYWJlbDogJC5pMThuLl8oICdOYW1lJyApLFxuXHRcdFx0XHRpbl9jb2x1bW46IDEsXG5cdFx0XHRcdGZpZWxkOiAnbmFtZScsXG5cdFx0XHRcdG11bHRpcGxlOiB0cnVlLFxuXHRcdFx0XHRiYXNpY19zZWFyY2g6IHRydWUsXG5cdFx0XHRcdGFkdl9zZWFyY2g6IHRydWUsXG5cdFx0XHRcdGZvcm1faXRlbV90eXBlOiBGb3JtSXRlbVR5cGUuVEVYVF9JTlBVVFxuXHRcdFx0fSApLFxuXHRcdFx0bmV3IFNlYXJjaEZpZWxkKCB7XG5cdFx0XHRcdGxhYmVsOiAkLmkxOG4uXyggJ1RhZ3MnICksXG5cdFx0XHRcdGZpZWxkOiAndGFnJyxcblx0XHRcdFx0YmFzaWNfc2VhcmNoOiB0cnVlLFxuXHRcdFx0XHRhZHZfc2VhcmNoOiB0cnVlLFxuXHRcdFx0XHRpbl9jb2x1bW46IDEsXG5cdFx0XHRcdGZvcm1faXRlbV90eXBlOiBGb3JtSXRlbVR5cGUuVEFHX0lOUFVUXG5cdFx0XHR9ICksXG5cdFx0XHRuZXcgU2VhcmNoRmllbGQoIHtcblx0XHRcdFx0bGFiZWw6ICQuaTE4bi5fKCAnUGhvbmUnICksXG5cdFx0XHRcdGZpZWxkOiAnd29ya19waG9uZScsXG5cdFx0XHRcdGJhc2ljX3NlYXJjaDogZmFsc2UsXG5cdFx0XHRcdGFkdl9zZWFyY2g6IHRydWUsXG5cdFx0XHRcdGluX2NvbHVtbjogMSxcblx0XHRcdFx0b2JqZWN0X3R5cGVfaWQ6IDExMCxcblx0XHRcdFx0Zm9ybV9pdGVtX3R5cGU6IEZvcm1JdGVtVHlwZS5URVhUX0lOUFVUXG5cdFx0XHR9ICksXG5cdFx0XHRuZXcgU2VhcmNoRmllbGQoIHtcblx0XHRcdFx0bGFiZWw6ICQuaTE4bi5fKCAnRmF4JyApLFxuXHRcdFx0XHRmaWVsZDogJ2ZheF9waG9uZScsXG5cdFx0XHRcdGJhc2ljX3NlYXJjaDogZmFsc2UsXG5cdFx0XHRcdGFkdl9zZWFyY2g6IHRydWUsXG5cdFx0XHRcdGluX2NvbHVtbjogMSxcblx0XHRcdFx0Zm9ybV9pdGVtX3R5cGU6IEZvcm1JdGVtVHlwZS5URVhUX0lOUFVUXG5cdFx0XHR9ICksXG5cdFx0XHRuZXcgU2VhcmNoRmllbGQoIHtcblx0XHRcdFx0bGFiZWw6ICQuaTE4bi5fKCAnQWRkcmVzcyAoTGluZTEpJyApLFxuXHRcdFx0XHRmaWVsZDogJ2FkZHJlc3MxJyxcblx0XHRcdFx0YmFzaWNfc2VhcmNoOiBmYWxzZSxcblx0XHRcdFx0YWR2X3NlYXJjaDogdHJ1ZSxcblx0XHRcdFx0aW5fY29sdW1uOiAyLFxuXHRcdFx0XHRmb3JtX2l0ZW1fdHlwZTogRm9ybUl0ZW1UeXBlLlRFWFRfSU5QVVRcblx0XHRcdH0gKSxcblx0XHRcdG5ldyBTZWFyY2hGaWVsZCgge1xuXHRcdFx0XHRsYWJlbDogJC5pMThuLl8oICdBZGRyZXNzIChMaW5lMiknICksXG5cdFx0XHRcdGZpZWxkOiAnYWRkcmVzczInLFxuXHRcdFx0XHRiYXNpY19zZWFyY2g6IGZhbHNlLFxuXHRcdFx0XHRhZHZfc2VhcmNoOiB0cnVlLFxuXHRcdFx0XHRpbl9jb2x1bW46IDIsXG5cdFx0XHRcdGZvcm1faXRlbV90eXBlOiBGb3JtSXRlbVR5cGUuVEVYVF9JTlBVVFxuXHRcdFx0fSApLFxuXG5cdFx0XHRuZXcgU2VhcmNoRmllbGQoIHtcblx0XHRcdFx0bGFiZWw6ICQuaTE4bi5fKCAnUG9zdGFsL1pJUCBDb2RlJyApLFxuXHRcdFx0XHRmaWVsZDogJ3Bvc3RhbF9jb2RlJyxcblx0XHRcdFx0YmFzaWNfc2VhcmNoOiBmYWxzZSxcblx0XHRcdFx0YWR2X3NlYXJjaDogdHJ1ZSxcblx0XHRcdFx0aW5fY29sdW1uOiAyLFxuXHRcdFx0XHRmb3JtX2l0ZW1fdHlwZTogRm9ybUl0ZW1UeXBlLlRFWFRfSU5QVVRcblx0XHRcdH0gKSxcblx0XHRcdG5ldyBTZWFyY2hGaWVsZCgge1xuXHRcdFx0XHRsYWJlbDogJC5pMThuLl8oICdDb3VudHJ5JyApLFxuXHRcdFx0XHRpbl9jb2x1bW46IDIsXG5cdFx0XHRcdGZpZWxkOiAnY291bnRyeScsXG5cdFx0XHRcdG11bHRpcGxlOiB0cnVlLFxuXHRcdFx0XHRiYXNpY19zZWFyY2g6IHRydWUsXG5cdFx0XHRcdGFkdl9zZWFyY2g6IHRydWUsXG5cdFx0XHRcdGxheW91dF9uYW1lOiAnZ2xvYmFsX29wdGlvbl9jb2x1bW4nLFxuXHRcdFx0XHRmb3JtX2l0ZW1fdHlwZTogRm9ybUl0ZW1UeXBlLkNPTUJPX0JPWFxuXHRcdFx0fSApLFxuXHRcdFx0bmV3IFNlYXJjaEZpZWxkKCB7XG5cdFx0XHRcdGxhYmVsOiAkLmkxOG4uXyggJ1Byb3ZpbmNlL1N0YXRlJyApLFxuXHRcdFx0XHRpbl9jb2x1bW46IDIsXG5cdFx0XHRcdGZpZWxkOiAncHJvdmluY2UnLFxuXHRcdFx0XHRtdWx0aXBsZTogdHJ1ZSxcblx0XHRcdFx0YmFzaWNfc2VhcmNoOiB0cnVlLFxuXHRcdFx0XHRhZHZfc2VhcmNoOiB0cnVlLFxuXHRcdFx0XHRsYXlvdXRfbmFtZTogJ2dsb2JhbF9vcHRpb25fY29sdW1uJyxcblx0XHRcdFx0Zm9ybV9pdGVtX3R5cGU6IEZvcm1JdGVtVHlwZS5BV0VTT01FX0JPWFxuXHRcdFx0fSApLFxuXHRcdFx0bmV3IFNlYXJjaEZpZWxkKCB7XG5cdFx0XHRcdGxhYmVsOiAkLmkxOG4uXyggJ0NpdHknICksXG5cdFx0XHRcdGZpZWxkOiAnY2l0eScsXG5cdFx0XHRcdGJhc2ljX3NlYXJjaDogdHJ1ZSxcblx0XHRcdFx0YWR2X3NlYXJjaDogdHJ1ZSxcblx0XHRcdFx0aW5fY29sdW1uOiAzLFxuXHRcdFx0XHRmb3JtX2l0ZW1fdHlwZTogRm9ybUl0ZW1UeXBlLlRFWFRfSU5QVVRcblx0XHRcdH0gKSxcblx0XHRcdG5ldyBTZWFyY2hGaWVsZCgge1xuXHRcdFx0XHRsYWJlbDogJC5pMThuLl8oICdDb2RlJyApLFxuXHRcdFx0XHRmaWVsZDogJ21hbnVhbF9pZCcsXG5cdFx0XHRcdGJhc2ljX3NlYXJjaDogdHJ1ZSxcblx0XHRcdFx0YWR2X3NlYXJjaDogdHJ1ZSxcblx0XHRcdFx0aW5fY29sdW1uOiAzLFxuXHRcdFx0XHRmb3JtX2l0ZW1fdHlwZTogRm9ybUl0ZW1UeXBlLlRFWFRfSU5QVVRcblx0XHRcdH0gKSxcblx0XHRcdG5ldyBTZWFyY2hGaWVsZCgge1xuXHRcdFx0XHRsYWJlbDogJC5pMThuLl8oICdDcmVhdGVkIEJ5JyApLFxuXHRcdFx0XHRpbl9jb2x1bW46IDMsXG5cdFx0XHRcdGZpZWxkOiAnY3JlYXRlZF9ieScsXG5cdFx0XHRcdGxheW91dF9uYW1lOiAnZ2xvYmFsX3VzZXInLFxuXHRcdFx0XHRhcGlfY2xhc3M6IFRUQVBJLkFQSVVzZXIsXG5cdFx0XHRcdG11bHRpcGxlOiB0cnVlLFxuXHRcdFx0XHRiYXNpY19zZWFyY2g6IGZhbHNlLFxuXHRcdFx0XHRhZHZfc2VhcmNoOiB0cnVlLFxuXHRcdFx0XHRzY3JpcHRfbmFtZTogJ0VtcGxveWVlVmlldycsXG5cdFx0XHRcdGZvcm1faXRlbV90eXBlOiBGb3JtSXRlbVR5cGUuQVdFU09NRV9CT1hcblx0XHRcdH0gKSxcblxuXHRcdFx0bmV3IFNlYXJjaEZpZWxkKCB7XG5cdFx0XHRcdGxhYmVsOiAkLmkxOG4uXyggJ1VwZGF0ZWQgQnknICksXG5cdFx0XHRcdGluX2NvbHVtbjogMyxcblx0XHRcdFx0ZmllbGQ6ICd1cGRhdGVkX2J5Jyxcblx0XHRcdFx0bGF5b3V0X25hbWU6ICdnbG9iYWxfdXNlcicsXG5cdFx0XHRcdGFwaV9jbGFzczogVFRBUEkuQVBJVXNlcixcblx0XHRcdFx0bXVsdGlwbGU6IHRydWUsXG5cdFx0XHRcdGJhc2ljX3NlYXJjaDogZmFsc2UsXG5cdFx0XHRcdGFkdl9zZWFyY2g6IHRydWUsXG5cdFx0XHRcdHNjcmlwdF9uYW1lOiAnRW1wbG95ZWVWaWV3Jyxcblx0XHRcdFx0Zm9ybV9pdGVtX3R5cGU6IEZvcm1JdGVtVHlwZS5BV0VTT01FX0JPWFxuXHRcdFx0fSApXG5cblx0XHRdO1xuXHR9XG5cblx0c2V0RWRpdFZpZXdEYXRhRG9uZSgpIHtcblx0XHRzdXBlci5zZXRFZGl0Vmlld0RhdGFEb25lKCk7XG5cblx0XHRpZiAoICggR2xvYmFsLmdldFByb2R1Y3RFZGl0aW9uKCkgPj0gMjAgKSApIHtcblx0XHRcdHRoaXMub25FbXBsb3llZUdyb3VwU2VsZWN0aW9uVHlwZUNoYW5nZSgpO1xuXHRcdFx0dGhpcy5vbkVtcGxveWVlVGl0bGVTZWxlY3Rpb25UeXBlQ2hhbmdlKCk7XG5cdFx0XHR0aGlzLm9uRW1wbG95ZWVEZWZhdWx0QnJhbmNoU2VsZWN0aW9uVHlwZUNoYW5nZSgpO1xuXHRcdFx0dGhpcy5vbkVtcGxveWVlRGVmYXVsdERlcGFydG1lbnRTZWxlY3Rpb25UeXBlQ2hhbmdlKCk7XG5cdFx0fVxuXHR9XG5cblx0aW5pdFN1YkVtcGxveWVlQ3JpdGVyaWFWaWV3KCkge1xuXHRcdGlmICggKCBHbG9iYWwuZ2V0UHJvZHVjdEVkaXRpb24oKSA+PSAyMCApICkge1xuXHRcdFx0dGhpcy5lZGl0X3ZpZXdfdGFiLmZpbmQoICcjdGFiX2VtcGxveWVlX2NyaXRlcmlhJyApLmZpbmQoICcuZmlyc3QtY29sdW1uJyApLmNzcyggJ2Rpc3BsYXknLCAnYmxvY2snICk7XG5cdFx0XHR0aGlzLmVkaXRfdmlldy5maW5kKCAnLnBlcm1pc3Npb24tZGVmaW5lZC1kaXYnICkuY3NzKCAnZGlzcGxheScsICdub25lJyApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLmVkaXRfdmlld190YWIuZmluZCggJyN0YWJfZW1wbG95ZWVfY3JpdGVyaWEnICkuZmluZCggJy5maXJzdC1jb2x1bW4nICkuY3NzKCAnZGlzcGxheScsICdub25lJyApO1xuXHRcdFx0dGhpcy5lZGl0X3ZpZXcuZmluZCggJy5wZXJtaXNzaW9uLWRlZmluZWQtZGl2JyApLmNzcyggJ2Rpc3BsYXknLCAnYmxvY2snICk7XG5cdFx0XHR0aGlzLmVkaXRfdmlldy5maW5kKCAnLnBlcm1pc3Npb24tbWVzc2FnZScgKS5odG1sKCBHbG9iYWwuZ2V0VXBncmFkZU1lc3NhZ2UoKSApO1xuXHRcdH1cblx0fVxuXG5cdGdldEJyYW5jaEVtcGxveWVlQ3JpdGVyaWFUYWJIdG1sKCkge1xuXHRcdHJldHVybiBgXG5cdFx0PGRpdiBpZD1cInRhYl9lbXBsb3llZV9jcml0ZXJpYVwiIGNsYXNzPVwiZWRpdC12aWV3LXRhYi1vdXRzaWRlXCI+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwiZWRpdC12aWV3LXRhYlwiIGlkPVwidGFiX2VtcGxveWVlX2NyaXRlcmlhX2NvbnRlbnRfZGl2XCI+XG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJmaXJzdC1jb2x1bW4gZnVsbC13aWR0aC1jb2x1bW5cIj48L2Rpdj5cblx0XHRcdFx0PGRpdiBjbGFzcz1cInNhdmUtYW5kLWNvbnRpbnVlLWRpdiBwZXJtaXNzaW9uLWRlZmluZWQtZGl2XCI+XG5cdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJtZXNzYWdlIHBlcm1pc3Npb24tbWVzc2FnZVwiPjwvc3Bhbj5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L2Rpdj5gO1xuXHR9XG59Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///2424\n")}}]); |