sigesp 0.9.1-210204 → 0.9.2-20220820

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.
Files changed (363) hide show
  1. package/bundles/sigesp.umd.js +10782 -1627
  2. package/bundles/sigesp.umd.js.map +1 -1
  3. package/bundles/sigesp.umd.min.js +2 -2
  4. package/bundles/sigesp.umd.min.js.map +1 -1
  5. package/esm2015/lib/app/app.component.js +1 -1
  6. package/esm2015/lib/app/app.module.js +5 -1
  7. package/esm2015/lib/core/interfaces/Auditoria.js +49 -0
  8. package/esm2015/lib/core/interfaces/Banco.js +1 -1
  9. package/esm2015/lib/core/interfaces/Catalogo.js +1 -1
  10. package/esm2015/lib/core/interfaces/CentroCosto.js +1 -1
  11. package/esm2015/lib/core/interfaces/Clasificacion.js +1 -1
  12. package/esm2015/lib/core/interfaces/ComprobantePresupuestario.js +1 -1
  13. package/esm2015/lib/core/interfaces/Comunidad.js +1 -1
  14. package/esm2015/lib/core/interfaces/Configuracion.js +2 -0
  15. package/esm2015/lib/core/interfaces/ConfiguracionRPC.js +1 -1
  16. package/esm2015/lib/core/interfaces/ConfiguracionSCG.js +1 -1
  17. package/esm2015/lib/core/interfaces/ConfigurationSPG.js +1 -1
  18. package/esm2015/lib/core/interfaces/Constantes.js +350 -0
  19. package/esm2015/lib/core/interfaces/CuentaEgresos.js +1 -1
  20. package/esm2015/lib/core/interfaces/CuentaIngreso.js +1 -1
  21. package/esm2015/lib/core/interfaces/CuentaIngresoEstructura.js +1 -1
  22. package/esm2015/lib/core/interfaces/CuentaInstitucional.js +1 -1
  23. package/esm2015/lib/core/interfaces/CuentaPresupuesto.js +1 -1
  24. package/esm2015/lib/core/interfaces/CuentasPorPagar.js +1 -1
  25. package/esm2015/lib/core/interfaces/Documento.js +1 -1
  26. package/esm2015/lib/core/interfaces/EntradaSuministro.js +2 -0
  27. package/esm2015/lib/core/interfaces/Especialidad.js +1 -1
  28. package/esm2015/lib/core/interfaces/EstructuraPresupuestaria.js +1 -1
  29. package/esm2015/lib/core/interfaces/FuenteFinanciamiento.js +1 -1
  30. package/esm2015/lib/core/interfaces/IBancoCuentasPorPagar.js +2 -0
  31. package/esm2015/lib/core/interfaces/Integracion.js +1 -1
  32. package/esm2015/lib/core/interfaces/Lugares.js +1 -1
  33. package/esm2015/lib/core/interfaces/Moneda.js +1 -1
  34. package/esm2015/lib/core/interfaces/Nomina.js +27 -0
  35. package/esm2015/lib/core/interfaces/PlanUnicoCuenta.js +1 -1
  36. package/esm2015/lib/core/interfaces/Presupuesto.js +1 -1
  37. package/esm2015/lib/core/interfaces/Proveedor.js +1 -1
  38. package/esm2015/lib/core/interfaces/RecursosHumanos.js +4 -0
  39. package/esm2015/lib/core/interfaces/Request.js +1 -1
  40. package/esm2015/lib/core/interfaces/Response.js +1 -1
  41. package/esm2015/lib/core/interfaces/Seguridad.js +1 -1
  42. package/esm2015/lib/core/interfaces/Servicios.js +1 -1
  43. package/esm2015/lib/core/interfaces/Sistema.js +1 -1
  44. package/esm2015/lib/core/interfaces/Tributos.js +1 -1
  45. package/esm2015/lib/core/interfaces/UnidadTributaria.js +1 -1
  46. package/esm2015/lib/core/interfaces/Usuario.js +1 -1
  47. package/esm2015/lib/core/interfaces/UsuarioPrefijo.js +1 -1
  48. package/esm2015/lib/core/models/CFG/Empresa.model.js +109 -0
  49. package/esm2015/lib/core/models/CFG/comunidad.model.js +15 -0
  50. package/esm2015/lib/core/models/CFG/locations.model.js +122 -0
  51. package/esm2015/lib/core/models/CXP/MConceptosCXP.model.js +31 -0
  52. package/esm2015/lib/core/models/CXP/MTipoDocumentoCXP.model.js +41 -0
  53. package/esm2015/lib/core/models/RPC/clasification.model.js +14 -0
  54. package/esm2015/lib/core/models/RPC/configuracionRPC.model.js +23 -0
  55. package/esm2015/lib/core/models/RPC/document.model.js +16 -0
  56. package/esm2015/lib/core/models/RPC/proveedores.model.js +9 -0
  57. package/esm2015/lib/core/models/RPC/providerBeneficiary.model.js +154 -0
  58. package/esm2015/lib/core/models/RPC/specialty.model.js +12 -0
  59. package/esm2015/lib/core/models/SCB/bank.model.js +175 -0
  60. package/esm2015/lib/core/models/SCG/IncomeAccount.js +81 -0
  61. package/esm2015/lib/core/models/SCG/accountMarriage.model.js +11 -0
  62. package/esm2015/lib/core/models/SCG/centroCosto.model.js +7 -0
  63. package/esm2015/lib/core/models/SCG/configuracionSCG.model.js +169 -0
  64. package/esm2015/lib/core/models/SCG/cuentaInstitucional.model.js +26 -0
  65. package/esm2015/lib/core/models/SCG/planUnicoCuenta.model.js +7 -0
  66. package/esm2015/lib/core/models/SIV/MDetaContable.model.js +59 -0
  67. package/esm2015/lib/core/models/SIV/MDetaEntrada.model.js +94 -0
  68. package/esm2015/lib/core/models/SIV/MEntradaSuministro.model.js +132 -0
  69. package/esm2015/lib/core/models/SNO/MAnticipoPrestaciones.model.js +97 -0
  70. package/esm2015/lib/core/models/SNO/MArchivoTxtCampo.model.js +58 -0
  71. package/esm2015/lib/core/models/SNO/MArchivosTxt.model.js +38 -0
  72. package/esm2015/lib/core/models/SNO/MAsignacionCargo.model.js +192 -0
  73. package/esm2015/lib/core/models/SNO/MAspectoEvaluacion.model.js +84 -0
  74. package/esm2015/lib/core/models/SNO/MAuditoria.model.js +58 -0
  75. package/esm2015/lib/core/models/SNO/MBeneficiario.model.js +81 -0
  76. package/esm2015/lib/core/models/SNO/MCargaMasiva.model.js +34 -0
  77. package/esm2015/lib/core/models/SNO/MCargosPersonal.model.js +88 -0
  78. package/esm2015/lib/core/models/SNO/MClasificacionObrero.mdel.js +43 -0
  79. package/esm2015/lib/core/models/SNO/MCodigoUnicoRac.model.js +36 -0
  80. package/esm2015/lib/core/models/SNO/MComponete.model.js +35 -0
  81. package/esm2015/lib/core/models/SNO/MConceptoVacaciones.model.js +82 -0
  82. package/esm2015/lib/core/models/SNO/MConceptosNomina.model.js +217 -0
  83. package/esm2015/lib/core/models/SNO/MConceptosPersonalNomina.model.js +94 -0
  84. package/esm2015/lib/core/models/SNO/MConcursante.model.js +302 -0
  85. package/esm2015/lib/core/models/SNO/MConcurso.model.js +234 -0
  86. package/esm2015/lib/core/models/SNO/MConfiguracionSNO.model.js +389 -0
  87. package/esm2015/lib/core/models/SNO/MConstanteNomina.model.js +64 -0
  88. package/esm2015/lib/core/models/SNO/MConstantePersonalNomina.model.js +76 -0
  89. package/esm2015/lib/core/models/SNO/MDedicacion.model.js +32 -0
  90. package/esm2015/lib/core/models/SNO/MDefinicionNomina.model.js +339 -0
  91. package/esm2015/lib/core/models/SNO/MDefinicionesBasicas.model.js +75 -0
  92. package/esm2015/lib/core/models/SNO/MDeudaAnterior.model.js +37 -0
  93. package/esm2015/lib/core/models/SNO/MEncargaduria.model.js +135 -0
  94. package/esm2015/lib/core/models/SNO/MEscalaEvaluacion.model.js +35 -0
  95. package/esm2015/lib/core/models/SNO/MEscalaEvaluacionDt.model.js +34 -0
  96. package/esm2015/lib/core/models/SNO/MEstructuraOrganizativa.model.js +109 -0
  97. package/esm2015/lib/core/models/SNO/MFamiliares.model.js +83 -0
  98. package/esm2015/lib/core/models/SNO/MFeriados.model.js +43 -0
  99. package/esm2015/lib/core/models/SNO/MFideicomiso.model.js +388 -0
  100. package/esm2015/lib/core/models/SNO/MFormacionAcademica.model.js +46 -0
  101. package/esm2015/lib/core/models/SNO/MGrado.model.js +44 -0
  102. package/esm2015/lib/core/models/SNO/MHojaTiempo.model.js +112 -0
  103. package/esm2015/lib/core/models/SNO/MImpuestoSobreRenta.model.js +70 -0
  104. package/esm2015/lib/core/models/SNO/MMetodoBanco.model.js +99 -0
  105. package/esm2015/lib/core/models/SNO/MNominaSimple.model.js +79 -0
  106. package/esm2015/lib/core/models/SNO/MPeriodoNomina.model.js +92 -0
  107. package/esm2015/lib/core/models/SNO/MPeriodosPlan.model.js +46 -0
  108. package/esm2015/lib/core/models/SNO/MPermisos.model.js +65 -0
  109. package/esm2015/lib/core/models/SNO/MPersonal.model.js +559 -0
  110. package/esm2015/lib/core/models/SNO/MPersonalJubilado.model.js +46 -0
  111. package/esm2015/lib/core/models/SNO/MPersonalNomina.model.js +298 -0
  112. package/esm2015/lib/core/models/SNO/MPlantillaConstancia.model.js +31 -0
  113. package/esm2015/lib/core/models/SNO/MPrestamo.model.js +212 -0
  114. package/esm2015/lib/core/models/SNO/MPrimaGrados.model.js +40 -0
  115. package/esm2015/lib/core/models/SNO/MPrimasConcepto.model.js +40 -0
  116. package/esm2015/lib/core/models/SNO/MRango.model.js +40 -0
  117. package/esm2015/lib/core/models/SNO/MReportesRRHH.js +402 -0
  118. package/esm2015/lib/core/models/SNO/MRequisitosConcursante.model.js +43 -0
  119. package/esm2015/lib/core/models/SNO/MRequisitosConcursos.model.js +34 -0
  120. package/esm2015/lib/core/models/SNO/MRequisitosMinimos.model.js +107 -0
  121. package/esm2015/lib/core/models/SNO/MSalarioHistorico.model.js +67 -0
  122. package/esm2015/lib/core/models/SNO/MSolicitudEmpleo.model.js +118 -0
  123. package/esm2015/lib/core/models/SNO/MTablaVacaciones.model.js +54 -0
  124. package/esm2015/lib/core/models/SNO/MTablaVacacionesPeriodo.model.js +37 -0
  125. package/esm2015/lib/core/models/SNO/MTabulador.model.js +90 -0
  126. package/esm2015/lib/core/models/SNO/MTipoEvaluacion.model.js +69 -0
  127. package/esm2015/lib/core/models/SNO/MTipoPersonal.model.js +31 -0
  128. package/esm2015/lib/core/models/SNO/MTiposEnfermedad.model.js +34 -0
  129. package/esm2015/lib/core/models/SNO/MTrabajoAnterior.model.js +62 -0
  130. package/esm2015/lib/core/models/SNO/MUbicacionFisica.model.js +58 -0
  131. package/esm2015/lib/core/models/SNO/MVacacionesPersonal.model.js +112 -0
  132. package/esm2015/lib/core/models/SNO/McargaFamiliar.model.js +49 -0
  133. package/esm2015/lib/core/models/SOC/charge.model.js +63 -0
  134. package/esm2015/lib/core/models/SOC/clause.model.js +25 -0
  135. package/esm2015/lib/core/models/SOC/clauseModality.model.js +29 -0
  136. package/esm2015/lib/core/models/SOC/configuracionSOC.model.js +56 -0
  137. package/esm2015/lib/core/models/SOC/service.model.js +40 -0
  138. package/esm2015/lib/core/models/SOC/serviceCharge.model.js +15 -22
  139. package/esm2015/lib/core/models/SOC/serviceType.model.js +22 -0
  140. package/esm2015/lib/core/models/SPG/administrativeUnit.model.js +1 -1
  141. package/esm2015/lib/core/models/SPG/comprobantePresupuestario.model.js +47 -0
  142. package/esm2015/lib/core/models/SPG/configurationSPG.model.js +55 -0
  143. package/esm2015/lib/core/models/SPG/cuentaPresupuesto.model.js +13 -0
  144. package/esm2015/lib/core/models/SPG/estructuraPresupuestaria.model.js +132 -0
  145. package/esm2015/lib/core/models/SPG/expensiveAccount.model.js +40 -0
  146. package/esm2015/lib/core/models/SPG/fuenteFinanciamiento.model.js +10 -0
  147. package/esm2015/lib/core/models/SPG/incomeStructureAccount.model.js +81 -0
  148. package/esm2015/lib/core/models/SPG/organizationType.model.js +12 -0
  149. package/esm2015/lib/core/models/SSS/component.model.js +1 -1
  150. package/esm2015/lib/core/models/SSS/group.model.js +2 -2
  151. package/esm2015/lib/core/models/SSS/log.model.js +29 -0
  152. package/esm2015/lib/core/models/SSS/securityConfiguration.model.js +20 -0
  153. package/esm2015/lib/core/models/SSS/sistema.js +15 -0
  154. package/esm2015/lib/core/models/SSS/user.model.js +29 -0
  155. package/esm2015/lib/core/models/SSS/userDetail.model.js +70 -0
  156. package/esm2015/lib/core/models/SSS/userPermit.model.js +5 -1
  157. package/esm2015/lib/core/models/SSS/userPrefix.model.js +15 -0
  158. package/esm2015/lib/core/models/SSS/userRights.model.js +25 -1
  159. package/esm2015/lib/core/models/STB/deduction.model.js +78 -0
  160. package/esm2015/lib/core/models/STB/deductionType.model.js +20 -0
  161. package/esm2015/lib/core/models/STB/moneda.model.js +27 -0
  162. package/esm2015/lib/core/models/STB/unidadTributaria.model.js +14 -0
  163. package/esm2015/lib/core/models/basic-model.model.js +1 -1
  164. package/esm2015/lib/shared/components/catalogo/catalogo.component.js +1 -1
  165. package/esm2015/lib/shared/components/catalogo-doble-input/catalogo-doble-input.component.js +1 -1
  166. package/esm2015/lib/shared/components/catalogo-estructuras/catalogo-estructuras.component.js +1 -1
  167. package/esm2015/lib/shared/components/confirm/confirm.component.js +1 -1
  168. package/esm2015/lib/shared/components/icon/icon.component.js +1 -1
  169. package/esm2015/lib/shared/components/table-select/table-select.component.js +18 -3
  170. package/esm2015/lib/shared/material/customPaginator.js +1 -1
  171. package/esm2015/lib/shared/material/material.module.js +1 -1
  172. package/esm2015/lib/shared/pipes/iso-currency.pipe.js +1 -1
  173. package/esm2015/lib/shared/shared.module.js +5 -1
  174. package/esm2015/lib/sigesp.service.js +552 -105
  175. package/esm2015/lib/validation.service.js +1 -1
  176. package/esm2015/public-api.js +126 -40
  177. package/esm2015/sigesp.js +11 -12
  178. package/fesm2015/sigesp.js +10291 -1705
  179. package/fesm2015/sigesp.js.map +1 -1
  180. package/lib/core/interfaces/Auditoria.d.ts +18 -0
  181. package/lib/core/interfaces/Banco.d.ts +548 -0
  182. package/lib/core/interfaces/Configuracion.d.ts +34 -0
  183. package/lib/core/interfaces/ConfiguracionSCG.d.ts +1 -0
  184. package/lib/core/interfaces/Constantes.d.ts +78 -0
  185. package/lib/core/interfaces/CuentasPorPagar.d.ts +19 -0
  186. package/lib/core/interfaces/EntradaSuministro.d.ts +87 -0
  187. package/lib/core/interfaces/IBancoCuentasPorPagar.d.ts +186 -0
  188. package/lib/core/interfaces/Lugares.d.ts +6 -0
  189. package/lib/core/interfaces/Nomina.d.ts +500 -0
  190. package/lib/core/interfaces/Proveedor.d.ts +2 -1
  191. package/lib/core/interfaces/RecursosHumanos.d.ts +1448 -0
  192. package/lib/core/interfaces/Seguridad.d.ts +22 -0
  193. package/lib/core/interfaces/Servicios.d.ts +13 -2
  194. package/lib/core/interfaces/Tributos.d.ts +11 -0
  195. package/lib/core/interfaces/Usuario.d.ts +18 -0
  196. package/lib/core/models/CFG/Empresa.model.d.ts +38 -0
  197. package/lib/core/models/{comunidad.model.d.ts → CFG/comunidad.model.d.ts} +1 -1
  198. package/lib/core/models/CFG/locations.model.d.ts +44 -0
  199. package/lib/core/models/CXP/MConceptosCXP.model.d.ts +11 -0
  200. package/lib/core/models/CXP/MTipoDocumentoCXP.model.d.ts +15 -0
  201. package/lib/core/models/{clasification.model.d.ts → RPC/clasification.model.d.ts} +1 -1
  202. package/lib/core/models/{configuracionRPC.model.d.ts → RPC/configuracionRPC.model.d.ts} +1 -1
  203. package/lib/core/models/{document.model.d.ts → RPC/document.model.d.ts} +1 -1
  204. package/lib/core/models/{proveedores.model.d.ts → RPC/proveedores.model.d.ts} +1 -1
  205. package/lib/core/models/{providerBeneficiary.model.d.ts → RPC/providerBeneficiary.model.d.ts} +6 -2
  206. package/lib/core/models/{specialty.model.d.ts → RPC/specialty.model.d.ts} +1 -1
  207. package/lib/core/models/SCB/bank.model.d.ts +61 -0
  208. package/lib/core/models/{IncomeAccount.d.ts → SCG/IncomeAccount.d.ts} +1 -1
  209. package/lib/core/models/{accountMarriage.model.d.ts → SCG/accountMarriage.model.d.ts} +1 -1
  210. package/lib/core/models/{centroCosto.model.d.ts → SCG/centroCosto.model.d.ts} +1 -1
  211. package/lib/core/models/{configuracionSCG.model.d.ts → SCG/configuracionSCG.model.d.ts} +20 -17
  212. package/lib/core/models/{cuentaInstitucional.model.d.ts → SCG/cuentaInstitucional.model.d.ts} +1 -1
  213. package/lib/core/models/{planUnicoCuenta.model.d.ts → SCG/planUnicoCuenta.model.d.ts} +1 -1
  214. package/lib/core/models/SIV/MDetaContable.model.d.ts +21 -0
  215. package/lib/core/models/SIV/MDetaEntrada.model.d.ts +33 -0
  216. package/lib/core/models/SIV/MEntradaSuministro.model.d.ts +47 -0
  217. package/lib/core/models/SNO/MAnticipoPrestaciones.model.d.ts +31 -0
  218. package/lib/core/models/SNO/MArchivoTxtCampo.model.d.ts +20 -0
  219. package/lib/core/models/SNO/MArchivosTxt.model.d.ts +14 -0
  220. package/lib/core/models/SNO/MAsignacionCargo.model.d.ts +73 -0
  221. package/lib/core/models/SNO/MAspectoEvaluacion.model.d.ts +28 -0
  222. package/lib/core/models/SNO/MAuditoria.model.d.ts +20 -0
  223. package/lib/core/models/SNO/MBeneficiario.model.d.ts +31 -0
  224. package/lib/core/models/SNO/MCargaMasiva.model.d.ts +12 -0
  225. package/lib/core/models/SNO/MCargosPersonal.model.d.ts +36 -0
  226. package/lib/core/models/SNO/MClasificacionObrero.mdel.d.ts +15 -0
  227. package/lib/core/models/SNO/MCodigoUnicoRac.model.d.ts +13 -0
  228. package/lib/core/models/SNO/MComponete.model.d.ts +13 -0
  229. package/lib/core/models/SNO/MConceptoVacaciones.model.d.ts +29 -0
  230. package/lib/core/models/SNO/MConceptosNomina.model.d.ts +72 -0
  231. package/lib/core/models/SNO/MConceptosPersonalNomina.model.d.ts +33 -0
  232. package/lib/core/models/SNO/MConcursante.model.d.ts +99 -0
  233. package/lib/core/models/SNO/MConcurso.model.d.ts +79 -0
  234. package/lib/core/models/SNO/MConfiguracionSNO.model.d.ts +131 -0
  235. package/lib/core/models/SNO/MConstanteNomina.model.d.ts +22 -0
  236. package/lib/core/models/SNO/MConstantePersonalNomina.model.d.ts +26 -0
  237. package/lib/core/models/SNO/MDedicacion.model.d.ts +12 -0
  238. package/lib/core/models/SNO/MDefinicionNomina.model.d.ts +129 -0
  239. package/lib/core/models/SNO/MDefinicionesBasicas.model.d.ts +23 -0
  240. package/lib/core/models/SNO/MDeudaAnterior.model.d.ts +13 -0
  241. package/lib/core/models/SNO/MEncargaduria.model.d.ts +46 -0
  242. package/lib/core/models/SNO/MEscalaEvaluacion.model.d.ts +14 -0
  243. package/lib/core/models/SNO/MEscalaEvaluacionDt.model.d.ts +13 -0
  244. package/lib/core/models/SNO/MEstructuraOrganizativa.model.d.ts +38 -0
  245. package/lib/core/models/SNO/MFamiliares.model.d.ts +30 -0
  246. package/lib/core/models/SNO/MFeriados.model.d.ts +16 -0
  247. package/lib/core/models/SNO/MFideicomiso.model.d.ts +135 -0
  248. package/lib/core/models/SNO/MFormacionAcademica.model.d.ts +17 -0
  249. package/lib/core/models/SNO/MGrado.model.d.ts +17 -0
  250. package/lib/core/models/SNO/MHojaTiempo.model.d.ts +38 -0
  251. package/lib/core/models/SNO/MImpuestoSobreRenta.model.d.ts +24 -0
  252. package/lib/core/models/SNO/MMetodoBanco.model.d.ts +33 -0
  253. package/lib/core/models/SNO/MNominaSimple.model.d.ts +32 -0
  254. package/lib/core/models/SNO/MPeriodoNomina.model.d.ts +25 -0
  255. package/lib/core/models/SNO/MPeriodosPlan.model.d.ts +16 -0
  256. package/lib/core/models/SNO/MPermisos.model.d.ts +23 -0
  257. package/lib/core/models/SNO/MPersonal.model.d.ts +188 -0
  258. package/lib/core/models/SNO/MPersonalJubilado.model.d.ts +16 -0
  259. package/lib/core/models/SNO/MPersonalNomina.model.d.ts +93 -0
  260. package/lib/core/models/SNO/MPlantillaConstancia.model.d.ts +11 -0
  261. package/lib/core/models/SNO/MPrestamo.model.d.ts +66 -0
  262. package/lib/core/models/SNO/MPrimaGrados.model.d.ts +14 -0
  263. package/lib/core/models/SNO/MPrimasConcepto.model.d.ts +14 -0
  264. package/lib/core/models/SNO/MRango.model.d.ts +14 -0
  265. package/lib/core/models/SNO/MReportesRRHH.d.ts +130 -0
  266. package/lib/core/models/SNO/MRequisitosConcursante.model.d.ts +15 -0
  267. package/lib/core/models/SNO/MRequisitosConcursos.model.d.ts +13 -0
  268. package/lib/core/models/SNO/MRequisitosMinimos.model.d.ts +37 -0
  269. package/lib/core/models/SNO/MSalarioHistorico.model.d.ts +24 -0
  270. package/lib/core/models/SNO/MSolicitudEmpleo.model.d.ts +41 -0
  271. package/lib/core/models/SNO/MTablaVacaciones.model.d.ts +14 -0
  272. package/lib/core/models/SNO/MTablaVacacionesPeriodo.model.d.ts +14 -0
  273. package/lib/core/models/SNO/MTabulador.model.d.ts +37 -0
  274. package/lib/core/models/SNO/MTipoEvaluacion.model.d.ts +26 -0
  275. package/lib/core/models/SNO/MTipoPersonal.model.d.ts +12 -0
  276. package/lib/core/models/SNO/MTiposEnfermedad.model.d.ts +13 -0
  277. package/lib/core/models/SNO/MTrabajoAnterior.model.d.ts +23 -0
  278. package/lib/core/models/SNO/MUbicacionFisica.model.d.ts +20 -0
  279. package/lib/core/models/SNO/MVacacionesPersonal.model.d.ts +39 -0
  280. package/lib/core/models/SNO/McargaFamiliar.model.d.ts +17 -0
  281. package/lib/core/models/{charge.model.d.ts → SOC/charge.model.d.ts} +2 -2
  282. package/lib/core/models/{clause.model.d.ts → SOC/clause.model.d.ts} +2 -2
  283. package/lib/core/models/{clauseModality.model.d.ts → SOC/clauseModality.model.d.ts} +2 -2
  284. package/lib/core/models/{configuracionSOC.model.d.ts → SOC/configuracionSOC.model.d.ts} +6 -2
  285. package/lib/core/models/{service.model.d.ts → SOC/service.model.d.ts} +5 -4
  286. package/lib/core/models/SOC/serviceCharge.model.d.ts +3 -10
  287. package/lib/core/models/{serviceType.model.d.ts → SOC/serviceType.model.d.ts} +2 -2
  288. package/lib/core/models/{comprobantePresupuestario.model.d.ts → SPG/comprobantePresupuestario.model.d.ts} +1 -1
  289. package/lib/core/models/{configurationSPG.model.d.ts → SPG/configurationSPG.model.d.ts} +2 -2
  290. package/lib/core/models/{cuentaPresupuesto.model.d.ts → SPG/cuentaPresupuesto.model.d.ts} +1 -1
  291. package/lib/core/models/{estructuraPresupuestaria.model.d.ts → SPG/estructuraPresupuestaria.model.d.ts} +1 -1
  292. package/lib/core/models/{expensiveAccount.model.d.ts → SPG/expensiveAccount.model.d.ts} +1 -1
  293. package/lib/core/models/{fuenteFinanciamiento.model.d.ts → SPG/fuenteFinanciamiento.model.d.ts} +1 -1
  294. package/lib/core/models/{incomeStructureAccount.model.d.ts → SPG/incomeStructureAccount.model.d.ts} +1 -1
  295. package/lib/core/models/{organizationType.model.d.ts → SPG/organizationType.model.d.ts} +1 -1
  296. package/lib/core/models/SSS/group.model.d.ts +1 -1
  297. package/lib/core/models/SSS/log.model.d.ts +15 -0
  298. package/lib/core/models/{securityConfiguration.model.d.ts → SSS/securityConfiguration.model.d.ts} +2 -2
  299. package/lib/core/models/{sistema.d.ts → SSS/sistema.d.ts} +1 -1
  300. package/lib/core/models/SSS/user.model.d.ts +19 -0
  301. package/lib/core/models/{userDetail.model.d.ts → SSS/userDetail.model.d.ts} +8 -7
  302. package/lib/core/models/SSS/userPermit.model.d.ts +2 -0
  303. package/lib/core/models/SSS/userPrefix.model.d.ts +11 -0
  304. package/lib/core/models/SSS/userRights.model.d.ts +8 -0
  305. package/lib/core/models/STB/deduction.model.d.ts +26 -0
  306. package/lib/core/models/{deductionType.model.d.ts → STB/deductionType.model.d.ts} +2 -2
  307. package/lib/core/models/{moneda.model.d.ts → STB/moneda.model.d.ts} +1 -1
  308. package/lib/core/models/{unidadTributaria.model.d.ts → STB/unidadTributaria.model.d.ts} +1 -1
  309. package/lib/shared/components/catalogo-estructuras/catalogo-estructuras.component.d.ts +1 -1
  310. package/lib/shared/components/table-select/table-select.component.d.ts +5 -3
  311. package/lib/sigesp.service.d.ts +290 -38
  312. package/lib/validation.service.d.ts +1 -1
  313. package/package.json +3 -3
  314. package/public-api.d.ts +125 -46
  315. package/sigesp.d.ts +26 -25
  316. package/sigesp.metadata.json +1 -1
  317. package/esm2015/lib/core/interfaces/Bank.js +0 -2
  318. package/esm2015/lib/core/models/IncomeAccount.js +0 -81
  319. package/esm2015/lib/core/models/SCB/bankAccount.model.js +0 -36
  320. package/esm2015/lib/core/models/accountMarriage.model.js +0 -11
  321. package/esm2015/lib/core/models/bank.model.js +0 -45
  322. package/esm2015/lib/core/models/centroCosto.model.js +0 -7
  323. package/esm2015/lib/core/models/charge.model.js +0 -63
  324. package/esm2015/lib/core/models/clasification.model.js +0 -14
  325. package/esm2015/lib/core/models/clause.model.js +0 -25
  326. package/esm2015/lib/core/models/clauseModality.model.js +0 -29
  327. package/esm2015/lib/core/models/comprobantePresupuestario.model.js +0 -47
  328. package/esm2015/lib/core/models/comunidad.model.js +0 -15
  329. package/esm2015/lib/core/models/configuracionRPC.model.js +0 -23
  330. package/esm2015/lib/core/models/configuracionSCG.model.js +0 -57
  331. package/esm2015/lib/core/models/configuracionSOC.model.js +0 -44
  332. package/esm2015/lib/core/models/configurationSPG.model.js +0 -55
  333. package/esm2015/lib/core/models/cuentaInstitucional.model.js +0 -26
  334. package/esm2015/lib/core/models/cuentaPresupuesto.model.js +0 -13
  335. package/esm2015/lib/core/models/deduction.model.js +0 -24
  336. package/esm2015/lib/core/models/deductionType.model.js +0 -20
  337. package/esm2015/lib/core/models/document.model.js +0 -16
  338. package/esm2015/lib/core/models/estructuraPresupuestaria.model.js +0 -132
  339. package/esm2015/lib/core/models/expensiveAccount.model.js +0 -40
  340. package/esm2015/lib/core/models/fuenteFinanciamiento.model.js +0 -10
  341. package/esm2015/lib/core/models/incomeStructureAccount.model.js +0 -81
  342. package/esm2015/lib/core/models/locations.model.js +0 -52
  343. package/esm2015/lib/core/models/moneda.model.js +0 -27
  344. package/esm2015/lib/core/models/organizationType.model.js +0 -12
  345. package/esm2015/lib/core/models/planUnicoCuenta.model.js +0 -7
  346. package/esm2015/lib/core/models/proveedores.model.js +0 -9
  347. package/esm2015/lib/core/models/providerBeneficiary.model.js +0 -135
  348. package/esm2015/lib/core/models/securityConfiguration.model.js +0 -20
  349. package/esm2015/lib/core/models/service.model.js +0 -37
  350. package/esm2015/lib/core/models/serviceType.model.js +0 -22
  351. package/esm2015/lib/core/models/sistema.js +0 -15
  352. package/esm2015/lib/core/models/specialty.model.js +0 -12
  353. package/esm2015/lib/core/models/unidadTributaria.model.js +0 -14
  354. package/esm2015/lib/core/models/user.model.js +0 -18
  355. package/esm2015/lib/core/models/userDetail.model.js +0 -66
  356. package/esm2015/lib/core/models/userPrefix.model.js +0 -11
  357. package/lib/core/interfaces/Bank.d.ts +0 -17
  358. package/lib/core/models/SCB/bankAccount.model.d.ts +0 -20
  359. package/lib/core/models/bank.model.d.ts +0 -26
  360. package/lib/core/models/deduction.model.d.ts +0 -11
  361. package/lib/core/models/locations.model.d.ts +0 -31
  362. package/lib/core/models/user.model.d.ts +0 -14
  363. package/lib/core/models/userPrefix.model.d.ts +0 -10
@@ -0,0 +1,559 @@
1
+ import { EstatusEstudio, Estudios } from '../../interfaces/Constantes';
2
+ import { MBasicModel } from '../basic-model.model';
3
+ export class MPersonal extends MBasicModel {
4
+ constructor(p = null) {
5
+ super();
6
+ this.idEmpresa = 0;
7
+ this.idPersonal = 0;
8
+ this.codigoPersonal = ''; //10
9
+ this.cedulaPersonal = ''; //10
10
+ this.rifPersonal = ''; //15
11
+ this.nombrePersonal = ''; //60
12
+ this.apellidoPersonal = '';
13
+ this.fechaNacimientoPersonal = '1900-01-01';
14
+ this.codigoPaisNacimiento = '';
15
+ this.codigoEstadoNacimiento = '';
16
+ this.nacionalidadPersonal = '';
17
+ this.estadoCivilPersonal = 'S';
18
+ this.telefonoHabitacionPersonal = ''; //15
19
+ this.telefonoMovilPersobal = ''; //15
20
+ this.correoElectronicoPersonal = ''; //60
21
+ this.direccionPersonal = ''; //255
22
+ this.codigoPais = '';
23
+ this.codigoEstado = '';
24
+ this.codigoMunicipio = '';
25
+ this.codigoParroquia = '';
26
+ this.sexoPersonal = '';
27
+ this.numeroHijo = 0;
28
+ this.conyugueTrabaja = 0;
29
+ this.cedulaBeneficiarioPersonal = '';
30
+ this.estatura = 0;
31
+ this.peso = 0;
32
+ this.tallaCamisa = '';
33
+ this.tallaPantalon = '';
34
+ this.tallaZapato = '';
35
+ this.idProfesion = 0;
36
+ this.nivelAcademicoPersonal = ''; //1
37
+ this.idComponente = 0;
38
+ this.idRango = 0;
39
+ this.fotoPersonal = '';
40
+ this.observacionPersonal = '';
41
+ this.estatusPersonal = '1';
42
+ this.idClasificacionPersonal = 0;
43
+ this.centroMedicoIVVS = ''; //155
44
+ this.turnoPersonal = ''; //1
45
+ this.horarioPersonal = ''; //10
46
+ this.estatusHCMPersonal = 0;
47
+ this.tipoSangrePersonal = ''; //10
48
+ this.numeroExpedientePersonal = ''; //20
49
+ this.cargoOriginalPersonal = ''; //100
50
+ this.tipoViviendaPersonal = 0; //ojo
51
+ this.tenenciaViviendaPersonal = ''; //40/ojo
52
+ this.montoPagadoViviendaPersonal = 0;
53
+ this.estatusCajaAhorro = 0;
54
+ this.cuentaCajaAhorroPersonal = ''; //25
55
+ this.porcentajeCajaAhorro = 0;
56
+ this.cuetaLeyPoliticaHabitacionaPersonal = ''; //25
57
+ this.cuentaFideicomiso = ''; //25
58
+ this.estatusSindicato = 0;
59
+ this.fechaIngresoAdministracionPublica = '1900-01-01';
60
+ this.anoServicioPrevioFijoAP = 0; //integer
61
+ this.anoServicioPrevioContratadoAP = 0; //integer
62
+ this.anoPersonalObrero = 0; //integer
63
+ this.anoServicioPrevioPersonal = 0; //integer
64
+ this.mesesServicioPrevioPersonal = 0; //integer
65
+ this.diasServicioPrevioPersonal = 0; //integer
66
+ this.fechaIngerosPersonal = '1900-01-01';
67
+ this.fechaReingresoPersonal = '1900-01-01';
68
+ this.fechajubilacionPersonal = '1900-01-01';
69
+ this.fechaEgresoPersonal = '1900-01-01';
70
+ this.causaEgresoPersonal = 'N'; //1
71
+ this.observacionEgresoPersonal = ''; //254
72
+ this.preaviso = '0'; //1
73
+ this.fechaLOSFAN = '1900-01-01';
74
+ this.situacion = 'N'; //1
75
+ this.fechaSituacion = '1900-01-01';
76
+ this.idCausales = 0;
77
+ this.fechaRegistroSistema = '1900-01-01';
78
+ this.codidoUsuario = '';
79
+ this.observacion = '';
80
+ this.idCentroMedico = 0;
81
+ this.idTipoPersonal = 0;
82
+ this.codigoComponente = '';
83
+ this.denominacionComponente = '';
84
+ this.codigoRango = '';
85
+ this.denominacionRango = '';
86
+ this.codigoCentroMedico = '';
87
+ this.denominacionCentroMedico = '';
88
+ this.codigoTipoPersonal = '';
89
+ this.denominacionTipoPersonal = '';
90
+ this.codigoCausaRetiro = '';
91
+ this.denominacionCausaRetiro = '';
92
+ this.idProveedorBeneficiario = 0;
93
+ this.denominacionEstatus = '';
94
+ this.conapdis = false;
95
+ this.idSindicato = 0;
96
+ this.codigoSindicato = '00000';
97
+ this.denominacionSindicato = '';
98
+ this.nombrePais = '';
99
+ this.nombreEstado = '';
100
+ this.nombreMunicipio = '';
101
+ this.nombreParroquia = '';
102
+ this.nombrePaisNacimiento = '';
103
+ this.nombreEstadoNacimiento = '';
104
+ this.codigoProfesion = '';
105
+ this.denominacionProfesion = '';
106
+ this.montoPension = 0;
107
+ if (p) {
108
+ this.idEmpresa = +p.id_empresa;
109
+ this.idPersonal = +p.id_personal;
110
+ this.codigoPersonal = p.codper;
111
+ this.cedulaPersonal = p.cedper;
112
+ this.rifPersonal = p.rifper;
113
+ this.nombrePersonal = p.nomper;
114
+ this.apellidoPersonal = p.apeper;
115
+ this.fechaNacimientoPersonal = p.fecnacper;
116
+ this.codigoPaisNacimiento = p.codpainac;
117
+ this.codigoEstadoNacimiento = p.codestnac;
118
+ this.nacionalidadPersonal = p.nacper;
119
+ this.estadoCivilPersonal = p.estcivper;
120
+ this.telefonoHabitacionPersonal = p.telhabper;
121
+ this.telefonoMovilPersobal = p.telmovper;
122
+ this.correoElectronicoPersonal = p.coreleper;
123
+ this.direccionPersonal = p.dirper;
124
+ this.codigoPais = p.codpai;
125
+ this.codigoEstado = p.codest;
126
+ this.codigoMunicipio = p.codmun;
127
+ this.codigoParroquia = p.codpar;
128
+ this.sexoPersonal = p.sexper;
129
+ this.numeroHijo = +p.numhijper;
130
+ this.conyugueTrabaja = +p.contra;
131
+ this.cedulaBeneficiarioPersonal = p.cedbenper;
132
+ this.estatura = +p.estatura;
133
+ this.peso = +p.peso;
134
+ this.tallaCamisa = p.tallcam;
135
+ this.tallaPantalon = p.tallpan;
136
+ 1;
137
+ this.tallaZapato = p.tallzap;
138
+ this.idProfesion = +p.id_profesion;
139
+ this.nivelAcademicoPersonal = p.nivacaper;
140
+ this.idComponente = +p.id_componente;
141
+ this.idRango = +p.id_rango;
142
+ this.fotoPersonal = p.fotper;
143
+ this.observacionPersonal = p.obsegrper;
144
+ this.estatusPersonal = p.estper;
145
+ this.idClasificacionPersonal = +p.id_claper;
146
+ this.turnoPersonal = p.turper;
147
+ this.horarioPersonal = p.horper;
148
+ this.estatusHCMPersonal = +p.hcmper;
149
+ this.tipoSangrePersonal = p.tipsanper;
150
+ this.numeroExpedientePersonal = p.numexpper;
151
+ this.cargoOriginalPersonal = p.caroriper;
152
+ this.tipoViviendaPersonal = +p.tipvivper;
153
+ this.tenenciaViviendaPersonal = p.tenvivper;
154
+ this.montoPagadoViviendaPersonal = +p.monpagvivper;
155
+ this.estatusCajaAhorro = +p.estcajaho;
156
+ this.cuentaCajaAhorroPersonal = p.cuecajahoper;
157
+ this.porcentajeCajaAhorro = +p.porcajaho;
158
+ this.cuetaLeyPoliticaHabitacionaPersonal = p.cuelphper;
159
+ this.cuentaFideicomiso = p.cuefidper;
160
+ 1;
161
+ this.estatusSindicato = +p.estsindicato;
162
+ this.fechaIngresoAdministracionPublica = p.fecingadmpubper;
163
+ this.anoServicioPrevioFijoAP = +p.anoservprefijo;
164
+ this.anoServicioPrevioContratadoAP = +p.anoservprecont;
165
+ this.anoPersonalObrero = +p.anoperobr;
166
+ this.anoServicioPrevioPersonal = +p.anoservpreper;
167
+ this.mesesServicioPrevioPersonal = +p.messervpreper;
168
+ this.diasServicioPrevioPersonal = +p.diaservpreper;
169
+ this.fechaIngerosPersonal = p.fecingper;
170
+ this.fechaReingresoPersonal = p.fecreingper;
171
+ this.fechajubilacionPersonal = p.fecjubper;
172
+ this.fechaEgresoPersonal = p.fecegrper;
173
+ this.causaEgresoPersonal = p.cauegrper;
174
+ this.observacionEgresoPersonal = p.obsegrper;
175
+ this.preaviso = p.preaviso;
176
+ this.fechaLOSFAN = p.feclossfan;
177
+ this.situacion = p.situacion;
178
+ this.fechaSituacion = p.fecsitu;
179
+ this.idCausales = +p.id_causales;
180
+ this.fechaRegistroSistema = p.fecregsis;
181
+ this.codidoUsuario = p.codusu;
182
+ this.observacion = p.observacion;
183
+ this.idCentroMedico = p.id_cenmedss,
184
+ this.idTipoPersonal = p.id_tipopersonal,
185
+ this.codigoComponente = p.codcom;
186
+ this.denominacionComponente = p.dencom;
187
+ this.codigoRango = p.codran;
188
+ this.denominacionRango = p.denran;
189
+ this.codigoCentroMedico = p.codcenmedss;
190
+ this.denominacionCentroMedico = p.dencenmedss;
191
+ this.codigoTipoPersonal = p.codtipper;
192
+ this.denominacionTipoPersonal = p.dentipper;
193
+ this.codigoCausaRetiro = p.dencau;
194
+ this.denominacionCausaRetiro = p.codcau;
195
+ this.idProveedorBeneficiario = parseInt(p.id_proveedorbeneficiario);
196
+ this.idSindicato = parseInt(p.id_sindicato);
197
+ this.codigoSindicato = p.codsin;
198
+ this.denominacionSindicato = p.densin;
199
+ this.estatusPersonal == '0' ? this.denominacionEstatus = 'PRE-INGRESO' :
200
+ this.estatusPersonal == '1' ? this.denominacionEstatus = 'ACTIVO' :
201
+ this.estatusPersonal == '2' ? this.denominacionEstatus = 'NINGUNO' :
202
+ this.estatusPersonal == '3' ? this.denominacionEstatus = 'EGRESADO' :
203
+ this.estatusPersonal == '4' ? this.denominacionEstatus = 'REMOCIÓN' :
204
+ this.estatusPersonal == '5' ? this.denominacionEstatus = 'RETIRO' :
205
+ this.estatusPersonal == '6' ? this.denominacionEstatus = 'DESTITUCIÓN' :
206
+ this.estatusPersonal == '7' ? this.denominacionEstatus = 'LIQUIDACIÓN' : '';
207
+ this.conapdis = p.conapdis == '1' ? true : false;
208
+ this.idSindicato = parseInt(p.id_sindicato);
209
+ this.codigoSindicato = p.codsin;
210
+ this.denominacionSindicato = p.densin;
211
+ this.nombrePais = p.despai;
212
+ this.nombreEstado = p.desest;
213
+ this.nombreMunicipio = p.desmun;
214
+ this.nombreParroquia = p.despar;
215
+ this.nombreEstadoNacimiento = p.desest_nac;
216
+ this.nombrePaisNacimiento = p.despai_nac;
217
+ this.codigoProfesion = p.codpro;
218
+ this.denominacionProfesion = p.denpro;
219
+ this.montoPension = +p.monpen;
220
+ }
221
+ else {
222
+ this.isNew = true;
223
+ }
224
+ }
225
+ dataInterface() {
226
+ return {
227
+ id_empresa: +this.idEmpresa,
228
+ id_personal: +this.idPersonal,
229
+ codper: this.codigoPersonal,
230
+ cedper: this.cedulaPersonal,
231
+ rifper: this.rifPersonal,
232
+ nomper: this.nombrePersonal,
233
+ apeper: this.apellidoPersonal,
234
+ fecnacper: this.fechaNacimientoPersonal,
235
+ codpainac: this.codigoPaisNacimiento,
236
+ codestnac: this.codigoEstadoNacimiento,
237
+ nacper: this.nacionalidadPersonal,
238
+ estcivper: this.estadoCivilPersonal,
239
+ telhabper: this.telefonoHabitacionPersonal,
240
+ telmovper: this.telefonoMovilPersobal,
241
+ coreleper: this.correoElectronicoPersonal,
242
+ dirper: this.direccionPersonal,
243
+ codpai: this.codigoPais,
244
+ codest: this.codigoEstado,
245
+ codmun: this.codigoMunicipio,
246
+ codpar: this.codigoParroquia,
247
+ sexper: this.sexoPersonal,
248
+ numhijper: +this.numeroHijo,
249
+ contra: +this.conyugueTrabaja,
250
+ cedbenper: this.cedulaBeneficiarioPersonal,
251
+ estatura: this.estatura,
252
+ peso: this.peso,
253
+ tallcam: this.tallaCamisa,
254
+ tallpan: this.tallaPantalon,
255
+ tallzap: this.tallaZapato,
256
+ id_profesion: this.idProfesion,
257
+ nivacaper: this.nivelAcademicoPersonal,
258
+ id_componente: +this.idComponente,
259
+ id_rango: +this.idRango,
260
+ fotper: this.fotoPersonal,
261
+ obsper: this.observacionPersonal,
262
+ estper: this.estatusPersonal,
263
+ id_claper: +this.idClasificacionPersonal,
264
+ turper: this.turnoPersonal,
265
+ horper: this.horarioPersonal,
266
+ hcmper: this.estatusHCMPersonal,
267
+ tipsanper: this.tipoSangrePersonal,
268
+ numexpper: this.numeroExpedientePersonal,
269
+ caroriper: this.cargoOriginalPersonal,
270
+ tipvivper: this.tipoViviendaPersonal,
271
+ tenvivper: this.tenenciaViviendaPersonal,
272
+ monpagvivper: this.montoPagadoViviendaPersonal,
273
+ estcajaho: this.estatusCajaAhorro,
274
+ cuecajahoper: this.cuentaCajaAhorroPersonal,
275
+ porcajaho: this.porcentajeCajaAhorro,
276
+ cuelphper: this.cuetaLeyPoliticaHabitacionaPersonal,
277
+ cuefidper: this.cuentaFideicomiso,
278
+ estsindicato: this.estatusSindicato,
279
+ fecingadmpubper: this.fechaIngresoAdministracionPublica,
280
+ anoservprefijo: this.anoServicioPrevioFijoAP,
281
+ anoservprecont: this.anoServicioPrevioContratadoAP,
282
+ anoperobr: this.anoPersonalObrero,
283
+ anoservpreper: this.anoServicioPrevioPersonal,
284
+ messervpreper: this.mesesServicioPrevioPersonal,
285
+ diaservpreper: this.diasServicioPrevioPersonal,
286
+ fecingper: this.fechaIngerosPersonal,
287
+ fecreingper: this.fechaReingresoPersonal,
288
+ fecjubper: this.fechajubilacionPersonal,
289
+ fecegrper: this.fechaEgresoPersonal,
290
+ cauegrper: this.causaEgresoPersonal,
291
+ obsegrper: this.observacionEgresoPersonal,
292
+ preaviso: this.preaviso,
293
+ feclossfan: this.fechaLOSFAN,
294
+ situacion: this.situacion,
295
+ fecsitu: this.fechaSituacion,
296
+ id_causales: +this.idCausales,
297
+ fecregsis: this.fechaRegistroSistema,
298
+ codusu: this.codidoUsuario,
299
+ observacion: this.observacion,
300
+ id_cenmedss: +this.idCentroMedico,
301
+ id_tipopersonal: +this.idTipoPersonal,
302
+ codcom: this.codigoComponente,
303
+ dencom: this.denominacionComponente,
304
+ codran: this.codigoRango,
305
+ denran: this.denominacionRango,
306
+ codcenmedss: this.codigoCentroMedico,
307
+ dencenmedss: this.denominacionCentroMedico,
308
+ codtipper: this.codigoTipoPersonal,
309
+ dentipper: this.denominacionTipoPersonal,
310
+ codcau: this.codigoCausaRetiro,
311
+ dencau: this.denominacionCausaRetiro,
312
+ id_proveedorbeneficiario: this.idProveedorBeneficiario.toString(),
313
+ id_sindicato: this.idSindicato.toString(),
314
+ codsin: this.codigoSindicato,
315
+ densin: this.denominacionSindicato,
316
+ conapdis: this.conapdis ? '1' : '0',
317
+ despai: this.nombrePais,
318
+ desest: this.nombreEstado,
319
+ desmun: this.nombreMunicipio,
320
+ despar: this.nombreParroquia,
321
+ desest_nac: this.nombreEstadoNacimiento,
322
+ despai_nac: this.nombrePaisNacimiento,
323
+ };
324
+ }
325
+ }
326
+ export class MCambioEstatusPersonal extends MBasicModel {
327
+ constructor(e = null) {
328
+ super();
329
+ this.idPersonal = 0;
330
+ this.codigoPersonal = '';
331
+ this.estatusActual = '2';
332
+ this.estatusNuevo = '2';
333
+ this.fechaEgreso = '';
334
+ this.causaEgreso = '';
335
+ this.preaviso = '1';
336
+ this.idCausales = 0;
337
+ this.observacion = '';
338
+ this.fechaReingreso = '1900-01-01';
339
+ if (e) {
340
+ this.idPersonal = e.idPersonal;
341
+ this.codigoPersonal = e.codigoPersonal;
342
+ this.estatusActual = e.estatusActual;
343
+ this.estatusNuevo = e.estatusNuevo;
344
+ this.fechaEgreso = e.fechaEgreso;
345
+ this.causaEgreso = e.causaEgreso;
346
+ this.preaviso = e.preaviso;
347
+ this.idCausales = e.idCausales;
348
+ this.observacion = e.observacion;
349
+ this.fechaReingreso = e.fechaReingreso;
350
+ }
351
+ }
352
+ dataInterface() {
353
+ return {
354
+ idPersonal: this.idPersonal,
355
+ codigoPersonal: this.codigoPersonal,
356
+ estatusActual: this.estatusActual,
357
+ estatusNuevo: this.estatusNuevo,
358
+ fechaEgreso: this.fechaEgreso,
359
+ causaEgreso: this.causaEgreso,
360
+ preaviso: this.preaviso,
361
+ idCausales: this.idCausales,
362
+ observacion: this.observacion,
363
+ fechaReingreso: this.fechaReingreso,
364
+ };
365
+ }
366
+ }
367
+ export class MPersonalCuentaBanco extends MBasicModel {
368
+ constructor(e) {
369
+ super();
370
+ this.idEmpresa = 0;
371
+ this.idPersonal = 0;
372
+ this.idCuentaBancoPersonal = -1;
373
+ this.codigoCuentaBancoPersonal = '';
374
+ this.denominacionCuentaBancoPersonal = '';
375
+ this.idBanco = 0;
376
+ this.idTipoCuentaBanco = 0;
377
+ this.cuentaBancoPersonal = '';
378
+ this.estatusCuentaBanco = true;
379
+ this.tipoCuentaPrincipal = false;
380
+ this.codigoBanco = '';
381
+ this.cuentaReducida = '';
382
+ this.nombreBanco = '';
383
+ this.nombreTipoCuentaBanco = '';
384
+ if (e) {
385
+ this.idEmpresa = parseInt(e.id_empresa);
386
+ this.idPersonal = parseInt(e.id_personal);
387
+ this.idCuentaBancoPersonal = parseInt(e.id_ctabanper);
388
+ this.codigoCuentaBancoPersonal = e.codctabanper;
389
+ this.denominacionCuentaBancoPersonal = e.denctabanper;
390
+ this.idBanco = parseInt(e.id_banco);
391
+ this.idTipoCuentaBanco = parseInt(e.id_tipocta);
392
+ this.cuentaBancoPersonal = e.ctabanper;
393
+ this.estatusCuentaBanco = e.estctabco == '1' ? true : false;
394
+ this.tipoCuentaPrincipal = e.tipctapri == '1' ? true : false;
395
+ this.codigoBanco = this.cuentaBancoPersonal.substring(0, 4);
396
+ this.cuentaReducida = this.cuentaBancoPersonal.slice(4);
397
+ this.nombreBanco = e.nomban;
398
+ this.nombreTipoCuentaBanco = e.nomtipcta;
399
+ }
400
+ else {
401
+ this.isNew = true;
402
+ }
403
+ }
404
+ dataInterface() {
405
+ return {
406
+ id_empresa: this.idEmpresa.toString(),
407
+ id_personal: this.idPersonal.toString(),
408
+ id_ctabanper: this.idCuentaBancoPersonal.toString(),
409
+ codctabanper: this.codigoCuentaBancoPersonal,
410
+ denctabanper: this.denominacionCuentaBancoPersonal,
411
+ id_banco: this.idBanco.toString(),
412
+ id_tipocta: this.idTipoCuentaBanco.toString(),
413
+ ctabanper: this.cuentaBancoPersonal,
414
+ estctabco: this.estatusCuentaBanco ? '1' : '0',
415
+ tipctapri: this.tipoCuentaPrincipal ? '1' : '0',
416
+ };
417
+ }
418
+ }
419
+ export class MEstudiosRealizados {
420
+ constructor(e = null) {
421
+ this.idEmpresa = 0;
422
+ this.idPersonal = 0;
423
+ this.idEstudio = 0;
424
+ this.codigoEstudioRealizado = '';
425
+ this.tipoEstudioRealizado = '1';
426
+ this.denominacionEstudioRealizado = '1';
427
+ this.institutoEstudioRealizado = '';
428
+ this.descripcionEstudioRealizado = '';
429
+ this.tituloEstudioRealizado = '';
430
+ this.calificacionEstudioRealizado = 0;
431
+ this.escalaValores = '';
432
+ this.fechaInicioEstudioRealizado = '1900-01-01';
433
+ this.fechaFinEstudioRealizado = '1900-01-01';
434
+ this.fechaGradoEstudioRealizado = '1900-01-01';
435
+ this.aprobacionEstudioRealizado = '1';
436
+ this.anoAprobacionEstudioRealizado = 0;
437
+ this.horasEstudioRealizado = 0;
438
+ this.TipoEstudio = Estudios;
439
+ this.Aprobado = EstatusEstudio;
440
+ if (e) {
441
+ this.idEmpresa = parseInt(e.id_empresa);
442
+ this.idPersonal = parseInt(e.id_personal);
443
+ this.idEstudio = parseInt(e.id_estudio);
444
+ this.codigoEstudioRealizado = e.codestrea;
445
+ this.tipoEstudioRealizado = e.tipestrea;
446
+ this.institutoEstudioRealizado = e.insestrea;
447
+ this.descripcionEstudioRealizado = e.desestrea;
448
+ this.tituloEstudioRealizado = e.titestrea;
449
+ this.calificacionEstudioRealizado = +e.calestrea;
450
+ this.escalaValores = e.escval;
451
+ this.fechaInicioEstudioRealizado = e.fecinireaest;
452
+ this.fechaFinEstudioRealizado = e.fecfinestrea;
453
+ this.fechaGradoEstudioRealizado = e.fecgraestrea;
454
+ this.aprobacionEstudioRealizado = e.aprestrea;
455
+ this.anoAprobacionEstudioRealizado = parseInt(e.anoaprestrea);
456
+ this.horasEstudioRealizado = parseInt(e.horestrea);
457
+ this.denominacionEstudioRealizado = this.TipoEstudio.find(e => e.value == this.tipoEstudioRealizado).denominacion;
458
+ this.denominacionAprobacionEstudioRealizado = this.Aprobado.find(e => e.value == this.aprobacionEstudioRealizado).denominacion;
459
+ }
460
+ }
461
+ dataInterface() {
462
+ return {
463
+ id_empresa: this.idEmpresa.toString(),
464
+ id_personal: this.idPersonal.toString(),
465
+ id_estudio: this.idEstudio.toString(),
466
+ codestrea: this.codigoEstudioRealizado,
467
+ tipestrea: this.tipoEstudioRealizado,
468
+ insestrea: this.institutoEstudioRealizado,
469
+ desestrea: this.descripcionEstudioRealizado,
470
+ titestrea: this.tituloEstudioRealizado,
471
+ calestrea: this.calificacionEstudioRealizado,
472
+ escval: this.escalaValores,
473
+ fecinireaest: this.fechaInicioEstudioRealizado,
474
+ fecfinestrea: this.fechaFinEstudioRealizado,
475
+ fecgraestrea: this.fechaGradoEstudioRealizado,
476
+ aprestrea: this.aprobacionEstudioRealizado,
477
+ anoaprestrea: this.anoAprobacionEstudioRealizado.toString(),
478
+ horestrea: this.horasEstudioRealizado.toString(),
479
+ };
480
+ }
481
+ }
482
+ export class MPrestacionesAntiguedad extends MBasicModel {
483
+ constructor(e = null) {
484
+ super();
485
+ this.idEmpresa = 0;
486
+ this.idPersonal = 0;
487
+ this.idFideicomiso = 0;
488
+ this.anoCurPeriodo = 0;
489
+ this.mesCurPeriodo = 0;
490
+ this.sueldoIntegralPersonal = 0;
491
+ this.bonoExtraPersonal = 0;
492
+ this.bonoVacacionesPersonal = 0;
493
+ this.bonoFinAnnoPersonal = 0;
494
+ this.aportePersonal = 0;
495
+ this.diaFideicomiso = 0;
496
+ this.diaAdicional = 0;
497
+ this.metodoPresatciones = '';
498
+ this.metodoDiasAdicionales = '';
499
+ this.bonoVacacionalDiasAdicionalesPersonal = 0;
500
+ this.bonoFinAnnoDiasAdicionalesPersonal = 0;
501
+ this.sueldoIntegralDiasAdicionalesPersonal = 0;
502
+ this.aportePrestacionesPersonal = 0;
503
+ this.aporteAdicionalPersonal = 0;
504
+ this.codigoUsuario = '';
505
+ this.idDtFideicomisoPeriodo = 0;
506
+ if (e) {
507
+ this.idEmpresa = parseInt(e.id_empresa);
508
+ this.idPersonal = parseInt(e.id_personal);
509
+ this.idFideicomiso = parseInt(e.id_fideicomiso);
510
+ this.anoCurPeriodo = parseInt(e.anocurper);
511
+ this.mesCurPeriodo = parseInt(e.mescurper);
512
+ this.sueldoIntegralPersonal = +e.sueintper;
513
+ this.bonoExtraPersonal = +e.bonextper;
514
+ this.bonoVacacionesPersonal = +e.bonvacper;
515
+ this.bonoFinAnnoPersonal = +e.bonfinper;
516
+ this.aportePersonal = +e.apoper;
517
+ this.diaFideicomiso = +e.diafid;
518
+ this.diaAdicional = +e.diaadi;
519
+ this.metodoPresatciones = e.metodopre;
520
+ this.metodoDiasAdicionales = e.metodoadi;
521
+ this.bonoVacacionalDiasAdicionalesPersonal = +e.bonvacadiper;
522
+ this.bonoFinAnnoDiasAdicionalesPersonal = +e.bonfinadiper;
523
+ this.sueldoIntegralDiasAdicionalesPersonal = +e.sueintadiper;
524
+ this.aportePrestacionesPersonal = +e.apopreper;
525
+ this.aporteAdicionalPersonal = +e.apoadiper;
526
+ this.codigoUsuario = e.codusu;
527
+ this.idDtFideicomisoPeriodo = parseInt(e.id_dt_fideiperiodo);
528
+ }
529
+ else {
530
+ this.isNew = true;
531
+ }
532
+ }
533
+ dataInterface() {
534
+ return {
535
+ id_empresa: this.idEmpresa.toString(),
536
+ id_personal: this.idPersonal.toString(),
537
+ id_fideicomiso: this.idFideicomiso.toString(),
538
+ anocurper: this.anoCurPeriodo.toString(),
539
+ mescurper: this.mesCurPeriodo.toString(),
540
+ sueintper: this.sueldoIntegralPersonal,
541
+ bonextper: this.bonoExtraPersonal,
542
+ bonvacper: this.bonoVacacionesPersonal,
543
+ bonfinper: this.bonoFinAnnoPersonal,
544
+ apoper: this.aportePersonal,
545
+ diafid: this.diaFideicomiso,
546
+ diaadi: this.diaAdicional,
547
+ metodopre: this.metodoPresatciones,
548
+ metodoadi: this.metodoDiasAdicionales,
549
+ bonvacadiper: this.bonoVacacionalDiasAdicionalesPersonal,
550
+ bonfinadiper: this.bonoFinAnnoDiasAdicionalesPersonal,
551
+ sueintadiper: this.sueldoIntegralDiasAdicionalesPersonal,
552
+ apopreper: this.aportePrestacionesPersonal,
553
+ apoadiper: this.aporteAdicionalPersonal,
554
+ codusu: this.codigoUsuario,
555
+ id_dt_fideiperiodo: this.idDtFideicomisoPeriodo.toString(),
556
+ };
557
+ }
558
+ }
559
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTVBlcnNvbmFsLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IkM6L0FwcFNlcnYvd3d3L3NpZ2VzcHYzKGdpdCkvc2lnZXNwLWVzdGFibGUvc2lnZXNwX2NvcmUvcHJvamVjdHMvc2lnZXNwL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb3JlL21vZGVscy9TTk8vTVBlcnNvbmFsLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFdkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRW5ELE1BQU0sT0FBTyxTQUFVLFNBQVEsV0FBVztJQXVHdEMsWUFBYSxJQUFZLElBQUk7UUFDekIsS0FBSyxFQUFFLENBQUE7UUF2R0osY0FBUyxHQUFTLENBQUMsQ0FBQztRQUNwQixlQUFVLEdBQVMsQ0FBQyxDQUFDO1FBQ3JCLG1CQUFjLEdBQVMsRUFBRSxDQUFDLENBQUEsS0FBSztRQUMvQixtQkFBYyxHQUFVLEVBQUUsQ0FBQyxDQUFDLEtBQUs7UUFDakMsZ0JBQVcsR0FBUyxFQUFFLENBQUMsQ0FBQSxLQUFLO1FBQzVCLG1CQUFjLEdBQVMsRUFBRSxDQUFDLENBQUEsS0FBSztRQUMvQixxQkFBZ0IsR0FBUyxFQUFFLENBQUM7UUFDNUIsNEJBQXVCLEdBQVMsWUFBWSxDQUFDO1FBQzdDLHlCQUFvQixHQUFTLEVBQUUsQ0FBQztRQUNoQywyQkFBc0IsR0FBUyxFQUFFLENBQUM7UUFDbEMseUJBQW9CLEdBQVEsRUFBRSxDQUFDO1FBQy9CLHdCQUFtQixHQUFRLEdBQUcsQ0FBQztRQUMvQiwrQkFBMEIsR0FBUSxFQUFFLENBQUMsQ0FBQyxJQUFJO1FBQzFDLDBCQUFxQixHQUFRLEVBQUUsQ0FBQyxDQUFRLElBQUk7UUFDNUMsOEJBQXlCLEdBQVEsRUFBRSxDQUFDLENBQUMsSUFBSTtRQUN6QyxzQkFBaUIsR0FBUSxFQUFFLENBQUMsQ0FBQyxLQUFLO1FB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Q0wsQ0FBQztDQUdKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXN0YXR1c0VzdHVkaW8sIEVzdHVkaW9zIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9Db25zdGFudGVzJztcclxuaW1wb3J0IHsgSUNhbWJpb0VzdGF0dXNQZXJzb25hbCwgSUVzdHVkaW9SZWFsaXphZG8sIElQZXJzb25hbCwgSVBlcnNvbmFsQ3VlbnRhc0JhbmNhcmlhcywgSVByZXN0YWNpb25lc0FudGlndWVkYWQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL1JlY3Vyc29zSHVtYW5vcyc7XHJcbmltcG9ydCB7IE1CYXNpY01vZGVsIH0gZnJvbSAnLi4vYmFzaWMtbW9kZWwubW9kZWwnO1xyXG5cclxuZXhwb3J0IGNsYXNzIE1QZXJzb25hbCBleHRlbmRzIE1CYXNpY01vZGVsIHtcclxuICAgIHB1YmxpYyBpZEVtcHJlc2E6IG51bWJlcj0wOyBcclxuICAgIHB1YmxpYyBpZFBlcnNvbmFsOiBudW1iZXI9MDsgXHJcbiAgICBwdWJsaWMgY29kaWdvUGVyc29uYWw6IHN0cmluZz0nJzsvLzEwIFxyXG4gICAgcHVibGljIGNlZHVsYVBlcnNvbmFsOiBzdHJpbmc9ICcnOyAvLzEwIFxyXG4gICAgcHVibGljIHJpZlBlcnNvbmFsOiBzdHJpbmc9Jyc7Ly8xNSBcclxuICAgIHB1YmxpYyBub21icmVQZXJzb25hbDogc3RyaW5nPScnOy8vNjAgXHJcbiAgICBwdWJsaWMgYXBlbGxpZG9QZXJzb25hbDogc3RyaW5nPScnOyBcclxuICAgIHB1YmxpYyBmZWNoYU5hY2ltaWVudG9QZXJzb25hbDogc3RyaW5nPScxOTAwLTAxLTAxJzsgXHJcbiAgICBwdWJsaWMgY29kaWdvUGFpc05hY2ltaWVudG86c3RyaW5nID0nJzsgICAgIFxyXG4gICAgcHVibGljIGNvZGlnb0VzdGFkb05hY2ltaWVudG86c3RyaW5nID0nJzsgIFxyXG4gICAgcHVibGljIG5hY2lvbmFsaWRhZFBlcnNvbmFsOnN0cmluZz0nJzsgICBcclxuICAgIHB1YmxpYyBlc3RhZG9DaXZpbFBlcnNvbmFsOnN0cmluZz0nUyc7XHJcbiAgICBwdWJsaWMgdGVsZWZvbm9IYWJpdGFjaW9uUGVyc29uYWw6c3RyaW5nPScnOyAvLzE1XHJcbiAgICBwdWJsaWMgdGVsZWZvbm9Nb3ZpbFBlcnNvYmFsOnN0cmluZz0nJzsgICAgICAgIC8vMTVcclxuICAgIHB1YmxpYyBjb3JyZW9FbGVjdHJvbmljb1BlcnNvbmFsOnN0cmluZz0nJzsgLy82MFxyXG4gICAgcHVibGljIGRpcmVjY2lvblBlcnNvbmFsOnN0cmluZz0nJzsgLy8yNTVcclxuICAgIHB1YmxpYyBjb2RpZ29QYWlzOnN0cmluZz0nJzsgXHJcbiAgICBwdWJsaWMgY29kaWdvRXN0YWRvOnN0cmluZz0nJzsgXHJcbiAgICBwdWJsaWMgY29kaWdvTXVuaWNpcGlvOnN0cmluZz0nJzsgXHJcbiAgICBwdWJsaWMgY29kaWdvUGFycm9xdWlhOnN0cmluZz0nJztcclxuICAgIHB1YmxpYyBzZXhvUGVyc29uYWw6c3RyaW5nPScnOyBcclxuICAgIHB1YmxpYyBudW1lcm9IaWpvOm51bWJlcj0wOyBcclxuICAgIHB1YmxpYyBjb255dWd1ZVRyYWJhamE6bnVtYmVyPTA7IFxyXG4gICAgcHVibGljIGNlZHVsYUJlbmVmaWNpYXJpb1BlcnNvbmFsOnN0cmluZz0nJzsgXHJcbiAgICBwdWJsaWMgZXN0YXR1cmE6IG51bWJlcj0wOyBcclxuICAgIHB1YmxpYyBwZXNvOiBudW1iZXI9MDsgXHJcbiAgICBwdWJsaWMgdGFsbGFDYW1pc2E6c3RyaW5nPScnOyBcclxuICAgIHB1YmxpYyB0YWxsYVBhbnRhbG9uOnN0cmluZz0nJzsgXHJcbiAgICBwdWJsaWMgdGFsbGFaYXBhdG86c3RyaW5nPScnOyBcclxuICAgIHB1YmxpYyBpZFByb2Zlc2lvbjpudW1iZXI9MDsgXHJcbiAgICBwdWJsaWMgbml2ZWxBY2FkZW1pY29QZXJzb25hbDpzdHJpbmc9Jyc7IC8vMVxyXG4gICAgcHVibGljIGlkQ29tcG9uZW50ZTogbnVtYmVyPTA7IFxyXG4gICAgcHVibGljIGlkUmFuZ286IG51bWJlcj0wOyBcclxuICAgIHB1YmxpYyBmb3RvUGVyc29uYWw6c3RyaW5nPScnOyBcclxuICAgIHB1YmxpYyBvYnNlcnZhY2lvblBlcnNvbmFsOnN0cmluZz0nJzsgXHJcbiAgICBwdWJsaWMgZXN0YXR1c1BlcnNvbmFsOnN0cmluZz0nMSc7IFxyXG4gICAgcHVibGljIGlkQ2xhc2lmaWNhY2lvblBlcnNvbmFsOiBudW1iZXI9MDsgXHJcbiAgICBwdWJsaWMgY2VudHJvTWVkaWNvSVZWUzpzdHJpbmc9Jyc7IC8vMTU1XHJcbiAgICBwdWJsaWMgdHVybm9QZXJzb25hbDpzdHJpbmc9Jyc7IC8vMVxyXG4gICAgcHVibGljIGhvcmFyaW9QZXJzb25hbDpzdHJpbmc9Jyc7IC8vMTBcclxuICAgIHB1YmxpYyBlc3RhdHVzSENNUGVyc29uYWw6bnVtYmVyPTA7IFxyXG4gICAgcHVibGljIHRpcG9TYW5ncmVQZXJzb25hbDpzdHJpbmc9Jyc7Ly8xMFxyXG4gICAgcHVibGljIG51bWVyb0V4cGVkaWVudGVQZXJzb25hbDpzdHJpbmc9Jyc7IC8vMjBcclxuICAgIHB1YmxpYyBjYXJnb09yaWdpbmFsUGVyc29uYWw6c3RyaW5nPScnOyAvLzEwMFxyXG4gICAgcHVibGljIHRpcG9WaXZpZW5kYVBlcnNvbmFsOm51bWJlcj0wOyAvL29qb1xyXG4gICAgcHVibGljIHRlbmVuY2lhVml2aWVuZGFQZXJzb25hbDpzdHJpbmc9Jyc7IC8vNDAvb2pvXHJcbiAgICBwdWJsaWMgbW9udG9QYWdhZG9WaXZpZW5kYVBlcnNvbmFsOm51bWJlciA9MDsgXHJcbiAgICBwdWJsaWMgZXN0YXR1c0NhamFBaG9ycm86bnVtYmVyPTA7IFxyXG4gICAgcHVibGljIGN1ZW50YUNhamFBaG9ycm9QZXJzb25hbDpzdHJpbmc9Jyc7IC8vMjVcclxuICAgIHB1YmxpYyBwb3JjZW50YWplQ2FqYUFob3JybzpudW1iZXI9MDsgXHJcbiAgICBwdWJsaWMgY3VldGFMZXlQb2xpdGljYUhhYml0YWNpb25hUGVyc29uYWw6c3RyaW5nPScnOyAvLzI1XHJcbiAgICBwdWJsaWMgY3VlbnRhRmlkZWljb21pc286c3RyaW5nPScnOyAvLzI1XHJcbiAgICBwdWJsaWMgZXN0YXR1c1NpbmRpY2F0bzogbnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgZmVjaGFJbmdyZXNvQWRtaW5pc3RyYWNpb25QdWJsaWNhOnN0cmluZz0nMTkwMC0wMS0wMSc7IFxyXG4gICAgcHVibGljIGFub1NlcnZpY2lvUHJldmlvRmlqb0FQOm51bWJlcj0wOyAvL2ludGVnZXJcclxuICAgIHB1YmxpYyBhbm9TZXJ2aWNpb1ByZXZpb0NvbnRyYXRhZG9BUDpudW1iZXI9MDsgLy9pbnRlZ2VyXHJcbiAgICBwdWJsaWMgYW5vUGVyc29uYWxPYnJlcm86bnVtYmVyPTA7IC8vaW50ZWdlclxyXG4gICAgcHVibGljIGFub1NlcnZpY2lvUHJldmlvUGVyc29uYWw6bnVtYmVyPTA7IC8vaW50ZWdlclxyXG4gICAgcHVibGljIG1lc2VzU2VydmljaW9QcmV2aW9QZXJzb25hbDpudW1iZXI9MDsgLy9pbnRlZ2VyXHJcbiAgICBwdWJsaWMgZGlhc1NlcnZpY2lvUHJldmlvUGVyc29uYWw6bnVtYmVyPTA7IC8vaW50ZWdlclxyXG4gICAgcHVibGljIGZlY2hhSW5nZXJvc1BlcnNvbmFsOnN0cmluZz0nMTkwMC0wMS0wMSc7IFxyXG4gICAgcHVibGljIGZlY2hhUmVpbmdyZXNvUGVyc29uYWw6c3RyaW5nPScxOTAwLTAxLTAxJzsgXHJcbiAgICBwdWJsaWMgZmVjaGFqdWJpbGFjaW9uUGVyc29uYWw6c3RyaW5nPScxOTAwLTAxLTAxJzsgXHJcbiAgICBwdWJsaWMgZmVjaGFFZ3Jlc29QZXJzb25hbDpzdHJpbmc9JzE5MDAtMDEtMDEnOyBcclxuICAgIHB1YmxpYyBjYXVzYUVncmVzb1BlcnNvbmFsOnN0cmluZz0nTic7IC8vMVxyXG4gICAgcHVibGljIG9ic2VydmFjaW9uRWdyZXNvUGVyc29uYWw6c3RyaW5nPScnOyAvLzI1NFxyXG4gICAgcHVibGljIHByZWF2aXNvOnN0cmluZz0nMCc7IC8vMVxyXG4gICAgcHVibGljIGZlY2hhTE9TRkFOOnN0cmluZz0nMTkwMC0wMS0wMSc7IFxyXG4gICAgcHVibGljIHNpdHVhY2lvbjpzdHJpbmc9J04nOyAvLzFcclxuICAgIHB1YmxpYyBmZWNoYVNpdHVhY2lvbjpzdHJpbmc9JzE5MDAtMDEtMDEnOyBcclxuICAgIHB1YmxpYyBpZENhdXNhbGVzOiBudW1iZXIgPTA7IFxyXG4gICAgcHVibGljIGZlY2hhUmVnaXN0cm9TaXN0ZW1hOnN0cmluZz0nMTkwMC0wMS0wMSc7IFxyXG4gICAgcHVibGljIGNvZGlkb1VzdWFyaW86c3RyaW5nPScnOyBcclxuICAgIHB1YmxpYyBvYnNlcnZhY2lvbjogc3RyaW5nID0nJztcclxuICAgIHB1YmxpYyBpZENlbnRyb01lZGljbzogbnVtYmVyPTA7IFxyXG4gICAgcHVibGljIGlkVGlwb1BlcnNvbmFsOm51bWJlcj0wOyAgICAgICBcclxuICAgIHB1YmxpYyBjb2RpZ29Db21wb25lbnRlOiBzdHJpbmcgPScnO1xyXG4gICAgcHVibGljIGRlbm9taW5hY2lvbkNvbXBvbmVudGU6IHN0cmluZyA9Jyc7XHJcbiAgICBwdWJsaWMgY29kaWdvUmFuZ286IHN0cmluZyA9Jyc7XHJcbiAgICBwdWJsaWMgZGVub21pbmFjaW9uUmFuZ286IHN0cmluZyA9Jyc7IFxyXG4gICAgcHVibGljIGNvZGlnb0NlbnRyb01lZGljbzogc3RyaW5nID0nJztcclxuICAgIHB1YmxpYyBkZW5vbWluYWNpb25DZW50cm9NZWRpY286IHN0cmluZyA9Jyc7XHJcbiAgICBwdWJsaWMgY29kaWdvVGlwb1BlcnNvbmFsOiBzdHJpbmcgPScnO1xyXG4gICAgcHVibGljIGRlbm9taW5hY2lvblRpcG9QZXJzb25hbDogc3RyaW5nID0nJztcclxuICAgIHB1YmxpYyBjb2RpZ29DYXVzYVJldGlybzpzdHJpbmc9Jyc7ICBcclxuICAgIHB1YmxpYyBkZW5vbWluYWNpb25DYXVzYVJldGlybzogc3RyaW5nPScnO1xyXG4gICAgcHVibGljIGlkUHJvdmVlZG9yQmVuZWZpY2lhcmlvOm51bWJlcj0wOyAgIFxyXG4gICAgcHVibGljIGRlbm9taW5hY2lvbkVzdGF0dXM6c3RyaW5nPScnO1xyXG4gICAgcHVibGljIGNvbmFwZGlzOmJvb2xlYW49ZmFsc2U7XHJcbiAgICBwdWJsaWMgaWRTaW5kaWNhdG86bnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgY29kaWdvU2luZGljYXRvOnN0cmluZz0nMDAwMDAnO1xyXG4gICAgcHVibGljIGRlbm9taW5hY2lvblNpbmRpY2F0bzpzdHJpbmc9Jyc7ICBcclxuICAgIHB1YmxpYyBub21icmVQYWlzOnN0cmluZz0nJztcclxuICAgIHB1YmxpYyBub21icmVFc3RhZG86c3RyaW5nPScnO1xyXG4gICAgcHVibGljIG5vbWJyZU11bmljaXBpbzpzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgbm9tYnJlUGFycm9xdWlhOnN0cmluZz0nJztcclxuICAgIHB1YmxpYyBub21icmVQYWlzTmFjaW1pZW50bzpzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgbm9tYnJlRXN0YWRvTmFjaW1pZW50bzpzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgY29kaWdvUHJvZmVzaW9uOiBzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgZGVub21pbmFjaW9uUHJvZmVzaW9uOiBzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgbW9udG9QZW5zaW9uOm51bWJlcj0wO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yIChwOklQZXJzb25hbD1udWxsKXtcclxuICAgICAgICBzdXBlcigpXHJcbiAgICAgICAgaWYgKHApe1xyXG4gICAgICAgICAgICB0aGlzLmlkRW1wcmVzYT0gK3AuaWRfZW1wcmVzYTtcclxuICAgICAgICAgICAgdGhpcy5pZFBlcnNvbmFsPSArcC5pZF9wZXJzb25hbDtcclxuICAgICAgICAgICAgdGhpcy5jb2RpZ29QZXJzb25hbD0gcC5jb2RwZXI7XHJcbiAgICAgICAgICAgIHRoaXMuY2VkdWxhUGVyc29uYWw9IHAuY2VkcGVyO1xyXG4gICAgICAgICAgICB0aGlzLnJpZlBlcnNvbmFsPSBwLnJpZnBlcjtcclxuICAgICAgICAgICAgdGhpcy5ub21icmVQZXJzb25hbD0gcC5ub21wZXI7IFxyXG4gICAgICAgICAgICB0aGlzLmFwZWxsaWRvUGVyc29uYWw9IHAuYXBlcGVyO1xyXG4gICAgICAgICAgICB0aGlzLmZlY2hhTmFjaW1pZW50b1BlcnNvbmFsPSBwLmZlY25hY3BlcjtcclxuICAgICAgICAgICAgdGhpcy5jb2RpZ29QYWlzTmFjaW1pZW50bz0gcC5jb2RwYWluYWM7XHJcbiAgICAgICAgICAgIHRoaXMuY29kaWdvRXN0YWRvTmFjaW1pZW50bz0gcC5jb2Rlc3RuYWM7ICBcclxuICAgICAgICAgICAgdGhpcy5uYWNpb25hbGlkYWRQZXJzb25hbD0gcC5uYWNwZXI7XHJcbiAgICAgICAgICAgIHRoaXMuZXN0YWRvQ2l2aWxQZXJzb25hbD0gcC5lc3RjaXZwZXI7XHJcbiAgICAgICAgICAgIHRoaXMudGVsZWZvbm9IYWJpdGFjaW9uUGVyc29uYWw9IHAudGVsaGFicGVyO1xyXG4gICAgICAgICAgICB0aGlzLnRlbGVmb25vTW92aWxQZXJzb2JhbD0gcC50ZWxtb3ZwZXI7XHJcbiAgICAgICAgICAgIHRoaXMuY29ycmVvRWxlY3Ryb25pY29QZXJzb25hbD0gcC5jb3JlbGVwZXI7XHJcbiAgICAgICAgICAgIHRoaXMuZGlyZWNjaW9uUGVyc29uYWw9IHAuZGlycGVyO1xyXG4gICAgICAgICAgICB0aGlzLmNvZGlnb1BhaXM9IHAuY29kcGFpO1xyXG4gICAgICAgICAgICB0aGlzLmNvZGlnb0VzdGFkbz0gcC5jb2Rlc3Q7XHJcbiAgICAgICAgICAgIHRoaXMuY29kaWdvTXVuaWNpcGlvPSBwLmNvZG11bjtcclxuICAgICAgICAgICAgdGhpcy5jb2RpZ29QYXJyb3F1aWE9IHAuY29kcGFyO1xyXG4gICAgICAgICAgICB0aGlzLnNleG9QZXJzb25hbD0gcC5zZXhwZXI7XHJcbiAgICAgICAgICAgIHRoaXMubnVtZXJvSGlqbz0rcC5udW1oaWpwZXI7IFxyXG4gICAgICAgICAgICB0aGlzLmNvbnl1Z3VlVHJhYmFqYT0gK3AuY29udHJhOyBcclxuICAgICAgICAgICAgdGhpcy5jZWR1bGFCZW5lZmljaWFyaW9QZXJzb25hbD0gcC5jZWRiZW5wZXI7IFxyXG4gICAgICAgICAgICB0aGlzLmVzdGF0dXJhPStwLmVzdGF0dXJhO1xyXG4gICAgICAgICAgICB0aGlzLnBlc289K3AucGVzbztcclxuICAgICAgICAgICAgdGhpcy50YWxsYUNhbWlzYT0gcC50YWxsY2FtXHJcbiAgICAgICAgICAgIHRoaXMudGFsbGFQYW50YWxvbj1wLnRhbGxwYW47MSBcclxuICAgICAgICAgICAgdGhpcy50YWxsYVphcGF0bz0gcC50YWxsemFwO1xyXG4gICAgICAgICAgICB0aGlzLmlkUHJvZmVzaW9uPSArcC5pZF9wcm9mZXNpb247IFxyXG4gICAgICAgICAgICB0aGlzLm5pdmVsQWNhZGVtaWNvUGVyc29uYWw9IHAubml2YWNhcGVyO1xyXG4gICAgICAgICAgICB0aGlzLmlkQ29tcG9uZW50ZT0rcC5pZF9jb21wb25lbnRlO1xyXG4gICAgICAgICAgICB0aGlzLmlkUmFuZ289K3AuaWRfcmFuZ287XHJcbiAgICAgICAgICAgIHRoaXMuZm90b1BlcnNvbmFsPSBwLmZvdHBlcjtcclxuICAgICAgICAgICAgdGhpcy5vYnNlcnZhY2lvblBlcnNvbmFsPSBwLm9ic2VncnBlcjtcclxuICAgICAgICAgICAgdGhpcy5lc3RhdHVzUGVyc29uYWw9IHAuZXN0cGVyO1xyXG4gICAgICAgICAgICB0aGlzLmlkQ2xhc2lmaWNhY2lvblBlcnNvbmFsPStwLmlkX2NsYXBlcjtcclxuICAgICAgICAgICAgdGhpcy50dXJub1BlcnNvbmFsPSBwLnR1cnBlcjtcclxuICAgICAgICAgICAgdGhpcy5ob3JhcmlvUGVyc29uYWw9IHAuaG9ycGVyO1xyXG4gICAgICAgICAgICB0aGlzLmVzdGF0dXNIQ01QZXJzb25hbD0gK3AuaGNtcGVyOyBcclxuICAgICAgICAgICAgdGhpcy50aXBvU2FuZ3JlUGVyc29uYWw9IHAudGlwc2FucGVyO1xyXG4gICAgICAgICAgICB0aGlzLm51bWVyb0V4cGVkaWVudGVQZXJzb25hbD0gcC5udW1leHBwZXI7XHJcbiAgICAgICAgICAgIHRoaXMuY2FyZ29PcmlnaW5hbFBlcnNvbmFsPSBwLmNhcm9yaXBlcjtcclxuICAgICAgICAgICAgdGhpcy50aXBvVml2aWVuZGFQZXJzb25hbD0gK3AudGlwdml2cGVyOyBcclxuICAgICAgICAgICAgdGhpcy50ZW5lbmNpYVZpdmllbmRhUGVyc29uYWw9IHAudGVudml2cGVyO1xyXG4gICAgICAgICAgICB0aGlzLm1vbnRvUGFnYWRvVml2aWVuZGFQZXJzb25hbD0gK3AubW9ucGFndml2cGVyOyBcclxuICAgICAgICAgICAgdGhpcy5lc3RhdHVzQ2FqYUFob3Jybz0gK3AuZXN0Y2FqYWhvOyBcclxuICAgICAgICAgICAgdGhpcy5jdWVudGFDYWphQWhvcnJvUGVyc29uYWw9IHAuY3VlY2FqYWhvcGVyO1xyXG4gICAgICAgICAgICB0aGlzLnBvcmNlbnRhamVDYWphQWhvcnJvPSArcC5wb3JjYWphaG87IFxyXG4gICAgICAgICAgICB0aGlzLmN1ZXRhTGV5UG9saXRpY2FIYWJpdGFjaW9uYVBlcnNvbmFsPSBwLmN1ZWxwaHBlcjtcclxuICAgICAgICAgICAgdGhpcy5jdWVudGFGaWRlaWNvbWlzbz0gcC5jdWVmaWRwZXI7MVxyXG4gICAgICAgICAgICB0aGlzLmVzdGF0dXNTaW5kaWNhdG89K3AuZXN0c2luZGljYXRvO1xyXG4gICAgICAgICAgICB0aGlzLmZlY2hhSW5ncmVzb0FkbWluaXN0cmFjaW9uUHVibGljYT0gcC5mZWNpbmdhZG1wdWJwZXI7XHJcbiAgICAgICAgICAgIHRoaXMuYW5vU2VydmljaW9QcmV2aW9GaWpvQVA9ICtwLmFub3NlcnZwcmVmaWpvO1xyXG4gICAgICAgICAgICB0aGlzLmFub1NlcnZpY2lvUHJldmlvQ29udHJhdGFkb0FQPSArcC5hbm9zZXJ2cHJlY29udDsgXHJcbiAgICAgICAgICAgIHRoaXMuYW5vUGVyc29uYWxPYnJlcm89ICtwLmFub3Blcm9icjtcclxuICAgICAgICAgICAgdGhpcy5hbm9TZXJ2aWNpb1ByZXZpb1BlcnNvbmFsPSArcC5hbm9zZXJ2cHJlcGVyOyBcclxuICAgICAgICAgICAgdGhpcy5tZXNlc1NlcnZpY2lvUHJldmlvUGVyc29uYWw9ICtwLm1lc3NlcnZwcmVwZXI7IFxyXG4gICAgICAgICAgICB0aGlzLmRpYXNTZXJ2aWNpb1ByZXZpb1BlcnNvbmFsPSArcC5kaWFzZXJ2cHJlcGVyOyBcclxuICAgICAgICAgICAgdGhpcy5mZWNoYUluZ2Vyb3NQZXJzb25hbD0gcC5mZWNpbmdwZXI7IFxyXG4gICAgICAgICAgICB0aGlzLmZlY2hhUmVpbmdyZXNvUGVyc29uYWw9IHAuZmVjcmVpbmdwZXI7IFxyXG4gICAgICAgICAgICB0aGlzLmZlY2hhanViaWxhY2lvblBlcnNvbmFsPSBwLmZlY2p1YnBlcjsgXHJcbiAgICAgICAgICAgIHRoaXMuZmVjaGFFZ3Jlc29QZXJzb25hbD0gcC5mZWNlZ3JwZXI7IFxyXG4gICAgICAgICAgICB0aGlzLmNhdXNhRWdyZXNvUGVyc29uYWw9IHAuY2F1ZWdycGVyO1xyXG4gICAgICAgICAgICB0aGlzLm9ic2VydmFjaW9uRWdyZXNvUGVyc29uYWw9IHAub2JzZWdycGVyO1xyXG4gICAgICAgICAgICB0aGlzLnByZWF2aXNvPSBwLnByZWF2aXNvO1xyXG4gICAgICAgICAgICB0aGlzLmZlY2hhTE9TRkFOPSBwLmZlY2xvc3NmYW47XHJcbiAgICAgICAgICAgIHRoaXMuc2l0dWFjaW9uPSBwLnNpdHVhY2lvbjtcclxuICAgICAgICAgICAgdGhpcy5mZWNoYVNpdHVhY2lvbj0gcC5mZWNzaXR1O1xyXG4gICAgICAgICAgICB0aGlzLmlkQ2F1c2FsZXM9ICtwLmlkX2NhdXNhbGVzO1xyXG4gICAgICAgICAgICB0aGlzLmZlY2hhUmVnaXN0cm9TaXN0ZW1hPSBwLmZlY3JlZ3NpcztcclxuICAgICAgICAgICAgdGhpcy5jb2RpZG9Vc3VhcmlvPSBwLmNvZHVzdTtcclxuICAgICAgICAgICAgdGhpcy5vYnNlcnZhY2lvbiA9cC5vYnNlcnZhY2lvbjtcclxuICAgICAgICAgICAgdGhpcy5pZENlbnRyb01lZGljbz0gcC5pZF9jZW5tZWRzcywgXHJcbiAgICAgICAgICAgIHRoaXMuaWRUaXBvUGVyc29uYWw9IHAuaWRfdGlwb3BlcnNvbmFsLFxyXG4gICAgICAgICAgICB0aGlzLmNvZGlnb0NvbXBvbmVudGU9cC5jb2Rjb207XHJcbiAgICAgICAgICAgIHRoaXMuZGVub21pbmFjaW9uQ29tcG9uZW50ZT1wLmRlbmNvbTtcclxuICAgICAgICAgICAgdGhpcy5jb2RpZ29SYW5nbz1wLmNvZHJhbjtcclxuICAgICAgICAgICAgdGhpcy5kZW5vbWluYWNpb25SYW5nbz1wLmRlbnJhbjsgXHJcbiAgICAgICAgICAgIHRoaXMuY29kaWdvQ2VudHJvTWVkaWNvPXAuY29kY2VubWVkc3M7XHJcbiAgICAgICAgICAgIHRoaXMuZGVub21pbmFjaW9uQ2VudHJvTWVkaWNvPXAuZGVuY2VubWVkc3M7XHJcbiAgICAgICAgICAgIHRoaXMuY29kaWdvVGlwb1BlcnNvbmFsPXAuY29kdGlwcGVyO1xyXG4gICAgICAgICAgICB0aGlzLmRlbm9taW5hY2lvblRpcG9QZXJzb25hbD1wLmRlbnRpcHBlcjtcclxuICAgICAgICAgICAgdGhpcy5jb2RpZ29DYXVzYVJldGlybz1wLmRlbmNhdTtcclxuICAgICAgICAgICAgdGhpcy5kZW5vbWluYWNpb25DYXVzYVJldGlybz1wLmNvZGNhdTtcclxuICAgICAgICAgICAgdGhpcy5pZFByb3ZlZWRvckJlbmVmaWNpYXJpbz1wYXJzZUludChwLmlkX3Byb3ZlZWRvcmJlbmVmaWNpYXJpbyk7XHJcbiAgICAgICAgICAgIHRoaXMuaWRTaW5kaWNhdG89cGFyc2VJbnQocC5pZF9zaW5kaWNhdG8pO1xyXG4gICAgICAgICAgICB0aGlzLmNvZGlnb1NpbmRpY2F0bz1wLmNvZHNpbjtcclxuICAgICAgICAgICAgdGhpcy5kZW5vbWluYWNpb25TaW5kaWNhdG89cC5kZW5zaW47XHJcbiAgICAgICAgICAgIHRoaXMuZXN0YXR1c1BlcnNvbmFsPT0nMCc/IHRoaXMuZGVub21pbmFjaW9uRXN0YXR1cz0nUFJFLUlOR1JFU08nIDpcclxuICAgICAgICAgICAgdGhpcy5lc3RhdHVzUGVyc29uYWw9PScxJz8gdGhpcy5kZW5vbWluYWNpb25Fc3RhdHVzPSdBQ1RJVk8nOlxyXG4gICAgICAgICAgICB0aGlzLmVzdGF0dXNQZXJzb25hbD09JzInPyB0aGlzLmRlbm9taW5hY2lvbkVzdGF0dXM9J05JTkdVTk8nOlxyXG4gICAgICAgICAgICB0aGlzLmVzdGF0dXNQZXJzb25hbD09JzMnPyB0aGlzLmRlbm9taW5hY2lvbkVzdGF0dXM9J0VHUkVTQURPJzpcclxuICAgICAgICAgICAgdGhpcy5lc3RhdHVzUGVyc29uYWw9PSc0Jz8gdGhpcy5kZW5vbWluYWNpb25Fc3RhdHVzPSdSRU1PQ0nDk04nOlxyXG4gICAgICAgICAgICB0aGlzLmVzdGF0dXNQZXJzb25hbD09JzUnPyB0aGlzLmRlbm9taW5hY2lvbkVzdGF0dXM9J1JFVElSTyc6XHJcbiAgICAgICAgICAgIHRoaXMuZXN0YXR1c1BlcnNvbmFsPT0nNic/IHRoaXMuZGVub21pbmFjaW9uRXN0YXR1cz0nREVTVElUVUNJw5NOJzpcclxuICAgICAgICAgICAgdGhpcy5lc3RhdHVzUGVyc29uYWw9PSc3Jz8gdGhpcy5kZW5vbWluYWNpb25Fc3RhdHVzPSdMSVFVSURBQ0nDk04nOicnO1xyXG4gICAgICAgICAgICB0aGlzLmNvbmFwZGlzPXAuY29uYXBkaXM9PScxJz8gdHJ1ZTpmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5pZFNpbmRpY2F0bz0gcGFyc2VJbnQocC5pZF9zaW5kaWNhdG8pO1xyXG4gICAgICAgICAgICB0aGlzLmNvZGlnb1NpbmRpY2F0bz1wLmNvZHNpbjtcclxuICAgICAgICAgICAgdGhpcy5kZW5vbWluYWNpb25TaW5kaWNhdG89cC5kZW5zaW47XHJcbiAgICAgICAgICAgIHRoaXMubm9tYnJlUGFpcz1wLmRlc3BhaTtcclxuICAgICAgICAgICAgdGhpcy5ub21icmVFc3RhZG89cC5kZXNlc3Q7XHJcbiAgICAgICAgICAgIHRoaXMubm9tYnJlTXVuaWNpcGlvPXAuZGVzbXVuO1xyXG4gICAgICAgICAgICB0aGlzLm5vbWJyZVBhcnJvcXVpYT1wLmRlc3BhcjsgXHJcbiAgICAgICAgICAgIHRoaXMubm9tYnJlRXN0YWRvTmFjaW1pZW50bz1wLmRlc2VzdF9uYWM7XHJcbiAgICAgICAgICAgIHRoaXMubm9tYnJlUGFpc05hY2ltaWVudG89cC5kZXNwYWlfbmFjO1xyXG4gICAgICAgICAgICB0aGlzLmNvZGlnb1Byb2Zlc2lvbj1wLmNvZHBybztcclxuICAgICAgICAgICAgdGhpcy5kZW5vbWluYWNpb25Qcm9mZXNpb249cC5kZW5wcm87XHJcbiAgICAgICAgICAgIHRoaXMubW9udG9QZW5zaW9uPStwLm1vbnBlbjtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmlzTmV3PXRydWU7ICAgIFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZGF0YUludGVyZmFjZSgpOklQZXJzb25hbCB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaWRfZW1wcmVzYcKgOit0aGlzLmlkRW1wcmVzYSxcclxuICAgICAgICAgICAgaWRfcGVyc29uYWzCoDordGhpcy5pZFBlcnNvbmFsLFxyXG4gICAgICAgICAgICBjb2RwZXLCoDp0aGlzLmNvZGlnb1BlcnNvbmFsLFxyXG4gICAgICAgICAgICBjZWRwZXLCoDp0aGlzLmNlZHVsYVBlcnNvbmFsLFxyXG4gICAgICAgICAgICByaWZwZXLCoDp0aGlzLnJpZlBlcnNvbmFsLFxyXG4gICAgICAgICAgICBub21wZXLCoDp0aGlzLm5vbWJyZVBlcnNvbmFsLFxyXG4gICAgICAgICAgICBhcGVwZXLCoDp0aGlzLmFwZWxsaWRvUGVyc29uYWwsXHJcbiAgICAgICAgICAgIGZlY25hY3BlcsKgOnRoaXMuZmVjaGFOYWNpbWllbnRvUGVyc29uYWwsXHJcbiAgICAgICAgICAgIGNvZHBhaW5hY8KgOnRoaXMuY29kaWdvUGFpc05hY2ltaWVudG8sXHJcbiAgICAgICAgICAgIGNvZGVzdG5hY8KgOnRoaXMuY29kaWdvRXN0YWRvTmFjaW1pZW50byxcclxuICAgICAgICAgICAgbmFjcGVyOnRoaXMubmFjaW9uYWxpZGFkUGVyc29uYWwsXHJcbiAgICAgICAgICAgIGVzdGNpdnBlcjp0aGlzLmVzdGFkb0NpdmlsUGVyc29uYWwsXHJcbiAgICAgICAgICAgIHRlbGhhYnBlcsKgOnRoaXMudGVsZWZvbm9IYWJpdGFjaW9uUGVyc29uYWwsXHJcbiAgICAgICAgICAgIHRlbG1vdnBlcsKgOnRoaXMudGVsZWZvbm9Nb3ZpbFBlcnNvYmFsLFxyXG4gICAgICAgICAgICBjb3JlbGVwZXLCoDp0aGlzLmNvcnJlb0VsZWN0cm9uaWNvUGVyc29uYWwsXHJcbiAgICAgICAgICAgIGRpcnBlcsKgOnRoaXMuZGlyZWNjaW9uUGVyc29uYWwsXHJcbiAgICAgICAgICAgIGNvZHBhacKgOnRoaXMuY29kaWdvUGFpcyxcclxuICAgICAgICAgICAgY29kZXN0wqA6dGhpcy5jb2RpZ29Fc3RhZG8sXHJcbiAgICAgICAgICAgIGNvZG11bsKgOnRoaXMuY29kaWdvTXVuaWNpcGlvLFxyXG4gICAgICAgICAgICBjb2RwYXI6dGhpcy5jb2RpZ29QYXJyb3F1aWEsXHJcbiAgICAgICAgICAgIHNleHBlcsKgOnRoaXMuc2V4b1BlcnNvbmFsLFxyXG4gICAgICAgICAgICBudW1oaWpwZXLCoDordGhpcy5udW1lcm9IaWpvLFxyXG4gICAgICAgICAgICBjb250cmE6K3RoaXMuY29ueXVndWVUcmFiYWphLFxyXG4gICAgICAgICAgICBjZWRiZW5wZXI6dGhpcy5jZWR1bGFCZW5lZmljaWFyaW9QZXJzb25hbCxcclxuICAgICAgICAgICAgZXN0YXR1cmE6dGhpcy5lc3RhdHVyYSxcclxuICAgICAgICAgICAgcGVzbzp0aGlzLnBlc28sXHJcbiAgICAgICAgICAgIHRhbGxjYW06dGhpcy50YWxsYUNhbWlzYSxcclxuICAgICAgICAgICAgdGFsbHBhbjp0aGlzLnRhbGxhUGFudGFsb24sXHJcbiAgICAgICAgICAgIHRhbGx6YXA6dGhpcy50YWxsYVphcGF0byxcclxuICAgICAgICAgICAgaWRfcHJvZmVzaW9uOnRoaXMuaWRQcm9mZXNpb24sXHJcbiAgICAgICAgICAgIG5pdmFjYXBlcjp0aGlzLm5pdmVsQWNhZGVtaWNvUGVyc29uYWwsXHJcbiAgICAgICAgICAgIGlkX2NvbXBvbmVudGU6K3RoaXMuaWRDb21wb25lbnRlLFxyXG4gICAgICAgICAgICBpZF9yYW5nbzordGhpcy5pZFJhbmdvLFxyXG4gICAgICAgICAgICBmb3RwZXI6dGhpcy5mb3RvUGVyc29uYWwsXHJcbiAgICAgICAgICAgIG9ic3Blcjp0aGlzLm9ic2VydmFjaW9uUGVyc29uYWwsXHJcbiAgICAgICAgICAgIGVzdHBlcjp0aGlzLmVzdGF0dXNQZXJzb25hbCwgICBcclxuICAgICAgICAgICAgaWRfY2xhcGVyOit0aGlzLmlkQ2xhc2lmaWNhY2lvblBlcnNvbmFsLCAgICAgICAgXHJcbiAgICAgICAgICAgIHR1cnBlcjp0aGlzLnR1cm5vUGVyc29uYWwsXHJcbiAgICAgICAgICAgIGhvcnBlcjp0aGlzLmhvcmFyaW9QZXJzb25hbCxcclxuICAgICAgICAgICAgaGNtcGVyOnRoaXMuZXN0YXR1c0hDTVBlcnNvbmFsLFxyXG4gICAgICAgICAgICB0aXBzYW5wZXI6dGhpcy50aXBvU2FuZ3JlUGVyc29uYWwsXHJcbiAgICAgICAgICAgIG51bWV4cHBlcjp0aGlzLm51bWVyb0V4cGVkaWVudGVQZXJzb25hbCxcclxuICAgICAgICAgICAgY2Fyb3JpcGVyOnRoaXMuY2FyZ29PcmlnaW5hbFBlcnNvbmFsLFxyXG4gICAgICAgICAgICB0aXB2aXZwZXI6dGhpcy50aXBvVml2aWVuZGFQZXJzb25hbCxcclxuICAgICAgICAgICAgdGVudml2cGVyOnRoaXMudGVuZW5jaWFWaXZpZW5kYVBlcnNvbmFsLFxyXG4gICAgICAgICAgICBtb25wYWd2aXZwZXI6dGhpcy5tb250b1BhZ2Fkb1ZpdmllbmRhUGVyc29uYWwsXHJcbiAgICAgICAgICAgIGVzdGNhamFobzp0aGlzLmVzdGF0dXNDYWphQWhvcnJvLFxyXG4gICAgICAgICAgICBjdWVjYWphaG9wZXI6dGhpcy5jdWVudGFDYWphQWhvcnJvUGVyc29uYWwsXHJcbiAgICAgICAgICAgIHBvcmNhamFobzp0aGlzLnBvcmNlbnRhamVDYWphQWhvcnJvLFxyXG4gICAgICAgICAgICBjdWVscGhwZXI6dGhpcy5jdWV0YUxleVBvbGl0aWNhSGFiaXRhY2lvbmFQZXJzb25hbCxcclxuICAgICAgICAgICAgY3VlZmlkcGVyOnRoaXMuY3VlbnRhRmlkZWljb21pc28sXHJcbiAgICAgICAgICAgIGVzdHNpbmRpY2F0bzp0aGlzLmVzdGF0dXNTaW5kaWNhdG8sXHJcbiAgICAgICAgICAgIGZlY2luZ2FkbXB1YnBlcjp0aGlzLmZlY2hhSW5ncmVzb0FkbWluaXN0cmFjaW9uUHVibGljYSxcclxuICAgICAgICAgICAgYW5vc2VydnByZWZpam86dGhpcy5hbm9TZXJ2aWNpb1ByZXZpb0Zpam9BUCxcclxuICAgICAgICAgICAgYW5vc2VydnByZWNvbnQ6dGhpcy5hbm9TZXJ2aWNpb1ByZXZpb0NvbnRyYXRhZG9BUCxcclxuICAgICAgICAgICAgYW5vcGVyb2JyOnRoaXMuYW5vUGVyc29uYWxPYnJlcm8sXHJcbiAgICAgICAgICAgIGFub3NlcnZwcmVwZXI6dGhpcy5hbm9TZXJ2aWNpb1ByZXZpb1BlcnNvbmFsLFxyXG4gICAgICAgICAgICBtZXNzZXJ2cHJlcGVyOnRoaXMubWVzZXNTZXJ2aWNpb1ByZXZpb1BlcnNvbmFsLFxyXG4gICAgICAgICAgICBkaWFzZXJ2cHJlcGVyOnRoaXMuZGlhc1NlcnZpY2lvUHJldmlvUGVyc29uYWwsXHJcbiAgICAgICAgICAgIGZlY2luZ3Blcjp0aGlzLmZlY2hhSW5nZXJvc1BlcnNvbmFswqAsXHJcbiAgICAgICAgICAgIGZlY3JlaW5ncGVyOnRoaXMuZmVjaGFSZWluZ3Jlc29QZXJzb25hbCxcclxuICAgICAgICAgICAgZmVjanVicGVyOnRoaXMuZmVjaGFqdWJpbGFjaW9uUGVyc29uYWzCoCxcclxuICAgICAgICAgICAgZmVjZWdycGVyOnRoaXMuZmVjaGFFZ3Jlc29QZXJzb25hbMKgLFxyXG4gICAgICAgICAgICBjYXVlZ3JwZXI6dGhpcy5jYXVzYUVncmVzb1BlcnNvbmFsLFxyXG4gICAgICAgICAgICBvYnNlZ3JwZXI6dGhpcy5vYnNlcnZhY2lvbkVncmVzb1BlcnNvbmFsLFxyXG4gICAgICAgICAgICBwcmVhdmlzbzp0aGlzLnByZWF2aXNvLFxyXG4gICAgICAgICAgICBmZWNsb3NzZmFuOnRoaXMuZmVjaGFMT1NGQU7CoCxcclxuICAgICAgICAgICAgc2l0dWFjaW9uOnRoaXMuc2l0dWFjaW9uLFxyXG4gICAgICAgICAgICBmZWNzaXR1OnRoaXMuZmVjaGFTaXR1YWNpb27CoCxcclxuICAgICAgICAgICAgaWRfY2F1c2FsZXM6wqArdGhpcy5pZENhdXNhbGVzLFxyXG4gICAgICAgICAgICBmZWNyZWdzaXM6dGhpcy5mZWNoYVJlZ2lzdHJvU2lzdGVtYcKgLFxyXG4gICAgICAgICAgICBjb2R1c3U6dGhpcy5jb2RpZG9Vc3VhcmlvLFxyXG4gICAgICAgICAgICBvYnNlcnZhY2lvbjp0aGlzLm9ic2VydmFjaW9uLCBcclxuICAgICAgICAgICAgaWRfY2VubWVkc3M6K3RoaXMuaWRDZW50cm9NZWRpY28sIFxyXG4gICAgICAgICAgICBpZF90aXBvcGVyc29uYWw6K3RoaXMuaWRUaXBvUGVyc29uYWwsICBcclxuICAgICAgICAgICAgY29kY29tOnRoaXMuY29kaWdvQ29tcG9uZW50ZSxcclxuICAgICAgICAgICAgZGVuY29tOnRoaXMuZGVub21pbmFjaW9uQ29tcG9uZW50ZSxcclxuICAgICAgICAgICAgY29kcmFuOnRoaXMuY29kaWdvUmFuZ28sXHJcbiAgICAgICAgICAgIGRlbnJhbjp0aGlzLmRlbm9taW5hY2lvblJhbmdvLFxyXG4gICAgICAgICAgICBjb2RjZW5tZWRzczp0aGlzLmNvZGlnb0NlbnRyb01lZGljbyxcclxuICAgICAgICAgICAgZGVuY2VubWVkc3M6dGhpcy5kZW5vbWluYWNpb25DZW50cm9NZWRpY28sXHJcbiAgICAgICAgICAgIGNvZHRpcHBlcjp0aGlzLmNvZGlnb1RpcG9QZXJzb25hbCxcclxuICAgICAgICAgICAgZGVudGlwcGVyOnRoaXMuZGVub21pbmFjaW9uVGlwb1BlcnNvbmFsLFxyXG4gICAgICAgICAgICBjb2RjYXU6dGhpcy5jb2RpZ29DYXVzYVJldGlybyxcclxuICAgICAgICAgICAgZGVuY2F1OnRoaXMuZGVub21pbmFjaW9uQ2F1c2FSZXRpcm8sICAgXHJcbiAgICAgICAgICAgIGlkX3Byb3ZlZWRvcmJlbmVmaWNpYXJpbzp0aGlzLmlkUHJvdmVlZG9yQmVuZWZpY2lhcmlvLnRvU3RyaW5nKCksICAgICBcclxuICAgICAgICAgICAgaWRfc2luZGljYXRvOnRoaXMuaWRTaW5kaWNhdG8udG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgY29kc2luOnRoaXMuY29kaWdvU2luZGljYXRvLFxyXG4gICAgICAgICAgICBkZW5zaW46dGhpcy5kZW5vbWluYWNpb25TaW5kaWNhdG8sIFxyXG4gICAgICAgICAgICBjb25hcGRpczp0aGlzLmNvbmFwZGlzPyAnMSc6JzAnLFxyXG4gICAgICAgICAgICBkZXNwYWk6dGhpcy5ub21icmVQYWlzLFxyXG4gICAgICAgICAgICBkZXNlc3Q6dGhpcy5ub21icmVFc3RhZG8sXHJcbiAgICAgICAgICAgIGRlc211bjp0aGlzLm5vbWJyZU11bmljaXBpbyxcclxuICAgICAgICAgICAgZGVzcGFyOnRoaXMubm9tYnJlUGFycm9xdWlhLCAgXHJcbiAgICAgICAgICAgIGRlc2VzdF9uYWM6dGhpcy5ub21icmVFc3RhZG9OYWNpbWllbnRvLFxyXG4gICAgICAgICAgICBkZXNwYWlfbmFjOnRoaXMubm9tYnJlUGFpc05hY2ltaWVudG8sXHJcbiAgICAgICAgfVxyXG4gICAgfSAgIFxyXG5cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIE1DYW1iaW9Fc3RhdHVzUGVyc29uYWwgZXh0ZW5kcyBNQmFzaWNNb2RlbHtcclxuICAgIHB1YmxpYyBpZFBlcnNvbmFsOiBudW1iZXI9MDtcclxuICAgIHB1YmxpYyBjb2RpZ29QZXJzb25hbDogc3RyaW5nPScnO1xyXG4gICAgcHVibGljIGVzdGF0dXNBY3R1YWw6IHN0cmluZz0nMic7XHJcbiAgICBwdWJsaWMgZXN0YXR1c051ZXZvOiBzdHJpbmc9JzInO1xyXG4gICAgcHVibGljIGZlY2hhRWdyZXNvOiBzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgY2F1c2FFZ3Jlc286IHN0cmluZz0nJztcclxuICAgIHB1YmxpYyBwcmVhdmlzbzogc3RyaW5nPScxJztcclxuICAgIHB1YmxpYyBpZENhdXNhbGVzOiBudW1iZXI9MDtcclxuICAgIHB1YmxpYyBvYnNlcnZhY2lvbjogc3RyaW5nPScnOyAgXHJcbiAgICBwdWJsaWMgZmVjaGFSZWluZ3Jlc286c3RyaW5nPScxOTAwLTAxLTAxJztcclxuXHJcbiAgICBjb25zdHJ1Y3RvciAoZTpJQ2FtYmlvRXN0YXR1c1BlcnNvbmFsPW51bGwpIHsgIFxyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgaWYoZSl7XHJcbiAgICAgICAgICAgIHRoaXMuaWRQZXJzb25hbCA9IGUuaWRQZXJzb25hbDtcclxuICAgICAgICAgICAgdGhpcy5jb2RpZ29QZXJzb25hbCA9IGUuY29kaWdvUGVyc29uYWw7XHJcbiAgICAgICAgICAgIHRoaXMuZXN0YXR1c0FjdHVhbCA9IGUuZXN0YXR1c0FjdHVhbDtcclxuICAgICAgICAgICAgdGhpcy5lc3RhdHVzTnVldm8gPSBlLmVzdGF0dXNOdWV2bztcclxuICAgICAgICAgICAgdGhpcy5mZWNoYUVncmVzbyA9IGUuZmVjaGFFZ3Jlc287XHJcbiAgICAgICAgICAgIHRoaXMuY2F1c2FFZ3Jlc28gPSBlLmNhdXNhRWdyZXNvO1xyXG4gICAgICAgICAgICB0aGlzLnByZWF2aXNvID0gZS5wcmVhdmlzbztcclxuICAgICAgICAgICAgdGhpcy5pZENhdXNhbGVzPSBlLmlkQ2F1c2FsZXM7XHJcbiAgICAgICAgICAgIHRoaXMub2JzZXJ2YWNpb24gPSBlLm9ic2VydmFjaW9uOyAgXHJcbiAgICAgICAgICAgIHRoaXMuZmVjaGFSZWluZ3Jlc289IGUuZmVjaGFSZWluZ3Jlc287XHJcbiBcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBwdWJsaWMgZGF0YUludGVyZmFjZSgpOklDYW1iaW9Fc3RhdHVzUGVyc29uYWx7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaWRQZXJzb25hbDogdGhpcy5pZFBlcnNvbmFsLFxyXG4gICAgICAgICAgICBjb2RpZ29QZXJzb25hbDogdGhpcy5jb2RpZ29QZXJzb25hbCxcclxuICAgICAgICAgICAgZXN0YXR1c0FjdHVhbDogdGhpcy5lc3RhdHVzQWN0dWFsLFxyXG4gICAgICAgICAgICBlc3RhdHVzTnVldm86IHRoaXMuZXN0YXR1c051ZXZvLFxyXG4gICAgICAgICAgICBmZWNoYUVncmVzbzogdGhpcy5mZWNoYUVncmVzbyxcclxuICAgICAgICAgICAgY2F1c2FFZ3Jlc286IHRoaXMuY2F1c2FFZ3Jlc28sXHJcbiAgICAgICAgICAgIHByZWF2aXNvOiB0aGlzLnByZWF2aXNvLFxyXG4gICAgICAgICAgICBpZENhdXNhbGVzOiB0aGlzLmlkQ2F1c2FsZXMsXHJcbiAgICAgICAgICAgIG9ic2VydmFjaW9uOiB0aGlzLm9ic2VydmFjaW9uLCBcclxuICAgICAgICAgICAgZmVjaGFSZWluZ3Jlc286dGhpcy5mZWNoYVJlaW5ncmVzbyxcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIE1QZXJzb25hbEN1ZW50YUJhbmNvIGV4dGVuZHMgTUJhc2ljTW9kZWwge1xyXG4gICAgcHVibGljIGlkRW1wcmVzYTpudW1iZXI9MDtcclxuICAgIHB1YmxpYyBpZFBlcnNvbmFsOm51bWJlcj0wO1xyXG4gICAgcHVibGljIGlkQ3VlbnRhQmFuY29QZXJzb25hbDpudW1iZXI9LTE7XHJcbiAgICBwdWJsaWMgY29kaWdvQ3VlbnRhQmFuY29QZXJzb25hbDpzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgZGVub21pbmFjaW9uQ3VlbnRhQmFuY29QZXJzb25hbDpzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgaWRCYW5jbzpudW1iZXI9MDsgICBcclxuICAgIHB1YmxpYyBpZFRpcG9DdWVudGFCYW5jbzpudW1iZXI9MDtcclxuICAgIHB1YmxpYyBjdWVudGFCYW5jb1BlcnNvbmFsOnN0cmluZz0nJztcclxuICAgIHB1YmxpYyBlc3RhdHVzQ3VlbnRhQmFuY286Ym9vbGVhbj10cnVlO1xyXG4gICAgcHVibGljIHRpcG9DdWVudGFQcmluY2lwYWw6Ym9vbGVhbj1mYWxzZTtcclxuICAgIHB1YmxpYyBjb2RpZ29CYW5jbzpzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgY3VlbnRhUmVkdWNpZGE6c3RyaW5nPScnO1xyXG4gICAgcHVibGljIG5vbWJyZUJhbmNvOnN0cmluZz0nJztcclxuICAgIHB1YmxpYyBub21icmVUaXBvQ3VlbnRhQmFuY286c3RyaW5nPScnO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGU/OklQZXJzb25hbEN1ZW50YXNCYW5jYXJpYXMpe1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgaWYgKGUpe1xyXG4gICAgICAgICAgICB0aGlzLmlkRW1wcmVzYT1wYXJzZUludChlLmlkX2VtcHJlc2EpO1xyXG4gICAgICAgICAgICB0aGlzLmlkUGVyc29uYWw9cGFyc2VJbnQoZS5pZF9wZXJzb25hbCk7XHJcbiAgICAgICAgICAgIHRoaXMuaWRDdWVudGFCYW5jb1BlcnNvbmFsPXBhcnNlSW50KGUuaWRfY3RhYmFucGVyKTtcclxuICAgICAgICAgICAgdGhpcy5jb2RpZ29DdWVudGFCYW5jb1BlcnNvbmFsPWUuY29kY3RhYmFucGVyO1xyXG4gICAgICAgICAgICB0aGlzLmRlbm9taW5hY2lvbkN1ZW50YUJhbmNvUGVyc29uYWw9ZS5kZW5jdGFiYW5wZXI7XHJcbiAgICAgICAgICAgIHRoaXMuaWRCYW5jbz1wYXJzZUludChlLmlkX2JhbmNvKTtcclxuICAgICAgICAgICAgdGhpcy5pZFRpcG9DdWVudGFCYW5jbz1wYXJzZUludChlLmlkX3RpcG9jdGEpO1xyXG4gICAgICAgICAgICB0aGlzLmN1ZW50YUJhbmNvUGVyc29uYWw9ZS5jdGFiYW5wZXI7XHJcbiAgICAgICAgICAgIHRoaXMuZXN0YXR1c0N1ZW50YUJhbmNvPWUuZXN0Y3RhYmNvPT0nMSc/IHRydWU6ZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMudGlwb0N1ZW50YVByaW5jaXBhbD1lLnRpcGN0YXByaT09JzEnPyB0cnVlOmZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmNvZGlnb0JhbmNvPXRoaXMuY3VlbnRhQmFuY29QZXJzb25hbC5zdWJzdHJpbmcoMCw0KTtcclxuICAgICAgICAgICAgdGhpcy5jdWVudGFSZWR1Y2lkYT10aGlzLmN1ZW50YUJhbmNvUGVyc29uYWwuc2xpY2UoNClcclxuICAgICAgICAgICAgdGhpcy5ub21icmVCYW5jbz1lLm5vbWJhbjtcclxuICAgICAgICAgICAgdGhpcy5ub21icmVUaXBvQ3VlbnRhQmFuY289ZS5ub210aXBjdGE7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5pc05ldz10cnVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBkYXRhSW50ZXJmYWNlKCk6SVBlcnNvbmFsQ3VlbnRhc0JhbmNhcmlhc3tcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBpZF9lbXByZXNhOnRoaXMuaWRFbXByZXNhLnRvU3RyaW5nKCksIFxyXG4gICAgICAgICAgICBpZF9wZXJzb25hbDp0aGlzLmlkUGVyc29uYWwudG9TdHJpbmcoKSwgXHJcbiAgICAgICAgICAgIGlkX2N0YWJhbnBlcjp0aGlzLmlkQ3VlbnRhQmFuY29QZXJzb25hbC50b1N0cmluZygpLCBcclxuICAgICAgICAgICAgY29kY3RhYmFucGVyOnRoaXMuY29kaWdvQ3VlbnRhQmFuY29QZXJzb25hbCwgXHJcbiAgICAgICAgICAgIGRlbmN0YWJhbnBlcjp0aGlzLmRlbm9taW5hY2lvbkN1ZW50YUJhbmNvUGVyc29uYWwsIFxyXG4gICAgICAgICAgICBpZF9iYW5jbzp0aGlzLmlkQmFuY28udG9TdHJpbmcoKSwgXHJcbiAgICAgICAgICAgIGlkX3RpcG9jdGE6dGhpcy5pZFRpcG9DdWVudGFCYW5jby50b1N0cmluZygpLCBcclxuICAgICAgICAgICAgY3RhYmFucGVyOnRoaXMuY3VlbnRhQmFuY29QZXJzb25hbCwgXHJcbiAgICAgICAgICAgIGVzdGN0YWJjbzp0aGlzLmVzdGF0dXNDdWVudGFCYW5jbz8gJzEnOicwJywgXHJcbiAgICAgICAgICAgIHRpcGN0YXByaTp0aGlzLnRpcG9DdWVudGFQcmluY2lwYWw/ICcxJzonMCcsXHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTUVzdHVkaW9zUmVhbGl6YWRvcyB7XHJcbiAgICBwdWJsaWMgaWRFbXByZXNhOm51bWJlcj0wO1xyXG4gICAgcHVibGljIGlkUGVyc29uYWw6bnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgaWRFc3R1ZGlvOm51bWJlcj0wO1xyXG4gICAgcHVibGljIGNvZGlnb0VzdHVkaW9SZWFsaXphZG86c3RyaW5nPScnO1xyXG4gICAgcHVibGljIHRpcG9Fc3R1ZGlvUmVhbGl6YWRvOnN0cmluZz0nMSc7XHJcbiAgICBwdWJsaWMgZGVub21pbmFjaW9uRXN0dWRpb1JlYWxpemFkbzpzdHJpbmc9JzEnO1xyXG4gICAgcHVibGljIGluc3RpdHV0b0VzdHVkaW9SZWFsaXphZG86c3RyaW5nPScnO1xyXG4gICAgcHVibGljIGRlc2NyaXBjaW9uRXN0dWRpb1JlYWxpemFkbzpzdHJpbmc9Jyc7IFxyXG4gICAgcHVibGljIHRpdHVsb0VzdHVkaW9SZWFsaXphZG86c3RyaW5nPScnOyBcclxuICAgIHB1YmxpYyBjYWxpZmljYWNpb25Fc3R1ZGlvUmVhbGl6YWRvOm51bWJlcj0wO1xyXG4gICAgcHVibGljIGVzY2FsYVZhbG9yZXM6c3RyaW5nPScnOyBcclxuICAgIHB1YmxpYyBmZWNoYUluaWNpb0VzdHVkaW9SZWFsaXphZG86c3RyaW5nPScxOTAwLTAxLTAxJzsgXHJcbiAgICBwdWJsaWMgZmVjaGFGaW5Fc3R1ZGlvUmVhbGl6YWRvOnN0cmluZz0nMTkwMC0wMS0wMSc7IFxyXG4gICAgcHVibGljIGZlY2hhR3JhZG9Fc3R1ZGlvUmVhbGl6YWRvOnN0cmluZz0nMTkwMC0wMS0wMSc7IFxyXG4gICAgcHVibGljIGFwcm9iYWNpb25Fc3R1ZGlvUmVhbGl6YWRvOnN0cmluZz0nMSc7IFxyXG4gICAgcHVibGljIGRlbm9taW5hY2lvbkFwcm9iYWNpb25Fc3R1ZGlvUmVhbGl6YWRvOnN0cmluZzsgXHJcbiAgICBwdWJsaWMgYW5vQXByb2JhY2lvbkVzdHVkaW9SZWFsaXphZG86bnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgaG9yYXNFc3R1ZGlvUmVhbGl6YWRvOm51bWJlcj0wO1xyXG4gICAgcHVibGljIFRpcG9Fc3R1ZGlvPUVzdHVkaW9zXHJcbiAgICBwdWJsaWMgQXByb2JhZG89RXN0YXR1c0VzdHVkaW9cclxuXHJcbiAgICBjb25zdHJ1Y3RvciAoZTpJRXN0dWRpb1JlYWxpemFkbz0gbnVsbCl7XHJcbiAgICAgICAgaWYoZSl7XHJcbiAgICAgICAgICAgIHRoaXMuaWRFbXByZXNhPSBwYXJzZUludChlLmlkX2VtcHJlc2EpO1xyXG4gICAgICAgICAgICB0aGlzLmlkUGVyc29uYWw9IHBhcnNlSW50KGUuaWRfcGVyc29uYWwpO1xyXG4gICAgICAgICAgICB0aGlzLmlkRXN0dWRpbz0gcGFyc2VJbnQoZS5pZF9lc3R1ZGlvKTtcclxuICAgICAgICAgICAgdGhpcy5jb2RpZ29Fc3R1ZGlvUmVhbGl6YWRvPSBlLmNvZGVzdHJlYTtcclxuICAgICAgICAgICAgdGhpcy50aXBvRXN0dWRpb1JlYWxpemFkbz0gZS50aXBlc3RyZWE7XHJcbiAgICAgICAgICAgIHRoaXMuaW5zdGl0dXRvRXN0dWRpb1JlYWxpemFkbz0gZS5pbnNlc3RyZWE7XHJcbiAgICAgICAgICAgIHRoaXMuZGVzY3JpcGNpb25Fc3R1ZGlvUmVhbGl6YWRvPSBlLmRlc2VzdHJlYTsgXHJcbiAgICAgICAgICAgIHRoaXMudGl0dWxvRXN0dWRpb1JlYWxpemFkbz0gZS50aXRlc3RyZWE7IFxyXG4gICAgICAgICAgICB0aGlzLmNhbGlmaWNhY2lvbkVzdHVkaW9SZWFsaXphZG89ICtlLmNhbGVzdHJlYTtcclxuICAgICAgICAgICAgdGhpcy5lc2NhbGFWYWxvcmVzPSBlLmVzY3ZhbDsgXHJcbiAgICAgICAgICAgIHRoaXMuZmVjaGFJbmljaW9Fc3R1ZGlvUmVhbGl6YWRvPSBlLmZlY2luaXJlYWVzdDtcclxuICAgICAgICAgICAgdGhpcy5mZWNoYUZpbkVzdHVkaW9SZWFsaXphZG89IGUuZmVjZmluZXN0cmVhO1xyXG4gICAgICAgICAgICB0aGlzLmZlY2hhR3JhZG9Fc3R1ZGlvUmVhbGl6YWRvPSBlLmZlY2dyYWVzdHJlYTtcclxuICAgICAgICAgICAgdGhpcy5hcHJvYmFjaW9uRXN0dWRpb1JlYWxpemFkbz0gZS5hcHJlc3RyZWE7IFxyXG4gICAgICAgICAgICB0aGlzLmFub0Fwcm9iYWNpb25Fc3R1ZGlvUmVhbGl6YWRvPSBwYXJzZUludChlLmFub2FwcmVzdHJlYSk7XHJcbiAgICAgICAgICAgIHRoaXMuaG9yYXNFc3R1ZGlvUmVhbGl6YWRvPSBwYXJzZUludChlLmhvcmVzdHJlYSk7ICBcclxuICAgICAgICAgICAgdGhpcy5kZW5vbWluYWNpb25Fc3R1ZGlvUmVhbGl6YWRvPXRoaXMuVGlwb0VzdHVkaW8uZmluZChlPT5lLnZhbHVlPT10aGlzLnRpcG9Fc3R1ZGlvUmVhbGl6YWRvKS5kZW5vbWluYWNpb24gICAgICBcclxuICAgICAgICAgICAgdGhpcy5kZW5vbWluYWNpb25BcHJvYmFjaW9uRXN0dWRpb1JlYWxpemFkbz10aGlzLkFwcm9iYWRvLmZpbmQoZT0+ZS52YWx1ZT09dGhpcy5hcHJvYmFjaW9uRXN0dWRpb1JlYWxpemFkbykuZGVub21pbmFjaW9uICAgICAgXHJcbiAgICAgICAgfSAgICAgICAgXHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGRhdGFJbnRlcmZhY2UoKTpJRXN0dWRpb1JlYWxpemFkb3tcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBpZF9lbXByZXNhOnRoaXMuaWRFbXByZXNhLnRvU3RyaW5nKCksIFxyXG4gICAgICAgICAgICBpZF9wZXJzb25hbDp0aGlzLmlkUGVyc29uYWwudG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgaWRfZXN0dWRpbzp0aGlzLmlkRXN0dWRpby50b1N0cmluZygpLFxyXG4gICAgICAgICAgICBjb2Rlc3RyZWE6dGhpcy5jb2RpZ29Fc3R1ZGlvUmVhbGl6YWRvLFxyXG4gICAgICAgICAgICB0aXBlc3RyZWE6dGhpcy50aXBvRXN0dWRpb1JlYWxpemFkbyxcclxuICAgICAgICAgICAgaW5zZXN0cmVhOnRoaXMuaW5zdGl0dXRvRXN0dWRpb1JlYWxpemFkbyxcclxuICAgICAgICAgICAgZGVzZXN0cmVhOnRoaXMuZGVzY3JpcGNpb25Fc3R1ZGlvUmVhbGl6YWRvLCBcclxuICAgICAgICAgICAgdGl0ZXN0cmVhOnRoaXMudGl0dWxvRXN0dWRpb1JlYWxpemFkbywgXHJcbiAgICAgICAgICAgIGNhbGVzdHJlYTp0aGlzLmNhbGlmaWNhY2lvbkVzdHVkaW9SZWFsaXphZG8sIFxyXG4gICAgICAgICAgICBlc2N2YWw6dGhpcy5lc2NhbGFWYWxvcmVzLCBcclxuICAgICAgICAgICAgZmVjaW5pcmVhZXN0OnRoaXMuZmVjaGFJbmljaW9Fc3R1ZGlvUmVhbGl6YWRvLCBcclxuICAgICAgICAgICAgZmVjZmluZXN0cmVhOnRoaXMuZmVjaGFGaW5Fc3R1ZGlvUmVhbGl6YWRvLCBcclxuICAgICAgICAgICAgZmVjZ3JhZXN0cmVhOnRoaXMuZmVjaGFHcmFkb0VzdHVkaW9SZWFsaXphZG8sIFxyXG4gICAgICAgICAgICBhcHJlc3RyZWE6dGhpcy5hcHJvYmFjaW9uRXN0dWRpb1JlYWxpemFkbyxcclxuICAgICAgICAgICAgYW5vYXByZXN0cmVhOnRoaXMuYW5vQXByb2JhY2lvbkVzdHVkaW9SZWFsaXphZG8udG9TdHJpbmcoKSwgXHJcbiAgICAgICAgICAgIGhvcmVzdHJlYTp0aGlzLmhvcmFzRXN0dWRpb1JlYWxpemFkby50b1N0cmluZygpLFxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIE1QcmVzdGFjaW9uZXNBbnRpZ3VlZGFkIGV4dGVuZHMgTUJhc2ljTW9kZWx7XHJcbiAgICBwdWJsaWMgaWRFbXByZXNhOm51bWJlcj0wO1xyXG4gICAgcHVibGljIGlkUGVyc29uYWw6bnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgaWRGaWRlaWNvbWlzbzpudW1iZXI9MDtcclxuICAgIHB1YmxpYyBhbm9DdXJQZXJpb2RvOm51bWJlcj0wO1xyXG4gICAgcHVibGljIG1lc0N1clBlcmlvZG86bnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgc3VlbGRvSW50ZWdyYWxQZXJzb25hbDpudW1iZXI9MDtcclxuICAgIHB1YmxpYyBib25vRXh0cmFQZXJzb25hbDpudW1iZXI9MDtcclxuICAgIHB1YmxpYyBib25vVmFjYWNpb25lc1BlcnNvbmFsOm51bWJlcj0wO1xyXG4gICAgcHVibGljIGJvbm9GaW5Bbm5vUGVyc29uYWw6bnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgYXBvcnRlUGVyc29uYWw6bnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgZGlhRmlkZWljb21pc286bnVtYmVyPTBcclxuICAgIHB1YmxpYyBkaWFBZGljaW9uYWw6bnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgbWV0b2RvUHJlc2F0Y2lvbmVzOnN0cmluZz0nJztcclxuICAgIHB1YmxpYyBtZXRvZG9EaWFzQWRpY2lvbmFsZXM6c3RyaW5nPScnO1xyXG4gICAgcHVibGljIGJvbm9WYWNhY2lvbmFsRGlhc0FkaWNpb25hbGVzUGVyc29uYWw6bnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgYm9ub0ZpbkFubm9EaWFzQWRpY2lvbmFsZXNQZXJzb25hbDpudW1iZXI9MDtcclxuICAgIHB1YmxpYyBzdWVsZG9JbnRlZ3JhbERpYXNBZGljaW9uYWxlc1BlcnNvbmFsOm51bWJlcj0wO1xyXG4gICAgcHVibGljIGFwb3J0ZVByZXN0YWNpb25lc1BlcnNvbmFsOm51bWJlcj0wO1xyXG4gICAgcHVibGljIGFwb3J0ZUFkaWNpb25hbFBlcnNvbmFsOm51bWJlcj0wO1xyXG4gICAgcHVibGljIGNvZGlnb1VzdWFyaW86c3RyaW5nPScnO1xyXG4gICAgcHVibGljIGlkRHRGaWRlaWNvbWlzb1BlcmlvZG86bnVtYmVyPTA7XHJcbiAgICAgXHJcbiAgICBjb25zdHJ1Y3RvcihlOklQcmVzdGFjaW9uZXNBbnRpZ3VlZGFkPW51bGwpe1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgaWYgKGUpIHtcclxuICAgICAgICAgICAgdGhpcy5pZEVtcHJlc2E9cGFyc2VJbnQoZS5pZF9lbXByZXNhKTsgXHJcbiAgICAgICAgICAgIHRoaXMuaWRQZXJzb25hbD1wYXJzZUludChlLmlkX3BlcnNvbmFsKTtcclxuICAgICAgICAgICAgdGhpcy5pZEZpZGVpY29taXNvPXBhcnNlSW50KGUuaWRfZmlkZWljb21pc28pO1xyXG4gICAgICAgICAgICB0aGlzLmFub0N1clBlcmlvZG89cGFyc2VJbnQoZS5hbm9jdXJwZXIpO1xyXG4gICAgICAgICAgICB0aGlzLm1lc0N1clBlcmlvZG89cGFyc2VJbnQoZS5tZXNjdXJwZXIpO1xyXG4gICAgICAgICAgICB0aGlzLnN1ZWxkb0ludGVncmFsUGVyc29uYWw9K2Uuc3VlaW50cGVyO1xyXG4gICAgICAgICAgICB0aGlzLmJvbm9FeHRyYVBlcnNvbmFsPStlLmJvbmV4dHBlcjtcclxuICAgICAgICAgICAgdGhpcy5ib25vVmFjYWNpb25lc1BlcnNvbmFsPStlLmJvbnZhY3BlcjtcclxuICAgICAgICAgICAgdGhpcy5ib25vRmluQW5ub1BlcnNvbmFsPStlLmJvbmZpbnBlcjtcclxuICAgICAgICAgICAgdGhpcy5hcG9ydGVQZXJzb25hbD0rZS5hcG9wZXI7XHJcbiAgICAgICAgICAgIHRoaXMuZGlhRmlkZWljb21pc289K2UuZGlhZmlkO1xyXG4gICAgICAgICAgICB0aGlzLmRpYUFkaWNpb25hbD0rZS5kaWFhZGk7XHJcbiAgICAgICAgICAgIHRoaXMubWV0b2RvUHJlc2F0Y2lvbmVzPWUubWV0b2RvcHJlO1xyXG4gICAgICAgICAgICB0aGlzLm1ldG9kb0RpYXNBZGljaW9uYWxlcz1lLm1ldG9kb2FkaTtcclxuICAgICAgICAgICAgdGhpcy5ib25vVmFjYWNpb25hbERpYXNBZGljaW9uYWxlc1BlcnNvbmFsPStlLmJvbnZhY2FkaXBlcjtcclxuICAgICAgICAgICAgdGhpcy5ib25vRmluQW5ub0RpYXNBZGljaW9uYWxlc1BlcnNvbmFsPStlLmJvbmZpbmFkaXBlcjtcclxuICAgICAgICAgICAgdGhpcy5zdWVsZG9JbnRlZ3JhbERpYXNBZGljaW9uYWxlc1BlcnNvbmFsPStlLnN1ZWludGFkaXBlcjtcclxuICAgICAgICAgICAgdGhpcy5hcG9ydGVQcmVzdGFjaW9uZXNQZXJzb25hbD0rZS5hcG9wcmVwZXI7XHJcbiAgICAgICAgICAgIHRoaXMuYXBvcnRlQWRpY2lvbmFsUGVyc29uYWw9K2UuYXBvYWRpcGVyO1xyXG4gICAgICAgICAgICB0aGlzLmNvZGlnb1VzdWFyaW89ZS5jb2R1c3U7XHJcbiAgICAgICAgICAgIHRoaXMuaWREdEZpZGVpY29taXNvUGVyaW9kbz1wYXJzZUludChlLmlkX2R0X2ZpZGVpcGVyaW9kbyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5pc05ldz10cnVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZGF0YUludGVyZmFjZSgpOklQcmVzdGFjaW9uZXNBbnRpZ3VlZGFke1xyXG4gICAgICAgIHJldHVybntcclxuICAgICAgICAgICAgaWRfZW1wcmVzYTp0aGlzLmlkRW1wcmVzYS50b1N0cmluZygpLFxyXG4gICAgICAgICAgICBpZF9wZXJzb25hbDp0aGlzLmlkUGVyc29uYWwudG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgaWRfZmlkZWljb21pc286dGhpcy5pZEZpZGVpY29taXNvLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIGFub2N1cnBlcjp0aGlzLmFub0N1clBlcmlvZG8udG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgbWVzY3VycGVyOnRoaXMubWVzQ3VyUGVyaW9kby50b1N0cmluZygpLFxyXG4gICAgICAgICAgICBzdWVpbnRwZXI6dGhpcy5zdWVsZG9JbnRlZ3JhbFBlcnNvbmFsLFxyXG4gICAgICAgICAgICBib25leHRwZXI6dGhpcy5ib25vRXh0cmFQZXJzb25hbCxcclxuICAgICAgICAgICAgYm9udmFjcGVyOnRoaXMuYm9ub1ZhY2FjaW9uZXNQZXJzb25hbCxcclxuICAgICAgICAgICAgYm9uZmlucGVyOnRoaXMuYm9ub0ZpbkFubm9QZXJzb25hbCxcclxuICAgICAgICAgICAgYXBvcGVyOnRoaXMuYXBvcnRlUGVyc29uYWwsXHJcbiAgICAgICAgICAgIGRpYWZpZDp0aGlzLmRpYUZpZGVpY29taXNvLFxyXG4gICAgICAgICAgICBkaWFhZGk6dGhpcy5kaWFBZGljaW9uYWwsXHJcbiAgICAgICAgICAgIG1ldG9kb3ByZTp0aGlzLm1ldG9kb1ByZXNhdGNpb25lcyxcclxuICAgICAgICAgICAgbWV0b2RvYWRpOnRoaXMubWV0b2RvRGlhc0FkaWNpb25hbGVzLFxyXG4gICAgICAgICAgICBib252YWNhZGlwZXI6dGhpcy5ib25vVmFjYWNpb25hbERpYXNBZGljaW9uYWxlc1BlcnNvbmFsLFxyXG4gICAgICAgICAgICBib25maW5hZGlwZXI6dGhpcy5ib25vRmluQW5ub0RpYXNBZGljaW9uYWxlc1BlcnNvbmFsLFxyXG4gICAgICAgICAgICBzdWVpbnRhZGlwZXI6dGhpcy5zdWVsZG9JbnRlZ3JhbERpYXNBZGljaW9uYWxlc1BlcnNvbmFsLFxyXG4gICAgICAgICAgICBhcG9wcmVwZXI6dGhpcy5hcG9ydGVQcmVzdGFjaW9uZXNQZXJzb25hbCxcclxuICAgICAgICAgICAgYXBvYWRpcGVyOnRoaXMuYXBvcnRlQWRpY2lvbmFsUGVyc29uYWwsXHJcbiAgICAgICAgICAgIGNvZHVzdTp0aGlzLmNvZGlnb1VzdWFyaW8sXHJcbiAgICAgICAgICAgIGlkX2R0X2ZpZGVpcGVyaW9kbzp0aGlzLmlkRHRGaWRlaWNvbWlzb1BlcmlvZG8udG9TdHJpbmcoKSxcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICBcclxufVxyXG5cclxuIl19