//base 64 /** * * Base64 encode / decode * http://www.webtoolkit.info/ * **/ var Base64 = { // private property _keyStr : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", // public method for encoding encode : function (input) { var output = ""; var chr1, chr2, chr3, enc1, enc2, enc3, enc4; var i = 0; input = Base64._utf8_encode(input); while (i < input.length) { chr1 = input.charCodeAt(i++); chr2 = input.charCodeAt(i++); chr3 = input.charCodeAt(i++); enc1 = chr1 >> 2; enc2 = ((chr1 & 3) << 4) | (chr2 >> 4); enc3 = ((chr2 & 15) << 2) | (chr3 >> 6); enc4 = chr3 & 63; if (isNaN(chr2)) { enc3 = enc4 = 64; } else if (isNaN(chr3)) { enc4 = 64; } output = output + this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) + this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4); } return output; }, // public method for decoding decode : function (input) { var output = ""; var chr1, chr2, chr3; var enc1, enc2, enc3, enc4; var i = 0; input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ""); while (i < input.length) { enc1 = this._keyStr.indexOf(input.charAt(i++)); enc2 = this._keyStr.indexOf(input.charAt(i++)); enc3 = this._keyStr.indexOf(input.charAt(i++)); enc4 = this._keyStr.indexOf(input.charAt(i++)); chr1 = (enc1 << 2) | (enc2 >> 4); chr2 = ((enc2 & 15) << 4) | (enc3 >> 2); chr3 = ((enc3 & 3) << 6) | enc4; output = output + String.fromCharCode(chr1); if (enc3 != 64) { output = output + String.fromCharCode(chr2); } if (enc4 != 64) { output = output + String.fromCharCode(chr3); } } output = Base64._utf8_decode(output); return output; }, // private method for UTF-8 encoding _utf8_encode : function (string) { string = string.replace(/\r\n/g,"\n"); var utftext = ""; for (var n = 0; n < string.length; n++) { var c = string.charCodeAt(n); if (c < 128) { utftext += String.fromCharCode(c); } else if((c > 127) && (c < 2048)) { utftext += String.fromCharCode((c >> 6) | 192); utftext += String.fromCharCode((c & 63) | 128); } else { utftext += String.fromCharCode((c >> 12) | 224); utftext += String.fromCharCode(((c >> 6) & 63) | 128); utftext += String.fromCharCode((c & 63) | 128); } } return utftext; }, // private method for UTF-8 decoding _utf8_decode : function (utftext) { var string = ""; var i = 0; var c = c1 = c2 = 0; while ( i < utftext.length ) { c = utftext.charCodeAt(i); if (c < 128) { string += String.fromCharCode(c); i++; } else if((c > 191) && (c < 224)) { c2 = utftext.charCodeAt(i+1); string += String.fromCharCode(((c & 31) << 6) | (c2 & 63)); i += 2; } else { c2 = utftext.charCodeAt(i+1); c3 = utftext.charCodeAt(i+2); string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63)); i += 3; } } return string; } } //base 64 end //thông tin dữ liệu người dùng var userData = JSON.parse(Base64.decode(`eyJuaWNrbmFtZSI6ImRvLXZhbi1odWFuIiwiZnVsbG5hbWUiOiJcdTAxMTBcdTFlZDcgVlx1MDEwM24gSHVcdTFlYTVuIiwicG9zaXRpb24iOiJJbnRlcm5zIEphdmEiLCJlbWFpbCI6IkVtYWlsOiZuYnNwOyBodWFuZHYyazFAZ21haWwuY29tIiwicGhvbmVfbnVtYmVyIjoiU1x1MDExMFQ6IDA5NjY0Njk3NDYiLCJhZGRyZXNzIjoiXHUwMTEwXHUxZWNiYSBjaGk6IHRoXHUwMGY0biBUaFx1MWVhZm5nIGxcdTFlZTNpLCBNYWkgXHUwMTEwXHUwMGVjbmgsIEhpXHUxZWM3cCBIXHUwMGYyYSwgQlx1MWVhZmMgR2lhbmciLCJiaXJ0aGRheSI6Ik5nXHUwMGUweSBzaW5oIDogMDNcLzA3XC8yMDAxIiwiZ2VuZGVyIjoiR2lcdTFlZGJpIHRcdTAwZWRuaCA6IE5hbSIsIm1hcml0YWxfc3RhdHVzIjoiVFx1MDBlY25oIHRyXHUxZWExbmcgOiBDaFx1MDFiMGEga1x1MWViZnQgaFx1MDBmNG4iLCJhdmF0YXIiOiJodHRwczpcL1wvcmVzLmNsb3VkaW5hcnkuY29tXC96aWN6YWNncm91cFwvaW1hZ2VcL3VwbG9hZFwvdjE1ODc0NTAxNjJcL2x0a3NhZDRsdHlzZm14dmlhdWF5LmpwZyJ9`)) //Thông tin giới thiệu về ứng viên var introduceData = JSON.parse(Base64.decode(`W3siY29udGVudF9pZCI6bnVsbCwidGl0bGUiOm51bGwsImNvbnRlbnQiOiI8cCBzdHlsZT1cIm1hcmdpbi1ib3R0b206IDFyZW07IGNvbG9yOiByZ2IoNzksIDc5LCA3OSk7IGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICZxdW90O1NlZ29lIFVJJnF1b3Q7LCBSb2JvdG8sICZxdW90O0hlbHZldGljYSBOZXVlJnF1b3Q7LCBBcmlhbCwgJnF1b3Q7Tm90byBTYW5zJnF1b3Q7LCBzYW5zLXNlcmlmLCAmcXVvdDtBcHBsZSBDb2xvciBFbW9qaSZxdW90OywgJnF1b3Q7U2Vnb2UgVUkgRW1vamkmcXVvdDssICZxdW90O1NlZ29lIFVJIFN5bWJvbCZxdW90OywgJnF1b3Q7Tm90byBDb2xvciBFbW9qaSZxdW90OztcIj5MXHUwMGUwIG5nXHUwMWIwXHUxZWRkaSBoYW0gaFx1MWVjZGMgaFx1MWVjZmksIHRcdTAxYjAgZHV5IHRcdTFlZDF0IHZcdTAwZTAgdGlcdTFlYmZwIGNcdTFlYWRuIHZcdTFlYTVuIFx1MDExMVx1MWVjMSBuaGFuaC4gVFx1MDBmNGkgc1x1MWViNW4gc1x1MDBlMG5nIGxcdTAwZTBtIHZpXHUxZWM3YyB2XHUxZWRiaSBcdTAwZTFwIGxcdTFlZjFjIGNhby4gS2hcdTAwZjRuZyBtXHUxZWM3dCBtXHUxZWNmaSwgc1x1MWViNW4gc1x1MDBlMG5nIFx1MDExMVx1MDBmM24gbmhcdTFlYWRuIGNcdTAwZTFjIHRoXHUxZWVkIHRoXHUwMGUxY2ggbVx1MDBlMCBjXHUwMGY0bmcgdHkgZ2lhbyBwaFx1MDBmMy48XC9wPjxwIHN0eWxlPVwibWFyZ2luLWJvdHRvbTogMXJlbTsgY29sb3I6IHJnYig3OSwgNzksIDc5KTsgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJnF1b3Q7U2Vnb2UgVUkmcXVvdDssIFJvYm90bywgJnF1b3Q7SGVsdmV0aWNhIE5ldWUmcXVvdDssIEFyaWFsLCAmcXVvdDtOb3RvIFNhbnMmcXVvdDssIHNhbnMtc2VyaWYsICZxdW90O0FwcGxlIENvbG9yIEVtb2ppJnF1b3Q7LCAmcXVvdDtTZWdvZSBVSSBFbW9qaSZxdW90OywgJnF1b3Q7U2Vnb2UgVUkgU3ltYm9sJnF1b3Q7LCAmcXVvdDtOb3RvIENvbG9yIEVtb2ppJnF1b3Q7O1wiPi0gTW9uZyBtdVx1MWVkMW4gaFx1MWVjZGMgaFx1MWVjZmkgXHUxZWRmIG1cdTAwZjRpIHRyXHUwMWIwXHUxZWRkbmcgbFx1MDBlMG0gdmlcdTFlYzdjIGNodXlcdTAwZWFuIG5naGlcdTFlYzdwLCBuXHUwMTAzbmcgXHUwMTExXHUxZWQ5bmcuPFwvcD48cCBzdHlsZT1cIm1hcmdpbi1ib3R0b206IDFyZW07IGNvbG9yOiByZ2IoNzksIDc5LCA3OSk7IGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICZxdW90O1NlZ29lIFVJJnF1b3Q7LCBSb2JvdG8sICZxdW90O0hlbHZldGljYSBOZXVlJnF1b3Q7LCBBcmlhbCwgJnF1b3Q7Tm90byBTYW5zJnF1b3Q7LCBzYW5zLXNlcmlmLCAmcXVvdDtBcHBsZSBDb2xvciBFbW9qaSZxdW90OywgJnF1b3Q7U2Vnb2UgVUkgRW1vamkmcXVvdDssICZxdW90O1NlZ29lIFVJIFN5bWJvbCZxdW90OywgJnF1b3Q7Tm90byBDb2xvciBFbW9qaSZxdW90OztcIj4tIENcdTAwZjMgdHJcdTAwZTFjaCBuaGlcdTFlYzdtLCBzXHUxZWYxIHRcdTFlYWRuIHRcdTAwZTJtIHZcdTAwZTAmbmJzcDsgbmlcdTFlYzFtIFx1MDExMWFtIG1cdTAwZWEgdlx1MWVkYmkgY1x1MDBmNG5nIHZpXHUxZWM3Yy48XC9wPjxwIHN0eWxlPVwibWFyZ2luLWJvdHRvbTogMXJlbTsgY29sb3I6IHJnYig3OSwgNzksIDc5KTsgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJnF1b3Q7U2Vnb2UgVUkmcXVvdDssIFJvYm90bywgJnF1b3Q7SGVsdmV0aWNhIE5ldWUmcXVvdDssIEFyaWFsLCAmcXVvdDtOb3RvIFNhbnMmcXVvdDssIHNhbnMtc2VyaWYsICZxdW90O0FwcGxlIENvbG9yIEVtb2ppJnF1b3Q7LCAmcXVvdDtTZWdvZSBVSSBFbW9qaSZxdW90OywgJnF1b3Q7U2Vnb2UgVUkgU3ltYm9sJnF1b3Q7LCAmcXVvdDtOb3RvIENvbG9yIEVtb2ppJnF1b3Q7O1wiPi1IXHUwMGYyYSBcdTAxMTFcdTFlZDNuZywgdGhcdTAwZTJuIHRoaVx1MWVjN24gdlx1MWVkYmkgbVx1MWVjZGkgbmdcdTAxYjBcdTFlZGRpLjxcL3A+PHAgc3R5bGU9XCJtYXJnaW4tYm90dG9tOiAxcmVtOyBjb2xvcjogcmdiKDc5LCA3OSwgNzkpOyBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAmcXVvdDtTZWdvZSBVSSZxdW90OywgUm9ib3RvLCAmcXVvdDtIZWx2ZXRpY2EgTmV1ZSZxdW90OywgQXJpYWwsICZxdW90O05vdG8gU2FucyZxdW90Oywgc2Fucy1zZXJpZiwgJnF1b3Q7QXBwbGUgQ29sb3IgRW1vamkmcXVvdDssICZxdW90O1NlZ29lIFVJIEVtb2ppJnF1b3Q7LCAmcXVvdDtTZWdvZSBVSSBTeW1ib2wmcXVvdDssICZxdW90O05vdG8gQ29sb3IgRW1vamkmcXVvdDs7XCI+TVx1MWVlNWMgdGlcdTAwZWF1OjxcL3A+PHAgc3R5bGU9XCJtYXJnaW4tYm90dG9tOiAxcmVtOyBjb2xvcjogcmdiKDc5LCA3OSwgNzkpOyBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAmcXVvdDtTZWdvZSBVSSZxdW90OywgUm9ib3RvLCAmcXVvdDtIZWx2ZXRpY2EgTmV1ZSZxdW90OywgQXJpYWwsICZxdW90O05vdG8gU2FucyZxdW90Oywgc2Fucy1zZXJpZiwgJnF1b3Q7QXBwbGUgQ29sb3IgRW1vamkmcXVvdDssICZxdW90O1NlZ29lIFVJIEVtb2ppJnF1b3Q7LCAmcXVvdDtTZWdvZSBVSSBTeW1ib2wmcXVvdDssICZxdW90O05vdG8gQ29sb3IgRW1vamkmcXVvdDs7XCI+LVRcdTAwZWRjaCBsXHUwMTY5eSBcdTAxMTFcdTAxYjBcdTFlZTNjIG5oaVx1MWVjMXUga2luaCBuZ2hpXHUxZWM3bSBsXHUwMGUwbSB2aVx1MWVjN2MuPFwvcD48cCBzdHlsZT1cIm1hcmdpbi1ib3R0b206IDFyZW07IGNvbG9yOiByZ2IoNzksIDc5LCA3OSk7IGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICZxdW90O1NlZ29lIFVJJnF1b3Q7LCBSb2JvdG8sICZxdW90O0hlbHZldGljYSBOZXVlJnF1b3Q7LCBBcmlhbCwgJnF1b3Q7Tm90byBTYW5zJnF1b3Q7LCBzYW5zLXNlcmlmLCAmcXVvdDtBcHBsZSBDb2xvciBFbW9qaSZxdW90OywgJnF1b3Q7U2Vnb2UgVUkgRW1vamkmcXVvdDssICZxdW90O1NlZ29lIFVJIFN5bWJvbCZxdW90OywgJnF1b3Q7Tm90byBDb2xvciBFbW9qaSZxdW90OztcIj4tIFRyXHUxZWRmIHRoXHUwMGUwbmggZGV2ZWxvcGVyIGNodXlcdTAwZWFuIG5naGlcdTFlYzdwLjxcL3A+PHAgc3R5bGU9XCJtYXJnaW4tYm90dG9tOiAxcmVtOyBjb2xvcjogcmdiKDc5LCA3OSwgNzkpOyBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAmcXVvdDtTZWdvZSBVSSZxdW90OywgUm9ib3RvLCAmcXVvdDtIZWx2ZXRpY2EgTmV1ZSZxdW90OywgQXJpYWwsICZxdW90O05vdG8gU2FucyZxdW90Oywgc2Fucy1zZXJpZiwgJnF1b3Q7QXBwbGUgQ29sb3IgRW1vamkmcXVvdDssICZxdW90O1NlZ29lIFVJIEVtb2ppJnF1b3Q7LCAmcXVvdDtTZWdvZSBVSSBTeW1ib2wmcXVvdDssICZxdW90O05vdG8gQ29sb3IgRW1vamkmcXVvdDs7XCI+PGJyPjxcL3A+IiwidV9pZCI6NDMzfV0=`)) //Thông tin kinh nghiệm làm việc var experienceData = JSON.parse(Base64.decode(`W3siY29udGVudF9pZCI6IjQ0NSIsInRpdGxlIjpudWxsLCJjb21wYW55IjoiUXVcdTAwZTEgdHJcdTAwZWNuaCBoXHUxZWNkYyBKYXZhIiwic3RhcnRkYXRlIjoiVGhcdTAwZTFuZyAzLTIwMjAiLCJlbmRkYXRlIjoiSGlcdTFlYzduIHRcdTFlYTFpIiwiY29udGVudCI6IjxwPk5cdTFlYWZtIGNoXHUxZWFmYyBcdTAxMTFcdTAxYjBcdTFlZTNjIGNcdTAwZTFjIGtpXHUxZWJmbiB0aFx1MWVlOWMgY1x1MDFhMSBiXHUxZWEzbiB2XHUxZWMxIEphdmEuPGJyPjxcL3A+PHA+QmlcdTFlYmZ0IGtcdTFlYmZ0IG5cdTFlZDFpIEphdmEgdlx1MWVkYmkgY1x1MDFhMSBzXHUxZWRmIGRcdTFlZWYgbGlcdTFlYzd1LjxcL3A+PHA+SG9cdTAwZTBuIHRoXHUwMGUwbmggdFx1MWVkMXQgdFx1MWVhNXQgY1x1MWVhMyBjXHUwMGUxYyBiXHUwMGUwaSB0XHUxZWFkcCB0cm9uZyBxdVx1MDBlMSB0clx1MDBlY25oIGhcdTFlY2RjLjxcL3A+IiwidGVjaG5pcXVlIjoiSmF2YSIsInVfaWQiOjQ0NX0seyJjb250ZW50X2lkIjoiNDQ1IiwidGl0bGUiOm51bGwsImNvbXBhbnkiOiJMXHUwMGUwbSBtaW5pIHByb2plY3Qgdlx1MWVjMSBqYXZhIFN3aW5nIiwic3RhcnRkYXRlIjoiVGhcdTAwZTFuZyAzMC0wNC0yMDIwIiwiZW5kZGF0ZSI6IjA4LTA1LTIwMjAiLCJjb250ZW50IjoiPHA+VFx1MWVhMW8gXHUxZWU5bmcgZFx1MWVlNW5nIHF1XHUxZWEzbiBsXHUwMGZkIHRyb25nIHNpXHUwMGVhdSB0aFx1MWVjYi48XC9wPjxwPi0gXHUxZWU4bmcgZFx1MWVlNW5nIGNobyBwaFx1MDBlOXAgTmhcdTAwZTAgcXVcdTFlYTNuIGxcdTAwZmQgdlx1MDBlMCBOaFx1MDBlMm4gdmlcdTAwZWFuIHRodSBuZ1x1MDBlMm4gdGhcdTFlZjFjIGhpXHUxZWM3biBjXHUwMGUxYyBjXHUwMGY0bmcgdmlcdTFlYzdjIG5oXHUwMWIwIDo8XC9wPjxwPisgUXVcdTFlYTNuIGxcdTAwZmQgY1x1MDBlMWMgc1x1MWVhM24gcGhcdTFlYTltIGJcdTAwZTFuIHRyb25nIHNpXHUwMGVhdSB0aFx1MWVjYjxcL3A+PHA+KyBMXHUxZWFkcCB2XHUwMGUwIHF1XHUxZWEzbiBsXHUwMGZkIGNcdTAwZTFjIGhcdTAwZjNhIFx1MDExMVx1MDFhMW4gYlx1MDBlMW4gaFx1MDBlMG5nIChCaWxsKTxcL3A+PHA+KyBRdVx1MWVhM24gbFx1MDBmZCBOaFx1MDBlMm4gdmlcdTAwZWFuPFwvcD48cD4rIFRoXHUxZWQxbmcga1x1MDBlYSBkXHUxZWVmIGxpXHUxZWM3dSZuYnNwOzxcL3A+IiwidGVjaG5pcXVlIjoiSmF2YSBTd2luZyAsIG15U1FMIiwidV9pZCI6NDk4fV0=`)) //Thông tin kỹ năng làm việc var skillData = JSON.parse(Base64.decode(`W3siY29udGVudF9pZCI6bnVsbCwidGl0bGUiOiJKYXZhIiwicmF0ZSI6IjIiLCJ1X2lkIjo0MzR9LHsiY29udGVudF9pZCI6bnVsbCwidGl0bGUiOiJIVE1MXC9DU1NcL0pTIiwicmF0ZSI6IjIiLCJ1X2lkIjo0MzV9LHsiY29udGVudF9pZCI6bnVsbCwidGl0bGUiOiJTUUwgc2VydmVyIiwicmF0ZSI6IjIiLCJ1X2lkIjo0MzZ9XQ==`)) //Thông tin về học vấn var educationData = JSON.parse(Base64.decode(`W3siY29udGVudF9pZCI6bnVsbCwidGl0bGUiOiJGUFQgQXB0ZWNoIiwiYWRkcmVzcyI6IkhcdTAwZTAgTlx1MWVkOWksIFZpXHUxZWM3dCBOYW0iLCJzdGFydGF0IjoiMjAxOSIsImVuZGRhdGUiOiIyMDIxIiwidV9pZCI6NDM4fV0=`)) //Thông tin về chứng chỉ var cerfiticateData = JSON.parse(Base64.decode(`W10=`)) //Thông tin về ngôn ngữ var languageData = JSON.parse(Base64.decode(`W3siY29udGVudF9pZCI6bnVsbCwidGl0bGUiOiJFbmdsaXNoIiwicmF0ZSI6IllcdTFlYmZ1IiwidV9pZCI6NDM5fV0=`)) //Thông tin về sở thích var interestData = JSON.parse(Base64.decode(`W3siY29udGVudF9pZCI6bnVsbCwidGl0bGUiOiJUXHUwMGVjbSBoaVx1MWVjM3UgY1x1MDBmNG5nIG5naFx1MWVjNyIsInVfaWQiOjQ0MX0seyJjb250ZW50X2lkIjpudWxsLCJ0aXRsZSI6IkR1IGxcdTFlY2JjaCIsInVfaWQiOjQ0Mn0seyJjb250ZW50X2lkIjpudWxsLCJ0aXRsZSI6Ilx1MDExMFx1MDBlMSBiXHUwMGYzbmciLCJ1X2lkIjo1NTV9XQ==`))