(self.webpackChunktimetrex=self.webpackChunktimetrex||[]).push([["portal-hr-recruitment-PortalJobVacancyDetailController","filebrowser-TImageBrowser"],{3807:(module,__unused_webpack_exports,__webpack_require__)=>{eval('/* provided dependency */ var jQuery = __webpack_require__(9755);\n/*!\n * Responsive Bootstrap Toolkit\n * Author: Maciej Gurban\n * License: MIT\n * Version: 2.6.3 (2016-06-21)\n * Origin: https://github.com/maciej-gurban/responsive-bootstrap-toolkit\n */\nvar ResponsiveBootstrapToolkit=function(i){var e={detectionDivs:{bootstrap:{xs:i(\'
\'),sm:i(\'\'),md:i(\'\'),lg:i(\'\')},foundation:{small:i(\'\'),medium:i(\'\'),large:i(\'\'),xlarge:i(\'\')}},applyDetectionDivs:function(){i(document).ready(function(){i.each(o.breakpoints,function(i){o.breakpoints[i].appendTo(".responsive-bootstrap-toolkit")})})},isAnExpression:function(i){return"<"==i.charAt(0)||">"==i.charAt(0)},splitExpression:function(i){var e=i.charAt(0),o="="==i.charAt(1),s=1+(o?1:0),n=i.slice(s);return{operator:e,orEqual:o,breakpointName:n}},isAnyActive:function(e){var s=!1;return i.each(e,function(i,e){return o.breakpoints[e].is(":visible")?(s=!0,!1):void 0}),s},isMatchingExpression:function(i){var s=e.splitExpression(i),n=Object.keys(o.breakpoints),r=n.indexOf(s.breakpointName);if(-1!==r){var t=0,a=0;"<"==s.operator&&(t=0,a=s.orEqual?++r:r),">"==s.operator&&(t=s.orEqual?r:++r,a=void 0);var l=n.slice(t,a);return e.isAnyActive(l)}}},o={interval:300,framework:null,breakpoints:null,is:function(i){return e.isAnExpression(i)?e.isMatchingExpression(i):o.breakpoints[i]&&o.breakpoints[i].is(":visible")},use:function(i,s){o.framework=i.toLowerCase(),"bootstrap"===o.framework||"foundation"===o.framework?o.breakpoints=e.detectionDivs[o.framework]:o.breakpoints=s,e.applyDetectionDivs()},current:function(){var e="unrecognized";return i.each(o.breakpoints,function(i){o.is(i)&&(e=i)}),e},changed:function(i,e){var s;return function(){clearTimeout(s),s=setTimeout(function(){i()},e||o.interval)}}};return i(document).ready(function(){i(\'\').appendTo("body")}),null===o.framework&&o.use("bootstrap"),o}(jQuery); true&&module.exports&&(module.exports=ResponsiveBootstrapToolkit);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMzgwNy5qcyIsIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQ0FBMkMsT0FBTyxlQUFlLFdBQVcsd1FBQXdRLGFBQWEseVBBQXlQLCtCQUErQiw2QkFBNkIsaUNBQWlDLDJEQUEyRCxFQUFFLEVBQUUsNEJBQTRCLHlDQUF5Qyw2QkFBNkIsOERBQThELE9BQU8sdUNBQXVDLHlCQUF5QixTQUFTLDhCQUE4Qix3REFBd0QsSUFBSSxrQ0FBa0Msc0ZBQXNGLFdBQVcsWUFBWSx1RkFBdUYsbUJBQW1CLDBCQUEwQixJQUFJLDREQUE0RCx1R0FBdUcsbUJBQW1CLG9LQUFvSyxvQkFBb0IscUJBQXFCLHdDQUF3QyxlQUFlLElBQUksdUJBQXVCLE1BQU0sa0JBQWtCLHdDQUF3QyxJQUFJLG1CQUFtQixvQ0FBb0MsdUVBQXVFLDJDQUEyQyxDQUFDLE1BQU0sRUFBRSxLQUEwQiIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL2ludGVyZmFjZS9odG1sNS9mcmFtZXdvcmsvYm9vdHN0cmFwLXRvb2xraXQubWluLmpzPzEwZmEiXSwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBSZXNwb25zaXZlIEJvb3RzdHJhcCBUb29sa2l0XG4gKiBBdXRob3I6ICAgIE1hY2llaiBHdXJiYW5cbiAqIExpY2Vuc2U6ICAgTUlUXG4gKiBWZXJzaW9uOiAgIDIuNi4zICgyMDE2LTA2LTIxKVxuICogT3JpZ2luOiAgICBodHRwczovL2dpdGh1Yi5jb20vbWFjaWVqLWd1cmJhbi9yZXNwb25zaXZlLWJvb3RzdHJhcC10b29sa2l0XG4gKi9cbnZhciBSZXNwb25zaXZlQm9vdHN0cmFwVG9vbGtpdD1mdW5jdGlvbihpKXt2YXIgZT17ZGV0ZWN0aW9uRGl2czp7Ym9vdHN0cmFwOnt4czppKCc8ZGl2IGNsYXNzPVwiZGV2aWNlLXhzIHZpc2libGUteHMgdmlzaWJsZS14cy1ibG9ja1wiPjwvZGl2PicpLHNtOmkoJzxkaXYgY2xhc3M9XCJkZXZpY2Utc20gdmlzaWJsZS1zbSB2aXNpYmxlLXNtLWJsb2NrXCI+PC9kaXY+JyksbWQ6aSgnPGRpdiBjbGFzcz1cImRldmljZS1tZCB2aXNpYmxlLW1kIHZpc2libGUtbWQtYmxvY2tcIj48L2Rpdj4nKSxsZzppKCc8ZGl2IGNsYXNzPVwiZGV2aWNlLWxnIHZpc2libGUtbGcgdmlzaWJsZS1sZy1ibG9ja1wiPjwvZGl2PicpfSxmb3VuZGF0aW9uOntzbWFsbDppKCc8ZGl2IGNsYXNzPVwiZGV2aWNlLXhzIHNob3ctZm9yLXNtYWxsLW9ubHlcIj48L2Rpdj4nKSxtZWRpdW06aSgnPGRpdiBjbGFzcz1cImRldmljZS1zbSBzaG93LWZvci1tZWRpdW0tb25seVwiPjwvZGl2PicpLGxhcmdlOmkoJzxkaXYgY2xhc3M9XCJkZXZpY2UtbWQgc2hvdy1mb3ItbGFyZ2Utb25seVwiPjwvZGl2PicpLHhsYXJnZTppKCc8ZGl2IGNsYXNzPVwiZGV2aWNlLWxnIHNob3ctZm9yLXhsYXJnZS1vbmx5XCI+PC9kaXY+Jyl9fSxhcHBseURldGVjdGlvbkRpdnM6ZnVuY3Rpb24oKXtpKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpe2kuZWFjaChvLmJyZWFrcG9pbnRzLGZ1bmN0aW9uKGkpe28uYnJlYWtwb2ludHNbaV0uYXBwZW5kVG8oXCIucmVzcG9uc2l2ZS1ib290c3RyYXAtdG9vbGtpdFwiKX0pfSl9LGlzQW5FeHByZXNzaW9uOmZ1bmN0aW9uKGkpe3JldHVyblwiPFwiPT1pLmNoYXJBdCgwKXx8XCI+XCI9PWkuY2hhckF0KDApfSxzcGxpdEV4cHJlc3Npb246ZnVuY3Rpb24oaSl7dmFyIGU9aS5jaGFyQXQoMCksbz1cIj1cIj09aS5jaGFyQXQoMSkscz0xKyhvPzE6MCksbj1pLnNsaWNlKHMpO3JldHVybntvcGVyYXRvcjplLG9yRXF1YWw6byxicmVha3BvaW50TmFtZTpufX0saXNBbnlBY3RpdmU6ZnVuY3Rpb24oZSl7dmFyIHM9ITE7cmV0dXJuIGkuZWFjaChlLGZ1bmN0aW9uKGksZSl7cmV0dXJuIG8uYnJlYWtwb2ludHNbZV0uaXMoXCI6dmlzaWJsZVwiKT8ocz0hMCwhMSk6dm9pZCAwfSksc30saXNNYXRjaGluZ0V4cHJlc3Npb246ZnVuY3Rpb24oaSl7dmFyIHM9ZS5zcGxpdEV4cHJlc3Npb24oaSksbj1PYmplY3Qua2V5cyhvLmJyZWFrcG9pbnRzKSxyPW4uaW5kZXhPZihzLmJyZWFrcG9pbnROYW1lKTtpZigtMSE9PXIpe3ZhciB0PTAsYT0wO1wiPFwiPT1zLm9wZXJhdG9yJiYodD0wLGE9cy5vckVxdWFsPysrcjpyKSxcIj5cIj09cy5vcGVyYXRvciYmKHQ9cy5vckVxdWFsP3I6KytyLGE9dm9pZCAwKTt2YXIgbD1uLnNsaWNlKHQsYSk7cmV0dXJuIGUuaXNBbnlBY3RpdmUobCl9fX0sbz17aW50ZXJ2YWw6MzAwLGZyYW1ld29yazpudWxsLGJyZWFrcG9pbnRzOm51bGwsaXM6ZnVuY3Rpb24oaSl7cmV0dXJuIGUuaXNBbkV4cHJlc3Npb24oaSk/ZS5pc01hdGNoaW5nRXhwcmVzc2lvbihpKTpvLmJyZWFrcG9pbnRzW2ldJiZvLmJyZWFrcG9pbnRzW2ldLmlzKFwiOnZpc2libGVcIil9LHVzZTpmdW5jdGlvbihpLHMpe28uZnJhbWV3b3JrPWkudG9Mb3dlckNhc2UoKSxcImJvb3RzdHJhcFwiPT09by5mcmFtZXdvcmt8fFwiZm91bmRhdGlvblwiPT09by5mcmFtZXdvcms/by5icmVha3BvaW50cz1lLmRldGVjdGlvbkRpdnNbby5mcmFtZXdvcmtdOm8uYnJlYWtwb2ludHM9cyxlLmFwcGx5RGV0ZWN0aW9uRGl2cygpfSxjdXJyZW50OmZ1bmN0aW9uKCl7dmFyIGU9XCJ1bnJlY29nbml6ZWRcIjtyZXR1cm4gaS5lYWNoKG8uYnJlYWtwb2ludHMsZnVuY3Rpb24oaSl7by5pcyhpKSYmKGU9aSl9KSxlfSxjaGFuZ2VkOmZ1bmN0aW9uKGksZSl7dmFyIHM7cmV0dXJuIGZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHMpLHM9c2V0VGltZW91dChmdW5jdGlvbigpe2koKX0sZXx8by5pbnRlcnZhbCl9fX07cmV0dXJuIGkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7aSgnPGRpdiBjbGFzcz1cInJlc3BvbnNpdmUtYm9vdHN0cmFwLXRvb2xraXRcIj48L2Rpdj4nKS5hcHBlbmRUbyhcImJvZHlcIil9KSxudWxsPT09by5mcmFtZXdvcmsmJm8udXNlKFwiYm9vdHN0cmFwXCIpLG99KGpRdWVyeSk7XCJ1bmRlZmluZWRcIiE9dHlwZW9mIG1vZHVsZSYmbW9kdWxlLmV4cG9ydHMmJihtb2R1bGUuZXhwb3J0cz1SZXNwb25zaXZlQm9vdHN0cmFwVG9vbGtpdCk7Il0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///3807\n')},8326:(__unused_webpack_module,__unused_webpack_exports,__webpack_require__)=>{eval("/* provided dependency */ var jQuery = __webpack_require__(9755);\n( function( $ ) {\n\n\t$.fn.TImageBrowser = function( options ) {\n\t\tGlobal.addCss( 'global/widgets/filebrowser/TImageBrowser.css' );\n\t\tvar opts = $.extend( {}, $.fn.TImageBrowser.defaults, options );\n\n\t\tvar $this = this;\n\t\tvar field;\n\t\tvar id = 'file_browser';\n\t\tvar name = 'filedata';\n\t\tvar browser;\n\n\t\tvar accept_filter = '';\n\n\t\tvar default_width = 177;\n\t\tvar default_height = 42;\n\t\tvar enabled = true;\n\n\t\tthis.setEnabled = function( val ) {\n\t\t\tenabled = val;\n\n\t\t\tvar btn = this.find( '.browser-form input' );\n\n\t\t\tif ( !val ) {\n\t\t\t\tbtn.attr( 'disabled', true );\n\t\t\t\tbtn.removeClass( 'disable-element' ).addClass( 'disable-element' );\n\t\t\t} else {\n\t\t\t\tbtn.removeAttr( 'disabled' );\n\t\t\t\tbtn.removeClass( 'disable-element' );\n\t\t\t}\n\n\t\t};\n\n\t\tthis.clearErrorStyle = function() {\n\n\t\t};\n\n\t\tthis.getFileName = function() {\n\n\t\t\treturn browser.val();\n\t\t};\n\n\t\tthis.getField = function() {\n\t\t\treturn field;\n\t\t};\n\n\t\tthis.setEnableDelete = function( val ) {\n\t\t\tvar image = $this.find( '.image' );\n\t\t\tif ( !val ) {\n\t\t\t\timage.removeAttr( 'enable-delete' );\n\t\t\t\treturn;\n\t\t\t} else {\n\t\t\t\timage.attr( 'enable-delete', 1 );\n\t\t\t}\n\t\t};\n\n\t\tthis.getValue = function() {\n\t\t\tvar form_data;\n\t\t\tif ( browser && browser.val() ) {\n\n\t\t\t\tif ( typeof FormData == 'undefined' ) {\n\t\t\t\t\tform_data = $this.find( '.browser-form' );\n\t\t\t\t} else {\n\t\t\t\t\tform_data = new FormData( $( $this.find( '.browser-form' ) )[0] );\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tform_data = null;\n\t\t\t}\n\n\t\t\treturn form_data;\n\t\t};\n\n\t\tthis.getImageSrc = function() {\n\t\t\tvar image = $this.find( '.image' );\n\t\t\treturn image.attr( 'src' );\n\t\t};\n\n\t\tthis.setImage = function( val ) {\n\t\t\tvar image = $this.find( '.image' );\n\n\t\t\tif ( !val ) {\n\t\t\t\timage.attr( 'src', '' );\n\t\t\t\timage.hide();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar d = new Date();\n\t\t\timage.hide();\n\t\t\timage.attr( 'src', val + '&t=' + d.getTime() );\n\t\t\timage.css( 'height', 'auto' );\n\t\t\timage.css( 'width', 'auto' );\n\n\t\t};\n\n\t\tvar onImageLoad = function( image ) {\n\n\t\t\tvar image_height = $( image ).height() > 0 ? $( image ).height() : image.naturalHeight;\n\t\t\tvar image_width = $( image ).width() > 0 ? $( image ).width() : image.naturalWidth;\n\n\t\t\tif ( image_height > default_height ) {\n\t\t\t\t$( image ).css( 'height', default_height );\n\n\t\t\t}\n\n\t\t\tif ( image_width > default_width ) {\n\t\t\t\t$( image ).css( 'width', default_width );\n\t\t\t\t$( image ).css( 'height', 'auto' );\n\t\t\t}\n\n\t\t\t$this.trigger( 'setSize' );\n\n\t\t\tif ( image_height < 5 ) {\n\t\t\t\t$( image ).hide();\n\t\t\t} else {\n\t\t\t\t$( image ).show();\n\t\t\t}\n\t\t};\n\n\t\tthis.setValue = function( val ) {\n\n\t\t\tif ( !val ) {\n\t\t\t\tval = '';\n\t\t\t}\n\n\t\t};\n\n\t\tthis.each( function() {\n\t\t\tvar o = $.meta ? $.extend( {}, opts, $( this ).data() ) : opts;\n\n\t\t\tfield = o.field;\n\n\t\t\t// var $this = this;\n\n\t\t\tif ( o.default_width > 0 ) {\n\t\t\t\tdefault_width = o.default_width;\n\t\t\t}\n\n\t\t\tif ( o.default_height > 0 ) {\n\t\t\t\tdefault_height = o.default_height;\n\t\t\t}\n\n\t\t\tif ( Global.isSet( o.name ) ) {\n\t\t\t\tname = o.name;\n\t\t\t}\n\n\t\t\tif ( Global.isSet( accept_filter ) ) {\n\t\t\t\taccept_filter = o.accept_filter;\n\t\t\t}\n\n\t\t\tbrowser = $( this ).find( '.browser' );\n\t\t\tvar image = $( this ).find( '.image' );\n\t\t\timage.hide();\n\t\t\timage.on( 'load', function() {\n\t\t\t\tonImageLoad( this );\n\n\t\t\t} );\n\n\t\t\tif ( accept_filter ) {\n\t\t\t\tbrowser.attr( 'accept', accept_filter );\n\t\t\t} else {\n\t\t\t\taccept_filter = 'image/*';\n\t\t\t\tbrowser.attr( 'accept', 'image/*' );\n\t\t\t}\n\n\t\t\tbrowser.attr( 'id', id );\n\t\t\tbrowser.attr( 'name', name );\n\n\t\t\tif ( Global.isSet( o.changeHandler ) ) {\n\n\t\t\t\t$this.bind( 'imageChange', o.changeHandler );\n\t\t\t}\n\t\t\tif ( Global.isSet( o.deleteImageHandler ) ) {\n\t\t\t\tthis.find( '.file-browser' ).on( 'deleteClick', function() {\n\t\t\t\t\to.deleteImageHandler();\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t\tbrowser.bind( 'change', function() {\n\t\t\t\timage.hide();\n\n\t\t\t\tif ( typeof FileReader != 'undefined' ) {\n\n\t\t\t\t\tvar files = !!this.files ? this.files : [];\n\n\t\t\t\t\t// If no files were selected, or no FileReader support, return\n\t\t\t\t\tif ( !files.length || !window.FileReader ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( accept_filter === 'image/*' ) {\n\t\t\t\t\t\t// Create a new instance of the FileReader\n\t\t\t\t\t\tvar reader = new FileReader();\n\n\t\t\t\t\t\t// Read the local file as a DataURL\n\t\t\t\t\t\treader.readAsDataURL( files[0] );\n\n\t\t\t\t\t\t// When loaded, set image data as background of div\n\t\t\t\t\t\treader.onloadend = function() {\n\t\t\t\t\t\t\tvar url = this.result;\n\t\t\t\t\t\t\timage.attr( 'src', url );\n\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t$this.trigger( 'imageChange', [$this] );\n\n\t\t\t} );\n\n\t\t} );\n\n\t\treturn this;\n\n\t};\n\n\t$.fn.TImageBrowser.defaults = {};\n\t$.fn.TImageBrowser.html_template = `\n\t' + $.i18n._( 'Application sent successfully!' ) + '
' );\n\t\tcontent.append( '' + $.i18n._( 'Please ensure that your profile is accurate and complete.' ) + '
' );\n\t\tthis.showAlert( content );\n\t\twindow.location = url;\n\t}\n\n\tuploadFile( file_data, document_revision_id ) {\n\t\tvar $this = this;\n\t\tvar url = _services_ServiceCaller__WEBPACK_IMPORTED_MODULE_4__/* .ServiceCaller.getAPIURL */ .n.getAPIURL( 'Class=' + this.document_api.className + '&Method=uploadAttachment' + '&v=2' );\n\t\tif ( LocalCacheData.getAllURLArgs().company_id ) {\n\t\t\turl = url + '&company_id=' + LocalCacheData.getAllURLArgs().company_id;\n\t\t}\n\t\turl = url + '&object_id=' + document_revision_id;\n\t\tvar message_id = _global_TTUUID__WEBPACK_IMPORTED_MODULE_5__/* .TTUUID.generateUUID */ .d.generateUUID();\n\t\tProgressBar.showProgressBar( message_id );\n\t\tProgressBar.changeProgressBarMessage( 'File Uploading' );\n\t\t$.ajax( {\n\t\t\turl: url, //Server script to process data\n\t\t\theaders: {\n\t\t\t\t//Handle CSRF tokens and related headers here.\n\t\t\t\t'X-Client-ID': 'Browser-TimeTrex',\n\t\t\t\t'X-CSRF-Token': getCookie( 'CSRF-Token' ),\n\t\t\t},\n\t\t\ttype: 'POST',\n\t\t\tdata: file_data,\n\t\t\tsuccess: function( res ) {\n\t\t\t\tProgressBar.removeProgressBar();\n\t\t\t\tif ( res.error == '' ) {\n\t\t\t\t\t$this.applySuccess();\n\t\t\t\t}\n\t\t\t},\n\t\t\tcache: false,\n\t\t\tcontentType: false,\n\t\t\tprocessData: false\n\t\t} );\n\t}\n\n\tregisterNewUser( callBack ) {\n\t\tvar $this = this;\n\t\tvar data = {};\n\t\tdata.first_name = this.$( '.apply-form input[id=\"first_name\"]' ).val();\n\t\tdata.last_name = this.$( '.apply-form input[id=\"last_name\"]' ).val();\n\t\tdata.user_name = this.$( '.apply-form input[id=\"email\"]' ).val();\n\t\tdata.email = data.user_name;\n\t\tdata.password = Math.random().toString( 36 ).replace( /[^a-z0-9]+/g, '' ); //Use a random password for new users.\n\t\tdata.company_id = LocalCacheData.getAllURLArgs().company_id;\n\t\tif ( this.$( '.apply-form input[id=\"email\"]' ).val() === this.$( '.apply-form input[id=\"confirm_email\"]' ).val() ) {\n\t\t\tif ( this.edit_view_error_ui_dic.hasOwnProperty( 'confirm_email' ) ) {\n\t\t\t\tthis.edit_view_error_ui_dic['confirm_email'].removeClass( 'error-tip' );\n\t\t\t\tthis.edit_view_error_ui_dic['confirm_email'].tooltip().qtip( 'destroy' );\n\t\t\t}\n\t\t\tif ( data.first_name != '' && data.last_name != '' && data.email != '' ) {\n\t\t\t\tif ( !this.uploader.getValue() ) {\n\t\t\t\t\tIndexViewController.instance.router.showConfirmModal( $.i18n._( 'Are you sure you want to apply for this position without uploading a resume?' ), {\n\t\t\t\t\t\ttitle: '',\n\t\t\t\t\t\tactions: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: 'No', isClose: true, callBack: function( e ) {\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: 'Yes', callBack: function( e ) {\n\t\t\t\t\t\t\t\t\tIndexViewController.instance.router.hideConfirmModal();\n\t\t\t\t\t\t\t\t\t$this.setJobApplicant( data, callBack );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t]\n\t\t\t\t\t} );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.setJobApplicant( data, callBack );\n\t\t} else {\n\t\t\tthis.removeValidateErrorTips();\n\t\t\tvar field_obj = this.$( '.apply-form' ).find( 'input[id=\"confirm_email\"]' );\n\t\t\tfield_obj.addClass( 'error-tip' );\n\t\t\tfield_obj.tooltip( {\n\t\t\t\t'title': $.i18n._( 'Confirm email does not match email' )\n\t\t\t} );\n\t\t\tfield_obj.tooltip( 'show' );\n\t\t\tthis.edit_view_error_ui_dic['confirm_email'] = field_obj;\n\t\t}\n\t}\n\n\tsetJobApplicant( data, callBack ) {\n\t\tvar $this = this;\n\t\tthis.job_applicant_api.setJobApplicant( data, {\n\t\t\tonResult: function( result ) {\n\t\t\t\tif ( result.isValid() ) {\n\t\t\t\t\t$this.removeValidateErrorTips();\n\t\t\t\t\t$this.edit_view_error_ui_dic = {};\n\t\t\t\t\tcallBack( data.user_name, data.password );\n\t\t\t\t} else {\n\t\t\t\t\t$this.showValidateErrorTips( result );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t}\n\n\tshowValidateErrorTips( result, stepsWidgetDic ) {\n\t\tvar $this = this;\n\n\t\tvar details = result.getDetails();\n\t\tif ( !details ) {\n\t\t\tdetails = result.getDescription(); // If the details is empty, try to get description to show.\n\t\t}\n\n\t\tvar $this = this;\n\t\tif ( Global.isArray( details ) || typeof details === 'object' ) {\n\t\t\tthis.removeValidateErrorTips();\n\t\t\t$.each( details, function( index, val ) {\n\t\t\t\tif ( val.hasOwnProperty( 'error' ) ) {\n\t\t\t\t\tval = val.error;\n\t\t\t\t}\n\t\t\t\t// var row = Global.loadWidget( 'views/portal/alert/alert.html' );\n\t\t\t\t// $this.$('.apply-form').before( row );\n\t\t\t\tfor ( var key in val ) {\n\t\t\t\t\tif ( !val.hasOwnProperty( key ) ) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar error_string = '';\n\t\t\t\t\tif ( key === 'user_name' ) {\n\t\t\t\t\t\t// error_string = val[key][0];\n\t\t\t\t\t\tkey = 'email';\n\t\t\t\t\t\terror_string = $.i18n._( 'Email address already exists, please login instead' );\n\t\t\t\t\t}\n\n\t\t\t\t\tvar field_obj = null;\n\t\t\t\t\tif ( $this.$( '.apply-form' ).find( 'input[id=\"' + key + '\"]' )[0] ) {\n\t\t\t\t\t\tfield_obj = $this.$( '.apply-form' ).find( 'input[id=\"' + key + '\"]' );\n\t\t\t\t\t} else {\n\t\t\t\t\t\t//If no form field is found, show error attached to the form itself.\n\t\t\t\t\t\tfield_obj = $this.$( '.apply-form' );\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( field_obj ) {\n\t\t\t\t\t\tfield_obj.addClass( 'error-tip' );\n\t\t\t\t\t\tif ( !error_string ) {\n\t\t\t\t\t\t\tif ( _.isArray( val[key] ) ) {\n\t\t\t\t\t\t\t\terror_string = val[key][0];\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\terror_string = val[key];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// field_obj.tooltip({\n\t\t\t\t\t\t// \t'title': error_string,\n\t\t\t\t\t\t// })\n\t\t\t\t\t\tfield_obj.attr( { 'title': error_string, 'data-original-title': error_string } );\n\t\t\t\t\t\tfield_obj.tooltip( 'show' );\n\t\t\t\t\t\t$this.edit_view_error_ui_dic[key] = field_obj;\n\t\t\t\t\t\t// sort_array.push( field_obj.attr('data-sort') );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t\treturn false;\n\t}\n\n\tremoveValidateErrorTips() {\n\t\t// this.$('.apply-form').find('input').css('border', '1px solid #c7e0f2');\n\t\tfor ( var key in this.edit_view_error_ui_dic ) {\n\t\t\tif ( key === 'email' || key === 'confirm_email' ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif ( this.edit_view_error_ui_dic[key].val() !== '' ) {\n\t\t\t\tthis.edit_view_error_ui_dic[key].removeClass( 'error-tip' );\n\t\t\t\tthis.edit_view_error_ui_dic[key].tooltip().qtip( 'destroy', true );\n\t\t\t}\n\t\t\t// this.edit_view_error_ui_dic[key].removeClass('error-tip');\n\t\t\t// this.edit_view_error_ui_dic[key].tooltip('destroy');\n\t\t}\n\t\t// this.edit_view_error_ui_dic = {};\n\t\t// if ( typeof this.$('.job-apply-form .alert')[0] !== 'undefined' ) {\n\t\t// \tthis.$('.job-apply-form .alert').remove();\n\t\t// }\n\t}\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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NUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxDQUFDO0FBQ2QsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHNDQUFzQztBQUN0Qzs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLENBQUM7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUIsQ0FBQztBQUN0Qjs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFlBQVksQ0FBQztBQUNiO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Ysd0JBQXdCLDZEQUE2RDtBQUNyRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL2ludGVyZmFjZS9odG1sNS92aWV3cy9wb3J0YWwvaHIvcmVjcnVpdG1lbnQvUG9ydGFsSm9iVmFjYW5jeURldGFpbENvbnRyb2xsZXIuanM/YzQ0MyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVzcG9uc2l2ZUJvb3RzdHJhcFRvb2xraXQgZnJvbSAnQC9mcmFtZXdvcmsvYm9vdHN0cmFwLXRvb2xraXQubWluJztcbmltcG9ydCB7IFBvcnRhbEJhc2VWaWV3Q29udHJvbGxlciB9IGZyb20gJ0Avdmlld3MvcG9ydGFsL1BvcnRhbEJhc2VWaWV3Q29udHJvbGxlcic7XG5pbXBvcnQgeyBUVEFQSSB9IGZyb20gJ0Avc2VydmljZXMvVGltZVRyZXhDbGllbnRBUEknO1xuaW1wb3J0ICdAL2dsb2JhbC93aWRnZXRzL2ZpbGVicm93c2VyL1RJbWFnZUJyb3dzZXInO1xuaW1wb3J0IHsgU2VydmljZUNhbGxlciB9IGZyb20gJ0Avc2VydmljZXMvU2VydmljZUNhbGxlcic7XG5pbXBvcnQgeyBUVFVVSUQgfSBmcm9tICdAL2dsb2JhbC9UVFVVSUQnO1xuXG5pbXBvcnQgdGlueU1DRSBmcm9tICd0aW55bWNlL3RpbnltY2UnO1xuaW1wb3J0ICd0aW55bWNlL2ljb25zL2RlZmF1bHQnOyAvLyBEZWZhdWx0IGljb25zIGFyZSByZXF1aXJlZCBmb3IgVGlueU1DRSA1LjMgb3IgYWJvdmVcbmltcG9ydCAndGlueW1jZS90aGVtZXMvc2lsdmVyJztcbmltcG9ydCAndGlueW1jZS9za2lucy91aS9veGlkZS9za2luLmNzcyc7XG5pbXBvcnQgJ3RpbnltY2UvcGx1Z2lucy9saW5rJztcbmltcG9ydCAndGlueW1jZS9wbHVnaW5zL2F1dG9yZXNpemUnO1xuaW1wb3J0IGNvbnRlbnRVaUNzcyBmcm9tICchIWNzcy1sb2FkZXIhdGlueW1jZS9za2lucy91aS9veGlkZS9jb250ZW50LmNzcyc7IC8vIGh0dHBzOi8vd3d3LnRpbnkuY2xvdWQvZG9jcy9hZHZhbmNlZC91c2FnZS13aXRoLW1vZHVsZS1sb2FkZXJzL3dlYnBhY2svd2VicGFja19lczZfbnBtL1xuaW1wb3J0IGNvbnRlbnRDc3MgZnJvbSAnISFjc3MtbG9hZGVyIXRpbnltY2Uvc2tpbnMvY29udGVudC9kZWZhdWx0L2NvbnRlbnQuY3NzJzsgLy8gaHR0cHM6Ly93d3cudGlueS5jbG91ZC9kb2NzL2FkdmFuY2VkL3VzYWdlLXdpdGgtbW9kdWxlLWxvYWRlcnMvd2VicGFjay93ZWJwYWNrX2VzNl9ucG0vXG5cbmV4cG9ydCBjbGFzcyBQb3J0YWxKb2JWYWNhbmN5RGV0YWlsQ29udHJvbGxlciBleHRlbmRzIFBvcnRhbEJhc2VWaWV3Q29udHJvbGxlciB7XG5cdGNvbnN0cnVjdG9yKCBvcHRpb25zID0ge30gKSB7XG5cdFx0Xy5kZWZhdWx0cyggb3B0aW9ucywge1xuXHRcdFx0ZWRpdF92aWV3X2Vycm9yX3VpX2RpYzoge30sXG5cdFx0XHRldmVudHM6IHtcblx0XHRcdFx0J2NsaWNrICNhcHBseUJ0bic6ICdvbkFwcGx5Sm9iQ2xpY2snLFxuXHRcdFx0XHQnY2xpY2sgI2F2YWlsYWJsZV9qb2JzJzogJ2F2YWlsYWJsZUpvYnNDbGljaycsXG5cdFx0XHRcdCdjbGljayAjYXBwbGllZF9qb2JzJzogJ2FwcGxpZWRKb2JzQ2xpY2snLFxuXHRcdFx0XHQnY2xpY2sgI2FwcGxpZWRfYnRuJzogJ2FwcGxpZWRKb2JzQ2xpY2snLFxuXHRcdFx0XHQnY2xpY2sgLnNpZ24taW4nOiAnc2lnbklOJ1xuXHRcdFx0fVxuXHRcdH0gKTtcblxuXHRcdHN1cGVyKCBvcHRpb25zICk7XG5cdH1cblxuXHRpbml0KCkge1xuXHRcdHRoaXMudmlld0lkID0gJ1BvcnRhbEpvYlZhY2FuY3lEZXRhaWwnO1xuXHRcdHRoaXMuc2NyaXB0X25hbWUgPSAnSm9iVmFjYW5jeURldGFpbFZpZXcnO1xuXHRcdHRoaXMuam9iX2FwcGxpY2FudF9hcGkgPSBUVEFQSS5BUElKb2JBcHBsaWNhbnRQb3J0YWw7XG5cdFx0dGhpcy52aWV3cG9ydCA9ICQuZXh0ZW5kKCB7fSwgUmVzcG9uc2l2ZUJvb3RzdHJhcFRvb2xraXQgKTtcblx0XHR0aGlzLnJlbmRlcigpO1xuXHR9XG5cblx0cmVuZGVyKCkge1xuXHRcdHZhciAkdGhpcyA9IHRoaXM7XG5cdFx0aWYgKCBMb2NhbENhY2hlRGF0YS5nZXRQb3J0YWxMb2dpblVzZXIoKSApIHtcblx0XHRcdHRoaXMuc2V0UmVnaXN0ZXJDb250YWluZXJTdGF0dXMoIGZ1bmN0aW9uKCBhcHBsaWVkICkge1xuXHRcdFx0XHQkdGhpcy5zaG93Sm9iVmFjYW5jeSggeyBhcHBsaWVkOiBhcHBsaWVkIH0gKTtcblx0XHRcdH0gKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5zaG93Sm9iVmFjYW5jeSgpO1xuXHRcdH1cblx0fVxuXG5cdHNob3dKb2JWYWNhbmN5KCBvcHRpb25zICkge1xuXHRcdHZhciAkdGhpcyA9IHRoaXM7XG5cdFx0dmFyIHJvdyA9IEdsb2JhbC5sb2FkV2lkZ2V0KCAndmlld3MvcG9ydGFsL2hyL3JlY3J1aXRtZW50L1BvcnRhbEpvYlZhY2FuY3lEZXRhaWwuaHRtbCcgKTtcblx0XHR2YXIgdXNlcl9kYXRhID0geyBmaXJzdF9uYW1lOiAnJywgbGFzdF9uYW1lOiAnJywgZW1haWw6ICcnLCBhcHBsaWVkOiBmYWxzZSB9O1xuXHRcdGlmICggTG9jYWxDYWNoZURhdGEuZ2V0UG9ydGFsTG9naW5Vc2VyKCkgKSB7XG5cdFx0XHR1c2VyX2RhdGEgPSB7XG5cdFx0XHRcdGZpcnN0X25hbWU6IExvY2FsQ2FjaGVEYXRhLmdldFBvcnRhbExvZ2luVXNlcigpLmZpcnN0X25hbWUsXG5cdFx0XHRcdGxhc3RfbmFtZTogTG9jYWxDYWNoZURhdGEuZ2V0UG9ydGFsTG9naW5Vc2VyKCkubGFzdF9uYW1lLFxuXHRcdFx0XHRlbWFpbDogTG9jYWxDYWNoZURhdGEuZ2V0UG9ydGFsTG9naW5Vc2VyKCkuZW1haWxcblx0XHRcdH07XG5cdFx0fVxuXHRcdGlmICggR2xvYmFsLmlzU2V0KCBvcHRpb25zICkgJiYgR2xvYmFsLmlzU2V0KCBvcHRpb25zLmFwcGxpZWQgKSApIHtcblx0XHRcdHVzZXJfZGF0YS5hcHBsaWVkID0gb3B0aW9ucy5hcHBsaWVkO1xuXHRcdH1cblx0XHRmb3IgKCB2YXIga2V5IGluIHRoaXMubW9kZWwuYXR0cmlidXRlcyApIHtcblx0XHRcdGlmICggdGhpcy5tb2RlbC5nZXQoIGtleSApID09IGZhbHNlICkge1xuXHRcdFx0XHR0aGlzLm1vZGVsLnNldCgga2V5LCAnJyApO1xuXHRcdFx0fVxuXHRcdH1cblx0XHR0aGlzLiRlbC5odG1sKCBfLnRlbXBsYXRlKCByb3cgKSggJC5leHRlbmQoIHVzZXJfZGF0YSwgdGhpcy5tb2RlbC50b0pTT04oKSApICkgKTtcblx0XHRpZiAoICFfLmlzVW5kZWZpbmVkKCAkKCAnLnRpbnltY2UtdGV4dGFyZWEnIClbMF0gKSApIHtcblx0XHRcdHZhciBjYWxjX3RpbnltY2VfaGVpZ2h0ID0gc2V0SW50ZXJ2YWwoIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHR2YXIgaWZyYW1lX2hlaWdodCA9ICQoICcudGlueW1jZS10ZXh0YXJlYScgKS5maW5kKCAnaWZyYW1lJyApLmhlaWdodCgpO1xuXHRcdFx0XHR2YXIgYm9keV9oZWlnaHQgPSAkKCAnLnRpbnltY2UtdGV4dGFyZWEnICkuZmluZCggJ2lmcmFtZScgKS5jb250ZW50cygpLmZpbmQoICdib2R5JyApLmhlaWdodCgpO1xuXHRcdFx0XHRpZiAoIF8uaXNVbmRlZmluZWQoICQoICcuam9iLWRldGFpbC1zdW1tYXJ5LWRlc2NyaXB0aW9uJyApWzBdICkgKSB7XG5cdFx0XHRcdFx0JCggJy50aW55bWNlLXRleHRhcmVhJyApLmZpbmQoICdpZnJhbWUnICkuY29udGVudHMoKS5maW5kKCAnYm9keScgKS5jc3MoIHtcblx0XHRcdFx0XHRcdCdiYWNrZ3JvdW5kLWNvbG9yJzogJyNGNkY2RjYnLFxuXHRcdFx0XHRcdFx0J2ZvbnQtc2l6ZSc6ICcxNHB4Jyxcblx0XHRcdFx0XHRcdCdtYXJnaW4tdG9wJzogMCxcblx0XHRcdFx0XHRcdCdjb2xvcic6ICcjNDA0MDQyJ1xuXHRcdFx0XHRcdH0gKTtcblx0XHRcdFx0XHQkKCAnLnRpbnltY2UtdGV4dGFyZWEnICkuZmluZCggJ2lmcmFtZScgKS5jb250ZW50cygpLmZpbmQoICdib2R5IHA6Zmlyc3QtY2hpbGQnICkuY3NzKCAnbWFyZ2luLXRvcCcsIDAgKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHQkKCAnLnRpbnltY2UtdGV4dGFyZWEnICkuZmluZCggJ2lmcmFtZScgKS5jb250ZW50cygpLmZpbmQoICdib2R5JyApLmNzcygge1xuXHRcdFx0XHRcdFx0J21hcmdpbic6IDAsXG5cdFx0XHRcdFx0XHQnYmFja2dyb3VuZC1jb2xvcic6ICcjRThFOEU4Jyxcblx0XHRcdFx0XHRcdCdmb250LXNpemUnOiAnMTRweCcsXG5cdFx0XHRcdFx0XHQnbWFyZ2luLXRvcCc6IDAsXG5cdFx0XHRcdFx0XHQnY29sb3InOiAnIzQwNDA0Midcblx0XHRcdFx0XHR9ICk7XG5cdFx0XHRcdFx0JCggJy50aW55bWNlLXRleHRhcmVhJyApLmZpbmQoICdpZnJhbWUnICkuY29udGVudHMoKS5maW5kKCAnYm9keSBwOmZpcnN0LWNoaWxkJyApLmNzcyggJ21hcmdpbi10b3AnLCAwICk7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKCBpZnJhbWVfaGVpZ2h0ID4gYm9keV9oZWlnaHQgKSB7XG5cdFx0XHRcdFx0Y2xlYXJJbnRlcnZhbCggY2FsY190aW55bWNlX2hlaWdodCApO1xuXHRcdFx0XHRcdCQoICcudGlueW1jZS10ZXh0YXJlYScgKS5maW5kKCAnaWZyYW1lJyApLmNzcyggJ2hlaWdodCcsIGJvZHlfaGVpZ2h0ICk7XG5cdFx0XHRcdH1cblx0XHRcdH0sIDUwICk7XG5cdFx0fVxuXHRcdHRoaXMuJCggJ2lucHV0W3R5cGU9XCJ0ZXh0XCJdLCBpbnB1dFt0eXBlPVwiZW1haWxcIl0nICkuZWFjaCggZnVuY3Rpb24oKSB7XG5cdFx0XHQkKCB0aGlzICkudW5iaW5kKCAnZm9jdXMnICkuYmluZCggJ2ZvY3VzJywgZnVuY3Rpb24oKSB7XG5cdFx0XHRcdCQoIHRoaXMgKS5wYXJlbnQoKS5hZGRDbGFzcyggJ2pvYi1hcHBseS1mb3JtLWZvY3VzJyApO1xuXHRcdFx0fSApO1xuXHRcdH0gKTtcblx0XHR0aGlzLiQoICdpbnB1dFt0eXBlPVwidGV4dFwiXSwgaW5wdXRbdHlwZT1cImVtYWlsXCJdJyApLmVhY2goIGZ1bmN0aW9uKCkge1xuXHRcdFx0JCggdGhpcyApLnVuYmluZCggJ2JsdXInICkuYmluZCggJ2JsdXInLCBmdW5jdGlvbigpIHtcblx0XHRcdFx0JCggdGhpcyApLnBhcmVudCgpLnJlbW92ZUNsYXNzKCAnam9iLWFwcGx5LWZvcm0tZm9jdXMnICk7XG5cdFx0XHR9ICk7XG5cdFx0fSApO1xuXG5cdFx0dGhpcy5zZXREZXRhaWxBbmRBcHBseUZvcm1IZWlnaHQoKTtcblx0XHQkKCB3aW5kb3cgKS5yZXNpemUoXG5cdFx0XHQkdGhpcy52aWV3cG9ydC5jaGFuZ2VkKCBmdW5jdGlvbigpIHtcblx0XHRcdFx0JHRoaXMuc2V0RGV0YWlsQW5kQXBwbHlGb3JtSGVpZ2h0KCk7XG5cdFx0XHR9IClcblx0XHQpO1xuXHRcdC8vIGlmICggTG9jYWxDYWNoZURhdGEuZ2V0UG9ydGFsTG9naW5Vc2VyKCkgKSB7XG5cdFx0Ly8gXHR0aGlzLnNldFJlZ2lzdGVyQ29udGFpbmVyU3RhdHVzKCk7XG5cdFx0Ly8gfSBlbHNlIHtcblx0XHQvLyBcdCR0aGlzLiQoJy5hcHBseS1mb3JtIC5mb3JtLWdyb3VwJykuc2hvdygpO1xuXHRcdC8vIH1cblx0XHR0aGlzLnVwbG9hZGVyID0gdGhpcy4kKCAnLnJlZ2lzdGVyLXJlc3VtZScgKS5USW1hZ2VCcm93c2VyKCB7XG5cdFx0XHRmaWVsZDogJ2ZpbGUnLFxuXHRcdFx0bmFtZTogJ2ZpbGVkYXRhJyxcblx0XHRcdGFjY2VwdF9maWx0ZXI6ICcqJyxcblx0XHRcdGNoYW5nZUhhbmRsZXI6IGZ1bmN0aW9uKCBhICkge1xuXHRcdFx0XHR2YXIgZmlsZV9uYW1lID0gJCggdGhpcyApLmZpbmQoICcuYnJvd3NlcicgKVswXS5maWxlc1swXS5uYW1lO1xuXHRcdFx0XHQkdGhpcy4kKCAnLmFwcGx5LWZvcm0gI2ZpbGVfbmFtZScgKS52YWwoIGZpbGVfbmFtZSApO1xuXHRcdFx0fVxuXHRcdH0gKTtcblxuXHRcdC8vIHN0YXJ0LSBmcm9tIGh0bWwgUG9ydGFsSm9iVmFjYW5jeURldGFpbC5odG1sXG5cblx0XHQvLyBpZiAoICQuYnJvd3Nlci5tb3ppbGxhICkge1xuXHRcdC8vICAgIHRpbnltY2UuZWRpdG9ycyA9IFtdO1xuXHRcdC8vIH0gZWxzZSB7XG5cdFx0dmFyIGksIHQgPSB0aW55TUNFLmVkaXRvcnM7XG5cdFx0Zm9yICggaSBpbiB0ICkge1xuXHRcdFx0aWYgKCB0Lmhhc093blByb3BlcnR5KCBpICkgKSB7XG5cdFx0XHRcdHRbaV0ucmVtb3ZlKCk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cdFx0dGlueW1jZS5pbml0KCB7XG5cdFx0XHRwbHVnaW5zOiBcImF1dG9yZXNpemUsIGxpbmtcIixcblx0XHRcdC8vIGhlaWdodDogJzMwMHB4Jyxcblx0XHRcdHJlYWRvbmx5OiB0cnVlLFxuXHRcdFx0c2VsZWN0b3I6ICcjZGVzY3JpcHRpb24nLFxuXHRcdFx0bWVudWJhcjogZmFsc2UsXG5cdFx0XHRzdGF0dXNiYXI6IGZhbHNlLFxuXHRcdFx0dG9vbGJhcjogZmFsc2UsXG5cdFx0XHR0aGVtZTogJ3NpbHZlcicsXG5cdFx0XHRza2luOiBmYWxzZSxcblx0XHRcdGNvbnRlbnRfY3NzOiBmYWxzZSxcblx0XHRcdGNvbnRlbnRfc3R5bGU6IGNvbnRlbnRVaUNzcy50b1N0cmluZygpICsgJ1xcbidcblx0XHRcdFx0XHRcdCArIGNvbnRlbnRDc3MudG9TdHJpbmcoKSxcblx0XHR9ICk7XG5cblx0XHQkKCAnLmFwcGx5LWZvcm0nICkudW5iaW5kKCAna2V5ZG93bicgKS5iaW5kKCAna2V5ZG93bicsIGZ1bmN0aW9uKCBlICkge1xuXHRcdFx0aWYgKCBlLmtleUNvZGUgPT09IDEzICkge1xuXHRcdFx0XHQkdGhpcy5vbkFwcGx5Sm9iQ2xpY2soKTtcblx0XHRcdH1cblx0XHR9ICk7XG5cblx0XHQvLyBlbmQgLSBmcm9tIGh0bWxcblx0fVxuXG5cdHNldERldGFpbEFuZEFwcGx5Rm9ybUhlaWdodCgpIHtcblx0XHR2YXIgZGV0YWlsX3BhbmVsX2hlYWRlcl9oZWlnaHQgPSB0aGlzLiQoICcuam9iLWhlYWRlcicgKS5oZWlnaHQoKTtcblx0XHR2YXIgYXBwbHlfZm9ybV9faGVhZGVyX2hlaWdodCA9IHRoaXMuJCggJy5qb2ItYXBwbHknICkuaGVpZ2h0KCk7XG5cdFx0aWYgKCB0aGlzLnZpZXdwb3J0LmlzKCAnbWQnICkgfHwgdGhpcy52aWV3cG9ydC5pcyggJz5tZCcgKSApIHtcblx0XHRcdGlmICggZGV0YWlsX3BhbmVsX2hlYWRlcl9oZWlnaHQgIT09IGFwcGx5X2Zvcm1fX2hlYWRlcl9oZWlnaHQgKSB7XG5cdFx0XHRcdGlmICggZGV0YWlsX3BhbmVsX2hlYWRlcl9oZWlnaHQgPiBhcHBseV9mb3JtX19oZWFkZXJfaGVpZ2h0ICkge1xuXHRcdFx0XHRcdHRoaXMuJCggJy5qb2ItYXBwbHknICkuaGVpZ2h0KCBkZXRhaWxfcGFuZWxfaGVhZGVyX2hlaWdodCAtIDIwICk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0dGhpcy4kKCAnLmpvYi1oZWFkZXInICkuaGVpZ2h0KCBhcHBseV9mb3JtX19oZWFkZXJfaGVpZ2h0ICsgMjAgKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0gZWxzZSBpZiAoIHRoaXMudmlld3BvcnQuaXMoICc8PXNtJyApICkge1xuXHRcdFx0dGhpcy4kKCAnLmpvYi1hcHBseScgKS5oZWlnaHQoIDcwICk7XG5cdFx0fVxuXHR9XG5cblx0b25BcHBseUpvYkNsaWNrKCkge1xuXHRcdHZhciAkdGhpcyA9IHRoaXM7XG5cdFx0aWYgKCBMb2NhbENhY2hlRGF0YS5nZXRQb3J0YWxMb2dpblVzZXIoKSApIHtcblx0XHRcdHRoaXMuZ2V0Sm9iQXBwbGljYXRpb24oIGZ1bmN0aW9uKCByZXN1bHQgKSB7XG5cdFx0XHRcdGlmICggcmVzdWx0LmlzVmFsaWQoKSApIHtcblx0XHRcdFx0XHR2YXIgcmVzdWx0X2RhdGEgPSByZXN1bHQuZ2V0UmVzdWx0KCk7XG5cdFx0XHRcdFx0aWYgKCAhR2xvYmFsLmlzQXJyYXkoIHJlc3VsdF9kYXRhICkgKSB7XG5cdFx0XHRcdFx0XHRyZXN1bHRfZGF0YSA9IFtdO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZiAoIHJlc3VsdF9kYXRhLmxlbmd0aCA+IDAgKSB7XG5cdFx0XHRcdFx0XHR2YXIgbG9jYXRpb24gPSBHbG9iYWwuZ2V0QmFzZVVSTCgpICsgJyMhbT1NeVByb2ZpbGUmY29tcGFueV9pZD0nICsgTG9jYWxDYWNoZURhdGEuZ2V0QWxsVVJMQXJncygpWydjb21wYW55X2lkJ107XG5cdFx0XHRcdFx0XHR3aW5kb3cubG9jYXRpb24gPSBsb2NhdGlvbjtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0JHRoaXMudXBsb2FkUmVzdW1lKCk7XG5cdFx0XHRcdFx0XHQkdGhpcy5zYXZlQ3VycmVudEpvYlZhY2FuY3koKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH0gKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5yZWdpc3Rlck5ld1VzZXIoIGZ1bmN0aW9uKCB1c2VyX25hbWUsIHBhc3N3b3JkICkge1xuXHRcdFx0XHR2YXIgcmVjcnVpdG1lbnRfYXBpID0gVFRBUEkuQVBJUmVjcnVpdG1lbnRBdXRoZW50aWNhdGlvbjtcblx0XHRcdFx0cmVjcnVpdG1lbnRfYXBpLkxvZ2luKCB1c2VyX25hbWUsIHBhc3N3b3JkLCB7XG5cdFx0XHRcdFx0b25SZXN1bHQ6IGZ1bmN0aW9uKCBlICkge1xuXHRcdFx0XHRcdFx0JHRoaXMub25Mb2dpblN1Y2Nlc3MoIGUgKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gKTtcblx0XHRcdH0gKTtcblx0XHR9XG5cdH1cblxuXHRhdmFpbGFibGVKb2JzQ2xpY2soKSB7XG5cdFx0d2luZG93LmxvY2F0aW9uID0gR2xvYmFsLmdldEJhc2VVUkwoKSArICcjIW09UG9ydGFsSm9iVmFjYW5jeSZjb21wYW55X2lkPScgKyBMb2NhbENhY2hlRGF0YS5nZXRBbGxVUkxBcmdzKCkuY29tcGFueV9pZDtcblx0XHRMb2NhbENhY2hlRGF0YS5zZXRBbGxVUkxBcmdzKCB7fSApO1xuXHR9XG5cblx0YXBwbGllZEpvYnNDbGljaygpIHtcblx0XHR2YXIgJHRoaXMgPSB0aGlzO1xuXHRcdHdpbmRvdy5sb2NhdGlvbiA9IEdsb2JhbC5nZXRCYXNlVVJMKCkgKyAnIyFtPU15Sm9iQXBwbGljYXRpb24mY29tcGFueV9pZD0nICsgTG9jYWxDYWNoZURhdGEuZ2V0QWxsVVJMQXJncygpLmNvbXBhbnlfaWQ7XG5cdFx0TG9jYWxDYWNoZURhdGEuc2V0QWxsVVJMQXJncygge30gKTtcblx0fVxuXG5cdHNpZ25JTigpIHtcblx0XHR2YXIgc2lnbl9jb250cm9sbGVyID0gbmV3IFNpZ25JbkNvbnRyb2xsZXIoIHtcblx0XHRcdF9kZWxlZ2F0ZTogdGhpc1xuXHRcdH0gKTtcblx0fVxuXG5cdG9uTG9naW5TdWNjZXNzKCBlLCBzZXNzaW9uX2lkICkge1xuXHRcdHZhciByZXN1bHQ7XG5cdFx0dmFyICR0aGlzID0gdGhpcztcblx0XHRpZiAoICFzZXNzaW9uX2lkICkge1xuXHRcdFx0cmVzdWx0ID0gZS5nZXRSZXN1bHQoKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmVzdWx0ID0gc2Vzc2lvbl9pZDtcblx0XHR9XG5cdFx0U2VydmljZUNhbGxlci5jYW5jZWxfYWxsX2Vycm9yID0gZmFsc2U7XG5cdFx0TG9jYWxDYWNoZURhdGEuc2V0U2Vzc2lvbklEKCByZXN1bHQgKTtcblx0XHRzZXRDb29raWUoIEdsb2JhbC5nZXRTZXNzaW9uSURLZXkoKSwgcmVzdWx0ICk7XG5cdFx0dmFyIGpvYmFwcGxpY2FudF9hcGkgPSBUVEFQSS5BUElKb2JBcHBsaWNhbnRQb3J0YWw7XG5cdFx0am9iYXBwbGljYW50X2FwaS5nZXRKb2JBcHBsaWNhbnQoIHtcblx0XHRcdG9uUmVzdWx0OiBmdW5jdGlvbiggcmVzdWx0ICkge1xuXHRcdFx0XHRpZiAoIHJlc3VsdC5pc1ZhbGlkKCkgKSB7XG5cdFx0XHRcdFx0TG9jYWxDYWNoZURhdGEuc2V0UG9ydGFsTG9naW5Vc2VyKCByZXN1bHQuZ2V0UmVzdWx0KClbMF0gKTtcblx0XHRcdFx0XHRJbmRleFZpZXdDb250cm9sbGVyLmluc3RhbmNlLnJvdXRlci5oZWFkZXJWaWV3LnJlbmRlcigpO1xuXHRcdFx0XHRcdCR0aGlzLnVwbG9hZFJlc3VtZSgpO1xuXHRcdFx0XHRcdCR0aGlzLnNhdmVDdXJyZW50Sm9iVmFjYW5jeSgpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFByb2dyZXNzQmFyLmNsb3NlT3ZlcmxheSgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSApO1xuXHR9XG5cblx0c2V0UmVnaXN0ZXJDb250YWluZXJTdGF0dXMoIGNhbGxiYWNrICkge1xuXHRcdHZhciAkdGhpcyA9IHRoaXM7XG5cdFx0dGhpcy5nZXRKb2JBcHBsaWNhdGlvbiggZnVuY3Rpb24oIHJlcyApIHtcblx0XHRcdHZhciByZXN1bHQgPSBmYWxzZTtcblx0XHRcdGlmICggcmVzLmlzVmFsaWQoKSApIHtcblx0XHRcdFx0dmFyIHJlc3VsdF9kYXRhID0gcmVzLmdldFJlc3VsdCgpO1xuXHRcdFx0XHRpZiAoICFHbG9iYWwuaXNBcnJheSggcmVzdWx0X2RhdGEgKSApIHtcblx0XHRcdFx0XHRyZXN1bHRfZGF0YSA9IFtdO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICggcmVzdWx0X2RhdGEubGVuZ3RoID4gMCApIHtcblx0XHRcdFx0XHQvLyAkdGhpcy4kKCcuYXBwbHktZm9ybSAuZm9ybS1ncm91cCcpLmhpZGUoKTtcblx0XHRcdFx0XHQvLyAkdGhpcy5oaWRlQXBwbHlGb3JtKCk7XG5cdFx0XHRcdFx0cmVzdWx0ID0gdHJ1ZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0Y2FsbGJhY2soIHJlc3VsdCApO1xuXHRcdH0gKTtcblx0fVxuXG5cdC8vIGhpZGVBcHBseUZvcm06IGZ1bmN0aW9uICgpIHtcblx0Ly8gXHR0aGlzLiQoJy5hcHBseS1mb3JtIC5mb3JtLWdyb3VwJykuaGlkZSgpO1xuXHQvLyBcdHRoaXMuJCgnLmFwcGx5LWZvcm0gYnV0dG9uW2lkPVwiYXBwbHlCdG5cIl0nKS50ZXh0KCAkLmkxOG4uXygnQXBwbGllZCcpICApLmF0dHIoJ2Rpc2FibGVkJywgJ2Rpc2FibGVkJyk7XG5cdC8vIH0sXG5cblx0Ly8gc2hvd0FwcGx5Rm9ybTogZnVuY3Rpb24gKCkge1xuXHQvLyBcdHRoaXMuJCgnLmFwcGx5LWZvcm0gLmZvcm0tZ3JvdXAnKS5zaG93KCk7XG5cdC8vIFx0dGhpcy4kKCcuYXBwbHktZm9ybSBidXR0b25baWQ9XCJhcHBseUJ0blwiXScpLmh0bWwoICQuaTE4bi5fKCdBcHBseScpICsgJzxzcGFuIGNsYXNzPVwiZ2x5cGhpY29uIGdseXBoaWNvbi1tZW51LXJpZ2h0XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPicgKS5yZW1vdmVBdHRyKCdkaXNhYmxlZCcpO1xuXHQvLyB9LFxuXG5cdGdldEpvYkFwcGxpY2F0aW9uKCBjYWxsYmFjayApIHtcblx0XHR2YXIgJHRoaXMgPSB0aGlzO1xuXHRcdHZhciBmaWx0ZXIgPSB7fTtcblx0XHRmaWx0ZXIuZmlsdGVyX2RhdGEgPSB7fTtcblx0XHRmaWx0ZXIuZmlsdGVyX2RhdGEuam9iX3ZhY2FuY3lfaWQgPSB0aGlzLm1vZGVsLmlkO1xuXHRcdHRoaXMuam9iX2FwcGxpY2FudF9hcGkuZ2V0Sm9iQXBwbGljYXRpb24oIGZpbHRlciwge1xuXHRcdFx0b25SZXN1bHQ6IGZ1bmN0aW9uKCByZXN1bHQgKSB7XG5cdFx0XHRcdGNhbGxiYWNrKCByZXN1bHQgKTtcblx0XHRcdH1cblx0XHR9ICk7XG5cdH1cblxuXHRzYXZlQ3VycmVudEpvYlZhY2FuY3koIGNhbGxiYWNrICkge1xuXHRcdHZhciAkdGhpcyA9IHRoaXM7XG5cdFx0dmFyIHJlY29yZCA9IHt9O1xuXHRcdHJlY29yZC5qb2JfdmFjYW5jeV9pZCA9IHRoaXMubW9kZWwuaWQ7XG5cdFx0dGhpcy5qb2JfYXBwbGljYW50X2FwaS5zZXRKb2JBcHBsaWNhdGlvbiggcmVjb3JkLCB7XG5cdFx0XHRvblJlc3VsdDogZnVuY3Rpb24oIHJlc3VsdCApIHtcblx0XHRcdFx0aWYgKCAhcmVzdWx0LmlzVmFsaWQoKSApIHtcblx0XHRcdFx0XHQkdGhpcy5zaG93VmFsaWRhdGVFcnJvclRpcHMoIHJlc3VsdCApO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdCR0aGlzLnJlbmRlcigpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSApO1xuXHR9XG5cblx0c2hvd0FsZXJ0KCBjb250ZW50ICkge1xuXHRcdEluZGV4Vmlld0NvbnRyb2xsZXIuaW5zdGFuY2Uucm91dGVyLnNob3dUaXBNb2RhbCggY29udGVudCwge1xuXHRcdFx0c3R5bGU6IHtcblx0XHRcdFx0J2JvcmRlcic6ICcycHggc29saWQgIzE1NDU3NScsXG5cdFx0XHRcdCdjb2xvcic6ICcjMTU0NTc1J1xuXHRcdFx0fVxuXHRcdH0gKTtcblx0fVxuXG5cdHVwbG9hZFJlc3VtZSgpIHtcblx0XHRpZiAoICF0aGlzLnVwbG9hZGVyICkge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblx0XHR2YXIgdXBsb2FkZXIgPSB0aGlzLnVwbG9hZGVyO1xuXHRcdHZhciBuYW1lID0gdXBsb2FkZXIuYXR0ciggJ2ZpbGVfbmFtZScgKTtcblx0XHR2YXIgZmlsZSA9IHVwbG9hZGVyLmdldFZhbHVlKCk7XG5cdFx0aWYgKCBmaWxlICkge1xuXHRcdFx0dGhpcy5kb2N1bWVudF9hcGkgPSBUVEFQSS5BUElEb2N1bWVudFBvcnRhbDtcblx0XHRcdHZhciBkb2N1bWVudF9uYW1lID0gJ1Jlc3VtZScgKyAnIC0gJyArIHRoaXMuJCggJy5hcHBseS1mb3JtIGlucHV0W2lkPVwiZmlyc3RfbmFtZVwiXScgKS52YWwoKSArICcgJyArIHRoaXMuJCggJy5hcHBseS1mb3JtIGlucHV0W2lkPVwibGFzdF9uYW1lXCJdJyApLnZhbCgpO1xuXHRcdFx0dmFyIGRvY3VtZW50X3JldmlzaW9uX2lkID0gdGhpcy5kb2N1bWVudF9hcGkuYWRkQXR0YWNobWVudCggZG9jdW1lbnRfbmFtZSwgJycsIHsgYXN5bmM6IGZhbHNlIH0gKS5nZXRSZXN1bHQoKVsnZG9jdW1lbnRfcmV2aXNpb25faWQnXTtcblx0XHRcdHRoaXMudXBsb2FkRmlsZSggZmlsZSwgZG9jdW1lbnRfcmV2aXNpb25faWQgKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5hcHBseVN1Y2Nlc3MoKTtcblx0XHR9XG5cdH1cblxuXHRhcHBseVN1Y2Nlc3MoKSB7XG5cdFx0dmFyIHVybCA9IEdsb2JhbC5nZXRCYXNlVVJMKCkgKyAnIyFtPU15UHJvZmlsZSZjb21wYW55X2lkPScgKyBMb2NhbENhY2hlRGF0YS5nZXRBbGxVUkxBcmdzKClbJ2NvbXBhbnlfaWQnXTtcblx0XHR2YXIgY29udGVudCA9ICQoICc8ZGl2PicgKTtcblx0XHRjb250ZW50LmFwcGVuZCggJzxwPicgKyAkLmkxOG4uXyggJ0FwcGxpY2F0aW9uIHNlbnQgc3VjY2Vzc2Z1bGx5IScgKSArICc8L3A+JyApO1xuXHRcdGNvbnRlbnQuYXBwZW5kKCAnPHA+JyArICQuaTE4bi5fKCAnUGxlYXNlIGVuc3VyZSB0aGF0IHlvdXIgcHJvZmlsZSBpcyBhY2N1cmF0ZSBhbmQgY29tcGxldGUuJyApICsgJzwvcD4nICk7XG5cdFx0dGhpcy5zaG93QWxlcnQoIGNvbnRlbnQgKTtcblx0XHR3aW5kb3cubG9jYXRpb24gPSB1cmw7XG5cdH1cblxuXHR1cGxvYWRGaWxlKCBmaWxlX2RhdGEsIGRvY3VtZW50X3JldmlzaW9uX2lkICkge1xuXHRcdHZhciAkdGhpcyA9IHRoaXM7XG5cdFx0dmFyIHVybCA9IFNlcnZpY2VDYWxsZXIuZ2V0QVBJVVJMKCAnQ2xhc3M9JyArIHRoaXMuZG9jdW1lbnRfYXBpLmNsYXNzTmFtZSArICcmTWV0aG9kPXVwbG9hZEF0dGFjaG1lbnQnICsgJyZ2PTInICk7XG5cdFx0aWYgKCBMb2NhbENhY2hlRGF0YS5nZXRBbGxVUkxBcmdzKCkuY29tcGFueV9pZCApIHtcblx0XHRcdHVybCA9IHVybCArICcmY29tcGFueV9pZD0nICsgTG9jYWxDYWNoZURhdGEuZ2V0QWxsVVJMQXJncygpLmNvbXBhbnlfaWQ7XG5cdFx0fVxuXHRcdHVybCA9IHVybCArICcmb2JqZWN0X2lkPScgKyBkb2N1bWVudF9yZXZpc2lvbl9pZDtcblx0XHR2YXIgbWVzc2FnZV9pZCA9IFRUVVVJRC5nZW5lcmF0ZVVVSUQoKTtcblx0XHRQcm9ncmVzc0Jhci5zaG93UHJvZ3Jlc3NCYXIoIG1lc3NhZ2VfaWQgKTtcblx0XHRQcm9ncmVzc0Jhci5jaGFuZ2VQcm9ncmVzc0Jhck1lc3NhZ2UoICdGaWxlIFVwbG9hZGluZycgKTtcblx0XHQkLmFqYXgoIHtcblx0XHRcdHVybDogdXJsLCAvL1NlcnZlciBzY3JpcHQgdG8gcHJvY2VzcyBkYXRhXG5cdFx0XHRoZWFkZXJzOiB7XG5cdFx0XHRcdC8vSGFuZGxlIENTUkYgdG9rZW5zIGFuZCByZWxhdGVkIGhlYWRlcnMgaGVyZS5cblx0XHRcdFx0J1gtQ2xpZW50LUlEJzogJ0Jyb3dzZXItVGltZVRyZXgnLFxuXHRcdFx0XHQnWC1DU1JGLVRva2VuJzogZ2V0Q29va2llKCAnQ1NSRi1Ub2tlbicgKSxcblx0XHRcdH0sXG5cdFx0XHR0eXBlOiAnUE9TVCcsXG5cdFx0XHRkYXRhOiBmaWxlX2RhdGEsXG5cdFx0XHRzdWNjZXNzOiBmdW5jdGlvbiggcmVzICkge1xuXHRcdFx0XHRQcm9ncmVzc0Jhci5yZW1vdmVQcm9ncmVzc0JhcigpO1xuXHRcdFx0XHRpZiAoIHJlcy5lcnJvciA9PSAnJyApIHtcblx0XHRcdFx0XHQkdGhpcy5hcHBseVN1Y2Nlc3MoKTtcblx0XHRcdFx0fVxuXHRcdFx0fSxcblx0XHRcdGNhY2hlOiBmYWxzZSxcblx0XHRcdGNvbnRlbnRUeXBlOiBmYWxzZSxcblx0XHRcdHByb2Nlc3NEYXRhOiBmYWxzZVxuXHRcdH0gKTtcblx0fVxuXG5cdHJlZ2lzdGVyTmV3VXNlciggY2FsbEJhY2sgKSB7XG5cdFx0dmFyICR0aGlzID0gdGhpcztcblx0XHR2YXIgZGF0YSA9IHt9O1xuXHRcdGRhdGEuZmlyc3RfbmFtZSA9IHRoaXMuJCggJy5hcHBseS1mb3JtIGlucHV0W2lkPVwiZmlyc3RfbmFtZVwiXScgKS52YWwoKTtcblx0XHRkYXRhLmxhc3RfbmFtZSA9IHRoaXMuJCggJy5hcHBseS1mb3JtIGlucHV0W2lkPVwibGFzdF9uYW1lXCJdJyApLnZhbCgpO1xuXHRcdGRhdGEudXNlcl9uYW1lID0gdGhpcy4kKCAnLmFwcGx5LWZvcm0gaW5wdXRbaWQ9XCJlbWFpbFwiXScgKS52YWwoKTtcblx0XHRkYXRhLmVtYWlsID0gZGF0YS51c2VyX25hbWU7XG5cdFx0ZGF0YS5wYXNzd29yZCA9IE1hdGgucmFuZG9tKCkudG9TdHJpbmcoIDM2ICkucmVwbGFjZSggL1teYS16MC05XSsvZywgJycgKTsgLy9Vc2UgYSByYW5kb20gcGFzc3dvcmQgZm9yIG5ldyB1c2Vycy5cblx0XHRkYXRhLmNvbXBhbnlfaWQgPSBMb2NhbENhY2hlRGF0YS5nZXRBbGxVUkxBcmdzKCkuY29tcGFueV9pZDtcblx0XHRpZiAoIHRoaXMuJCggJy5hcHBseS1mb3JtIGlucHV0W2lkPVwiZW1haWxcIl0nICkudmFsKCkgPT09IHRoaXMuJCggJy5hcHBseS1mb3JtIGlucHV0W2lkPVwiY29uZmlybV9lbWFpbFwiXScgKS52YWwoKSApIHtcblx0XHRcdGlmICggdGhpcy5lZGl0X3ZpZXdfZXJyb3JfdWlfZGljLmhhc093blByb3BlcnR5KCAnY29uZmlybV9lbWFpbCcgKSApIHtcblx0XHRcdFx0dGhpcy5lZGl0X3ZpZXdfZXJyb3JfdWlfZGljWydjb25maXJtX2VtYWlsJ10ucmVtb3ZlQ2xhc3MoICdlcnJvci10aXAnICk7XG5cdFx0XHRcdHRoaXMuZWRpdF92aWV3X2Vycm9yX3VpX2RpY1snY29uZmlybV9lbWFpbCddLnRvb2x0aXAoKS5xdGlwKCAnZGVzdHJveScgKTtcblx0XHRcdH1cblx0XHRcdGlmICggZGF0YS5maXJzdF9uYW1lICE9ICcnICYmIGRhdGEubGFzdF9uYW1lICE9ICcnICYmIGRhdGEuZW1haWwgIT0gJycgKSB7XG5cdFx0XHRcdGlmICggIXRoaXMudXBsb2FkZXIuZ2V0VmFsdWUoKSApIHtcblx0XHRcdFx0XHRJbmRleFZpZXdDb250cm9sbGVyLmluc3RhbmNlLnJvdXRlci5zaG93Q29uZmlybU1vZGFsKCAkLmkxOG4uXyggJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBhcHBseSBmb3IgdGhpcyBwb3NpdGlvbiB3aXRob3V0IHVwbG9hZGluZyBhIHJlc3VtZT8nICksIHtcblx0XHRcdFx0XHRcdHRpdGxlOiAnJyxcblx0XHRcdFx0XHRcdGFjdGlvbnM6IFtcblx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdGxhYmVsOiAnTm8nLCBpc0Nsb3NlOiB0cnVlLCBjYWxsQmFjazogZnVuY3Rpb24oIGUgKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFx0bGFiZWw6ICdZZXMnLCBjYWxsQmFjazogZnVuY3Rpb24oIGUgKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRJbmRleFZpZXdDb250cm9sbGVyLmluc3RhbmNlLnJvdXRlci5oaWRlQ29uZmlybU1vZGFsKCk7XG5cdFx0XHRcdFx0XHRcdFx0XHQkdGhpcy5zZXRKb2JBcHBsaWNhbnQoIGRhdGEsIGNhbGxCYWNrICk7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRdXG5cdFx0XHRcdFx0fSApO1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0dGhpcy5zZXRKb2JBcHBsaWNhbnQoIGRhdGEsIGNhbGxCYWNrICk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMucmVtb3ZlVmFsaWRhdGVFcnJvclRpcHMoKTtcblx0XHRcdHZhciBmaWVsZF9vYmogPSB0aGlzLiQoICcuYXBwbHktZm9ybScgKS5maW5kKCAnaW5wdXRbaWQ9XCJjb25maXJtX2VtYWlsXCJdJyApO1xuXHRcdFx0ZmllbGRfb2JqLmFkZENsYXNzKCAnZXJyb3ItdGlwJyApO1xuXHRcdFx0ZmllbGRfb2JqLnRvb2x0aXAoIHtcblx0XHRcdFx0J3RpdGxlJzogJC5pMThuLl8oICdDb25maXJtIGVtYWlsIGRvZXMgbm90IG1hdGNoIGVtYWlsJyApXG5cdFx0XHR9ICk7XG5cdFx0XHRmaWVsZF9vYmoudG9vbHRpcCggJ3Nob3cnICk7XG5cdFx0XHR0aGlzLmVkaXRfdmlld19lcnJvcl91aV9kaWNbJ2NvbmZpcm1fZW1haWwnXSA9IGZpZWxkX29iajtcblx0XHR9XG5cdH1cblxuXHRzZXRKb2JBcHBsaWNhbnQoIGRhdGEsIGNhbGxCYWNrICkge1xuXHRcdHZhciAkdGhpcyA9IHRoaXM7XG5cdFx0dGhpcy5qb2JfYXBwbGljYW50X2FwaS5zZXRKb2JBcHBsaWNhbnQoIGRhdGEsIHtcblx0XHRcdG9uUmVzdWx0OiBmdW5jdGlvbiggcmVzdWx0ICkge1xuXHRcdFx0XHRpZiAoIHJlc3VsdC5pc1ZhbGlkKCkgKSB7XG5cdFx0XHRcdFx0JHRoaXMucmVtb3ZlVmFsaWRhdGVFcnJvclRpcHMoKTtcblx0XHRcdFx0XHQkdGhpcy5lZGl0X3ZpZXdfZXJyb3JfdWlfZGljID0ge307XG5cdFx0XHRcdFx0Y2FsbEJhY2soIGRhdGEudXNlcl9uYW1lLCBkYXRhLnBhc3N3b3JkICk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0JHRoaXMuc2hvd1ZhbGlkYXRlRXJyb3JUaXBzKCByZXN1bHQgKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0gKTtcblx0fVxuXG5cdHNob3dWYWxpZGF0ZUVycm9yVGlwcyggcmVzdWx0LCBzdGVwc1dpZGdldERpYyApIHtcblx0XHR2YXIgJHRoaXMgPSB0aGlzO1xuXG5cdFx0dmFyIGRldGFpbHMgPSByZXN1bHQuZ2V0RGV0YWlscygpO1xuXHRcdGlmICggIWRldGFpbHMgKSB7XG5cdFx0XHRkZXRhaWxzID0gcmVzdWx0LmdldERlc2NyaXB0aW9uKCk7IC8vIElmIHRoZSBkZXRhaWxzIGlzIGVtcHR5LCB0cnkgdG8gZ2V0IGRlc2NyaXB0aW9uIHRvIHNob3cuXG5cdFx0fVxuXG5cdFx0dmFyICR0aGlzID0gdGhpcztcblx0XHRpZiAoIEdsb2JhbC5pc0FycmF5KCBkZXRhaWxzICkgfHwgdHlwZW9mIGRldGFpbHMgPT09ICdvYmplY3QnICkge1xuXHRcdFx0dGhpcy5yZW1vdmVWYWxpZGF0ZUVycm9yVGlwcygpO1xuXHRcdFx0JC5lYWNoKCBkZXRhaWxzLCBmdW5jdGlvbiggaW5kZXgsIHZhbCApIHtcblx0XHRcdFx0aWYgKCB2YWwuaGFzT3duUHJvcGVydHkoICdlcnJvcicgKSApIHtcblx0XHRcdFx0XHR2YWwgPSB2YWwuZXJyb3I7XG5cdFx0XHRcdH1cblx0XHRcdFx0Ly8gdmFyIHJvdyA9IEdsb2JhbC5sb2FkV2lkZ2V0KCAndmlld3MvcG9ydGFsL2FsZXJ0L2FsZXJ0Lmh0bWwnICk7XG5cdFx0XHRcdC8vICR0aGlzLiQoJy5hcHBseS1mb3JtJykuYmVmb3JlKCByb3cgKTtcblx0XHRcdFx0Zm9yICggdmFyIGtleSBpbiB2YWwgKSB7XG5cdFx0XHRcdFx0aWYgKCAhdmFsLmhhc093blByb3BlcnR5KCBrZXkgKSApIHtcblx0XHRcdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdHZhciBlcnJvcl9zdHJpbmcgPSAnJztcblx0XHRcdFx0XHRpZiAoIGtleSA9PT0gJ3VzZXJfbmFtZScgKSB7XG5cdFx0XHRcdFx0XHQvLyBlcnJvcl9zdHJpbmcgPSB2YWxba2V5XVswXTtcblx0XHRcdFx0XHRcdGtleSA9ICdlbWFpbCc7XG5cdFx0XHRcdFx0XHRlcnJvcl9zdHJpbmcgPSAkLmkxOG4uXyggJ0VtYWlsIGFkZHJlc3MgYWxyZWFkeSBleGlzdHMsIHBsZWFzZSBsb2dpbiBpbnN0ZWFkJyApO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdHZhciBmaWVsZF9vYmogPSBudWxsO1xuXHRcdFx0XHRcdGlmICggJHRoaXMuJCggJy5hcHBseS1mb3JtJyApLmZpbmQoICdpbnB1dFtpZD1cIicgKyBrZXkgKyAnXCJdJyApWzBdICkge1xuXHRcdFx0XHRcdFx0ZmllbGRfb2JqID0gJHRoaXMuJCggJy5hcHBseS1mb3JtJyApLmZpbmQoICdpbnB1dFtpZD1cIicgKyBrZXkgKyAnXCJdJyApO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHQvL0lmIG5vIGZvcm0gZmllbGQgaXMgZm91bmQsIHNob3cgZXJyb3IgYXR0YWNoZWQgdG8gdGhlIGZvcm0gaXRzZWxmLlxuXHRcdFx0XHRcdFx0ZmllbGRfb2JqID0gJHRoaXMuJCggJy5hcHBseS1mb3JtJyApO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGlmICggZmllbGRfb2JqICkge1xuXHRcdFx0XHRcdFx0ZmllbGRfb2JqLmFkZENsYXNzKCAnZXJyb3ItdGlwJyApO1xuXHRcdFx0XHRcdFx0aWYgKCAhZXJyb3Jfc3RyaW5nICkge1xuXHRcdFx0XHRcdFx0XHRpZiAoIF8uaXNBcnJheSggdmFsW2tleV0gKSApIHtcblx0XHRcdFx0XHRcdFx0XHRlcnJvcl9zdHJpbmcgPSB2YWxba2V5XVswXTtcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRlcnJvcl9zdHJpbmcgPSB2YWxba2V5XTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0Ly8gZmllbGRfb2JqLnRvb2x0aXAoe1xuXHRcdFx0XHRcdFx0Ly8gXHQndGl0bGUnOiBlcnJvcl9zdHJpbmcsXG5cdFx0XHRcdFx0XHQvLyB9KVxuXHRcdFx0XHRcdFx0ZmllbGRfb2JqLmF0dHIoIHsgJ3RpdGxlJzogZXJyb3Jfc3RyaW5nLCAnZGF0YS1vcmlnaW5hbC10aXRsZSc6IGVycm9yX3N0cmluZyB9ICk7XG5cdFx0XHRcdFx0XHRmaWVsZF9vYmoudG9vbHRpcCggJ3Nob3cnICk7XG5cdFx0XHRcdFx0XHQkdGhpcy5lZGl0X3ZpZXdfZXJyb3JfdWlfZGljW2tleV0gPSBmaWVsZF9vYmo7XG5cdFx0XHRcdFx0XHQvLyBzb3J0X2FycmF5LnB1c2goIGZpZWxkX29iai5hdHRyKCdkYXRhLXNvcnQnKSApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSApO1xuXHRcdH1cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblxuXHRyZW1vdmVWYWxpZGF0ZUVycm9yVGlwcygpIHtcblx0XHQvLyB0aGlzLiQoJy5hcHBseS1mb3JtJykuZmluZCgnaW5wdXQnKS5jc3MoJ2JvcmRlcicsICcxcHggc29saWQgI2M3ZTBmMicpO1xuXHRcdGZvciAoIHZhciBrZXkgaW4gdGhpcy5lZGl0X3ZpZXdfZXJyb3JfdWlfZGljICkge1xuXHRcdFx0aWYgKCBrZXkgPT09ICdlbWFpbCcgfHwga2V5ID09PSAnY29uZmlybV9lbWFpbCcgKSB7XG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXHRcdFx0aWYgKCB0aGlzLmVkaXRfdmlld19lcnJvcl91aV9kaWNba2V5XS52YWwoKSAhPT0gJycgKSB7XG5cdFx0XHRcdHRoaXMuZWRpdF92aWV3X2Vycm9yX3VpX2RpY1trZXldLnJlbW92ZUNsYXNzKCAnZXJyb3ItdGlwJyApO1xuXHRcdFx0XHR0aGlzLmVkaXRfdmlld19lcnJvcl91aV9kaWNba2V5XS50b29sdGlwKCkucXRpcCggJ2Rlc3Ryb3knLCB0cnVlICk7XG5cdFx0XHR9XG5cdFx0XHQvLyB0aGlzLmVkaXRfdmlld19lcnJvcl91aV9kaWNba2V5XS5yZW1vdmVDbGFzcygnZXJyb3ItdGlwJyk7XG5cdFx0XHQvLyB0aGlzLmVkaXRfdmlld19lcnJvcl91aV9kaWNba2V5XS50b29sdGlwKCdkZXN0cm95Jyk7XG5cdFx0fVxuXHRcdC8vIHRoaXMuZWRpdF92aWV3X2Vycm9yX3VpX2RpYyA9IHt9O1xuXHRcdC8vIGlmICggdHlwZW9mIHRoaXMuJCgnLmpvYi1hcHBseS1mb3JtIC5hbGVydCcpWzBdICE9PSAndW5kZWZpbmVkJyApIHtcblx0XHQvLyBcdHRoaXMuJCgnLmpvYi1hcHBseS1mb3JtIC5hbGVydCcpLnJlbW92ZSgpO1xuXHRcdC8vIH1cblx0fVxufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///86\n")},5209:(__unused_webpack_module,__unused_webpack_exports,__webpack_require__)=>{eval("// Exports the \"autoresize\" plugin for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/plugins/autoresize')\n// ES2015:\n// import 'tinymce/plugins/autoresize'\n__webpack_require__(8578);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNTIwOS5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBTyxDQUFDLElBQWEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvdGlueW1jZS9wbHVnaW5zL2F1dG9yZXNpemUvaW5kZXguanM/NzE5MyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBFeHBvcnRzIHRoZSBcImF1dG9yZXNpemVcIiBwbHVnaW4gZm9yIHVzYWdlIHdpdGggbW9kdWxlIGxvYWRlcnNcbi8vIFVzYWdlOlxuLy8gICBDb21tb25KUzpcbi8vICAgICByZXF1aXJlKCd0aW55bWNlL3BsdWdpbnMvYXV0b3Jlc2l6ZScpXG4vLyAgIEVTMjAxNTpcbi8vICAgICBpbXBvcnQgJ3RpbnltY2UvcGx1Z2lucy9hdXRvcmVzaXplJ1xucmVxdWlyZSgnLi9wbHVnaW4uanMnKTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///5209\n")},8578:()=>{eval("/**\n * Copyright (c) Tiny Technologies, Inc. All rights reserved.\n * Licensed under the LGPL or a commercial license.\n * For LGPL see License.txt in the project root for license information.\n * For commercial licenses see https://www.tiny.cloud/\n *\n * Version: 5.10.5 (2022-05-25)\n */\n(function () {\n 'use strict';\n\n var Cell = function (initial) {\n var value = initial;\n var get = function () {\n return value;\n };\n var set = function (v) {\n value = v;\n };\n return {\n get: get,\n set: set\n };\n };\n\n var hasOwnProperty = Object.hasOwnProperty;\n var has = function (obj, key) {\n return hasOwnProperty.call(obj, key);\n };\n\n var global$2 = tinymce.util.Tools.resolve('tinymce.PluginManager');\n\n var global$1 = tinymce.util.Tools.resolve('tinymce.Env');\n\n var global = tinymce.util.Tools.resolve('tinymce.util.Delay');\n\n var fireResizeEditor = function (editor) {\n return editor.fire('ResizeEditor');\n };\n\n var getAutoResizeMinHeight = function (editor) {\n return editor.getParam('min_height', editor.getElement().offsetHeight, 'number');\n };\n var getAutoResizeMaxHeight = function (editor) {\n return editor.getParam('max_height', 0, 'number');\n };\n var getAutoResizeOverflowPadding = function (editor) {\n return editor.getParam('autoresize_overflow_padding', 1, 'number');\n };\n var getAutoResizeBottomMargin = function (editor) {\n return editor.getParam('autoresize_bottom_margin', 50, 'number');\n };\n var shouldAutoResizeOnInit = function (editor) {\n return editor.getParam('autoresize_on_init', true, 'boolean');\n };\n\n var isFullscreen = function (editor) {\n return editor.plugins.fullscreen && editor.plugins.fullscreen.isFullscreen();\n };\n var wait = function (editor, oldSize, times, interval, callback) {\n global.setEditorTimeout(editor, function () {\n resize(editor, oldSize);\n if (times--) {\n wait(editor, oldSize, times, interval, callback);\n } else if (callback) {\n callback();\n }\n }, interval);\n };\n var toggleScrolling = function (editor, state) {\n var body = editor.getBody();\n if (body) {\n body.style.overflowY = state ? '' : 'hidden';\n if (!state) {\n body.scrollTop = 0;\n }\n }\n };\n var parseCssValueToInt = function (dom, elm, name, computed) {\n var value = parseInt(dom.getStyle(elm, name, computed), 10);\n return isNaN(value) ? 0 : value;\n };\n var shouldScrollIntoView = function (trigger) {\n if ((trigger === null || trigger === void 0 ? void 0 : trigger.type.toLowerCase()) === 'setcontent') {\n var setContentEvent = trigger;\n return setContentEvent.selection === true || setContentEvent.paste === true;\n } else {\n return false;\n }\n };\n var resize = function (editor, oldSize, trigger) {\n var dom = editor.dom;\n var doc = editor.getDoc();\n if (!doc) {\n return;\n }\n if (isFullscreen(editor)) {\n toggleScrolling(editor, true);\n return;\n }\n var docEle = doc.documentElement;\n var resizeBottomMargin = getAutoResizeBottomMargin(editor);\n var resizeHeight = getAutoResizeMinHeight(editor);\n var marginTop = parseCssValueToInt(dom, docEle, 'margin-top', true);\n var marginBottom = parseCssValueToInt(dom, docEle, 'margin-bottom', true);\n var contentHeight = docEle.offsetHeight + marginTop + marginBottom + resizeBottomMargin;\n if (contentHeight < 0) {\n contentHeight = 0;\n }\n var containerHeight = editor.getContainer().offsetHeight;\n var contentAreaHeight = editor.getContentAreaContainer().offsetHeight;\n var chromeHeight = containerHeight - contentAreaHeight;\n if (contentHeight + chromeHeight > getAutoResizeMinHeight(editor)) {\n resizeHeight = contentHeight + chromeHeight;\n }\n var maxHeight = getAutoResizeMaxHeight(editor);\n if (maxHeight && resizeHeight > maxHeight) {\n resizeHeight = maxHeight;\n toggleScrolling(editor, true);\n } else {\n toggleScrolling(editor, false);\n }\n if (resizeHeight !== oldSize.get()) {\n var deltaSize = resizeHeight - oldSize.get();\n dom.setStyle(editor.getContainer(), 'height', resizeHeight + 'px');\n oldSize.set(resizeHeight);\n fireResizeEditor(editor);\n if (global$1.browser.isSafari() && global$1.mac) {\n var win = editor.getWin();\n win.scrollTo(win.pageXOffset, win.pageYOffset);\n }\n if (editor.hasFocus() && shouldScrollIntoView(trigger)) {\n editor.selection.scrollIntoView();\n }\n if (global$1.webkit && deltaSize < 0) {\n resize(editor, oldSize, trigger);\n }\n }\n };\n var setup = function (editor, oldSize) {\n editor.on('init', function () {\n var overflowPadding = getAutoResizeOverflowPadding(editor);\n var dom = editor.dom;\n dom.setStyles(editor.getDoc().documentElement, { height: 'auto' });\n dom.setStyles(editor.getBody(), {\n 'paddingLeft': overflowPadding,\n 'paddingRight': overflowPadding,\n 'min-height': 0\n });\n });\n editor.on('NodeChange SetContent keyup FullscreenStateChanged ResizeContent', function (e) {\n resize(editor, oldSize, e);\n });\n if (shouldAutoResizeOnInit(editor)) {\n editor.on('init', function () {\n wait(editor, oldSize, 20, 100, function () {\n wait(editor, oldSize, 5, 1000);\n });\n });\n }\n };\n\n var register = function (editor, oldSize) {\n editor.addCommand('mceAutoResize', function () {\n resize(editor, oldSize);\n });\n };\n\n function Plugin () {\n global$2.add('autoresize', function (editor) {\n if (!has(editor.settings, 'resize')) {\n editor.settings.resize = false;\n }\n if (!editor.inline) {\n var oldSize = Cell(0);\n register(editor, oldSize);\n setup(editor, oldSize);\n }\n });\n }\n\n Plugin();\n\n}());\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODU3OC5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseURBQXlELGdCQUFnQjtBQUN6RTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxPQUFPO0FBQ1A7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWCxTQUFTO0FBQ1Q7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7O0FBRUE7O0FBRUEsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy90aW55bWNlL3BsdWdpbnMvYXV0b3Jlc2l6ZS9wbHVnaW4uanM/YWU2OCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgVGlueSBUZWNobm9sb2dpZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBMR1BMIG9yIGEgY29tbWVyY2lhbCBsaWNlbnNlLlxuICogRm9yIExHUEwgc2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKiBGb3IgY29tbWVyY2lhbCBsaWNlbnNlcyBzZWUgaHR0cHM6Ly93d3cudGlueS5jbG91ZC9cbiAqXG4gKiBWZXJzaW9uOiA1LjEwLjUgKDIwMjItMDUtMjUpXG4gKi9cbihmdW5jdGlvbiAoKSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuXG4gICAgdmFyIENlbGwgPSBmdW5jdGlvbiAoaW5pdGlhbCkge1xuICAgICAgdmFyIHZhbHVlID0gaW5pdGlhbDtcbiAgICAgIHZhciBnZXQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH07XG4gICAgICB2YXIgc2V0ID0gZnVuY3Rpb24gKHYpIHtcbiAgICAgICAgdmFsdWUgPSB2O1xuICAgICAgfTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGdldDogZ2V0LFxuICAgICAgICBzZXQ6IHNldFxuICAgICAgfTtcbiAgICB9O1xuXG4gICAgdmFyIGhhc093blByb3BlcnR5ID0gT2JqZWN0Lmhhc093blByb3BlcnR5O1xuICAgIHZhciBoYXMgPSBmdW5jdGlvbiAob2JqLCBrZXkpIHtcbiAgICAgIHJldHVybiBoYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KTtcbiAgICB9O1xuXG4gICAgdmFyIGdsb2JhbCQyID0gdGlueW1jZS51dGlsLlRvb2xzLnJlc29sdmUoJ3RpbnltY2UuUGx1Z2luTWFuYWdlcicpO1xuXG4gICAgdmFyIGdsb2JhbCQxID0gdGlueW1jZS51dGlsLlRvb2xzLnJlc29sdmUoJ3RpbnltY2UuRW52Jyk7XG5cbiAgICB2YXIgZ2xvYmFsID0gdGlueW1jZS51dGlsLlRvb2xzLnJlc29sdmUoJ3RpbnltY2UudXRpbC5EZWxheScpO1xuXG4gICAgdmFyIGZpcmVSZXNpemVFZGl0b3IgPSBmdW5jdGlvbiAoZWRpdG9yKSB7XG4gICAgICByZXR1cm4gZWRpdG9yLmZpcmUoJ1Jlc2l6ZUVkaXRvcicpO1xuICAgIH07XG5cbiAgICB2YXIgZ2V0QXV0b1Jlc2l6ZU1pbkhlaWdodCA9IGZ1bmN0aW9uIChlZGl0b3IpIHtcbiAgICAgIHJldHVybiBlZGl0b3IuZ2V0UGFyYW0oJ21pbl9oZWlnaHQnLCBlZGl0b3IuZ2V0RWxlbWVudCgpLm9mZnNldEhlaWdodCwgJ251bWJlcicpO1xuICAgIH07XG4gICAgdmFyIGdldEF1dG9SZXNpemVNYXhIZWlnaHQgPSBmdW5jdGlvbiAoZWRpdG9yKSB7XG4gICAgICByZXR1cm4gZWRpdG9yLmdldFBhcmFtKCdtYXhfaGVpZ2h0JywgMCwgJ251bWJlcicpO1xuICAgIH07XG4gICAgdmFyIGdldEF1dG9SZXNpemVPdmVyZmxvd1BhZGRpbmcgPSBmdW5jdGlvbiAoZWRpdG9yKSB7XG4gICAgICByZXR1cm4gZWRpdG9yLmdldFBhcmFtKCdhdXRvcmVzaXplX292ZXJmbG93X3BhZGRpbmcnLCAxLCAnbnVtYmVyJyk7XG4gICAgfTtcbiAgICB2YXIgZ2V0QXV0b1Jlc2l6ZUJvdHRvbU1hcmdpbiA9IGZ1bmN0aW9uIChlZGl0b3IpIHtcbiAgICAgIHJldHVybiBlZGl0b3IuZ2V0UGFyYW0oJ2F1dG9yZXNpemVfYm90dG9tX21hcmdpbicsIDUwLCAnbnVtYmVyJyk7XG4gICAgfTtcbiAgICB2YXIgc2hvdWxkQXV0b1Jlc2l6ZU9uSW5pdCA9IGZ1bmN0aW9uIChlZGl0b3IpIHtcbiAgICAgIHJldHVybiBlZGl0b3IuZ2V0UGFyYW0oJ2F1dG9yZXNpemVfb25faW5pdCcsIHRydWUsICdib29sZWFuJyk7XG4gICAgfTtcblxuICAgIHZhciBpc0Z1bGxzY3JlZW4gPSBmdW5jdGlvbiAoZWRpdG9yKSB7XG4gICAgICByZXR1cm4gZWRpdG9yLnBsdWdpbnMuZnVsbHNjcmVlbiAmJiBlZGl0b3IucGx1Z2lucy5mdWxsc2NyZWVuLmlzRnVsbHNjcmVlbigpO1xuICAgIH07XG4gICAgdmFyIHdhaXQgPSBmdW5jdGlvbiAoZWRpdG9yLCBvbGRTaXplLCB0aW1lcywgaW50ZXJ2YWwsIGNhbGxiYWNrKSB7XG4gICAgICBnbG9iYWwuc2V0RWRpdG9yVGltZW91dChlZGl0b3IsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmVzaXplKGVkaXRvciwgb2xkU2l6ZSk7XG4gICAgICAgIGlmICh0aW1lcy0tKSB7XG4gICAgICAgICAgd2FpdChlZGl0b3IsIG9sZFNpemUsIHRpbWVzLCBpbnRlcnZhbCwgY2FsbGJhY2spO1xuICAgICAgICB9IGVsc2UgaWYgKGNhbGxiYWNrKSB7XG4gICAgICAgICAgY2FsbGJhY2soKTtcbiAgICAgICAgfVxuICAgICAgfSwgaW50ZXJ2YWwpO1xuICAgIH07XG4gICAgdmFyIHRvZ2dsZVNjcm9sbGluZyA9IGZ1bmN0aW9uIChlZGl0b3IsIHN0YXRlKSB7XG4gICAgICB2YXIgYm9keSA9IGVkaXRvci5nZXRCb2R5KCk7XG4gICAgICBpZiAoYm9keSkge1xuICAgICAgICBib2R5LnN0eWxlLm92ZXJmbG93WSA9IHN0YXRlID8gJycgOiAnaGlkZGVuJztcbiAgICAgICAgaWYgKCFzdGF0ZSkge1xuICAgICAgICAgIGJvZHkuc2Nyb2xsVG9wID0gMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gICAgdmFyIHBhcnNlQ3NzVmFsdWVUb0ludCA9IGZ1bmN0aW9uIChkb20sIGVsbSwgbmFtZSwgY29tcHV0ZWQpIHtcbiAgICAgIHZhciB2YWx1ZSA9IHBhcnNlSW50KGRvbS5nZXRTdHlsZShlbG0sIG5hbWUsIGNvbXB1dGVkKSwgMTApO1xuICAgICAgcmV0dXJuIGlzTmFOKHZhbHVlKSA/IDAgOiB2YWx1ZTtcbiAgICB9O1xuICAgIHZhciBzaG91bGRTY3JvbGxJbnRvVmlldyA9IGZ1bmN0aW9uICh0cmlnZ2VyKSB7XG4gICAgICBpZiAoKHRyaWdnZXIgPT09IG51bGwgfHwgdHJpZ2dlciA9PT0gdm9pZCAwID8gdm9pZCAwIDogdHJpZ2dlci50eXBlLnRvTG93ZXJDYXNlKCkpID09PSAnc2V0Y29udGVudCcpIHtcbiAgICAgICAgdmFyIHNldENvbnRlbnRFdmVudCA9IHRyaWdnZXI7XG4gICAgICAgIHJldHVybiBzZXRDb250ZW50RXZlbnQuc2VsZWN0aW9uID09PSB0cnVlIHx8IHNldENvbnRlbnRFdmVudC5wYXN0ZSA9PT0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9O1xuICAgIHZhciByZXNpemUgPSBmdW5jdGlvbiAoZWRpdG9yLCBvbGRTaXplLCB0cmlnZ2VyKSB7XG4gICAgICB2YXIgZG9tID0gZWRpdG9yLmRvbTtcbiAgICAgIHZhciBkb2MgPSBlZGl0b3IuZ2V0RG9jKCk7XG4gICAgICBpZiAoIWRvYykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAoaXNGdWxsc2NyZWVuKGVkaXRvcikpIHtcbiAgICAgICAgdG9nZ2xlU2Nyb2xsaW5nKGVkaXRvciwgdHJ1ZSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHZhciBkb2NFbGUgPSBkb2MuZG9jdW1lbnRFbGVtZW50O1xuICAgICAgdmFyIHJlc2l6ZUJvdHRvbU1hcmdpbiA9IGdldEF1dG9SZXNpemVCb3R0b21NYXJnaW4oZWRpdG9yKTtcbiAgICAgIHZhciByZXNpemVIZWlnaHQgPSBnZXRBdXRvUmVzaXplTWluSGVpZ2h0KGVkaXRvcik7XG4gICAgICB2YXIgbWFyZ2luVG9wID0gcGFyc2VDc3NWYWx1ZVRvSW50KGRvbSwgZG9jRWxlLCAnbWFyZ2luLXRvcCcsIHRydWUpO1xuICAgICAgdmFyIG1hcmdpbkJvdHRvbSA9IHBhcnNlQ3NzVmFsdWVUb0ludChkb20sIGRvY0VsZSwgJ21hcmdpbi1ib3R0b20nLCB0cnVlKTtcbiAgICAgIHZhciBjb250ZW50SGVpZ2h0ID0gZG9jRWxlLm9mZnNldEhlaWdodCArIG1hcmdpblRvcCArIG1hcmdpbkJvdHRvbSArIHJlc2l6ZUJvdHRvbU1hcmdpbjtcbiAgICAgIGlmIChjb250ZW50SGVpZ2h0IDwgMCkge1xuICAgICAgICBjb250ZW50SGVpZ2h0ID0gMDtcbiAgICAgIH1cbiAgICAgIHZhciBjb250YWluZXJIZWlnaHQgPSBlZGl0b3IuZ2V0Q29udGFpbmVyKCkub2Zmc2V0SGVpZ2h0O1xuICAgICAgdmFyIGNvbnRlbnRBcmVhSGVpZ2h0ID0gZWRpdG9yLmdldENvbnRlbnRBcmVhQ29udGFpbmVyKCkub2Zmc2V0SGVpZ2h0O1xuICAgICAgdmFyIGNocm9tZUhlaWdodCA9IGNvbnRhaW5lckhlaWdodCAtIGNvbnRlbnRBcmVhSGVpZ2h0O1xuICAgICAgaWYgKGNvbnRlbnRIZWlnaHQgKyBjaHJvbWVIZWlnaHQgPiBnZXRBdXRvUmVzaXplTWluSGVpZ2h0KGVkaXRvcikpIHtcbiAgICAgICAgcmVzaXplSGVpZ2h0ID0gY29udGVudEhlaWdodCArIGNocm9tZUhlaWdodDtcbiAgICAgIH1cbiAgICAgIHZhciBtYXhIZWlnaHQgPSBnZXRBdXRvUmVzaXplTWF4SGVpZ2h0KGVkaXRvcik7XG4gICAgICBpZiAobWF4SGVpZ2h0ICYmIHJlc2l6ZUhlaWdodCA+IG1heEhlaWdodCkge1xuICAgICAgICByZXNpemVIZWlnaHQgPSBtYXhIZWlnaHQ7XG4gICAgICAgIHRvZ2dsZVNjcm9sbGluZyhlZGl0b3IsIHRydWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdG9nZ2xlU2Nyb2xsaW5nKGVkaXRvciwgZmFsc2UpO1xuICAgICAgfVxuICAgICAgaWYgKHJlc2l6ZUhlaWdodCAhPT0gb2xkU2l6ZS5nZXQoKSkge1xuICAgICAgICB2YXIgZGVsdGFTaXplID0gcmVzaXplSGVpZ2h0IC0gb2xkU2l6ZS5nZXQoKTtcbiAgICAgICAgZG9tLnNldFN0eWxlKGVkaXRvci5nZXRDb250YWluZXIoKSwgJ2hlaWdodCcsIHJlc2l6ZUhlaWdodCArICdweCcpO1xuICAgICAgICBvbGRTaXplLnNldChyZXNpemVIZWlnaHQpO1xuICAgICAgICBmaXJlUmVzaXplRWRpdG9yKGVkaXRvcik7XG4gICAgICAgIGlmIChnbG9iYWwkMS5icm93c2VyLmlzU2FmYXJpKCkgJiYgZ2xvYmFsJDEubWFjKSB7XG4gICAgICAgICAgdmFyIHdpbiA9IGVkaXRvci5nZXRXaW4oKTtcbiAgICAgICAgICB3aW4uc2Nyb2xsVG8od2luLnBhZ2VYT2Zmc2V0LCB3aW4ucGFnZVlPZmZzZXQpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlZGl0b3IuaGFzRm9jdXMoKSAmJiBzaG91bGRTY3JvbGxJbnRvVmlldyh0cmlnZ2VyKSkge1xuICAgICAgICAgIGVkaXRvci5zZWxlY3Rpb24uc2Nyb2xsSW50b1ZpZXcoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZ2xvYmFsJDEud2Via2l0ICYmIGRlbHRhU2l6ZSA8IDApIHtcbiAgICAgICAgICByZXNpemUoZWRpdG9yLCBvbGRTaXplLCB0cmlnZ2VyKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gICAgdmFyIHNldHVwID0gZnVuY3Rpb24gKGVkaXRvciwgb2xkU2l6ZSkge1xuICAgICAgZWRpdG9yLm9uKCdpbml0JywgZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgb3ZlcmZsb3dQYWRkaW5nID0gZ2V0QXV0b1Jlc2l6ZU92ZXJmbG93UGFkZGluZyhlZGl0b3IpO1xuICAgICAgICB2YXIgZG9tID0gZWRpdG9yLmRvbTtcbiAgICAgICAgZG9tLnNldFN0eWxlcyhlZGl0b3IuZ2V0RG9jKCkuZG9jdW1lbnRFbGVtZW50LCB7IGhlaWdodDogJ2F1dG8nIH0pO1xuICAgICAgICBkb20uc2V0U3R5bGVzKGVkaXRvci5nZXRCb2R5KCksIHtcbiAgICAgICAgICAncGFkZGluZ0xlZnQnOiBvdmVyZmxvd1BhZGRpbmcsXG4gICAgICAgICAgJ3BhZGRpbmdSaWdodCc6IG92ZXJmbG93UGFkZGluZyxcbiAgICAgICAgICAnbWluLWhlaWdodCc6IDBcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIGVkaXRvci5vbignTm9kZUNoYW5nZSBTZXRDb250ZW50IGtleXVwIEZ1bGxzY3JlZW5TdGF0ZUNoYW5nZWQgUmVzaXplQ29udGVudCcsIGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIHJlc2l6ZShlZGl0b3IsIG9sZFNpemUsIGUpO1xuICAgICAgfSk7XG4gICAgICBpZiAoc2hvdWxkQXV0b1Jlc2l6ZU9uSW5pdChlZGl0b3IpKSB7XG4gICAgICAgIGVkaXRvci5vbignaW5pdCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICB3YWl0KGVkaXRvciwgb2xkU2l6ZSwgMjAsIDEwMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgd2FpdChlZGl0b3IsIG9sZFNpemUsIDUsIDEwMDApO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgdmFyIHJlZ2lzdGVyID0gZnVuY3Rpb24gKGVkaXRvciwgb2xkU2l6ZSkge1xuICAgICAgZWRpdG9yLmFkZENvbW1hbmQoJ21jZUF1dG9SZXNpemUnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJlc2l6ZShlZGl0b3IsIG9sZFNpemUpO1xuICAgICAgfSk7XG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIFBsdWdpbiAoKSB7XG4gICAgICBnbG9iYWwkMi5hZGQoJ2F1dG9yZXNpemUnLCBmdW5jdGlvbiAoZWRpdG9yKSB7XG4gICAgICAgIGlmICghaGFzKGVkaXRvci5zZXR0aW5ncywgJ3Jlc2l6ZScpKSB7XG4gICAgICAgICAgZWRpdG9yLnNldHRpbmdzLnJlc2l6ZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICghZWRpdG9yLmlubGluZSkge1xuICAgICAgICAgIHZhciBvbGRTaXplID0gQ2VsbCgwKTtcbiAgICAgICAgICByZWdpc3RlcihlZGl0b3IsIG9sZFNpemUpO1xuICAgICAgICAgIHNldHVwKGVkaXRvciwgb2xkU2l6ZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIFBsdWdpbigpO1xuXG59KCkpO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///8578\n")}}]);