sigesp 1.1.56-20250722 → 1.1.58-20250723

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