CHAT_OUTPUT_BEGIN
COMMAND_ID=SUPPORT-260918-GRAM-SUPPORT-PERMISSION-REGISTRY-RCA-515R2R1
STATUS=FAIL
RC=1
HOST=pve01
MODE=read-only
COMPONENT=gram-support-permission-registry-rca
REFERENCE_REGISTER_CHECK=OK
REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66
ERROR_REGISTER_CHECK=OK
ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0
COMMAND_SHA256=325172ba0d369dcfaf99973ef6c61e5f8558b496d7f47e4e766fa44ed64f23ce
DUPLICATE_FAILED_COMMAND_BLOCKED=false
EXECUTION_STARTED=true
CHANGE_DECLARED=false
RESULT_CONTRACT_VALID=true
RESULT_CONTRACT_STATUS=NOT_APPLICABLE
RESULT_CONTRACT_ERROR=NONE
COMMAND_RC=1
CHANGES_MADE=false
ROLLBACK_STARTED=false
ROLLBACK_RESTORED=null
MUTATION_OUTCOME=NO_MUTATION
SANITIZED=yes
SECRETS_INCLUDED=no
PRIVATE_ADDRESSES_INCLUDED=no
RAW_EVIDENCE_SHA256=5b5ba6c89c2b4c6be181ed7bde5c7ff8cbad27cdf16f43bc479ed3e4cd373ee5
SANITIZED_OUTPUT_SHA256=5b5ba6c89c2b4c6be181ed7bde5c7ff8cbad27cdf16f43bc479ed3e4cd373ee5
OUTPUT_BEGIN
Traceback (most recent call last):
  File "<string>", line 1, in <module>
    import base64;exec(compile(base64.b64decode("aW1wb3J0IG9zLHN5cyxqc29uLHN1YnByb2Nlc3MsaGFzaGxpYixiYXNlNjQKQ0lEPSdTVVBQT1JULTI2MDkxOC1HUkFNLVNVUFBPUlQtUEVSTUlTU0lPTi1SRUdJU1RSWS1SQ0EtNTE1UjJSMScKU0lURVM9W3sic2x1ZyI6ImNvZGV2aXBlIiwidm1pZCI6MTYwLCJob3N0IjoicHZlMDIiLCJwdWJsaWMiOiIvdmFyL3d3dy9mb3J1bXMvY29kZXZpcGUvcHVibGljIiwic2Nhbl9jb3JlIjp0cnVlfSx7InNsdWciOiJkc21vZHMiLCJ2bWlkIjoxNjAsImhvc3QiOiJwdmUwMiIsInB1YmxpYyI6Ii92YXIvd3d3L2ZvcnVtcy9kc21vZHMvcHVibGljIiwic2Nhbl9jb3JlIjpmYWxzZX0seyJzbHVnIjoiZ2FtZXZpcGUiLCJ2bWlkIjoxNjAsImhvc3QiOiJwdmUwMiIsInB1YmxpYyI6Ii92YXIvd3d3L2ZvcnVtcy9nYW1ldmlwZS9wdWJsaWMiLCJzY2FuX2NvcmUiOmZhbHNlfSx7InNsdWciOiJoa21vZHMiLCJ2bWlkIjoxNjAsImhvc3QiOiJwdmUwMiIsInB1YmxpYyI6Ii92YXIvd3d3L2ZvcnVtcy9oa21vZHMvcHVibGljIiwic2Nhbl9jb3JlIjpmYWxzZX0seyJzbHVnIjoia2luZ29md29sayIsInZtaWQiOjE2MCwiaG9zdCI6InB2ZTAyIiwicHVibGljIjoiL3Zhci93d3cvZm9ydW1zL2tpbmdvZndvbGsvcHVibGljIiwic2Nhbl9jb3JlIjpmYWxzZX0seyJzbHVnIjoiemFrcnV0aW0iLCJ2bWlkIjoxNjAsImhvc3QiOiJwdmUwMiIsInB1YmxpYyI6Ii92YXIvd3d3L2ZvcnVtcy96YWtydXRpbS9wdWJsaWMiLCJzY2FuX2NvcmUiOmZhbHNlfSx7InNsdWciOiJuZXdmaSIsInZtaWQiOjIxMCwiaG9zdCI6InB2ZTAxIiwicHVibGljIjoiL3Zhci93d3cvZm9ydW1zL25ld2ZpL3B1YmxpYyIsInNjYW5fY29yZSI6dHJ1ZX1dCkdVRVNUPWJhc2U2NC5iNjRkZWNvZGUoJ0NtbHRjRzl5ZENCdmN5eHplWE1zYW5OdmJpeHpkV0p3Y205alpYTnpMSFJsYlhCbWFXeGxMR2hoYzJoc2FXSXNjbVVLWm5KdmJTQndZWFJvYkdsaUlHbHRjRzl5ZENCUVlYUm9DZ3B5WlhFOWFuTnZiaTVzYjJGa2N5aHplWE11YzNSa2FXNHVjbVZoWkNncEtRcHphWFJsY3oxeVpYRmJJbk5wZEdWeklsMEtjR2h3WDJOdlpHVTlKencvY0dod1hHNGtjbTl2ZEQwa1lYSm5kbHN4WFQ4L1hDZGNKenRjYmlSemJIVm5QU1JoY21kMld6SmRQejljSjF3bk8xeHVKRzkxZEQxYlhDZHpiSFZuWENjOVBpUnpiSFZuTEZ3bmIydGNKejArWm1Gc2MyVXNYQ2RsY25KdmNsd25QVDV1ZFd4c1hUdGNibHh1Wm5WdVkzUnBiMjRnWm1GcGJGOXZkWFFvSmlSdmRYUXNKRzBzSkhKalBUTXBYRzU3WEc0Z0lDQWdKRzkxZEZ0Y0oyVnljbTl5WENkZFBTUnRPMXh1SUNBZ0lHVmphRzhnYW5OdmJsOWxibU52WkdVb0pHOTFkQ3hLVTA5T1gxVk9SVk5EUVZCRlJGOVRURUZUU0VWVGZFcFRUMDVmVlU1RlUwTkJVRVZFWDFWT1NVTlBSRVVwTzF4dUlDQWdJR1Y0YVhRb0pISmpLVHRjYm4xY2JtWjFibU4wYVc5dUlITmhabVZmZFc1elpYSW9KSFlwWEc1N1hHNGdJQ0FnSkhnOVFIVnVjMlZ5YVdGc2FYcGxLQ1IyS1R0Y2JpQWdJQ0J5WlhSMWNtNGdhWE5mWVhKeVlYa29KSGdwUHlSNE9tNTFiR3c3WEc1OVhHNW1kVzVqZEdsdmJpQmhjbkpoZVY5clpYbHpYM052Y25SbFpDZ2tZU2xjYm50Y2JpQWdJQ0JwWmlnaGFYTmZZWEp5WVhrb0pHRXBLU0J5WlhSMWNtNGdXMTA3WEc0Z0lDQWdKR3M5WVhKeVlYbGZiV0Z3S0Z3bmMzUnlkbUZzWENjc1lYSnlZWGxmYTJWNWN5Z2tZU2twTzF4dUlDQWdJSE52Y25Rb0pHc3NVMDlTVkY5VFZGSkpUa2NwTzF4dUlDQWdJSEpsZEhWeWJpQWthenRjYm4xY2JseHVhV1lvSkhKdmIzUTlQVDFjSjF3bmZId2hhWE5mWm1sc1pTZ2tjbTl2ZEM1Y0p5OXpjbU12V0VZdWNHaHdYQ2NwS1NCbVlXbHNYMjkxZENna2IzVjBMRnduVWs5UFZGOUpUbFpCVEVsRVhDY3BPMXh1WEc1MGNubGNibnRjYmlBZ0lDQnlaWEYxYVhKbElDUnliMjkwTGx3bkwzTnlZeTlZUmk1d2FIQmNKenRjYmlBZ0lDQmNYRmhHT2pwemRHRnlkQ2drY205dmRDazdYRzRnSUNBZ0pHRndjRDFjWEZoR09qcHpaWFIxY0VGd2NDaGNKMWhHWEZ4RGJHbGNYRUZ3Y0Z3bktUdGNiaUFnSUNBa1pHSTlYRnhZUmpvNlpHSW9LVHRjYmx4dUlDQWdJQ1J2ZFhSYlhDZGhaR1J2Ymx3blhUMGtaR0l0UG1abGRHTm9VbTkzS0NKVFJVeEZRMVFnWVdOMGFYWmxMSFpsY25OcGIyNWZhV1FnUmxKUFRTQjRabDloWkdSdmJpQlhTRVZTUlNCaFpHUnZibDlwWkQxY0owZHlZVzB2VTNWd2NHOXlkRnduSWlrN1hHNWNiaUFnSUNBa2IzVjBXMXduY0dWeWJXbHpjMmx2Ymw5eWIzZHpYQ2RkUFNSa1lpMCtabVYwWTJoQmJHd29JbHh1SUNBZ0lDQWdVMFZNUlVOVUlIQmxjbTFwYzNOcGIyNWZhV1FzY0dWeWJXbHpjMmx2Ymw5bmNtOTFjRjlwWkN4d1pYSnRhWE56YVc5dVgzUjVjR1VzYVc1MFpYSm1ZV05sWDJkeWIzVndYMmxrTEdSbGNHVnVaRjl3WlhKdGFYTnphVzl1WDJsa0xHUnBjM0JzWVhsZmIzSmtaWElzWVdSa2IyNWZhV1JjYmlBZ0lDQWdJRVpTVDAwZ2VHWmZjR1Z5YldsemMybHZibHh1SUNBZ0lDQWdWMGhGVWtVZ2NHVnliV2x6YzJsdmJsOW5jbTkxY0Y5cFpEMWNKMmR5WVcxVGRYQndiM0owWENkY2JpQWdJQ0FnSUU5U1JFVlNJRUpaSUhCbGNtMXBjM05wYjI1ZmFXUmNiaUFnSUNBaUtUdGNibHh1SUNBZ0lDUnZkWFJiWENkd1pYSnRhWE56YVc5dVgyVnVkSEo1WDJOdmRXNTBjMXduWFQwa1pHSXRQbVpsZEdOb1FXeHNLQ0pjYmlBZ0lDQWdJRk5GVEVWRFZDQjFjMlZ5WDJkeWIzVndYMmxrTEhWelpYSmZhV1FzUTA5VlRsUW9LaWtnUVZNZ2NtOTNYMk52ZFc1MExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUZOVlRTaHdaWEp0YVhOemFXOXVYM1poYkhWbFBWd25ZV3hzYjNkY0p5a2dRVk1nWVd4c2IzZGZZMjkxYm5Rc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnVTFWTktIQmxjbTFwYzNOcGIyNWZkbUZzZFdVOVhDZHVaWFpsY2x3bktTQkJVeUJ1WlhabGNsOWpiM1Z1ZEN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0JUVlUwb2NHVnliV2x6YzJsdmJsOTJZV3gxWlQxY0oyUmxibmxjSnlrZ1FWTWdaR1Z1ZVY5amIzVnVkRnh1SUNBZ0lDQWdSbEpQVFNCNFpsOXdaWEp0YVhOemFXOXVYMlZ1ZEhKNVhHNGdJQ0FnSUNCWFNFVlNSU0J3WlhKdGFYTnphVzl1WDJkeWIzVndYMmxrUFZ3blozSmhiVk4xY0hCdmNuUmNKMXh1SUNBZ0lDQWdSMUpQVlZBZ1Fsa2dkWE5sY2w5bmNtOTFjRjlwWkN4MWMyVnlYMmxrWEc0Z0lDQWdJQ0JQVWtSRlVpQkNXU0IxYzJWeVgybGtMSFZ6WlhKZlozSnZkWEJmYVdSY2JpQWdJQ0FpS1R0Y2JseHVJQ0FnSUNSMFlXSnNaWE05SkdSaUxUNW1aWFJqYUVGc2JDZ2lYRzRnSUNBZ0lDQlRSVXhGUTFRZ1ZFRkNURVZmVGtGTlJWeHVJQ0FnSUNBZ1JsSlBUU0JwYm1admNtMWhkR2x2Ymw5elkyaGxiV0V1VkVGQ1RFVlRYRzRnSUNBZ0lDQlhTRVZTUlNCVVFVSk1SVjlUUTBoRlRVRTlSRUZVUVVKQlUwVW9LU0JCVGtRZ1ZFRkNURVZmVGtGTlJTQk1TVXRGSUZ3bmVHWmZjR1Z5YldsemMybHZiaVZjSjF4dUlDQWdJQ0FnVDFKRVJWSWdRbGtnVkVGQ1RFVmZUa0ZOUlZ4dUlDQWdJQ0lwTzF4dUlDQWdJQ1J2ZFhSYlhDZHdaWEp0YVhOemFXOXVYM1JoWW14bGMxd25YVDFoY25KaGVWOXRZWEFvWm00b0pISXBQVDRvYzNSeWFXNW5LU1J5VzF3blZFRkNURVZmVGtGTlJWd25YU3drZEdGaWJHVnpLVHRjYmx4dUlDQWdJR2xtS0dsdVgyRnljbUY1S0Z3bmVHWmZjR1Z5YldsemMybHZibDlwYm5SbGNtWmhZMlZmWjNKdmRYQmNKeXdrYjNWMFcxd25jR1Z5YldsemMybHZibDkwWVdKc1pYTmNKMTBzZEhKMVpTa3BYRzRnSUNBZ2UxeHVJQ0FnSUNBZ0lDQWtiM1YwVzF3bmFXNTBaWEptWVdObFgyZHliM1Z3WDNKdmQzTmNKMTA5SkdSaUxUNW1aWFJqYUVGc2JDZ2lYRzRnSUNBZ0lDQWdJQ0FnVTBWTVJVTlVJQ29nUmxKUFRTQjRabDl3WlhKdGFYTnphVzl1WDJsdWRHVnlabUZqWlY5bmNtOTFjRnh1SUNBZ0lDQWdJQ0FnSUZkSVJWSkZJR2x1ZEdWeVptRmpaVjluY205MWNGOXBaRDFjSjJkeVlXMVRkWEJ3YjNKMFhDZGNiaUFnSUNBZ0lDQWdJaWs3WEc0Z0lDQWdmVnh1SUNBZ0lHVnNjMlVnSkc5MWRGdGNKMmx1ZEdWeVptRmpaVjluY205MWNGOXliM2R6WENkZFBWdGRPMXh1WEc0Z0lDQWdKSE4wWVdabVBTUmtZaTArWm1WMFkyaEJiR3dvSWx4dUlDQWdJQ0FnVTBWTVJVTlVJSFZ6WlhKZmFXUXNkWE5sY2w5bmNtOTFjRjlwWkN4elpXTnZibVJoY25sZlozSnZkWEJmYVdSekxHbHpYMkZrYldsdUxHbHpYMjF2WkdWeVlYUnZjaXh3WlhKdGFYTnphVzl1WDJOdmJXSnBibUYwYVc5dVgybGtYRzRnSUNBZ0lDQkdVazlOSUhobVgzVnpaWEpjYmlBZ0lDQWdJRmRJUlZKRklHbHpYMkZrYldsdVBURWdUMUlnYVhOZmJXOWtaWEpoZEc5eVBURmNiaUFnSUNBZ0lFOVNSRVZTSUVKWklIVnpaWEpmYVdSY2JpQWdJQ0FpS1R0Y2JpQWdJQ0FrYjNWMFcxd25jM1JoWm1aY0oxMDlXMTA3WEc0Z0lDQWdabTl5WldGamFDZ2tjM1JoWm1ZZ1lYTWdKSFVwWEc0Z0lDQWdlMXh1SUNBZ0lDQWdJQ0FrWTI5dFltODlKR1JpTFQ1bVpYUmphRkp2ZHlnaVhHNGdJQ0FnSUNBZ0lDQWdVMFZNUlVOVUlIQmxjbTFwYzNOcGIyNWZZMjl0WW1sdVlYUnBiMjVmYVdRc2RYTmxjbDlwWkN4MWMyVnlYMmR5YjNWd1gyeHBjM1FzWTJGamFHVmZkbUZzZFdWY2JpQWdJQ0FnSUNBZ0lDQkdVazlOSUhobVgzQmxjbTFwYzNOcGIyNWZZMjl0WW1sdVlYUnBiMjVjYmlBZ0lDQWdJQ0FnSUNCWFNFVlNSU0J3WlhKdGFYTnphVzl1WDJOdmJXSnBibUYwYVc5dVgybGtQVDljYmlBZ0lDQWdJQ0FnSWl3a2RWdGNKM0JsY20xcGMzTnBiMjVmWTI5dFltbHVZWFJwYjI1ZmFXUmNKMTBwTzF4dUlDQWdJQ0FnSUNBa1kyRmphR1U5SkdOdmJXSnZQM05oWm1WZmRXNXpaWElvS0hOMGNtbHVaeWtrWTI5dFltOWJYQ2RqWVdOb1pWOTJZV3gxWlZ3blhTazZiblZzYkR0Y2JpQWdJQ0FnSUNBZ0pHOTFkRnRjSjNOMFlXWm1YQ2RkVzEwOVcxeHVJQ0FnSUNBZ0lDQWdJRnduZFhObGNsOXBaRjl6YUdFeU5UWmNKejArYUdGemFDaGNKM05vWVRJMU5sd25MQ2h6ZEhKcGJtY3BKSFZiWENkMWMyVnlYMmxrWENkZEtTeGNiaUFnSUNBZ0lDQWdJQ0JjSjNCeWFXMWhjbmxmWjNKdmRYQmZhV1JjSnowK0tHbHVkQ2trZFZ0Y0ozVnpaWEpmWjNKdmRYQmZhV1JjSjEwc1hHNGdJQ0FnSUNBZ0lDQWdYQ2R6WldOdmJtUmhjbmxmWjNKdmRYQmZhV1J6WENjOVBpaHpkSEpwYm1jcEpIVmJYQ2R6WldOdmJtUmhjbmxmWjNKdmRYQmZhV1J6WENkZExGeHVJQ0FnSUNBZ0lDQWdJRnduYVhOZllXUnRhVzVjSnowK0tHSnZiMndwSkhWYlhDZHBjMTloWkcxcGJsd25YU3hjYmlBZ0lDQWdJQ0FnSUNCY0oybHpYMjF2WkdWeVlYUnZjbHduUFQ0b1ltOXZiQ2trZFZ0Y0oybHpYMjF2WkdWeVlYUnZjbHduWFN4Y2JpQWdJQ0FnSUNBZ0lDQmNKM0JsY20xcGMzTnBiMjVmWTI5dFltbHVZWFJwYjI1ZmFXUmZjMmhoTWpVMlhDYzlQbWhoYzJnb1hDZHphR0V5TlRaY0p5d29jM1J5YVc1bktTUjFXMXduY0dWeWJXbHpjMmx2Ymw5amIyMWlhVzVoZEdsdmJsOXBaRnduWFNrc1hHNGdJQ0FnSUNBZ0lDQWdYQ2RqYjIxaWIxOTFjMlZ5WDJsa1gzTm9ZVEkxTmx3blBUNGtZMjl0WW04L2FHRnphQ2hjSjNOb1lUSTFObHduTENoemRISnBibWNwSkdOdmJXSnZXMXduZFhObGNsOXBaRnduWFNrNmJuVnNiQ3hjYmlBZ0lDQWdJQ0FnSUNCY0oyTnZiV0p2WDNWelpYSmZaM0p2ZFhCZmJHbHpkRnduUFQ0a1kyOXRZbTgvS0hOMGNtbHVaeWtrWTI5dFltOWJYQ2QxYzJWeVgyZHliM1Z3WDJ4cGMzUmNKMTA2Ym5Wc2JDeGNiaUFnSUNBZ0lDQWdJQ0JjSjJOaFkyaGxYMko1ZEdWelhDYzlQaVJqYjIxaWJ6OXpkSEpzWlc0b0tITjBjbWx1Wnlra1kyOXRZbTliWENkallXTm9aVjkyWVd4MVpWd25YU2s2TUN4Y2JpQWdJQ0FnSUNBZ0lDQmNKMk5oWTJobFgzTm9ZVEkxTmx3blBUNGtZMjl0WW04L2FHRnphQ2hjSjNOb1lUSTFObHduTENoemRISnBibWNwSkdOdmJXSnZXMXduWTJGamFHVmZkbUZzZFdWY0oxMHBPbTUxYkd3c1hHNGdJQ0FnSUNBZ0lDQWdYQ2RqWVdOb1pWOTBiM0JmYkdWMlpXeGZhMlY1YzF3blBUNWhjbkpoZVY5clpYbHpYM052Y25SbFpDZ2tZMkZqYUdVcExGeHVJQ0FnSUNBZ0lDQWdJRnduWTJGamFHVmZhR0Z6WDJkeVlXMVRkWEJ3YjNKMFhDYzlQbWx6WDJGeWNtRjVLQ1JqWVdOb1pTa21KbWx6YzJWMEtDUmpZV05vWlZ0Y0oyZHlZVzFUZFhCd2IzSjBYQ2RkS1NZbWFYTmZZWEp5WVhrb0pHTmhZMmhsVzF3blozSmhiVk4xY0hCdmNuUmNKMTBwTEZ4dUlDQWdJQ0FnSUNBZ0lGd25aM0poYlZOMWNIQnZjblJmWTJGamFHVmNKejArYVhOZllYSnlZWGtvSkdOaFkyaGxLU1ltYVhOelpYUW9KR05oWTJobFcxd25aM0poYlZOMWNIQnZjblJjSjEwcEppWnBjMTloY25KaGVTZ2tZMkZqYUdWYlhDZG5jbUZ0VTNWd2NHOXlkRnduWFNrL0pHTmhZMmhsVzF3blozSmhiVk4xY0hCdmNuUmNKMTA2Ym5Wc2JGeHVJQ0FnSUNBZ0lDQmRPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDUnlaV2RwYzNSeWVWSnZkM005SkdSaUxUNW1aWFJqYUVGc2JDZ2lYRzRnSUNBZ0lDQlRSVXhGUTFRZ1pHRjBZVjlyWlhrc1pHRjBZVjkyWVd4MVpWeHVJQ0FnSUNBZ1JsSlBUU0I0Wmw5a1lYUmhYM0psWjJsemRISjVYRzRnSUNBZ0lDQlhTRVZTUlNCa1lYUmhYMnRsZVNCTVNVdEZJRnduSlhCbGNtMXBjM05wYjI0bFhDZGNiaUFnSUNBZ0lDQWdJRTlTSUdSaGRHRmZhMlY1SUV4SlMwVWdYQ2NsVUdWeWJXbHpjMmx2YmlWY0oxeHVJQ0FnSUNBZ0lDQWdUMUlnWkdGMFlWOXJaWGtnU1U0Z0tGd25ZV04wYVhabFFXUmtUMjV6WENjc1hDZGhaR1JQYm5OY0p5bGNiaUFnSUNBZ0lFOVNSRVZTSUVKWklHUmhkR0ZmYTJWNVhHNGdJQ0FnSWlrN1hHNGdJQ0FnSkc5MWRGdGNKM0psWjJsemRISjVYQ2RkUFZ0ZE8xeHVJQ0FnSUdadmNtVmhZMmdvSkhKbFoybHpkSEo1VW05M2N5QmhjeUFrY2lsY2JpQWdJQ0I3WEc0Z0lDQWdJQ0FnSUNSMllXdzlLSE4wY21sdVp5a2tjbHRjSjJSaGRHRmZkbUZzZFdWY0oxMDdYRzRnSUNBZ0lDQWdJQ1JoY25JOWMyRm1aVjkxYm5ObGNpZ2tkbUZzS1R0Y2JpQWdJQ0FnSUNBZ0pHOTFkRnRjSjNKbFoybHpkSEo1WENkZFcxMDlXMXh1SUNBZ0lDQWdJQ0FnSUZ3bmEyVjVYQ2M5UGloemRISnBibWNwSkhKYlhDZGtZWFJoWDJ0bGVWd25YU3hjYmlBZ0lDQWdJQ0FnSUNCY0oySjVkR1Z6WENjOVBuTjBjbXhsYmlna2RtRnNLU3hjYmlBZ0lDQWdJQ0FnSUNCY0ozTm9ZVEkxTmx3blBUNW9ZWE5vS0Z3bmMyaGhNalUyWENjc0pIWmhiQ2tzWEc0Z0lDQWdJQ0FnSUNBZ1hDZGpiMjUwWVdsdWMxOW5jbUZ0VTNWd2NHOXlkRnduUFQ0b2MzUnljRzl6S0NSMllXd3NYQ2RuY21GdFUzVndjRzl5ZEZ3bktTRTlQV1poYkhObEtTeGNiaUFnSUNBZ0lDQWdJQ0JjSjJOdmJuUmhhVzV6WDBkeVlXMVRkWEJ3YjNKMFhDYzlQaWh6ZEhKd2IzTW9KSFpoYkN4Y0owZHlZVzB2VTNWd2NHOXlkRnduS1NFOVBXWmhiSE5sS1N4Y2JpQWdJQ0FnSUNBZ0lDQmNKM1J2Y0Y5c1pYWmxiRjlyWlhselhDYzlQbUZ5Y21GNVgzTnNhV05sS0dGeWNtRjVYMnRsZVhOZmMyOXlkR1ZrS0NSaGNuSXBMREFzTVRBd0tWeHVJQ0FnSUNBZ0lDQmRPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDUmhaR1J2YmtScGNqMGtjbTl2ZEM1Y0p5OXpjbU12WVdSa2IyNXpMMGR5WVcwdlUzVndjRzl5ZEM5ZlpHRjBZVnduTzF4dUlDQWdJQ1J2ZFhSYlhDZGhaR1J2Ymw5d1pYSnRhWE56YVc5dVgyUmhkR0ZmWm1sc1pYTmNKMTA5VzEwN1hHNGdJQ0FnWm05eVpXRmphQ2hiWENkd1pYSnRhWE56YVc5dWN5NTRiV3hjSnl4Y0ozQmxjbTFwYzNOcGIyNWZhVzUwWlhKbVlXTmxYMmR5YjNWd2N5NTRiV3hjSjEwZ1lYTWdKR1lwWEc0Z0lDQWdlMXh1SUNBZ0lDQWdJQ0FrY0Qwa1lXUmtiMjVFYVhJdVhDY3ZYQ2N1SkdZN1hHNGdJQ0FnSUNBZ0lDUnZkWFJiWENkaFpHUnZibDl3WlhKdGFYTnphVzl1WDJSaGRHRmZabWxzWlhOY0oxMWJKR1pkUFZ0Y2JpQWdJQ0FnSUNBZ0lDQmNKM0J5WlhObGJuUmNKejArYVhOZlptbHNaU2drY0Nrc1hHNGdJQ0FnSUNBZ0lDQWdYQ2RpZVhSbGMxd25QVDVwYzE5bWFXeGxLQ1J3S1Q5bWFXeGxjMmw2WlNna2NDazZNQ3hjYmlBZ0lDQWdJQ0FnSUNCY0ozTm9ZVEkxTmx3blBUNXBjMTltYVd4bEtDUndLVDlvWVhOb1gyWnBiR1VvWENkemFHRXlOVFpjSnl3a2NDazZiblZzYkN4Y2JpQWdJQ0FnSUNBZ0lDQmNKMk52Ym5SaGFXNXpYMmR5WVcxVGRYQndiM0owWENjOVBtbHpYMlpwYkdVb0pIQXBQeWh6ZEhKd2IzTW9LSE4wY21sdVp5bG1hV3hsWDJkbGRGOWpiMjUwWlc1MGN5Z2tjQ2tzWENkbmNtRnRVM1Z3Y0c5eWRGd25LU0U5UFdaaGJITmxLVHBtWVd4elpWeHVJQ0FnSUNBZ0lDQmRPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDUnZkWFJiWENkdmExd25YVDEwY25WbE8xeHVJQ0FnSUdWamFHOGdhbk52Ymw5bGJtTnZaR1VvSkc5MWRDeEtVMDlPWDFWT1JWTkRRVkJGUkY5VFRFRlRTRVZUZkVwVFQwNWZWVTVGVTBOQlVFVkVYMVZPU1VOUFJFVXBPMXh1SUNBZ0lHVjRhWFFvTUNrN1hHNTlYRzVqWVhSamFDaFVhSEp2ZDJGaWJHVWdKR1VwWEc1N1hHNGdJQ0FnWm1GcGJGOXZkWFFvSkc5MWRDeGNKMFZZUTBWUVZFbFBUbDljSnk1d2NtVm5YM0psY0d4aFkyVW9YQ2N2VzE1QkxWcGhMWG93TFRsZlhTOWNKeXhjSjE5Y0p5eG5aWFJmWTJ4aGMzTW9KR1VwS1NrN1hHNTlYRzRuQ2dwa1pXWWdjMmhoS0dJcE9pQnlaWFIxY200Z2FHRnphR3hwWWk1emFHRXlOVFlvWWlrdWFHVjRaR2xuWlhOMEtDa0tDbVJsWmlCeWRXNG9ZWEpuZGl4MGFXMWxiM1YwUFRFeU1DazZDaUFnSUNCMGNuazZDaUFnSUNBZ0lDQWdjRDF6ZFdKd2NtOWpaWE56TG5KMWJpaGhjbWQyTEhOMFpHOTFkRDF6ZFdKd2NtOWpaWE56TGxCSlVFVXNjM1JrWlhKeVBYTjFZbkJ5YjJObGMzTXVVRWxRUlN4MGFXMWxiM1YwUFhScGJXVnZkWFFzWTJobFkyczlSbUZzYzJVcENpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhBdWNtVjBkWEp1WTI5a1pTeHdMbk4wWkc5MWRDeHdMbk4wWkdWeWNnb2dJQ0FnWlhoalpYQjBJSE4xWW5CeWIyTmxjM011VkdsdFpXOTFkRVY0Y0dseVpXUTZDaUFnSUNBZ0lDQWdjbVYwZFhKdUlERXlOQ3hpSWlJc1lpSlVTVTFGVDFWVUlnb0taR1ZtSUhOdmRYSmpaVjl6WTJGdUtISnZiM1FwT2dvZ0lDQWdkR0Z5WjJWMGN6MWJDaUFnSUNBZ0lDQWdVR0YwYUNoeWIyOTBLUzhpYzNKakwxaEdMMHB2WWk5UVpYSnRhWE56YVc5dVVtVmlkV2xzWkM1d2FIQWlMQW9nSUNBZ0lDQWdJRkJoZEdnb2NtOXZkQ2t2SW5OeVl5OVlSaTlRWlhKdGFYTnphVzl1SWl3S0lDQWdJQ0FnSUNCUVlYUm9LSEp2YjNRcEx5SnpjbU12V0VZdlVtVndiM05wZEc5eWVTSXNDaUFnSUNBZ0lDQWdVR0YwYUNoeWIyOTBLUzhpYzNKakwxaEdMMFZ1ZEdsMGVTSXNDaUFnSUNCZENpQWdJQ0J3WVhSelBYSmxMbU52YlhCcGJHVW9jaUlvVUdWeWJXbHpjMmx2YmxKbFluVnBiR1I4Y0dWeWJXbHpjMmx2Ymw5amIyMWlhVzVoZEdsdmJueHdaWEp0YVhOemFXOXVRMkZqYUdWOGNHVnliV2x6YzJsdmJpQmpZV05vWlh4aWRXbHNaRkJsY20xcGMzTnBiMjU4Y21WaWRXbHNaRkJsY20xcGMzTnBiMjU4WjJ4dlltRnNVR1Z5YldsemMybHZibnh3WlhKdGFYTnphVzl1WDJWdWRISjVmSEJsY20xcGMzTnBiMjVmYVc1MFpYSm1ZV05sWDJkeWIzVndmR1JoZEdGU1pXZHBjM1J5ZVh4eVpXZHBjM1J5ZVNraUxISmxMa2twQ2lBZ0lDQnliM2R6UFZ0ZENpQWdJQ0JtYVd4bGN6MWJYUW9nSUNBZ1ptOXlJSFFnYVc0Z2RHRnlaMlYwY3pvS0lDQWdJQ0FnSUNCcFppQjBMbWx6WDJacGJHVW9LVG9LSUNBZ0lDQWdJQ0FnSUNBZ1ptbHNaWE11WVhCd1pXNWtLSFFwQ2lBZ0lDQWdJQ0FnWld4cFppQjBMbWx6WDJScGNpZ3BPZ29nSUNBZ0lDQWdJQ0FnSUNCbWIzSWdjQ0JwYmlCemIzSjBaV1FvZEM1eVoyeHZZaWdpS2k1d2FIQWlLU2s2Q2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JzYjNjOWMzUnlLSEFwTG14dmQyVnlLQ2tLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNKd1pYSnRhWE56YVc5dUlpQnBiaUJzYjNjZ2IzSWdJblZ6WlhJdWNHaHdJaUJwYmlCc2IzYzZDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWm1sc1pYTXVZWEJ3Wlc1a0tIQXBDaUFnSUNCelpXVnVQWE5sZENncENpQWdJQ0JtYjNJZ2NDQnBiaUJtYVd4bGN6b0tJQ0FnSUNBZ0lDQnpjRDF6ZEhJb2NDa0tJQ0FnSUNBZ0lDQnBaaUJ6Y0NCcGJpQnpaV1Z1T2lCamIyNTBhVzUxWlFvZ0lDQWdJQ0FnSUhObFpXNHVZV1JrS0hOd0tRb2dJQ0FnSUNBZ0lIUnllVG9LSUNBZ0lDQWdJQ0FnSUNBZ2JHbHVaWE05Y0M1eVpXRmtYM1JsZUhRb0luVjBaaTA0SWl4bGNuSnZjbk05SW5KbGNHeGhZMlVpS1M1emNHeHBkR3hwYm1WektDa0tJQ0FnSUNBZ0lDQmxlR05sY0hRZ1JYaGpaWEIwYVc5dU9nb2dJQ0FnSUNBZ0lDQWdJQ0JqYjI1MGFXNTFaUW9nSUNBZ0lDQWdJR1p2Y2lCcExHeHBibVVnYVc0Z1pXNTFiV1Z5WVhSbEtHeHBibVZ6TERFcE9nb2dJQ0FnSUNBZ0lDQWdJQ0JwWmlCd1lYUnpMbk5sWVhKamFDaHNhVzVsS1RvS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhSNGREMGlJQ0l1YW05cGJpaHNhVzVsTG5OMGNtbHdLQ2t1YzNCc2FYUW9LU2tLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUd4bGJpaDBlSFFwUGpNMk1Eb2dkSGgwUFhSNGRGczZNell3WFFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY205M2N5NWhjSEJsYm1Rb2V5SndZWFJvSWpwemRISW9jQzV5Wld4aGRHbDJaVjkwYnloeWIyOTBLU2tzSW14cGJtVWlPbWtzSW5SbGVIUWlPblI0ZEgwcENpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQnNaVzRvY205M2N5aytQVEkyTURvZ2NtVjBkWEp1SUhKdmQzTUtJQ0FnSUhKbGRIVnliaUJ5YjNkekNncG1aQ3h3WVhSb1BYUmxiWEJtYVd4bExtMXJjM1JsYlhBb2NISmxabWw0UFNKbmNtRnROVEUxY2pKeU1TMGlMSE4xWm1acGVEMGlMbkJvY0NJcE95QnZjeTVqYkc5elpTaG1aQ2tLVUdGMGFDaHdZWFJvS1M1M2NtbDBaVjkwWlhoMEtIQm9jRjlqYjJSbExHVnVZMjlrYVc1blBTSjFkR1l0T0NJcE95QnZjeTVqYUcxdlpDaHdZWFJvTERCdk5qQXdLUXB5YjNkelBWdGRDblJ5ZVRvS0lDQWdJR1p2Y2lCeklHbHVJSE5wZEdWek9nb2dJQ0FnSUNBZ0lIQTljM1ZpY0hKdlkyVnpjeTV5ZFc0b0NpQWdJQ0FnSUNBZ0lDQWdJRnNpTDNWemNpOWlhVzR2Y0dod0lpd2lMV1FpTENKa2FYTndiR0Y1WDJWeWNtOXljejB3SWl4d1lYUm9MSE5iSW5CMVlteHBZeUpkTEhOYkluTnNkV2NpWFYwc0NpQWdJQ0FnSUNBZ0lDQWdJSE4wWkc5MWREMXpkV0p3Y205alpYTnpMbEJKVUVVc2MzUmtaWEp5UFhOMVluQnliMk5sYzNNdVVFbFFSU3gwYVcxbGIzVjBQVEV5TUN4amFHVmphejFHWVd4elpRb2dJQ0FnSUNBZ0lDa0tJQ0FnSUNBZ0lDQnliM2M5ZXlKemJIVm5JanB6V3lKemJIVm5JbDBzSW5KaklqcHdMbkpsZEhWeWJtTnZaR1VzSW5OMFpHVnljbDl6YUdFeU5UWWlPbk5vWVNod0xuTjBaR1Z5Y2lrc0luTjBaR1Z5Y2w5aWVYUmxjeUk2YkdWdUtIQXVjM1JrWlhKeUtYMEtJQ0FnSUNBZ0lDQjBjbms2SUhKdmQxc2laR0lpWFQxcWMyOXVMbXh2WVdSektIQXVjM1JrYjNWMExtUmxZMjlrWlNnaWRYUm1MVGdpTENKemRISnBZM1FpS1NrS0lDQWdJQ0FnSUNCbGVHTmxjSFFnUlhoalpYQjBhVzl1SUdGeklHVTZDaUFnSUNBZ0lDQWdJQ0FnSUhKdmQxc2ljR0Z5YzJWZlpYSnliM0lpWFQxMGVYQmxLR1VwTGw5ZmJtRnRaVjlmTzNKdmQxc2ljM1JrYjNWMFgzTm9ZVEkxTmlKZFBYTm9ZU2h3TG5OMFpHOTFkQ2tLSUNBZ0lDQWdJQ0JwWmlCekxtZGxkQ2dpYzJOaGJsOWpiM0psSWlrNkNpQWdJQ0FnSUNBZ0lDQWdJSEp2ZDFzaVkyOXlaVjl6WTJGdUlsMDljMjkxY21ObFgzTmpZVzRvYzFzaWNIVmliR2xqSWwwcENpQWdJQ0FnSUNBZ2NtOTNjeTVoY0hCbGJtUW9jbTkzS1FwbWFXNWhiR3g1T2dvZ0lDQWdkSEo1T2lCdmN5NTFibXhwYm1zb2NHRjBhQ2tLSUNBZ0lHVjRZMlZ3ZENCRmVHTmxjSFJwYjI0NklIQmhjM01LY0hKcGJuUW9hbk52Ymk1a2RXMXdjeWg3SW5KdmQzTWlPbkp2ZDNOOUxHVnVjM1Z5WlY5aGMyTnBhVDFVY25WbExITnZjblJmYTJWNWN6MVVjblZsTEhObGNHRnlZWFJ2Y25NOUtDSXNJaXdpT2lJcEtTa0snKQoKZGVmIHNoYShiKTogcmV0dXJuIGhhc2hsaWIuc2hhMjU2KGIpLmhleGRpZ2VzdCgpCmRlZiBydW4oYXJndixzdGRpbj1iIiIsdGltZW91dD0yMjApOgogICAgdHJ5OgogICAgICAgIHA9c3VicHJvY2Vzcy5ydW4oYXJndixpbnB1dD1zdGRpbixzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD10aW1lb3V0LGNoZWNrPUZhbHNlLGVudj17Kipvcy5lbnZpcm9uLCJMQ19BTEwiOiJDIn0pCiAgICAgICAgcmV0dXJuIHAucmV0dXJuY29kZSxwLnN0ZG91dCxwLnN0ZGVycgogICAgZXhjZXB0IHN1YnByb2Nlc3MuVGltZW91dEV4cGlyZWQ6IHJldHVybiAxMjQsYiIiLGIiVElNRU9VVCIKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZTogcmV0dXJuIDEyNSxiIiIsdHlwZShlKS5fX25hbWVfXy5lbmNvZGUoKQpkZWYgcGFyc2VfcWdhKHJjLG91dCxlcnIpOgogICAgej17InRyYW5zcG9ydF9yYyI6cmMsInRyYW5zcG9ydF9zdGRlcnJfc2hhMjU2IjpzaGEoZXJyKSwidHJhbnNwb3J0X3N0ZGVycl9ieXRlcyI6bGVuKGVycil9CiAgICBpZiByYyE9MDogelsib2siXT1GYWxzZTsgcmV0dXJuIHoKICAgIHRyeTogZG9jPWpzb24ubG9hZHMob3V0LmRlY29kZSgidXRmLTgiLCJzdHJpY3QiKSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZTogelsib2siXT1GYWxzZTt6WyJlcnJvciJdPSJRR0FfSlNPTl8iK3R5cGUoZSkuX19uYW1lX187cmV0dXJuIHoKICAgIGlmIGRvYy5nZXQoIm91dC10cnVuY2F0ZWQiKSBvciBkb2MuZ2V0KCJlcnItdHJ1bmNhdGVkIik6IHpbIm9rIl09RmFsc2U7elsiZXJyb3IiXT0iUUdBX1RSVU5DQVRFRCI7cmV0dXJuIHoKICAgIHpbImlubmVyX3JjIl09ZG9jLmdldCgiZXhpdGNvZGUiKTt6WyJndWVzdF9zdGRlcnJfcHJlc2VudCJdPWJvb2woZG9jLmdldCgiZXJyLWRhdGEiKSkKICAgIHRyeToKICAgICAgICB6WyJyZXBvcnQiXT1qc29uLmxvYWRzKGRvYy5nZXQoIm91dC1kYXRhIiwiIikpO3pbIm9rIl09KGRvYy5nZXQoImV4aXRjb2RlIik9PTApCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6IHpbIm9rIl09RmFsc2U7elsiZXJyb3IiXT0iR1VFU1RfSlNPTl8iK3R5cGUoZSkuX19uYW1lX18KICAgIHJldHVybiB6CmRlZiBwYXlsb2FkKHNzKToKICAgIGQ9anNvbi5kdW1wcyh7InNpdGVzIjpzc30sc2VwYXJhdG9ycz0oIiwiLCI6IikpCiAgICByZXR1cm4gKCJpbXBvcnQgYmFzZTY0LHN5cyxpbztzeXMuc3RkaW49aW8uU3RyaW5nSU8oIityZXByKGQpKyIpO2V4ZWMoY29tcGlsZShiYXNlNjQuYjY0ZGVjb2RlKCIrcmVwcihiYXNlNjQuYjY0ZW5jb2RlKEdVRVNUKS5kZWNvZGUoKSkrIiksJzxnPicsJ2V4ZWMnKSkiKS5lbmNvZGUoKQpkZWYgcWdhX3B2ZTAyKHNzKToKICAgIGd1YXJkPSd0ZXN0ICIkKGlkIC11KTokKGhvc3RuYW1lIC1zKSIgPSAwOnB2ZTAyIHx8IGV4aXQgNzI7IGV4ZWMgL3Vzci9zYmluL3FtIGd1ZXN0IGV4ZWMgMTYwIC0tc3luY2hyb25vdXMgMSAtLXRpbWVvdXQgMTkwIC0tcGFzcy1zdGRpbiAxIC0tIC91c3IvYmluL3B5dGhvbjMgLUkgLUIgLScKICAgIHJjLG91dCxlcnI9cnVuKFsiL3Vzci9iaW4vc3NoIiwiLVQiLCItbyIsIkJhdGNoTW9kZT15ZXMiLCItbyIsIlN0cmljdEhvc3RLZXlDaGVja2luZz15ZXMiLCItbyIsIkNvbm5lY3RUaW1lb3V0PTgiLCJyb290QHB2ZTAyIixndWFyZF0scGF5bG9hZChzcyksMjE1KQogICAgcmV0dXJuIHBhcnNlX3FnYShyYyxvdXQsZXJyKQpkZWYgcWdhX2xvY2FsKHNzKToKICAgIHJjLG91dCxlcnI9cnVuKFsiL3Vzci9zYmluL3FtIiwiZ3Vlc3QiLCJleGVjIiwiMjEwIiwiLS1zeW5jaHJvbm91cyIsIjEiLCItLXRpbWVvdXQiLCIxOTAiLCItLXBhc3Mtc3RkaW4iLCIxIiwiLS0iLCIvdXNyL2Jpbi9weXRob24zIiwiLUkiLCItQiIsIi0iXSxwYXlsb2FkKHNzKSwyMTUpCiAgICByZXR1cm4gcGFyc2VfcWdhKHJjLG91dCxlcnIpCgppZiBvcy5nZXRldWlkKCkhPTAgb3Igb3MudW5hbWUoKS5ub2RlbmFtZS5zcGxpdCgiLiIpWzBdIT0icHZlMDEiOgogICAgcHJpbnQoIkdSQU01MTVSMlIxX0RFQ0lTSU9OPUZBSUxfRVhQRUNURURfUk9PVF9QVkUwMSIpCiAgICBwcmludCgiSE9NRUxBQl9SRVNVTFRfQ09OVFJBQ1Q9Iitqc29uLmR1bXBzKHsidmVyc2lvbiI6MSwiY29tbWFuZF9pZCI6Q0lELCJzdGF0dXMiOiJGQUlMIiwiY2hhbmdlc19tYWRlIjpGYWxzZSwicm9sbGJhY2tfc3RhcnRlZCI6RmFsc2UsInJvbGxiYWNrX3Jlc3RvcmVkIjpOb25lfSxzZXBhcmF0b3JzPSgiLCIsIjoiKSkpCiAgICByYWlzZSBTeXN0ZW1FeGl0KDMpCgphPXFnYV9wdmUwMihbeCBmb3IgeCBpbiBTSVRFUyBpZiB4WyJ2bWlkIl09PTE2MF0pCmI9cWdhX2xvY2FsKFt4IGZvciB4IGluIFNJVEVTIGlmIHhbInZtaWQiXT09MjEwXSkKcm93cz1bXQpmb3IgcGFydCBpbiAoYSxiKToKICAgIGlmIHBhcnQuZ2V0KCJvayIpIGFuZCBpc2luc3RhbmNlKHBhcnQuZ2V0KCJyZXBvcnQiKSxkaWN0KTogcm93cy5leHRlbmQocGFydFsicmVwb3J0Il0uZ2V0KCJyb3dzIikgb3IgW10pCgpzaXRlNz0obGVuKHJvd3MpPT03KQpkYjc9c2l0ZTcgYW5kIGFsbCh4LmdldCgicmMiKT09MCBhbmQgKHguZ2V0KCJkYiIpIG9yIHt9KS5nZXQoIm9rIikgaXMgVHJ1ZSBmb3IgeCBpbiByb3dzKQphbGxfcGVybTk9ZGI3IGFuZCBhbGwobGVuKCh4WyJkYiJdLmdldCgicGVybWlzc2lvbl9yb3dzIikgb3IgW10pKT09OSBmb3IgeCBpbiByb3dzKQphbGxfY29tYm9fbm9fZ3JhbT1kYjcgYW5kIGFsbChhbGwobm90IHMuZ2V0KCJjYWNoZV9oYXNfZ3JhbVN1cHBvcnQiKSBmb3IgcyBpbiAoeFsiZGIiXS5nZXQoInN0YWZmIikgb3IgW10pKSBmb3IgeCBpbiByb3dzKQppZmFjZV9zdGF0ZT1beyJzbHVnIjp4LmdldCgic2x1ZyIpLCJyb3dzIjooeC5nZXQoImRiIikgb3Ige30pLmdldCgiaW50ZXJmYWNlX2dyb3VwX3Jvd3MiKSBvciBbXX0gZm9yIHggaW4gcm93c10KcmVnaXN0cnk9W3sic2x1ZyI6eC5nZXQoInNsdWciKSwicmVnaXN0cnkiOih4LmdldCgiZGIiKSBvciB7fSkuZ2V0KCJyZWdpc3RyeSIpIG9yIFtdLCJwZXJtaXNzaW9uX3RhYmxlcyI6KHguZ2V0KCJkYiIpIG9yIHt9KS5nZXQoInBlcm1pc3Npb25fdGFibGVzIikgb3IgW10sInN0YWZmIjooeC5nZXQoImRiIikgb3Ige30pLmdldCgic3RhZmYiKSBvciBbXSwiYWRkb25fcGVybWlzc2lvbl9kYXRhX2ZpbGVzIjooeC5nZXQoImRiIikgb3Ige30pLmdldCgiYWRkb25fcGVybWlzc2lvbl9kYXRhX2ZpbGVzIikgb3Ige319IGZvciB4IGluIHJvd3NdCmNvcmVfc2NhbnM9W3sic2x1ZyI6eC5nZXQoInNsdWciKSwiY29yZV9zY2FuIjp4LmdldCgiY29yZV9zY2FuIikgb3IgW119IGZvciB4IGluIHJvd3MgaWYgeC5nZXQoImNvcmVfc2NhbiIpIGlzIG5vdCBOb25lXQoKcmVwb3J0PXsKICJzY2hlbWFfdmVyc2lvbiI6MSwKICJzY29wZSI6IlJFQURfT05MWV9HUkFNX1NVUFBPUlRfUEVSTUlTU0lPTl9SRUdJU1RSWV9BTkRfQlVJTERFUl9SQ0EiLAogInNpdGVfY291bnQiOmxlbihyb3dzKSwKICJjbGFzc2lmaWNhdGlvbiI6ewogICAic2l0ZV9jb3VudF83IjpzaXRlNywKICAgImRiX3Byb2JlXzdvZjciOmRiNywKICAgInBlcm1pc3Npb25fZGVmc185XzdvZjciOmFsbF9wZXJtOSwKICAgInN0YWZmX2NhY2hlX21pc3NpbmdfZ3JhbVN1cHBvcnRfN29mNyI6YWxsX2NvbWJvX25vX2dyYW0sCiAgICJjaGFuZ2VzX21hZGUiOkZhbHNlLAogICAic2VuZF9hdHRlbXB0cyI6MAogfSwKICJpbnRlcmZhY2VfZ3JvdXBfc3RhdGUiOmlmYWNlX3N0YXRlLAogInJlZ2lzdHJ5X2FuZF9jb21iaW5hdGlvbl9zdGF0ZSI6cmVnaXN0cnksCiAiY29yZV9zb3VyY2Vfc2NhbnMiOmNvcmVfc2NhbnMsCiAidHJhbnNwb3J0Ijp7InZtMTYwIjp7azp2IGZvciBrLHYgaW4gYS5pdGVtcygpIGlmIGshPSJyZXBvcnQifSwidm0yMTAiOntrOnYgZm9yIGssdiBpbiBiLml0ZW1zKCkgaWYgayE9InJlcG9ydCJ9fQp9CnByaW50KCJHUkFNNTE1UjJSMV9TQUZFX1JFUE9SVD0iK2pzb24uZHVtcHMocmVwb3J0LGVuc3VyZV9hc2NpaT1UcnVlLHNvcnRfa2V5cz1UcnVlLHNlcGFyYXRvcnM9KCIsIiwiOiIpKSkKaWYgc2l0ZTcgYW5kIGRiNzoKICAgIHByaW50KCJHUkFNNTE1UjJSMV9ERUNJU0lPTj1QQVNTX1BFUk1JU1NJT05fUkVHSVNUUllfUkNBX0VWSURFTkNFX0NBUFRVUkVEIikKICAgIHByaW50KCJHUkFNNTE1UjJSMV9ORVhUX0dBVEU9UkVWSUVXX0VYQUNUX1VQU1RSRUFNX0NBQ0hFX09SX01FVEFEQVRBX0ZJWCIpCiAgICBzdD0iT0siO3JjPTAKZWxzZToKICAgIHByaW50KCJHUkFNNTE1UjJSMV9ERUNJU0lPTj1IT0xEX1BFUk1JU1NJT05fUkVHSVNUUllfUkNBX0lOQ09NUExFVEUiKQogICAgcHJpbnQoIkdSQU01MTVSMlIxX05FWFRfR0FURT1TVE9QX05PX01VVEFUSU9OIikKICAgIHN0PSJGQUlMIjtyYz0zCnByaW50KCJIT01FTEFCX1JFU1VMVF9DT05UUkFDVD0iK2pzb24uZHVtcHMoeyJ2ZXJzaW9uIjoxLCJjb21tYW5kX2lkIjpDSUQsInN0YXR1cyI6c3QsImNoYW5nZXNfbWFkZSI6RmFsc2UsInJvbGxiYWNrX3N0YXJ0ZWQiOkZhbHNlLCJyb2xsYmFja19yZXN0b3JlZCI6Tm9uZX0sc2VwYXJhdG9ycz0oIiwiLCI6IikpKQpyYWlzZSBTeXN0ZW1FeGl0KHJjKQo="),"<gram515r2r1>","exec"))
                  ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<gram515r2r1>", line 3, in <module>
NameError: name 'true' is not defined. Did you mean: 'True'?

OUTPUT_END
CHAT_OUTPUT_END
