# Archivo

## Introducción

Una consulta de estado de documento electrónico es un servicio que permite verificar el estado actual de un documento, como una factura electrónica, y tiene la misma validez legal que una verificación de estado realizada de manera tradicional. Este servicio es crucial para asegurar que el documento se ha creado, enviado y almacenado digitalmente. Además, este procedimiento electrónico debe contener todos los datos fiscales necesarios que permitan confirmar el estado del documento entre el emisor y el receptor, garantizando así la transparencia y la correcta gestión de las transacciones electrónicas.

**Beneficios de la Facturación Electrónica**

* **Eficiencia Operativa:** La automatización del proceso de facturación reduce la carga administrativa, disminuyendo los errores humanos y acelerando las transacciones.
* **Reducción de Costos:** Menores gastos en papel, impresión, envío y almacenamiento de documentos físicos.
* **Acceso y Gestión Simplificados:** El almacenamiento digital facilita la búsqueda y gestión de documentos, lo que es especialmente útil para auditorías y cumplimiento fiscal.

## Autenticación

Para acceder al servicio de facturación electrónica a través de nuestra API SOAP deben de identificarse y autenticarse usando una credencial única denominada **Clave**.

La autenticación se realiza incluyendo la credencial en el cuerpo del mensaje SOAP, dentro del nodo `<Clave>`. A continuación, se describe la estructura de la solicitud.

Ejemplo:

```xml
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:emis="https://ec.edocnube.com/api/emision" xmlns:com="https://ec.edocnube.com/api/emision/compretencion" xmlns:ext="https://ec.edocnube.com/api/emision/extensiones">
   <soapenv:Header/>
   <soapenv:Body>
      <emis:EmitirFactura>
         <emis:Clave>{CLAVE_VALOR}</Clave>
         <emis:Factura/>
      </emis:EmitirFactura>
   </soapenv:Body>
</soapenv:Envelope>
```

<table><thead><tr><th width="165">Elemento</th><th>Descripción</th></tr></thead><tbody><tr><td>Clave</td><td><strong>Requerido.</strong> Credencial única proporcionada a la empresa para autenticarse. Esta clave es específica y debe mantenerse confidencial.</td></tr></tbody></table>

{% tabs %}
{% tab title="JavaScript" %}

```javascript
 url = '/URL_SOAP_EMISION/EmitirDocumentoService.svc?wsdl';

// XML del mensaje SOAP
const soapRequest = `
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:emis="https://ec.edocnube.com/api/emision" xmlns:com="https://ec.edocnube.com/api/emision/compretencion" xmlns:ext="https://ec.edocnube.com/api/emision/extensiones">
   <soapenv:Header/>
   <soapenv:Body>
      <emis:EmitirFactura>
         <emis:Clave>{CLAVE_VALOR}</Clave>
         <emis:Factura/>
      </emis:EmitirFactura>
   </soapenv:Body>
</soapenv:Envelope>
`;

// Configuración de la solicitud HTTP
const headers = {
  'Content-Type': 'text/xml; charset=utf-8', // Tipo de contenido para SOAP
  SOAPAction: 'http://tempuri.org/EmitirDocumentoService/EmitirFactura', // Acción SOAP específica
};

// Realizar la solicitud con fetch
fetch(url, {
  method: 'POST',
  headers: headers,
  body: soapRequest,
})
  .then((response) => {
    if (!response.ok) {
      throw new Error(`HTTP error! status: ${response.status}`);
    }
    return response.text();
  })
  .then((data) => {
    console.log('Respuesta SOAP:', data);
  })
  .catch((error) => {
    console.error('Error en la solicitud SOAP:', error.message);
  });

```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
// URL del servicio WSDL
$wsdl = "/URL_SOAP_EMISION/EmitirDocumentoService.svc?wsdl";

try {
    // Crear un cliente SOAP
    $client = new SoapClient($wsdl, [
        'trace' => true,       // Habilitar trazas para depuración
        'cache_wsdl' => WSDL_CACHE_NONE, // No cachear el WSDL
        'exceptions' => true   // Lanzar excepciones en errores
    ]);

    // Parámetros para el método
    $params = [
        "Clave" => "{CLAVE_VALOR}", // Credencial única
        "Factura" => null
    ];

    // Llamar al método
    $response = $client->__soapCall("EmitirFactura", [$params]);

    // Mostrar la respuesta
    echo "Respuesta SOAP:\n";
    print_r($response);
} catch (SoapFault $fault) {
    // Manejo de errores
    echo "Error SOAP: " . $fault->getMessage() . "\n";
    echo "Código de error: " . $fault->faultcode . "\n";
    echo "Detalles:\n" . $fault->detail . "\n";
}
?>

```

{% endtab %}

{% tab title="C#" %}

```csharp
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        string url = "/URL_SOAP_EMISION/EmitirDocumentoService.svc";
        string soapAction = "http://tempuri.org/EmitirDocumentoService/EmitirFactura";
        
        string soapEnvelope = @"<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:emis="https://ec.edocnube.com/api/emision" xmlns:com="https://ec.edocnube.com/api/emision/compretencion" xmlns:ext="https://ec.edocnube.com/api/emision/extensiones">
           <soapenv:Header/>
           <soapenv:Body>
              <emis:EmitirFactura>
                 <emis:Clave>{CLAVE_VALOR}</Clave>
                 <emis:Factura/>
              </emis:EmitirFactura>
           </soapenv:Body>
        </soapenv:Envelope>";

        using (HttpClient client = new HttpClient())
        {
            var request = new HttpRequestMessage(HttpMethod.Post, url)
            {
                Content = new StringContent(soapEnvelope, Encoding.UTF8, "text/xml")
            };
            request.Headers.Add("SOAPAction", soapAction);

            HttpResponseMessage response = await client.SendAsync(request);
            string responseContent = await response.Content.ReadAsStringAsync();

            Console.WriteLine("Respuesta del servidor:");
            Console.WriteLine(responseContent);
        }
    }
}

```

{% endtab %}

{% tab title="Python" %}

```python
import requests

# URL del servicio SOAP
url = "/URL_SOAP_EMISION/EmitirDocumentoService.svc"

# Cabeceras HTTP
headers = {
    "Content-Type": "text/xml; charset=utf-8",
    "SOAPAction": "http://tempuri.org/EmitirDocumentoService/EmitirFactura"
}

# Cuerpo del mensaje SOAP
soap_body = """<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:emis="https://ec.edocnube.com/api/emision" xmlns:com="https://ec.edocnube.com/api/emision/compretencion" xmlns:ext="https://ec.edocnube.com/api/emision/extensiones">
   <soapenv:Header/>
   <soapenv:Body>
      <emis:EmitirFactura>
         <emis:Clave>{CLAVE_VALOR}</Clave>
         <emis:Factura/>
      </emis:EmitirFactura>
   </soapenv:Body>
</soapenv:Envelope>"""

try:
    # Enviar la solicitud POST
    response = requests.post(url, data=soap_body, headers=headers)

    # Verificar el estado de la respuesta
    if response.status_code == 200:
        print("Respuesta del servidor:")
        print(response.text)
    else:
        print(f"Error en la solicitud: {response.status_code}")
        print(response.text)

except requests.exceptions.RequestException as e:
    print(f"Error al realizar la solicitud: {e}")

```

{% endtab %}

{% tab title="Curl" %}

```bash
curl -X POST "/URL_SOAP_EMISION/EmitirDocumentoService.svc" \
-H "Content-Type: text/xml; charset=utf-8" \
-H "SOAPAction: http://tempuri.org/EmitirDocumentoService/EmitirFactura" \
-d '<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:emis="https://ec.edocnube.com/api/emision" xmlns:com="https://ec.edocnube.com/api/emision/compretencion" xmlns:ext="https://ec.edocnube.com/api/emision/extensiones">
   <soapenv:Header/>
   <soapenv:Body>
      <emis:EmitirFactura>
         <emis:Clave>{CLAVE_VALOR}</Clave>
         <emis:Factura/>
      </emis:EmitirFactura>
   </soapenv:Body>
</soapenv:Envelope>'

```

{% endtab %}
{% endtabs %}

## Consulta el archivo del documento electrónico

En esta sección, abordaremos los detalles técnicos específicos del proceso de consulta de archivo de documentos electrónicos utilizando la tecnología SOAP. Exploraremos cómo este enfoque facilita la integración eficiente y segura de los sistemas de gestión documental dentro de las infraestructuras empresariales existentes, asegurando la conformidad con los estándares legales y fiscales relevantes. Nos centraremos en la implementación de SOAP para describir las interacciones entre los sistemas y los métodos empleados para la recuperación y visualización de documentos electrónicos.

## Estados eDoc

La gestión adecuada de los estados eDoc es crucial en el sistema de facturación electrónica, ya que cada estado refleja una etapa específica en el proceso de validación y envío de documentos a la entidad tributaria. A continuación, se presenta una tabla que describe cada uno de los estados eDoc, proporcionando claridad sobre las acciones necesarias según el estado en que se encuentre el documento.

<table><thead><tr><th width="88" align="center">Valor</th><th>Descripción</th><th>Causa</th><th>Solución</th></tr></thead><tbody><tr><td align="center">2</td><td>Documento autorizado por el ente tributario</td><td>Documento autorizado por el SRI</td><td>Ninguna</td></tr><tr><td align="center">3</td><td>Documento no autorizado por el ente tributario</td><td>Documento no superó la validación debido al incumplimiento de las reglas de negocio establecidas por el SRI</td><td>Realizar la corrección de los datos del documento y emitirlo nuevamente</td></tr><tr><td align="center">4</td><td>Error al emitir o consultar el documento en eDoc</td><td>Ha ocurrido un error en eDoc, el cual ha sido identificado con un código para su seguimiento y solución</td><td>Levantar un ticket de atención en el portal de soporte técnico de GuruSoft</td></tr><tr><td align="center">5</td><td>Documento en espera de autorización por parte del ente tributario</td><td>eDoc no pudo establecer una conexión con el SRI para consultar la autorización del documento, se realizará una reconsulta automática posteriormente</td><td>Realizar la consulta del estado del documento mediante la API correspondiente, una vez transcurrido un intervalo de tiempo adecuado</td></tr><tr><td align="center">6</td><td>Documento rechazado por el ente tributario</td><td>Documento no cumplió con las validaciones de estructura y/o formato XML requeridas por el SRI</td><td>Realizar la corrección de los datos del documento y emitirlo nuevamente</td></tr><tr><td align="center">7</td><td>Documento en espera de recepción por parte del ente tributario</td><td>eDoc no pudo establecer una conexión con el SRI para transmitir el documento, se realizará un reenvío automático posteriormente</td><td>Realizar la consulta del estado del documento mediante la API correspondiente, una vez transcurrido un intervalo de tiempo adecuado</td></tr><tr><td align="center">11</td><td>Documento anulado en eDoc</td><td>Documento ha sido anulado por el emisor mediante el portal web del SRI</td><td>Una vez alcanzado este estado, el documento no puede ser modificado ni revertido</td></tr><tr><td align="center">15</td><td>Solicitud de emisión o consulta rechazada por eDoc</td><td>Solicitud de emisión o consulta no cumplió con las validaciones de estructura y/o formato XML requeridas por eDoc</td><td>Realizar la corrección de los datos del documento y emitirlo nuevamente</td></tr><tr><td align="center">18</td><td>Documento no encontrado en eDoc</td><td>Documento consultado no fue encontrando en eDoc</td><td>Realizar la corrección de los parámetros de la consulta y repetir el proceso</td></tr></tbody></table>

## Diccionario de datos

{% embed url="<https://wiki.edocnube.com/diccionario/Documentation/FromXml?classname=&p1=AJkuNFFcBIW7i1zn63Wd0zMug5qnw8YUIJVZZ4GV6wKJLsD/zqmX3g7ojWIfC7B6g7sCzj3eGRxTklfJ+lpnkcR7fXoHZszbiUl1yOPVS6JaBlwF/lISIm/ED8KEQVmI&p2=EoWbYb/FBQ7+HIWWn+AakB3g3J1gzmJ9kA8zwIvk7Vw=&p3=ASz1RE4QhWU=&p4=L5lbnPmTSNE=&p5=42yljgltFnM=&p6=0h6AVWZOsDA=>" %}

## Consumo

### Request

{% tabs %}
{% tab title="JavaScript" %}

```javascript
 url = '/URL_SOAP_EMISION/ConsultarDocumentoService.svc?wsdl';

// XML del mensaje SOAP
const soapRequest = `
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:con="https://ec.edocnube.com/api/emision/consulta" xmlns:arc="https://ec.edocnube.com/api/emision/consulta/archivo">
   <soapenv:Header/>
   <soapenv:Body>
      <emis:ConsultarArchivo>
         <emis:Clave>{CLAVE_VALOR}</Clave>
         <emis:ConsultaArchivo/>
      </emis:ConsultarArchivo>
   </soapenv:Body>
</soapenv:Envelope>
`;

// Configuración de la solicitud HTTP
const headers = {
  'Content-Type': 'text/xml; charset=utf-8', // Tipo de contenido para SOAP
  SOAPAction: 'http://tempuri.org/ConsultarDocumentoService/ConsultarArchivo', // Acción SOAP específica
};

// Realizar la solicitud con fetch
fetch(url, {
  method: 'POST',
  headers: headers,
  body: soapRequest,
})
  .then((response) => {
    if (!response.ok) {
      throw new Error(`HTTP error! status: ${response.status}`);
    }
    return response.text();
  })
  .then((data) => {
    console.log('Respuesta SOAP:', data);
  })
  .catch((error) => {
    console.error('Error en la solicitud SOAP:', error.message);
  });

```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
// URL del servicio WSDL
$wsdl = "/URL_SOAP_EMISION/ConsultarDocumentoService.svc?wsdl";

try {
    // Crear un cliente SOAP
    $client = new SoapClient($wsdl, [
        'trace' => true,       // Habilitar trazas para depuración
        'cache_wsdl' => WSDL_CACHE_NONE, // No cachear el WSDL
        'exceptions' => true   // Lanzar excepciones en errores
    ]);

    // Parámetros para el método
    $params = [
        "Clave" => "{CLAVE_VALOR}", // Credencial única
        "ConsultaArchivo" => null
    ];

    // Llamar al método
    $response = $client->__soapCall("ConsultarArchivo", [$params]);

    // Mostrar la respuesta
    echo "Respuesta SOAP:\n";
    print_r($response);
} catch (SoapFault $fault) {
    // Manejo de errores
    echo "Error SOAP: " . $fault->getMessage() . "\n";
    echo "Código de error: " . $fault->faultcode . "\n";
    echo "Detalles:\n" . $fault->detail . "\n";
}
?>

```

{% endtab %}

{% tab title="C#" %}

```csharp
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        string url = "/URL_SOAP_EMISION/ConsultarDocumentoService.svc";
        string soapAction = "http://tempuri.org/ConsultarDocumentoService/ConsultarArchivo";
        
        string soapEnvelope = @"<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:con="https://ec.edocnube.com/api/emision/consulta" xmlns:arc="https://ec.edocnube.com/api/emision/consulta/archivo">
           <soapenv:Header/>
           <soapenv:Body>
              <emis:ConsultarArchivo>
                 <emis:Clave>{CLAVE_VALOR}</Clave>
                 <emis:ConsultaArchivo/>
              </emis:ConsultarArchivo>
           </soapenv:Body>
        </soapenv:Envelope>";

        using (HttpClient client = new HttpClient())
        {
            var request = new HttpRequestMessage(HttpMethod.Post, url)
            {
                Content = new StringContent(soapEnvelope, Encoding.UTF8, "text/xml")
            };
            request.Headers.Add("SOAPAction", soapAction);

            HttpResponseMessage response = await client.SendAsync(request);
            string responseContent = await response.Content.ReadAsStringAsync();

            Console.WriteLine("Respuesta del servidor:");
            Console.WriteLine(responseContent);
        }
    }
}

```

{% endtab %}

{% tab title="Python" %}

```python
import requests

# URL del servicio SOAP
url = "/URL_SOAP_EMISION/ConsultarDocumentoService.svc"

# Cabeceras HTTP
headers = {
    "Content-Type": "text/xml; charset=utf-8",
    "SOAPAction": "http://tempuri.org/ConsultarDocumentoService/ConsultarArchivo"
}

# Cuerpo del mensaje SOAP
soap_body = """<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:con="https://ec.edocnube.com/api/emision/consulta" xmlns:arc="https://ec.edocnube.com/api/emision/consulta/archivo">
   <soapenv:Header/>
   <soapenv:Body>
      <emis:ConsultarArchivo>
         <emis:Clave>{CLAVE_VALOR}</Clave>
         <emis:ConsultaArchivo/>
      </emis:ConsultarArchivo>
   </soapenv:Body>
</soapenv:Envelope>"""

try:
    # Enviar la solicitud POST
    response = requests.post(url, data=soap_body, headers=headers)

    # Verificar el estado de la respuesta
    if response.status_code == 200:
        print("Respuesta del servidor:")
        print(response.text)
    else:
        print(f"Error en la solicitud: {response.status_code}")
        print(response.text)

except requests.exceptions.RequestException as e:
    print(f"Error al realizar la solicitud: {e}")
```

{% endtab %}

{% tab title="Curl" %}

```bash
curl -X POST "/URL_SOAP_EMISION/ConsultarDocumentoService.svc" \
-H "Content-Type: text/xml; charset=utf-8" \
-H "SOAPAction: http://tempuri.org/ConsultarDocumentoService/ConsultarArchivo" \
-d '<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:con="https://ec.edocnube.com/api/emision/consulta" xmlns:arc="https://ec.edocnube.com/api/emision/consulta/archivo">
   <soapenv:Header/>
   <soapenv:Body>
      <emis:ConsultarArchivo>
         <emis:Clave>{CLAVE_VALOR}</Clave>
         <emis:ConsultaArchivo/>
      </emis:ConsultarArchivo>
   </soapenv:Body>
</soapenv:Envelope>'
```

{% endtab %}
{% endtabs %}

### Response

En una comunicación SOAP, las respuestas HTTP pueden variar según el estado y el contenido de la comunicación:

* **200 (OK)**: La solicitud se procesó correctamente y devuelve un mensaje SOAP en XML con los detalles de la respuesta.

Estas respuestas permiten manejar adecuadamente los distintos escenarios de comunicación.

{% tabs %}
{% tab title="Estado HTTP 200" %}

```xml
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
   <s:Body>
      <ConsultarArchivoResponse xmlns="https://ec.edocnube.com/api/emision/consulta" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
         <Archivo>77u/PGF1dG9yaXphY2lvbj4NCiAgPGVzdGFkbz5BVVRPUklaQURPPC9lc3RhZG8+DQogIDxudW1lcm9BdXRvcml6YWNpb24+MjQwNDIwMjUwMTA5OTI3Mzc5NjQwMDExMDAxMDE1MDAwMDAwMDIyNDI3Njg1MTMxODwvbnVtZXJvQXV0b3JpemFjaW9uPg0KICA8ZmVjaGFBdXRvcml6YWNpb24+MDkvMDYvMjAyNSAxNzoyOToyNDwvZmVjaGFBdXRvcml6YWNpb24+DQogIDxhbWJpZW50ZT5QUlVFQkFTPC9hbWJpZW50ZT4NCiAgPGNvbXByb2JhbnRlPjwhW0NEQVRBWzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+CjxmYWN0dXJhIGlkPSJjb21wcm9iYW50ZSIgdmVyc2lvbj0iMS4wLjAiPgogIDxpbmZvVHJpYnV0YXJpYT4KICAgIDxhbWJpZW50ZT4xPC9hbWJpZW50ZT4KICAgIDx0aXBvRW1pc2lvbj4xPC90aXBvRW1pc2lvbj4KICAgIDxyYXpvblNvY2lhbD5HdXJ1U29mdCBTLkEuPC9yYXpvblNvY2lhbD4KICAgIDxub21icmVDb21lcmNpYWw+R3VydVNvZnQgUy5BLjwvbm9tYnJlQ29tZXJjaWFsPgogICAgPHJ1Yz4wOTkyNzM3OTY0MDAxPC9ydWM+CiAgICA8Y2xhdmVBY2Nlc28+MjQwNDIwMjUwMTA5OTI3Mzc5NjQwMDExMDAxMDE1MDAwMDAwMDIyNDI3Njg1MTMxODwvY2xhdmVBY2Nlc28+CiAgICA8Y29kRG9jPjAxPC9jb2REb2M+CiAgICA8ZXN0YWI+MDAxPC9lc3RhYj4KICAgIDxwdG9FbWk+MDE1PC9wdG9FbWk+CiAgICA8c2VjdWVuY2lhbD4wMDAwMDAwMjI8L3NlY3VlbmNpYWw+CiAgICA8ZGlyTWF0cml6PkF2IGRlIGxhcyBBbWVyaWNhcyA1MTAgRWRpZmljaW8gU2t5IEJ1aWxkaW5nIFBpc28gNCBPZmljaW5hIDQwOSBHdWF5YXF1aWwg4oCTIEVjdWFkb3I8L2Rpck1hdHJpej4KICAgIDxjb250cmlidXllbnRlUmltcGU+Q09OVFJJQlVZRU5URSBSw4lHSU1FTiBSSU1QRTwvY29udHJpYnV5ZW50ZVJpbXBlPgogIDwvaW5mb1RyaWJ1dGFyaWE+CiAgPGluZm9GYWN0dXJhPgogICAgPGZlY2hhRW1pc2lvbj4yNC8wNC8yMDI1PC9mZWNoYUVtaXNpb24+CiAgICA8ZGlyRXN0YWJsZWNpbWllbnRvPkF2IGRlIGxhcyBBbWVyaWNhcyA1MTAgRWRpZmljaW8gU2t5IEJ1aWxkaW5nIFBpc28gNCBPZmljaW5hIDQwOSBHdWF5YXF1aWwg4oCTIEVjdWFkb3I8L2RpckVzdGFibGVjaW1pZW50bz4KICAgIDxvYmxpZ2Fkb0NvbnRhYmlsaWRhZD5TSTwvb2JsaWdhZG9Db250YWJpbGlkYWQ+CiAgICA8dGlwb0lkZW50aWZpY2FjaW9uQ29tcHJhZG9yPjA1PC90aXBvSWRlbnRpZmljYWNpb25Db21wcmFkb3I+CiAgICA8Z3VpYVJlbWlzaW9uPjAwMS0wMDEtMDAwMDAwMDAxPC9ndWlhUmVtaXNpb24+CiAgICA8cmF6b25Tb2NpYWxDb21wcmFkb3I+Sm9zw6kgWmFtYnJhbm8gT3J0ZWdhPC9yYXpvblNvY2lhbENvbXByYWRvcj4KICAgIDxpZGVudGlmaWNhY2lvbkNvbXByYWRvcj4wOTI5MTM2ODY5PC9pZGVudGlmaWNhY2lvbkNvbXByYWRvcj4KICAgIDxkaXJlY2Npb25Db21wcmFkb3I+RHVyw6FuLCBVcmIuIExhIE1hcnRpbmE8L2RpcmVjY2lvbkNvbXByYWRvcj4KICAgIDx0b3RhbFNpbkltcHVlc3Rvcz4xMDAwLjAwPC90b3RhbFNpbkltcHVlc3Rvcz4KICAgIDx0b3RhbERlc2N1ZW50bz4wLjAwPC90b3RhbERlc2N1ZW50bz4KICAgIDx0b3RhbENvbkltcHVlc3Rvcz4KICAgICAgPHRvdGFsSW1wdWVzdG8+CiAgICAgICAgPGNvZGlnbz4yPC9jb2RpZ28+CiAgICAgICAgPGNvZGlnb1BvcmNlbnRhamU+NDwvY29kaWdvUG9yY2VudGFqZT4KICAgICAgICA8YmFzZUltcG9uaWJsZT4xMDAwLjAwPC9iYXNlSW1wb25pYmxlPgogICAgICAgIDx2YWxvcj4xNTAuMDA8L3ZhbG9yPgogICAgICA8L3RvdGFsSW1wdWVzdG8+CiAgICA8L3RvdGFsQ29uSW1wdWVzdG9zPgogICAgPHByb3BpbmE+MC4wMDwvcHJvcGluYT4KICAgIDxpbXBvcnRlVG90YWw+MTE1MC4wMDwvaW1wb3J0ZVRvdGFsPgogICAgPG1vbmVkYT5ET0xBUjwvbW9uZWRhPgogICAgPHBhZ29zPgogICAgICA8cGFnbz4KICAgICAgICA8Zm9ybWFQYWdvPjAxPC9mb3JtYVBhZ28+CiAgICAgICAgPHRvdGFsPjEwMDAuMDA8L3RvdGFsPgogICAgICA8L3BhZ28+CiAgICA8L3BhZ29zPgogIDwvaW5mb0ZhY3R1cmE+CiAgPGRldGFsbGVzPgogICAgPGRldGFsbGU+CiAgICAgIDxjb2RpZ29QcmluY2lwYWw+RURPQzAxPC9jb2RpZ29QcmluY2lwYWw+CiAgICAgIDxjb2RpZ29BdXhpbGlhcj4/PC9jb2RpZ29BdXhpbGlhcj4KICAgICAgPGRlc2NyaXBjaW9uPmVEb2MgRW1wcmVzYXJpYWwgRUM8L2Rlc2NyaXBjaW9uPgogICAgICA8Y2FudGlkYWQ+MS4wMDwvY2FudGlkYWQ+CiAgICAgIDxwcmVjaW9Vbml0YXJpbz4xMDAwLjAwPC9wcmVjaW9Vbml0YXJpbz4KICAgICAgPGRlc2N1ZW50bz4wLjAwPC9kZXNjdWVudG8+CiAgICAgIDxwcmVjaW9Ub3RhbFNpbkltcHVlc3RvPjEwMDAuMDA8L3ByZWNpb1RvdGFsU2luSW1wdWVzdG8+CiAgICAgIDxkZXRhbGxlc0FkaWNpb25hbGVzPgogICAgICAgIDxkZXRBZGljaW9uYWwgbm9tYnJlPSJUaXBvIGRlIGxpY2VuY2lhIiB2YWxvcj0iTnViZSI+PC9kZXRBZGljaW9uYWw+CiAgICAgIDwvZGV0YWxsZXNBZGljaW9uYWxlcz4KICAgICAgPGltcHVlc3Rvcz4KICAgICAgICA8aW1wdWVzdG8+CiAgICAgICAgICA8Y29kaWdvPjI8L2NvZGlnbz4KICAgICAgICAgIDxjb2RpZ29Qb3JjZW50YWplPjQ8L2NvZGlnb1BvcmNlbnRhamU+CiAgICAgICAgICA8dGFyaWZhPjE1LjAwPC90YXJpZmE+CiAgICAgICAgICA8YmFzZUltcG9uaWJsZT4xMDAwLjAwPC9iYXNlSW1wb25pYmxlPgogICAgICAgICAgPHZhbG9yPjE1MC4wMDwvdmFsb3I+CiAgICAgICAgPC9pbXB1ZXN0bz4KICAgICAgPC9pbXB1ZXN0b3M+CiAgICA8L2RldGFsbGU+CiAgPC9kZXRhbGxlcz4KICA8aW5mb0FkaWNpb25hbD4KICAgIDxjYW1wb0FkaWNpb25hbCBub21icmU9IkRhdG8gMSI+VmFsb3IgMTwvY2FtcG9BZGljaW9uYWw+CiAgICA8Y2FtcG9BZGljaW9uYWwgbm9tYnJlPSJFbWFpbCI+am9zZS56YW1icmFub0BndXJ1LXNvZnQuY29tPC9jYW1wb0FkaWNpb25hbD4KICAgIDxjYW1wb0FkaWNpb25hbCBub21icmU9IkVtYWlsIj4/PC9jYW1wb0FkaWNpb25hbD4KICA8L2luZm9BZGljaW9uYWw+CjxkczpTaWduYXR1cmUgeG1sbnM6ZHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiIHhtbG5zOmV0c2k9Imh0dHA6Ly91cmkuZXRzaS5vcmcvMDE5MDMvdjEuMy4yIyIgSWQ9IlNpZ25hdHVyZTUzMjA4NiI+CjxkczpTaWduZWRJbmZvIElkPSJTaWduYXR1cmUtU2lnbmVkSW5mbzM1MjAwIj4KPGRzOkNhbm9uaWNhbGl6YXRpb25NZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy9UUi8yMDAxL1JFQy14bWwtYzE0bi0yMDAxMDMxNSI+PC9kczpDYW5vbmljYWxpemF0aW9uTWV0aG9kPgo8ZHM6U2lnbmF0dXJlTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnI3JzYS1zaGExIj48L2RzOlNpZ25hdHVyZU1ldGhvZD4KPGRzOlJlZmVyZW5jZSBJZD0iU2lnbmVkUHJvcGVydGllc0lENzI1NTQiIFR5cGU9Imh0dHA6Ly91cmkuZXRzaS5vcmcvMDE5MDMjU2lnbmVkUHJvcGVydGllcyIgVVJJPSIjU2lnbmF0dXJlNTMyMDg2LVNpZ25lZFByb3BlcnRpZXMyNDY0NTYiPgo8ZHM6RGlnZXN0TWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnI3NoYTEiPjwvZHM6RGlnZXN0TWV0aG9kPgo8ZHM6RGlnZXN0VmFsdWU+WTZ2cW02aDR6K2dyaTRMSmdzd0Q5WmJHR2YwPTwvZHM6RGlnZXN0VmFsdWU+CjwvZHM6UmVmZXJlbmNlPgo8ZHM6UmVmZXJlbmNlIFVSST0iI0NlcnRpZmljYXRlMTI3ODQwNSI+CjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9kczpEaWdlc3RNZXRob2Q+CjxkczpEaWdlc3RWYWx1ZT5iM2tMcGpFL2lMWm5MR1FjQlR1TTF6ZzZxMzQ9PC9kczpEaWdlc3RWYWx1ZT4KPC9kczpSZWZlcmVuY2U+CjxkczpSZWZlcmVuY2UgSWQ9IlJlZmVyZW5jZS1JRC0yMTE3MTUiIFVSST0iI2NvbXByb2JhbnRlIj4KPGRzOlRyYW5zZm9ybXM+CjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjZW52ZWxvcGVkLXNpZ25hdHVyZSI+PC9kczpUcmFuc2Zvcm0+CjwvZHM6VHJhbnNmb3Jtcz4KPGRzOkRpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIj48L2RzOkRpZ2VzdE1ldGhvZD4KPGRzOkRpZ2VzdFZhbHVlPlp1UUxITGwwWCtFbFhDQ0dYR3FoS3lHM2lSMD08L2RzOkRpZ2VzdFZhbHVlPgo8L2RzOlJlZmVyZW5jZT4KPC9kczpTaWduZWRJbmZvPgo8ZHM6U2lnbmF0dXJlVmFsdWUgSWQ9IlNpZ25hdHVyZVZhbHVlNzMwOTQ1Ij4KdjBubnMrS2dEa3pTemozVnRUSnlCR1hncFY3dFE0Zmd2czNXZVZkQVVibzlsUG1XQkRmK2QrV1FGYzBsT3F4ZkNtQVlZWlRtOHlwagprb3NEb1VIZmlvWWxiV0VkL0RPQVdpdXJleUNqd3ozRGJDc0c4TkF4MFZoZmRlM0VTTFcrdHNxK21MS096UkhOQVFETkdwNFphemFICnJlRGQxd3FSTW10RFc3RUVqVTd6bm9kV1lpZ2RhL0hwc0x1eTdLMFBxY1JIZFQwdXZvcjJiZEN3NmpscDJqamIyUjhQdFBld285akEKODJYYVE2TFNXYWdKWlA5Mzl0M2lIY0pOL1VtdUxwWFJWUk9OSTlWakUyWHdoZm1ZU1JzVXdoTWZoNi9uTnluZ0tHTFkyMDUwT2VmYwoxNGI1RllqWG9oNWFYRkxDbWdUNFl6OU1hR01zVVh4bGtXNnZwdz09CjwvZHM6U2lnbmF0dXJlVmFsdWU+CjxkczpLZXlJbmZvIElkPSJDZXJ0aWZpY2F0ZTEyNzg0MDUiPgo8ZHM6WDUwOURhdGE+CjxkczpYNTA5Q2VydGlmaWNhdGU+Ck1JSUxkRENDQ1Z5Z0F3SUJBZ0lNQTBlSGpyQXlPNTU5eVRvUE1BMEdDU3FHU0liM0RRRUJDd1VBTUlHNU1SWXdGQVlEVlFRRkV3MHgKTnpreU5qQXhNakUxTURBeE1Rc3dDUVlEVlFRR0V3SkZRekUyTURRR0ExVUVDaE10UVU1R1FVTWdRVlZVVDFKSlJFRkVJRVJGSUVORgpVbFJKUmtsRFFVTkpUMDRnUlVOVlFVUlBVaUJETGtFdU1TVXdJd1lEVlFRTEV4eEJUa1lnUVhWMGIzSnBaR0ZrSUdsdWRHVnliV1ZrCmFXRWdJRVZETVRNd01RWURWUVFERXlwQlRrWWdTR2xuYUNCQmMzTjFjbUZ1WTJVZ1JXTjFZV1J2Y2lCSmJuUmxjbTFsWkdsaGRHVWcKUTBFd0hoY05NalF3TlRBeE1UZ3lOakEzV2hjTk1qWXdOVEF4TVRneU5qQTNXakNDQVpjeEZqQVVCZ05WQkFvTURVZFZVbFZUVDBaVQpJRk11UVM0eEdqQVlCZ29yQmdFRUFZS2tRZ29FREFvd09URTROREExTkRRd01TZ3dKZ1lEVlFRTERCOURaWEowYVdacFkyRmtieUJRClpYSnpiMjVoSUVwMWNtbGthV05oSUVWRE1SZ3dGZ1lEVlFRcURBOUlSVU5VVDFJZ1IwVlBWa0ZPVGxreEZqQVVCZ05WQkdFVERUQTUKT1RJM016YzVOalF3TURFeEN6QUpCZ05WQkFZVEFrVkRNUk13RVFZRFZRUUZFd293T1RFNE5EQTFORFF3TVJjd0ZRWURWUVFFREE1TgpUMDVVUlZKUElFTlBVbFJGV2pFeU1EQUdBMVVFQXd3cE1Ea3hPRFF3TlRRME1DQklSVU5VVDFJZ1IwVlBWa0ZPVGxrZ1RVOU9WRVZTClR5QkRUMUpVUlZveEdEQVdCZ05WQkF3TUQwZEZVa1ZPVkVVZ1IwVk9SVkpCVERFcU1DZ0dDU3FHU0liM0RRRUpBUlliWm1sdVlXNWoKYVdWeWJ5NWxZMEJuZFhKMUxYTnZablF1WTI5dE1Tc3dLUVlEVlFRTkRDSkRaWEowYVdacFkyRmtieUJ3WVhKaElGQmxjbk52Ym1FZwpTblZ5dzYxa2FXTmhNUTh3RFFZRFZRUUlEQVpIVlVGWlFWTXhFakFRQmdOVkJBY01DVWRWUVZsQlVWVkpURENDQVNJd0RRWUpLb1pJCmh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTmJ6TGJld2RPZjJQRysrTzBhN0xJWncwWWxrV3QybkNPSllvc3hZUG5zRjJzb2cKN1dsakRQUXhETEFxOTQrbkZuVUJMRisySmZBTDlMNm01NDBSbk5xT2JxOUNKQVlxVysxSXNOOU1STCsrWU4zc1lVbG1xZWNCU3N4MApRTXI5TEY4cVhkb1pNRlRDUjYrQ3VVOFh0ampUQkE5a0dHYndTbGppZzNoSmZ1cUJqYjBnV0ZPdEJ5T21ZVU0zYUVNWXhNbmYydzV5CkhSQ3pMdG9mZGc4NjVXQnRwRVlBandXUWRIdklNTEdGYllaaldCeDZMYXM1dm85eHdJTEpIQnRhMGRWMHZkZUJPUHNQRmM3R21wQWUKRDhNNEFOWFdjZVIxU1BMczhpdExObUpwaWZQNW5wZ05DRkhMdjgycEgxQWRySElZd2s0WUNTdjQxb2ZzTTU3c3owRUNBd0VBQWFPQwpCWmt3Z2dXVk1COEdBMVVkSXdRWU1CYUFGSkt1MU11Q3RKbkcwWHNSYkdYcXhVMW9JZm1zTUIwR0ExVWREZ1FXQkJTcU1lYldZSk1SCithbGRFM0xnVkZpMTFaTXppekNDQVFBR0ExVWRFUVNCK0RDQjlZRWJabWx1WVc1amFXVnlieTVsWTBCbmRYSjFMWE52Wm5RdVkyOXQKcElIVk1JSFNNUjh3SFFZS0t3WUJCQUdDcEVJS0FRd1BTRVZEVkU5U0lFZEZUMVpCVGs1Wk1SY3dGUVlLS3dZQkJBR0NwRUlLQWd3SApUVTlPVkVWU1R6RVdNQlFHQ2lzR0FRUUJncVJDQ2dNTUJrTlBVbFJGV2pFYU1CZ0dDaXNHQVFRQmdxUkNDZ1FNQ2pBNU1UZzBNRFUwCk5EQXhHVEFYQmdrckJnRUVBWUdQSEFFTUNrRXRNREV3TlRJd01qUXhNakF3QmdOVkJBTU1LVEE1TVRnME1EVTBOREFnU0VWRFZFOVMKSUVkRlQxWkJUazVaSUUxUFRsUkZVazhnUTA5U1ZFVmFNUk13RVFZRFZRUUZEQW93T1RFNE5EQTFORFF3TUE0R0ExVWREd0VCL3dRRQpBd0lHd0RBZEJnTlZIU1VFRmpBVUJnZ3JCZ0VGQlFjREFnWUlLd1lCQlFVSEF3UXdVQVlEVlIwZkJFa3dSekJGb0VPZ1FZWS9hSFIwCmNEb3ZMMk55YkM1aGJtWXVaWE12WTNKc0wwRk9Sa2hwWjJoQmMzTjFjbUZ1WTJWRlkzVmhaRzl5U1c1MFpYSnRaV1JwWVhSbFEwRXUKWTNKc01JSUJBd1lEVlIwZ0JJSDdNSUg0TUlIZkJnd3JCZ0VFQVlLa1FnSUZBUU13Z2M0d0tBWUlLd1lCQlFVSEFnRVdIR2gwZEhBNgpMeTkzZDNjdVlXNW1MbVZ6TDJSdlkzVnRaVzUwYjNNd2dhRUdDQ3NHQVFVRkJ3SUNNSUdVRElHUlEyVnlkR2xtYVdOaFpHOGdZMjl1ClptOXliV1VnWVNCc1lTQnNaV2RwYzJ4aFkybkRzMjRnWkdVZ1ptbHliV0VnWld4bFkzUnl3N051YVdOaExpQkJiblJsY3lCa1pTQmgKWTJWd2RHRnliRzhnWTI5dGNISjFaV0psSUdsdWRHVm5jbWxrWVdRc0lHeHBiV2wwWVdOcGIyNWxjeXdnZG1sblpXNWphV0VnZVNCMQpjMjl6SUdGMWRHOXlhWHBoWkc5ekxqQUpCZ2NFQUl2c1FBRUJNQWtHQjJDRlZBRURCUWd3Z1pzR0NDc0dBUVVGQndFQkJJR09NSUdMCk1DY0dDQ3NHQVFVRkJ6QUJoaHRvZEhSd09pOHZiMk56Y0M1aGJtWXVaWE12YzNCaGFXNHZRVll3WUFZSUt3WUJCUVVITUFLR1ZHaDAKZEhBNkx5OTNkM2N1WVc1bUxtVnpMMlZ6TDJObGNuUnBabWxqWVhSbGN5MWtiM2R1Ykc5aFpDOUJUa1pJYVdkb1FYTnpkWEpoYm1ObApSV04xWVdSdmNrbHVkR1Z5YldWa2FXRjBaVU5CTG1ObGNqQU1CZ05WSFJNQkFmOEVBakFBTUNnR0NTc0dBUVFCZ1k4Y0V3UWJEQmsyCk1EY3pOamd3TkRBMk1UY3RORGcwTmpVMk5EY3pORFF3TUJVR0Npc0dBUVFCZ1k4Y0V3SUVCd3dGTXpjME5ESXdLUVlLS3dZQkJBR0MKcEVJVEFRUWJEQmswT0RRMk5UWTBOek0wTkRBdE5EYzJPREU1TnpRM01EazFNQm9HQ2lzR0FRUUJncVJDQXdFRURBd0tNRGt4T0RRdwpOVFEwTURBZEJnb3JCZ0VFQVlLa1FnTUtCQThNRFVkVlVsVlRUMFpVSUZNdVFTNHdIUVlLS3dZQkJBR0NwRUlEQ3dRUERBMHdPVGt5Ck56TTNPVFkwTURBeE1CSUdDaXNHQVFRQmdxUkNBd3dFQkF3Q1JVTXdId1lLS3dZQkJBR0NwRUlEQWdRUkRBOUlSVU5VVDFJZ1IwVlAKVmtGT1Rsa3dIZ1lLS3dZQkJBR0NwRUlEQXdRUURBNU5UMDVVUlZKUElFTlBVbFJGV2pBZkJnb3JCZ0VFQVlLa1FnTUZCQkVNRDBkRgpVa1ZPVkVVZ1IwVk9SVkpCVERBWkJnb3JCZ0VFQVlLa1FnTUpCQXNNQ1VkVlFWbEJVVlZKVERBWEJnb3JCZ0VFQVlLa1Fpb0JCQWtNCkIxVkpUeTB3TURNd0V3WUtLd1lCQkFHQ3BFSXVBUVFGREFNM016QXdVQVlLS3dZQkJBR0NwRUl2QVFSQ0RFQmxabVl3TkdZMFlXWmoKTkdSa09EUTBOV00zTWpnell6VXdPVEppTURBeU1HRm1NekpsWXpjNE5tRmpZVE5oTmpCa1pEWTFOemszT0dGaE4ySXdaVFl3TUVRRwpDQ3NHQVFVRkJ3RURCRGd3TmpBSUJnWUVBSTVHQVFFd0V3WUdCQUNPUmdFR01Ba0dCd1FBamtZQkJnRXdDUVlIQkFDTDdFa0JBVEFLCkJnZ3JCZ0VGQlFjTEFqQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FnRUFHRUFObVdTdlhzUXg4aWhnOFArb1RsSEdiRzNJUk1BQm82djUKNFU3dGc0K0J1WkdSSk55Nms3b2pvL0RadWd4L1ZRMldDKzhrRXcxRGVQUlpvaFoxV2RKWmY3UWQ0eEE2RjhKb2Q3anNDRnMrT2dtLwo0ZVc5RktWeXBVNGJtY01nUTYwUlh1QVUrcXdXVlNKRy9FUWxEaHcvMk9Pd0t2YmJiSTNkekRMMElhY0hHdWtPOUs2OGp5Qm9zWUE4CkZTY1crQzUvR1luMXRnb1pnb05HMmx1MU00RzM3R21lUXovNFBkTXlFTHUxK2d5a2V2TEdCV0VPT1Y5bjJ5QWN2S2h4OG1yaDZCWnUKenltUW9ndlVFSDMyMmExdnU2anRPbkhzZksxS2k3Z25Pa05FSm9oM2cvV2Vja1BKL3M1YWxuRzgvODdyK2lXL1puT0MvdXNwK0VHcgpick9hM0JvN3JiQmlKN3psTUxaRHlWS1cyR01RVyswSHZMdkpHZ05aVEZDWEM4MVZ4RGIxVTUyeVI3VUNsaURzeXpYbndBbkZSVHdQCkIvcjIxQXNNYTVtazVWVGxGeFdrQTBYdXJwa1BLbW1iTkIrNU9vREpaSWRTbUlPMHdzWXRTMXExdWx5TGZIekxYR3VObGxDV1YxYVYKUGN6dS82TGpzZ2pwT1BJVWR1cUQ1K2ZFcEFEcUpGWEZXMTZIWkNXTVdlVzlWbldQTHZCZ1hnYUNxYmJXNGlXUS9oQWVRY2pPS2hUTApSYWJuNXZYSENUL25sWGlHODdSRWhKSnQvMys4Q1ZGYjl6SGZJTFVjUE4wSDBvZ01oTGk5WE9yQmQ1YloyYXhrekltMFAway9yMFdMCnlkSlBnZTdjZTRvbXZkSlFGR1BoeTdaV2lBYlZnaDVvLzNpUUZrYz0KPC9kczpYNTA5Q2VydGlmaWNhdGU+CjwvZHM6WDUwOURhdGE+CjxkczpLZXlWYWx1ZT4KPGRzOlJTQUtleVZhbHVlPgo8ZHM6TW9kdWx1cz4KMXZNdHQ3QjA1L1k4Yjc0N1Jyc3NobkRSaVdSYTNhY0k0bGlpekZnK2V3WGF5aUR0YVdNTTlERU1zQ3IzajZjV2RRRXNYN1lsOEF2MAp2cWJualJHYzJvNXVyMElrQmlwYjdVaXczMHhFdjc1ZzNleGhTV2FwNXdGS3pIUkF5djBzWHlwZDJoa3dWTUpIcjRLNVR4ZTJPTk1FCkQyUVladkJLV09LRGVFbCs2b0dOdlNCWVU2MEhJNlpoUXpkb1F4akV5ZC9iRG5JZEVMTXUyaDkyRHpybFlHMmtSZ0NQQlpCMGU4Z3cKc1lWdGhtTllISG90cXptK2ozSEFnc2tjRzFyUjFYUzkxNEU0K3c4VnpzYWFrQjRQd3pnQTFkWng1SFZJOHV6eUswczJZbW1KOC9tZQptQTBJVWN1L3pha2ZVQjJzY2hqQ1RoZ0pLL2pXaCt3em51elBRUT09CjwvZHM6TW9kdWx1cz4KPGRzOkV4cG9uZW50PkFRQUI8L2RzOkV4cG9uZW50Pgo8L2RzOlJTQUtleVZhbHVlPgo8L2RzOktleVZhbHVlPgo8L2RzOktleUluZm8+CjxkczpPYmplY3QgSWQ9IlNpZ25hdHVyZTUzMjA4Ni1PYmplY3Q2NzQzNTkiPjxldHNpOlF1YWxpZnlpbmdQcm9wZXJ0aWVzIFRhcmdldD0iI1NpZ25hdHVyZTUzMjA4NiI+PGV0c2k6U2lnbmVkUHJvcGVydGllcyBJZD0iU2lnbmF0dXJlNTMyMDg2LVNpZ25lZFByb3BlcnRpZXMyNDY0NTYiPjxldHNpOlNpZ25lZFNpZ25hdHVyZVByb3BlcnRpZXM+PGV0c2k6U2lnbmluZ1RpbWU+MjAyNS0wNi0wOVQxNzozMDozMi0wNTowMDwvZXRzaTpTaWduaW5nVGltZT48ZXRzaTpTaWduaW5nQ2VydGlmaWNhdGU+PGV0c2k6Q2VydD48ZXRzaTpDZXJ0RGlnZXN0PjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSI+PC9kczpEaWdlc3RNZXRob2Q+PGRzOkRpZ2VzdFZhbHVlPnpwZ3pSVFU4ck1sWjlES2pHOTcyV21ydFZIMD08L2RzOkRpZ2VzdFZhbHVlPjwvZXRzaTpDZXJ0RGlnZXN0PjxldHNpOklzc3VlclNlcmlhbD48ZHM6WDUwOUlzc3Vlck5hbWU+Q049QU5GIEhpZ2ggQXNzdXJhbmNlIEVjdWFkb3IgSW50ZXJtZWRpYXRlIENBLE9VPUFORiBBdXRvcmlkYWQgaW50ZXJtZWRpYSAgRUMsTz1BTkZBQyBBVVRPUklEQUQgREUgQ0VSVElGSUNBQ0lPTiBFQ1VBRE9SIEMuQS4sQz1FQywyLjUuNC41PSMxMzBkMzEzNzM5MzIzNjMwMzEzMjMxMzUzMDMwMzE8L2RzOlg1MDlJc3N1ZXJOYW1lPjxkczpYNTA5U2VyaWFsTnVtYmVyPjEwMTQ5Mjg5MTQyNjU3OTU1OTc4NTA3MjA3ODM8L2RzOlg1MDlTZXJpYWxOdW1iZXI+PC9ldHNpOklzc3VlclNlcmlhbD48L2V0c2k6Q2VydD48L2V0c2k6U2lnbmluZ0NlcnRpZmljYXRlPjwvZXRzaTpTaWduZWRTaWduYXR1cmVQcm9wZXJ0aWVzPjxldHNpOlNpZ25lZERhdGFPYmplY3RQcm9wZXJ0aWVzPjxldHNpOkRhdGFPYmplY3RGb3JtYXQgT2JqZWN0UmVmZXJlbmNlPSIjUmVmZXJlbmNlLUlELTIxMTcxNSI+PGV0c2k6RGVzY3JpcHRpb24+R3VydVNvZnQgUy5BIFRlbC4wNDUxMDkzMTI8L2V0c2k6RGVzY3JpcHRpb24+PGV0c2k6TWltZVR5cGU+dGV4dC94bWw8L2V0c2k6TWltZVR5cGU+PC9ldHNpOkRhdGFPYmplY3RGb3JtYXQ+PC9ldHNpOlNpZ25lZERhdGFPYmplY3RQcm9wZXJ0aWVzPjwvZXRzaTpTaWduZWRQcm9wZXJ0aWVzPjwvZXRzaTpRdWFsaWZ5aW5nUHJvcGVydGllcz48L2RzOk9iamVjdD48L2RzOlNpZ25hdHVyZT48L2ZhY3R1cmE+XV0+PC9jb21wcm9iYW50ZT4NCjwvYXV0b3JpemFjaW9uPg==</Archivo>
      </ConsultarArchivoResponse>
   </s:Body>
</s:Envelope>
```

{% endtab %}
{% endtabs %}
