@senior-agronegocio/angular-components 0.0.70-origination → 0.0.71-origination

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -139,4 +139,14 @@ export declare const AGRO_REGEX: {
139
139
  * Validação se todos os dígitos são iguais
140
140
  */
141
141
  isAllDigitsEqual: RegExp;
142
+ /**
143
+ * Validação de Placa de Veículo do Mercosul
144
+ * Formato: ABC1D23
145
+ */
146
+ isMercosulLicensePlate: RegExp;
147
+ /**
148
+ * Validação de Placa de Veículo Antiga
149
+ * Formato: AAA-0000
150
+ */
151
+ isOldLicensePlate: RegExp;
142
152
  };
@@ -139,5 +139,15 @@ export const AGRO_REGEX = {
139
139
  * Validação se todos os dígitos são iguais
140
140
  */
141
141
  isAllDigitsEqual: /^(.)\1+$/,
142
+ /**
143
+ * Validação de Placa de Veículo do Mercosul
144
+ * Formato: ABC1D23
145
+ */
146
+ isMercosulLicensePlate: /^[A-Z]{3}[0-9]{1}[A-Z]{1}[0-9]{2}$/,
147
+ /**
148
+ * Validação de Placa de Veículo Antiga
149
+ * Formato: AAA-0000
150
+ */
151
+ isOldLicensePlate: /^[A-Z]{3}[0-9]{4}$/
142
152
  };
143
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1yZWdleC5jb25zdGFudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3ItYWdyb25lZ29jaW8vYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tbW9uL2Fncm8tcmVnZXguY29uc3RhbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3RCOztPQUVHO0lBQ0gsT0FBTyxFQUFFLDRCQUE0QjtJQUVyQzs7T0FFRztJQUNILGVBQWUsRUFBRSxZQUFZO0lBRTdCOztPQUVHO0lBQ0gsZUFBZSxFQUFFLGFBQWE7SUFFOUI7O09BRUc7SUFDSCxlQUFlLEVBQUUsT0FBTztJQUV4Qjs7T0FFRztJQUNILE9BQU8sRUFBRSx1QkFBdUI7SUFFaEM7O09BRUc7SUFDSCxRQUFRLEVBQUUsV0FBVztJQUVyQjs7T0FFRztJQUNILE1BQU0sRUFBRSw0RkFBNEY7SUFFcEc7O09BRUc7SUFDSCxRQUFRLEVBQUUsU0FBUztJQUVuQjs7T0FFRztJQUNILFNBQVMsRUFBRSxhQUFhO0lBRXhCOztPQUVHO0lBQ0gsY0FBYyxFQUFFLHNDQUFzQztJQUV0RDs7T0FFRztJQUNILGFBQWEsRUFBRSx3QkFBd0I7SUFFdkM7O09BRUc7SUFDSCxNQUFNLEVBQUUscUJBQXFCO0lBRTdCOztPQUVHO0lBQ0gsTUFBTSxFQUFFLDRCQUE0QjtJQUVwQzs7T0FFRztJQUNILFVBQVUsRUFBRSw4Q0FBOEM7SUFFMUQ7O09BRUc7SUFDSCxLQUFLLEVBQUUsd0RBQXdEO0lBRS9EOztPQUVHO0lBQ0gsV0FBVyxFQUFFLGdCQUFnQjtJQUU3Qjs7T0FFRztJQUNILFFBQVEsRUFBRSx3QkFBd0I7SUFFbEM7O09BRUc7SUFDSCxVQUFVLEVBQUUsWUFBWTtJQUV4Qjs7T0FFRztJQUNILGNBQWMsRUFBRSxnQkFBZ0I7SUFFaEM7O09BRUc7SUFDSCxNQUFNLEVBQUUsY0FBYztJQUV0Qjs7T0FFRztJQUNILFlBQVksRUFBRSwyQkFBMkI7SUFFekM7O09BRUc7SUFDSCxhQUFhLEVBQUUsZ0JBQWdCO0lBRS9COztPQUVHO0lBQ0gsVUFBVSxFQUFFLG1CQUFtQjtJQUUvQjs7T0FFRztJQUNILFlBQVksRUFBRSx5Q0FBeUM7SUFFdkQ7O09BRUc7SUFDSCxTQUFTLEVBQUUsMkNBQTJDO0lBRXREOztPQUVHO0lBQ0gsb0JBQW9CLEVBQUUsdUJBQXVCO0lBRTdDOztPQUVHO0lBQ0gsZ0JBQWdCLEVBQUUsc0VBQXNFO0lBRXhGOztPQUVHO0lBQ0gsWUFBWSxFQUFFLGFBQWE7SUFFM0I7O09BRUc7SUFDSCxZQUFZLEVBQUUsbUNBQW1DO0lBRWpEOztPQUVHO0lBQ0gsVUFBVSxFQUFFLHFDQUFxQztJQUVqRDs7T0FFRztJQUNILFdBQVcsRUFBRSxxREFBcUQ7SUFFbEU7O09BRUc7SUFDSCxZQUFZLEVBQUUsMkNBQTJDO0lBRXpEOztPQUVHO0lBQ0gsc0JBQXNCLEVBQUUsMEJBQTBCO0lBRWxEOztPQUVHO0lBQ0gsS0FBSyxFQUFFLHFCQUFxQjtJQUU1Qjs7T0FFRztJQUNILGdCQUFnQixFQUFFLFVBQVU7Q0FDN0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBBR1JPX1JFR0VYID0ge1xyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBFLW1haWxcclxuICAgICAqL1xyXG4gICAgaXNFbWFpbDogL15bXlxcc0BdK0BbXlxcc0BdK1xcLlteXFxzQF0rJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBOw7ptZXJvcyBJbnRlaXJvcyBQb3NpdGl2b3NcclxuICAgICAqL1xyXG4gICAgcG9zaXRpdmVJbnRlZ2VyOiAvXlsxLTldXFxkKiQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgTsO6bWVyb3MgRGVjaW1haXMgUG9zaXRpdm9zXHJcbiAgICAgKi9cclxuICAgIHBvc2l0aXZlRGVjaW1hbDogL15cXGQqXFwuP1xcZCskLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIHN0cmluZyBxdWUgY29uc2lzdGUgYXBlbmFzIGVtIGVzcGHDp29zIGVtIGJyYW5jbyBvdSBlc3TDoSB2YXppYS5cclxuICAgICAqL1xyXG4gICAgb25seUJsYW5rU3BhY2VzOiAvXlxccyokLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIENFUCAoQ8OzZGlnbyBQb3N0YWwpXHJcbiAgICAgKi9cclxuICAgIHppcENvZGU6IC9eXFxkezh9JHxeXFxkezV9LVxcZHszfSQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgU3RyaW5nIChxdWFscXVlciBjYXJhY3RlcmUpXHJcbiAgICAgKi9cclxuICAgIGlzU3RyaW5nOiAvXltcXHNcXFNdKiQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgVVVJRFxyXG4gICAgICovXHJcbiAgICBpc1VVSUQ6IC9eWzAtOWEtZkEtRl17OH0tWzAtOWEtZkEtRl17NH0tWzEtNV1bMC05YS1mQS1GXXszfS1bODlhYkFCXVswLTlhLWZBLUZdezN9LVswLTlhLWZBLUZdezEyfSQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgTsO6bWVyb1xyXG4gICAgICovXHJcbiAgICBpc051bWJlcjogL14tP1xcZCskLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIE7Dum1lcm8gRGVjaW1hbFxyXG4gICAgICovXHJcbiAgICBpc0RlY2ltYWw6IC9eXFxkKlxcLj9cXGQrJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBQbGFjYSBkZSBWZcOtY3Vsb1xyXG4gICAgICovXHJcbiAgICBpc0xpY2Vuc2VQbGF0ZTogL15bQS1aYS16MC05XXsxLDd9LT9bQS1aYS16MC05XXsxLDd9JC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBOw7ptZXJvIGRlIFRlbGVmb25lXHJcbiAgICAgKi9cclxuICAgIGlzUGhvbmVOdW1iZXI6IC9eXFwrP1xcZHsxLDR9LT9cXGR7NiwxMX0kLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIERhdGEgKEZvcm1hdG8gWVlZWS1NTS1ERClcclxuICAgICAqL1xyXG4gICAgaXNEYXRlOiAvXlxcZHs0fS1cXGR7Mn0tXFxkezJ9JC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBIb3JhIChGb3JtYXRvIEhIOm1tKVxyXG4gICAgICovXHJcbiAgICBpc1RpbWU6IC9eKDBcXGR8MVxcZHwyWzAtM10pOlswLTVdXFxkJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBEYXRhIGUgSG9yYSAoRm9ybWF0byBZWVlZLU1NLUREIEhIOm1tKVxyXG4gICAgICovXHJcbiAgICBpc0RhdGVUaW1lOiAvXlxcZHs0fS1cXGR7Mn0tXFxkezJ9ICgwXFxkfDFcXGR8MlswLTNdKTpbMC01XVxcZCQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgVVJMXHJcbiAgICAgKi9cclxuICAgIGlzVVJMOiAvXihodHRwfGh0dHBzKTpcXC9cXC8oW1xcdy1dK1xcLikrW1xcdy1dKyhcXC9bXFx3LSAuLz8lJj1dKik/JC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBOw7ptZXJvIEhleGFkZWNpbWFsXHJcbiAgICAgKi9cclxuICAgIGlzSGV4TnVtYmVyOiAvXlswLTlhLWZBLUZdKyQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgQmFzZTY0XHJcbiAgICAgKi9cclxuICAgIGlzQmFzZTY0OiAvXlthLXpBLVowLTkrL10rPXswLDJ9JC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBOb21lIGRlIFVzdcOhcmlvICgzIGEgMjAgY2FyYWN0ZXJlcyBhbGZhbnVtw6lyaWNvcylcclxuICAgICAqL1xyXG4gICAgaXNVc2VybmFtZTogL15cXHd7MywyMH0kLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIEFsZmFudW3DqXJpY29cclxuICAgICAqL1xyXG4gICAgaXNBbHBoYW51bWVyaWM6IC9eW2EtekEtWjAtOV0rJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBTbHVnIChsZXRyYXMgbWluw7pzY3VsYXMsIG7Dum1lcm9zIGUgdHJhw6dvcylcclxuICAgICAqL1xyXG4gICAgaXNTbHVnOiAvXlthLXowLTktXSskLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIE7Dum1lcm8gZGUgQ2FydMOjbyBkZSBDcsOpZGl0b1xyXG4gICAgICovXHJcbiAgICBpc0NyZWRpdENhcmQ6IC9eXFxkezR9LVxcZHs0fS1cXGR7NH0tXFxkezR9JC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBOw7ptZXJvIEhleGFkZWNpbWFsXHJcbiAgICAgKi9cclxuICAgIGlzSGV4YWRlY2ltYWw6IC9eWzAtOWEtZkEtRl0rJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBNb2VkYVxyXG4gICAgICovXHJcbiAgICBpc0N1cnJlbmN5OiAvXlxcZCsoXFwuXFxkezEsMn0pPyQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgUG9yY2VudGFnZW1cclxuICAgICAqL1xyXG4gICAgaXNQZXJjZW50YWdlOiAvXigxMDAoXFwuMHsxLDJ9KT98WzEtOV0/XFxkKFxcLlxcZHsxLDJ9KT8pJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBUYWcgSFRNTCBTaW1wbGVzXHJcbiAgICAgKi9cclxuICAgIGlzSFRNTFRhZzogL148KFthLXpdKykoW148XSspKig/Oj4oLiopPFxcL1xcMT58XFxzK1xcLz4pJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBOb21lIGRlIFVzdcOhcmlvIGNvbSBFc3Bhw6dvcyAoMyBhIDIwIGNhcmFjdGVyZXMgYWxmYW51bcOpcmljb3MgZSBlc3Bhw6dvcylcclxuICAgICAqL1xyXG4gICAgaXNVc2VybmFtZVdpdGhTcGFjZXM6IC9eW2EtekEtWjAtOV8gXXszLDIwfSQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgU2VuaGEgRm9ydGUgKG3DrW5pbW8gOCBjYXJhY3RlcmVzLCB1bWEgbGV0cmEgbWluw7pzY3VsYSwgdW1hIGxldHJhIG1hacO6c2N1bGEsIHVtIG7Dum1lcm8gZSB1bSBjYXJhY3RlcmUgZXNwZWNpYWwpXHJcbiAgICAgKi9cclxuICAgIGlzU3Ryb25nUGFzc3dvcmQ6IC9eKD89LipbYS16XSkoPz0uKltBLVpdKSg/PS4qXFxkKSg/PS4qW0AkISUqPyZdKVtBLVphLXpcXGRAJCElKj8mXXs4LH0kLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIFN0cmluZyBBbGZhYsOpdGljYVxyXG4gICAgICovXHJcbiAgICBpc0FscGhhYmV0aWM6IC9eW2EtekEtWl0rJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBIb3JhIG5vIEZvcm1hdG8gZGUgMTIgSG9yYXNcclxuICAgICAqL1xyXG4gICAgaXNUaW1lMTJIb3VyOiAvXigwP1sxLTldfDFbMC0yXSk6XFxkezJ9IChBTXxQTSkkL2ksXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBMYXRpdHVkZVxyXG4gICAgICovXHJcbiAgICBpc0xhdGl0dWRlOiAvXlstK10/KFsxLThdP1xcZChcXC5cXGQrKT98OTAoXFwuMCspPykkLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIExvbmdpdHVkZVxyXG4gICAgICovXHJcbiAgICBpc0xvbmdpdHVkZTogL15bLStdPygxODAoXFwuMCspP3woKDFbMC03XVxcZCl8KFsxLTldP1xcZCkpKFxcLlxcZCspPykkLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIEVuZGVyZcOnbyBNQUNcclxuICAgICAqL1xyXG4gICAgaXNNQUNBZGRyZXNzOiAvXihbMC05QS1GYS1mXXsyfVs6LV0pezV9KFswLTlBLUZhLWZdezJ9KSQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgRGF0YSBkZSBFeHBpcmHDp8OjbyBkZSBDYXJ0w6NvIGRlIENyw6lkaXRvXHJcbiAgICAgKi9cclxuICAgIGlzQ3JlZGl0Q2FyZEV4cGlyYXRpb246IC9eKDBbMS05XXwxWzAtMl0pXFwvXFxkezJ9JC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBOw7ptZXJvIGRlIFNlZ3VybyBTb2NpYWwgKFNTTilcclxuICAgICAqL1xyXG4gICAgaXNTU046IC9eXFxkezN9LVxcZHsyfS1cXGR7NH0kLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIHNlIHRvZG9zIG9zIGTDrWdpdG9zIHPDo28gaWd1YWlzXHJcbiAgICAgKi9cclxuICAgIGlzQWxsRGlnaXRzRXF1YWw6IC9eKC4pXFwxKyQvLFxyXG4gIH07XHJcbiJdfQ==
153
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1yZWdleC5jb25zdGFudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3ItYWdyb25lZ29jaW8vYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tbW9uL2Fncm8tcmVnZXguY29uc3RhbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3RCOztPQUVHO0lBQ0gsT0FBTyxFQUFFLDRCQUE0QjtJQUVyQzs7T0FFRztJQUNILGVBQWUsRUFBRSxZQUFZO0lBRTdCOztPQUVHO0lBQ0gsZUFBZSxFQUFFLGFBQWE7SUFFOUI7O09BRUc7SUFDSCxlQUFlLEVBQUUsT0FBTztJQUV4Qjs7T0FFRztJQUNILE9BQU8sRUFBRSx1QkFBdUI7SUFFaEM7O09BRUc7SUFDSCxRQUFRLEVBQUUsV0FBVztJQUVyQjs7T0FFRztJQUNILE1BQU0sRUFBRSw0RkFBNEY7SUFFcEc7O09BRUc7SUFDSCxRQUFRLEVBQUUsU0FBUztJQUVuQjs7T0FFRztJQUNILFNBQVMsRUFBRSxhQUFhO0lBRXhCOztPQUVHO0lBQ0gsY0FBYyxFQUFFLHNDQUFzQztJQUV0RDs7T0FFRztJQUNILGFBQWEsRUFBRSx3QkFBd0I7SUFFdkM7O09BRUc7SUFDSCxNQUFNLEVBQUUscUJBQXFCO0lBRTdCOztPQUVHO0lBQ0gsTUFBTSxFQUFFLDRCQUE0QjtJQUVwQzs7T0FFRztJQUNILFVBQVUsRUFBRSw4Q0FBOEM7SUFFMUQ7O09BRUc7SUFDSCxLQUFLLEVBQUUsd0RBQXdEO0lBRS9EOztPQUVHO0lBQ0gsV0FBVyxFQUFFLGdCQUFnQjtJQUU3Qjs7T0FFRztJQUNILFFBQVEsRUFBRSx3QkFBd0I7SUFFbEM7O09BRUc7SUFDSCxVQUFVLEVBQUUsWUFBWTtJQUV4Qjs7T0FFRztJQUNILGNBQWMsRUFBRSxnQkFBZ0I7SUFFaEM7O09BRUc7SUFDSCxNQUFNLEVBQUUsY0FBYztJQUV0Qjs7T0FFRztJQUNILFlBQVksRUFBRSwyQkFBMkI7SUFFekM7O09BRUc7SUFDSCxhQUFhLEVBQUUsZ0JBQWdCO0lBRS9COztPQUVHO0lBQ0gsVUFBVSxFQUFFLG1CQUFtQjtJQUUvQjs7T0FFRztJQUNILFlBQVksRUFBRSx5Q0FBeUM7SUFFdkQ7O09BRUc7SUFDSCxTQUFTLEVBQUUsMkNBQTJDO0lBRXREOztPQUVHO0lBQ0gsb0JBQW9CLEVBQUUsdUJBQXVCO0lBRTdDOztPQUVHO0lBQ0gsZ0JBQWdCLEVBQUUsc0VBQXNFO0lBRXhGOztPQUVHO0lBQ0gsWUFBWSxFQUFFLGFBQWE7SUFFM0I7O09BRUc7SUFDSCxZQUFZLEVBQUUsbUNBQW1DO0lBRWpEOztPQUVHO0lBQ0gsVUFBVSxFQUFFLHFDQUFxQztJQUVqRDs7T0FFRztJQUNILFdBQVcsRUFBRSxxREFBcUQ7SUFFbEU7O09BRUc7SUFDSCxZQUFZLEVBQUUsMkNBQTJDO0lBRXpEOztPQUVHO0lBQ0gsc0JBQXNCLEVBQUUsMEJBQTBCO0lBRWxEOztPQUVHO0lBQ0gsS0FBSyxFQUFFLHFCQUFxQjtJQUU1Qjs7T0FFRztJQUNILGdCQUFnQixFQUFFLFVBQVU7SUFFNUI7OztPQUdHO0lBQ0gsc0JBQXNCLEVBQUUsb0NBQW9DO0lBRzVEOzs7T0FHRztJQUNILGlCQUFpQixFQUFFLG9CQUFvQjtDQUN4QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IEFHUk9fUkVHRVggPSB7XHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIEUtbWFpbFxyXG4gICAgICovXHJcbiAgICBpc0VtYWlsOiAvXlteXFxzQF0rQFteXFxzQF0rXFwuW15cXHNAXSskLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIE7Dum1lcm9zIEludGVpcm9zIFBvc2l0aXZvc1xyXG4gICAgICovXHJcbiAgICBwb3NpdGl2ZUludGVnZXI6IC9eWzEtOV1cXGQqJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBOw7ptZXJvcyBEZWNpbWFpcyBQb3NpdGl2b3NcclxuICAgICAqL1xyXG4gICAgcG9zaXRpdmVEZWNpbWFsOiAvXlxcZCpcXC4/XFxkKyQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgc3RyaW5nIHF1ZSBjb25zaXN0ZSBhcGVuYXMgZW0gZXNwYcOnb3MgZW0gYnJhbmNvIG91IGVzdMOhIHZhemlhLlxyXG4gICAgICovXHJcbiAgICBvbmx5QmxhbmtTcGFjZXM6IC9eXFxzKiQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgQ0VQIChDw7NkaWdvIFBvc3RhbClcclxuICAgICAqL1xyXG4gICAgemlwQ29kZTogL15cXGR7OH0kfF5cXGR7NX0tXFxkezN9JC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBTdHJpbmcgKHF1YWxxdWVyIGNhcmFjdGVyZSlcclxuICAgICAqL1xyXG4gICAgaXNTdHJpbmc6IC9eW1xcc1xcU10qJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBVVUlEXHJcbiAgICAgKi9cclxuICAgIGlzVVVJRDogL15bMC05YS1mQS1GXXs4fS1bMC05YS1mQS1GXXs0fS1bMS01XVswLTlhLWZBLUZdezN9LVs4OWFiQUJdWzAtOWEtZkEtRl17M30tWzAtOWEtZkEtRl17MTJ9JC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBOw7ptZXJvXHJcbiAgICAgKi9cclxuICAgIGlzTnVtYmVyOiAvXi0/XFxkKyQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgTsO6bWVybyBEZWNpbWFsXHJcbiAgICAgKi9cclxuICAgIGlzRGVjaW1hbDogL15cXGQqXFwuP1xcZCskLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIFBsYWNhIGRlIFZlw61jdWxvXHJcbiAgICAgKi9cclxuICAgIGlzTGljZW5zZVBsYXRlOiAvXltBLVphLXowLTldezEsN30tP1tBLVphLXowLTldezEsN30kLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIE7Dum1lcm8gZGUgVGVsZWZvbmVcclxuICAgICAqL1xyXG4gICAgaXNQaG9uZU51bWJlcjogL15cXCs/XFxkezEsNH0tP1xcZHs2LDExfSQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgRGF0YSAoRm9ybWF0byBZWVlZLU1NLUREKVxyXG4gICAgICovXHJcbiAgICBpc0RhdGU6IC9eXFxkezR9LVxcZHsyfS1cXGR7Mn0kLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIEhvcmEgKEZvcm1hdG8gSEg6bW0pXHJcbiAgICAgKi9cclxuICAgIGlzVGltZTogL14oMFxcZHwxXFxkfDJbMC0zXSk6WzAtNV1cXGQkLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIERhdGEgZSBIb3JhIChGb3JtYXRvIFlZWVktTU0tREQgSEg6bW0pXHJcbiAgICAgKi9cclxuICAgIGlzRGF0ZVRpbWU6IC9eXFxkezR9LVxcZHsyfS1cXGR7Mn0gKDBcXGR8MVxcZHwyWzAtM10pOlswLTVdXFxkJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBVUkxcclxuICAgICAqL1xyXG4gICAgaXNVUkw6IC9eKGh0dHB8aHR0cHMpOlxcL1xcLyhbXFx3LV0rXFwuKStbXFx3LV0rKFxcL1tcXHctIC4vPyUmPV0qKT8kLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIE7Dum1lcm8gSGV4YWRlY2ltYWxcclxuICAgICAqL1xyXG4gICAgaXNIZXhOdW1iZXI6IC9eWzAtOWEtZkEtRl0rJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBCYXNlNjRcclxuICAgICAqL1xyXG4gICAgaXNCYXNlNjQ6IC9eW2EtekEtWjAtOSsvXSs9ezAsMn0kLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIE5vbWUgZGUgVXN1w6FyaW8gKDMgYSAyMCBjYXJhY3RlcmVzIGFsZmFudW3DqXJpY29zKVxyXG4gICAgICovXHJcbiAgICBpc1VzZXJuYW1lOiAvXlxcd3szLDIwfSQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgQWxmYW51bcOpcmljb1xyXG4gICAgICovXHJcbiAgICBpc0FscGhhbnVtZXJpYzogL15bYS16QS1aMC05XSskLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIFNsdWcgKGxldHJhcyBtaW7DunNjdWxhcywgbsO6bWVyb3MgZSB0cmHDp29zKVxyXG4gICAgICovXHJcbiAgICBpc1NsdWc6IC9eW2EtejAtOS1dKyQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgTsO6bWVybyBkZSBDYXJ0w6NvIGRlIENyw6lkaXRvXHJcbiAgICAgKi9cclxuICAgIGlzQ3JlZGl0Q2FyZDogL15cXGR7NH0tXFxkezR9LVxcZHs0fS1cXGR7NH0kLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIE7Dum1lcm8gSGV4YWRlY2ltYWxcclxuICAgICAqL1xyXG4gICAgaXNIZXhhZGVjaW1hbDogL15bMC05YS1mQS1GXSskLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIE1vZWRhXHJcbiAgICAgKi9cclxuICAgIGlzQ3VycmVuY3k6IC9eXFxkKyhcXC5cXGR7MSwyfSk/JC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBQb3JjZW50YWdlbVxyXG4gICAgICovXHJcbiAgICBpc1BlcmNlbnRhZ2U6IC9eKDEwMChcXC4wezEsMn0pP3xbMS05XT9cXGQoXFwuXFxkezEsMn0pPykkLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIFRhZyBIVE1MIFNpbXBsZXNcclxuICAgICAqL1xyXG4gICAgaXNIVE1MVGFnOiAvXjwoW2Etel0rKShbXjxdKykqKD86PiguKik8XFwvXFwxPnxcXHMrXFwvPikkLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIE5vbWUgZGUgVXN1w6FyaW8gY29tIEVzcGHDp29zICgzIGEgMjAgY2FyYWN0ZXJlcyBhbGZhbnVtw6lyaWNvcyBlIGVzcGHDp29zKVxyXG4gICAgICovXHJcbiAgICBpc1VzZXJuYW1lV2l0aFNwYWNlczogL15bYS16QS1aMC05XyBdezMsMjB9JC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBTZW5oYSBGb3J0ZSAobcOtbmltbyA4IGNhcmFjdGVyZXMsIHVtYSBsZXRyYSBtaW7DunNjdWxhLCB1bWEgbGV0cmEgbWFpw7pzY3VsYSwgdW0gbsO6bWVybyBlIHVtIGNhcmFjdGVyZSBlc3BlY2lhbClcclxuICAgICAqL1xyXG4gICAgaXNTdHJvbmdQYXNzd29yZDogL14oPz0uKlthLXpdKSg/PS4qW0EtWl0pKD89LipcXGQpKD89LipbQCQhJSo/Jl0pW0EtWmEtelxcZEAkISUqPyZdezgsfSQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgU3RyaW5nIEFsZmFiw6l0aWNhXHJcbiAgICAgKi9cclxuICAgIGlzQWxwaGFiZXRpYzogL15bYS16QS1aXSskLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIEhvcmEgbm8gRm9ybWF0byBkZSAxMiBIb3Jhc1xyXG4gICAgICovXHJcbiAgICBpc1RpbWUxMkhvdXI6IC9eKDA/WzEtOV18MVswLTJdKTpcXGR7Mn0gKEFNfFBNKSQvaSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIExhdGl0dWRlXHJcbiAgICAgKi9cclxuICAgIGlzTGF0aXR1ZGU6IC9eWy0rXT8oWzEtOF0/XFxkKFxcLlxcZCspP3w5MChcXC4wKyk/KSQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgTG9uZ2l0dWRlXHJcbiAgICAgKi9cclxuICAgIGlzTG9uZ2l0dWRlOiAvXlstK10/KDE4MChcXC4wKyk/fCgoMVswLTddXFxkKXwoWzEtOV0/XFxkKSkoXFwuXFxkKyk/KSQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgRW5kZXJlw6dvIE1BQ1xyXG4gICAgICovXHJcbiAgICBpc01BQ0FkZHJlc3M6IC9eKFswLTlBLUZhLWZdezJ9WzotXSl7NX0oWzAtOUEtRmEtZl17Mn0pJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBEYXRhIGRlIEV4cGlyYcOnw6NvIGRlIENhcnTDo28gZGUgQ3LDqWRpdG9cclxuICAgICAqL1xyXG4gICAgaXNDcmVkaXRDYXJkRXhwaXJhdGlvbjogL14oMFsxLTldfDFbMC0yXSlcXC9cXGR7Mn0kLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIE7Dum1lcm8gZGUgU2VndXJvIFNvY2lhbCAoU1NOKVxyXG4gICAgICovXHJcbiAgICBpc1NTTjogL15cXGR7M30tXFxkezJ9LVxcZHs0fSQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gc2UgdG9kb3Mgb3MgZMOtZ2l0b3Mgc8OjbyBpZ3VhaXNcclxuICAgICAqL1xyXG4gICAgaXNBbGxEaWdpdHNFcXVhbDogL14oLilcXDErJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBQbGFjYSBkZSBWZcOtY3VsbyBkbyBNZXJjb3N1bFxyXG4gICAgICogRm9ybWF0bzogQUJDMUQyM1xyXG4gICAgICovXHJcbiAgICBpc01lcmNvc3VsTGljZW5zZVBsYXRlOiAvXltBLVpdezN9WzAtOV17MX1bQS1aXXsxfVswLTldezJ9JC8sXHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgUGxhY2EgZGUgVmXDrWN1bG8gQW50aWdhXHJcbiAgICAgKiBGb3JtYXRvOiBBQUEtMDAwMFxyXG4gICAgICovXHJcbiAgICBpc09sZExpY2Vuc2VQbGF0ZTogL15bQS1aXXszfVswLTldezR9JC9cclxuICB9O1xyXG4iXX0=
@@ -178,13 +178,14 @@ export class AgroFormValidator {
178
178
  */
179
179
  static checkValueBetween(minorFormControl, targetFormControl, majorFormControl) {
180
180
  const checkValue = (control) => {
181
- var _a, _b, _c, _d;
181
+ var _a, _b, _c;
182
182
  const formGroup = control;
183
183
  const valueA = (_a = formGroup.get(minorFormControl)) === null || _a === void 0 ? void 0 : _a.value;
184
184
  const valueB = (_b = formGroup.get(targetFormControl)) === null || _b === void 0 ? void 0 : _b.value;
185
185
  const valueC = (_c = formGroup.get(majorFormControl)) === null || _c === void 0 ? void 0 : _c.value;
186
186
  const methodName = 'checkValueBetween';
187
- if (valueA && valueB && valueC) {
187
+ const areNumbers = [valueA, valueB, valueC].every(v => v !== null && v !== undefined);
188
+ if (areNumbers) {
188
189
  if (valueB < valueA || valueB > valueC) {
189
190
  const targetControl = formGroup.get(targetFormControl);
190
191
  if (targetControl) {
@@ -192,10 +193,12 @@ export class AgroFormValidator {
192
193
  }
193
194
  return { [methodName]: true };
194
195
  }
195
- else if ((_d = formGroup.get(targetFormControl)) === null || _d === void 0 ? void 0 : _d.hasError(methodName)) {
196
+ else {
196
197
  const targetControl = formGroup.get(targetFormControl);
197
- if (targetControl) {
198
- targetControl.setErrors(null);
198
+ if (targetControl === null || targetControl === void 0 ? void 0 : targetControl.hasError(methodName)) {
199
+ const errors = Object.assign({}, targetControl.errors);
200
+ delete errors[methodName];
201
+ targetControl.setErrors(Object.keys(errors).length ? errors : null);
199
202
  }
200
203
  }
201
204
  }
@@ -225,5 +228,90 @@ export class AgroFormValidator {
225
228
  };
226
229
  return objectProperty;
227
230
  }
231
+ /**
232
+ * Valida se o campo é um CPF (Cadastro de Pessoa Física) válido.
233
+ */
234
+ static CPFValidator() {
235
+ const cpfVal = (control) => {
236
+ const cpf = (control.value || '').replace(/[^\d]/g, '');
237
+ if (!cpf) {
238
+ return null; // Não valida campo vazio, use Validators.required junto se quiser obrigatoriedade
239
+ }
240
+ if (cpf.length !== 11) {
241
+ return { cpfValidator: true };
242
+ }
243
+ // Verifica se todos os dígitos são iguais (ex.: 11111111111)
244
+ if (/^(\d)\1{10}$/.test(cpf)) {
245
+ return { cpfValidator: true };
246
+ }
247
+ // Validação dos dígitos verificadores
248
+ const calcCheckDigit = (cpfSlice, factor) => {
249
+ let total = 0;
250
+ for (const digit of cpfSlice) {
251
+ total += parseInt(digit, 10) * factor--;
252
+ }
253
+ const remainder = total % 11;
254
+ return remainder < 2 ? 0 : 11 - remainder;
255
+ };
256
+ const digit1 = calcCheckDigit(cpf.substring(0, 9), 10);
257
+ const digit2 = calcCheckDigit(cpf.substring(0, 9) + digit1, 11);
258
+ const isValid = digit1 === parseInt(cpf.charAt(9), 10) &&
259
+ digit2 === parseInt(cpf.charAt(10), 10);
260
+ return isValid ? null : { cpfValidator: true };
261
+ };
262
+ return cpfVal;
263
+ }
264
+ /**
265
+ * Validator de CNPJ (Cadastro Nacional da Pessoa Jurídica).
266
+ * @returns
267
+ */
268
+ CNPJValidator() {
269
+ return (control) => {
270
+ var _a;
271
+ const value = (_a = control.value) === null || _a === void 0 ? void 0 : _a.replace(/\D/g, '');
272
+ if (!value || value.length !== 14) {
273
+ return { cnpjValidator: true };
274
+ }
275
+ // Verifica CNPJs com todos os dígitos iguais (inválidos)
276
+ if (/^(\d)\1{13}$/.test(value)) {
277
+ return { cnpjValidator: true };
278
+ }
279
+ const validateCheckDigit = (cnpj, length) => {
280
+ const weights = length === 12
281
+ ? [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2]
282
+ : [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];
283
+ const sum = cnpj
284
+ .slice(0, length)
285
+ .split('')
286
+ .reduce((acc, digit, index) => {
287
+ return acc + parseInt(digit, 10) * weights[index];
288
+ }, 0);
289
+ const remainder = sum % 11;
290
+ return remainder < 2 ? 0 : 11 - remainder;
291
+ };
292
+ const firstCheckDigit = validateCheckDigit(value, 12);
293
+ const secondCheckDigit = validateCheckDigit(value, 13);
294
+ if (firstCheckDigit !== parseInt(value.charAt(12), 10) ||
295
+ secondCheckDigit !== parseInt(value.charAt(13), 10)) {
296
+ return { cnpjValidator: true };
297
+ }
298
+ return null; // válido
299
+ };
300
+ }
301
+ /**
302
+ * Valida se a placa do veículo é válida.
303
+ * @returns
304
+ */
305
+ licensePlateValidator() {
306
+ return (control) => {
307
+ const value = (control.value || '').toUpperCase().trim().replace(/-/g, '');
308
+ if (!value) {
309
+ return null; // Campo vazio não é responsabilidade desse validador
310
+ }
311
+ const isValid = AGRO_REGEX.isMercosulLicensePlate.test(value) ||
312
+ AGRO_REGEX.isOldLicensePlate.test(value);
313
+ return isValid ? null : { licensePlateInvalid: true };
314
+ };
315
+ }
228
316
  }
229
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1mb3JtLXZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3ItYWdyb25lZ29jaW8vYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiZm9ybS12YWxpZGF0b3IvYWdyby1mb3JtLXZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDNUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRWhFLE1BQU0sT0FBTyxpQkFBaUI7SUFFMUI7Ozs7Ozs7OztPQVNHO0lBQ0ksTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUF3QjtRQUNqRCxJQUFJLE9BQU8sQ0FBQyxLQUFLLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDMUQsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQzVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLENBQUM7U0FDbkM7UUFDRCxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFHRDs7Ozs7Ozs7Ozs7O09BWUc7SUFDSSxNQUFNLENBQUMsb0JBQW9CLENBQUMsY0FBa0M7UUFDakUsTUFBTSxXQUFXLEdBQUcsQ0FBQyxPQUF3QixFQUFpQyxFQUFFO1lBQzVFLE1BQU0sVUFBVSxHQUFHLHFCQUFxQixDQUFDO1lBQ3pDLE1BQU0sWUFBWSxHQUFTLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNuRCxNQUFN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QUUsQ0FBQyxDQUFDO1lBQzFDLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDO1FBQ2xDLENBQUMsQ0FBQztRQUNGLE9BQU8sY0FBYyxDQUFDO0lBQzFCLENBQUM7Q0FHSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRGF0ZUNvbXBhcmlzb25UeXBlIH0gZnJvbSAnLi4vZW51bXMvZGF0ZS1jb21wYXJpc29uLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7IEFHUk9fUkVHRVggfSBmcm9tICcuLi9jb21tb24vYWdyby1yZWdleC5jb25zdGFudCc7XHJcbmltcG9ydCB7IE51bWJlckNvbXBhcmlzb25UeXBlIH0gZnJvbSAnLi4vZW51bXMvbnVtYmVyLWNvbXBhcmlzb24tdHlwZS5lbnVtJztcclxuaW1wb3J0IHsgT2JqZWN0VXRpbHMgfSBmcm9tICcuLi9jb21tb24vYWdyby1vYmplY3QtdXRpbHMuY2xhc3MnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEFncm9Gb3JtVmFsaWRhdG9yIHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYXRvciBwYXJhIGNoZWNhciBzZSBvIGNhbXBvIMOpIHVtIGUtbWFpbFxyXG4gICAgICpcclxuICAgICAqIEBleGFtcGxlXHJcbiAgICAgKiB0aGlzLm15Rm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICogICAgIEVNQUlMX0ZJRUxEOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBBZ3JvRm9ybVZhbGlkYXRvci5lbWFpbFZhbGlkYXRvcl1dXHJcbiAgICAgKiB9KTtcclxuICAgICAqIEBwYXJhbSBjb250cm9sXHJcbiAgICAgKiBAcmV0dXJuc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIGVtYWlsVmFsaWRhdG9yKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCBudWxsIHtcclxuICAgICAgICBpZiAoY29udHJvbC52YWx1ZSAmJiAhQUdST19SRUdFWC5pc0VtYWlsLnRlc3QoY29udHJvbC52YWx1ZSkpIHtcclxuICAgICAgICAgICAgY29udHJvbC5zZXRFcnJvcnMoeyBlbWFpbFZhbGlkYXRvcjogdHJ1ZSB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIHsgZW1haWxWYWxpZGF0b3I6IHRydWUgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29udHJvbC5zZXRFcnJvcnMobnVsbCk7XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQXBsaXF1ZSBlc3NlIHZhbGlkYWRvciBlbSB1bSBjYW1wbyBkbyB0aXBvIERhdGUsIHBhcmEgdmVyaWZpY2FyIHNlIGEgZGF0YSBzZWxlY2lvbmFkYSDDqSBtYWlvciBvdSBtZW5vciBxdWUgYSBkYXRhIGF0dWFsLlxyXG4gICAgICpcclxuICAgICAqIFV0aWxpemUgbyBwYXLDom1ldHJvIGNvbXBhcmlzb25UeXBlIHBhcmEgZGVmaW5pciBzZSBhIGRhdGEgc2VsZWNpb25hZGEgZGV2ZSBzZXIgbWFpb3Igb3UgbWVub3IgcXVlIGEgZGF0YSBhdHVhbC5cclxuICAgICAqIEEgdmFsaWRhw6fDo28gc2Vyw6EgYXRyYXbDqXMgZG8gZW51bSBEYXRlQ29tcGFyaXNvblR5cGUuXHJcbiAgICAgKlxyXG4gICAgICogQGV4YW1wbGVcclxuICAgICAqIHRoaXMubXlGb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgKiAgICAgTk9NRV9DQU1QTzogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgQWdyb0Zvcm1WYWxpZGF0b3IuY29tcGFyZURhdGVXaXRoVG9kYXkoRGF0ZUNvbXBhcmlzb25UeXBlLmdyZWF0aGVyVGhhbildXVxyXG4gICAgICogfSk7XHJcbiAgICAgKiBAcGFyYW0gY29tcGFyaXNvblR5cGVcclxuICAgICAqIEByZXR1cm5zXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgY29tcGFyZURhdGVXaXRoVG9kYXkoY29tcGFyaXNvblR5cGU6IERhdGVDb21wYXJpc29uVHlwZSk6IFZhbGlkYXRvckZuIHtcclxuICAgICAgICBjb25zdCBjb21wYXJlRGF0ZSA9IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgbnVsbCA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1ldGhvZE5hbWUgPSAnZGF0ZUNvbXBhcmlzb25Ub2RheSc7XHJcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkRGF0ZTogRGF0ZSA9IG5ldyBEYXRlKGNvbnRyb2wudmFsdWUpO1xyXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50RGF0ZTogRGF0ZSA9IG5ldyBEYXRlKCk7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBjb25kaXRpb25zID0ge1xyXG4gICAgICAgICAgICAgICAgW0RhdGVDb21wYXJpc29uVHlwZS5ncmVhdGhlclRoYW5dOiBzZWxlY3RlZERhdGUgPD0gY3VycmVudERhdGUsXHJcbiAgICAgICAgICAgICAgICBbRGF0ZUNvbXBhcmlzb25UeXBlLmxlc3NUaGFuXTogc2VsZWN0ZWREYXRlID49IGN1cnJlbnREYXRlXHJcbiAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICBpZiAoY29uZGl0aW9uc1tjb21wYXJpc29uVHlwZV0pIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7IFttZXRob2ROYW1lXTogeyB2YWx1ZTogY29udHJvbC52YWx1ZSB9IH07XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgcmV0dXJuIGNvbXBhcmVEYXRlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29tcGFyYSBkb2lzIGNhbXBvcyBkbyB0aXBvIERhdGUsIHZlcmlmaWNhbmRvIHNlIG8gY2FtcG8gQSDDqSBtYWlvciBxdWUgbyBjYW1wbyBCLiBTZSBBIGZvciBtYWlvciBxdWUgQiwgZW50w6NvXHJcbiAgICAgKiBvIGNhbXBvIEEgw6kgaW52YWxpZGFkby4gQ2FzbyBjb250csOhcmlvLCBvIGNhbXBvIEEgw6kgdmFsaWRhZG8uXHJcbiAgICAgKlxyXG4gICAgICogQXBsaXF1ZSBlc3NlIGNhbXBvIG5vIEZvcm1Hcm91cCwgcGFzc2FuZG8gb3Mgbm9tZXMgZG9zIGNhbXBvcyBxdWUgZGVzZWphIGNvbXBhcmFyLlxyXG4gICAgICogQGV4YW1wbGVcclxuICAgICAqIHRoaXMubXlGb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICAgICAgIE5PTUVfQ0FNUE9fZGF0ZUE6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICAgICAgIE5PTUVfQ0FNUE9fZGF0ZUI6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF1cclxuICAgICAgICB9LCB7IHZhbGlkYXRvcjogQWdyb0Zvcm1WYWxpZGF0b3IuZGF0ZUNvbXBhcmlzb25WYWxpZGF0b3IoJ05PTUVfQ0FNUE9fZGF0ZUEnLCAnTk9NRV9DQU1QT19kYXRlQicpIH0pO1xyXG4gICAgICogQHBhcmFtIGNvbnRyb2xOYW1lQVxyXG4gICAgICogQHBhcmFtIGNvbnRyb2xOYW1lQlxyXG4gICAgICogQHJldHVybnNcclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBjb21wYXJlRGF0ZVdpdGhPdGhlckRhdGVGaWVsZChjb250cm9sTmFtZUE6IHN0cmluZywgY29udHJvbE5hbWVCOiBzdHJpbmcpOiBWYWxpZGF0b3JGbiB7XHJcbiAgICAgICAgY29uc3QgY29tcGFyZURhdGUgPSAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IG51bGwgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBmb3JtR3JvdXAgPSBjb250cm9sIGFzIEZvcm1Hcm91cDtcclxuICAgICAgICAgICAgY29uc3QgZGF0ZUEgPSBmb3JtR3JvdXAuZ2V0KGNvbnRyb2xOYW1lQSk/LnZhbHVlO1xyXG4gICAgICAgICAgICBjb25zdCBkYXRlQiA9IGZvcm1Hcm91cC5nZXQoY29udHJvbE5hbWVCKT8udmFsdWU7XHJcbiAgICAgICAgICAgIGNvbnN0IG1ldGhvZE5hbWUgPSAnY29tcGFyZURhdGVXaXRoT3RoZXJEYXRlRmllbGQnO1xyXG4gICAgICAgICAgICBpZiAoZGF0ZUEgJiYgZGF0ZUIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGVBT2JqID0gbmV3IERhdGUoZGF0ZUEpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0ZUJPYmogPSBuZXcgRGF0ZShkYXRlQik7XHJcbiAgICAgICAgICAgICAgICBpZiAoZGF0ZUFPYmogPCBkYXRlQk9iaikge1xyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Hcm91cC5nZXQoY29udHJvbE5hbWVBKT8uc2V0RXJyb3JzKHsgW21ldGhvZE5hbWVdOiB0cnVlIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IFttZXRob2ROYW1lXTogdHJ1ZSB9O1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChmb3JtR3JvdXAuZ2V0KGNvbnRyb2xOYW1lQSk/Lmhhc0Vycm9yKG1ldGhvZE5hbWUpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9ybUdyb3VwLmdldChjb250cm9sTmFtZUEpPy5zZXRFcnJvcnMobnVsbCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4gY29tcGFyZURhdGU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGF0b3IgcGFyYSBjaGVjYXIgc2UgbyBjYW1wbyDDqSB1bSBuw7ptZXJvIGRlIHRlbGVmb25lIGRlIGFjb3JkbyBjb20gdW1hIG3DoXNjYXJhIGluZm9ybWFkYS5cclxuICAgICAqXHJcbiAgICAgKiBAZXhhbXBsZVxyXG4gICAgICogdGhpcy5teUZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAqICAgICBURUxFRk9ORV9GSUVMRDogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgQWdyb0Zvcm1WYWxpZGF0b3IucGhvbmVWYWxpZGF0b3IoJyg5OSkgOTk5OS05OTk5JyldXVxyXG4gICAgICogfSk7XHJcbiAgICAgKiBAcGFyYW0gbWFza1xyXG4gICAgICogQHJldHVybnNcclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBwaG9uZVZhbGlkYXRvcihtYXNrOiBzdHJpbmcpOiBWYWxpZGF0b3JGbiB7XHJcbiAgICAgICAgY29uc3QgcGhvbmVDb250cm9sVmFsaWRhdGlvbiA9IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgbnVsbCA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1ldGhvZE5hbWUgPSAncGhvbmVWYWxpZGF0b3InO1xyXG4gICAgICAgICAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoYF4ke21hc2sucmVwbGFjZSgvOS9nLCAnXFxcXGQnKS5yZXBsYWNlKC9cXCgvZywgJ1xcXFwoJykucmVwbGFjZSgvXFwpL2csICdcXFxcKScpLnJlcGxhY2UoLy0vZywgJ1xcXFwtJyl9JGApO1xyXG4gICAgICAgICAgICBpZiAoY29udHJvbC52YWx1ZSAmJiAhcmVnZXgudGVzdChjb250cm9sLnZhbHVlKSkge1xyXG4gICAgICAgICAgICAgICAgY29udHJvbC5zZXRFcnJvcnMoeyBbbWV0aG9kTmFtZV06IHRydWUgfSk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBbbWV0aG9kTmFtZV06IHRydWUgfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb250cm9sLnNldEVycm9ycyhudWxsKTtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4gcGhvbmVDb250cm9sVmFsaWRhdGlvbjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYXRvciBwYXJhIGNoZWNhciBzZSB1bSBjYW1wbyBkZSBuw7ptZXJvcyDDqSBtYWlvciBvdSBtZW5vciBxdWUgb3V0cm8gY2FtcG8uXHJcbiAgICAgKlxyXG4gICAgICogQXBsaXF1ZSBlc3NlIHZhbGlkYXRvciBubyBGb3JtR3JvdXAsIHBhc3NhbmRvIG9zIG5vbWVzIGRvcyBjYW1wb3MgcXVlIGRlc2VqYSBjb21wYXJhci5cclxuICAgICAqIEBleGFtcGxlXHJcbiAgICAgKiB0aGlzLm15Rm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICogICAgIE5VTUVST19BOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICogICAgIE5VTUVST19COiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdXHJcbiAgICAgKiB9LCB7IHZhbGlkYXRvcjogQWdyb0Zvcm1WYWxpZGF0b3IuY29tcGFyZU51bWJlckZpZWxkcygnTlVNRVJPX0EnLCAnTlVNRVJPX0InLCBOdW1iZXJDb21wYXJpc29uVHlwZS5FUVVBTFMpIH0pO1xyXG4gICAgICpcclxuICAgICAqIE5lc3RlIGNhc28sIGEgdmVyaWZpY2HDp8OjbyBzZXLDoSBzZSBvIE5VTUVST19BIMOpIGlndWFsIGFvIE5VTUVSQl9CLlxyXG4gICAgICogQHBhcmFtIGNvbnRyb2xOYW1lQVxyXG4gICAgICogQHBhcmFtIGNvbnRyb2xOYW1lQlxyXG4gICAgICogQHJldHVybnNcclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBjb21wYXJlTnVtYmVyRmllbGRzKGNvbnRyb2xOYW1lQTogc3RyaW5nLCBjb250cm9sTmFtZUI6IHN0cmluZywgY29tcGFyaXNvbk1ldGhvZDogTnVtYmVyQ29tcGFyaXNvblR5cGUpOiBWYWxpZGF0b3JGbiB7XHJcbiAgICAgICAgY29uc3QgY29tcGFyZU51bWJlciA9IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgbnVsbCA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZvcm1Hcm91cCA9IGNvbnRyb2wgYXMgRm9ybUdyb3VwO1xyXG4gICAgICAgICAgICBjb25zdCBudW1iZXJBID0gZm9ybUdyb3VwLmdldChjb250cm9sTmFtZUEpPy52YWx1ZTtcclxuICAgICAgICAgICAgY29uc3QgbnVtYmVyQiA9IGZvcm1Hcm91cC5nZXQoY29udHJvbE5hbWVCKT8udmFsdWU7XHJcbiAgICAgICAgICAgIGNvbnN0IG1ldGhvZE5hbWUgPSAnY29tcGFyZU51bWJlckZpZWxkcyc7XHJcbiAgICAgICAgICAgIGlmIChudW1iZXJBICYmIG51bWJlckIpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yVHlwZSA9IE51bWJlckNvbXBhcmlzb25UeXBlW2NvbXBhcmlzb25NZXRob2RdO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZXJyb3JDb25kaXRpb24gPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgW051bWJlckNvbXBhcmlzb25UeXBlLkVRVUFMU106IG51bWJlckEgIT09IG51bWJlckIsXHJcbiAgICAgICAgICAgICAgICAgICAgW051bWJlckNvbXBhcmlzb25UeXBlLkdSRUFURVJfVEhBTl06IG51bWJlckEgPD0gbnVtYmVyQixcclxuICAgICAgICAgICAgICAgICAgICBbTnVtYmVyQ29tcGFyaXNvblR5cGUuTEVTU19USEFOXTogbnVtYmVyQSA+PSBudW1iZXJCLFxyXG4gICAgICAgICAgICAgICAgICAgIFtOdW1iZXJDb21wYXJpc29uVHlwZS5HUkVBVEVSX1RIQU5fT1JfRVFVQUxdOiBudW1iZXJBIDwgbnVtYmVyQixcclxuICAgICAgICAgICAgICAgICAgICBbTnVtYmVyQ29tcGFyaXNvblR5cGUuTEVTU19USEFOX09SX0VRVUFMXTogbnVtYmVyQSA+IG51bWJlckIsXHJcbiAgICAgICAgICAgICAgICAgICAgW051bWJlckNvbXBhcmlzb25UeXBlLk5PVF9FUVVBTFNdOiBudW1iZXJBID09PSBudW1iZXJCXHJcbiAgICAgICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChlcnJvckNvbmRpdGlvbltjb21wYXJpc29uTWV0aG9kXSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRyb2xBID0gZm9ybUdyb3VwLmdldChjb250cm9sTmFtZUEpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChjb250cm9sQSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sQS5zZXRFcnJvcnMoeyBbbWV0aG9kTmFtZV06IGNvbXBhcmlzb25NZXRob2QgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IFttZXRob2ROYW1lXTogZXJyb3JUeXBlIH07XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGZvcm1Hcm91cC5nZXQoY29udHJvbE5hbWVBKT8uaGFzRXJyb3IobWV0aG9kTmFtZSkpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250cm9sQSA9IGZvcm1Hcm91cC5nZXQoY29udHJvbE5hbWVBKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoY29udHJvbEEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbEEuc2V0RXJyb3JzKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9O1xyXG4gICAgICAgIHJldHVybiBjb21wYXJlTnVtYmVyO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhdG9yIHBhcmEgY2hlY2FyIHNlIHVtIHZhbG9yIGVzdMOhIGVudHJlIG9zIGRlbWFpcyB2YWxvcmVzIGRlIHRyw6pzIGZvcm1Db250cm9scy5cclxuICAgICAqXHJcbiAgICAgKiBBcGxpcXVlIGVzc2UgdmFsaWRhdG9yIG5vIEZvcm1Hcm91cCwgcGFzc2FuZG8gb3Mgbm9tZXMgZG9zIHRyw6pzIGZvcm1Db250cm9scyBxdWUgZGVzZWphIGNvbXBhcmFyLlxyXG4gICAgICogQGV4YW1wbGVcclxuICAgICAqIHRoaXMubXlGb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgKiAgICAgbWlub3JGb3JtQ29udHJvbDogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAqICAgICB0YXJnZXRGb3JtQ29udHJvbDogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAqICAgICBtYWpvckZvcm1Db250cm9sOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdXHJcbiAgICAgKiB9LCB7IHZhbGlkYXRvcjogQWdyb0Zvcm1WYWxpZGF0b3IuY2hlY2tWYWx1ZUJldHdlZW4oJ21pbm9yRm9ybUNvbnRyb2wnLCAndGFyZ2V0Rm9ybUNvbnRyb2wnLCAnbWFqb3JGb3JtQ29udHJvbCcpIH0pO1xyXG4gICAgICpcclxuICAgICAqIE5lc3RlIGNhc28sIGEgdmVyaWZpY2HDp8OjbyBzZXLDoSBzZSBvIHRhcmdldEZvcm1Db250cm9sIGVzdMOhIGVudHJlIG8gbWlub3JGb3JtQ29udHJvbCBlIG8gbWFqb3JGb3JtQ29udHJvbC5cclxuICAgICAqIEBwYXJhbSBtaW5vckZvcm1Db250cm9sXHJcbiAgICAgKiBAcGFyYW0gdGFyZ2V0Rm9ybUNvbnRyb2xcclxuICAgICAqIEBwYXJhbSBtYWpvckZvcm1Db250cm9sXHJcbiAgICAgKiBAcmV0dXJuc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIGNoZWNrVmFsdWVCZXR3ZWVuKG1pbm9yRm9ybUNvbnRyb2w6IHN0cmluZywgdGFyZ2V0Rm9ybUNvbnRyb2w6IHN0cmluZywgbWFqb3JGb3JtQ29udHJvbDogc3RyaW5nKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgICAgIGNvbnN0IGNoZWNrVmFsdWUgPSAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IG51bGwgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBmb3JtR3JvdXAgPSBjb250cm9sIGFzIEZvcm1Hcm91cDtcclxuICAgICAgICAgICAgY29uc3QgdmFsdWVBID0gZm9ybUdyb3VwLmdldChtaW5vckZvcm1Db250cm9sKT8udmFsdWU7XHJcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlQiA9IGZvcm1Hcm91cC5nZXQodGFyZ2V0Rm9ybUNvbnRyb2wpPy52YWx1ZTtcclxuICAgICAgICAgICAgY29uc3QgdmFsdWVDID0gZm9ybUdyb3VwLmdldChtYWpvckZvcm1Db250cm9sKT8udmFsdWU7XHJcbiAgICAgICAgICAgIGNvbnN0IG1ldGhvZE5hbWUgPSAnY2hlY2tWYWx1ZUJldHdlZW4nO1xyXG4gICAgICAgICAgICBpZiAodmFsdWVBICYmIHZhbHVlQiAmJiB2YWx1ZUMpIHtcclxuICAgICAgICAgICAgICAgIGlmICh2YWx1ZUIgPCB2YWx1ZUEgfHwgdmFsdWVCID4gdmFsdWVDKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0Q29udHJvbCA9IGZvcm1Hcm91cC5nZXQodGFyZ2V0Rm9ybUNvbnRyb2wpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0YXJnZXRDb250cm9sKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldENvbnRyb2wuc2V0RXJyb3JzKHsgW21ldGhvZE5hbWVdOiB0cnVlIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBbbWV0aG9kTmFtZV06IHRydWUgfTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZm9ybUdyb3VwLmdldCh0YXJnZXRGb3JtQ29udHJvbCk/Lmhhc0Vycm9yKG1ldGhvZE5hbWUpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0Q29udHJvbCA9IGZvcm1Hcm91cC5nZXQodGFyZ2V0Rm9ybUNvbnRyb2wpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0YXJnZXRDb250cm9sKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldENvbnRyb2wuc2V0RXJyb3JzKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9O1xyXG4gICAgICAgIHJldHVybiBjaGVja1ZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhdG9yIHBhcmEgY2hlY2FyIHNlIG8gY2FtcG8gw6kgdW0gb2JqZXRvIGUgc2UgcG9zc3VpIHVtYSBwcm9wcmllZGFkZSBlc3BlY8OtZmljYS5cclxuICAgICAqXHJcbiAgICAgKiBAZXhhbXBsZVxyXG4gICAgICogdGhpcy5teUZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAqICAgICBPQkpFVE9fRklFTEQ6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIEFncm9Gb3JtVmFsaWRhdG9yLm9iamVjdFByb3BlcnR5VmFsaWRhdG9yKCdwcm9wcmllZGFkZScpXV1cclxuICAgICAqIH0pO1xyXG4gICAgICogQHBhcmFtIHByb3BlcnR5TmFtZVxyXG4gICAgICogQHJldHVybnNcclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBvYmplY3RQcm9wZXJ0eVZhbGlkYXRvcihwcm9wZXJ0eU5hbWU6IHN0cmluZyk6IFZhbGlkYXRvckZuIHtcclxuICAgICAgICBjb25zdCBvYmplY3RQcm9wZXJ0eSA9IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgbnVsbCA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1ldGhvZE5hbWUgPSAnb2JqZWN0UHJvcGVydHknO1xyXG4gICAgICAgICAgICBpZiAoT2JqZWN0VXRpbHMuaXNPYmplY3QoY29udHJvbC52YWx1ZSkgJiYgT2JqZWN0VXRpbHMuY29udGFpbnNQcm9wZXJ0eShjb250cm9sLnZhbHVlLCBwcm9wZXJ0eU5hbWUpKSB7XHJcbiAgICAgICAgICAgICAgICBjb250cm9sLnNldEVycm9ycyhudWxsKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnRyb2wuc2V0RXJyb3JzKHsgW21ldGhvZE5hbWVdOiB0cnVlIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4geyBbbWV0aG9kTmFtZV06IHRydWUgfTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIHJldHVybiBvYmplY3RQcm9wZXJ0eTtcclxuICAgIH1cclxuXHJcblxyXG59Il19
317
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1mb3JtLXZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3ItYWdyb25lZ29jaW8vYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiZm9ybS12YWxpZGF0b3IvYWdyby1mb3JtLXZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDNUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRWhFLE1BQU0sT0FBTyxpQkFBaUI7SUFFMUI7Ozs7Ozs7OztPQVNHO0lBQ0ksTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUF3QjtRQUNqRCxJQUFJLE9BQU8sQ0FBQyxLQUFLLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDMUQsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQzVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLENBQUM7U0FDbkM7UUFDRCxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFHRDs7Ozs7Ozs7Ozs7O09BWUc7SUFDSSxNQUFNLENBQUMsb0JBQW9CLENBQUMsY0FBa0M7UUFDakUsTUFBTSxXQUFXLEdBQUcsQ0FBQyxPQUF3QixFQUFpQyxFQUFFO1lBQzVFLE1BQU0sVUFBVSxHQUFHLHFCQUFxQixDQUFDO1lBQ3pDLE1BQU0sWUFBWSxHQUFTLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNuRCxNQUFN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SUoiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IERhdGVDb21wYXJpc29uVHlwZSB9IGZyb20gJy4uL2VudW1zL2RhdGUtY29tcGFyaXNvbi10eXBlLmVudW0nO1xyXG5pbXBvcnQgeyBBR1JPX1JFR0VYIH0gZnJvbSAnLi4vY29tbW9uL2Fncm8tcmVnZXguY29uc3RhbnQnO1xyXG5pbXBvcnQgeyBOdW1iZXJDb21wYXJpc29uVHlwZSB9IGZyb20gJy4uL2VudW1zL251bWJlci1jb21wYXJpc29uLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7IE9iamVjdFV0aWxzIH0gZnJvbSAnLi4vY29tbW9uL2Fncm8tb2JqZWN0LXV0aWxzLmNsYXNzJztcclxuXHJcbmV4cG9ydCBjbGFzcyBBZ3JvRm9ybVZhbGlkYXRvciB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGF0b3IgcGFyYSBjaGVjYXIgc2UgbyBjYW1wbyDDqSB1bSBlLW1haWxcclxuICAgICAqXHJcbiAgICAgKiBAZXhhbXBsZVxyXG4gICAgICogdGhpcy5teUZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAqICAgICBFTUFJTF9GSUVMRDogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgQWdyb0Zvcm1WYWxpZGF0b3IuZW1haWxWYWxpZGF0b3JdXVxyXG4gICAgICogfSk7XHJcbiAgICAgKiBAcGFyYW0gY29udHJvbFxyXG4gICAgICogQHJldHVybnNcclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBlbWFpbFZhbGlkYXRvcihjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgbnVsbCB7XHJcbiAgICAgICAgaWYgKGNvbnRyb2wudmFsdWUgJiYgIUFHUk9fUkVHRVguaXNFbWFpbC50ZXN0KGNvbnRyb2wudmFsdWUpKSB7XHJcbiAgICAgICAgICAgIGNvbnRyb2wuc2V0RXJyb3JzKHsgZW1haWxWYWxpZGF0b3I6IHRydWUgfSk7XHJcbiAgICAgICAgICAgIHJldHVybiB7IGVtYWlsVmFsaWRhdG9yOiB0cnVlIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnRyb2wuc2V0RXJyb3JzKG51bGwpO1xyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFwbGlxdWUgZXNzZSB2YWxpZGFkb3IgZW0gdW0gY2FtcG8gZG8gdGlwbyBEYXRlLCBwYXJhIHZlcmlmaWNhciBzZSBhIGRhdGEgc2VsZWNpb25hZGEgw6kgbWFpb3Igb3UgbWVub3IgcXVlIGEgZGF0YSBhdHVhbC5cclxuICAgICAqXHJcbiAgICAgKiBVdGlsaXplIG8gcGFyw6JtZXRybyBjb21wYXJpc29uVHlwZSBwYXJhIGRlZmluaXIgc2UgYSBkYXRhIHNlbGVjaW9uYWRhIGRldmUgc2VyIG1haW9yIG91IG1lbm9yIHF1ZSBhIGRhdGEgYXR1YWwuXHJcbiAgICAgKiBBIHZhbGlkYcOnw6NvIHNlcsOhIGF0cmF2w6lzIGRvIGVudW0gRGF0ZUNvbXBhcmlzb25UeXBlLlxyXG4gICAgICpcclxuICAgICAqIEBleGFtcGxlXHJcbiAgICAgKiB0aGlzLm15Rm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICogICAgIE5PTUVfQ0FNUE86IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIEFncm9Gb3JtVmFsaWRhdG9yLmNvbXBhcmVEYXRlV2l0aFRvZGF5KERhdGVDb21wYXJpc29uVHlwZS5ncmVhdGhlclRoYW4pXV1cclxuICAgICAqIH0pO1xyXG4gICAgICogQHBhcmFtIGNvbXBhcmlzb25UeXBlXHJcbiAgICAgKiBAcmV0dXJuc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIGNvbXBhcmVEYXRlV2l0aFRvZGF5KGNvbXBhcmlzb25UeXBlOiBEYXRlQ29tcGFyaXNvblR5cGUpOiBWYWxpZGF0b3JGbiB7XHJcbiAgICAgICAgY29uc3QgY29tcGFyZURhdGUgPSAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IG51bGwgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBtZXRob2ROYW1lID0gJ2RhdGVDb21wYXJpc29uVG9kYXknO1xyXG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZERhdGU6IERhdGUgPSBuZXcgRGF0ZShjb250cm9sLnZhbHVlKTtcclxuICAgICAgICAgICAgY29uc3QgY3VycmVudERhdGU6IERhdGUgPSBuZXcgRGF0ZSgpO1xyXG5cclxuICAgICAgICAgICAgY29uc3QgY29uZGl0aW9ucyA9IHtcclxuICAgICAgICAgICAgICAgIFtEYXRlQ29tcGFyaXNvblR5cGUuZ3JlYXRoZXJUaGFuXTogc2VsZWN0ZWREYXRlIDw9IGN1cnJlbnREYXRlLFxyXG4gICAgICAgICAgICAgICAgW0RhdGVDb21wYXJpc29uVHlwZS5sZXNzVGhhbl06IHNlbGVjdGVkRGF0ZSA+PSBjdXJyZW50RGF0ZVxyXG4gICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgaWYgKGNvbmRpdGlvbnNbY29tcGFyaXNvblR5cGVdKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBbbWV0aG9kTmFtZV06IHsgdmFsdWU6IGNvbnRyb2wudmFsdWUgfSB9O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9O1xyXG4gICAgICAgIHJldHVybiBjb21wYXJlRGF0ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbXBhcmEgZG9pcyBjYW1wb3MgZG8gdGlwbyBEYXRlLCB2ZXJpZmljYW5kbyBzZSBvIGNhbXBvIEEgw6kgbWFpb3IgcXVlIG8gY2FtcG8gQi4gU2UgQSBmb3IgbWFpb3IgcXVlIEIsIGVudMOjb1xyXG4gICAgICogbyBjYW1wbyBBIMOpIGludmFsaWRhZG8uIENhc28gY29udHLDoXJpbywgbyBjYW1wbyBBIMOpIHZhbGlkYWRvLlxyXG4gICAgICpcclxuICAgICAqIEFwbGlxdWUgZXNzZSBjYW1wbyBubyBGb3JtR3JvdXAsIHBhc3NhbmRvIG9zIG5vbWVzIGRvcyBjYW1wb3MgcXVlIGRlc2VqYSBjb21wYXJhci5cclxuICAgICAqIEBleGFtcGxlXHJcbiAgICAgKiB0aGlzLm15Rm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICAgICAgICBOT01FX0NBTVBPX2RhdGVBOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICAgICAgICBOT01FX0NBTVBPX2RhdGVCOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdXHJcbiAgICAgICAgfSwgeyB2YWxpZGF0b3I6IEFncm9Gb3JtVmFsaWRhdG9yLmRhdGVDb21wYXJpc29uVmFsaWRhdG9yKCdOT01FX0NBTVBPX2RhdGVBJywgJ05PTUVfQ0FNUE9fZGF0ZUInKSB9KTtcclxuICAgICAqIEBwYXJhbSBjb250cm9sTmFtZUFcclxuICAgICAqIEBwYXJhbSBjb250cm9sTmFtZUJcclxuICAgICAqIEByZXR1cm5zXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgY29tcGFyZURhdGVXaXRoT3RoZXJEYXRlRmllbGQoY29udHJvbE5hbWVBOiBzdHJpbmcsIGNvbnRyb2xOYW1lQjogc3RyaW5nKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgICAgIGNvbnN0IGNvbXBhcmVEYXRlID0gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCBudWxsID0+IHtcclxuICAgICAgICAgICAgY29uc3QgZm9ybUdyb3VwID0gY29udHJvbCBhcyBGb3JtR3JvdXA7XHJcbiAgICAgICAgICAgIGNvbnN0IGRhdGVBID0gZm9ybUdyb3VwLmdldChjb250cm9sTmFtZUEpPy52YWx1ZTtcclxuICAgICAgICAgICAgY29uc3QgZGF0ZUIgPSBmb3JtR3JvdXAuZ2V0KGNvbnRyb2xOYW1lQik/LnZhbHVlO1xyXG4gICAgICAgICAgICBjb25zdCBtZXRob2ROYW1lID0gJ2NvbXBhcmVEYXRlV2l0aE90aGVyRGF0ZUZpZWxkJztcclxuICAgICAgICAgICAgaWYgKGRhdGVBICYmIGRhdGVCKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRlQU9iaiA9IG5ldyBEYXRlKGRhdGVBKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGVCT2JqID0gbmV3IERhdGUoZGF0ZUIpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGRhdGVBT2JqIDwgZGF0ZUJPYmopIHtcclxuICAgICAgICAgICAgICAgICAgICBmb3JtR3JvdXAuZ2V0KGNvbnRyb2xOYW1lQSk/LnNldEVycm9ycyh7IFttZXRob2ROYW1lXTogdHJ1ZSB9KTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBbbWV0aG9kTmFtZV06IHRydWUgfTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZm9ybUdyb3VwLmdldChjb250cm9sTmFtZUEpPy5oYXNFcnJvcihtZXRob2ROYW1lKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Hcm91cC5nZXQoY29udHJvbE5hbWVBKT8uc2V0RXJyb3JzKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgcmV0dXJuIGNvbXBhcmVEYXRlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhdG9yIHBhcmEgY2hlY2FyIHNlIG8gY2FtcG8gw6kgdW0gbsO6bWVybyBkZSB0ZWxlZm9uZSBkZSBhY29yZG8gY29tIHVtYSBtw6FzY2FyYSBpbmZvcm1hZGEuXHJcbiAgICAgKlxyXG4gICAgICogQGV4YW1wbGVcclxuICAgICAqIHRoaXMubXlGb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgKiAgICAgVEVMRUZPTkVfRklFTEQ6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIEFncm9Gb3JtVmFsaWRhdG9yLnBob25lVmFsaWRhdG9yKCcoOTkpIDk5OTktOTk5OScpXV1cclxuICAgICAqIH0pO1xyXG4gICAgICogQHBhcmFtIG1hc2tcclxuICAgICAqIEByZXR1cm5zXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgcGhvbmVWYWxpZGF0b3IobWFzazogc3RyaW5nKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgICAgIGNvbnN0IHBob25lQ29udHJvbFZhbGlkYXRpb24gPSAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IG51bGwgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBtZXRob2ROYW1lID0gJ3Bob25lVmFsaWRhdG9yJztcclxuICAgICAgICAgICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKGBeJHttYXNrLnJlcGxhY2UoLzkvZywgJ1xcXFxkJykucmVwbGFjZSgvXFwoL2csICdcXFxcKCcpLnJlcGxhY2UoL1xcKS9nLCAnXFxcXCknKS5yZXBsYWNlKC8tL2csICdcXFxcLScpfSRgKTtcclxuICAgICAgICAgICAgaWYgKGNvbnRyb2wudmFsdWUgJiYgIXJlZ2V4LnRlc3QoY29udHJvbC52YWx1ZSkpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRyb2wuc2V0RXJyb3JzKHsgW21ldGhvZE5hbWVdOiB0cnVlIH0pO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgW21ldGhvZE5hbWVdOiB0cnVlIH07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29udHJvbC5zZXRFcnJvcnMobnVsbCk7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgcmV0dXJuIHBob25lQ29udHJvbFZhbGlkYXRpb247XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGF0b3IgcGFyYSBjaGVjYXIgc2UgdW0gY2FtcG8gZGUgbsO6bWVyb3Mgw6kgbWFpb3Igb3UgbWVub3IgcXVlIG91dHJvIGNhbXBvLlxyXG4gICAgICpcclxuICAgICAqIEFwbGlxdWUgZXNzZSB2YWxpZGF0b3Igbm8gRm9ybUdyb3VwLCBwYXNzYW5kbyBvcyBub21lcyBkb3MgY2FtcG9zIHF1ZSBkZXNlamEgY29tcGFyYXIuXHJcbiAgICAgKiBAZXhhbXBsZVxyXG4gICAgICogdGhpcy5teUZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAqICAgICBOVU1FUk9fQTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAqICAgICBOVU1FUk9fQjogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXVxyXG4gICAgICogfSwgeyB2YWxpZGF0b3I6IEFncm9Gb3JtVmFsaWRhdG9yLmNvbXBhcmVOdW1iZXJGaWVsZHMoJ05VTUVST19BJywgJ05VTUVST19CJywgTnVtYmVyQ29tcGFyaXNvblR5cGUuRVFVQUxTKSB9KTtcclxuICAgICAqXHJcbiAgICAgKiBOZXN0ZSBjYXNvLCBhIHZlcmlmaWNhw6fDo28gc2Vyw6Egc2UgbyBOVU1FUk9fQSDDqSBpZ3VhbCBhbyBOVU1FUkJfQi5cclxuICAgICAqIEBwYXJhbSBjb250cm9sTmFtZUFcclxuICAgICAqIEBwYXJhbSBjb250cm9sTmFtZUJcclxuICAgICAqIEByZXR1cm5zXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgY29tcGFyZU51bWJlckZpZWxkcyhjb250cm9sTmFtZUE6IHN0cmluZywgY29udHJvbE5hbWVCOiBzdHJpbmcsIGNvbXBhcmlzb25NZXRob2Q6IE51bWJlckNvbXBhcmlzb25UeXBlKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgICAgIGNvbnN0IGNvbXBhcmVOdW1iZXIgPSAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IG51bGwgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBmb3JtR3JvdXAgPSBjb250cm9sIGFzIEZvcm1Hcm91cDtcclxuICAgICAgICAgICAgY29uc3QgbnVtYmVyQSA9IGZvcm1Hcm91cC5nZXQoY29udHJvbE5hbWVBKT8udmFsdWU7XHJcbiAgICAgICAgICAgIGNvbnN0IG51bWJlckIgPSBmb3JtR3JvdXAuZ2V0KGNvbnRyb2xOYW1lQik/LnZhbHVlO1xyXG4gICAgICAgICAgICBjb25zdCBtZXRob2ROYW1lID0gJ2NvbXBhcmVOdW1iZXJGaWVsZHMnO1xyXG4gICAgICAgICAgICBpZiAobnVtYmVyQSAmJiBudW1iZXJCKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBlcnJvclR5cGUgPSBOdW1iZXJDb21wYXJpc29uVHlwZVtjb21wYXJpc29uTWV0aG9kXTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yQ29uZGl0aW9uID0ge1xyXG4gICAgICAgICAgICAgICAgICAgIFtOdW1iZXJDb21wYXJpc29uVHlwZS5FUVVBTFNdOiBudW1iZXJBICE9PSBudW1iZXJCLFxyXG4gICAgICAgICAgICAgICAgICAgIFtOdW1iZXJDb21wYXJpc29uVHlwZS5HUkVBVEVSX1RIQU5dOiBudW1iZXJBIDw9IG51bWJlckIsXHJcbiAgICAgICAgICAgICAgICAgICAgW051bWJlckNvbXBhcmlzb25UeXBlLkxFU1NfVEhBTl06IG51bWJlckEgPj0gbnVtYmVyQixcclxuICAgICAgICAgICAgICAgICAgICBbTnVtYmVyQ29tcGFyaXNvblR5cGUuR1JFQVRFUl9USEFOX09SX0VRVUFMXTogbnVtYmVyQSA8IG51bWJlckIsXHJcbiAgICAgICAgICAgICAgICAgICAgW051bWJlckNvbXBhcmlzb25UeXBlLkxFU1NfVEhBTl9PUl9FUVVBTF06IG51bWJlckEgPiBudW1iZXJCLFxyXG4gICAgICAgICAgICAgICAgICAgIFtOdW1iZXJDb21wYXJpc29uVHlwZS5OT1RfRVFVQUxTXTogbnVtYmVyQSA9PT0gbnVtYmVyQlxyXG4gICAgICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyb3JDb25kaXRpb25bY29tcGFyaXNvbk1ldGhvZF0pIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250cm9sQSA9IGZvcm1Hcm91cC5nZXQoY29udHJvbE5hbWVBKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoY29udHJvbEEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbEEuc2V0RXJyb3JzKHsgW21ldGhvZE5hbWVdOiBjb21wYXJpc29uTWV0aG9kIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBbbWV0aG9kTmFtZV06IGVycm9yVHlwZSB9O1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChmb3JtR3JvdXAuZ2V0KGNvbnRyb2xOYW1lQSk/Lmhhc0Vycm9yKG1ldGhvZE5hbWUpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udHJvbEEgPSBmb3JtR3JvdXAuZ2V0KGNvbnRyb2xOYW1lQSk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRyb2xBKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xBLnNldEVycm9ycyhudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4gY29tcGFyZU51bWJlcjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYXRvciBwYXJhIGNoZWNhciBzZSB1bSB2YWxvciBlc3TDoSBlbnRyZSBvcyBkZW1haXMgdmFsb3JlcyBkZSB0csOqcyBmb3JtQ29udHJvbHMuXHJcbiAgICAgKlxyXG4gICAgICogQXBsaXF1ZSBlc3NlIHZhbGlkYXRvciBubyBGb3JtR3JvdXAsIHBhc3NhbmRvIG9zIG5vbWVzIGRvcyB0csOqcyBmb3JtQ29udHJvbHMgcXVlIGRlc2VqYSBjb21wYXJhci5cclxuICAgICAqIEBleGFtcGxlXHJcbiAgICAgKiB0aGlzLm15Rm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICogICAgIG1pbm9yRm9ybUNvbnRyb2w6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgKiAgICAgdGFyZ2V0Rm9ybUNvbnRyb2w6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgKiAgICAgbWFqb3JGb3JtQ29udHJvbDogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXVxyXG4gICAgICogfSwgeyB2YWxpZGF0b3I6IEFncm9Gb3JtVmFsaWRhdG9yLmNoZWNrVmFsdWVCZXR3ZWVuKCdtaW5vckZvcm1Db250cm9sJywgJ3RhcmdldEZvcm1Db250cm9sJywgJ21ham9yRm9ybUNvbnRyb2wnKSB9KTtcclxuICAgICAqXHJcbiAgICAgKiBOZXN0ZSBjYXNvLCBhIHZlcmlmaWNhw6fDo28gc2Vyw6Egc2UgbyB0YXJnZXRGb3JtQ29udHJvbCBlc3TDoSBlbnRyZSBvIG1pbm9yRm9ybUNvbnRyb2wgZSBvIG1ham9yRm9ybUNvbnRyb2wuXHJcbiAgICAgKiBAcGFyYW0gbWlub3JGb3JtQ29udHJvbFxyXG4gICAgICogQHBhcmFtIHRhcmdldEZvcm1Db250cm9sXHJcbiAgICAgKiBAcGFyYW0gbWFqb3JGb3JtQ29udHJvbFxyXG4gICAgICogQHJldHVybnNcclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBjaGVja1ZhbHVlQmV0d2VlbihtaW5vckZvcm1Db250cm9sOiBzdHJpbmcsIHRhcmdldEZvcm1Db250cm9sOiBzdHJpbmcsIG1ham9yRm9ybUNvbnRyb2w6IHN0cmluZyk6IFZhbGlkYXRvckZuIHtcclxuICAgICAgICBjb25zdCBjaGVja1ZhbHVlID0gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCBudWxsID0+IHtcclxuICAgICAgICAgICAgY29uc3QgZm9ybUdyb3VwID0gY29udHJvbCBhcyBGb3JtR3JvdXA7XHJcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlQSA9IGZvcm1Hcm91cC5nZXQobWlub3JGb3JtQ29udHJvbCk/LnZhbHVlO1xyXG4gICAgICAgICAgICBjb25zdCB2YWx1ZUIgPSBmb3JtR3JvdXAuZ2V0KHRhcmdldEZvcm1Db250cm9sKT8udmFsdWU7XHJcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlQyA9IGZvcm1Hcm91cC5nZXQobWFqb3JGb3JtQ29udHJvbCk/LnZhbHVlO1xyXG4gICAgICAgICAgICBjb25zdCBtZXRob2ROYW1lID0gJ2NoZWNrVmFsdWVCZXR3ZWVuJztcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGFyZU51bWJlcnMgPSBbdmFsdWVBLCB2YWx1ZUIsIHZhbHVlQ10uZXZlcnkodiA9PiB2ICE9PSBudWxsICYmIHYgIT09IHVuZGVmaW5lZCk7XHJcblxyXG4gICAgICAgICAgICBpZiAoYXJlTnVtYmVycykge1xyXG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlQiA8IHZhbHVlQSB8fCB2YWx1ZUIgPiB2YWx1ZUMpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXRDb250cm9sID0gZm9ybUdyb3VwLmdldCh0YXJnZXRGb3JtQ29udHJvbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRhcmdldENvbnRyb2wpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0Q29udHJvbC5zZXRFcnJvcnMoeyBbbWV0aG9kTmFtZV06IHRydWUgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IFttZXRob2ROYW1lXTogdHJ1ZSB9O1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXRDb250cm9sID0gZm9ybUdyb3VwLmdldCh0YXJnZXRGb3JtQ29udHJvbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRhcmdldENvbnRyb2w/Lmhhc0Vycm9yKG1ldGhvZE5hbWUpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVycm9ycyA9IHsgLi4udGFyZ2V0Q29udHJvbC5lcnJvcnMgfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIGVycm9yc1ttZXRob2ROYW1lXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0Q29udHJvbC5zZXRFcnJvcnMoT2JqZWN0LmtleXMoZXJyb3JzKS5sZW5ndGggPyBlcnJvcnMgOiBudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4gY2hlY2tWYWx1ZTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGF0b3IgcGFyYSBjaGVjYXIgc2UgbyBjYW1wbyDDqSB1bSBvYmpldG8gZSBzZSBwb3NzdWkgdW1hIHByb3ByaWVkYWRlIGVzcGVjw61maWNhLlxyXG4gICAgICpcclxuICAgICAqIEBleGFtcGxlXHJcbiAgICAgKiB0aGlzLm15Rm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICogICAgIE9CSkVUT19GSUVMRDogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgQWdyb0Zvcm1WYWxpZGF0b3Iub2JqZWN0UHJvcGVydHlWYWxpZGF0b3IoJ3Byb3ByaWVkYWRlJyldXVxyXG4gICAgICogfSk7XHJcbiAgICAgKiBAcGFyYW0gcHJvcGVydHlOYW1lXHJcbiAgICAgKiBAcmV0dXJuc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIG9iamVjdFByb3BlcnR5VmFsaWRhdG9yKHByb3BlcnR5TmFtZTogc3RyaW5nKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgICAgIGNvbnN0IG9iamVjdFByb3BlcnR5ID0gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCBudWxsID0+IHtcclxuICAgICAgICAgICAgY29uc3QgbWV0aG9kTmFtZSA9ICdvYmplY3RQcm9wZXJ0eSc7XHJcbiAgICAgICAgICAgIGlmIChPYmplY3RVdGlscy5pc09iamVjdChjb250cm9sLnZhbHVlKSAmJiBPYmplY3RVdGlscy5jb250YWluc1Byb3BlcnR5KGNvbnRyb2wudmFsdWUsIHByb3BlcnR5TmFtZSkpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRyb2wuc2V0RXJyb3JzKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29udHJvbC5zZXRFcnJvcnMoeyBbbWV0aG9kTmFtZV06IHRydWUgfSk7XHJcbiAgICAgICAgICAgIHJldHVybiB7IFttZXRob2ROYW1lXTogdHJ1ZSB9O1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgcmV0dXJuIG9iamVjdFByb3BlcnR5O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhIHNlIG8gY2FtcG8gw6kgdW0gQ1BGIChDYWRhc3RybyBkZSBQZXNzb2EgRsOtc2ljYSkgdsOhbGlkby5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBDUEZWYWxpZGF0b3IoKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgICAgIGNvbnN0IGNwZlZhbCA9IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNwZiA9IChjb250cm9sLnZhbHVlIHx8ICcnKS5yZXBsYWNlKC9bXlxcZF0vZywgJycpO1xyXG5cclxuICAgICAgICAgICAgaWYgKCFjcGYpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsOyAvLyBOw6NvIHZhbGlkYSBjYW1wbyB2YXppbywgdXNlIFZhbGlkYXRvcnMucmVxdWlyZWQganVudG8gc2UgcXVpc2VyIG9icmlnYXRvcmllZGFkZVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoY3BmLmxlbmd0aCAhPT0gMTEpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7IGNwZlZhbGlkYXRvcjogdHJ1ZSB9O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyBWZXJpZmljYSBzZSB0b2RvcyBvcyBkw61naXRvcyBzw6NvIGlndWFpcyAoZXguOiAxMTExMTExMTExMSlcclxuICAgICAgICAgICAgaWYgKC9eKFxcZClcXDF7MTB9JC8udGVzdChjcGYpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBjcGZWYWxpZGF0b3I6IHRydWUgfTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gVmFsaWRhw6fDo28gZG9zIGTDrWdpdG9zIHZlcmlmaWNhZG9yZXNcclxuICAgICAgICAgICAgY29uc3QgY2FsY0NoZWNrRGlnaXQgPSAoY3BmU2xpY2U6IHN0cmluZywgZmFjdG9yOiBudW1iZXIpID0+IHtcclxuICAgICAgICAgICAgICAgIGxldCB0b3RhbCA9IDA7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGRpZ2l0IG9mIGNwZlNsaWNlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdG90YWwgKz0gcGFyc2VJbnQoZGlnaXQsIDEwKSAqIGZhY3Rvci0tO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY29uc3QgcmVtYWluZGVyID0gdG90YWwgJSAxMTtcclxuICAgICAgICAgICAgICAgIHJldHVybiByZW1haW5kZXIgPCAyID8gMCA6IDExIC0gcmVtYWluZGVyO1xyXG4gICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgY29uc3QgZGlnaXQxID0gY2FsY0NoZWNrRGlnaXQoY3BmLnN1YnN0cmluZygwLCA5KSwgMTApO1xyXG4gICAgICAgICAgICBjb25zdCBkaWdpdDIgPSBjYWxjQ2hlY2tEaWdpdChjcGYuc3Vic3RyaW5nKDAsIDkpICsgZGlnaXQxLCAxMSk7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBpc1ZhbGlkID0gZGlnaXQxID09PSBwYXJzZUludChjcGYuY2hhckF0KDkpLCAxMCkgJiZcclxuICAgICAgICAgICAgICAgIGRpZ2l0MiA9PT0gcGFyc2VJbnQoY3BmLmNoYXJBdCgxMCksIDEwKTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybiBpc1ZhbGlkID8gbnVsbCA6IHsgY3BmVmFsaWRhdG9yOiB0cnVlIH07XHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4gY3BmVmFsO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhdG9yIGRlIENOUEogKENhZGFzdHJvIE5hY2lvbmFsIGRhIFBlc3NvYSBKdXLDrWRpY2EpLlxyXG4gICAgICogQHJldHVybnMgXHJcbiAgICAgKi9cclxuICAgIENOUEpWYWxpZGF0b3IoKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGNvbnRyb2wudmFsdWU/LnJlcGxhY2UoL1xcRC9nLCAnJyk7XHJcblxyXG4gICAgICAgICAgICBpZiAoIXZhbHVlIHx8IHZhbHVlLmxlbmd0aCAhPT0gMTQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7IGNucGpWYWxpZGF0b3I6IHRydWUgfTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gVmVyaWZpY2EgQ05QSnMgY29tIHRvZG9zIG9zIGTDrWdpdG9zIGlndWFpcyAoaW52w6FsaWRvcylcclxuICAgICAgICAgICAgaWYgKC9eKFxcZClcXDF7MTN9JC8udGVzdCh2YWx1ZSkpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7IGNucGpWYWxpZGF0b3I6IHRydWUgfTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY29uc3QgdmFsaWRhdGVDaGVja0RpZ2l0ID0gKGNucGo6IHN0cmluZywgbGVuZ3RoOiBudW1iZXIpOiBudW1iZXIgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgd2VpZ2h0cyA9IGxlbmd0aCA9PT0gMTJcclxuICAgICAgICAgICAgICAgICAgICA/IFs1LCA0LCAzLCAyLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyXVxyXG4gICAgICAgICAgICAgICAgICAgIDogWzYsIDUsIDQsIDMsIDIsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDJdO1xyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IHN1bSA9IGNucGpcclxuICAgICAgICAgICAgICAgICAgICAuc2xpY2UoMCwgbGVuZ3RoKVxyXG4gICAgICAgICAgICAgICAgICAgIC5zcGxpdCgnJylcclxuICAgICAgICAgICAgICAgICAgICAucmVkdWNlKChhY2MsIGRpZ2l0LCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWNjICsgcGFyc2VJbnQoZGlnaXQsIDEwKSAqIHdlaWdodHNbaW5kZXhdO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sIDApO1xyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IHJlbWFpbmRlciA9IHN1bSAlIDExO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlbWFpbmRlciA8IDIgPyAwIDogMTEgLSByZW1haW5kZXI7XHJcbiAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICBjb25zdCBmaXJzdENoZWNrRGlnaXQgPSB2YWxpZGF0ZUNoZWNrRGlnaXQodmFsdWUsIDEyKTtcclxuICAgICAgICAgICAgY29uc3Qgc2Vjb25kQ2hlY2tEaWdpdCA9IHZhbGlkYXRlQ2hlY2tEaWdpdCh2YWx1ZSwgMTMpO1xyXG5cclxuICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgZmlyc3RDaGVja0RpZ2l0ICE9PSBwYXJzZUludCh2YWx1ZS5jaGFyQXQoMTIpLCAxMCkgfHxcclxuICAgICAgICAgICAgICAgIHNlY29uZENoZWNrRGlnaXQgIT09IHBhcnNlSW50KHZhbHVlLmNoYXJBdCgxMyksIDEwKVxyXG4gICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7IGNucGpWYWxpZGF0b3I6IHRydWUgfTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7IC8vIHbDoWxpZG9cclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYSBzZSBhIHBsYWNhIGRvIHZlw61jdWxvIMOpIHbDoWxpZGEuXHJcbiAgICAgKiBAcmV0dXJucyBcclxuICAgICAqL1xyXG4gICAgbGljZW5zZVBsYXRlVmFsaWRhdG9yKCk6IFZhbGlkYXRvckZuIHtcclxuICAgICAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcclxuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSAoY29udHJvbC52YWx1ZSB8fCAnJykudG9VcHBlckNhc2UoKS50cmltKCkucmVwbGFjZSgvLS9nLCAnJyk7XHJcblxyXG4gICAgICAgICAgICBpZiAoIXZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsgLy8gQ2FtcG8gdmF6aW8gbsOjbyDDqSByZXNwb25zYWJpbGlkYWRlIGRlc3NlIHZhbGlkYWRvclxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjb25zdCBpc1ZhbGlkID0gQUdST19SRUdFWC5pc01lcmNvc3VsTGljZW5zZVBsYXRlLnRlc3QodmFsdWUpIHx8XHJcbiAgICAgICAgICAgICAgICBBR1JPX1JFR0VYLmlzT2xkTGljZW5zZVBsYXRlLnRlc3QodmFsdWUpO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIGlzVmFsaWQgPyBudWxsIDogeyBsaWNlbnNlUGxhdGVJbnZhbGlkOiB0cnVlIH07XHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcblxyXG5cclxufSJdfQ==
@@ -139,5 +139,15 @@ export var AGRO_REGEX = {
139
139
  * Validação se todos os dígitos são iguais
140
140
  */
141
141
  isAllDigitsEqual: /^(.)\1+$/,
142
+ /**
143
+ * Validação de Placa de Veículo do Mercosul
144
+ * Formato: ABC1D23
145
+ */
146
+ isMercosulLicensePlate: /^[A-Z]{3}[0-9]{1}[A-Z]{1}[0-9]{2}$/,
147
+ /**
148
+ * Validação de Placa de Veículo Antiga
149
+ * Formato: AAA-0000
150
+ */
151
+ isOldLicensePlate: /^[A-Z]{3}[0-9]{4}$/
142
152
  };
143
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1yZWdleC5jb25zdGFudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3ItYWdyb25lZ29jaW8vYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tbW9uL2Fncm8tcmVnZXguY29uc3RhbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLElBQU0sVUFBVSxHQUFHO0lBQ3RCOztPQUVHO0lBQ0gsT0FBTyxFQUFFLDRCQUE0QjtJQUVyQzs7T0FFRztJQUNILGVBQWUsRUFBRSxZQUFZO0lBRTdCOztPQUVHO0lBQ0gsZUFBZSxFQUFFLGFBQWE7SUFFOUI7O09BRUc7SUFDSCxlQUFlLEVBQUUsT0FBTztJQUV4Qjs7T0FFRztJQUNILE9BQU8sRUFBRSx1QkFBdUI7SUFFaEM7O09BRUc7SUFDSCxRQUFRLEVBQUUsV0FBVztJQUVyQjs7T0FFRztJQUNILE1BQU0sRUFBRSw0RkFBNEY7SUFFcEc7O09BRUc7SUFDSCxRQUFRLEVBQUUsU0FBUztJQUVuQjs7T0FFRztJQUNILFNBQVMsRUFBRSxhQUFhO0lBRXhCOztPQUVHO0lBQ0gsY0FBYyxFQUFFLHNDQUFzQztJQUV0RDs7T0FFRztJQUNILGFBQWEsRUFBRSx3QkFBd0I7SUFFdkM7O09BRUc7SUFDSCxNQUFNLEVBQUUscUJBQXFCO0lBRTdCOztPQUVHO0lBQ0gsTUFBTSxFQUFFLDRCQUE0QjtJQUVwQzs7T0FFRztJQUNILFVBQVUsRUFBRSw4Q0FBOEM7SUFFMUQ7O09BRUc7SUFDSCxLQUFLLEVBQUUsd0RBQXdEO0lBRS9EOztPQUVHO0lBQ0gsV0FBVyxFQUFFLGdCQUFnQjtJQUU3Qjs7T0FFRztJQUNILFFBQVEsRUFBRSx3QkFBd0I7SUFFbEM7O09BRUc7SUFDSCxVQUFVLEVBQUUsWUFBWTtJQUV4Qjs7T0FFRztJQUNILGNBQWMsRUFBRSxnQkFBZ0I7SUFFaEM7O09BRUc7SUFDSCxNQUFNLEVBQUUsY0FBYztJQUV0Qjs7T0FFRztJQUNILFlBQVksRUFBRSwyQkFBMkI7SUFFekM7O09BRUc7SUFDSCxhQUFhLEVBQUUsZ0JBQWdCO0lBRS9COztPQUVHO0lBQ0gsVUFBVSxFQUFFLG1CQUFtQjtJQUUvQjs7T0FFRztJQUNILFlBQVksRUFBRSx5Q0FBeUM7SUFFdkQ7O09BRUc7SUFDSCxTQUFTLEVBQUUsMkNBQTJDO0lBRXREOztPQUVHO0lBQ0gsb0JBQW9CLEVBQUUsdUJBQXVCO0lBRTdDOztPQUVHO0lBQ0gsZ0JBQWdCLEVBQUUsc0VBQXNFO0lBRXhGOztPQUVHO0lBQ0gsWUFBWSxFQUFFLGFBQWE7SUFFM0I7O09BRUc7SUFDSCxZQUFZLEVBQUUsbUNBQW1DO0lBRWpEOztPQUVHO0lBQ0gsVUFBVSxFQUFFLHFDQUFxQztJQUVqRDs7T0FFRztJQUNILFdBQVcsRUFBRSxxREFBcUQ7SUFFbEU7O09BRUc7SUFDSCxZQUFZLEVBQUUsMkNBQTJDO0lBRXpEOztPQUVHO0lBQ0gsc0JBQXNCLEVBQUUsMEJBQTBCO0lBRWxEOztPQUVHO0lBQ0gsS0FBSyxFQUFFLHFCQUFxQjtJQUU1Qjs7T0FFRztJQUNILGdCQUFnQixFQUFFLFVBQVU7Q0FDN0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBBR1JPX1JFR0VYID0ge1xyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBFLW1haWxcclxuICAgICAqL1xyXG4gICAgaXNFbWFpbDogL15bXlxcc0BdK0BbXlxcc0BdK1xcLlteXFxzQF0rJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBOw7ptZXJvcyBJbnRlaXJvcyBQb3NpdGl2b3NcclxuICAgICAqL1xyXG4gICAgcG9zaXRpdmVJbnRlZ2VyOiAvXlsxLTldXFxkKiQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgTsO6bWVyb3MgRGVjaW1haXMgUG9zaXRpdm9zXHJcbiAgICAgKi9cclxuICAgIHBvc2l0aXZlRGVjaW1hbDogL15cXGQqXFwuP1xcZCskLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIHN0cmluZyBxdWUgY29uc2lzdGUgYXBlbmFzIGVtIGVzcGHDp29zIGVtIGJyYW5jbyBvdSBlc3TDoSB2YXppYS5cclxuICAgICAqL1xyXG4gICAgb25seUJsYW5rU3BhY2VzOiAvXlxccyokLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIENFUCAoQ8OzZGlnbyBQb3N0YWwpXHJcbiAgICAgKi9cclxuICAgIHppcENvZGU6IC9eXFxkezh9JHxeXFxkezV9LVxcZHszfSQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgU3RyaW5nIChxdWFscXVlciBjYXJhY3RlcmUpXHJcbiAgICAgKi9cclxuICAgIGlzU3RyaW5nOiAvXltcXHNcXFNdKiQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgVVVJRFxyXG4gICAgICovXHJcbiAgICBpc1VVSUQ6IC9eWzAtOWEtZkEtRl17OH0tWzAtOWEtZkEtRl17NH0tWzEtNV1bMC05YS1mQS1GXXszfS1bODlhYkFCXVswLTlhLWZBLUZdezN9LVswLTlhLWZBLUZdezEyfSQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgTsO6bWVyb1xyXG4gICAgICovXHJcbiAgICBpc051bWJlcjogL14tP1xcZCskLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIE7Dum1lcm8gRGVjaW1hbFxyXG4gICAgICovXHJcbiAgICBpc0RlY2ltYWw6IC9eXFxkKlxcLj9cXGQrJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBQbGFjYSBkZSBWZcOtY3Vsb1xyXG4gICAgICovXHJcbiAgICBpc0xpY2Vuc2VQbGF0ZTogL15bQS1aYS16MC05XXsxLDd9LT9bQS1aYS16MC05XXsxLDd9JC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBOw7ptZXJvIGRlIFRlbGVmb25lXHJcbiAgICAgKi9cclxuICAgIGlzUGhvbmVOdW1iZXI6IC9eXFwrP1xcZHsxLDR9LT9cXGR7NiwxMX0kLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIERhdGEgKEZvcm1hdG8gWVlZWS1NTS1ERClcclxuICAgICAqL1xyXG4gICAgaXNEYXRlOiAvXlxcZHs0fS1cXGR7Mn0tXFxkezJ9JC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBIb3JhIChGb3JtYXRvIEhIOm1tKVxyXG4gICAgICovXHJcbiAgICBpc1RpbWU6IC9eKDBcXGR8MVxcZHwyWzAtM10pOlswLTVdXFxkJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBEYXRhIGUgSG9yYSAoRm9ybWF0byBZWVlZLU1NLUREIEhIOm1tKVxyXG4gICAgICovXHJcbiAgICBpc0RhdGVUaW1lOiAvXlxcZHs0fS1cXGR7Mn0tXFxkezJ9ICgwXFxkfDFcXGR8MlswLTNdKTpbMC01XVxcZCQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgVVJMXHJcbiAgICAgKi9cclxuICAgIGlzVVJMOiAvXihodHRwfGh0dHBzKTpcXC9cXC8oW1xcdy1dK1xcLikrW1xcdy1dKyhcXC9bXFx3LSAuLz8lJj1dKik/JC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBOw7ptZXJvIEhleGFkZWNpbWFsXHJcbiAgICAgKi9cclxuICAgIGlzSGV4TnVtYmVyOiAvXlswLTlhLWZBLUZdKyQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgQmFzZTY0XHJcbiAgICAgKi9cclxuICAgIGlzQmFzZTY0OiAvXlthLXpBLVowLTkrL10rPXswLDJ9JC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBOb21lIGRlIFVzdcOhcmlvICgzIGEgMjAgY2FyYWN0ZXJlcyBhbGZhbnVtw6lyaWNvcylcclxuICAgICAqL1xyXG4gICAgaXNVc2VybmFtZTogL15cXHd7MywyMH0kLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIEFsZmFudW3DqXJpY29cclxuICAgICAqL1xyXG4gICAgaXNBbHBoYW51bWVyaWM6IC9eW2EtekEtWjAtOV0rJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBTbHVnIChsZXRyYXMgbWluw7pzY3VsYXMsIG7Dum1lcm9zIGUgdHJhw6dvcylcclxuICAgICAqL1xyXG4gICAgaXNTbHVnOiAvXlthLXowLTktXSskLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIE7Dum1lcm8gZGUgQ2FydMOjbyBkZSBDcsOpZGl0b1xyXG4gICAgICovXHJcbiAgICBpc0NyZWRpdENhcmQ6IC9eXFxkezR9LVxcZHs0fS1cXGR7NH0tXFxkezR9JC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBOw7ptZXJvIEhleGFkZWNpbWFsXHJcbiAgICAgKi9cclxuICAgIGlzSGV4YWRlY2ltYWw6IC9eWzAtOWEtZkEtRl0rJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBNb2VkYVxyXG4gICAgICovXHJcbiAgICBpc0N1cnJlbmN5OiAvXlxcZCsoXFwuXFxkezEsMn0pPyQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgUG9yY2VudGFnZW1cclxuICAgICAqL1xyXG4gICAgaXNQZXJjZW50YWdlOiAvXigxMDAoXFwuMHsxLDJ9KT98WzEtOV0/XFxkKFxcLlxcZHsxLDJ9KT8pJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBUYWcgSFRNTCBTaW1wbGVzXHJcbiAgICAgKi9cclxuICAgIGlzSFRNTFRhZzogL148KFthLXpdKykoW148XSspKig/Oj4oLiopPFxcL1xcMT58XFxzK1xcLz4pJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBOb21lIGRlIFVzdcOhcmlvIGNvbSBFc3Bhw6dvcyAoMyBhIDIwIGNhcmFjdGVyZXMgYWxmYW51bcOpcmljb3MgZSBlc3Bhw6dvcylcclxuICAgICAqL1xyXG4gICAgaXNVc2VybmFtZVdpdGhTcGFjZXM6IC9eW2EtekEtWjAtOV8gXXszLDIwfSQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgU2VuaGEgRm9ydGUgKG3DrW5pbW8gOCBjYXJhY3RlcmVzLCB1bWEgbGV0cmEgbWluw7pzY3VsYSwgdW1hIGxldHJhIG1hacO6c2N1bGEsIHVtIG7Dum1lcm8gZSB1bSBjYXJhY3RlcmUgZXNwZWNpYWwpXHJcbiAgICAgKi9cclxuICAgIGlzU3Ryb25nUGFzc3dvcmQ6IC9eKD89LipbYS16XSkoPz0uKltBLVpdKSg/PS4qXFxkKSg/PS4qW0AkISUqPyZdKVtBLVphLXpcXGRAJCElKj8mXXs4LH0kLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIFN0cmluZyBBbGZhYsOpdGljYVxyXG4gICAgICovXHJcbiAgICBpc0FscGhhYmV0aWM6IC9eW2EtekEtWl0rJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBIb3JhIG5vIEZvcm1hdG8gZGUgMTIgSG9yYXNcclxuICAgICAqL1xyXG4gICAgaXNUaW1lMTJIb3VyOiAvXigwP1sxLTldfDFbMC0yXSk6XFxkezJ9IChBTXxQTSkkL2ksXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBMYXRpdHVkZVxyXG4gICAgICovXHJcbiAgICBpc0xhdGl0dWRlOiAvXlstK10/KFsxLThdP1xcZChcXC5cXGQrKT98OTAoXFwuMCspPykkLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIExvbmdpdHVkZVxyXG4gICAgICovXHJcbiAgICBpc0xvbmdpdHVkZTogL15bLStdPygxODAoXFwuMCspP3woKDFbMC03XVxcZCl8KFsxLTldP1xcZCkpKFxcLlxcZCspPykkLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIEVuZGVyZcOnbyBNQUNcclxuICAgICAqL1xyXG4gICAgaXNNQUNBZGRyZXNzOiAvXihbMC05QS1GYS1mXXsyfVs6LV0pezV9KFswLTlBLUZhLWZdezJ9KSQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgRGF0YSBkZSBFeHBpcmHDp8OjbyBkZSBDYXJ0w6NvIGRlIENyw6lkaXRvXHJcbiAgICAgKi9cclxuICAgIGlzQ3JlZGl0Q2FyZEV4cGlyYXRpb246IC9eKDBbMS05XXwxWzAtMl0pXFwvXFxkezJ9JC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBOw7ptZXJvIGRlIFNlZ3VybyBTb2NpYWwgKFNTTilcclxuICAgICAqL1xyXG4gICAgaXNTU046IC9eXFxkezN9LVxcZHsyfS1cXGR7NH0kLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIHNlIHRvZG9zIG9zIGTDrWdpdG9zIHPDo28gaWd1YWlzXHJcbiAgICAgKi9cclxuICAgIGlzQWxsRGlnaXRzRXF1YWw6IC9eKC4pXFwxKyQvLFxyXG4gIH07XHJcbiJdfQ==
153
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1yZWdleC5jb25zdGFudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3ItYWdyb25lZ29jaW8vYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tbW9uL2Fncm8tcmVnZXguY29uc3RhbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLElBQU0sVUFBVSxHQUFHO0lBQ3RCOztPQUVHO0lBQ0gsT0FBTyxFQUFFLDRCQUE0QjtJQUVyQzs7T0FFRztJQUNILGVBQWUsRUFBRSxZQUFZO0lBRTdCOztPQUVHO0lBQ0gsZUFBZSxFQUFFLGFBQWE7SUFFOUI7O09BRUc7SUFDSCxlQUFlLEVBQUUsT0FBTztJQUV4Qjs7T0FFRztJQUNILE9BQU8sRUFBRSx1QkFBdUI7SUFFaEM7O09BRUc7SUFDSCxRQUFRLEVBQUUsV0FBVztJQUVyQjs7T0FFRztJQUNILE1BQU0sRUFBRSw0RkFBNEY7SUFFcEc7O09BRUc7SUFDSCxRQUFRLEVBQUUsU0FBUztJQUVuQjs7T0FFRztJQUNILFNBQVMsRUFBRSxhQUFhO0lBRXhCOztPQUVHO0lBQ0gsY0FBYyxFQUFFLHNDQUFzQztJQUV0RDs7T0FFRztJQUNILGFBQWEsRUFBRSx3QkFBd0I7SUFFdkM7O09BRUc7SUFDSCxNQUFNLEVBQUUscUJBQXFCO0lBRTdCOztPQUVHO0lBQ0gsTUFBTSxFQUFFLDRCQUE0QjtJQUVwQzs7T0FFRztJQUNILFVBQVUsRUFBRSw4Q0FBOEM7SUFFMUQ7O09BRUc7SUFDSCxLQUFLLEVBQUUsd0RBQXdEO0lBRS9EOztPQUVHO0lBQ0gsV0FBVyxFQUFFLGdCQUFnQjtJQUU3Qjs7T0FFRztJQUNILFFBQVEsRUFBRSx3QkFBd0I7SUFFbEM7O09BRUc7SUFDSCxVQUFVLEVBQUUsWUFBWTtJQUV4Qjs7T0FFRztJQUNILGNBQWMsRUFBRSxnQkFBZ0I7SUFFaEM7O09BRUc7SUFDSCxNQUFNLEVBQUUsY0FBYztJQUV0Qjs7T0FFRztJQUNILFlBQVksRUFBRSwyQkFBMkI7SUFFekM7O09BRUc7SUFDSCxhQUFhLEVBQUUsZ0JBQWdCO0lBRS9COztPQUVHO0lBQ0gsVUFBVSxFQUFFLG1CQUFtQjtJQUUvQjs7T0FFRztJQUNILFlBQVksRUFBRSx5Q0FBeUM7SUFFdkQ7O09BRUc7SUFDSCxTQUFTLEVBQUUsMkNBQTJDO0lBRXREOztPQUVHO0lBQ0gsb0JBQW9CLEVBQUUsdUJBQXVCO0lBRTdDOztPQUVHO0lBQ0gsZ0JBQWdCLEVBQUUsc0VBQXNFO0lBRXhGOztPQUVHO0lBQ0gsWUFBWSxFQUFFLGFBQWE7SUFFM0I7O09BRUc7SUFDSCxZQUFZLEVBQUUsbUNBQW1DO0lBRWpEOztPQUVHO0lBQ0gsVUFBVSxFQUFFLHFDQUFxQztJQUVqRDs7T0FFRztJQUNILFdBQVcsRUFBRSxxREFBcUQ7SUFFbEU7O09BRUc7SUFDSCxZQUFZLEVBQUUsMkNBQTJDO0lBRXpEOztPQUVHO0lBQ0gsc0JBQXNCLEVBQUUsMEJBQTBCO0lBRWxEOztPQUVHO0lBQ0gsS0FBSyxFQUFFLHFCQUFxQjtJQUU1Qjs7T0FFRztJQUNILGdCQUFnQixFQUFFLFVBQVU7SUFFNUI7OztPQUdHO0lBQ0gsc0JBQXNCLEVBQUUsb0NBQW9DO0lBRzVEOzs7T0FHRztJQUNILGlCQUFpQixFQUFFLG9CQUFvQjtDQUN4QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IEFHUk9fUkVHRVggPSB7XHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIEUtbWFpbFxyXG4gICAgICovXHJcbiAgICBpc0VtYWlsOiAvXlteXFxzQF0rQFteXFxzQF0rXFwuW15cXHNAXSskLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIE7Dum1lcm9zIEludGVpcm9zIFBvc2l0aXZvc1xyXG4gICAgICovXHJcbiAgICBwb3NpdGl2ZUludGVnZXI6IC9eWzEtOV1cXGQqJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBOw7ptZXJvcyBEZWNpbWFpcyBQb3NpdGl2b3NcclxuICAgICAqL1xyXG4gICAgcG9zaXRpdmVEZWNpbWFsOiAvXlxcZCpcXC4/XFxkKyQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgc3RyaW5nIHF1ZSBjb25zaXN0ZSBhcGVuYXMgZW0gZXNwYcOnb3MgZW0gYnJhbmNvIG91IGVzdMOhIHZhemlhLlxyXG4gICAgICovXHJcbiAgICBvbmx5QmxhbmtTcGFjZXM6IC9eXFxzKiQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgQ0VQIChDw7NkaWdvIFBvc3RhbClcclxuICAgICAqL1xyXG4gICAgemlwQ29kZTogL15cXGR7OH0kfF5cXGR7NX0tXFxkezN9JC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBTdHJpbmcgKHF1YWxxdWVyIGNhcmFjdGVyZSlcclxuICAgICAqL1xyXG4gICAgaXNTdHJpbmc6IC9eW1xcc1xcU10qJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBVVUlEXHJcbiAgICAgKi9cclxuICAgIGlzVVVJRDogL15bMC05YS1mQS1GXXs4fS1bMC05YS1mQS1GXXs0fS1bMS01XVswLTlhLWZBLUZdezN9LVs4OWFiQUJdWzAtOWEtZkEtRl17M30tWzAtOWEtZkEtRl17MTJ9JC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBOw7ptZXJvXHJcbiAgICAgKi9cclxuICAgIGlzTnVtYmVyOiAvXi0/XFxkKyQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgTsO6bWVybyBEZWNpbWFsXHJcbiAgICAgKi9cclxuICAgIGlzRGVjaW1hbDogL15cXGQqXFwuP1xcZCskLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIFBsYWNhIGRlIFZlw61jdWxvXHJcbiAgICAgKi9cclxuICAgIGlzTGljZW5zZVBsYXRlOiAvXltBLVphLXowLTldezEsN30tP1tBLVphLXowLTldezEsN30kLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIE7Dum1lcm8gZGUgVGVsZWZvbmVcclxuICAgICAqL1xyXG4gICAgaXNQaG9uZU51bWJlcjogL15cXCs/XFxkezEsNH0tP1xcZHs2LDExfSQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgRGF0YSAoRm9ybWF0byBZWVlZLU1NLUREKVxyXG4gICAgICovXHJcbiAgICBpc0RhdGU6IC9eXFxkezR9LVxcZHsyfS1cXGR7Mn0kLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIEhvcmEgKEZvcm1hdG8gSEg6bW0pXHJcbiAgICAgKi9cclxuICAgIGlzVGltZTogL14oMFxcZHwxXFxkfDJbMC0zXSk6WzAtNV1cXGQkLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIERhdGEgZSBIb3JhIChGb3JtYXRvIFlZWVktTU0tREQgSEg6bW0pXHJcbiAgICAgKi9cclxuICAgIGlzRGF0ZVRpbWU6IC9eXFxkezR9LVxcZHsyfS1cXGR7Mn0gKDBcXGR8MVxcZHwyWzAtM10pOlswLTVdXFxkJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBVUkxcclxuICAgICAqL1xyXG4gICAgaXNVUkw6IC9eKGh0dHB8aHR0cHMpOlxcL1xcLyhbXFx3LV0rXFwuKStbXFx3LV0rKFxcL1tcXHctIC4vPyUmPV0qKT8kLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIE7Dum1lcm8gSGV4YWRlY2ltYWxcclxuICAgICAqL1xyXG4gICAgaXNIZXhOdW1iZXI6IC9eWzAtOWEtZkEtRl0rJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBCYXNlNjRcclxuICAgICAqL1xyXG4gICAgaXNCYXNlNjQ6IC9eW2EtekEtWjAtOSsvXSs9ezAsMn0kLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIE5vbWUgZGUgVXN1w6FyaW8gKDMgYSAyMCBjYXJhY3RlcmVzIGFsZmFudW3DqXJpY29zKVxyXG4gICAgICovXHJcbiAgICBpc1VzZXJuYW1lOiAvXlxcd3szLDIwfSQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgQWxmYW51bcOpcmljb1xyXG4gICAgICovXHJcbiAgICBpc0FscGhhbnVtZXJpYzogL15bYS16QS1aMC05XSskLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIFNsdWcgKGxldHJhcyBtaW7DunNjdWxhcywgbsO6bWVyb3MgZSB0cmHDp29zKVxyXG4gICAgICovXHJcbiAgICBpc1NsdWc6IC9eW2EtejAtOS1dKyQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgTsO6bWVybyBkZSBDYXJ0w6NvIGRlIENyw6lkaXRvXHJcbiAgICAgKi9cclxuICAgIGlzQ3JlZGl0Q2FyZDogL15cXGR7NH0tXFxkezR9LVxcZHs0fS1cXGR7NH0kLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIE7Dum1lcm8gSGV4YWRlY2ltYWxcclxuICAgICAqL1xyXG4gICAgaXNIZXhhZGVjaW1hbDogL15bMC05YS1mQS1GXSskLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIE1vZWRhXHJcbiAgICAgKi9cclxuICAgIGlzQ3VycmVuY3k6IC9eXFxkKyhcXC5cXGR7MSwyfSk/JC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBQb3JjZW50YWdlbVxyXG4gICAgICovXHJcbiAgICBpc1BlcmNlbnRhZ2U6IC9eKDEwMChcXC4wezEsMn0pP3xbMS05XT9cXGQoXFwuXFxkezEsMn0pPykkLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIFRhZyBIVE1MIFNpbXBsZXNcclxuICAgICAqL1xyXG4gICAgaXNIVE1MVGFnOiAvXjwoW2Etel0rKShbXjxdKykqKD86PiguKik8XFwvXFwxPnxcXHMrXFwvPikkLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIE5vbWUgZGUgVXN1w6FyaW8gY29tIEVzcGHDp29zICgzIGEgMjAgY2FyYWN0ZXJlcyBhbGZhbnVtw6lyaWNvcyBlIGVzcGHDp29zKVxyXG4gICAgICovXHJcbiAgICBpc1VzZXJuYW1lV2l0aFNwYWNlczogL15bYS16QS1aMC05XyBdezMsMjB9JC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBTZW5oYSBGb3J0ZSAobcOtbmltbyA4IGNhcmFjdGVyZXMsIHVtYSBsZXRyYSBtaW7DunNjdWxhLCB1bWEgbGV0cmEgbWFpw7pzY3VsYSwgdW0gbsO6bWVybyBlIHVtIGNhcmFjdGVyZSBlc3BlY2lhbClcclxuICAgICAqL1xyXG4gICAgaXNTdHJvbmdQYXNzd29yZDogL14oPz0uKlthLXpdKSg/PS4qW0EtWl0pKD89LipcXGQpKD89LipbQCQhJSo/Jl0pW0EtWmEtelxcZEAkISUqPyZdezgsfSQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgU3RyaW5nIEFsZmFiw6l0aWNhXHJcbiAgICAgKi9cclxuICAgIGlzQWxwaGFiZXRpYzogL15bYS16QS1aXSskLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIEhvcmEgbm8gRm9ybWF0byBkZSAxMiBIb3Jhc1xyXG4gICAgICovXHJcbiAgICBpc1RpbWUxMkhvdXI6IC9eKDA/WzEtOV18MVswLTJdKTpcXGR7Mn0gKEFNfFBNKSQvaSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIExhdGl0dWRlXHJcbiAgICAgKi9cclxuICAgIGlzTGF0aXR1ZGU6IC9eWy0rXT8oWzEtOF0/XFxkKFxcLlxcZCspP3w5MChcXC4wKyk/KSQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgTG9uZ2l0dWRlXHJcbiAgICAgKi9cclxuICAgIGlzTG9uZ2l0dWRlOiAvXlstK10/KDE4MChcXC4wKyk/fCgoMVswLTddXFxkKXwoWzEtOV0/XFxkKSkoXFwuXFxkKyk/KSQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgRW5kZXJlw6dvIE1BQ1xyXG4gICAgICovXHJcbiAgICBpc01BQ0FkZHJlc3M6IC9eKFswLTlBLUZhLWZdezJ9WzotXSl7NX0oWzAtOUEtRmEtZl17Mn0pJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBEYXRhIGRlIEV4cGlyYcOnw6NvIGRlIENhcnTDo28gZGUgQ3LDqWRpdG9cclxuICAgICAqL1xyXG4gICAgaXNDcmVkaXRDYXJkRXhwaXJhdGlvbjogL14oMFsxLTldfDFbMC0yXSlcXC9cXGR7Mn0kLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIE7Dum1lcm8gZGUgU2VndXJvIFNvY2lhbCAoU1NOKVxyXG4gICAgICovXHJcbiAgICBpc1NTTjogL15cXGR7M30tXFxkezJ9LVxcZHs0fSQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gc2UgdG9kb3Mgb3MgZMOtZ2l0b3Mgc8OjbyBpZ3VhaXNcclxuICAgICAqL1xyXG4gICAgaXNBbGxEaWdpdHNFcXVhbDogL14oLilcXDErJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBQbGFjYSBkZSBWZcOtY3VsbyBkbyBNZXJjb3N1bFxyXG4gICAgICogRm9ybWF0bzogQUJDMUQyM1xyXG4gICAgICovXHJcbiAgICBpc01lcmNvc3VsTGljZW5zZVBsYXRlOiAvXltBLVpdezN9WzAtOV17MX1bQS1aXXsxfVswLTldezJ9JC8sXHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgUGxhY2EgZGUgVmXDrWN1bG8gQW50aWdhXHJcbiAgICAgKiBGb3JtYXRvOiBBQUEtMDAwMFxyXG4gICAgICovXHJcbiAgICBpc09sZExpY2Vuc2VQbGF0ZTogL15bQS1aXXszfVswLTldezR9JC9cclxuICB9O1xyXG4iXX0=