/* ==========================================================================
   assets/css/style.css
   Vatsalya — Premium Hospital ERP Theme
   Modern SaaS / Minimal / Elegant — CSS-only (no JS animations)
   ========================================================================== */

/* Inter font is loaded via <link> in includes/header.php (faster than @import) */

/* --------------------------------------------------------------------------
   1. DESIGN TOKENS
   -------------------------------------------------------------------------- */
:root {
    /* Brand — teal is dominant (matches WellNest reference), blue is a sparing accent */
    --primary: #14B8A6;
    --primary-hover: #0F9C8C;
    --primary-light: #E6FBF7;
    --primary-glow: rgba(20, 184, 166, 0.18);

    --secondary: #14B8A6;
    --secondary-hover: #0F9C8C;
    --secondary-light: #EAF2FE;

    /* Status */
    --success: #22C55E;
    --success-light: rgba(34, 197, 94, 0.12);

    --warning: #F59E0B;
    --warning-light: rgba(245, 158, 11, 0.12);

    --danger: #EF4444;
    --danger-light: rgba(239, 68, 68, 0.12);

    --info: #3B82F6;
    --info-light: rgba(59, 130, 246, 0.12);

    /* Surfaces */
    --bg-light: #F5F7FB;
    --sidebar-bg: #FFFFFF;
    --sidebar-text: #6B7280;
    --card-bg: #FFFFFF;
    --border-color: #E8EDF5;

    /* Text */
    --text-main: #1F2937;
    --text-muted: #6B7280;
    --text-light: #9CA3AF;

    /* Elevation */
    --card-shadow: 0 2px 10px -2px rgba(31, 41, 55, 0.05), 0 1px 4px -1px rgba(31, 41, 55, 0.04);
    --card-shadow-hover: 0 16px 32px -12px rgba(31, 41, 55, 0.14), 0 4px 10px -4px rgba(31, 41, 55, 0.06);

    /* Radii */
    --radius-sm: 10px;
    --radius-md: 16px;
    --radius-lg: 22px;
    --radius-pill: 999px;
}

/* --------------------------------------------------------------------------
   1b. BOOTSTRAP VARIABLE OVERRIDES
   Recolors every stock Bootstrap utility (.bg-primary, .text-success,
   .alert-danger, .btn-secondary, .border-warning, etc.) used across the
   module pages so they inherit this palette automatically — no need to
   touch individual module .php files.
   -------------------------------------------------------------------------- */
:root {
    --bs-primary: #14B8A6;
    --bs-primary-rgb: 20, 184, 166;
    --bs-secondary: #6B7280;
    --bs-secondary-rgb: 107, 114, 128;
    --bs-success: #22C55E;
    --bs-success-rgb: 34, 197, 94;
    --bs-danger: #EF4444;
    --bs-danger-rgb: 239, 68, 68;
    --bs-warning: #F59E0B;
    --bs-warning-rgb: 245, 158, 11;
    --bs-info: #3B82F6;
    --bs-info-rgb: 59, 130, 246;
    --bs-light: #F5F7FB;
    --bs-light-rgb: 245, 247, 251;
    --bs-dark: #1F2937;
    --bs-dark-rgb: 31, 41, 55;
    --bs-body-color: #1F2937;
    --bs-body-bg: #F5F7FB;
    --bs-border-color: #E8EDF5;
    --bs-link-color: #14B8A6;
    --bs-link-hover-color: #0F9C8C;
}

/* --------------------------------------------------------------------------
   2. RESET & BASE
   -------------------------------------------------------------------------- */
* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html, body {
    margin: 0 !important;
    padding: 0 !important;
    height: 100%;
}

body {
    background: var(--bg-light);
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    color: var(--text-main);
    -webkit-font-smoothing: antialiased;
    font-size: 0.8rem;
    line-height: 1.4;
}

.app-body {
    min-height: 100vh;
    margin: 0 !important;
    padding: 0 !important;
}

.app-wrapper {
    min-height: 100vh;
    width: 100%;
    background: transparent;
    margin: 0 !important;
    padding: 0 !important;
}

h1, h2, h3, h4, h5, h6,
.topbar-title, .sidebar-brand, .page-title {
    font-family: 'Inter', sans-serif;
    font-weight: 700;
    letter-spacing: -0.01em;
    color: var(--text-main);
}

a {
    text-decoration: none;
    transition: color 0.2s ease, background-color 0.2s ease, transform 0.2s ease;
}

::selection {
    background: var(--primary-light);
    color: var(--primary-hover);
}

/* --------------------------------------------------------------------------
   3. LAYOUT UTILITIES
   -------------------------------------------------------------------------- */
.content-wrapper {
    flex: 1 1 auto;
    min-width: 0;
    width: calc(100% - 220px);
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    position: relative;
    padding-bottom: 4.5rem;
}

@media (max-width: 767.98px) {
    .content-wrapper {
        width: 100% !important;
    }
}

.main-content {
    padding: 0.5rem 0.75rem 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    width: 100%;
}

.page-hero,
.card,
.topbar {
    border-radius: var(--radius-lg);
}

.page-hero {
    background: var(--card-bg);
    border: 1px solid var(--border-color);
    box-shadow: var(--card-shadow);
    padding: 0.5rem 0.8rem;
}

.page-title {
    font-size: 0.95rem;
    font-weight: 700;
    margin-bottom: 0.2rem;
}

.page-subtitle {
    color: var(--text-muted);
    font-size: 0.75rem;
}

.module-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 0.25rem;
}

/* --------------------------------------------------------------------------
   4. CARDS
   -------------------------------------------------------------------------- */
.card {
    background: var(--card-bg);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md);
    box-shadow: var(--card-shadow);
    transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.25s ease;
    overflow: visible;
}

.card:hover {
    box-shadow: var(--card-shadow-hover);
}

.card-header {
    background-color: var(--card-bg);
    border-bottom: 1px solid var(--border-color);
    padding: 0.45rem 0.75rem;
    font-weight: 700;
    font-size: 0.84rem;
}

.card-body {
    padding: 0.65rem;
}

/* --------------------------------------------------------------------------
   4b. KPI / METRIC MINI-CARDS
   These small stat widgets (icon badge beside a label + bold value, e.g.
   Reports "Total Invoiced Dues", "Operating Margin", or the doctor
   dashboard "Patients Waiting" / "In Consultation" cards) sit inside a
   .card, and .card has overflow:hidden. The text column had no min-width
   and the value/label had no wrapping, so on anything narrower than a
   very wide screen the label or the amount was getting sliced off by the
   card's edge instead of wrapping to a second line. Let the text column
   shrink and wrap, while the icon/badge keeps its fixed size.
   -------------------------------------------------------------------------- */
.card-body.d-flex.justify-content-between.align-items-center > div:first-child,
.card > .d-flex.justify-content-between.align-items-center > div:first-child {
    min-width: 0;
    flex: 1 1 auto;
}

.card-body.d-flex.justify-content-between.align-items-center > div:first-child *,
.card > .d-flex.justify-content-between.align-items-center > div:first-child * {
    overflow-wrap: break-word;
    word-break: break-word;
    white-space: normal;
}

.card-body.d-flex.justify-content-between.align-items-center > div:last-child,
.card > .d-flex.justify-content-between.align-items-center > div:last-child {
    flex-shrink: 0;
    margin-left: 0.75rem;
}

/* --------------------------------------------------------------------------
   5. BUTTONS
   -------------------------------------------------------------------------- */
.btn {
    font-weight: 600;
    border-radius: var(--radius-sm);
    padding: 0.25rem 0.6rem;
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
    font-size: 0.76rem;
}

.btn:active {
    transform: scale(0.97);
}

.btn-primary {
    background: var(--primary);
    border-color: var(--primary);
    box-shadow: 0 4px 12px rgba(20, 184, 166, 0.22);
}

.btn-primary:hover, .btn-primary:focus {
    background: var(--primary-hover);
    border-color: var(--primary-hover);
    box-shadow: 0 6px 16px rgba(20, 184, 166, 0.32);
}

.btn-secondary {
    background: var(--bs-secondary);
    border-color: var(--bs-secondary);
    color: #ffffff;
}

.btn-secondary:hover {
    background: #4B5563;
    border-color: #4B5563;
}

.btn-accent {
    background: var(--secondary);
    border-color: var(--secondary);
    color: #ffffff;
}

.btn-accent:hover {
    background: #0F9C8C;
    border-color: #0F9C8C;
}

.btn-outline-primary {
    color: var(--primary);
    border-color: var(--primary);
    background: transparent;
}

.btn-outline-primary:hover {
    background-color: var(--primary);
    border-color: var(--primary);
    color: #ffffff;
}

.btn-outline-secondary {
    border-color: #D6DEEA;
    color: var(--text-muted);
}

.btn-outline-secondary:hover {
    background-color: var(--bg-light);
    border-color: #B9C4D4;
    color: var(--text-main);
}

.btn-success { background: var(--success); border-color: var(--success); }
.btn-danger { background: var(--danger); border-color: var(--danger); }
.btn-warning { background: var(--warning); border-color: var(--warning); color: #ffffff; }

/* --------------------------------------------------------------------------
   6. FORMS
   -------------------------------------------------------------------------- */
.form-control, .form-select {
    border-radius: var(--radius-sm);
    border: 1px solid #D6DEEA;
    padding: 0.25rem 0.5rem;
    font-size: 0.78rem;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    background-color: #ffffff;
    color: var(--text-main);
}

.form-control:focus, .form-select:focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 4px var(--primary-glow);
    outline: none;
}

.form-label {
    font-weight: 600;
    color: var(--text-main);
    font-size: 0.72rem;
    margin-bottom: 0.2rem;
}

/* Floating label look, CSS only (Bootstrap's .form-floating structure) */
.form-floating > label {
    color: var(--text-light);
}

.form-floating > .form-control:focus ~ label,
.form-floating > .form-control:not(:placeholder-shown) ~ label {
    color: var(--primary);
}

/* --------------------------------------------------------------------------
   6b. SEARCHABLE SELECT DROPDOWNS
   Custom dropdown widgets created by searchable-select.js.
   The menu is appended to <body> with position:fixed so it always escapes
   parent overflow:hidden, cards, modals, etc.
   -------------------------------------------------------------------------- */
.custom-select-container {
    position: relative;
}

/* Dropdown arrow indicator */
.custom-select-container .searchable-select-arrow {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    pointer-events: none;
    color: var(--text-muted, #6c757d);
    transition: transform 0.2s ease;
    line-height: 0;
}

.custom-select-container .searchable-select-arrow.open {
    transform: translateY(-50%) rotate(180deg);
}

/* Readonly input for non-searchable selects — looks like a native select */
.custom-select-container .searchable-select-readonly {
    cursor: pointer !important;
    padding-right: 28px;
    user-select: none;
    background-color: #fff;
}

.custom-select-container .searchable-select-input {
    padding-right: 28px;
}

/* The dropdown menu is appended to <body> with position:fixed */
.searchable-select-menu.dropdown-menu.show {
    display: block !important;
    position: fixed !important;
    z-index: 9999 !important;
    max-height: 168px;  /* ~5 items × 32px + 8px padding */
    overflow-y: auto;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12);
    border: 1px solid var(--border-color, #dee2e6);
    border-radius: var(--radius-sm, 6px);
    background: #ffffff;
    padding: 0.25rem 0;
    margin: 0;
    list-style: none;
}

/* Scrollbar styling for the dropdown */
.searchable-select-menu::-webkit-scrollbar {
    width: 5px;
}

.searchable-select-menu::-webkit-scrollbar-track {
    background: transparent;
}

.searchable-select-menu::-webkit-scrollbar-thumb {
    background: rgba(0, 0, 0, 0.15);
    border-radius: 10px;
}

.searchable-select-menu::-webkit-scrollbar-thumb:hover {
    background: rgba(0, 0, 0, 0.25);
}

.searchable-select-menu .dropdown-item {
    font-size: 0.78rem;
    padding: 0.3rem 0.75rem;
    color: var(--text-main, #212529);
    cursor: pointer;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-height: 32px;
    display: flex;
    align-items: center;
}

.searchable-select-menu .dropdown-item:hover,
.searchable-select-menu .dropdown-item:focus {
    background-color: var(--bg-light, #f8f9fa);
    color: var(--text-main, #212529);
}

/* --------------------------------------------------------------------------
   7. TABLES
   -------------------------------------------------------------------------- */
.table {
    vertical-align: middle;
}

.table thead th {
    background: #F9FAFC;
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-muted);
    font-weight: 700;
    padding: 0.35rem 0.6rem;
    border-bottom: 1px solid var(--border-color);
    position: sticky;
    top: 0;
    z-index: 1020 !important;
}

.table tbody td {
    padding: 0.35rem 0.6rem;
    border-bottom: 1px solid var(--border-color);
    color: var(--text-main);
    font-size: 0.78rem;
}

.table-hover tbody tr {
    transition: background-color 0.15s ease;
}

.table-hover tbody tr:hover {
    background-color: var(--bg-light);
}

.table-responsive {
    border-radius: var(--radius-md);
}

/* --------------------------------------------------------------------------
   8. BADGES
   -------------------------------------------------------------------------- */
.badge {
    padding: 0.4em 0.75em;
    font-weight: 700;
    border-radius: 8px;
    font-size: 0.72rem;
    letter-spacing: 0.02em;
}

.badge-status-pending {
    background-color: var(--warning-light);
    color: #B45309;
}

.badge-status-confirmed {
    background-color: var(--primary-light);
    color: var(--primary-hover);
}

.badge-status-completed {
    background-color: var(--success-light);
    color: #15803D;
}

.badge-status-cancelled {
    background-color: var(--danger-light);
    color: #B91C1C;
}

/* --------------------------------------------------------------------------
   9. MISC COMPONENTS
   -------------------------------------------------------------------------- */
.page-footer {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    padding: 1rem 2rem;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    color: var(--text-muted);
    background: var(--card-bg, #ffffff);
    border-top: 1px solid var(--border-color, #e2e8f0);
    box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.02);
    border-radius: 0 !important;
    margin: 0 !important;
}

.empty-state {
    text-align: center;
    padding: 2rem 1rem;
    color: var(--text-muted);
    background: var(--bg-light);
    border: 1px dashed var(--border-color);
    border-radius: var(--radius-md);
}

.alert {
    border: none;
    border-radius: 14px;
    box-shadow: var(--card-shadow);
}

.dropdown-menu {
    border: 1px solid var(--border-color);
    border-radius: 14px;
    box-shadow: 0 14px 34px rgba(31, 41, 55, 0.12);
}

.dropdown-item {
    border-radius: 8px;
    padding: 0.55rem 0.9rem;
    transition: background-color 0.15s ease;
}

.dropdown-item:hover, .dropdown-item:focus {
    background-color: var(--bg-light);
    color: var(--primary);
}

/* --------------------------------------------------------------------------
   10. LOGIN PAGE
   -------------------------------------------------------------------------- */
.login-page {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background:
        radial-gradient(circle at 12% 18%, rgba(59, 130, 246, 0.10) 0%, transparent 42%),
        radial-gradient(circle at 88% 82%, rgba(20, 184, 166, 0.10) 0%, transparent 42%),
        var(--bg-light);
    position: relative;
    overflow: hidden;
    font-size: 0.95rem;
}

.login-page::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2MDAiIGhlaWdodD0iMzYwIj4KICA8aW1hZ2UgaHJlZj0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFGRUFBQUJZQ0FZQUFBQ05nQnYrQUFBUUFFbEVRVlI0QWV5Y0NYeGVSYm4vdjNQT3UrVE4waVpOMHpaZDBnVUtGUXEwRkZrVUNySzNwV1ZSNUY1QUZPNzllN200Y0hIajhwZUxvSElSRWZXS1hoRkZVUVQvTEFJdFMxRUVLa3Rwb2V4NzZaNDBUWnVtU2JPKzJ6bnovODE1a3pacDBnMHJ3dWZENlpremMyYWVlZWFaM3p6enpETno4dFpMWjdMMncvQzNZZUR4NGZVM0kvQWhpSDh6aFBBaGlCK0N1QWNRMkFNc1B0VEVEMEhjQXdqc0FSWWZhdUlIR1VScklSZGExclZuZVhsOUJ6ZS90SjRmTEZyTEZ4K3BaZWd2VjFKMDA3cnVVRWZ4TDlaUWZGTTlxVi9VS204MWxTcS82SkU2MGRkencvUHJlYXEyaldYTkdUcHpBWG54M0FPNDdCYUw5MXdUaFIwcm10UGM4V1lUNXoyd2tqbHo2NWc5djRHdkwybmpxcGZUL0dabG5vN1F3NUREMkt6Y2g0RFFXSVVRakFFYnB6T01jY3ZLZ0crL25PVmJTem81Kzg4Yk9PMytOWng3LzByKzY4bGFuaGFvcmgzZW84dDdMOW9KcEIwYnBIRUxWcmZ5NmJrck9HM3VLajcvWkN0ekcrSzgzdUd6SVJ1ajA2YklteUpDbThUZzQ5dVFJcE9qSmhWd1FFbVdqeFozY1daMWxvdjJ6dlB2ZTFzdTNzZmpTNU5pZk9FamNUNDdNY25zbWlMR0RVNlNEZUNKVlUzODRJbmx2TDYrRmRjMmYrZkwrenZ6cDE3Zy9leUZEWnoxWUIxbi8yVTlENjczZUNlYklpdXRDazJlMExPQ0xDUWVCaFRaZ0dNcWM4d2VudVZuUnc3bTl1T0hNbmZtU082YlU4UGRwNDNsRnllUDQ0ZkgxVVRobW1QR2NQWFJvL25POUVKdzd6ODhiZ3pYSDF2RHBVZU81WUpEYWhoUkVzZFRPMy92UHY3ZFFHeEo1L25kNjVzNDVaNlZYUFpDRzRzMng5Z1VwSkIrZ2ZYeFEwZ0VsaEV4eTVUU0hHZVB5VEJ2UmpuelRxL2hqdE1tOE5uOUs1Z3hvWng5SzRzWVZaWmtlRW1DVk53YkNJOStlUTY0eXVJNGxhVXAzZ01NMlRXcCtvbTU0NHduWkpQT243K0dyejI5aWJjeW1xTEdrMzF6ZFdKNE5rK1p5VEt4U1Bac2FqRjNuVmpGZlFMdHhwa1RPYXBtRUhGZmRzK1Jmb0NDdHlkbGJleklSU3ZtbVEvVm81bExWeGlISUlHVnZUUFN3VEhKVm82djdPUzNueGpFOCtkTjVLdUhqZUNqSTB1cEtvNnhPOUM1bFQwYmhLVHpoZENhQ1ZqVm10VUtuZWJ0VGRzUHkxc3kxTGJsdHRUTGFTYnNpZjU3ZTRLSjQvSDh1bmErdnFDTzc3MmNvWlZpQW1LQ0RkbTdMRFd4ZGk2ZUZPZitXV080ZmM1ZW5EeHhLTDVuWExYZEN1L0lqWm4zMW5ydTFNcit0UVgxZlA3QjVYejIvbVg4OHdPck9HWHVHazY4YnkzSDNiZU9ZKzlyVUZBOHQ1NWo1eXBXM3ZIMzFqUHp2alhNbWJlYWN4NVlIZFc3Nm9sVkxLNXIzUzBaQmlMZUl5QXVXTDJaejJuNjNsVVgwQ1hvREZrd0FWV0pEQmZ2RitmaDAwZHo5ZlJSVEJxYW9qVGg3MVRyT25JaDY5b3lQTEt5aGQrL3RwSFB6MS9KbEYrL3lvbDNyZURjQldycnFWWit0VHprN29ZaUh0cVE0SWxHanhXZGNkWmw0MnpNeDJqS2V3cXdTV0pzeXZwS3gyZ000cXpKSkZqV0Z1UFBEWEQvaG1KK3VOVG5uSWZyb3pZeWY0TlcvazBnV21EZTBvMWMvTmNtVnVTS0Nid1VnZHlVY2l4bjFjUzQvYVNSWFBIeGFpWlU3TnpBcjVjcFdDSnR2dlRSVmZ6VEE2dVlPYmVXOHg5dDVxS25OM05icmVIdGZEbnJ3NVE0eDdXU1M0dXR3UnFmbk5yTCtVbXQ4Z205eHlTUmlleXYwWnhYU3UrUzBob1FyZlhpNUx4RUZOQmdPL3U4VHVibTY0dmF1T3l2ZGJRNy80amR2OTQxaUJuWnBKdmt1bHowUkRQdmRIblNyamdsV2pTT0dKem1wbU9IY05OSm8vbllxRklTTzFnb05uWGxlSzYrbFN1Zldpdmc2cGc5cjQ0YmwrYjRTNlBoemE0aU5rcDdzbWhnWkJxc09tMDlYNzVrSWFBV2pkb3pjc2hCenFGY0pBU2NrSFMzZ3E4YXZtSVBSQ3NIRkFjY2NxdGM3Qno0UU82VmM3R2E1UzM4YmxtZUh6OWJIOWxMRWU3VzdWcllyUXFPMk1uNng3ZWErUGJ6TFRTRnBSaGpxV0lUbHg2WTRNNVRhamhsNGhEaU83QjVTemQyY0wyMmVPZk1yMlhXQXcxYzkzckFNNXNUTlB2RlpPSkpkVHlHRnhvOFFsQ25EWG5GRml1d3JER29TSnFIM3AzNEZoUG1NZVFBUjYvZzJwYm1JWXVNU3NSTWtmTGxoeHFCYlJTRDJxRUlLd0NOSFB0T20rQW5yM1h4bmFmcmQxc2puUlRzem1WRnZGREcrUEpuVzlna0lXS2srV2g1eUc5T0dzTTNEcSttU2c2dVNQcmNEdlF1MmJrbjVmcGN0cUNXazJYZ3YvVnlGd3VhREcwa0NQSHhyTUVMREZoUHdTZVVXMlFkQUlRRnNOeEtiOTEwdFNBZzBXVk5UT1J4ckFCekFhTXlGSVNYMEVFTUhaWDRLYy9sWTNCMFZyemQ0RGg2b3p3akFJMG9Pd1hzejk4TytOWExqUVJPYU9YdHlpMkpkNFZzSzgyaTJzMWM5SGdqRGRwMWxBUmRYRGd4em8zSGp1VG9jZVZiaVhxbE5tZnkzUDU2SStjL3ZKYlR0VWYreWR0WjFnWEYwcTFpQ0JNQ3oxUEh0SFB4TTRTdUo5SUt0REI1WVZyZEM5UlBUMEVGSmtDSmlMNkFsUU1tQStKRUJJb0hSblM0NE1vVWRFUDBJTHEyMElsVzdYaUJORmlhV0pqYUFYa2YzTUw0L1pjMnMyRFY1cWpLcmp6RWJWZklDalNyTjJmNDZoUHJXZDRWWTFTc2d4cytQcGovN2w1MW5lZ0ZLb2t0dVRkMTVibnB4UTFNdjMwcEZ6M1ZvWDB5ZE5naUFwUEFScDBKRklkNmR6VWxoZzRWQ3ZYZHV6VFJpd2xVWHpSR3daVzRmSlJuY2Y5Y0RwcndXRU9rZFU1ejFHNGhYM2tSbU52RUVZMklYS3p5VURiV0FRaFMzWWlQaDlXc2FKWmYrNlhIMS9Oc2ZVZUIzVTZla240bkZOM0ZiWEpvcjMydWtkY0U0SDZsR1c0OWFRVC9OSGtFQSswdzdwYTlQRk1uS3Q5YzBzclNmQmxaMlNqckJEZHhzTHZjWkhmTDczVmtwUEFodFZuRDFZdlg0N2F2TzVOZ2wzb1VhdkFlWExhSnVjdmJPS2cwWU42cDR6aHMxR0NpMmRQZFFpaVFGcTVwWWZhZGIzRGhFMjBzYWk2aFUrNkRVYjcxMUl4dWE5SmdRdDdmbHpSZkdwNlh2WDFVL3VkM0Y5YXpzNU1nZFczblhWcmExTWtQbDJ6azVERkpidEVDTXFJMDBRdEFhR2pQOFAxbjF2R1pSNXQ0ckxtWVRrMVhhL0thR3QwVEx6VFNRQ3Y4Wk5mYzFObDVrLzg0Q2llcVpnN2RRTjYxT3M4emE5dDJLTTlPUVhTajhLZVZyZXhkSG91T29QYXFLTnJDME8wOVhRT2YvOHRhcm42MWczVzVPS0huYkoydldLd0ZKTWE1SHFyaXpnbXRGcE5vaGRYNysvWFd6RUgyMFhvYWRBSWFjd2wrOFVyekRrL00xZFB0OThhcWFISGRabFpzYk9Wbko0NW5jTks1R01yVW5kVTI2ZHJGRFp6NThBWWViYkFFT25FT0ZZakF5dU1VTGpSSjNMdW5sUkNia3puVVZEYU9xeGk4ajI5bmdwRGJZNldOb1d6V0kvVlpIbHZad3ZZazN5R0lHWjJTdkZHN2dlK2RzRGNWcWEwQXZ0M1V4Zm5hK0gvL2xVN3RLcVIxZmhGR0RmcXVGV3VKaCtpOE1GU3dPTXlzYTE0dWlqVXEwTzVEeUlJbm9GV0hhS0VKaVBJaUxiVlJtU2R0TU80OWtsQ1BpTTdWZDdRaWQ3ZlJRMFZSWGRlR0MrNWRIVWZCaUpVb0pJT05BcmdLM2ZVZFhkUytVVm0rTzFpaXJPZ2hBcjBTR2xxRElxNStidU4yblhCUnN0MHJyUTgvbnp4NEhLbFlnY3h0OVI1WjNzem4vbHpIUTlyRTUyVjhEYUU4akJ5aHM0TVMwc3J4eldtUEdzcXV1QzFWYU5SRjVSbnJZL1RpdWQyRm0rWnExWFhTWURFT0lCZGN2anFQTk5wTkp4dVpnbERsRnRTV0VvclJKYVp5UldLaHlnS0I0dXFvYlZ5c1BEUU4zYzdFMldXMWpoVzVGVEJSZXhwTWxKYkE4am56WUNTLzNDN1FyRUhlUTZpK2VvWklHNk1LYXB1UXBSMHhGdFlOYkJ0VmcrMWU1YW00TkRBUmxidXZhTGZycFBxOFIxdDRzVDFKMnBRZzNFaHBtcFlFV1l5b25MQmU0RkphVkl5UjhIRVVxVVNDU2pDckY2TU9sdWF6eExUM050cCtHZEtpYzRKS0ZDOEVhVEt1STNLNDNhN0NPSDRtSXo1dDBteWZtQnowbU5wTTJIYnh6UXFPUVBsV2dJU1lVRmthTE9Seld2bUFSQzVWRENNUVJLaFk1ZTZXSENndmxDK0tCc2Vvb3VkbEthS1RVdE5KR1cya3ZBNFNHaUJmMjhsUXArOHRjbEYrOWVyR0FXMmpKSGRjZHh5YU9uTmN0N0NXcTU3ZFJHZVlaYnpmd1FsVlhWdytPY2t2cGcvbGh4K3ZZTytpdE9Sc3g4YTZNT3FrMGVHQUgrYUlCd3JTanBLZ2crT3EwbnhSUjJNL21sN0ZmMDhieEdSdEY2MXE0YnJudERYMDhBSjFXcGhhTisybGtVVEJJNTZIeVdWWnJqMHN4ZjkrZkpCQ0JUOC9jZ2cvUGJLQ0wzd2t4aGxqREROSDVEaW1xaEFPSGhSUWJnV3k3TEVoQUN5aE1WaU52SkZjaUg4ODdHS0liZVBFb1FIZm5aTGs1cU1INjd0T0ZiY2RQMXdIeDBPNThhZ3kvcm5HTUV4OENIMmVXQmV5YUlDVjJoUDNIZDVPQTY5NHVvSHIzK2dpSXkyWlBTb3VQM0VzOTUyK0Y1Y2RNWUl6UDFMSmVRZFVNYVhTRXhSV1FzYkZMNDRKRFlFWGtGYzRxRHpIZlRORzhJRHFYRHQ5Sk9mdVg4bVhENm5pODVNcndCZHcwanBqTXlEZzBhaFgrV21LZFZEZ1dZT25LVlZpQXI1MlFKTDVwNC9sQzFNcU9HOXlKZWRPcnVJejRuUCsva1A0dm5qZU9yT0d1MCtkd1B3enhpdU00NCt6cXZubEp5cEltbllzSGtnNkl6QjluVGVpUlNPaE5nOGRsT1crVTBaeDUreXhYUExSYXM2WU5KUVR4NWRIWWZiRUNzN2VmeWcvUDdHR1N3OUtVVUVYN2RMVitjdGJjQjRMdlM3SHZkZHIzNlE3ZnYrZlo5ZHhoNzRGcDRseDJaUkIvSHJtZUNaV0Z1T1pyYlNOMHRUbGJVWWpyYWtmK0JMYWo5SkdLL1drWk1qUGo2M215TEZ5enJkV2lWSnVGMFNZQk90amphWE1EN2w4c3MvZHM0YnhUWjBJZVNaSFFudm9TdzhzNGIrT0hNT1FYb3RieEtEWHc0blRPMVRMbHoxRlFFd29WaGZGMzJnNldrS1FOZzZMWi9qdmo1Wnh4NmtUT1hSa0tjbVlxMGwwdWNWVXVoS2wzY09kUnYzYklhTzVZTitVTEdhZXg5ZGxjUDExWlQxQkxmUWsrOGFPMmJjV3JPTGFsOXBvTndtcS9UekhqeHZFUU9lRHJWbjVVeGxQSXNiRlJIUFJkSUVYVWl6dCtvK3BGUnd3VE1kbEt1bDlxMDg4dmFaWkFCcUVueFF5NFBJcEpmem40U09panAxOXdEQ0doRzNzVTVybEs0ZU93UFN1dkl0cE40czJkMlp3RFpqSS92b2twSTFmUHFDSUwwNnRaR2l4azVjdFY0ZjY4ZldIWHVNdEhkVnR5VlFpSm8wNTk0RGhwT0tHTjFzdFN6ZUpwL0o3N2dGQmRBRCtYSWNITnkwTGFQTlNHQTNnWVpWR3gvdkZQZlg2eEMwNmJFaTdCY0M1TGRJbUsxRTlZWGxRZWNETXZRYyszVm5aMHNXcnpTRlI1NlFkeDJscS9jdUJWVnMwdkVqVGZFSnBuQzhkT0JoUG5lalQ0QzY4T0QvMmhpWHJhYktsb2piUzlCaWViUFBNa1FHZm5WeXB2TDYzQS94L0ZxL2w5MnRMK2ZiQ0RUaFBwQzlGNFMwd01SMGt1MFd0OE82ZUE0TDQvMTdid0RWTFd1Z3lKWkVHZUJyRk1vMkNNUVBydzZyTmFWcnplWkNRUmd1SkE5Q1E1K3hKZy91TnRtdlVoWGx2YjJKZE5vWlExRFRPYzhYME1aUWtmSHF1Y2szZHlySWtpeHU2V0xNNVE2Zk9Jd3NoaU5KZDhtRjdhSHZIOWZvMk0vbm0xeGgzMDF0YytVSW5hWWxzTlJFOUxUREZKczk1KzFVTUtKTXpYUXMzNU1ubzg4SGphenRwMHhGZWI3NjFyUmx5bXVlQjhYaHhRenR1SnZXVTl3UFJIWjdldmJ5ZGRxOVlBRnBVRDA5VHdJL0ZlK3IwaXpQYXZRU2kwUXhXSGFNUTRqN0luenhoY0QvYW5veDVxOXBWQTBKVkVsYnNyNDlZUFdVOWNkN0UrTzFxeTR5NWF6bnlqbnFtMzdtU28rNWN6dlE3bG5IbFl5dDZ5UHJFZ1ZxdjAvZWVkaWxBWGgyMmNuV01BSFR0MUJTSFRLOFpTQ1pVQ3hMcW8rWUc2VmlLZHpiSkpGRzRja0xzempjM2tRNTlnV2RZMHBpalZvcFRLRVg0OUtTNjQ5cldMcDdmYU5WQmFZbWVSZ2JMR29qSHZHNksvbEZlSWhqbmltZ2FoMTZjcE1uaWJPSG9za1IvWXVVc2IrNWlSWnVQOWNSVDJoMUtPR1gzdWQzZ3VRNWxUWklWNlJMZUV2MGI3VDZ2U2ROMXFRQUFFQUJKUkVGVXQ1ZlFrRTV3bG14VW53cmRMNzkvdFpGQUM1b0RNQlI3WHo2amIvTWdRRXVraVVWeFpkTC9TaW4vaEpHR29yQURMMGd6Y1VoeFJPUUF2UEc1dGR5OUJxRVJSM2FCOWRraTJyVVJpUWowNk1jeEYwSk8wekloWDg5S1MyVGEzSXpUQ2hZWFZLb3h3UDFzUTBhOFk0VFJxTU5SVlQ0ejl4cllGcnJxbTlNQmFVMHhhejFNb0J6RmV2YTVOM1ptcVd0Snl5blBxOTBjWVR3dC9oWmZ5OWZ4Y3JPbVZwZjFvWGN2V1Rud2krdmJDTVUwTkpKY28rL2kwQTJXVEpMajVPZ0dDcDR4ZkdxLzRadzFMa2FaQjNyRnJRMDN2cmlSYTE3UGtkTWdXTGxGMGljQ3paQmxtOUwwWENMdlNSYmlwOVoyNEVaUmtFY1pWZ0k0ZWZKT3BpaW4vNk91TFkrTmxEb2taVHVZcFNPeklvMXNmOHBDemp1YUtwbFE0cmhibmV0cHExQmFlRHFUdHluanVGcnRTRUpseGpEU3FtSTUrOU9yZlZSVmVYM3Z0emQyOGxTalQrQmJMU0tCYUR5c3B3RVE5Rlp2cTd0OFhoRElmV3R0ZmF2Uzk2SHZIenVHbzRiN1hMNmdqb3YvdklvcmxuVFNraXVLcGpFMnJuNDZhVU45RTVkbjBWMjFENGhXbWE4MlpxUWxSVUxlVFVXSnFreXJLRzZVVVBtMnQ4dnR5RmtKbnBOdWRUSmRXdml2MDBiaHU2SGNscmo3UFRMU2NzS3RhRUkveEpoY2Q4bldxQ1dkb3pPRXJOb090SDB6Z2NxVUhwbktjdkplUS9UUy8zNU8zNjNkOURmV0VQb0NYYkVKUFF3QnhucTBhSnBmKzJ3RFRmSW0rdGN1NUF4S3h2bnhpUk1vVm56UFdrc0dxMzhCWW9PUkVHS0psVmx3Zyt6NjdtcDU3dEU3Qk5vdlNsWmNWVkF2Vk1GS2xkTnU5ZTFOMkN1ZGQzU2FTbVd4Z0l1bk9qZkZjZWhGc0UweTBIU3dJbkdkOVFLSjBDTk5MN3FiWDJxa3kvZ1lKNG1FUjdGblF5NlpVczdJQVd5dCt6cTNxQkhOSWtOTWh4eWVSQStqMmttTUFJeXBicUJoZm55RHoxOVdObU43dGJWdDB2bVAzOVV1Nk5ReE1lSXl6cDZqbGd4ZWFNVUxjVTFJeWVMMFhPcEJUN0lRYTZHbFFPa3ErSkpkQVRROVFqMjNjMXZ3TmRxbmowNXcrSmordHFwM0xaSHlXbE5XWXZsWUk1NGFvRUZ4WDRLWjNtUzhJN2NtRE9QS2p5cy94TXJlamt2bU9HazdXdWdPaU4wZk00WFM3cnpBRDEzUHRFSHdiS2Y2a0NlbkJjK1FvME9qOTVXRm0vbjlLdzA0R3lybUE5N3U1T3BxQVhsV2paV2hDakdTSmZTTVpFWTlOYlRKTWUrcDc1cnF3MFNLanhQRVVSdjEyUFZUN2RLVjdUL2xlaXA2V01Za0xGK2VOaHpYZUUvKzl1SjFYUmIxRDZkWm9SOXd5TkE0d25FTCtmTG1OQzl1eklscm5FZ0dkVU5JOExFUkNVWTRmMmdMNWRiRWE0MGRMRzkxTW1vT3lWR1BLbXE3aDRTM0FoVmlTaXBJUlp1REpGOVoxTWt0T3BYcDdMWEtidVZXU0EzVGp1WnJoNDlrZUVLeVJMUEhSbXhkYVYyblIzTTZkTWxJdWlqUjUrRVYza0lWVzljTHFYU2JXMWtLMlgyZVRuL0svUnpYSFRtVWZTdFRVWm5iUGoyNGRFT1VIdWpSa2MwVG1EaFcrdXZxRDlYKzJram5lbWpmYkVyVFNURkNtV2owTlIwVG1vNkhWNmQ2VWZWUUYrSTNHcnZva0t0a3hCVVh1eWtWQ25yWGpqUUltU1ZqMDFydGpYZ1lPbXlDSzU5dDVhdVAxdW9iVWJiQVpJRG5tRUVKanF0T1JDYkN5R3RCdGEyMFhad3BCSVNTa3YxdU5SN2xPUUNWc0txWUlhSFV3UGM1SHluWE5OdnEwcnl5dnAxbjEzWnFSYk1EVmloTnhKVWZxcnVlanJpeVRCdW1rM0ZEZExrYTl5eHJsVUdQYWRUeldNOWlUTWlnb0oyUENjU0lhSURITFc4MGtSUFlFWWdhZEVmaTZUMHVIOUhZTGt5WWtRK1lZVkt5azFOMGpMZFBvcFZXVzhUdlYrc1liT0U2Y3JMcHJzNjJ3YzJzZmNzQ3lTQ3pvRUdQZ05PQSt1TGJROXV0Y3oydmlNemlPU0dNQlVOMEtVVkRSNDdONlh6MHZ1M2prL3VQSU81R1d3VnVldnpmcHhyNFU0T24wNDcrOUk3bGdSVVdZM0s0OUNocDhkVHFRVkZhMVhGVGVmSDZIS0ZlTEtwdndWakRFVU5oZEhtS2dhNm1yaHhyMmcyQlpBakZ5WE8xcFMxdUZRMVZJYW4rVEs4SXVmdWthcDQ3ZnpKM25ER1J1MDZkd0ppVVpvU1U0N2JsZVc1NGZnTnUveXp5Zm5mQ1dHSGlLMTlESktHTk1leFRrV0M0WENKbDl0ZEVYMFN1QU9tSjVGRUhRcjFhVnVtai9kcTJyTkxidjd2a3FWL3haQjNQYW5mUklEY2lsM2QxKzlPUEt2R0o2YUF6THAvdnpJbURHRjlSQUVkNDhjV0hWN0E2blhSTkk4bmxJOFprelVLT0dsdE9XYSs5ZFcrdWI2eHZvemt2OHhDcGhEb3FFSzA2YXRXWlFHR3FOT24yVThaeW5NNEtlK3BOcUVoeXdrZy9haWVyRSs2ZjYydmxXNDN0UGNWYllpZFR1NlorVHViRmFrYTRBbCtENHVLZUVEWGI4MktVS0hNelRjU3l2M3FUSnVocFRJTE93R3hYNVVVUzNVL1d0bkx2Q3UwczFHQkxMdWVHSWNyZjluSDZ2cFdjTnRMajdQRWVGMDRic2FYNHdhVk4wUUNvS2RYVkFxRjVFUkl3ek8vcVE3ZWxnaEx5T25oNGRRZHBVd1NoZWlEd05QSkVRWjMxeGVsZkRxcWlVb3NFdlM1UGRCK3JMcEllaHFwbWFaUDdzN0Y3b2VoRmh2dFQ1cWMxTTZ6NElGeFFIQ3JFb25TQnNnK0lMdXRjblJnbjVHY1pyVWJZR0ZZclc2Z0t1U0JQYmV2V3JZNmo3UjNjQ2N1UFhtaG1mVDZsMGMxSWlSTE1lMmRUYjVJdDZYSFN2Ri9QMm91Zm5UQ200UE9wWkdWTGhpc1hOdERwcFlocitJMjRvSWxpZlV0Tm1VL2NyYmlpMi9aMmYzbXhyRldETFRzVm1TRjhrU2dJWFYvOWNDY29UNjVwUXl5VnYvVTJTcDY1MzFDT0hwS1dwZ2Y0bm1Wd1V2V1UzL3QyY2kzZTVHRTlnOUdnSUpuaW1rVWppbVd6dXduN2dSZ1hIN2RSanhxMUJ1VEhPVUVja005czV3OTgxbmRrdWZCUHExallGQkQ0Z1FUMnlRcUVONXB6MHQ2SUU3MHZjU1Vtb1h3RmwxOHZNM0grbitwNU0xdUtDV0t5aEk1Q1FZTm90TXBPcWt3NnNnR0QrMG5iNHNaQVpWWXRXc1c2cmV0V1NHQmlCTkt3QjlkbXVFVUhFKzY0UzZWYmJ0OFlycHcrbWxOMThEQzdPbVQwTms1OHA5eWZuejIvamc3SFB1SWVGNUFvZUp6YzY0VEt0VWJ2eTIxN3FrdUVQQ0dxSisyMWlqM3kya2E1STZETm1ZZ2pQVmVIbk00cm5xem4vcnBBcm13UlZsL2pqRHFmOTMzbXJrN3J3MDVyRCttQWNWTm5udThzckdmSlpxTVdrOUxnUEtFWGFEQWNpSVVxQ2UzZkM2bStUN2ZRZmVPeGxXekl4L29VV0dsTElTT09VNTRtN1hrdlc5VEVYVzl1MUFBWFNucWVCdzB2NFRmNjVQSFRFOGRSVlpMb3lZNFdtZTlLcm52WEdOWHhCRnhXOXRrVld4STZwYXBNU2R2Y3E0S24wT2NlcGRFNFNDTnZUS2g4RndTaXU2V1JLOW85WG1rb1RBMDNmWi9UWnY3Zkg2bmw3dFU1MGw0Q2EwU29lcUhKQy84Y3pxbjkxMGNhbUNkYnQxSGZZVlFxbm9WN2sxWlU5ek8xV2ZldTRYWjl3d21zTHlGeklBRWxzUVpQU2VtUlU2cWxMVGxhUkUvMzFhNkJlMnAxTTE5NHRKNUZIWU1KVFZ3QlFyV0twalc0bGpRSXpnT1FLK0swdXkxTThjMW5Obkg5NGdiZWtHUHVLQnc3VWVFOEN6Y3ozTHZMWHlGbi8zdlByT1BtWlZuYS9SVE9wRmtOYktncFh4bkxjdkgrSll3ZUpCdnNLaWg0Q3YzdW8ydks4RjNqbWxoK2FDU2EwejZmQnAxRVgvaElIVmMrdHB5TEgxbkZhUStzNWQ1YVE5WW1vNFpRcHoxOVZ6SHFUdFFSQVZPYkwrSGYvcnFSVS82NGd1OHNXTTR2TlQyKzkrUkt6dnpqMjV6OXlFWmVheThpYTV3ZFZTME5RQ0FOeGlHbllNUVBFN0JRZStMUFA3U0NWN1VLMy9kMkV4ZmMvdzZmZkxpUnVYVXk4WTVPNm1aOUU4bGczS21RRVJUV3g4Z21XbWN5dExwaVBUYktMN3pxcFE1T243dUs2NTVheWNybVRrUzVKV1R5SVQvV2g3bnpIbHpGTmErbDBlR1UrdTVvY29waGNOQ3VUN1dEK01vUm95bDJkcThidVFGQjNMczhqc1BacXVIUUlBWnFTc0lGbWlZcmc2RmMvMDRSdDlVbWFiSmw1Tlh4dkJOVWhGYlRCdFUwb1MvQkVnUWFPVXRJTXdsZTZTamoycmNUZk8zWkxyNzdSb3ludXdiVEhIcUNLWU0xYnBCQ1FqZHRyVVJTZldNRkNtcFhiYVkxQ3g3ZUVPT29leG80YjBFSER6YVcwS3E5Y042SVZ0S1pTUHNLY2hwWHhZUjZNU3JSOUJSTkdNL2pqc2RDN2Ivek91U3RDOHI0OXVzaDArNW9vUHFYeTVoODZ5cjJ2N1dXVVRldjVJb1hPMW5TV1Vvb09tTlRvQUVva2l0MllDckhIVE5ITTJmU01JcGlybDIyWEgzZnVyUDNMaTlpZktsZVZHb2xWU2h4MEtwbkpZUzZxbzZMTnlFYWFxeUo0ZVIyYVJkQ1I2OTZoVXpSeVhnakd4blpPUU1aUHk3Z1VZRzdmVng5eEQrTTZGQ21LcHNBcTQ5ZVVWbW9kMlhuL0FScDMybXRJVkNXRlU4YjFaTkVycTdFc2FJTDNZQzZoT1J6c2lBdEpWU0dWZU11d3FxK3A5SVVuZUxaSXJCVzZKeHhwZmJDN1VxN2RrUXB6bmxDejhwVHNIeDZyTStqbjk1TG54WUdxWVgrdDhUcG56bElTLzJoMmlINGt0YW9jZkhDYy90R0xlM0kzbGtUb3V6K0ZUOG9PUUxXcWg4NGRZaTBPSkRrZVFIWFBSSjZpeWs1SnBubTJ3Zkh1WHI2R0VybDZMdXhVbEcvZTBBUW5ick8ybnNJemw5RTB5bDBXcWdtakEwd3NwVmdZWHNjK1NCY1R2NmNGTVBIeTJ0QmRQMXp1d3RwaHBmM2lRY1pqaG1hNVo0WncvbnlJU08wYXNlM2RPb3Z5MldndDd3VkVsNGg2djg4VGgvcUR4c2FZc2lEcG9qVlZMWkd4aHBQUUhvUW12NlZQakE1QmhQRW5TcmdUdFp4L1pKNWNJY1Y0MU9kWERtdGhCdFBxbUh5c0ZJOFk2SmV1VVhubmxmck9IQkUvNitGUWlPaTZmZElhTFdiS2NQb2ZDS2k1a1NxaG9pWU9zWXU5S3Yyd2NpUTZGcTdKR3RPSVZUM1BPSXlWd2VWZFBESFU2cWxmY08xazByU2M3bGQwZTJ2ckdOVnU1VldhckhxS2VpT2hVeDNhb0JvOWw3bDdGV1VKeUgxVmt0SS8zRy9BckFtQUtQRytZQmVWbDFSUUN0M2tpd0hscmJ6alFNVHpEdHpFcE9HbGhEenpKYU91VjNPVDVjMGNNTkxMY3lRaWR0YXNvV0VIWUk0ZWxDU1dUVWw4aGt6dUFXRzBKRzc0Qmk4WDBCMGFFZ1dpV1V3ZU02dWFlR0lGZzJqTXVYajdKMm5nWGN6U3Y2anIyQlVaUkJwTHA4YzQ1N1pZN2pzOEJGVUZNWG9mYWsyZjNpMW51dGViR1Y4VlFVMTJ6bUtjMDNRdTJMdmRGeFQra0lkK1I5UUhzUFRndUpySmJNNk5rS0d1RGZkUHpSdFhPc0dJeHR0cmJvaisyYU4zZ1dvMGJzWEdMelF3YUU4emFCRTJFRzUxOFdYSm5rODhja2F2bnBFamZiTVNYcjI4WFJmdWNEeWsrZlc4VTJkZnFmOGdDc1BHMHh4WFB5N3kzdEhBK2Yyb2hpcGJ4b1hUNm1neEF0QTZtK2svcmdSMW1qeXZyZzh3ZVVKcUJCUEF4MUtQZ2VpTlhHc0J0dnFpVFlCYmhVdTF2dnBvd3dQektubU8wZU5pajVuZU1iMDYwV3p6a0t2ZjdhZWExNXNwODByNXFJRGgzREFzQksxMDQ4MHl2Q2k1MDRlN2pEenlHRUdKeHpPdHlKVWpmNk5LL005djQwV0JDdDUzRUpSR0ZlRDA3eG9GeVBOaTVrY0k1SVpUaHVUNS9aank3amhwSEZNSFY2TW0yVU1jTlcyWnZpUHg5WnczY3VkZElZeEpoZm5PWDJmaWdFb3QyYnRFb2psc2hYZk9ud29OWW0wRnBZWVJoaWFDTXl0alA1UktTT3o3Z3M5S3hTdDh4NmN2Z2c0ejJZWTU3VnowUVM0NjZSaC9QTEVVWnkwVndXRGtqRUd1dHlNLzh1cVZqNDN2NVo3NmozdFpwS1V4L0pjOXRFaGpCMjhkYVVlcUs0M1VPWkFlZTdJNktwREIxTXBJKzA1MitpUUhJandQYzRMWldZSzNvTFJKd2RMbVJhTDZSVjVMdGtueHJ4VGE3ajIrQWxNcXk2bFpEdjJ6SW5yZnI5M3g1dWJ1UEN4QmhZM0k4L1lvZzBtRjB3cVpjNCtReHpKRHNNdWcraTR6TnE3bkJralpCdFI4SXpMK3NjSDJUU2o3V2hsdUpsemFyTGNkSFFsZDh5WndGVkgxN0RQME9LZHl0ZWxnOWYvV3JDYUx6NjVtYlc1TXRFbmlJV0dHVlVCWHpwNHFONTNmdThXaUc3LytOT1RKM0RXV0Uvbk1qbWllYTF4VXdKa3RBd1FWaUFBQUFiS1NVUkJWUFdRUFFvMG9TeHU3WEVCZGRMbFI4R2x0dzFSUWMvRHFKNnI2NEpzaG15ZE1ub0tGWHVJUWlFZ1lkT005TlBNcVFyNXpwUVMvblRHV0c2Y01aN1Q5eDNDWUUzWmJWZGJWZTV6dThQa1A3emV5Q0czTHVWbUhieDI2UVRjT05kSWkrZVVzaHlYSGpHS3l1SjRuenJiZS9HMlY3QzlmTGV2dmtaSDZvY09zdkx5VWZEd3JLZ2pjQ0QwUGVSWktMaVRtQUMwWXVvaExDeHVFZkMwLys0SnlDd1lKN2pUYkt5WWhBcUYyN0ZEY0xsZ1hKMHcwSGZqTElPRERrNFpicmxzY2hHUGZhcUdXMmJXY1BHaEk1ZzhyRGlpWmllWHMzMHZOclR6NlhtcnVHVGhabGJsVkUvbm9WZ2ZkeUE4THRIT2RkT0hjK0J3ZDR6RkxsM2VMbEZ0UXpSTUkzVHQwYU9ZV3RKSm9iTWkwSlFDSTd4TUJKWnhXb1M3akI1R0VMbW1QS3lFZFNGMGk0QkxPdzJXQzRJMFFKVnhIb0R6UmEwK0h5VUZjSVg0SGxyaDhabXhjUFVoUlN3NmV4eS9uVkhEWlI4Znc3akJTWnp2NWh2WGhwclp3ZTIyYmt1YnV2ako4K3M1ODZGMVBMWXB3V2FiSXRDZ2h5YXY1U25MZnNWWmZucE1GWWVOR3VSNnNnTnVmWXU4dnErNzl1Wmtualk4eFkrT0c4MVJsWGxpTnFPS0ZxTk9lOVlJS0UyRElBV2hZZ2VXU3JYamwyQlpyR2VqZ0FsQndodHBvWkZKOEtScGlTREg0S0NUZzRyYU9YVlltbXNPU1hIL0tjT2kvZXlQVDZqaEM0ZFVGNEJMK096cTVYNXo4dGJHVHI3ODUxWE11YitPeTE5SXN6YWZsQ3o2cE92YWx4aGdtVlRVeWY4ZVY4MHg0eXR4L2R0Vi9vN09jNDkzRzZaVmwzSHJySnJvMTB3cFRVMHZ6SXFWd1pkd0hsM2FMdWJ4SFVBV1BFbG1wRzB4bXlObHN1d3R1ek1wbGVhUVFXbE9HMms1ZTV6SDl3NGJ4UDJ6UnpEMzlISDg0YlM5dUdqYU1BNFpXUmI5b1hvcXR1dWlPcTNiMEpGalVYMG5YL3J6R21iT1hjc3RxMkIxSm9Zcjh3U2NweTJzMFFJU3crUFF3U0UvT0dZa2g2b3Qzc1cxNjVKdGgvbVFWSnpyUGpHR3o5YmttSnpxWkZLOGtmMFNtOWxINGNEaU5nNHVidWY0b1RtK2QzQXhOMzVza01KZ2ZubmtFQjZZT1lxSFRodkhQYWVPNTdleWE3ODZhUXdYSFR5TVEwY1BKdnBSK25iYTIxRzIreHRGOXdIczVwYzI4S201S3puam9RWnVYV1ZaRnlUSUcxOHpRQ0JxSUlVZGdUNnNwUWo1MU1nc3Q4MFl4VEhqQnUrSTlRN0wvbVlRSGZjcTJjZ2Z6OWlYeFo4OWdCY3VtTUp6bnp1UUZ5K1l5alBuVGViSnorelB2RTlPNE12VGh2S1p5VU00ZDNJbG41cFVnYk5uSTh1U3VMb0oyU1hIWjNlRFZRWDM1VzlsUzVyNzMybmgzL1VSN2VCYmwzSEo0bmFXdEtWb0RpRVhFM2pPNXNxc09BMDBNamtZeTRoNEoxZE1qZlBURTJ2MDVTNHBUdS8rM2lNZ3Z2dm0zMTFOQjk1ckc5cjU3WXYxbkRWdkpiTTFYUzk0dklYYlZzSjZTc25yV3drT0xBeGVFT3FwR3BFdHpwT1NhM1JVUlk1ZmFBSDV3clNSbE95R2ZXVTcxL3NTUkhWWnBoN2NYMm01LzBibTdZMGRQTGxtTTc5NWVRUGZlbW9kQi8zMlRVNjZ0NWF2TGVyZ3IwMXhsc3ZXdGFtRGdUVE15dmJpR1VMMXpNcWJEZVgvZWRiSUZZT1BwT0RTQTFMY0t4Tnk0dmpCMjkwL2k5VnUzV3BxdCtqZkZiSDdiNjNjeC9hbmF6ZEgveW5GTTJ2YkNuRmRJWFlBUGJtNkJSZnVmWE1qRjgxZndkbjN2c1djZTFab1JWM1ByQWNhT2VmUlprM1REcTU3SThjN21SVE5wcGoyV0RGNWZUcTFjb2ZjVlBYQ3NLQjVvY1NVKytSSkd6M1M3RjNVeWlXVDh0dzNaNlMrR1kvWkk5cW5GcmJjN3dtSXZqN0lQN2E2bGU4dldzYzVEMi9nakFjYk9mWEJqY3laMzhTY0J6WXcrNkVtWnN4dlp0WkRqWHptaVhaK3R5YkczUFZKSG0rSzhYYVhvUzVieElaY1VuQWtzSnFjU0xPdzROd2k1Q0loejhDNmI5WW1odFhDNFNtdlZFZGlVMHE3K0xyT0RlK2NYY08zang1TGpRNlo0OUxTTGIzZlE0bjNCRVQzUDVoY01YMHNOOC9haXh1MHQvMlhmUkxVNkhncUszdlZxWTVuQlVBb2NQSmVVdllzVGlBZ1F1VlpyWjVlRUdnZDBCWlRRTG1kanBFLzZmeTZRcm1BZExzWmFad1JzREhSVi92dG5EYmE4dXRqeTNIZ1hUbDluTTROaS9jUVhBT3plVTlBN0dsNnFGWnhkNGp4M1dOR00vOVRFL2pEOGVYODUvNnhhTE0vSVpWbmVDS2dLcGtuYWZMYUd3Y0tWaFBWeU5jTUZXZmwxT2NVVytJQ3VVUzJyenBoR1JzUE9YSklsdjh6THN2dlBsRXF4M3cwdjU4MWxqa1RLM0NmTjBURzMvdDZUMEhzM1ptcWtnUXo5ZUhubXg4YnlXMnp4ek52emhqbXk5Rys4N2hLcnA2YTVGc0hKYmhpU2hHWFR5MVN2UFg5aWlsSnJwb1M1NFlqa2p3NGUxaGs1KzdTUW5IOUNSTTRkWjhoVEIxUktwM3UzZExmUC8wUEE3R25hNTVVeFIxcVRLaEk2a3RiaWlOR2wvSkZiZSsrZXZobzNNOGZ2bkhZY0w1eDJBaStmdmdvdmJzd2trc09yZWJzL2F2NHlOQ1VwbXFSVG0xOFlwNTV6OEhiMG9lZXhJZnh1MGZnSDY2SjcxNzA5MC9ORDBIY0EyUHhJWWg3QU1UL0R3QUEvLzk1b3c0d0FBQUFCa2xFUVZRREFLRE9YcnB2dE9OcEFBQUFBRWxGVGtTdVFtQ0MiIHg9Ijk1IiB5PSIzMCIgd2lkdGg9IjExMCIgaGVpZ2h0PSIxMjAiLz4KICA8aW1hZ2UgaHJlZj0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFGRUFBQUJZQ0FZQUFBQ05nQnYrQUFBUUFFbEVRVlI0QWV5Y0NYeGVSYm4vdjNQT3UrVE4waVpOMHpaZDBnVUtGUXEwRkZrVUNySzNwV1ZSNUY1QUZPNzllN200Y0hIajhwZUxvSElSRWZXS1hoRkZVUVQvTEFJdFMxRUVLa3Rwb2V4NzZaNDBUWnVtU2JPKzJ6bnovODE1a3pacDBnMHJ3dWZENlpremMyYWVlZWFaM3p6enpETno4dFpMWjdMMncvQzNZZUR4NGZVM0kvQWhpSDh6aFBBaGlCK0N1QWNRMkFNc1B0VEVEMEhjQXdqc0FSWWZhdUlIR1VScklSZGExclZuZVhsOUJ6ZS90SjRmTEZyTEZ4K3BaZWd2VjFKMDA3cnVVRWZ4TDlaUWZGTTlxVi9VS204MWxTcS82SkU2MGRkencvUHJlYXEyaldYTkdUcHpBWG54M0FPNDdCYUw5MXdUaFIwcm10UGM4V1lUNXoyd2tqbHo2NWc5djRHdkwybmpxcGZUL0dabG5vN1F3NUREMkt6Y2g0RFFXSVVRakFFYnB6T01jY3ZLZ0crL25PVmJTem81Kzg4Yk9PMytOWng3LzByKzY4bGFuaGFvcmgzZW84dDdMOW9KcEIwYnBIRUxWcmZ5NmJrck9HM3VLajcvWkN0ekcrSzgzdUd6SVJ1ajA2YklteUpDbThUZzQ5dVFJcE9qSmhWd1FFbVdqeFozY1daMWxvdjJ6dlB2ZTFzdTNzZmpTNU5pZk9FamNUNDdNY25zbWlMR0RVNlNEZUNKVlUzODRJbmx2TDYrRmRjMmYrZkwrenZ6cDE3Zy9leUZEWnoxWUIxbi8yVTlENjczZUNlYklpdXRDazJlMExPQ0xDUWVCaFRaZ0dNcWM4d2VudVZuUnc3bTl1T0hNbmZtU082YlU4UGRwNDNsRnllUDQ0ZkgxVVRobW1QR2NQWFJvL25POUVKdzd6ODhiZ3pYSDF2RHBVZU81WUpEYWhoUkVzZFRPMy92UHY3ZFFHeEo1L25kNjVzNDVaNlZYUFpDRzRzMng5Z1VwSkIrZ2ZYeFEwZ0VsaEV4eTVUU0hHZVB5VEJ2UmpuelRxL2hqdE1tOE5uOUs1Z3hvWng5SzRzWVZaWmtlRW1DVk53YkNJOStlUTY0eXVJNGxhVXAzZ01NMlRXcCtvbTU0NHduWkpQT243K0dyejI5aWJjeW1xTEdrMzF6ZFdKNE5rK1p5VEt4U1Bac2FqRjNuVmpGZlFMdHhwa1RPYXBtRUhGZmRzK1Jmb0NDdHlkbGJleklSU3ZtbVEvVm81bExWeGlISUlHVnZUUFN3VEhKVm82djdPUzNueGpFOCtkTjVLdUhqZUNqSTB1cEtvNnhPOUM1bFQwYmhLVHpoZENhQ1ZqVm10VUtuZWJ0VGRzUHkxc3kxTGJsdHRUTGFTYnNpZjU3ZTRLSjQvSDh1bmErdnFDTzc3MmNvWlZpQW1LQ0RkbTdMRFd4ZGk2ZUZPZitXV080ZmM1ZW5EeHhLTDVuWExYZEN1L0lqWm4zMW5ydTFNcit0UVgxZlA3QjVYejIvbVg4OHdPck9HWHVHazY4YnkzSDNiZU9ZKzlyVUZBOHQ1NWo1eXBXM3ZIMzFqUHp2alhNbWJlYWN4NVlIZFc3Nm9sVkxLNXIzUzBaQmlMZUl5QXVXTDJaejJuNjNsVVgwQ1hvREZrd0FWV0pEQmZ2RitmaDAwZHo5ZlJSVEJxYW9qVGg3MVRyT25JaDY5b3lQTEt5aGQrL3RwSFB6MS9KbEYrL3lvbDNyZURjQldycnFWWit0VHprN29ZaUh0cVE0SWxHanhXZGNkWmw0MnpNeDJqS2V3cXdTV0pzeXZwS3gyZ000cXpKSkZqV0Z1UFBEWEQvaG1KK3VOVG5uSWZyb3pZeWY0TlcvazBnV21EZTBvMWMvTmNtVnVTS0Nid1VnZHlVY2l4bjFjUzQvYVNSWFBIeGFpWlU3TnpBcjVjcFdDSnR2dlRSVmZ6VEE2dVlPYmVXOHg5dDVxS25OM05icmVIdGZEbnJ3NVE0eDdXU1M0dXR3UnFmbk5yTCtVbXQ4Z205eHlTUmlleXYwWnhYU3UrUzBob1FyZlhpNUx4RUZOQmdPL3U4VHVibTY0dmF1T3l2ZGJRNy80amR2OTQxaUJuWnBKdmt1bHowUkRQdmRIblNyamdsV2pTT0dKem1wbU9IY05OSm8vbllxRklTTzFnb05uWGxlSzYrbFN1Zldpdmc2cGc5cjQ0YmwrYjRTNlBoemE0aU5rcDdzbWhnWkJxc09tMDlYNzVrSWFBV2pkb3pjc2hCenFGY0pBU2NrSFMzZ3E4YXZtSVBSQ3NIRkFjY2NxdGM3Qno0UU82VmM3R2E1UzM4YmxtZUh6OWJIOWxMRWU3VzdWcllyUXFPMk1uNng3ZWErUGJ6TFRTRnBSaGpxV0lUbHg2WTRNNVRhamhsNGhEaU83QjVTemQyY0wyMmVPZk1yMlhXQXcxYzkzckFNNXNUTlB2RlpPSkpkVHlHRnhvOFFsQ25EWG5GRml1d3JER29TSnFIM3AzNEZoUG1NZVFBUjYvZzJwYm1JWXVNU3NSTWtmTGxoeHFCYlJTRDJxRUlLd0NOSFB0T20rQW5yM1h4bmFmcmQxc2puUlRzem1WRnZGREcrUEpuVzlna0lXS2srV2g1eUc5T0dzTTNEcSttU2c2dVNQcmNEdlF1MmJrbjVmcGN0cUNXazJYZ3YvVnlGd3VhREcwa0NQSHhyTUVMREZoUHdTZVVXMlFkQUlRRnNOeEtiOTEwdFNBZzBXVk5UT1J4ckFCekFhTXlGSVNYMEVFTUhaWDRLYy9sWTNCMFZyemQ0RGg2b3p3akFJMG9Pd1hzejk4TytOWExqUVJPYU9YdHlpMkpkNFZzSzgyaTJzMWM5SGdqRGRwMWxBUmRYRGd4em8zSGp1VG9jZVZiaVhxbE5tZnkzUDU2SStjL3ZKYlR0VWYreWR0WjFnWEYwcTFpQ0JNQ3oxUEh0SFB4TTRTdUo5SUt0REI1WVZyZEM5UlBUMEVGSmtDSmlMNkFsUU1tQStKRUJJb0hSblM0NE1vVWRFUDBJTHEyMElsVzdYaUJORmlhV0pqYUFYa2YzTUw0L1pjMnMyRFY1cWpLcmp6RWJWZklDalNyTjJmNDZoUHJXZDRWWTFTc2d4cytQcGovN2w1MW5lZ0ZLb2t0dVRkMTVibnB4UTFNdjMwcEZ6M1ZvWDB5ZE5naUFwUEFScDBKRklkNmR6VWxoZzRWQ3ZYZHV6VFJpd2xVWHpSR3daVzRmSlJuY2Y5Y0RwcndXRU9rZFU1ejFHNGhYM2tSbU52RUVZMklYS3p5VURiV0FRaFMzWWlQaDlXc2FKWmYrNlhIMS9Oc2ZVZUIzVTZla240bkZOM0ZiWEpvcjMydWtkY0U0SDZsR1c0OWFRVC9OSGtFQSswdzdwYTlQRk1uS3Q5YzBzclNmQmxaMlNqckJEZHhzTHZjWkhmTDczVmtwUEFodFZuRDFZdlg0N2F2TzVOZ2wzb1VhdkFlWExhSnVjdmJPS2cwWU42cDR6aHMxR0NpMmRQZFFpaVFGcTVwWWZhZGIzRGhFMjBzYWk2aFUrNkRVYjcxMUl4dWE5SmdRdDdmbHpSZkdwNlh2WDFVL3VkM0Y5YXpzNU1nZFczblhWcmExTWtQbDJ6azVERkpidEVDTXFJMDBRdEFhR2pQOFAxbjF2R1pSNXQ0ckxtWVRrMVhhL0thR3QwVEx6VFNRQ3Y4Wk5mYzFObDVrLzg0Q2llcVpnN2RRTjYxT3M4emE5dDJLTTlPUVhTajhLZVZyZXhkSG91T29QYXFLTnJDME8wOVhRT2YvOHRhcm42MWczVzVPS0huYkoydldLd0ZKTWE1SHFyaXpnbXRGcE5vaGRYNysvWFd6RUgyMFhvYWRBSWFjd2wrOFVyekRrL00xZFB0OThhcWFISGRabFpzYk9Wbko0NW5jTks1R01yVW5kVTI2ZHJGRFp6NThBWWViYkFFT25FT0ZZakF5dU1VTGpSSjNMdW5sUkNia3puVVZEYU9xeGk4ajI5bmdwRGJZNldOb1d6V0kvVlpIbHZad3ZZazN5R0lHWjJTdkZHN2dlK2RzRGNWcWEwQXZ0M1V4Zm5hK0gvL2xVN3RLcVIxZmhGR0RmcXVGV3VKaCtpOE1GU3dPTXlzYTE0dWlqVXEwTzVEeUlJbm9GV0hhS0VKaVBJaUxiVlJtU2R0TU80OWtsQ1BpTTdWZDdRaWQ3ZlJRMFZSWGRlR0MrNWRIVWZCaUpVb0pJT05BcmdLM2ZVZFhkUytVVm0rTzFpaXJPZ2hBcjBTR2xxRElxNStidU4yblhCUnN0MHJyUTgvbnp4NEhLbFlnY3h0OVI1WjNzem4vbHpIUTlyRTUyVjhEYUU4akJ5aHM0TVMwc3J4eldtUEdzcXV1QzFWYU5SRjVSbnJZL1RpdWQyRm0rWnExWFhTWURFT0lCZGN2anFQTk5wTkp4dVpnbERsRnRTV0VvclJKYVp5UldLaHlnS0I0dXFvYlZ5c1BEUU4zYzdFMldXMWpoVzVGVEJSZXhwTWxKYkE4am56WUNTLzNDN1FyRUhlUTZpK2VvWklHNk1LYXB1UXBSMHhGdFlOYkJ0VmcrMWU1YW00TkRBUmxidXZhTGZycFBxOFIxdDRzVDFKMnBRZzNFaHBtcFlFV1l5b25MQmU0RkphVkl5UjhIRVVxVVNDU2pDckY2TU9sdWF6eExUM050cCtHZEtpYzRKS0ZDOEVhVEt1STNLNDNhN0NPSDRtSXo1dDBteWZtQnowbU5wTTJIYnh6UXFPUVBsV2dJU1lVRmthTE9Seld2bUFSQzVWRENNUVJLaFk1ZTZXSENndmxDK0tCc2Vvb3VkbEthS1RVdE5KR1cya3ZBNFNHaUJmMjhsUXArOHRjbEYrOWVyR0FXMmpKSGRjZHh5YU9uTmN0N0NXcTU3ZFJHZVlaYnpmd1FsVlhWdytPY2t2cGcvbGh4K3ZZTytpdE9Sc3g4YTZNT3FrMGVHQUgrYUlCd3JTanBLZ2crT3EwbnhSUjJNL21sN0ZmMDhieEdSdEY2MXE0YnJudERYMDhBSjFXcGhhTisybGtVVEJJNTZIeVdWWnJqMHN4ZjkrZkpCQ0JUOC9jZ2cvUGJLQ0wzd2t4aGxqREROSDVEaW1xaEFPSGhSUWJnV3k3TEVoQUN5aE1WaU52SkZjaUg4ODdHS0liZVBFb1FIZm5aTGs1cU1INjd0T0ZiY2RQMXdIeDBPNThhZ3kvcm5HTUV4OENIMmVXQmV5YUlDVjJoUDNIZDVPQTY5NHVvSHIzK2dpSXkyWlBTb3VQM0VzOTUyK0Y1Y2RNWUl6UDFMSmVRZFVNYVhTRXhSV1FzYkZMNDRKRFlFWGtGYzRxRHpIZlRORzhJRHFYRHQ5Sk9mdVg4bVhENm5pODVNcndCZHcwanBqTXlEZzBhaFgrV21LZFZEZ1dZT25LVlZpQXI1MlFKTDVwNC9sQzFNcU9HOXlKZWRPcnVJejRuUCsva1A0dm5qZU9yT0d1MCtkd1B3enhpdU00NCt6cXZubEp5cEltbllzSGtnNkl6QjluVGVpUlNPaE5nOGRsT1crVTBaeDUreXhYUExSYXM2WU5KUVR4NWRIWWZiRUNzN2VmeWcvUDdHR1N3OUtVVUVYN2RMVitjdGJjQjRMdlM3SHZkZHIzNlE3ZnYrZlo5ZHhoNzRGcDRseDJaUkIvSHJtZUNaV0Z1T1pyYlNOMHRUbGJVWWpyYWtmK0JMYWo5SkdLL1drWk1qUGo2M215TEZ5enJkV2lWSnVGMFNZQk90amphWE1EN2w4c3MvZHM0YnhUWjBJZVNaSFFudm9TdzhzNGIrT0hNT1FYb3RieEtEWHc0blRPMVRMbHoxRlFFd29WaGZGMzJnNldrS1FOZzZMWi9qdmo1Wnh4NmtUT1hSa0tjbVlxMGwwdWNWVXVoS2wzY09kUnYzYklhTzVZTitVTEdhZXg5ZGxjUDExWlQxQkxmUWsrOGFPMmJjV3JPTGFsOXBvTndtcS9UekhqeHZFUU9lRHJWbjVVeGxQSXNiRlJIUFJkSUVYVWl6dCtvK3BGUnd3VE1kbEt1bDlxMDg4dmFaWkFCcUVueFF5NFBJcEpmem40U09panAxOXdEQ0doRzNzVTVybEs0ZU93UFN1dkl0cE40czJkMlp3RFpqSS92b2twSTFmUHFDSUwwNnRaR2l4azVjdFY0ZjY4ZldIWHVNdEhkVnR5VlFpSm8wNTk0RGhwT0tHTjFzdFN6ZUpwL0o3N2dGQmRBRCtYSWNITnkwTGFQTlNHQTNnWVpWR3gvdkZQZlg2eEMwNmJFaTdCY0M1TGRJbUsxRTlZWGxRZWNETXZRYyszVm5aMHNXcnpTRlI1NlFkeDJscS9jdUJWVnMwdkVqVGZFSnBuQzhkT0JoUG5lalQ0QzY4T0QvMmhpWHJhYktsb2piUzlCaWViUFBNa1FHZm5WeXB2TDYzQS94L0ZxL2w5MnRMK2ZiQ0RUaFBwQzlGNFMwd01SMGt1MFd0OE82ZUE0TDQvMTdid0RWTFd1Z3lKWkVHZUJyRk1vMkNNUVBydzZyTmFWcnplWkNRUmd1SkE5Q1E1K3hKZy91TnRtdlVoWGx2YjJKZE5vWlExRFRPYzhYME1aUWtmSHF1Y2szZHlySWtpeHU2V0xNNVE2Zk9Jd3NoaU5KZDhtRjdhSHZIOWZvMk0vbm0xeGgzMDF0YytVSW5hWWxzTlJFOUxUREZKczk1KzFVTUtKTXpYUXMzNU1ubzg4SGphenRwMHhGZWI3NjFyUmx5bXVlQjhYaHhRenR1SnZXVTl3UFJIWjdldmJ5ZGRxOVlBRnBVRDA5VHdJL0ZlK3IwaXpQYXZRU2kwUXhXSGFNUTRqN0luenhoY0QvYW5veDVxOXBWQTBKVkVsYnNyNDlZUFdVOWNkN0UrTzFxeTR5NWF6bnlqbnFtMzdtU28rNWN6dlE3bG5IbFl5dDZ5UHJFZ1ZxdjAvZWVkaWxBWGgyMmNuV01BSFR0MUJTSFRLOFpTQ1pVQ3hMcW8rWUc2VmlLZHpiSkpGRzRja0xzempjM2tRNTlnV2RZMHBpalZvcFRLRVg0OUtTNjQ5cldMcDdmYU5WQmFZbWVSZ2JMR29qSHZHNksvbEZlSWhqbmltZ2FoMTZjcE1uaWJPSG9za1IvWXVVc2IrNWlSWnVQOWNSVDJoMUtPR1gzdWQzZ3VRNWxUWklWNlJMZUV2MGI3VDZ2U2ROMXFRQUFFQUJKUkVGVXQ1ZlFrRTV3bG14VW53cmRMNzkvdFpGQUM1b0RNQlI3WHo2amIvTWdRRXVraVVWeFpkTC9TaW4vaEpHR29yQURMMGd6Y1VoeFJPUUF2UEc1dGR5OUJxRVJSM2FCOWRraTJyVVJpUWowNk1jeEYwSk8wekloWDg5S1MyVGEzSXpUQ2hZWFZLb3h3UDFzUTBhOFk0VFJxTU5SVlQ0ejl4cllGcnJxbTlNQmFVMHhhejFNb0J6RmV2YTVOM1ptcVd0Snl5blBxOTBjWVR3dC9oWmZ5OWZ4Y3JPbVZwZjFvWGN2V1Rud2krdmJDTVUwTkpKY28rL2kwQTJXVEpMajVPZ0dDcDR4ZkdxLzRadzFMa2FaQjNyRnJRMDN2cmlSYTE3UGtkTWdXTGxGMGljQ3paQmxtOUwwWENMdlNSYmlwOVoyNEVaUmtFY1pWZ0k0ZWZKT3BpaW4vNk91TFkrTmxEb2taVHVZcFNPeklvMXNmOHBDemp1YUtwbFE0cmhibmV0cHExQmFlRHFUdHluanVGcnRTRUpseGpEU3FtSTUrOU9yZlZSVmVYM3Z0emQyOGxTalQrQmJMU0tCYUR5c3B3RVE5Rlp2cTd0OFhoRElmV3R0ZmF2Uzk2SHZIenVHbzRiN1hMNmdqb3YvdklvcmxuVFNraXVLcGpFMnJuNDZhVU45RTVkbjBWMjFENGhXbWE4MlpxUWxSVUxlVFVXSnFreXJLRzZVVVBtMnQ4dnR5RmtKbnBOdWRUSmRXdml2MDBiaHU2SGNscmo3UFRMU2NzS3RhRUkveEpoY2Q4bldxQ1dkb3pPRXJOb090SDB6Z2NxVUhwbktjdkplUS9UUy8zNU8zNjNkOURmV0VQb0NYYkVKUFF3QnhucTBhSnBmKzJ3RFRmSW0rdGN1NUF4S3h2bnhpUk1vVm56UFdrc0dxMzhCWW9PUkVHS0psVmx3Zyt6NjdtcDU3dEU3Qk5vdlNsWmNWVkF2Vk1GS2xkTnU5ZTFOMkN1ZGQzU2FTbVd4Z0l1bk9qZkZjZWhGc0UweTBIU3dJbkdkOVFLSjBDTk5MN3FiWDJxa3kvZ1lKNG1FUjdGblF5NlpVczdJQVd5dCt6cTNxQkhOSWtOTWh4eWVSQStqMmttTUFJeXBicUJoZm55RHoxOVdObU43dGJWdDB2bVAzOVV1Nk5ReE1lSXl6cDZqbGd4ZWFNVUxjVTFJeWVMMFhPcEJUN0lRYTZHbFFPa3ErSkpkQVRROVFqMjNjMXZ3TmRxbmowNXcrSmordHFwM0xaSHlXbE5XWXZsWUk1NGFvRUZ4WDRLWjNtUzhJN2NtRE9QS2p5cy94TXJlamt2bU9HazdXdWdPaU4wZk00WFM3cnpBRDEzUHRFSHdiS2Y2a0NlbkJjK1FvME9qOTVXRm0vbjlLdzA0R3lybUE5N3U1T3BxQVhsV2paV2hDakdTSmZTTVpFWTlOYlRKTWUrcDc1cnF3MFNLanhQRVVSdjEyUFZUN2RLVjdUL2xlaXA2V01Za0xGK2VOaHpYZUUvKzl1SjFYUmIxRDZkWm9SOXd5TkE0d25FTCtmTG1OQzl1eklscm5FZ0dkVU5JOExFUkNVWTRmMmdMNWRiRWE0MGRMRzkxTW1vT3lWR1BLbXE3aDRTM0FoVmlTaXBJUlp1REpGOVoxTWt0T3BYcDdMWEtidVZXU0EzVGp1WnJoNDlrZUVLeVJMUEhSbXhkYVYyblIzTTZkTWxJdWlqUjUrRVYza0lWVzljTHFYU2JXMWtLMlgyZVRuL0svUnpYSFRtVWZTdFRVWm5iUGoyNGRFT1VIdWpSa2MwVG1EaFcrdXZxRDlYKzJram5lbWpmYkVyVFNURkNtV2owTlIwVG1vNkhWNmQ2VWZWUUYrSTNHcnZva0t0a3hCVVh1eWtWQ25yWGpqUUltU1ZqMDFydGpYZ1lPbXlDSzU5dDVhdVAxdW9iVWJiQVpJRG5tRUVKanF0T1JDYkN5R3RCdGEyMFhad3BCSVNTa3YxdU5SN2xPUUNWc0txWUlhSFV3UGM1SHluWE5OdnEwcnl5dnAxbjEzWnFSYk1EVmloTnhKVWZxcnVlanJpeVRCdW1rM0ZEZExrYTl5eHJsVUdQYWRUeldNOWlUTWlnb0oyUENjU0lhSURITFc4MGtSUFlFWWdhZEVmaTZUMHVIOUhZTGt5WWtRK1lZVkt5azFOMGpMZFBvcFZXVzhUdlYrc1liT0U2Y3JMcHJzNjJ3YzJzZmNzQ3lTQ3pvRUdQZ05PQSt1TGJROXV0Y3oydmlNemlPU0dNQlVOMEtVVkRSNDdONlh6MHZ1M2prL3VQSU81R1d3VnVldnpmcHhyNFU0T24wNDcrOUk3bGdSVVdZM0s0OUNocDhkVHFRVkZhMVhGVGVmSDZIS0ZlTEtwdndWakRFVU5oZEhtS2dhNm1yaHhyMmcyQlpBakZ5WE8xcFMxdUZRMVZJYW4rVEs4SXVmdWthcDQ3ZnpKM25ER1J1MDZkd0ppVVpvU1U0N2JsZVc1NGZnTnUveXp5Zm5mQ1dHSGlLMTlESktHTk1leFRrV0M0WENKbDl0ZEVYMFN1QU9tSjVGRUhRcjFhVnVtai9kcTJyTkxidjd2a3FWL3haQjNQYW5mUklEY2lsM2QxKzlPUEt2R0o2YUF6THAvdnpJbURHRjlSQUVkNDhjV0hWN0E2blhSTkk4bmxJOFprelVLT0dsdE9XYSs5ZFcrdWI2eHZvemt2OHhDcGhEb3FFSzA2YXRXWlFHR3FOT24yVThaeW5NNEtlK3BOcUVoeXdrZy9haWVyRSs2ZjYydmxXNDN0UGNWYllpZFR1NlorVHViRmFrYTRBbCtENHVLZUVEWGI4MktVS0hNelRjU3l2M3FUSnVocFRJTE93R3hYNVVVUzNVL1d0bkx2Q3UwczFHQkxMdWVHSWNyZjluSDZ2cFdjTnRMajdQRWVGMDRic2FYNHdhVk4wUUNvS2RYVkFxRjVFUkl3ek8vcVE3ZWxnaEx5T25oNGRRZHBVd1NoZWlEd05QSkVRWjMxeGVsZkRxcWlVb3NFdlM1UGRCK3JMcEllaHFwbWFaUDdzN0Y3b2VoRmh2dFQ1cWMxTTZ6NElGeFFIQ3JFb25TQnNnK0lMdXRjblJnbjVHY1pyVWJZR0ZZclc2Z0t1U0JQYmV2V3JZNmo3UjNjQ2N1UFhtaG1mVDZsMGMxSWlSTE1lMmRUYjVJdDZYSFN2Ri9QMm91Zm5UQ200UE9wWkdWTGhpc1hOdERwcFlocitJMjRvSWxpZlV0Tm1VL2NyYmlpMi9aMmYzbXhyRldETFRzVm1TRjhrU2dJWFYvOWNDY29UNjVwUXl5VnYvVTJTcDY1MzFDT0hwS1dwZ2Y0bm1Wd1V2V1UzL3QyY2kzZTVHRTlnOUdnSUpuaW1rVWppbVd6dXduN2dSZ1hIN2RSanhxMUJ1VEhPVUVja005czV3OTgxbmRrdWZCUHExallGQkQ0Z1FUMnlRcUVONXB6MHQ2SUU3MHZjU1Vtb1h3RmwxOHZNM0grbitwNU0xdUtDV0t5aEk1Q1FZTm90TXBPcWt3NnNnR0QrMG5iNHNaQVpWWXRXc1c2cmV0V1NHQmlCTkt3QjlkbXVFVUhFKzY0UzZWYmJ0OFlycHcrbWxOMThEQzdPbVQwTms1OHA5eWZuejIvamc3SFB1SWVGNUFvZUp6YzY0VEt0VWJ2eTIxN3FrdUVQQ0dxSisyMWlqM3kya2E1STZETm1ZZ2pQVmVIbk00cm5xem4vcnBBcm13UlZsL2pqRHFmOTMzbXJrN3J3MDVyRCttQWNWTm5udThzckdmSlpxTVdrOUxnUEtFWGFEQWNpSVVxQ2UzZkM2bStUN2ZRZmVPeGxXekl4L29VV0dsTElTT09VNTRtN1hrdlc5VEVYVzl1MUFBWFNucWVCdzB2NFRmNjVQSFRFOGRSVlpMb3lZNFdtZTlLcm52WEdOWHhCRnhXOXRrVld4STZwYXBNU2R2Y3E0S24wT2NlcGRFNFNDTnZUS2g4RndTaXU2V1JLOW85WG1rb1RBMDNmWi9UWnY3Zkg2bmw3dFU1MGw0Q2EwU29lcUhKQy84Y3pxbjkxMGNhbUNkYnQxSGZZVlFxbm9WN2sxWlU5ek8xV2ZldTRYWjl3d21zTHlGeklBRWxzUVpQU2VtUlU2cWxMVGxhUkUvMzFhNkJlMnAxTTE5NHRKNUZIWU1KVFZ3QlFyV0twalc0bGpRSXpnT1FLK0swdXkxTThjMW5Obkg5NGdiZWtHUHVLQnc3VWVFOEN6Y3ozTHZMWHlGbi8zdlByT1BtWlZuYS9SVE9wRmtOYktncFh4bkxjdkgrSll3ZUpCdnNLaWg0Q3YzdW8ydks4RjNqbWxoK2FDU2EwejZmQnAxRVgvaElIVmMrdHB5TEgxbkZhUStzNWQ1YVE5WW1vNFpRcHoxOVZ6SHFUdFFSQVZPYkwrSGYvcnFSVS82NGd1OHNXTTR2TlQyKzkrUkt6dnpqMjV6OXlFWmVheThpYTV3ZFZTME5RQ0FOeGlHbllNUVBFN0JRZStMUFA3U0NWN1VLMy9kMkV4ZmMvdzZmZkxpUnVYVXk4WTVPNm1aOUU4bGczS21RRVJUV3g4Z21XbWN5dExwaVBUYktMN3pxcFE1T243dUs2NTVheWNybVRrUzVKV1R5SVQvV2g3bnpIbHpGTmErbDBlR1UrdTVvY29waGNOQ3VUN1dEK01vUm95bDJkcThidVFGQjNMczhqc1BacXVIUUlBWnFTc0lGbWlZcmc2RmMvMDRSdDlVbWFiSmw1Tlh4dkJOVWhGYlRCdFUwb1MvQkVnUWFPVXRJTXdsZTZTamoycmNUZk8zWkxyNzdSb3ludXdiVEhIcUNLWU0xYnBCQ1FqZHRyVVJTZldNRkNtcFhiYVkxQ3g3ZUVPT29leG80YjBFSER6YVcwS3E5Y042SVZ0S1pTUHNLY2hwWHhZUjZNU3JSOUJSTkdNL2pqc2RDN2Ivek91U3RDOHI0OXVzaDArNW9vUHFYeTVoODZ5cjJ2N1dXVVRldjVJb1hPMW5TV1Vvb09tTlRvQUVva2l0MllDckhIVE5ITTJmU01JcGlybDIyWEgzZnVyUDNMaTlpZktsZVZHb2xWU2h4MEtwbkpZUzZxbzZMTnlFYWFxeUo0ZVIyYVJkQ1I2OTZoVXpSeVhnakd4blpPUU1aUHk3Z1VZRzdmVng5eEQrTTZGQ21LcHNBcTQ5ZVVWbW9kMlhuL0FScDMybXRJVkNXRlU4YjFaTkVycTdFc2FJTDNZQzZoT1J6c2lBdEpWU0dWZU11d3FxK3A5SVVuZUxaSXJCVzZKeHhwZmJDN1VxN2RrUXB6bmxDejhwVHNIeDZyTStqbjk1TG54WUdxWVgrdDhUcG56bElTLzJoMmlINGt0YW9jZkhDYy90R0xlM0kzbGtUb3V6K0ZUOG9PUUxXcWg4NGRZaTBPSkRrZVFIWFBSSjZpeWs1SnBubTJ3Zkh1WHI2R0VybDZMdXhVbEcvZTBBUW5ick8ybnNJemw5RTB5bDBXcWdtakEwd3NwVmdZWHNjK1NCY1R2NmNGTVBIeTJ0QmRQMXp1d3RwaHBmM2lRY1pqaG1hNVo0WncvbnlJU08wYXNlM2RPb3Z5MldndDd3VkVsNGg2djg4VGgvcUR4c2FZc2lEcG9qVlZMWkd4aHBQUUhvUW12NlZQakE1QmhQRW5TcmdUdFp4L1pKNWNJY1Y0MU9kWERtdGhCdFBxbUh5c0ZJOFk2SmV1VVhubmxmck9IQkUvNitGUWlPaTZmZElhTFdiS2NQb2ZDS2k1a1NxaG9pWU9zWXU5S3Yyd2NpUTZGcTdKR3RPSVZUM1BPSXlWd2VWZFBESFU2cWxmY08xazByU2M3bGQwZTJ2ckdOVnU1VldhckhxS2VpT2hVeDNhb0JvOWw3bDdGV1VKeUgxVmt0SS8zRy9BckFtQUtQRytZQmVWbDFSUUN0M2tpd0hscmJ6alFNVHpEdHpFcE9HbGhEenpKYU91VjNPVDVjMGNNTkxMY3lRaWR0YXNvV0VIWUk0ZWxDU1dUVWw4aGt6dUFXRzBKRzc0Qmk4WDBCMGFFZ1dpV1V3ZU02dWFlR0lGZzJqTXVYajdKMm5nWGN6U3Y2anIyQlVaUkJwTHA4YzQ1N1pZN2pzOEJGVUZNWG9mYWsyZjNpMW51dGViR1Y4VlFVMTJ6bUtjMDNRdTJMdmRGeFQra0lkK1I5UUhzUFRndUpySmJNNk5rS0d1RGZkUHpSdFhPc0dJeHR0cmJvaisyYU4zZ1dvMGJzWEdMelF3YUU4emFCRTJFRzUxOFdYSm5rODhja2F2bnBFamZiTVNYcjI4WFJmdWNEeWsrZlc4VTJkZnFmOGdDc1BHMHh4WFB5N3kzdEhBK2Yyb2hpcGJ4b1hUNm1neEF0QTZtK2svcmdSMW1qeXZyZzh3ZVVKcUJCUEF4MUtQZ2VpTlhHc0J0dnFpVFlCYmhVdTF2dnBvd3dQektubU8wZU5pajVuZU1iMDYwV3p6a0t2ZjdhZWExNXNwODByNXFJRGgzREFzQksxMDQ4MHl2Q2k1MDRlN2pEenlHRUdKeHpPdHlKVWpmNk5LL005djQwV0JDdDUzRUpSR0ZlRDA3eG9GeVBOaTVrY0k1SVpUaHVUNS9aank3amhwSEZNSFY2TW0yVU1jTlcyWnZpUHg5WnczY3VkZElZeEpoZm5PWDJmaWdFb3QyYnRFb2psc2hYZk9ud29OWW0wRnBZWVJoaWFDTXl0alA1UktTT3o3Z3M5S3hTdDh4NmN2Z2c0ejJZWTU3VnowUVM0NjZSaC9QTEVVWnkwVndXRGtqRUd1dHlNLzh1cVZqNDN2NVo3NmozdFpwS1V4L0pjOXRFaGpCMjhkYVVlcUs0M1VPWkFlZTdJNktwREIxTXBJKzA1MitpUUhJandQYzRMWldZSzNvTFJKd2RMbVJhTDZSVjVMdGtueHJ4VGE3ajIrQWxNcXk2bFpEdjJ6SW5yZnI5M3g1dWJ1UEN4QmhZM0k4L1lvZzBtRjB3cVpjNCtReHpKRHNNdWcraTR6TnE3bkJralpCdFI4SXpMK3NjSDJUU2o3V2hsdUpsemFyTGNkSFFsZDh5WndGVkgxN0RQME9LZHl0ZWxnOWYvV3JDYUx6NjVtYlc1TXRFbmlJV0dHVlVCWHpwNHFONTNmdThXaUc3LytOT1RKM0RXV0Uvbk1qbWllYTF4VXdKa3RBd1FWaUFBQUFiS1NVUkJWUFdRUFFvMG9TeHU3WEVCZGRMbFI4R2x0dzFSUWMvRHFKNnI2NEpzaG15ZE1ub0tGWHVJUWlFZ1lkT005TlBNcVFyNXpwUVMvblRHV0c2Y01aN1Q5eDNDWUUzWmJWZGJWZTV6dThQa1A3emV5Q0czTHVWbUhieDI2UVRjT05kSWkrZVVzaHlYSGpHS3l1SjRuenJiZS9HMlY3QzlmTGV2dmtaSDZvY09zdkx5VWZEd3JLZ2pjQ0QwUGVSWktMaVRtQUMwWXVvaExDeHVFZkMwLys0SnlDd1lKN2pUYkt5WWhBcUYyN0ZEY0xsZ1hKMHcwSGZqTElPRERrNFpicmxzY2hHUGZhcUdXMmJXY1BHaEk1ZzhyRGlpWmllWHMzMHZOclR6NlhtcnVHVGhabGJsVkUvbm9WZ2ZkeUE4THRIT2RkT0hjK0J3ZDR6RkxsM2VMbEZ0UXpSTUkzVHQwYU9ZV3RKSm9iTWkwSlFDSTd4TUJKWnhXb1M3akI1R0VMbW1QS3lFZFNGMGk0QkxPdzJXQzRJMFFKVnhIb0R6UmEwK0h5VUZjSVg0SGxyaDhabXhjUFVoUlN3NmV4eS9uVkhEWlI4Znc3akJTWnp2NWh2WGhwclp3ZTIyYmt1YnV2ako4K3M1ODZGMVBMWXB3V2FiSXRDZ2h5YXY1U25MZnNWWmZucE1GWWVOR3VSNnNnTnVmWXU4dnErNzl1Wmtualk4eFkrT0c4MVJsWGxpTnFPS0ZxTk9lOVlJS0UyRElBV2hZZ2VXU3JYamwyQlpyR2VqZ0FsQndodHBvWkZKOEtScGlTREg0S0NUZzRyYU9YVlltbXNPU1hIL0tjT2kvZXlQVDZqaEM0ZFVGNEJMK096cTVYNXo4dGJHVHI3ODUxWE11YitPeTE5SXN6YWZsQ3o2cE92YWx4aGdtVlRVeWY4ZVY4MHg0eXR4L2R0Vi9vN09jNDkzRzZaVmwzSHJySnJvMTB3cFRVMHZ6SXFWd1pkd0hsM2FMdWJ4SFVBV1BFbG1wRzB4bXlObHN1d3R1ek1wbGVhUVFXbE9HMms1ZTV6SDl3NGJ4UDJ6UnpEMzlISDg0YlM5dUdqYU1BNFpXUmI5b1hvcXR1dWlPcTNiMEpGalVYMG5YL3J6R21iT1hjc3RxMkIxSm9Zcjh3U2NweTJzMFFJU3crUFF3U0UvT0dZa2g2b3Qzc1cxNjVKdGgvbVFWSnpyUGpHR3o5YmttSnpxWkZLOGtmMFNtOWxINGNEaU5nNHVidWY0b1RtK2QzQXhOMzVza01KZ2ZubmtFQjZZT1lxSFRodkhQYWVPNTdleWE3ODZhUXdYSFR5TVEwY1BKdnBSK25iYTIxRzIreHRGOXdIczVwYzI4S201S3puam9RWnVYV1ZaRnlUSUcxOHpRQ0JxSUlVZGdUNnNwUWo1MU1nc3Q4MFl4VEhqQnUrSTlRN0wvbVlRSGZjcTJjZ2Z6OWlYeFo4OWdCY3VtTUp6bnp1UUZ5K1l5alBuVGViSnorelB2RTlPNE12VGh2S1p5VU00ZDNJbG41cFVnYk5uSTh1U3VMb0oyU1hIWjNlRFZRWDM1VzlsUzVyNzMybmgzL1VSN2VCYmwzSEo0bmFXdEtWb0RpRVhFM2pPNXNxc09BMDBNamtZeTRoNEoxZE1qZlBURTJ2MDVTNHBUdS8rM2lNZ3Z2dm0zMTFOQjk1ckc5cjU3WXYxbkRWdkpiTTFYUzk0dklYYlZzSjZTc25yV3drT0xBeGVFT3FwR3BFdHpwT1NhM1JVUlk1ZmFBSDV3clNSbE95R2ZXVTcxL3NTUkhWWnBoN2NYMm01LzBibTdZMGRQTGxtTTc5NWVRUGZlbW9kQi8zMlRVNjZ0NWF2TGVyZ3IwMXhsc3ZXdGFtRGdUVE15dmJpR1VMMXpNcWJEZVgvZWRiSUZZT1BwT0RTQTFMY0t4Tnk0dmpCMjkwL2k5VnUzV3BxdCtqZkZiSDdiNjNjeC9hbmF6ZEgveW5GTTJ2YkNuRmRJWFlBUGJtNkJSZnVmWE1qRjgxZndkbjN2c1djZTFab1JWM1ByQWNhT2VmUlprM1REcTU3SThjN21SVE5wcGoyV0RGNWZUcTFjb2ZjVlBYQ3NLQjVvY1NVKytSSkd6M1M3RjNVeWlXVDh0dzNaNlMrR1kvWkk5cW5GcmJjN3dtSXZqN0lQN2E2bGU4dldzYzVEMi9nakFjYk9mWEJqY3laMzhTY0J6WXcrNkVtWnN4dlp0WkRqWHptaVhaK3R5YkczUFZKSG0rSzhYYVhvUzVieElaY1VuQWtzSnFjU0xPdzROd2k1Q0loejhDNmI5WW1odFhDNFNtdlZFZGlVMHE3K0xyT0RlK2NYY08zang1TGpRNlo0OUxTTGIzZlE0bjNCRVQzUDVoY01YMHNOOC9haXh1MHQvMlhmUkxVNkhncUszdlZxWTVuQlVBb2NQSmVVdllzVGlBZ1F1VlpyWjVlRUdnZDBCWlRRTG1kanBFLzZmeTZRcm1BZExzWmFad1JzREhSVi92dG5EYmE4dXRqeTNIZ1hUbDluTTROaS9jUVhBT3plVTlBN0dsNnFGWnhkNGp4M1dOR00vOVRFL2pEOGVYODUvNnhhTE0vSVpWbmVDS2dLcGtuYWZMYUd3Y0tWaFBWeU5jTUZXZmwxT2NVVytJQ3VVUzJyenBoR1JzUE9YSklsdjh6THN2dlBsRXF4M3cwdjU4MWxqa1RLM0NmTjBURzMvdDZUMEhzM1ptcWtnUXo5ZUhubXg4YnlXMnp4ek52emhqbXk5Rys4N2hLcnA2YTVGc0hKYmhpU2hHWFR5MVN2UFg5aWlsSnJwb1M1NFlqa2p3NGUxaGs1KzdTUW5IOUNSTTRkWjhoVEIxUktwM3UzZExmUC8wUEE3R25hNTVVeFIxcVRLaEk2a3RiaWlOR2wvSkZiZSsrZXZobzNNOGZ2bkhZY0w1eDJBaStmdmdvdmJzd2trc09yZWJzL2F2NHlOQ1VwbXFSVG0xOFlwNTV6OEhiMG9lZXhJZnh1MGZnSDY2SjcxNzA5MC9ORDBIY0EyUHhJWWg3QU1UL0R3QUEvLzk1b3c0d0FBQUFCa2xFUVZRREFLRE9YcnB2dE9OcEFBQUFBRWxGVGtTdVFtQ0MiIHg9IjM5NSIgeT0iMjEwIiB3aWR0aD0iMTEwIiBoZWlnaHQ9IjEyMCIvPgo8L3N2Zz4=');
    background-repeat: repeat;
    opacity: 0.08;
    z-index: 1;
    pointer-events: none;
}




.login-card {
    width: 100%;
    max-width: 480px;
    background: #ffffff;
    border: 1px solid var(--border-color);
    border-radius: 20px;
    padding: 3.5rem 3rem 1.8rem 3rem;
    box-shadow: var(--card-shadow-hover);
    z-index: 10;
    color: var(--text-main);
}

@media (max-width: 576px) {
    .login-card {
        padding: 2.5rem 1.5rem 1.25rem 1.5rem;
        border-radius: 16px;
    }
}

.login-card h4 {
    font-size: 1.6rem !important;
    font-weight: 700;
    margin-top: 1rem;
    color: var(--text-main);
}

.login-card .form-control {
    background-color: #ffffff;
    border: 1px solid #D6DEEA;
    color: var(--text-main);
    min-height: 48px;
    font-size: 1rem;
    padding: 0.75rem 1rem;
    border-radius: 10px;
}

.login-card .form-control:focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 4px var(--primary-glow);
}

.login-card .form-label {
    color: var(--text-main);
    font-size: 0.92rem;
    font-weight: 600;
    margin-bottom: 0.5rem;
}

.login-card .btn-primary {
    background: var(--primary);
    border-color: var(--primary);
    min-height: 48px;
    font-size: 1.05rem;
    font-weight: 700;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.login-card code {
    background-color: var(--bg-light);
    color: var(--text-main);
    padding: 0.15rem 0.4rem;
    border-radius: 4px;
}

/* --------------------------------------------------------------------------
   5. INTERACTIVE INTERACTIONS
   -------------------------------------------------------------------------- */
.transition-hover {
    transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.25s ease !important;
}
.transition-hover:hover {
    transform: translateY(-4px) !important;
    box-shadow: 0 12px 24px rgba(31, 41, 55, 0.08) !important;
}


.btn-xs {
    padding: 0.15rem 0.35rem;
    font-size: 0.75rem;
    border-radius: 6px;
    line-height: 1.2;
}

/* --------------------------------------------------------------------------
   6. PRINT MEDIA STYLES
   -------------------------------------------------------------------------- */
@media print {
    /* Hide layout chrome and screen-only actions */
    .sidebar,
    .topbar,
    .btn,
    button,
    .dropdown-menu,
    .alert {
        display: none !important;
    }

    /* Reset page containers for full page printing */
    body, 
    .app-body, 
    .app-wrapper {
        background: #ffffff !important;
        margin: 0 !important;
        padding: 0 !important;
        width: 100% !important;
        height: auto !important;
        overflow: visible !important;
    }

    .content-wrapper {
        margin: 0 !important;
        padding: 0 !important;
        border: none !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        flex: none !important;
        display: block !important;
    }

    .main-content {
        padding: 0 !important;
        margin: 0 !important;
        width: 100% !important;
    }

    /* Keep metric cards on one line or stacked cleanly without extra margins */
    .row {
        display: flex !important;
        flex-wrap: wrap !important;
        margin-right: -15px !important;
        margin-left: -15px !important;
    }

    /* Force columns to retain grid layout on printed page */
    .col-md-3 {
        flex: 0 0 25% !important;
        max-width: 25% !important;
        width: 25% !important;
    }
    .col-lg-8 {
        flex: 0 0 66.666667% !important;
        max-width: 66.666667% !important;
        width: 66.666667% !important;
    }
    .col-lg-4 {
        flex: 0 0 33.333333% !important;
        max-width: 33.333333% !important;
        width: 33.333333% !important;
    }
    .col-lg-6 {
        flex: 0 0 50% !important;
        max-width: 50% !important;
        width: 50% !important;
    }

    /* Print charts and canvas with correct size and dimensions */
    canvas {
        max-width: 100% !important;
        page-break-inside: avoid;
    }

    /* Force background colors to print exactly as styled */
    * {
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
        color-adjust: exact !important;
    }

    /* Specific print margins and break rules for reports */
    .card {
        border: 1px solid #e2e8f0 !important;
        box-shadow: none !important;
        page-break-inside: avoid !important;
        margin-bottom: 20px !important;
    }
}

/* --------------------------------------------------------------------------
   7. CUSTOM GLOBAL COMPONENT STYLES (Search, Notifications, Breadcrumbs)
   -------------------------------------------------------------------------- */
#search-autocomplete-results {
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
    max-height: 350px;
    overflow-y: auto;
    border-color: #E2E8F0;
    margin-top: 4px;
}

#search-autocomplete-results .list-group-item {
    transition: background-color 0.15s ease;
}

#search-autocomplete-results .list-group-item:hover {
    background-color: #F8FAFC;
}

.no-caret::after {
    display: none !important;
}

.notification-dropdown .dropdown-menu {
    border-radius: 12px;
    border: 1px solid #E2E8F0;
}

.notification-item {
    transition: background-color 0.15s ease;
}

.notification-item:hover {
    background-color: #F1F5F9;
}

.notification-item a {
    white-space: normal !important;
}

.breadcrumbs-nav {
    display: block;
    width: 100%;
}

.breadcrumbs-nav .breadcrumb {
    background-color: #F8FAFC !important;
    border: 1px solid #E2E8F0 !important;
    border-radius: 8px !important;
    padding: 0.6rem 1rem !important;
}

.breadcrumbs-nav .breadcrumb-item a {
    color: var(--primary);
    transition: color 0.15s ease;
}

.breadcrumbs-nav .breadcrumb-item a:hover {
    color: var(--primary-hover);
}

.bg-primary-light {
    background-color: rgba(59, 130, 246, 0.1) !important;
}

/* Make the entire application layout viewport-bound to act like a desktop ERP app on desktop/laptop screens */
@media (min-width: 768px) {
    body.app-body, .app-body .app-wrapper {
        height: 100vh !important;
        max-height: 100vh !important;
        overflow: hidden !important;
    }

    .content-wrapper {
        height: 100vh !important;
        max-height: 100vh !important;
        display: flex;
        flex-direction: column;
        overflow: hidden;
    }

    .main-content {
        flex: 1;
        min-height: 0;
        overflow-y: auto; /* Fallback scroll for pages without tables */
        display: flex;
        flex-direction: column;
        gap: 0.5rem;
    }

    /* For list pages with data grid cards, prevent flex shrinking to keep full table heights */
    .main-content > .card {
        display: flex;
        flex-direction: column;
        flex-shrink: 0 !important;
        margin-bottom: 0.8rem !important;
    }

    /* Ensure card-body wraps content, prevents shrinking, and disables auto-growing */
    .main-content > .card > .card-body,
    .main-content .card.card-body {
        display: flex;
        flex-direction: column;
        flex: none !important;
    }

    /* Allow table-responsive to overflow horizontally without restricting vertical height */
    .table-responsive {
        overflow-x: auto !important;
    }
}

.table-responsive {
    /* Firefox support */
    scrollbar-width: auto;
    scrollbar-color: #CBD5E1 #F1F5F9;
}

.table-responsive::-webkit-scrollbar {
    width: 12px;
    height: 12px;
}

.table-responsive::-webkit-scrollbar-track {
    background: #F1F5F9;
    border-radius: 999px;
}

.table-responsive::-webkit-scrollbar-thumb {
    background: #CBD5E1;
    border-radius: 999px;
    border: 3px solid #F1F5F9;
}

.table-responsive::-webkit-scrollbar-thumb:hover {
    background: #94A3B8;
}

/* ==========================================================================
   BOOTSTRAP UTILITY OVERRIDES FOR HIGH-DENSITY ENTERPRISE UI
   These overrides reduce paddings, margins, gaps, and font-sizes by 15-20%.
   ========================================================================== */
.p-1 { padding: 0.2rem !important; }
.p-2 { padding: 0.4rem !important; }
.p-3 { padding: 0.8rem !important; }
.p-4 { padding: 1.15rem !important; }
.p-5 { padding: 2rem !important; }
.pt-3 { padding-top: 0.8rem !important; }
.pt-4 { padding-top: 1.15rem !important; }
.pb-3 { padding-bottom: 0.8rem !important; }
.pb-4 { padding-bottom: 1.15rem !important; }
.pe-3 { padding-right: 0.8rem !important; }
.pe-4 { padding-right: 1.15rem !important; }
.ps-3 { padding-left: 0.8rem !important; }
.ps-4 { padding-left: 1.15rem !important; }
.px-3 { padding-left: 0.8rem !important; padding-right: 0.8rem !important; }
.px-4 { padding-left: 1.15rem !important; padding-right: 1.15rem !important; }
.py-3 { padding-top: 0.8rem !important; padding-bottom: 0.8rem !important; }
.py-4 { padding-top: 1.15rem !important; padding-bottom: 1.15rem !important; }

.m-1 { margin: 0.2rem !important; }
.m-2 { margin: 0.4rem !important; }
.m-3 { margin: 0.8rem !important; }
.m-4 { margin: 1.15rem !important; }
.mt-3 { margin-top: 0.8rem !important; }
.mt-4 { margin-top: 1.15rem !important; }
.mb-2 { margin-bottom: 0.45rem !important; }
.mb-3 { margin-bottom: 0.8rem !important; }
.mb-4 { margin-bottom: 1.15rem !important; }
.me-3 { margin-right: 0.8rem !important; }
.me-4 { margin-right: 1.15rem !important; }
.ms-3 { margin-left: 0.8rem !important; }
.ms-4 { margin-left: 1.15rem !important; }
.mx-3 { margin-left: 0.8rem !important; margin-right: 0.8rem !important; }
.mx-4 { margin-left: 1.15rem !important; margin-right: 1.15rem !important; }
.my-3 { margin-top: 0.8rem !important; margin-bottom: 0.8rem !important; }
.my-4 { margin-top: 1.15rem !important; margin-bottom: 1.15rem !important; }

.gap-3 { gap: 0.75rem !important; }
.gap-4 { gap: 1.15rem !important; }
.row-gap-3 { row-gap: 0.75rem !important; }
.col-gap-3 { column-gap: 0.75rem !important; }

.fs-1 { font-size: 1.75rem !important; }
.fs-2 { font-size: 1.35rem !important; }
.fs-3 { font-size: 1.15rem !important; }
.fs-4 { font-size: 1rem !important; }
.fs-5 { font-size: 0.85rem !important; }
.fs-6 { font-size: 0.72rem !important; }
.small, small, .text-muted.small { font-size: 0.75rem !important; }

/* Remove number input spin buttons / browser wheel increment indicator */
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
input[type="number"] {
  -moz-appearance: textfield;
}

/* Darker green styling for Advance Paid columns & action buttons */
.text-advance-paid {
  color: #166534 !important;
  font-weight: 700 !important;
  font-size: 0.88rem !important;
}

.btn-advance-pay-tab {
  color: #166534 !important;
  border: 1.5px solid #166534 !important;
  background-color: #f0fdf4 !important;
  font-weight: 600 !important;
  font-size: 0.75rem !important;
  border-radius: 6px !important;
  transition: all 0.15s ease-in-out;
}

.btn-advance-pay-tab:hover {
  color: #ffffff !important;
  background-color: #166534 !important;
  border-color: #166534 !important;
}

/* Dark Burgundy styling for IPD No & Charges Added */
.text-ipd-burgundy {
  color: #881337 !important;
  font-weight: 700 !important;
  font-size: 0.85rem !important;
}

.text-charges-added {
  color: #881337 !important;
  font-weight: 700 !important;
  font-size: 0.88rem !important;
}

/* Darker blue/teal styling for Add Charges button */
.btn-add-charges-tab {
  color: #0369a1 !important;
  border: 1.5px solid #0369a1 !important;
  background-color: #f0f9ff !important;
  font-weight: 600 !important;
  font-size: 0.75rem !important;
  border-radius: 6px !important;
  transition: all 0.15s ease-in-out;
}

.btn-add-charges-tab:hover {
  color: #ffffff !important;
  background-color: #0369a1 !important;
  border-color: #0369a1 !important;
}

/* IPD Admissions list table typography tuning */
.ipd-admissions-table {
  font-size: 0.88rem !important;
}

.ipd-admissions-table thead th {
  font-size: 0.82rem !important;
  font-weight: 700 !important;
  padding: 0.75rem 0.6rem !important;
  vertical-align: middle !important;
  letter-spacing: 0.01em;
}

.ipd-admissions-table tbody td {
  font-size: 0.88rem !important;
  padding: 0.65rem 0.6rem !important;
  vertical-align: middle !important;
}

.ipd-admissions-table .text-ipd-burgundy {
  color: #881337 !important;
  font-weight: 700 !important;
  font-size: 0.88rem !important;
}

.ipd-admissions-table .text-advance-paid {
  color: #166534 !important;
  font-weight: 700 !important;
  font-size: 0.92rem !important;
}

.ipd-admissions-table .text-charges-added {
  color: #881337 !important;
  font-weight: 700 !important;
  font-size: 0.92rem !important;
}

.ipd-admissions-table .badge {
  font-size: 0.78rem !important;
  padding: 0.32rem 0.6rem !important;
}

.ipd-admissions-table .btn-advance-pay-tab,
.ipd-admissions-table .btn-add-charges-tab {
  font-size: 0.80rem !important;
  padding: 0.28rem 0.65rem !important;
}
