{ "cells": [ { "attachments": {}, "cell_type": "markdown", "id": "d18e160a", "metadata": { "id": "d18e160a" }, "source": [ "# Learning-Based Closed Domain Chatbot (Deep Learning)\n", "---\n" ] }, { "attachments": {}, "cell_type": "markdown", "id": "9ZsdBYNrTfgg", "metadata": { "id": "9ZsdBYNrTfgg" }, "source": [ "# 01 Import Library" ] }, { "attachments": {}, "cell_type": "markdown", "id": "MZMVLNyqYTCK", "metadata": { "id": "MZMVLNyqYTCK" }, "source": [ "Tahapan pertama sebelum melakukan eksplorasi dan praproses pada data adalah memasukan library yang akan digunakan untuk menganalisa dataset dengan menggunakan metode Deep Learning seperti Neural Network dalam pengolahan teks, Chatbot dll. Library yang saya gunakan yaitu NumPy untuk komputasi matematika, Matplotlib untuk visualisasi model data, Natural Language Toolkit atau NLTK untuk pengolahan teks, Pandas untuk membaca data, serta Tensorflow untuk model pada data menggunakan algoritma LSTM dan Jaringan Syaraf Tiruan (Neural Network)." ] }, { "cell_type": "code", "execution_count": 26, "id": "df6e6af3", "metadata": { "id": "df6e6af3" }, "outputs": [], "source": [ "# Import Libraries\n", "import json\n", "import nltk\n", "import time\n", "import random\n", "import string\n", "import pickle\n", "import numpy as np\n", "import pandas as pd\n", "from gtts import gTTS\n", "from io import BytesIO\n", "import tensorflow as tf\n", "import IPython.display as ipd\n", "import speech_recognition as sr \n", "import matplotlib.pyplot as plt\n", "from nltk.stem import WordNetLemmatizer\n", "from tensorflow.keras.models import Model\n", "from keras.utils.vis_utils import plot_model\n", "from sklearn.preprocessing import LabelEncoder\n", "from tensorflow.keras.preprocessing.text import Tokenizer\n", "from tensorflow.keras.layers import Input, Embedding, LSTM\n", "from tensorflow.keras.preprocessing.sequence import pad_sequences\n", "from tensorflow.keras.layers import Flatten, Dense, GlobalMaxPool1D" ] }, { "attachments": {}, "cell_type": "markdown", "id": "XFqXivzfTGhq", "metadata": { "id": "XFqXivzfTGhq" }, "source": [ "Download NLTK Package" ] }, { "cell_type": "code", "execution_count": 27, "id": "ZFHfBZ3mO1QE", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "ZFHfBZ3mO1QE", "outputId": "1a8b138a-6720-480a-f8b7-36de4dbf655a" }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "[nltk_data] Downloading package punkt to\n", "[nltk_data] C:\\Users\\hilya\\AppData\\Roaming\\nltk_data...\n", "[nltk_data] Package punkt is already up-to-date!\n", "[nltk_data] Downloading package wordnet to\n", "[nltk_data] C:\\Users\\hilya\\AppData\\Roaming\\nltk_data...\n", "[nltk_data] Package wordnet is already up-to-date!\n", "[nltk_data] Downloading package omw-1.4 to\n", "[nltk_data] C:\\Users\\hilya\\AppData\\Roaming\\nltk_data...\n", "[nltk_data] Package omw-1.4 is already up-to-date!\n" ] }, { "data": { "text/plain": [ "True" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Package sentence tokenizer\n", "nltk.download('punkt') \n", "# Package lemmatization\n", "nltk.download('wordnet')\n", "# Package multilingual wordnet data\n", "nltk.download('omw-1.4')" ] }, { "attachments": {}, "cell_type": "markdown", "id": "xaowz3BO9B8l", "metadata": { "id": "xaowz3BO9B8l" }, "source": [ "# 02 Data Acquisition\n", "\n", "Setelah kita mengetahui apa saja alur yang digunakan untuk membuat proyek AI Chatbot maka tahapan selanjutnya adalah mengunduh atau load dataset safebot.json" ] }, { "attachments": {}, "cell_type": "markdown", "id": "gLGpuyY9aMwW", "metadata": { "id": "gLGpuyY9aMwW" }, "source": [ "**Load Dataset Json**\n", "\n", "Setelah import library, tahapan selanjutnya adalah me-load dataset yang telah disediakan. Dataset yang digunakan berupa format **.json** yang sangat cocok untuk membuat model Chatbot. \n", "\n", "Data Json merupakan data yang termasuk dalam *semi structured* yang dimana data ini menampung beberapa bagian data seperti **tag**, **pattern**, **context**, dan **response**. Data yang dipakai dalam proyek ini menggunakan dataset manual." ] }, { "cell_type": "code", "execution_count": 28, "id": "JD4ILKqFZ_hf", "metadata": { "id": "JD4ILKqFZ_hf" }, "outputs": [], "source": [ "# Importing the dataset\n", "with open('safebot.json') as content:\n", " data1 = json.load(content)\n", "\n", "# Mendapatkan semua data ke dalam list\n", "tags = [] # data tag\n", "inputs = [] # data input atau pattern\n", "responses = {} # data respon\n", "words = [] # Data kata \n", "classes = [] # Data Kelas atau Tag\n", "documents = [] # Data Kalimat Dokumen\n", "ignore_words = ['?', '!'] # Mengabaikan tanda spesial karakter\n", "\n", "for intent in data1['intents']:\n", " responses[intent['tag']]=intent['responses']\n", " for lines in intent['patterns']:\n", " inputs.append(lines)\n", " tags.append(intent['tag'])\n", " for pattern in intent['patterns']:\n", " w = nltk.word_tokenize(pattern)\n", " words.extend(w)\n", " documents.append((w, intent['tag']))\n", " # add to our classes list\n", " if intent['tag'] not in classes:\n", " classes.append(intent['tag'])\n", "\n", "# Konversi data json ke dalam dataframe\n", "data = pd.DataFrame({\"patterns\":inputs, \"tags\":tags})" ] }, { "cell_type": "code", "execution_count": 29, "id": "5N0s7BObcv5-", "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 423 }, "id": "5N0s7BObcv5-", "outputId": "b068e17c-1af6-410e-b61e-423c7e229b41" }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
patternstags
0hallogreeting
1haigreeting
2halogreeting
3heigreeting
4higreeting
.........
214Bagaimana mencegah serangan pada WiFi rumah?jaringan_wifi
215Bagaimana cara beraktivitas di dunia maya deng...safe_online_activities
216Bagaimana cara menjaga keamanan saat berintera...safe_online_activities
217Apa tips untuk beraktivitas di dunia maya deng...safe_online_activities
218tolong berikan tips untuk beraktivitas di duni...safe_online_activities
\n", "

219 rows × 2 columns

\n", "
" ], "text/plain": [ " patterns tags\n", "0 hallo greeting\n", "1 hai greeting\n", "2 halo greeting\n", "3 hei greeting\n", "4 hi greeting\n", ".. ... ...\n", "214 Bagaimana mencegah serangan pada WiFi rumah? jaringan_wifi\n", "215 Bagaimana cara beraktivitas di dunia maya deng... safe_online_activities\n", "216 Bagaimana cara menjaga keamanan saat berintera... safe_online_activities\n", "217 Apa tips untuk beraktivitas di dunia maya deng... safe_online_activities\n", "218 tolong berikan tips untuk beraktivitas di duni... safe_online_activities\n", "\n", "[219 rows x 2 columns]" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Cetak data keseluruhan\n", "data " ] }, { "cell_type": "code", "execution_count": 30, "id": "5DFoJwcVdP52", "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 206 }, "id": "5DFoJwcVdP52", "outputId": "cc878daa-17f7-4b68-abb6-6a3c38bec113" }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
patternstags
0hallogreeting
1haigreeting
2halogreeting
3heigreeting
4higreeting
\n", "
" ], "text/plain": [ " patterns tags\n", "0 hallo greeting\n", "1 hai greeting\n", "2 halo greeting\n", "3 hei greeting\n", "4 hi greeting" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Cetak data baris pertama sampai baris kelima\n", "data.head() " ] }, { "cell_type": "code", "execution_count": 31, "id": "HksM_GGVdenI", "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 206 }, "id": "HksM_GGVdenI", "outputId": "1a2afc53-a4da-4018-ab94-e4834ddc11de" }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
patternstags
214Bagaimana mencegah serangan pada WiFi rumah?jaringan_wifi
215Bagaimana cara beraktivitas di dunia maya deng...safe_online_activities
216Bagaimana cara menjaga keamanan saat berintera...safe_online_activities
217Apa tips untuk beraktivitas di dunia maya deng...safe_online_activities
218tolong berikan tips untuk beraktivitas di duni...safe_online_activities
\n", "
" ], "text/plain": [ " patterns tags\n", "214 Bagaimana mencegah serangan pada WiFi rumah? jaringan_wifi\n", "215 Bagaimana cara beraktivitas di dunia maya deng... safe_online_activities\n", "216 Bagaimana cara menjaga keamanan saat berintera... safe_online_activities\n", "217 Apa tips untuk beraktivitas di dunia maya deng... safe_online_activities\n", "218 tolong berikan tips untuk beraktivitas di duni... safe_online_activities" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Cetak data baris ke-70 sampai baris akhir\n", "data.tail() " ] }, { "attachments": {}, "cell_type": "markdown", "id": "vHnr2WFvebeJ", "metadata": { "id": "vHnr2WFvebeJ" }, "source": [ "# 03 Preprocessing The Data\n", "\n", "Setelah kita meload data dan mengonversi data json menjadi dataframe. Tahapan selanjutnya adalah praproses pada dataset yang kita gunakan saat ini yaitu dengan cara:\n", "\n", "![Praproses.png](data:image/png;base64,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)\n", "\n", "1. Remove Punctuations (Menghapus Punktuasi)\n", "2. Lematization (Lematisasi)\n", "3. Tokenization (Tokenisasi)\n", "4. Apply Padding (Padding)\n", "5. Encoding the Outputs (Konversi Keluaran Enkoding)\n", "\n", "Kelima tahapan pemrosesan teks ini dijelaskan pada bagian langkah selanjutnya." ] }, { "attachments": {}, "cell_type": "markdown", "id": "u_04NeXTIImg", "metadata": { "id": "u_04NeXTIImg" }, "source": [ "## Remove Punctuations\n", "\n", "Tahapan praproses pada data teks yang pertama adalah menghapus punktuasi atau tanda baca seperti *special character* yaitu **'!'** (**tanda seru**) **','** (**tanda koma**) **'.'** (**tanda titik sebagai berhenti**) '**?**' (**tanda tanya**) dan tanda baca yang lain. Tahapan ini gunanya untuk mempermudah pemrosesan data teks yang akan kita olah." ] }, { "cell_type": "code", "execution_count": 32, "id": "Gh-7EtrfhQgY", "metadata": { "id": "Gh-7EtrfhQgY" }, "outputs": [], "source": [ "# Removing Punctuations (Menghilangkan Punktuasi)\n", "data['patterns'] = data['patterns'].apply(lambda wrd:[ltrs.lower() for ltrs in wrd if ltrs not in string.punctuation])\n", "data['patterns'] = data['patterns'].apply(lambda wrd: ''.join(wrd))" ] }, { "attachments": {}, "cell_type": "markdown", "id": "5brR-qBLJDa_", "metadata": { "id": "5brR-qBLJDa_" }, "source": [ "## Lemmatization (Lematisasi)\n", "\n", "Setelah menghapus punktuasi atau tanda baca, tahapan selanjutnya yaitu Lematisasi atau Lemmatization. **Apa itu Lematisasi?**\n", "\n", "Lematisasi atau Lemmatization adalah proses dimana merujuk pada melakukan sesuatu menggunakan vocabulary atau kosakata dan analisis morfologi kata-kata untuk menghilangkan *inflectional endings only* dan untuk mengembalikan bentuk *dictionary* (kata dalam kamus) dari sebuah kata yang dikenal sebagai ***lemma***. \n", "\n", "Contoh Lematisasi : **Menggunakan** (Kata Imbuhan) -> **Guna** (Kata Dasar) \n", "\n", "Dalam contoh berikut proses lematisasi awalnya data teks menggunakan kata imbuhan yaitu **Menggunakan** dimana **meng-** + **guna** (kata dasar yang berawalan vokal g) + **kan** (sebagai akhiran) diubah menjadi kata dasar yaitu '**Guna**'. \n", "\n", "Proses ini dimana menghilangkan Prefiks pada imbuhan (**Meng-**) dan Suffiks pada (**-kan**)." ] }, { "cell_type": "code", "execution_count": 33, "id": "22MVRGBsO9gX", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "22MVRGBsO9gX", "outputId": "1ccd3caa-1b13-43d0-f97a-0bd37f8606dd" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "139 unique lemmatized words ['(', ')', ',', '.', 'ada', 'afternoon', 'aja', 'aman', 'anak', 'apa', 'atau', 'bagaimana', 'bai', 'banyak', 'bentuk', 'beraktivitas', 'berikan', 'berinteraksi', 'bersifat', 'bikinan', 'bisa', 'bro', 'buat', 'buatan', 'bye', 'byee', 'cara', 'ciri-ciri', 'contoh', 'cyberbullying', 'cybercrime', 'dadah', 'dah', 'dari', 'data', 'ddos', 'dengan', 'denial-of-service', 'di', 'dilakukan', 'diri', 'distributed', 'dunia', 'email', 'emang', 'good', 'hai', 'hallo', 'halo', 'harus', 'hei', 'hi', 'hy', 'identitas', 'ilegal', 'informasi', 'itu', 'jaringan', 'jenis', 'jika', 'jumpa', 'kamu', 'kasih', 'kawan', 'keamanan', 'kejahatan', 'keuangan', 'kita', 'konten', 'lakukan', 'lo', 'makasih', 'malam', 'malware', 'maya', 'melalui', 'melindungi', 'memastikan', 'meminta', 'mencegah', 'menerima', 'mengatasi', 'mengetahui', 'menghentikan', 'menghindari', 'menjaga', 'merima', 'minta', 'morning', 'ok', 'online', 'pada', 'pagi', 'palsu', 'pelanggaran', 'pembuatmu', 'penciptamu', 'pencurian', 'penipuan', 'penyebaran', 'peretasan', 'pesan', 'phishing', 'pribadi', 'privasi', 'ransomware', 'rumah', 'saat', 'safebot', 'saja', 'sampai', 'saya', 'sebutkan', 'secara', 'see', 'seksual', 'selamat', 'sensitif', 'seperti', 'serangan', 'si', 'siang', 'siapa', 'siber', 'sih', 'sore', 'terhindar', 'terima', 'termasuk', 'teroris', 'thank', 'thanks', 'tinggal', 'tip', 'tolong', 'untuk', 'wifi', 'yang', 'you']\n" ] } ], "source": [ "lemmatizer = WordNetLemmatizer()\n", "words = [lemmatizer.lemmatize(w.lower()) for w in words if w not in ignore_words]\n", "words = sorted(list(set(words)))\n", "\n", "print (len(words), \"unique lemmatized words\", words)" ] }, { "attachments": {}, "cell_type": "markdown", "id": "zmZpqovQE1Zb", "metadata": { "id": "zmZpqovQE1Zb" }, "source": [ "### Menyortir Data Kelas Tags" ] }, { "cell_type": "code", "execution_count": 34, "id": "TK_v4Zw5P8rn", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "TK_v4Zw5P8rn", "outputId": "739a5170-9d3f-45bf-e19b-a73fe6de5e2d" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "44 classes ['Safebot', 'ciri_ddos', 'ciri_malware', 'ciri_phishing', 'ciri_ransomware', 'contoh_cybercrime', 'cyberbullying', 'cyberbullying_prevention', 'cybercrime', 'data_pribadi', 'ddos', 'ddos_prevented', 'goodbye', 'greeting', 'identitas_palsu', 'identity_theft_prevented', 'illegal_content_prevented', 'jaringan_wifi', 'kejahatan_seks', 'kejahatan_siber_anak_prevention', 'keuangan_online', 'konten_ilegal', 'malware', 'malware_prevented', 'network_hacking_prevention', 'online_financial_fraud_prevention', 'online_scam_prevented', 'online_sexual_crime_prevention', 'online_terrorism_prevention', 'pelanggaran_privacy', 'pencipta', 'pencurian_identitas', 'penipuan_online', 'phishing', 'phishing_case', 'phishing_prevented', 'privacy_breach_prevented', 'ransomware', 'ransomware_prevented', 'retas_jaringan', 'safe_online_activities', 'siber_anak', 'terimakasih', 'teroris_online']\n" ] } ], "source": [ "# sort classes\n", "classes = sorted(list(set(classes)))\n", "print (len(classes), \"classes\", classes)" ] }, { "attachments": {}, "cell_type": "markdown", "id": "u8s3ZKI9FCwo", "metadata": { "id": "u8s3ZKI9FCwo" }, "source": [ "### Mencari Jumlah Keseluruhan Data Teks" ] }, { "cell_type": "code", "execution_count": 35, "id": "Tv5lLFn1QCDP", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "Tv5lLFn1QCDP", "outputId": "6b2ed1d9-c4f8-42f9-a0bb-acae5db50f7b" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1441 documents\n" ] } ], "source": [ "# documents = combination between patterns and intents\n", "print (len(documents), \"documents\")" ] }, { "attachments": {}, "cell_type": "markdown", "id": "sVdv1gW5N7a6", "metadata": { "id": "sVdv1gW5N7a6" }, "source": [ "## Tokenization (Tokenisasi)\n", "\n", "Setelah proses lematisasi dan mencari tahu data classes dan jumlah keseluruhan data patterns dengan intents-nya. Maka, tahapan selanjutnya proses tokenisasi. **Apa itu Tokenisasi?**\n", "\n", "Tokenisasi adalah suatu proses memberikan urutan karakter dan sebuah unit dokumen terdefinisi. Tokenisasi juga merupakan tugas untuk memecah kalimat menjadi bagian-bagian yang disebut dengan '**Token**' dan menghilangkan bagian tertentu seperti tanda baca.\n", "\n", "Contohnya: **Aku Pergi Ke Makassar** -> '**Aku**' '**Pergi**' '**Ke**' '**Makassar**'" ] }, { "cell_type": "code", "execution_count": 36, "id": "Xr5aehymeQdi", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "Xr5aehymeQdi", "outputId": "de5aa76e-f55d-487f-e3b2-0773eccf9190" }, "outputs": [ { "data": { "text/plain": [ "[[84],\n", " [85],\n", " [86],\n", " [87],\n", " [88],\n", " [89],\n", " [90],\n", " [91],\n", " [92],\n", " [93],\n", " [94],\n", " [95],\n", " [96],\n", " [97],\n", " [98],\n", " [99],\n", " [100],\n", " [60],\n", " [101],\n", " [102, 60],\n", " [103, 104],\n", " [105, 106],\n", " [107],\n", " [108, 71],\n", " [109, 60],\n", " [110],\n", " [111, 71],\n", " [72, 73],\n", " [112],\n", " [72, 73, 113],\n", " [1, 2, 74],\n", " [49, 74],\n", " [49, 114],\n", " [49, 3, 9, 115, 75],\n", " [75, 116, 49],\n", " [117, 118, 49],\n", " [49, 119],\n", " [29, 2, 1],\n", " [4, 10, 2, 1, 3],\n", " [5, 29, 2, 1, 3],\n", " [1, 2, 29],\n", " [4, 10, 5, 1],\n", " [4, 25, 26, 5, 1],\n", " [1, 2, 4, 25, 26],\n", " [29, 2, 1, 3],\n", " [4, 10, 2, 1, 3],\n", " [12, 50, 2, 1],\n", " [12, 50, 2, 1, 3],\n", " [5, 12, 50, 2, 1, 3],\n", " [12, 50, 5, 1],\n", " [12, 50, 5, 1, 3],\n", " [1, 2, 12, 50],\n", " [1, 30, 9, 61, 53, 43, 9, 54, 55],\n", " [1, 30, 3, 9, 61, 53, 43, 9, 54, 55],\n", " [53, 43, 9, 54, 55, 2, 1, 30],\n", " [31, 44, 1, 30, 9, 61, 53, 43, 9, 54, 55],\n", " [53, 43, 9, 54, 55, 2, 1, 30, 3],\n", " [1, 32, 3, 62, 8, 29],\n", " [1, 32, 3, 62, 8, 4, 25, 26],\n", " [1, 32, 3, 62, 8, 4, 10],\n", " [1, 32, 3, 63, 8, 29],\n", " [1, 32, 3, 63, 8, 4, 25, 26],\n", " [1, 32, 3, 63, 8, 4, 10],\n", " [29, 2, 64, 1],\n", " [4, 10, 2, 64, 1],\n", " [4, 25, 26, 2, 64, 1],\n", " [1, 32, 3, 51, 8, 29],\n", " [31, 44, 51, 8, 29],\n", " [1, 32, 3, 51, 8, 4, 25, 26],\n", " [31, 44, 51, 8, 4, 25, 26],\n", " [1, 32, 3, 51, 8, 4, 10],\n", " [31, 44, 51, 8, 4, 10],\n", " [16, 7, 2, 1],\n", " [16, 7, 2, 1, 3],\n", " [5, 16, 7, 2, 1, 3],\n", " [16, 7, 5, 1],\n", " [16, 7, 5, 1, 3],\n", " [1, 2, 16, 7],\n", " [6, 11, 76, 16, 7],\n", " [6, 14, 16, 7],\n", " [6, 17, 8, 16, 7],\n", " [33, 12, 2, 1],\n", " [33, 12, 2, 1, 3],\n", " [5, 33, 12, 2, 1, 3],\n", " [33, 12, 5, 1],\n", " [33, 12, 5, 1, 3],\n", " [1, 2, 33, 12],\n", " [6, 11, 15, 24, 8, 33, 12],\n", " [6, 17, 8, 33, 12],\n", " [6, 14, 33, 12],\n", " [34, 2, 1],\n", " [34, 2, 1, 3],\n", " [5, 34, 2, 1, 3],\n", " [34, 5, 1],\n", " [34, 5, 1, 3],\n", " [1, 2, 34],\n", " [6, 11, 120, 34],\n", " [6, 15, 24, 8, 34],\n", " [1, 9, 56, 52, 45, 121, 34],\n", " [46, 35, 2, 1],\n", " [46, 35, 2, 1, 3],\n", " [5, 46, 35, 2, 1, 3],\n", " [46, 35, 5, 1],\n", " [46, 35, 5, 1, 3],\n", " [1, 2, 46, 35],\n", " [6, 11, 15, 35, 47],\n", " [6, 17, 8, 46, 35],\n", " [6, 14, 46, 35],\n", " [36, 37, 38, 2, 1],\n", " [36, 37, 38, 2, 1, 3],\n", " [5, 36, 37, 38, 2, 1, 3],\n", " [36, 37, 38, 5, 1],\n", " [36, 37, 38, 5, 1, 3],\n", " [1, 2, 36, 37, 38],\n", " [6, 11, 14, 36, 37, 38],\n", " [6, 15, 24, 8, 36, 37, 38],\n", " [6, 17, 8, 36, 37, 38],\n", " [39, 27, 2, 1],\n", " [39, 27, 2, 1, 3],\n", " [5, 39, 27, 2, 1, 3],\n", " [39, 27, 5, 1],\n", " [39, 27, 5, 1, 3],\n", " [1, 2, 39, 27],\n", " [6, 11, 15, 24, 8, 39, 27],\n", " [6, 17, 8, 13, 39, 27],\n", " [1, 9, 56, 52, 45, 14, 39, 27],\n", " [4, 40, 7, 2, 1],\n", " [4, 40, 7, 2, 1, 3],\n", " [5, 4, 40, 7, 2, 1, 3],\n", " [4, 40, 7, 5, 1],\n", " [4, 40, 7, 5, 1, 3],\n", " [1, 2, 4, 40, 7],\n", " [6, 11, 15, 24, 8, 16, 40, 7],\n", " [6, 17, 8, 16, 40, 7],\n", " [1, 9, 56, 52, 45, 14, 16, 40, 7],\n", " [4, 10, 28, 2, 1],\n", " [4, 10, 28, 2, 1, 3],\n", " [5, 4, 10, 28, 2, 1, 3],\n", " [4, 10, 28, 5, 1],\n", " [4, 10, 28, 5, 1, 3],\n", " [1, 2, 4, 10, 28],\n", " [6, 11, 15, 28, 8, 4, 10, 28],\n", " [6, 14, 4, 10, 28],\n", " [1, 9, 56, 52, 45, 76, 4, 10, 28],\n", " [4, 41, 7, 2, 1],\n", " [4, 41, 7, 2, 1, 3],\n", " [5, 4, 41, 7, 2, 1, 3],\n", " [4, 41, 7, 5, 1],\n", " [4, 41, 7, 5, 1, 3],\n", " [1, 2, 4, 41, 7],\n", " [6, 11, 15, 24, 8, 4, 41, 7],\n", " [6, 17, 8, 4, 41, 7],\n", " [1, 9, 57, 52, 45, 14, 4, 41, 7],\n", " [4, 42, 7, 2, 1],\n", " [4, 42, 7, 2, 1, 3],\n", " [5, 4, 42, 7, 2, 1, 3],\n", " [4, 42, 7, 5, 1],\n", " [4, 42, 7, 5, 1, 3],\n", " [1, 2, 4, 42, 7],\n", " [6, 11, 15, 24, 8, 4, 42, 7],\n", " [6, 17, 8, 4, 42, 7],\n", " [1, 9, 57, 52, 45, 14, 4, 42, 7],\n", " [18, 2, 1],\n", " [18, 2, 1, 3],\n", " [5, 18, 2, 1, 3],\n", " [18, 5, 1],\n", " [18, 5, 1, 3],\n", " [1, 2, 18],\n", " [6, 58, 59, 18],\n", " [1, 30, 48, 18],\n", " [31, 44, 48, 18],\n", " [6, 11, 15, 24, 8, 13, 18],\n", " [6, 17, 8, 13, 18],\n", " [6, 14, 13, 18],\n", " [47, 122, 65, 9, 77, 66, 43, 47, 1, 9, 57, 47, 78],\n", " [79, 47, 123, 65, 9, 124, 66, 43, 47, 1, 9, 57, 47, 78],\n", " [6, 79, 125, 9, 77, 66, 43, 47, 126, 127, 128, 65],\n", " [19, 2, 1],\n", " [19, 2, 1, 3],\n", " [5, 19, 2, 1, 3],\n", " [19, 5, 1],\n", " [19, 5, 1, 3],\n", " [1, 2, 19],\n", " [6, 58, 59, 13, 19],\n", " [1, 30, 48, 19],\n", " [31, 44, 48, 19],\n", " [6, 11, 15, 24, 8, 13, 19],\n", " [6, 17, 8, 13, 19],\n", " [6, 14, 13, 19],\n", " [20, 21, 22, 2, 1],\n", " [20, 21, 22, 2, 1, 3],\n", " [5, 20, 21, 22, 2, 1, 3],\n", " [20, 21, 22, 5, 1],\n", " [20, 21, 22, 5, 1, 3],\n", " [1, 2, 20, 21, 22],\n", " [6, 11, 15, 24, 8, 13, 20, 21, 22],\n", " [6, 17, 8, 13, 20, 21, 22],\n", " [6, 14, 13, 20, 21, 22],\n", " [6, 58, 59, 4, 20, 21, 22],\n", " [1, 30, 48, 20, 21, 22],\n", " [31, 44, 48, 20, 21, 22],\n", " [23, 2, 1],\n", " [23, 2, 1, 3],\n", " [5, 23, 2, 1, 3],\n", " [23, 5, 1],\n", " [23, 5, 1, 3],\n", " [1, 2, 23],\n", " [6, 11, 15, 24, 8, 13, 23],\n", " [6, 17, 8, 13, 23],\n", " [6, 14, 13, 23],\n", " [6, 58, 59, 4, 23],\n", " [1, 30, 48, 23],\n", " [31, 44, 48, 23],\n", " [6, 11, 129, 80, 27, 81, 82],\n", " [6, 14, 13, 130, 81, 82],\n", " [6, 11, 67, 68, 25, 26, 69, 70],\n", " [6, 11, 131, 80, 132, 133, 134, 7],\n", " [1, 83, 45, 67, 68, 25, 26, 69, 70],\n", " [31, 135, 83, 45, 67, 68, 25, 26, 69, 70]]" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Tokenize the data (Tokenisasi Data)\n", "tokenizer = Tokenizer(num_words=2000)\n", "tokenizer.fit_on_texts(data['patterns'])\n", "train = tokenizer.texts_to_sequences(data['patterns'])\n", "train" ] }, { "attachments": {}, "cell_type": "markdown", "id": "LfEpFf0hPOUZ", "metadata": { "id": "LfEpFf0hPOUZ" }, "source": [ "## Add Padding\n", "\n", "Setelah memproses tokenisasi yang dimana memecah kalimat menajdi bagian-bagian yang disebut token yang digunakan untuk mengolah data teks pada AI Chatbot maka tahapan selanjutnya adalah Padding.\n", "**Apa itu Padding?**\n", "\n", "**Padding** adalah Suatu proses untuk mengubah setiap sequence agar memiliki panjang yang sama. Pada padding, setiap sequence dibuat sama panjang dengan menambahkan nilai 0 secara suffiks atau prefiks hingga mencapai panjang maksimum sequence. Selain itu padding juga dapat memotong sequence hingga panjangnya sesuai dengan panjang maksimum sequence. \n", "\n", "Padding juga adalah proses untuk membuat setiap kalimat pada teks memiliki panjang yang seragam. Sama seperti melakukan resize gambar, agar resolusi setiap gambar sama besar. Untuk menggunakan padding bisa impor library **pad_sequence**. Kemudian buat panggil fungsi pad_sequence() dan masukkan sequence hasil tokenisasi sebagai parameternya.\n", "\n", "Contohnya: `sequences_samapanjang = pad_sequences(sequences)`\n", "\n", "Yang nantinya akan dikeluarkan menjadi angka dengan awalan 0 seperti gambar dibawah ini.\n", "\n", "![Padding.jpeg](data:image/jpeg;base64,/9j/2wCEAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRQBAwQEBQQFCQUFCRQNCw0UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFP/AABEIAR4DgAMBIgACEQEDEQH/xAGiAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgsQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+gEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoLEQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/AP09ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigBf5Uda8V/aH+Nnib4OpZ3OkeFl1nTGiMl1eyuypA27aFO3p1HX1ry+P8Abvkv9DsE0zwnJqHiKRWae1hLtFHhsDBALNkYOe2a4qmMo0pOEnZr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f3kzD7q9FB+pr9V/iL4B0f4peCNZ8Ka/C8+kapD5FwkbbGxkMCrdiCAQfUV8u/8ADqj4Jf3/ABP/AODJP/jVAGxB+03+z3+yr8L9I0jwxrlhqOlwzpbLaaLItzcszAl55ccn7uWY9yAOwr6qtriO7t4pojuikUOreoIyDXyBB/wSt+CVvcRSn/hI5gjhjHJqKlWwc4OIwcHvzX2DHGsMaoihUUAADoAOgoAkr80vjT/ylf8ABH+/Yf8Aohq/SHU9Vs9Fsnu7+6hsrWPG6adwiLk4GSeK/NH4o61Ya/8A8FUvBF3pt5Bf2xksVE1vIHQkQNkZHFAH6dUUU1mWNSzEKoGSScACgD8+v+Cwf/IgfDv/ALCV1/6KWvuH4Y/8k28Kf9gm0/8ARK18D/8ABWvxZoviDwN4Bg0vVrPUJYtSuWkS2nWQqPLUZIB45r74+GP/ACTbwp/2CbT/ANErQB01FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAfO3xf/YS+Ffxt8d33i7xHZaiNavljS4ks7vy1k8tFRCVKnkKqjj0r0X4I/A3wv+z74Ql8NeEobmHTZLp71/tUxldpWVVJzgAcIowB2r0SigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA4j4v/CHw98b/AANd+E/FEU82kXTxyOLeXy3DIwZSDg9x3BryP4Zf8E/vhJ8J/G+l+K9EstTfV9Ncy2xu7zeiOVK7toUZIBOOa+k6KACquoWUOp2NxZ3C77e4jaGRQSMqwIIyOnBNWqKAPkcf8Evvgh5/mGy1ojdu2HUBt65x9zOK+rdO0+30nT7aytUEVtbRLDFGOiqoAUfgAKt0UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB//Z)" ] }, { "cell_type": "code", "execution_count": 37, "id": "5BQdPUTNvS1t", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "5BQdPUTNvS1t", "outputId": "3bc9e985-590e-44d4-e034-1af96b3a56e8" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 0 0 0 ... 0 0 84]\n", " [ 0 0 0 ... 0 0 85]\n", " [ 0 0 0 ... 0 0 86]\n", " ...\n", " [ 0 0 0 ... 133 134 7]\n", " [ 0 0 0 ... 26 69 70]\n", " [ 0 0 0 ... 26 69 70]]\n" ] } ], "source": [ "# Apply padding \n", "x_train = pad_sequences(train)\n", "print(x_train) # Padding Sequences" ] }, { "attachments": {}, "cell_type": "markdown", "id": "1Khg-ygkb0nD", "metadata": { "id": "1Khg-ygkb0nD" }, "source": [ "Hasil setelah padding adalah setiap sequence memiliki panjang yang sama. Padding dapat melakukan ini dengan menambahkan 0 secara default pada awal sequence yang lebih pendek." ] }, { "attachments": {}, "cell_type": "markdown", "id": "qY0vxxwBPeJC", "metadata": { "id": "qY0vxxwBPeJC" }, "source": [ "## Encoding Text\n", "\n", "Setelah tahapan proses Padding pada suatu teks maka proses terakhir dalam pemrosesan teks adalah tahapan Encoding. **Apa itu Encoding?**\n", "\n", "Encoding merupakan suatu konversi atau pengkodean yang dimana data kategorik seperti huruf atau data teks menjadi data numerik atau angka menyesuaikan dengan data label yang digunakan. Pada proses tahapan ini, encoding mengubah data teks pada kolom data tags menjadi data numerik dengan bahasa biner komputer yaitu 0 dan 1. \n", "\n", "Tujuan dari encoding ini adalah mempermudah saat proses komputasi data teks dan modelling." ] }, { "cell_type": "code", "execution_count": 38, "id": "sczq--IpTYWa", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "sczq--IpTYWa", "outputId": "1d580bd4-927d-4690-c8af-eb31020d1687" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 12 12 12 12 12 12 12 12 12\n", " 12 42 42 42 42 42 0 0 30 30 30 30 30 8 8 8 8 8 8 8 8 8 14 14\n", " 14 14 14 14 9 9 9 9 9 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5\n", " 32 32 32 32 32 32 26 26 26 31 31 31 31 31 31 15 15 15 6 6 6 6 6 6\n", " 7 7 7 29 29 29 29 29 29 36 36 36 21 21 21 21 21 21 16 16 16 39 39 39\n", " 39 39 39 24 24 24 20 20 20 20 20 20 25 25 25 41 41 41 41 41 41 19 19 19\n", " 18 18 18 18 18 18 27 27 27 43 43 43 43 43 43 28 28 28 33 33 33 33 33 33\n", " 3 3 3 35 35 35 34 34 34 22 22 22 22 22 22 2 2 2 23 23 23 10 10 10\n", " 10 10 10 11 11 11 1 1 1 37 37 37 37 37 37 38 38 38 4 4 4 17 17 40\n", " 40 40 40]\n" ] } ], "source": [ "# Encoding the outputs \n", "le = LabelEncoder()\n", "y_train = le.fit_transform(data['tags'])\n", "print(y_train) #Label Encodings" ] }, { "attachments": {}, "cell_type": "markdown", "id": "D9rKggGCgnjT", "metadata": { "id": "D9rKggGCgnjT" }, "source": [ "Tokenizer pada Tensorflow memberikan token unik untuk setiap kata yang berbeda. Dan juga padding dilakukan untuk mendapatkan semua data dengan panjang yang sama sehingga dapat mengirimkannya ke lapisan atau layer RNN. variabel target juga dikodekan menjadi nilai desimal." ] }, { "attachments": {}, "cell_type": "markdown", "id": "_hE21zfRhiNS", "metadata": { "id": "_hE21zfRhiNS" }, "source": [ "# 04 Input Length, Output Length and Vocabulary\n", "\n" ] }, { "cell_type": "code", "execution_count": 39, "id": "dbtBZXFvgvCB", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "dbtBZXFvgvCB", "outputId": "45fcb544-0e8e-43a0-f2b5-46ec2c54d22d" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "14\n" ] } ], "source": [ "# input length\n", "input_shape = x_train.shape[1]\n", "print(input_shape)" ] }, { "cell_type": "code", "execution_count": 40, "id": "310y6oNLhuzv", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "310y6oNLhuzv", "outputId": "8359d50e-0610-452e-8cb0-faff24962fbd" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "number of unique words : 135\n", "output length: 44\n" ] } ], "source": [ "# define vocabulary\n", "vocabulary = len(tokenizer.word_index)\n", "print(\"number of unique words : \", vocabulary)\n", "\n", "# output length\n", "output_length = le.classes_.shape[0]\n", "print(\"output length: \", output_length)" ] }, { "attachments": {}, "cell_type": "markdown", "id": "AInHhmVGict2", "metadata": { "id": "AInHhmVGict2" }, "source": [ "**Input length** dan **output length** terlihat sangat jelas hasilnya. Mereka adalah untuk bentuk input dan bentuk output dari data train atau latih yang akan diproses pada algoritma Neural Network atau Jaringan Syaraf Tiruan.\n", "\n", "**Vocabulary Size** adalah untuk lapisan penyematan untuk membuat representasi vektor unik untuk setiap kata." ] }, { "attachments": {}, "cell_type": "markdown", "id": "1LxIElYjQbB7", "metadata": { "id": "1LxIElYjQbB7" }, "source": [ "## Save Model Words & Classes\n", "\n", "Setelah dilakukan pemrosesan teks yang dilakukan lima tahap maka kita bisa simpan model pemrosesan teks tersebut dengan menggunakan format pickle. \n", "\n", "Hal ini biasanya digunakan untuk membuat hubungan model yang telah dilatih dengan model pemrosesan teks. " ] }, { "cell_type": "code", "execution_count": 41, "id": "wYV77QFbQVLP", "metadata": { "id": "wYV77QFbQVLP" }, "outputs": [], "source": [ "pickle.dump(words, open('words.pkl','wb'))\n", "pickle.dump(classes, open('classes.pkl','wb'))" ] }, { "attachments": {}, "cell_type": "markdown", "id": "dY9COWCwexgZ", "metadata": { "id": "dY9COWCwexgZ" }, "source": [ "## Save Label Encoder & Tokenizer" ] }, { "cell_type": "code", "execution_count": 42, "id": "saM3QTSjewR4", "metadata": { "id": "saM3QTSjewR4" }, "outputs": [], "source": [ "pickle.dump(le, open('label_encoder.pkl','wb'))\n", "pickle.dump(tokenizer, open('tokenizers.pkl','wb'))" ] }, { "attachments": {}, "cell_type": "markdown", "id": "BI7OvNariInQ", "metadata": { "id": "BI7OvNariInQ" }, "source": [ "# 05 Neural Network Model (LSTM)\n", "\n", "Setelah menyimpan model untuk pemrosesan teks, tahapan selanjutnya adalah melakukan modelling untuk Chatbot dengan menggunakan algoritma Neural Network atau Jaringan Syaraf Tiruan dengan algoritma LSTM (Long Short Term Memory). **Apa itu Algoritma LSTM?**\n", "\n", "**LSTM (Long Short Term Memory)** merupakan algoritma Deep Learning yang populer dan cocok digunakan untuk membuat prediksi dan klasifikasi yang berhubungan dengan waktu dan data teks. \n", "\n", "Algoritma ini bisa dikatakan pengembangan atau salah satu jenis dari algoritma RNN (Recurrent Neural Network). Dalam algoritma RNN, output dari langkah terakhir diumpankan kembali sebagai input pada langkah yang sedang aktif. Namun, algoritma RNN memiliki kekurangan yaitu tidak dapat memprediksi kata yang disimpan dalam memori jangka panjang.\n", "\n", "Nah, algoritma LSTM dirancang untuk mengatasi kelemahan tersebut, namun tetap mempertahankan kelebihan yang ada pada algoritma RNN dimana RNN mampu memberikan prediksi yang lebih akurat dari informasi terbaru.\n", "\n", "Algoritma LSTM pertama kali dikembangkan oleh Hochreiter dan Schmidhuber. Algoritma ini mampu menyimpan informasi untuk jangka waktu yang lama. Hal ini kemudian dapat digunakan untuk memproses, memprediksi, dan mengklasifikasikan informasi berdasarkan data deret waktu.\n", "\n", "Struktur algoritma LSTM terdiri atas neural network dan beberapa blok memori yang berbeda. Blok memori ini disebut sebagai cell. State dari cell dan hidden state akan diteruskan ke cell berikutnya.\n", "\n", "Seperti yang ditunjukkan pada gambar di bawah, bangun berbentuk persegi panjang berwarna biru adalah **ilustrasi cell** pada LSTM.\n", "\n", "![LSTM_deep_learning_algorithms.webp](data:image/webp;base64,UklGRrKIAABXRUJQVlA4IKaIAABwVgGdASoaBIYBPlEmj0YjoiEhpTSJ4HAKCWVu3O9bb8DAn/s///QqYP/Vy8WfO3OcXigfyujo/5+RYVD/6+GL+c81v77+f////iL9LD+Af//1AOAaeal21T35nnK8hJCDdH2nCv4p5P+zfl57XHhfgf5q79flf+bFar6v/N8rjlr/Zf239uv8x////p+XPQf/f/8l7AP6pf7T+4/t385f+5+5fuh/cv8jPgF/Rf7p/z/9d+//zuf9H/qf6P3O/4j/d/rX/cvkC/oX+M9Oj2Kf83/0P/r7gn82/yP/69sn/5/ud8LH+c/637f/A3+zX/a/P/5AP/57Wn8A//PWT+v92n7ReCv7n7Xfsr+WX5OW4/xf7vzI+mz4f+9/t1/gf3g/Kn3q+Bv81/B/5n7l/kC/K/5b/f/yq/Nn8AHtGn/oC+vXzj/Mf3P92f8980My/6y/W/8D7VfsA/lH9M/yP5p/4P///TH/p8FP8D/0f2++AD+a/2v/X/4391f7n9T3/L/1/9Z/oP/P/wPbR/Ff8r/rf53/Ufsj9hH87/rv+4/u/+g/93+d/////+/b//+5b98f//7rn7U//QjoNwwEjJEi/XQj4CRkiRfroR8BIyRIv10I+AkZIkX66EfASMkSL9dCPgJGSJF+uhHwEjJEi/XQj4CRkiRfroR8BIyRIv10I8CUo6a6AeGqr/vb2YZ+S6EfASMkSL9TJAl0PQVgAOzrAdBuGAkZIkBPDsGRv0Ty4rAZ3UQdduGAkZIkX66EfAAhgMJhOga2BDhU6OR7CBe0PXQj4CRkiRfq7aSvNyGYxrV63C+FV/1yNVE8vh55/XI83e8l0I+AiUWic2nqhmP6Cy/nTVwjBXdcjrQjb3kuhHwEjJEi/Ub1HvIMOqZKq2SZu8LDFyqlzu3CYCRkiRfroR8ACOXdWatFbspz4iDWCe6h3S8rhZx+bV5u95Liwwn13llzSapzz0sgrtO/Aavn4X1DOixu95LoR8BIyDt3FrEFgX6tvpq0YfJiURYcZIkX66EfASKQ5zjwkz7/THYlhfTzYqcMBIyRIv1zynL85lrj8h029ImiLcBiBxwwEjJEi/XQj4AyvKXQj4CRkiRfroQ3h1uGAkZIkX66AA4ZdYTk1d5LoR8BIyRIv3YDngwNrtwbhgJGSJF+uhHwA9Rui59w3dIkX66EfASMY0utFFjd7yXQj4A9jElMxSCPIJNABTNE5668cf69vOT3iRZziS2a7SEtpSSJF+KKLbgytQhEbhMtQhEWY+//Wju6aaukRDu95KdZ/lK09/miqqm+jZmi58Dg8vsT7cBjFK7VZxVCAD8mrzd7yU1fJCfg93zn8y1vCXrMiAt53HBxqnL9zFg4HqLsG5woa49v7p7orO1Fwxd4t419ft1Eld96EWGeYjuQYEdZn5aF0gKTDfP4Nv61j9ywjjRs3v23EGW8J1wDOHw1XJkNt6tfstDIUg11WuCTA9IbSMQjIt/zcupfltqpn/wtH1qR1vGsyWItS5aLUwUtn4B7WGQCn0PRFQmunCk3CwrrhSt5c2ngwKWVZgV7NL7kaRJ2ygd5Lj7/vb6dC+Y2yV3/8w01L8MggA5RP7hIElUhGixFmj1VNQoqYkCwQd8yuy0syEeIqmlgW0TuoHLuI7f/z9CB28MXt/rWo7o/JmuLMn+b6e+fTc9NEmZoXXFJ+yIJ0EGKGc8QaxB4v+E5PL5z/5HnouWImdfe/Id2r+miTcHnNtu1tjXI2PGGcmnIaD1HjSaB246pRNo+JH7Tf4S2QnZvNoIRlt75nuUA1btq83Va8XKplL3oM/YuBKgAs74wMqr3GAy1TP15i1tq8zwfnsLCcKxe0UHWev0xnVsZnZv8c6dAwcUvZKx5FjtgQxeDo8qAhWovhUvIPm42CGWRVZx51TcjSs12rHJTG8ohQ4UxDl0b43aSF2OmsCP5+3fZjN72IvE15tWMwuly07HMtR9V0wgyyGYIK+vx54ySUaiDzqpze5915s3BGY/AnX9pzTKPUTYVor+KkmOM9FR1gtrRfuQC30dQaDEEwIDI0bZLaZIkC6UK/C7kn4xAnBvGgUlJ1bopLjE3uc14T3FHXQjvV/ISb9MI2DvLwRjeacE4nWsvjwmbVazK4FqyLBJyLIE+E6ufkFUsAry35SIV+nxkoNFNh7s0blF1E2iolxVSOxp731SlNrzfzMSL7bLDskq414oxsZp9HUkF70mIhNdM4XoGzfNt55poJsMBIyRIMuQgujAsjGA+m7ALXTGrQrsX5WgYv1xjkbwXUZHhwqMZY2wqLA1AbLCbcrQaYbHNBVPj0/k69/9L5XJp9gssGTL/WGPpvjS0+CGQxYJzANMxKpxNIAUflmdzMoLJj7ZXV9dp4v4IxssKhZEZx1i1L7B7nNCEoJGNFLsxE1BafFlsSirp1qDggRz+8aPwkurBGYfJbhzWIFsR+yotNS4bCVG/J9QMuijOFJ7+MNfLqXcj8SYCOpRko3Hyf4zrr83Ti3HoelUKkBj7STkfCNvKOl2ChJDC5zoZmoZEq4jCP7TQCJ6qIVKMDh48MdZzVtJam5NkkoBQfpFsIAmr9NgQH8T9YFkYuVZD0yFsK5hue+kx/nIcMBFA3f5qXcIxvNODeaZQTrabKLHNGhKrrUfd8QjR8cfR4q+4CD7rrET/cEirM8JyYHyp/vx7ZRw1YcCMkQ/YmJoTEIyhERkmRGltJDLEsQpsNCVe24FWqdos3iyhMFhpYEY3mnBvNMgoxHfPAPraYUAZq83e6Eiss93OP/q7tM+25kinp9qY7mEgYktrq89sxkqANqiXDLWUplEbfCgntY6PCKVgbhOX0cUQ2wWxjGBTTOmnBuNgTbJEjFanBX3h9Ofpzq8RTc4J80SEFSoANVICHqwmcCQoVP2hOrzFKc2bQlOXG5s+Zc6kEvbCuAyuFv8AWY9UwqQfitOWoi/XQiyBXWUwvilq9aP3G8E/XElgLl7q34XTECe8i6Do5DqLOgpaBb+CZYaRAsY52iLIjJAhyGKrl6Js9W6Daa9n25VtJFKVFr555nRYsX1ss84zNpBbmtQv719ETe90TRfDrKIHFF8XW0PfUv/+OUvDhC7Inm+vM4CjkbXKLsSJGCC/VW/vDWGUrzwYCRkiRnbs4P0xh20Y44kgbFVLGaLDXQ4YjJjWIYQMHUvWchIyRKTrmYMky70Utzo46TZBmrEqZspSKtaavN3vJcpY1yGfh4tHllg0BVwDcud2OUskNSlu95LoQ7X1tC/xnCZmKgTs/Z3wymYCRkiRfq1PEoDc5Nw9D+csYD6yLVRfayN1gSu/NkSL9dCPgIklqq/5GbqbZpOJt6isqbMO9oiIjqF1R5u95CkOG7l7UrtOW/LtpKZP0vcUN0ccTwu2mmJANTXBq839okX66ES3u+jwmSZUudXs4s/dSYKtdiHtrhDJgKPq83e8lEdbRrsYHAppOEgN4dtkNIFmtOZxOGVbIgEja6s4qJ+YFnBAgEpvX/wVthMndbFG+7p3CClzxsW8ORfr0V0I+AkZHN1edcqfzA7bvJ2UuhHwEiHmZHSFiKqdMbnJERvq8ORfri3MxvSyCnDA5AJGivJEi8ottXpQyL9eiuhHwEilQEW4CNpvwpokX66EfR3DzVMDJdApoIDRXwAA/v9wIAAAAAAAAAAAAAABruEFT2Efybt2vqsIGC2imMLu9qfWTcedmCvqFgT1GVug/V328HbCdz+bdybAdNivB6UvRb17BP3j1CdAxjEH2UAZSuJvM8voMtqueUqRVAC6oadY3D1FeXZvFlJBATYxUSKGN8JCkQdjUypt9NDCHb+xRwJfD5q8wVJ3fL/CCSHWth1E8ovBT6DDojENfoIHjhEskoJnIxGKuLS+zCtMn+Nr0snTvLTc6144Dbx3yoNwt1kxQADH0BRzDI0NFv8H+DYqZHvs32OtKgn9yq7Wdwidkn23K3FIXqQVTNPH92ntxh/7hbjhdXUab5Q2Xlf2yAnTnPAo0fqztZxirWRH17tJhYr07c2rFQ2fn6U+0+CgJt/DlgWfFCAEmYOR2aAR2vogktbqtPiKZaS1XJkgSlwExPUjr721ZkdGQfZJSJ/NuskMi/aotUy2H/ZI+ujPpGv0jx4HAZ2mUK6hdfjRZgt6zSApB2A5W+PK0kYwB2dveqFkwsz0M5hpNKoOn99fHnv/fbtkNfduaZXHoZ0kDosfUXt/H2qt79y9D9P7h9N99U+fkSBjoFlGyEDUmj/Fo4rGcgmBDyE51M6NdYPmfUxLp9LxZ2IbM/eqQ652WnTzn0Pyguj9W2oWzC8leaFPAQDN5il91TiOh1fR7jQBSQz2zutxjwl9jt+dpRKnLsplmZnf0qrwpdJJ8ue7neN8CpLzk6Xsr7YKOCXU1t16L+8KMuQN8R0AAG+M/XJtB9/e/oRxDu5EMc/bgHlU9E+WeYt95Z4ryOFZwmRuSXiM7M9I4cNg5dCZQYUPZgIMNUOcdqB/a7AB339GDxHZDXh0j/zfryHoDRWZTMnd8gfEqM17DshWorWsDoLnZTQHA5M9QSebbMeI+ubtuGBAwlTVU9WWfvFsizJXh58y45M7Y+rAQHwJnLDlzOEWjDNcZP17MS9NX0sGxXLB1lWSJFu+0fahPx4lGIuuNIhnpYWCl/N+z73IpTZ+niU64r4K2zTjYi/7mpGEaODAmSoPpx/Tj04ClEErD7mZ8HaMkgRmcmiN+vFvIl+6eucpqiA/KsZjTERZzGjkUaRZziC3B7aJpO7cgABUKTNjD1hmZG2/zAPWx+XbrTRfFvLPaBxXdFVEZFpwvWZNMLeKPQlq3MGEccdBZTySB1+v11J86A/n5hUk41HwM86mGkhjZD+2SjleYTv7vQyl5ellU4g7iz0dPVpnNq3bKBGqISr9HBxaJ0S7bufQ/3V/MY6X8pfzt+gITDMQd/iNtlXOyw7MpXrvzBLzxs5pzrIdsjog/WpxE73jxT4hrnR+jna6k7XDuS4zUTkvrS/6dw6IVy4P1mYHOYCEdNm/i/C8ptrT31B2/PNHxSVcQN8CRtnhIveHO7EWWBwhjXvs+jiD5b3kdaReXswEyBt8MrssYl+qqZKVYAC8IxRG51/yKY1PJi5VGrpJ2IpPZ05q8L2iabjgsu83jrooo/MJNXhEnT7B/lBrb5JfhsvwNGbyS4Uno3xhnO3NBmBX/WCbq9f3zxzs3EjZSfd0pTWDCbDIxoDyzpueuwmR+6eMDZlW2aHTZCLlSrsblHdPkYHrKAmoqY1pnfyZUGP3wfAd7CFDYV/jFVR0oRKwM4Ru9u+r0huT6ZuowlKkhbPQOZobuX5wDZ+HEig5hUbzsvIR/uKTwhJHyU/S0sqwWNL7RwXZnDQN375jiQA/GG176V3IFwswbR3CYFpIspexm3Y4if319nDIcS5vFUZgdOfLmNOyFrM1qJIV6pgOp31Abpgu4QPD0lgKRPnIlEwbNTB3opQ/Y0I7f/gKJxxz8Vf5K/BJxzcRw7WlX8I1D56MtqSHAjCjtMDE52yNoALYH75OjvAP0HHHug0KQ+i00HwpTEyiGcZPXtQjfE+ZP5ykORFjARNXhRMHAIaBcL/9MPZcVnoT36ZqX+MX7zh9Ct7ViF3zTTqTJpE1FAk6mic0fNdlCUnpAXx68cDLbZW3wmC+AR2N5P+gKA7dKj7bKDNHGL6ajhDg8ZfarRxm1zlVSsjj7ztamFpeWIEdoJCerQaRc2u6Y2scP1BjJiSLRP8ejhDu0QxiYkk8rFQDBNZvpTD5O3xnsLFDL7KazoTwsDmocLbBP08ukqg33+q4J7Vt34mMqptNYIDdSOs7sseW89OX4aRIggKgO7BIzEqnzslVl8gLTZ/6y53MFFooOIpDRW+bC49n3rmwcG14y/GKuNiIET3IhA2YD54AcXrRSX8WNqJ/6RUtcsy2JnBETf3HaHpIM9UqGMC4J1HQ/EAHZ/9d0dSrSrxLXBQG7TrD/21RvMv+JSVQjdpZOiatsDwUnuWKO+PxXwwlNhCSdFLtpu7LvZUUQ6RXt/xcVvTevsCjGHCWsAudliPvAyIsWjp3NsVxR9gWT8rpxLsQLF5Ev0UEKDOZDeleq2Hbljcm9WtUzqTNcunJpHSXcfDr24k1aCTVGZLTiH8EqzKZPwpD/KvTtbLJPsArIKw/VY0vTJi8QP5Bnm5kHs39gUvys0fHDs3aEs6V2ogtrvXTeCgingjeqjL8qQVettvlEQKaWTc41KKesJpQOTWTiFFZt5MuWZcWLY4fYkFOpjzJFKx3bNiaqcHM9r4Adq6SY9ja+eQCYaC4c2ZZpe2AANd2RIzg2WuN6pDMCJPU6PpOgq43yakDnKcbV1y7pxiOv2mWXnuXqg34u3/SNsSlBo2MXKY2Se+4/lL0UnkFvfrw8liR0jrrNVvKSEBaa5K6YDWLgW3oVze4tMZktRbBImKqloESrR2pdXMIw+bSSdn8eJrptmUf9vuSqynuLM9ta+/MeSHlP6XWfwedNkji+7Xplitzb8ISP1MMJi3ZtDOZWmUFf0kFmvbd4lU8T0CP6SV+TTdfoNYZ++BD+kLcBhdnNQPQ8PHIdKLaYamcLxCOyv3gbnKMl+KVsfMA1Bene4CSgEFrrgzkHsII5Jun+friSltUMcO6HfXlkQ68Iqwg0ZMdYJuWrsPI49JblKNj+G45uD1DuEuxZHWqneQ4AXDfM4AADmAYbCzpqts4zb0FkTu6oeNa4KQFANaBcd56a3dbAcg3zI1loS4ddI7Gvyx/7RwkcYRNFmBKkrcDRWGL98vdugyL+VQTvkJyaaGUNUYOfY22Vueo4LPwG1xvM/n71Armn/jT9iO/UfuwDI4YelXAUjWdzOw3920E/iIgA6OavDhlULM0ORQTRRrBfE0AAAa/7Is6zbrJik+Gm/Dj3nC/dvY321h2c0VoEdqVN6T8iNBdpnJY2kIsdPsqWPltiUSb0D7nUMMufSZgHzNX9jdF8vJ+AiKa2wQ/pkvVv/70hEmxhKVv76a9YzZhiEEtKtMureayZ1kyBWN+bJu7iP5NZFquH4BceFPcH2bJnE9jOKXssCVNP2Pxo5sKE0gvAAGhLeOZdVbBlTVEACXRLXgJ9UQ+x0kffvx/t0R4VprF+nr2eu9BfMa/ZLlniJWAiUAo1sQLRLvt/qA7AOASdYglnvjkXzLGkqUI4Q5hh+I5dK1OgZkwqCe5FVcQjJZByUcK1CEuWqjyBTdAng28s++MUTbO2AUBHwxyshZgAAIhXQOjkjbl4LtWGfxFYOpP1rviTMRh7+LL321B+I30Lcf6Xw+FUUA3EbIABUARiGzFPOozmkS3AzC05sMXJpLaYjXiXAUlox1aTpf3jHXG6weyxZk71iAAAK9OvMNf1O4YhHKohabiP9CQNbJRiNPEXNRK2Uli7itfDXiKZMH4pegTLqAAiJAD4fHCkdPTAMAaJfkJwFAKGfMOM8P70uMD50ngYslEdGC0rW7vED8ftNAdL+pCQm690RXEA1UQAAwr4CIwGAjrRtwl03f/kz1PEsiuLDZeQAraS6MyQ+7Ao2mwzwkX4hHwDbt2AHULbLYtTw4FNf17K1IuxwtCbp5DvT/PKeP8Evb4GEjYAGRb8RR7/wQ9h35SKxeUamg7rUvV5ZD3QJFKT9nhKZ9aXHGf2iz9QymPqCDw6SGkMjlrtImrpDrGJmhZWG5Xylapkij9Bb84euQQuYDyYnm6bp8CyzoE2PxlffHQNThzD2YN1mvsV4BLqCOP5phT+5DEYDFRWuRIxoYi/tgDKxfEYD8B3Y2MkEB1NuSZUI/nkNwNnmbKoHDLtdfJnE+P1Q4e/r2MXeYzug4VsMkg9O0LAbXUrcIrTzeTxXW8Hb7/9irVcIZ5qBmTf+QqVnPd7Hm7rWMk0TRAKBtgWWfzWWtcerqJOgYjt3W6kQe+Jf17G9RkUxFFIvxRFDcz0HV025CtsVWQf/5hJ7UkyZ3j6G4el1O++Q7JIHMoCPW8fJUOfxsGxqCiu35Bx39ni2j0cEEfYA/jAXSh+/AqLOFnN1mrqvkSOkHAZOE89UUCnKDaAKC3zmZP4UGO7lGJenFJEbV+vYdVpl1gNHHD4su6Pq4N1SUog9nrNXh3taLuPgxT4oG2jyxtAkWFsnloEuk3j9RH6SobP6p3ZWDaH/byRV1e/ggZM+iA58YXgiN1LE2hLDyYTifLCkzWwc6pvn3FZ9mtKeuE0r3orNz3ClMhzupFkyDSCARd0puNN78bbNMn1uTjb42+Yo2WB60Do8sfNY3felwt7Ujj66I6KcsyIbiafxhKHw3pFqdreBp/dOJ/Hci7gBjOdCffO/LrqmQYIC6ci11ISyiq0HavcdQ1FbHN7w9Brb5isy5duFJDSPj8Q2AR7j4zJU38Q7GHS1ygdTKhUFdAutr8mwDaG9/s75IA3whytIq5/wo/cv26nTclQOva5wxIrsuYsirPNUV6mOOeQSLrX+RNy0sv3tzbWcAYVhc7Mjeu7jKQiCgy6a++m1Z9hSZVfxtbc8a2F95vn1my8f356ot3uePfk1xyVU9JovP4s8d/nToBEfRCl4p39vX5K3tjXzTuuJavf0L0IMW0/D2kvtXLhDgwSq3hKZ9h01aKceUQeYYZnlC1+BpotDYSfWqWqn/DsSDOOzb54wdLetrqwIswFQCGaweneNuLeU4nmx9sTtHNmiMZMS1LKnf1TiBfdfRFsIc2MTxrWUFfx2/p/5sTMOjupnKQ0YRvfRZoLtE6kjDBr05RA4dG9DGqf02SL2dttF88buE7PNQ8wnsM3+jKWNIB81ZNy24P5qrGj0QXpXOJ5e11m/6+f5w1v5NE4cUbUWt9k4MTz5tvmUZw3jDP2VVwDysf4xaOV9B49sBu49CPaHI4aI+aLxhYSPDDMqCC0ImfkVC99yX58X3x8JJ9LVFQPdQPTuLAPuqFPqQ35gpQ8qVYyLPmkYihunzThZJMJ8s8RroDl+ZQtMXZGw4xfamwH4TPERAIWVNMrte7h3GnQj1gSoP41t2J3z4NJ3nWWZcSFtFkXOveljqQywezEDkcasxd+fuDNBxMBLhgTYr6PqX7T0eD7wM5F9N6Mf+gFW1h7ShBgal3jbM/O8q1SSpqmIkiXbkzyWhJYqqAMAG/7i6RSXb7M423mSfSYM0k1Ne7iPpKhuwLjlUURYhhRi1WHWKPn9f7KLXOnWnaP08jDZkkY8E6nxRZ6L8Yv/hjdirx267K/om3DiiW7Q3lPg/2FfEiwAkUigIqHtnYZ1NMIn5y3zNgEDZb3K6n626unFHuTRUcOBOMV5N3yWQAFhq4R+5PwPCVK5hHQteo4uWhPMO3sYntNVgozwoZABLlfAgLx2cdVj3VCqcWLYFpTV0IaqyYG24t3yPhb8YB8YQM0DbZ+oqgIAtNPEcgcYWDkHyqWB3+ZAajvFZXaUXdRDgJx4zZTDgivk0zCriG+TWyh37EGw2IV7l1BPxA/DoaF3wKXxZFJ3Cg9H4rRKzUJROvSpLt4sJZNverJkwOUiGCgj1wE4XV5YHQXJqpnRU8qCHXNE1qwdzJAcHe/ZOvM9uiOIZQSBAaZ4+rQJ2egFWWrOdMs6LXLSAmcHmMIoCaZsnHfvzcOF4BHL9A/ZuTSXMWa+JLkoFZmLzMpNbTXk09gAnyvHfvtPOagX+hZ2zUsPvwdHCs9/QcfcCtKjh1adKm5aJwg7BAoUr+MowZt1pGt91MSTmcWP+eOps+cyGYdfP4CW8/OfM/HAgitGoc0EktYwxChSIR9JlzGfra1S1+Ws8JmNGskJ/a4Mg6W/h5+FMVBEg3M/CS9C3YzrYZli70r9krbsYYRksALB+rfNabINhQZEK5BIr3JZr9AJuxJi0ELdq9sluvFz0sZFNMJszvbk+m2GGmepYUZmViNCVInFxcjbta/JFZteNSgHRZhSndXIqxgT06xvqHistFFzx6UIfXlcjb2rwqs9OR9NoddgPpQsARH13qRf/vJaMdO1kU5u6RQ1PRsvzATS/9rdove9uG1XNx+aTaq4ePQl7N8Dk4yDBiE3/kYJQM5Jlr8XUY7HDVLKcKMvaiyJJ6k3EljrBflTeFxeV50RyfN63J7dsa9vec7EDsrV2CYrZkJZ4Dipxskj/RAnUssCniFynUgN2o3S/P8GFPGxxrgPBfHxgwJJyryYJKt+LMvfGP48lsARrdzTeyjxmFT0IE/kXUe8y0Gi7ke5yJ4I+zxKIwDgXooHKXIG7iMCePhHbnfDP9II3KJ1xyPsA4w8Gj1p4fVOIuQRMiH+WZ8VVXVoJm+SUgfR0oyrWjlWufW/i0yOknQafz/DGOOtkopUugpgRCYaatJRe58VJk91YxYOrVbmmsISgRuYF9xIQWBVeHc6Cys8q6t7tjDXXQ+aDfXvcWwcr/BvLvt/JNolAWu/uiZEJ1YiPG5wn8cQOUYpyIwig9NHqGFMmgbxd6Hbd3+0+TPZWco44dPD7qkInAs0pnA4TNtCpgT9bdG2H9RrvNJcrT6CrrUPr5vj89zeaIRa+g99kmVZovPEVqOt4APdL//PVjYoPyE0l0HpEV2r7aPTzs2h1b+WSc7BPAKpN6QT69OQx5OIHB3epqEkJa5aDxm+VaXXja3P4V5TL7IIkAnXaxA87onCcDFn53zyDhmPx3rvZsO6bKIdNVcwt8VwVJ/GNhLASVXdEgshImWyBmV5SNsiKvh1Q95fBcD7UV/owGQSCcsmQan7W7Qu9fUlpTOPIBNw40CD2Eb59OdaLEBL/rR90mPQZAusr+W7rrTH/RAxTlxKbyKy4SiWG8Z2tIjBTXzhSvDx/7mZRW0MkIjHqA5MlSS0LMPzRGx0UFDdWaUYE2fflP3MzHNF+EIp0qTsSC3iBzWQVqFDaiFZBqkncVzt55VGbr0TBFn/MMbmQzwH2IJL7teYsqdSJ1Y8y2YAV/jNfOOVIaOPUtOucvPOPwJlDiMdXD+57iduQn4tt0WSPbK2NRKwUNXSI2vBJEgyO64+CGodSi4+EyIJu22oHAdRU+sZJIUHpPIFaL25THJyslOULtjyrOCiSEgekIrtOwDkbxriD7UWyo3Tb6PI455L7BKgOJIS9s40MR4uW1CfNL8+8/HfH09U9V5zUnRmNpOxhX4YAwTcfX34LZkHxZDU1pfUk9d/tK3EBoOVgX2zgcXZijovkLluduqwjsk4XuAhjvF/lm0fPwVfVsKwPaxtEWSrmuZcdVfqb3HHkjuTZNgeghb8pTw2bpoWBBPSgvHycsj4TX0PFYiroaSi7qRJsI0paZeOubhXN7knPcmJF+C5y+5Q353CUyqhS80TQg9A0IUg/W3QUoMLf+qObJ+b7lkpLD13dMP6Pa6absQDqauvtaysnn5jMLwe/37I3RzY5g05+j6iYsdwA9/Zeql4rCWIlXDIq8O/wueaLRh38Lx6NE57yu4VEhBMTFKfgQcYx/wfUMaVABVD9xraKfI3iVuGsmb4cIthTdOj3uiS6oywwFTcfdH4quEEwfyH2f/T66n9LJqGAK9Xgs+yDRCOYuVGyJlMgfmAkXo36zcuPGH+/EDfAbGmbZlrezhOUOo51t6DlyAW4BkAAY4LP+vnHTKT5sEu75XfHCTl5VjGUslXorClSUZESQIurerGg0haZ09G95qH2IG82LT+4v0X8l1K/OwWbyHPsVFSUdvrfPDWN2xqPzfdcI7SW7HUrTNRwO6nra/zVEa+Y50skHzGledhAoROowANn/HFOwU0ZPPXEthadJlGVF51V0841YT71MfBbJexwSHuqKtiIqZ/5fvWYTSL0DMVOgww+AdKRemjJG8aJJb9QS7Zq5C84TuiZpNAGiqRfB1gG4Xk0srDm833SXw5VEieaM+hdLzkpWh+Wtis9A0b6vFtfoy7NbjhiNusrhCeTQ0YEgPeId+bsRSdd2MYfHEeqrJOHoVhtAnGx/VlVNqDiGW68eyl+B+aRsdi2WfUzPnnFqjiN7c0rLaC9nWU837kISGlhmYSESn+rta4DTNT1oyoiLL8C5n7lWfW2WTlyMY5sjoji2Ss9b8W4cE5+1S3FNIPgWXoait4rQt3ErlC5btZXEbNWRQvmhzNWEYXaOS0joDnyg7XkxCLRsPv7qUmq3R7Ra7Du3iMa3s3BYlb7TBi32Fv6iyWqNikbTmvqJ0cAeGZlkL+nz9eYZfljZxTJIaEPqgka1zj/mB5Pe4Vi5MHPHKX6MHpoC8LBXK4tITr4eD1ba7uGOtNGK91s+kQH1o0+iVvwp45EOrcbMMNyWoAa3K3Ui35WMDuDvTR3LF+vPQt3Ll0sQGM9tqT8INY4Jc1ahRiOYuTdYIXHpOjUsURoCPpF7IS2rJ3fMyGCyk/g10LyvCo0PKTcpIfZ6IIU7ihL1SOYwReze9vhiA69IRWAoP25annpliLZ+Dl8j7XsYxNEtRx3VNK4Kzacc8/665Bvkngpi1t8Sn3qxvTlfCf5LzHo4zl+yLLTboRNFx5I3wiZ/xydpcQeqwNYqO/5zMtNEG71qyW2s1w4xUWyFzq2RozlhbKZXwwoBL8xV51/XQ5tg8ThnqDLwLK7KSoaZtdZCGdBvT+uIZZ4Z5MGNBl5orLpIlw+djuIvFhRvvtJJBZufNl/aLx8JfU067jj1UKqU/IllZ0n61h4QFtErUYBltVRwtTzUbcC6rdKV3GNqODw7oUNljg2ky1EgKpbVik0bb+hwEV/vMAs7owp4FbcGjBwZXCXEzImbWH1QnqodJ9IgY3uGPtjZfaRf3DqBAvSocQEd/nGKH8tZH3S0vm3WlO0CBgyfNyVfE7eEVSwUU0LvGxaiN+3wnNQZ3Tq0re8rraKLQ/rRiyr0Lbl3CJ/LDCtA2dMAjlnRNNwyw16Vfp6r9QjC0N2G2PYVWTz0TCR7J0oh9X65lDXMnPYAXfz75Ic5AoYzqhG+i/w8OLx5Me3nw2jjadFAkbJJhraEWvjryujCyfInBP1lXAaEnWvK0/Q9x0W7SuIcMjpP2T1XEpeqbGCcefIXNwHd2T/dL8K/MoyN/gBxk0dWvgLAqur0e+swsepEhX2UndHwIii2IH1WZnbWaXFYbWnwmCqopT+2uBdH6er92ZUu98H1W31TskAw3TqXc16mLL41sFbgjhJEUkJLc0NV1qh3PvXGw8nFx1ilDkMzIEtbpdGF5FJHpgYGS9ONnV+6rXmH5pfi+qRJzfuIbidiuA0DX5gOA3Isith83BO64Y3KND8N/WOEFqZEtoaCzdyQ712ycNYclNMFNrul/SoVjLdWclDOtAwyWveYefbEVMkxOlAD3JTU09PhJs69CGPL3Ch1GJJjEjtdMJvOQS3InxZ0W1k6OPqyucrOPaTSjW9g8OfepVIcpbcVUm4lhTb45K9eBo7HAUDaHviL3ZPhF0IRn+fdnO7Cb9HurqkGGzHqAsCemJffdsS6rjdWTT50Sq5AASZ4QGnFStQzdA+cmXfqARwZC7siv6qQZu7F4awLL2YCryTUQ67zWY1AKI+1a60qCKVDqitpj17C/DBvGbz8JI2OTsj1JzusjK47r91+cqg8SkYp1UAm/HItMDCY/D0CuCeebWYu897K8S7PtZ/2//iGrKbYhfaiZT1UHGaXwJ7o2ESYypszwiYiW1mdVCrEtsAoY+6QBdnaZcCvqKEIMWXjnqxhNSWHieBba8qjcbfcpBrA3dWzy6CFmTQ9MPQaYIt+Ut71M/wZu4mtmkbNM5NlSn0Wmpo4eL62nfQ+w3V6RHRGpu+3Z7Fg+3ZGrhPVIBHk7lmpIVXTRA4NgPpDJV8+pIz44fxpB74n3uUv3cc14x+AqrotdO8yBhtYBB460wWcyRXdtEJdpFBPYoajP+leYCUS06VdrwBKfcJzk2XCBGSrkLZRS7twpZL3lNWmHl1/WpSJ71HSI/MzMZ4u8IjNsRu39VMDoQCGNgaRDEfSfP6YftTRIgn9ZBnv7cz6vAMJmnI1jub83A18ZGslQG6T6nLQ3TIOkLxrMuQBxOXSP4atxna2Jwu9kKgNRQY2nbzAXY3l6OEZ8Vroi5yVADdBSOFIrxJ7fZy8GqrB72RFlFG3W2YHCb7dCJclMgUe1sNYF2vmT1gWOlHHiB51ynuNTPrsW+OS2bvBqI/AVMDnNmk4r+UfsnZaUsrbXcgc9Ia828IsTcKy3yLuBg7zj/Jo6hH/uIY+dAA3sbiplNK3MxkdvbwQJqSOx9nGMpOd1SxIE/88aBMzGY/vDOQWlkcPLnqRC5T8gHKARof0dIVIBLj+qjX4+wPwuvoytUThwUO9UaXgTd1OJkn6/fz6keVJIK3Y+MzK4qDRz6qlWyaVw+MhzRatn8/UwPSzqaSbcie7Bwck0X2CqCx4a0FYKr96aXg1fhaw0n0G96ZhCkSkFsItJ4Rw7vDK2i+ulLpa8ACyUXO+FE3V+Jt1fsi1ArHpJX87HFNRB89ikEQU5cGSPvqORETnBBtxce7TLWmVIEkEOBVeFGmdVQ/Ov2+2w9Dj6eZkGYNVz/D4i9O/19Gqp4KS2eqHlArEMhwArxAjAIWZ/JT8DwlzNyb1xRD8Nwg4Fu+xz4pE/JdmM+uVVMx6qpDmNZc0qJbf8X5nmym8I4T20WAW8sQB9Vxo2EuUhYitl9h2JoTijiU3r6v61SrWVMogPhyNch7cQS8G9CvTSzb2aLbjTuAqfJ2xHT9do32d/PZ7/+hA3xy05IiK65LuG5vyaPY2KzHu3w5e4tHis395id3EFVkoxfLuPNF9EaS0GL0kLWTlMhV7W8ERBNZv6fJsk6BmKQsaXaHr9fTWwrK7IzcNnbLuH2/WB12kNCvXQlNocVH7lqOJVMc/B4ENV2xQOIN4FFigbRjCVPXcRQKOvBn/aaCVXE9XiwSxsusRzIvxUx7aBfts6WuvjWC/Z3bWonsA2+6/oEadpfnuHrdamJfgLenF/ueQdzQOIDdTG7EIlXY0cb2xzoQ50JQUoYHxwSfWxH8Cq+P1QdPZq7qMEsZ/q9pd798OrEMTS/AsEO4/zN3FIP99d0yf1rwJmegJzUYnPzou/g76JNWJkQnYlHPCoe/II8Dv0Y8OwF/0Z3Elh6dMNH0CN5dOtRzjG4IUbfvF9kzdHIfDkxzBt4JRUsBiG0WZ0LuAFMrKuDLm35WUw3D8M/HRPhEWNOWeA3rehCoa0DL40jH1aUieUY43bQ6Qrkr4BBzz8w25+SE6dVsQL6dYBllsI9e3RHArzI7Dg+AnkV2jEkzz8/+gJi5ako7nHS9ZF3x1CAOWFS0SKKIS+b+q5EG0SWyQAnL2whqSJfPOvEd91e+JNqrS3Os//lyF6OI2GCafa4Tg8dZAHZHe5oQrY/p/7etEEolt75wFr5kxjIvnmiqaERjIcIL4yvr6r1A4Sd4/RrZUilQRmhtUxgmZ2VUfTTRIXeSwSxoUvZh5U8piFL8k+31i4CRNd3u2nOPmB6R3m7jlIf9IpN7V1JdjmY1jxsjrTsBKxtPG3/TWUgeDlj0vNNy0FspF8xDdz7Er9oF3BOmvycUdVFZvkdKPp5Qqaa9MrQ11+HvPm+FapjPK7FK7XyBAwLHyWvae1xtnbzrhrSy8074D3kU8Yf/2oRSbZwEihGAk/OA3GIBhhMsgc7MYYxM4CeuS8xFoc8wODIXBsmssmELtKDRa4ouomqhPfIBnHsXP1RrTi9GthxFKFVtmmkbV7FMbRzri0rkcvwUDUdUohKMF+mMbtsc14oVEpmfhqQBbIt1TOIUQ2Cih0c5gtSIPPuKKyzfVxf+S3aTbWHPUI5xzlIxpu6bSExM24vybT/oZFwwzg2ziFmPykCm56ld2Oww21Yp439c+BzwGlDpw87Suyy5D9juKsX3WI4VKyl3dsnoow/D+Oc7xNz71Ck+aD/2u50Plzo4Fr73hwkuAFFfTGOXwHe8eemnGX/QHSKY20yrs0xYgQaihPiFl3S1cOVFDycDTNng0mmpB7idfR6JAeFuZNOxzRdOJwAdhiYSTXLOF8RaNeZtrXFIkfTggOUa6PUvCUy23JMUWhyblzRgk8vygOawprTGJu/yGo1oz/BY0n3DdLuy79JX6OBBGm6DKlhdJeTXShkmrktipIcFvlJqvsw5h2DvT63svU92iCR4jVfuFOuCYBdAWYBoDRR/UgIvxjQtcylfyHG5CVOBTjz56nW5ZjSCMq3p1EQXPu3SM1aSgMWmMk/a1ZgFxbLQvbt8h0BZ5rfMUu0rYnBoElz9+kAtSgXR7NjqKINOI59Y7S6rFh5dI3ndq5l4siv8facsuSQ+U3SheEcnj+7fY2Vvu0vGbxzrxlZtfFcaq/4qi1OILn5VaFtcL95tMa52iuQIt+yo1dmWUnCwdf+mgHEBpM6GsQXeSwsa1cA+LegrkG2nUJTwywLfXQip21fm9g42a5O/obxu3B+mouXgzizd8g3c9u7OfPicUdNkXEWY6kzidOfBRULkphiIDCAvZn4lTAxTmqfwTeT1LrqgoWntlUChiUgrBv2YKIKs+GwUlNeU1XI/SiD8KechCkxSLkfBQxbrZ2guSiElNrR0yP3K5joCZ5wv98FLBTxLwEfetri7l/btxnwyZzOJ4e3DXH2cLrd70wCUOY/F/dqQ6z4/V7z6ZwEv1wDSy1vsJu6K8f8GvqqZCBLdmDYzhI4B7MrVEElIEaCjlPaj4QUGFa34w0Mho2C+8WQSJLBts9lSUrtWXSf7XuElVpu4ys65L7YFRnO1J069/7L8g/VZn1Qj3Rab+YhOF5QCVuCNYRouqpCJdnEywv+aX851jV6jXI0rfTo/SgDSXZMUVIcPSKZdaISwWeVFvB53GzHDTFgzhz2gC0w3SsmKJFKHZjRHCWq/5gCERtHGFRuDmxwV0tU7nzU14Kqr+5RQjTPIg2HR4pGtEeTcEJFwZk3rCXdaPpECUFjRv8JsSGDVlheObh9JJQzMnKXr1uHiCvbGMF3yi17FCFm1u9XnYy8vSF4ZZSMpejKclvblfzrJjrXXvGqWwCabqdyxQPhYlJ9GHoGWaSGDa5Vjl274HWNaWRChyECf/+bIVzqLzT1Pp/4+Y7E7l4egAxoxsngww4S8YhC2lmsHSTkJpjUU9Yj1eiG4ZCIDqw27WRayzKD83kn+Z1IkzxOBR//5jxD4M1fOoDpqv+VwrU0iM7rcUJV/e9F+E+cgXVN1in8jMpKwBbmsHWEUoDxDG5oJ/wfv3ULCY2YyKbv1od2+2HxXMM2jDLvIKxKpg7CpXd983cJsqNBSEMbw3/Bbujr6NV+ReM1IcDQzOm/uhqcRptU7DY4aIEvD3ZNui0lnYJRSWOFpuevZZOBkR534c2FzQ2i0htR9q5B82fNG/01fjibl+Ugojxxsi2Pj+olwwz2E4mJxtCUoR+WHdE9JbNKRup6U+NRO1sFf/t6lYO7wbarN8DgJE0lgdeQpkaYTNm7aJaJ9HWPs4kLd+r/J1kGn5qgGMmdO59E0hACJKDsd/YPxqmVJ5v3/ZZZ2LqZaUscUBnDnSa0KI/xdcLkzN/X8H45PPGsf64K/Es4tBLXGM4ALqcXNtxTHCk0V2oZjSFqIXOZMYDX5MW7iLg3O0iISOvseEWZ9CW1dIlrAAMuByy9FKz3eOsbEjLBfjN69NN5VZBflENuE8DYIQ8x9lzBo8i4J1Ds2/hXiGgjc0nnkzhgfonJMB67kzgD+kzN7sIlrgfcNMGvoFZoLhOapMAS0M9WHeEGZa4BLmLBApJ0BV6BeF9McUtyfpaaebLbUAas0oTsbqFdhH4MFU0hybhfDjmQ22OTwIGCeoxmtdvD8Pz/jbKF59dkc/kr2JorEultP0bf6sLJhiKfALZ2VSq34X30ypejIntjvcg4YV+5WBpKwYecVOheVTJzVVP/oZD866A80bAXfaAL4iNsjJqdykhv2uiEHg0kSn1csDOKlQ8s/3hPd1k1pUN26wa8Sf1VZPcHKdCFlZ+pY6aPiUTykIiM0mFYvjOBz4hbSOZhc7qMwiSGchieIwjcLbGTOtsKVmoQJ2YPKSCjqemAHpWVBvSWN0bg+0dSAkNzlgeAc2qPOJuNQKmNEjuI4PqtKXJOsQ9b790L63R3Jo4Z/XI2fPRqIY8EObiul/jUBz+RiGMzp13xyW6B6TvSWS4Yduygxj4FcE1374Ya/Sm7chFJJC3eUkEKGza9u1cM+L4wfx1AtsAWxgSQOEKVQdCdI0p/5kv0GXbAEfPAmrh6BfxCGt5TeA6/dK50Y7nu7O+2XDCNC2R2QiL6cjlIZW4m9KCjJaCa0pAMZACvwscT5bk/+U2zdcDxVWCw1fDQW7qOY5WJYivBFqtS7pBOF8Gy3PjOudyD17KKeesNfbnzOwQg6GnXqUnj9Oa62hemOnG8wl8r9wW1d+BbFy3Esv0VxrzQTcNHT9oD4mbVtX5gGOWT/hRQehSEICExh1KxceQ5XAz1QdBCRnVSI2uReY4GZRHSX5rvGmtvgUtfDVfk1ErGlUrCfhwVEqskqHD0MUPmLMDk+8VH+D87q2nz2CqdGKV+K8A17uT7BTSlwUstfFqgZQuywx3TKrd4GepnC+8BtJo4vJPLqDo58SvYDi4UJ4lWAnnbVb33SNMuEF6fcQ+9slijB46nMGXB1CLF9C7RFvGbprnmnnMvTCRGK6Npq1+02asKNDiLpnEB5chlvus+zGQHGgAl0EVf+W0gC9N4M99vj5h2Jyi72l9hxO7kac4SjtsRKsrC8E5vXbctN/XUJrPHaStTw1/lAVgKboWgPLKpn6P/BvYAyl1uMnBxCpEudJzinoho4uCnZd0YFVEGlqFYdbj2WiZBs4x6ILi8X4VQ96fHqgLYUBT1MGlAJg9az/kp8YsdkwWmeorv2hCZ4lCS0xnaxydWzXrFsuUG0WY3EfSN6iVdDmD7BXDZDkQLRGnv9cWTswQbVrhxzvnKHIBm11y6r7AW4RiI7H1xPsymsRZcVVLQsSp2DxLz82XYPuBXacBDbxZjMyIYdnAzLLglXhp7ZBLswifbCgyxcF1Qd3rkCVx4w4Wh5Kd3dj07HDvdf5ElCNIT1KrNOIut4jNSyaUbMiRYYAqacZHGDBfHJ9cANtdHisAx5EcfDEWahsg5WiAElGcA3Tsd6rFBg25Y0kl9qHKCjqKjCUmqSEwIhY3BVqDC3vDr4Vi6s8fAxfbiDPO6/q5u9tGp+kbTXeYmIsDVaNPYLqNyIZ2m5IKt4fdlI49xPCE85DpOCleikLmMibOhjCJJ4m08FkLisSNkNmVIC+EPezrlQ3oDg6XCytZA+iOFg9YXNlhZKzAHnvBE0J5m7Rkq8WABZLSR9rl0BqC3+lpvvoYXTquJeFjQA5bPksdYOYQJbW1PKd/gsGI/BQilavcVyQX1cIGK23l/XYtxpaq68YE6e9vqkrOTih89p4IuLWRsDxcFcGKwZfbjtVpDE27fvqFeZUVCPujKh36s7yGMoOiSXgj5IlaYLs8WSVgvxa1sUowYgTd0hfjbWEWB/DNn61m8AX3nBOpj5ejlDAIs426TwHURVxFW3VjxjGwHcr3cnAEhuBn5sX4VJdWScXJGEYkuwUs/x7VoMxFcIwKeVf2XQSUMoHmAGMDP7fzPYfqZXOcGTj1wnnJIe7u9Ct0NNn5bqlaIj/OUTqsIvv2HhT1gyCssvFYLZDHp2p4TDQYKdnyhWn4mKqwPv2Q00lme5ieZJKVMCct7Fy57t8vN9w9UBMDzY2P/jdZ9RENV24qexdWHeht5gesZvg97CrzLFd0LQaDny5IuoMuhQhJKieAeZB7ieSRrWKPcTOYgmKNiaXx7z2Ka919JIZAdNTWQJKM6GV/zBjj4TeXreWuHoY3CRQ2GcrmhZEnAWZM7uUifdiXsvpMZdooY9xbIUrcpt0lF8uJ90NpaLo+93lPQBQ/1K3K6R1l8Bp47W1aEXCMFM956+V1oo+6Qj6GoyVtESeNp4d7wDwRyC9UYy+pH+qoYskpVdh33kyAfCJu6NDQXQV+WNiNhHVyum1Zu0IWBeUXmRc9/idcWxkcJJJ2AT9jQmeYK3qXRFGgg2OD187diIqjwB8/97yDxsGj9H5xmFp0bW1vlsmaOaSJTkjNQ9SVWN96+PbSvRsDP7Za1wzix7AEkXJCz3WIjaQZpUlPFshdq+DT/anK3bD4RSSrKFeCe/jN4gIhfEzcXJ1yUJ+ADwAidWMlYSZSKoVNi+UGxjxDEMdR1tX+stIA6M9Bj1vQmaDe+QXbZQ2YdTunpMfGyNmQw7nDgE1wW8g7ViPQQAFqAtaU85L1CESGTaMWTtdT7maLyPmPGOkVXwyJ/Nb8KI6mXR/fj5z2IB2NY+hYjdzbq0icMDKKzW7OdeZM70HulrjHrQSWQFQCsa/ZIzCY+K0sRMfEBBigRubhS2i/Eiti9Z91Dsb7+wl4cNjfPZQpC1elHnWmw8ckUapaWfv9VS8h6Tmch2MmRk3ZhuUkAkMoy4Pm+9JzeDyiXhm7E8ge+CK3/4wPjNf9/KVHTNySAgIPMuYPzejXLb6vmAH+aozbK33Y16RJiZhbIzWHIEWkB1F8NuvksnwVreAJ7NJF62edVJd70cVcCL0gIVFcvVXxSSuVUqvnhvJBMU2+Gb240gRfVkOlZToo4DEDbENhl90US0nyLWHzFtLni4XfTtyYx3w1qWvvEeSBv0GaJhNYSNfhoOXHJGjGas/AdSuFm/riBqcp2fUV2s+imj+JHSMctHRNwg/hb6T9RAF95UNOoj6GbkR7rqWw8pn1WmJlwa8SfykoC9dkwshSEJMSo34qu13b5FaNCkubsOYRsNI+EKTfOeXgJWrg0MOLRBtOZUfgYt/4vPVvN8sHc3VmwV8tHmmNRjMrwQmOjbdaeSDOfpZQdJlWfYMV38C8i6STSs1f+P207lC2BLcHuEVTZKILRdXGoX8Pov2vvApAxLppY2rsq7HgSDnDmTIgcHdsdOfHMpkADGauv0o6DuWdFDVw6Qwxj0KrAR//E1us3GZobzzNtyPoYUbc7AKbK5curSJuQ3EI3g6OjXOHR68WwEdn1zpwlpbmrOFWwq+4+J2oO8rA/LJsM5yb/6wI4y/Yxanjx60t69TSQ8BW63yxfMZv4Xr3QZmEAzHqLOdM6dHubXEmG8xLAY/gxRLFNRnnwp2VgFTlxAI//zIi9sKbvE19NZIuguB3ftY2tHFHs8UAlUGglIqaOX0JILK6PjtbkS8PET500ECZhS+Jyefj6wV5L446zMUK6KoL1neTtfVX38fW9ltsZBX1hu3UC9NDweKo7yXy8kzDjRs9c2w48wBK3PSjtiJYxbxkbNSKW4kMlFQFJvd/jim7DdLnsn9OXmj43L4knyAePGpPReuWCp4kLk+TftjVY2daMDN/MMtLJrrLnubBrNsgEtCRyhZxkiqRyA1YnJglX4uxb5OHc3dKZ+cD3RxRJrGidVmu/J0gJhOyDV2QDx6Yfjx1rW8fcZFOM5NKOA6aU34Ddj8k+JH+405ruNEeVLZk5m+mC3LKtTztfCxoaiCPjjjhbDXqE81vcBoz3qTgoV9x4ySsIAr3bySuSaj5vu9PZTz6wNynaEf3FmelPoGadBZG7e497FhiRx9xMxnXrRFWjUtv0kLWQggq1eYmIAkoYbrBayU9ailmrSPm65HyrY/KSBDn9jO7zrm5whQI8Sw6GzHbuSVLLigvKUdUeCC1qd9GSR4LQXqnD+6E8jqxYXIdGftknmHQtJA+987BpZME5GiyoZsozJrjggrkKFP5COQgOyyPoik7IHttBsGKEtWFZrgIdYNRKXN6Pgam7xI5SSgcuamoIz52KM55pk3kB+9G/C6eaYxfyp8WpGklxDJFzvQKrnc4mXxa9mFOjq5nBXmzXKehUl/Hzgym45huzJtWAJtjFeta2iA4vVn+gePyUwfhD8rYcOPzXx167tva9a1ab47asbnskFAzazDz8Eg9Q98eQEZcXFi4gZzc4a+LLWws2HWRontWpnQxwCdHGhAuwFy24r/VvnrDGv5crUaWR/P+5wUFIzKEgeevrZhEWppdQnJzZrKMdepdpO8fwvaCayyjVjRuLxv9ury8OK+tH41UPKPfaeVsofWDNL7aj2VxHBM98UHU8/TPAle4T8U2MBCC3X6XHIKSoKos4VloMdyWFW47EkBAE2tFfcTLqGnfK/9bb6R0uKwDAI2ThBoQlcXOcMzIiyfZv30GKknR8wL0E+cdOaPr6j5nyz/kZWmG5a91jqS7w+3nBfdonxtiheeayU/+4F1mC92LLdRlBODF/FHL1ayAoqkzgF0JJV9qy+S0KKUDPowucQbyTE0Bcwzi4Jv/7oDEnLcuuaouxAC1KDTzKTD235eb6fpOCVo2pvIDBhFFO+7+1xQg0jkDQ+Ti0H4UZkLD5ei+ilsjGpGS/7uI8yhVgOoq29HtDQkAeaPPtw7j8p9QirXZVBK/Cbln3OqT2T5iUDqyykMltR+V2F37ANzx+h2UbzHwMXFOOSbRX7HoA8aKE6HSVrlnUDEesuBuxEzMEdFP3i6j3/Nev52MvPWg/u9ZuNi2JiW/CLrQzACUCiJ19rV81hOHQJ4yOtxh/ZwccsygrqaieigjO61avkDF4VTU3UHkIO8IdbnskavR9GXXUKHvcAh1mjEPwTT666xniH/V9hFQeV1+CrOJLHoJ5BmkLpzPwtgpU2oEyj+zs3te3ud0rdgN3b4QPFs0/uVaBAe7GgOEoF3JMD8XfH3ecNti7i4xjgN6SbJoE/VOZxG3J5IcuXO6qzB44+DDkUhA/Zs7rN0Vy+Ce99sD6AQxOCjd8JcElsi6ht/KaKHCLHHrO0kifqfCR8dOb1iEpH0Q12op1zISVRvp28VaRPITXAIjLHLgn7XzIvXPCzJQJ1jBgZPuNjdpeSvof/iiEDh9vLLJ7x+WOzYYOIW1KmQ5dRPNhYUIQwkqzgXXDFrTtxtBYdNKQPiOz4ADqyjg+3wZBiWp93GVd0t14qmTqsM37OFWM6eCZxRTVii+GVxqH8TB0S8kVzuChP/Ww3UwchgAiXtAxhQLFkkbv3q/NfvqUoXx9/ljZgHlO6TyyKJegr5OfatdDvWm0eFl2zWoI8LOUzS6qpNCGevYqRMv8eTYdcKSykjk12dSfgwhVxudJu/SaxL4GmGgd0GRNyZrqtxcH3DglMD2bL1+0jsab/gXfGLwcYhMG7GrmAiIUUpFTX443VMrMIUY5mrWVGZC7b5Be+pMxS5jveifeX5RBwBQB8WErJEqVbzuJri7B1sGdGtoimIcu08mNfrnY2Hqli6MS/uGFxTNbH5Rfroz6HHqXNcd8hWTSMpe2NVWnInqon6FfsQYQkbSWzwl8X8WckGDL2LYL4tvxEqfL/6SArtLJXHHEKKh9bUoZSUxtVUauPO7EbBw8m4qVG9e6FbpZIxsBBnIbIqAaA89ocWtx0sBY3YpGmZwflYxk4YbObwF9EB6iN4k9wquibul7flzv7gGTEmy6cbm1ZhzwMnvMWkblttdmdK2nWwBPiQjHLemxSbFR6BBq9/dvljnL2JFok2gvk3uJGFn6r5T+HHwey+VP4NbpldlQn4EpB1KJAZ6sfHC/GJipvMvxhfZYHO0L2bxu0MczHZIvWnyGG/uiLnZikoS3FYG9Ww34SwFOBQPyVVcbejDaEDZRN/u/i6GaJqqBOBiblTil1eWS49dX9q47XRJ31+L+bsftZdg42jAI3E4umhqhsCjHLegu7B+pF7t8CaqwwP0F9zrAtkYnPH9Q/uwq+FhblSwVON2jxczwdScY4O3zASu2jmt4rsvR/xsmhJUgCyGhwvrLNgiy8gBhnxfoJ2QNvBzdNbhTIxqUtRbwodrZ2RJfDGK+smrCLJ9eMicjxTXcCtEgK//24WnDaSHdjKtpBm4QQC7elIa65BsUYW1q+zPu7bMesGzGzwTPER6WLH60rlLXOKgmhJPpiUDmXhjX8ZwGkoRXZQmztt3rB3SNp6msjo3l3QWeyv8k6HukxXrrK/ImPinFQwcZl0XrFeBBs1sv9z36oKOar00gclxJLye41JJSZZFlWRFryJSCMq2M1+PXwSJWYmCdLKIJ/2MD4MODoFLeGlg6PhV0G0wld6y3tEqsNmom7nvrYws95kjs6jvNAze08J0cZ+q7csQaZaIbJxrOYo5sPlItDzUNsuSwiaS8EZ9pTBb0W/gE+qJV5qQMMrntnKeYuNQSLOSxYcJ89Nd/eIKsyHIpVlPkAKlxF4LbXO3yQ9NhY4ga8DD7RN3mu+qyKjw9vpJRIuAXzfgUUdlRoBhoMDgTtk37gy2x+pAMBKexACXjXeveLjoEgQV9hsvwG/EYte/gU47OOrBstQK5hNAZP1BRZHcEK9ZhrObMaUttKv+n2V2PEzQFOKMSWscNtzFNt+w10WGrZG1LdkJLLYFAI25kzCN7AzTG3H9gxp5sqzQ8nqixwQ0X5nMgycwye7yTsQrLBHMinD8sJlwyhUkSFHyZT/laHmiaRM9hAyi1og0AtDIep4A4c2pw2yX3zmO0+8+4NWivWSMf3os+mYbSwEoFUCoGcloo6pajqEvp3Av07trJjwOTQMqj8S8POKHbiuJD8sxLfQhkeZ4xoENK9ysf7WdggtTll1cs1GsGoUKI5mAFruLox3n3voM2fxDtyCoSR9XZjNd7z6gYl+jxwSDtc7l6veGJbNla/V19tZAgSnMNTuGDXSa0/Yz02cFXbBxrfuwCY8cCo8Eus5Z1r1DVZ5mbKPyloa5f2ZE2wnAxz6y0dPsHzJzyLMxF5NL8jxmAB6Ouk14AMY5llYXmVeI+0hUloKgreD27PTjdsoVZjunCQKv9VZAdTdogfBT5tvJeOASUkSw6/C38jCbLSXj4RCv4R7cp7EjTtXkKz/PhK7+ghw99GkC2C/IbQePNSvL6LDK76iNEe3udT4Kttmr8fphz0Snr74P0vUk23ZL1j62lg8LGh7uCz1caSFmSMJrg9/GzFr4Mgr420oF1QslAlsXOc0Z25JAwT9DFjuNxb2tAXJCWhBpKdm3/FY73TDpT3BoneDL5xGqSuSC5L88jOfhdoT5YyP4f5jqyv8w/YSqKxN5nf7N4B7AGqAMlbbBV5NtD1yqFT9gi2jPqvjbjkHWdXd0kRBRiaSKzj3WtzvuHpEofbCcSXb863ebzZm9xQe2/7m6ylX1KGP6SBHivOqf6k9FcyoadapqrHW37RFhkkd+XpnLkBjZUmQvBDG0vRm+RDmwftUI8qXImn5gbJJgkdzTzU2yRDd1DGmoZ5QpTUXdCyKkoVFFPQiAKUFO2PPKF5ZVuK4CKlUztTvW17pt8diF3FHixQ/u00MN+ssA3O020AWTKa0fVxvm+8ChZ8yFM69jzj4sTRdXltKed2pBWk5GasdNFxKe+Tynms4IC8s3KmXIVi81MpmYv/56dWjYKEKZ25sX0cKpvAprtR4cEqXFqzvTlJswNQ/U222KNbvVtezkKQ/Qdquvj01PtGC81yiSQIg6fgMSA3WgMUvMpkVx0hFMunMVMhqLEjAyI8q/K0XxUw22jH4cYScKiOnHahWkDSgXpCsKXgjzqD3zWrzg8XpXdRN8SOVzmsl0pHghd7MgPb57Af7iHeTD3O+kF2t7hDe+jUrN3MEGwxCEDXkSpn7BECWjsSaK9HWpwxODwWKzXDJwl9MwrgjPPC4pF9nJc30ZzDMgQZrRH2gcV6+PCc0/ZGMi/KCimE/BC3Hpsw1SZI4usR4ztB+7ql9i1/5ufNUNkEr8aTGT8HsYChA4BWIjfQEidSEDNc11d2rEy0zYYG1xEusRoCPvNwYEF9UGAvfsOO+xxx9J9F7bI6ix6BffgRNWWyeHCNXynrr9z6ab+orv3nw8DySJJaX5AjlFYExoJyotoZzIBKOwuBdIqRUVUjAfJmhVQ6ndJ0x3V8YqT9QZrMMhkY7u906rPwyG9HV6afzlvMImV9zc/4uTbymIoUT4bgM22YnPOXthJ5z5CDlJwTj6xnhfJakLTcINVa4UX1/vHAdCHbJSP11p+BdAV4gfYTmKq4ItgAthzX9TgynJX1vrPUASWOvDcjQbdjGJhg+n3B60sbtx0UQE/RgBRMHfyAS9rnScR2+QuyMKMGHzC8g2872KjfV2/4QOLSAgn/ZYz2kXgdZQgFvmcL9cOfIcrOgJFkCSn3D8tB8v8CAUBsTGtS9NTXQUWs9FqtT0sO+srHtSJHuDPEXyvRLa8IsdI1HjgjaihUtmbFH7JznMxsKp0BqR+eSrSihrF9qCA6dy5Kgj3HmeRI6jqVC5wL14Jp1YkFa8l14N0PPop4vsDIq74I80ASZW02DvKaCzsLPswxVVMzLJtynge9z9O3LNn5K1Sn1mEY0waBMGnqOSP2OuptPs8Fcky6dyswtSSG4gm5wanaKsiIu4U9NE/e674RbKAAD4Kg/9xLDFY0QKb0h8ffxyl9xWcgL7INsodFS7nu7ZvffA+3wMhXAw4hwzlq5qI7ziDyfAd/6LAZRydCa6mzEVsevViEBoAXFXFWA5dcDRvuQ/y05b3BYn6f5k5JZo5TcJgIvQoiMDJlidwwcSxz09IdYWifJK1+xCCJ+6E2Em2nIUBbcbF8n4beAR+Os60GQ1Cn4fyyX7Z9EGfzgMRzrfB2z/kR+Rl1/pt21b0Z9CQ7B3ukdBxIuU4vjjPqfN3gwiPhXUD7XlJx/aEYWuZTJNrGEoUQxL3y+cULCtOBWgmz3QSNjUk51KVm3Oifio6BVAOKJiAOPz4l4UNxvNc5hieteM3VdWAUZbg9rCskMAt99p66B325XNCUmMY0pP9G0TQeig4e/BVKUbDrKbsvlDKsWm+eK0vZ3AgmRX0vb4fcxCuyOrjobXQebQYkiTa2hs8y71TqRQ6z9c8wg1DpccYyWUC9CYj9bbE1oWh5UYTiFf4WYtNtRN4YpmWasklYF/973p+lUsyJk22wNKssWEsQ5ZCgKjM5Ftu3SQoUEPzax6GyYPqmbSDDWqsMP+//eY86a3fSdKuomxpeytf9KN4th+0icr6o3EX+h/YjLdy9Xr3bc3xnsEDy4Qwegi8lmiKq4hISC+mO2SEs2LJlDhsocyzUNDSDQY06uNMsHWM2x9kjvYhQVSYrGvcnZHBXSoVoSwr3rSlIvY4x/qX8Y3KJRbM92IhdVqYHqFdQAv+t9gWk5lhLHBsrVXYGqcMAZs26LhLnM03RhaQtV4v2n53pZtUpJxda9OCyq1FEl5hWoIg+zjXZMwqDAOy11ZCnHU7RFOZIQZS4KStWcoeubNmmwl9y6M+Qz7dRCDSWhuFuS3s1cqQf8R96vuK/zJ4DcapRyGQPgWG0xT+KDRKcwwFtbb39R8FMCYPOfljzgyrJwmp0V7KOOjQDqDYv3Eha1PYnzP+5d9K6koLPTC6BXhDU4TRYt5aXz42y9NjPAJAqGXHpkKL2ZxNDkqVTBIvHA4iT6BhvFW7BY2lVcAZ+ZGNdRYDAW8Y9OrPQnB0ltwcj+EOhyJbQF7opVTjiDDXbNOBtMYDxvAPDRZ7fHkSoAc39EBtorof9E4v6Rrv9KLk5nouHlgU4C1Md98nFJXB7+49Jj6EbN6tDZRkyGnK7hXNhi0VvwpUIXJHwRxObjuTxVKcXqmfoP8Bw1xoOkOP9wm/pMwsQK7zyL5hG4w+4QnrkDcpv/ykkFGy8aynnEJTZeuqR2xboUzk6PkST2tr0L9HQT6kMLlZrwT8XLEddrJIl7V+B9Jzao0DLPvvEOu7bz0BX1GOMlva2PCEw50PWDUn0674Dd13exxJAeX0uLGyo+SpbFRDzqTutz5tZUIb/mw8VmbDaTrOtdtD4RB4/xfgOPJYe3yHyxsyshcX1+r9wMviZ2QT4vn/vUoi8NYm6rZB0SZAL//q29t2MC3TrD6aJUGDMLiaKqZgehatIEVp4GzHK+FV90gyzyW8dGnvZW/7iOgK12Hx0DZ0gkWVPtj0ISsWPHIcWZH1iMS/hnxOczysgMQQre0k7v7sx8wet/R1jYAuMCROROiMj1PqXdtfS7tYPQSu6u+277ZioK5ucs4h6zWjDJ0TrLUCBFYKDbC0l2lXV2aMDv/fwHe0XL4a2OtXCd5Gcy25j+X/qzHbkhOjUyg2MKzdS8nlp872SKagrMM4kmMo4uXMu9YLUj4oZ8Kjt/2yw0SXZ06a5nHURpp5aoyOjBxocP6+DhnwkIp8ymK/n2g4xHRqQkpTL+6DjfMcmpMeKsvJURbGdZrzhcy5GJzpmPtBiAX09FvfPMf0mWZNUvGUvuT9RMrR4u2TdUMiu9XidyeagIH1vb4AUSGjJFj8nfIJBDltsHhHuGITmJhHZMzRFOE0rQpJ8C2m1oHNc6XDjMbJt3rLm+7/6pAjuMY6SdMu1CeRv17JhzczyNbZPb5qOmMBLc3Pa21dNLHR3VP5shFvNTGH+VNsiQqaPtWnlCqQwo/3gzx1/2JeROLF1yMAXc40MjWwtuWbsTTLPmlAW5IeJjBJkTlAaIKm58BTmFZocD1cSgtskx9HJtBpTXLB2TR9qfczyo+jZruZHrz5wy/oZGE+GHOoDPAF3jub711vJkW+a5V6Bb0xmyVwxcsoQyxl8ql/QWJeBa8YbGM2L4nGo5P2hx+d3YSqlvA9XqVkamOWcPh415lwCLn8xgkaZMi4o3rQB8SPyGGocT8ItnxuEuJ+AoqSzb3iLe/zrNrqEq1YXHd0xRVUEYCmRwk8gCvxDGhHsvyXTQeFblVh4hFkavMlOGMQsD4R6bAv4i3W3ieegKMGOUbEVbu+S2e3VnYgNsY79UHJGn8AkD2VxjSk2l8J5uWL0oIzoJ+dH16UKzjZrukK/zzkjoiIhFiRwOuQEVliRqbyV0LuNpaqlZ1QptRG68jkK4xePSjgZSFNcFRG8p1Fsp2QClRECytYjf2eaaCfJZCW0BGm9NJxDXpqxYNPwkSwRCf4T0oa+2Gx799w3bVo0qpvXRZyvhFg4SwmIOFXwdy99IfkdIu0XPSV5HwfXSLQ1+SvRQhOuT4ReJfJw+K58xkSjR8itbqMDNoo8Mdk9V1xEUgrnDzuRanqBNKJbeaAuNB9cTvWjLF17CZcN+1kdN+tScsF/L2PymptyHy50ThqCKroNirlAhGI3mYH8mnFkua2OzMoOXAVAQY2/qHn8P6oAiVDejbczHsdCSu0znv39SHGKCW8S1z5/yhkW+KkOQKRWCEVm/g//uX9pMRuEwZMjsh9SsD3jVb3/JxxarXiouyh/HNH6F2BnOE0e5QYuJFJ1iJrOOwDFKJTWfAIodOqvS/U4IzShwQF1EWXxSNBZ+KlCHouA29Rd3kY0loi74GMBwEJ4pv0CaFkvHxFgnsH1L4Yp++F9g4i40plfGbLsrFWvKpmvuLv9um7QbxbQZL0f9fb/zHIcJlO2RDAtvOr9NQJSRb63xbhHsV06a65GqmTYgtLhKjWBQrbGjK4VbAXbVrw2eDNZjDvkBzq9PvATWf3Sfr53fVK9ZYZt58ixXquPxzIKWrbe2Qm4nWzsjp/ETeRG4yO1vYch5wRAZ1+UBlvUEaayKEl6Pr6mScaRMxQP/BrWZlhZgy0kyTudkA5bxGlGQMPm+wY6+tiZQIKfsxxPOrttyYl/ohxQbe3uQkTeCreBucToEJEsmkfo3pQuvaLCQAtUIGPu4UOd80ZzM5/a5RT3cgY82CYwDP0GhSuQxDYd6mIYZANMlolLBTXmskEG7bIvtNUBGmiWe/llld+Y5HpI21MumPBgKli1Cp4iO8aUWn5PVv7V/Q0cJTo1HXBmexrawmkbaEGnrDJdF2cIsyeJtd6r4P69SsxSlXQcHgEbaMNQfJjiMSAz2T/Z6/AyYqLiQxXxcUNUu61yttj6L7abUbLrLtPhwsH1ly8REQcR2SCcNFW1ZcI1LLOr71ftMIBmfSQQRJfiFXOB8/TT0SNySmJPJbq6OgytcSvCOoAcDmImdSnblyE5Mm5fLE6EAEESR6Jw4X6ZSft60OBY3CO/5ZOEgfkqecH9suuvig18tcFV7YrZtdkTE0aE8Fa5gLnhMogZQzHIeRUOCoT7ZfomR1swYvs1K6Xrayvdly1KVMIzQ4/GUU3W2YSKwvwuYg3Ze1OnlUQ88Ly7FAr9nPkc4PRHRx4u3fzKdNFagO/ZpqAcrsR+iA/A3L9Y7DX8MonCNFjskcluY433z32vGrhd98JFCoRGuPnv137DO4D8p/TKLA88HG1SIxBKkIO5LVLwTsGvSMlJ3lTnywVnGL8tVvR7GlJc4wV1xBNAU+XxjykHKFExuTpxntFqqjqT2b1wlar5suRzLsYJfI9IWHP5fHM9bF916R0Yzf+N6BLYjJQdJPn072pLj2Vnj8rJsDVy05VfehujbvtPUN6XFCIiq6nyGW0HW0qse0CbQ019s94VdHzqigDKkSmMwM4zCXTwsYke9ddWfk7gcx36CHhXHUNj/yuPlXjxtylG4gmgaYydZ6OpyCCktRCO/INYzjO7NehLfSVAxr/m+xywNBxrDevZzD3sY1uzH3f0qgkPgrHVhb34D8mCtK3wQU9U+xhNc3Cw3HJUJIC1/29DzOBQk3/9XD6o5Igr5j5yI5imHylqQWG/uvtf2jeW/DpBqnB3wft9oyD5Htlk7hrvyMg+KiOqx0cxqhKd62qlCJw5xLlgFJcMhGyOlckRGrx4yJig4utcIEAbd+eXA+xklrkRHgzB8fUI41xD6GT3ftO4XxzNjW5T5OZVc/kU+kTMEQhBzEgg5LzFT+yoJVKp3rjlJrRMfVbAoDzEwJavZkcLvAJ8qxyRnC2rl/l5mjXz4pnKtpe8PCi44b6YB9a+xgmtU50yLjRiE/gh5nmCmLhG+ImUhUuy/9QcT/xTMpTlCTe+TICifmBcaA8rPlYzYXAeVhpczWD0DI0GZWOVDyDX/4tL9KFDvgdQ8j70kmE2LwyD5uvDIyKCB7EtQi2Akpg2eMN/BfbLdvpytU0MVuIrXzh7+lpJ9vj0gl8dYV7DzdKb0DslvRk3jwG4WLyhJHgrVkfYNDHhJ5Yr5soBN9rIXM7ukkAD8q0MirLsCZbwPGpakR2tn0bY9+CqJe4bC24DHeDN/TCB/JLj5h2CK+EbOlNErz65H0zyXtXSR/Xf5K91z8cKDdbbMquj5ttCPtKaRmMFk3Yn0B3moye4CAWmfLOgN2SkMe/AOoAP82uRcRozVkUyQ/RIZ7X5HeCuEGNzMbUYzXXXqZs2XdFro0dmHd5nzu5bqQFymfmCtR2eInajt1Y791ckSXNEX/+nNlUZJXLheUDBNo1PbKWd+0ETxBQJyKgyEresJ1BtEbgsWyFTHeAhdzg+9nmjTnwHUntMaMNkD2foODJ4bhGHhIKhwb+OQ6jCBcZWMnrqxP9GtrdIOGUtulBbubyKvmzD+rt4ZoDvzSONUjBlbf7JRgQKEqQ1N47raShhbS0dzf5OnMua+u1xYajkKau3PxhuZ/BGAF7SPZ/73vINPxdGySWJQF0aNY0r2tgLz3LJevuzTe3CizbCcp3+Xvje47bM4mQMhZy4qzboJrGBVheN2N34kcHiJXHu2nqsPWi+R3xhd6sJ3ikfK1POKkn518cqSaGzZQ6t3uR6GPg39q7RoVb3aRfI8uGt795p4FEY4463XOdFsgKPlErBIGaTqNrsuk8tUXXds4XT7Ueb0k+OvNxJ7Sz9adUnwgRTxkIOFK61fFCngGbE5cx20YtAcEepsQzg1jOOYiBRg0/AjXDbZuICkzjV2zsxyur5uu00i6DGa52F30pGmoXErQjAhMXqanpLqujRsbKbdeq7BDoWKMe0YSYgbM5ater6lKEUBPYc3jbf+qMX14ZuoVWipTSVwcz0dUY6udODqaq8KbP9QQbNqu6Em4SgsF4fbIowCGYQuJ44Uh7dXpBCu4GKTpb2sKzvhGcW8c/Qie/vATO92IlK6D4QOxkBzDd8nrTyBOncSCAqKzpABR1Kpo22zNZD2ZeVRHxl8HO2ZHco7G8zJdi+hwwF8R+nzifHE3NYcBCXAoQ5a4NII+K3qpL1RDN524V/WgEZW8WrBeuCvZss9wKHdsALbB430WdrEZxMSaloQz8ayTtA/fSMfJZVIMgg5tVJxFNQZQre98UqhiRu4pGJgBwIJbzhCptyitjRz5Drz7y6oAYuSlLB4PlCPVUqR3/kO27V5Zog+7XkTvsZ5XWAhisktFK/u0i9Rk8Jw9gf3rGNP7oTx7tae5V/+uOmjR2sKljlFKalxdKxKjDvS5xQHHix+/5UOZ66f7a9TfSbpwg+WVEF6dyqnaSZ8l9dREdfcaN/mM+u1Z4RqFBrtpqLGUEJau4mtWvfxPA0PnbxwKvokyPwceYsnXZYLwfEtB9TPQWa6IIPSyeTtg33kRPWrSVE6OIRqhLrkzzzzbChHACliasL33WsJ34/IjRtMZ7tg56ktvi6Yq09dw9lyq/Rdwc9fPZrSIA6tZWTluCiNTXLU9Fkpx+eopokCHA/PnR3MOLhndA+FEBYzznsk6mtKI0ZgYqKpqewyA0cWt3vge9VW+1qToFODRNvEtPB4v3nHv9euoaQ3Vl2eYRHEy5Q5o6MetbWfipE1Raaxs2VnqdoWmq3pNkNzZCI3rrxwSdq4CLcTo1oXThlgQI22KpSo8wGpo3EmYSTBWgmw/xT2dAVqpFvSx9NBDD+fEl9rk5hoiiN9frqegcDnj8ii6cd753X/m8SJL0sc6XnB9EqbR8HiA+YYtN9UnfI0Z4wyB7u9kIWKp0n9KXtSWpXSEqqUt1jo9J4ZcXOtIdV898UzzfTxHoWg7sBYYFrR3TnAojf8jBT88CKNMgrktsROaPGjm7soaL9vy/2ZSVOzYQc5rGuYjo1lMC1KplXudoM1/gfa7wJvRkILrt+wDM8b06I/x71fGd/lI0+pyCfLY9lM1Yduhl+PGkVMXGxEkrb8Yykl+DsK2E+6d5DeXmtRQR80q+pD6fztS50VGk2EWK2chKuSo3Dyb9nA+fp632uqShnhDBq9bw1UH2k6fOcNc8hRFS56iajwQkqz+YmfEoHU4SfziL1nEAC7c3bqaMB9QLnzXo5arx5aKcsYyDK4gVdYifxiMhPqVzYhxwWp4SB5tNO80R61XNF3EVmEzzZe1LV12NngZSlzm3xvQ6eQfzj4Umj/MQCHsSsPq6j1cDv384MOyWU+kNr/aV+ILwHC/SJs7QX/euPG8yKmce1Z2GpFPyKcLU0Lv866ivBmEmoioOOf+JZlhP0rFum+VQS9fvQrP1ydCR++JdRyFztA3IU1STJU5KauHgvTuM0uqCOo/xWy2E+EaYId0UVW3AiPHonA8GnnWE/TLQWxqeVCCMYjwh/2i83CXXUyUVL+4gE+umSa2u2H9JJL7RHOQyoe4jc9zZc/oMbyoqy6mVeg13KqcsVNoufPthMC9f1sGFQXbCKtlxXMjDRhx1vy7wGCw+L68sQJIsNSKNdvvxBHKlo5HpH4YX+KLutRcW/0gy8jNXdWhc4bex8B1tAzIQGTMmLZyY5wdKqpbYDA7ddQUSGDEYVUiPtvdtv7kzPOJc/8TIPw58U/1yf6acFPt4d+cwQVfrqY/MJOhzKlhovDh5S7UTixMNsONKNDXcRrg9IHfnl/fsImWu4Bkc+p7yDIU4mrl1BxBuXWUriEGjrLBc7a4M3yOkni6lCJf5Pfa83Z7ht9Z6xHX9VO5U7EJgHUSbz15AYcW12VBL2OqdLfIXEpNlp6KqRDta6pW2eYY+bm4W0ouAwyDKzC257JHL8ROx96QvtA4zsWW8tfooNtJsFYXn3PaRClI4NUCFPJWuMwD4K9pr1EoMMXstohp4pm6GjEIyjRlRgzLG7NTYHtonu//m0EEKQz6BTrchlKdKkHz1OOFM8KR5OV9TRmJ7vJMWW4+N9jsYiR0e8wFn8LIPQVPDo3tYEqAao3ObIqJFisygPzeLdwPtyNqtNRNhkMu9V3FuUtwTObcRhBZRnvamTqjMr9XFwY3AtXIGgU2XkeMJSe/7A7UrhgRds419rqDmJ3yafQ7P/axW8cVOlqLe76Y6lA9IpaCImE3zXH2CYgOQX/xahgUHK83h0xZCXOY5xyFBPK27uEtbMar2dxDl/roxUIwhBqpmexGZSxxEvtn6wUueTG2mCeTPhT2pUeLozuXoEaqaQBoQY5Ynv8o3AsQScesr/FXM9Xsi51/EfDH8smYdSk1jixLw7n/PPl4EfrFzy9rumcejxq0Sx57TD6Q+K4n0TNFcij/mvaSATWS4IoJBa9/Ts/7qIYrGls3slHMnUOwSCoCrLtgYqDbXFAyggjz6SAHcbgS/WgD1APPEDaInBZTJ2UPD3W1KhRBNe1m2KZF4tciwMFMQF5X1Bej3J26CGtJ9eBikw1UgGb3Cijak9Ao5xGX0VaQAAUVR2MtF26r6KRf00Q6WpJVPoaVryZde52sEzC6RPwTmxfLghQf75MxGagKW7KQAqrUhSfXg8h0FJeUIVKjDagThjzEm9CsZEhxdypEMv524ZwKBamnJpfUs0klsQC2PgL24hvdDdCeXJx8ZX0pRyEyBGiXGKn2wLIiVEMXfgxuVpVQG3L39xyeTzn6iFXNL6Oh8/gEpGj1MTStGnrJnShx7k/VArO0mo/mjazY3dkaCI9lQNgPNFDWKXkB2ledeQpcj14vyxCQiTI6aSYkjjFQFeVK93qRRwbn8nul3jOVN+0XLWGCQZRAoXRUSaaEY1HfV3n6wcSddwc9pOzzSH1mYIymPRe0k6Ebgw3+MXmEZMexOAtaXpCs7Igy6RMr0UARjGRiM8U2sLFKT9qmPAD7pHIhRMt4d6NIJ2MjBCbqLsrZ0r+yvmsvo5qgq52/eFgCsYaLgT3cvE5rKyeZSL6ud1uNR/9doi0AFgWxBhlXpaZJyi4YKSlkEyWeBdZgWkZs6RQaOof/RoZw2RLQenoXI0SSPYIpfXCWgqB8Y1APhNc6S7f5PPjI9boKG//Ee6sihcF1lkTsJS6S6KL9twOMqsBe9+8N6i1c+2VxI83CniWYBt0wX/pm+ia4EJtGYritBMV5BYK/2lMTM6ZPTdUBcarHPfOMJ0ecY4KHAavzWuPqUGhDorXByXhxLilzkP3iMgxqxVe/lUrzbLnmBI6F9diD9yBM/HTfcnSmk6nO9Nd9Ksw0vhaUX21ChuBCNYPnK/u0PPFkYsYQSIIS4rgVoxJzEAOfs/mSp5DICi+NIXgaH18YY+kk8bKPERF2KUvzwML/wyUTgFtLCHWJRIJJh5c3RtOWg2CxZAyhiu4oFdC/3bCG2uEkaM+KYnwZ7y7UtAlhBH7iMqVnPamU99XlxYirzbuBFd1elrL6GI3FAjWXyR54PKp34s1h4RLd6h5pdtzZJedrJpzFRK6oh1cvauq9l1BM2mCCNklGZ0vf6gEmRxmGXGd88eWDwAbBq+4JI6ZEjV7V+4HkwVNzo26m3Ysv27YmxlknO/1BlOubKt8/DDMxCI0z9Hm6fPmy+XBRI3YLzs4BX5nHAAMq+zoB8Tht1gfxXqwyunwspbp55G3WFI4m6l7+XxP5hNRxehmxeRc144bybO1v7hGvhVdCW32XrfJNbk2Q36mwsGjL95/W5PrcMKbBf+bN5No9o7eNUXirFyliKH1lYEQm0fC+dW3bbSFQlgl+fA/QBr3iUfF8WbwlS41OvJrUVYbrAYQcw3pl8O04nE2fHe5lsyLr7TK/oqDg1TLzWtvbZ5Cwk+R0rQMOIY1DnrRkQHF8XPCwSNH0weJh0Dp9eDGl1swaE1SfAcfhBe6j1HbItHVky271kVDAIpzqlQUAoDa6zW0vl3v1v3DdIubHmGil6h8/MkSPKD4h+G+hSENudPU1HQUinp97cFBE09iM7yXN7SQsA7xMKNhNFzT44ok08xD7z940m02OGCnTB1ST+j4mLlNopaM9Py6zU7Jn2H1ygXpk2kw6qV7LBp8xqof2VIHHF6JeG0m/aVv6b0NdO9ieWDsPCfXwn4ZJxnonBnUVMzF7gjhZcHqlK2k4TRJH1boXejywX96DN320QVzlFu1oR9KWwK9F7GKurJQyXiGZJ+iUYggqMXJTeO4mnim/CgXr4p76B1ufyzs5j2toNYt+67WbqBf5AdVGuy2y8Eldq9jHAic66Qqd6QZU79QrMSjrtRQeQTSpfKc8d2eUsO7EzaMVAtHqzYbxG7YVMcZNH8IxCBPR/0LqMJXZdv1Qktge1eSTmo1F7LIMaJI2DKHcsGPndHRKSZN9XkoZev18FIowuK+S1VSBLJyyIMb49qtGLU1KvmjAX3ykHxS4xw5t3yGAl2f4BG7ZUckhgG6ok+avtJjvwmRMPCo0wJ5Qz+27W2f6jnpvCTaotIUzY/ygtqPv/ewFrHeNVA5bVM07uBnlZop+nfbt+Xb9J6kTc5lIReOIa6Okhf3pB5o3wwj8kpFuxRNc/9n3tXbNtOPgJTnACYdp4wx7Xe6ckGJlG5TTjjyie9Msc9L6HNs/CiBp7/kcvZzQoJH0cf8QHIrMnZckT67TZUHyqnem4seQqFtXXVZbiuEpGMFFYmw3kTDLUQyRjKtxkk4c88E76OvLAGIINkjPAdwy7JKuVx1x14j62LMN2KV1kSsSeszNuD/pdC0AyfdWKCbgSqKgeAC+o09h+u9DPxqwwM0PR+ppduij4FTHa0IdOGz9q/jhbbAuzu8wvoRI9B7nC3iATsyfNN6tA0EQrW8R7Ng6OR0LNHXpmgF+PFAhyA7q1kJFTjdQenj4xhJdg8lsP6O1Yir2QvnSn/5G/OoifGJJNCyNId/BrL06Pzc/PEDZbn0Q8W4M7l8KjJPeA9bpQdr4T97WrYRkt0snsY2oF5HadcruxVkQuc3ru1Ct09cl81KCf0whvgkLb7YhH5MnJq5NrQdVakL9I1Yn4kpd+n67GAu5MVHLVKzRdVCmlUs3jLEcZ6KTSWaQsFvn2SN6pPG0vuvAvqJ4dsSlfXFRwymdv5UlcK29ymchd0l1QmS/vhwJjOacGE3VBEF3LBQ/HpbcrWeBiM6S+jcjvKUFDifI6+mpK9ZrLe43RNX8ZePcNysbCWu6Hy6nPMWNQODURPMUHD1WnfxDvSY8QDB4lbtqavuwVV2J6wkMdM1VpJ1jC3WWHdpaCNvG7vej7Wj3pugUSSXP194TFE6C4+CviFHE3AVAqMZuGskoH9jAsWxSaeYLfshGb2xphSYFfaXCBX9UKCbZTbA+uNNwzfdErXi7dqKgDtepV1UG7CMVGLcFdPQ6LSVPp6JPT8aciqI4fjYI8zK9o6MmGd8zniy+Su3K8lmvfdGNOlu8Yz0QCqPzsKsigFSOfOE8Qqre1shJzD9uwsRJhpyYFP4KRIgcDbEycGWUv6Z5PHw3FW6RzrVeyZm+IrxIf9T2i9M9ZaSINsbCFPrulZRTUoKnMVJlQxsaK+ax4FV1VslKsNpj+BhKqc2CkGCFT7KTC4o/MeZbjP0shoShfCcOS5C6bz3vPG4BA9LSa8cvQh5NJP9zlw09bPxonx90GV3a6vjmkJu4S7ITOcSrRQGCR+GUwuCPQUqDNb62ZbGmXWxLDHAujU/t9Nd/gvtQ7tsbxtSQQUUAsQPBuNM5KoF0lKVCn+Wevr/MmL54DOOxxyFI4NqogoWoma36p1O0it3v1wADrVJVprsNQRbxVUH4iWNl300ZSvoQECWxCBaDjlb2FoW0g1zEZSSkBQWrngMS+N3OYha3ZlRgxWpYcCIZMl20Q8rpoPH1YVH/hMari3iTUD9GU36l8Jv9Kp3a2K9AOzIpgbA7RSqHt/HO+1eN1LTT9VbmfNDoaAHa5JifcVZ/XU/lEdpVlkPvBp6K33I4gqzS4po9E3ixZvAPFCo2DM3qMdmuaAiCt/B26OZ3U9eGBoiYCR6HuiRQW1yiitCrACCUz5Hz9SBEJEY5dogTPj8j2a/VzD/9n3of02FCqHTEEwmKQGjVQhs2H3W+ppx7g0KIAeLyzyO4FsQpjc/jQGFPkzSqQZXG/dDvYiZjCz+yHBHHDWgIaqsTD20qCTDp8VkVvpQtJWze3x+F1XnNbsbzSsTyRIXlpjSjW2J48LohFJZn08+fc12AMbH8DvI+JHb8X6y5KXVQLBWVD1nNP1ms/bpLKNhYXzlY+INmEnQxVx/wqVLqJQjtZuDBZBHSBcyJ3Yr8d4Ukab9kzsWJvwy/nJLxt21zv0z83jluaFovuzt/sFdVnBNjY1R9ezQQ7TEYdYssyhNvURNytnT1TshCjVVil36A7vo3mZwVeeSg85gBgm0sNn4xp+VkoKT6Ha7HQIe896P5B9mJs2blTTJoqAwjHy6P3mn+GSfClpu0cxfoaS80m03NpD5Pggs2RIGqwImksoPnBchqdjmSHbPUqfRgNcDr2auc5e13vk+PVUaQAOur01lSCmdU+sF15May5ItxYaPGEGP1rzFx9OnPlvb2wHmwf5jH+3YxCwFnAxpnOC0j1LxPEV+9FxVvD+ZoIqcgd0GNy/RcspmcHpzXAZx1hHuh7mQc/o1eBtzYVYRxz/ZSFKtxZgas8P43GhYcTu713QT36H9T82LW+46tcubnyLrw6tmQXi2Igc5JqPyaBn3XjeAh3xd+P/ld1qixksYNnL61qI6PnXfwO26zmPIBKh3LmAjhkB9yzR3aDbFgWikU7Ywd7aO6ez0w/vRnVe4GWkpyiOZ+sH7V40LbN26AEfGPVg8rGI5OQK7vECNvayPmyj2rI5QateKRnVzFeTWqp/B/N0VB5MT06NzKdaXk9V2DKd6AAJ94lVP4VtcvGxTi1yiBtbtl1e5WBzYO2lvy1iubl5grd04S9c8CRwGUoXR5jryXzheIOW/EYBMDB2O1y9/TGju7BP1XMLXhWuvXPtDwGsahKkHC5bIU+7nI8no/ww+msHMP3DK56XlCYFqwJN1Ws8qvbSyF27r3InCRJy4HN2xP+1cFiD5luLzSE5DIAUb/mv30lHfA2blpiwfNDColwCgxScm4CPQeLuoQeYYrAKzQVxyluAboMdA/DzJGfgadFIFxldB+QaMfi6KlRswPSXjzuTlSiP0UtlcVOKBIDT8ORoksg5FWTNzG8ddoCF2Us3snYkwsj7OllRd3JK+PZqCDAstNH3TY5+oWMY2HrnEB4tQhfflx1uFppcunpBakOY/JjN285A9HamAr4IXTh1zO/Tys6/EHtD/lgo0RG+M2l8yayavA3hEB/dGbY3wu1wt8D+L3VfOn+8y/7gBrn3zgpbuLnqSDsN44tDhRycgc78crzHLal0dtbWDoIpMh2wre2u8JmsdQeQaB1fCi02/gKzGBpaFhhlq78OwdEWskLc47RHFsg/btWQTWxDj5iY3DxStaoVZSPfvvfZYVEl1mEdQfxzwm0n4wCkI0OvbaBwFokXQpS8P3QeCau5FJ4LPWIuFgFtqacP5FQjQSdkuDwkrHNWWuAgyHK78SswFHddfGtuo+eE/Q22sJUJzx4IRYe7+fgz6vUg9xrP3Gdirmq2wus3C+QTM6x7OJr0fEifQGK05oGGdaM+ezqkPybQdAIPJMIR3AokJspwSZd2s1gXQX8IMvTZ1DLHE+tWgmueeXxxRtQuyVjzkCFCgB1Dv7e+URKCojSjL93STu5Kssf5JIg3Psqmev23cTv8bsZpT26YdHE83dkvXG4j992Oyc3EyPnU38PNH8a5tf6BJwKh2VclegBQd2IXBqsBWeXf350Qv9syn9JJVrfn0zKo7aaSFkXGHhgGZufvy692kRBkS1dqVKX9fLphy/VkHBLb1meRBLe6+LjNiaadB1GjslSy6dorobuCpPp7lzPy8D1BP/+m6ji8sqhKGVCpH5bMJHRPYbYsS3Lo6kSitLaFCYfWUQMcnDo9NiAxR1vqY3BJg8jv0ur40pzrjK2DA/a7in/DeF1Na6iJ3w9qIa/4xIsosBNl75+C4cxen8Bzc49hTUPjqRsxT7IO9Vzyckp0olj0FQ/5X1K3cF4C6uB7VPKspMeSYd5Dlt6uYCiui4ZMaLhOhr3AmhU/m7qQgAcs+/RQsr0CjkVNXnPdSFXqxKjgtyNzA/wK32cxr46MO/kgk8nz3RnKYM1e5GLjm/UwVaabCvjVr8NyCVIhgci1EQ14UpnUgsgEZ3fOMoHV08MPUNgAYUeguatDke0VHEP0rKlEErSCZMdQWkg9YsiJJH9O3L1/HhazmF8iSn5aABwFUJZJncXr3/2Ed/5PHfoiZY3G5rmKFzhxW3vccHjvCiidEnOBUlPybCOIhTzgNdcELhDLfbDVgx/T/KaApfZesuwVIGdwM9SDkxqR+/VYX+eEtgCjua/xfUwzK68Me7s4hLAC3osS9Lf0y4QDReoNGynh+ce3w91eEdOaGDc8qIlKNtji1OGvNLjy/+006QfqRnp+w6HYxU48BKQn1tcWjTKRcx9P3ocR5bnsUrX7TEBFChbQEBkvW/15SCpS9TwBEgMcpBwh62r6vtp3CWNk3OkUh8Je76//nHj5tYkdvDyGqgrwW2irL69ox1SRGw4rPs7r1wlUlIDfjxCGqtWKHk68KK6GxHObYHenxf14/1ZthLrEB4OAx4160ZwgunHT881fM2U0IURDdhm0sYZx0MAv+tVtfWnF4XEVVqOoJI3Z+81sYSYe1u4RJZZGPFgN6eqKtHmNjC3XRJGRF7dJZiDMmbFD3MLqK3sN+MGn/cGK9GIx8/8n2xgrWYCrynaagPyNsi3K3I3tPI5+1fDq6c5JgPidJdCIpPz31iEYCLh/v7PtvAlD3fs+F6Mc7O7Zrk7zEejHtdHTS7XTil2pq4+p0WksVqHy8JwH7LRbq0gb82+m9uJzC2bkPpTYph8VKsYNn7Po2t5ETMSt/JURHoxhfNfRBX7Wghfx5Qh8ErcHDnal/SSjUwcJaf5SSv1lkXZK9+u16/EpXN4rrP5s0Mr0yi0Z59znljUOQDlLmgWYTX5sjSyGsxzagZdEsadekxsFna9zTks9xPsqNLZ8m+AoVo9lyzMk2z7QLLxteRGckfV4Y3539ohUhHbRNx72q1msLxwL3xJBayJbgkSYSV29g66D2QEuOgbYxIk7l+yf+oWFbeyq0A+TICgL5CRcaLz3puXl3w2JwolfLNDxCahEEFfsn7rnX3lwyXJvMoiP/F/KvxLp1p880jmvHnAReUmPwHtku6I0Kha97+OIDnniIXs8b0+Ryt7/nvfeAKpFJV1x08Rta17dzHSqYSOtn3okxp1eyzOacXbWsAD65FDddGbVr8oUArwrdV4X2I1VGBFbwjf+FtSbuiIQF8Kx9Gdm58wX3ogPEcYA8UC1F12HkSrBiuimwr5g4/yFKrWaMvNggRM//04ZcTrWVmWAvHpuctHjcFchHiiCXfD2tobkYPGrsVInpjGeKGrPOZAmwafXoVPcijOD/Yvx4cgpKarbf0OKf8Kd5SYxBJn6CF8EWKJVusgWeVXjbCclqp999Dd21XfXHI7t49hds45bGQx+Goa7GeZtvf6MYrbTnwRZUtuwn7alst8HuBZo/oyCyFxYTSYLbrtu3Us4rTdDBFZaJOZ4xNp3KyFO6YWBOtr8flQ+a4MpnKzi1O0cI9TBWNMducIdVEjSTWEn79fUfgHplmZT+FFl7l7b2W6C+pDOWUZK0HjTVdbVPwEe2OV+rS1F0NGaUaUvGltfm1cKr35/UQrlyUwSe2Dl0Y3spxCjj9LNQ16PWC9y1rNDu06KHq+IFDuebzYFWP8NfWRbqT8Z/zXWZazh+kUcitPMTfGNP76elwEZ8fW0V1rVHL7M/tFhuAW2LzXYeC0eR9zcss82XsRUB5XIHF8nm89SbL0QUc36rsyX/6n+GjteS9eOPyqXNWeY7obEZ76kzAOw0rmWConEwenNhg3c4z+UmkIzA9LAL54tL4O0tgYVTSeULYxAeRxrPw9DAf24aI8HAajPWUsHYPyn02ZTG7YFERpQsBDt1Bq7MVLHv4nS7/2GYuwhXII9wBdReez9XvHACfViuNc+zxcWpuKSlFYrx/ASgx2Qz/T5Wj4TIKOIxLkiTG825fsla7uCrMHGKIVk1KXOaxZqB0HV1R9Dfp1PwkV24jqEYiXomF5+G8sPWs2RfTbl1HZ1P2CFSZTqUiAObyEEJE92/ZYRP2a8zN+N+FVak0JgKeJEd4Y0HoTJTD04YMl99tYBqQVAPv8f8LhykBJ9X+3s90WgahsZUhzto398U+UTWIrBrFcWwvbDek0FvQarAKy4rZK8gJTFoD+B9PSyV5VzU0jx+zR/brITnUttsrXdZdcxgTBLm40eGvIQ2I4kCnAYRMjANfHDOMau0ArhurPw6vkhOvpWZ3sWWWlgtwILuhOupZ6x/1PCc/jzuBfVAAG+wMGI+G0IIYE5gAApsA9LTGCaQE1a9qJABb2BSbAjSFpwOVOdtaFYWTfrvOftVA6bi8tXzwRCzWotO1hp07nfYHJDbL/vea2oAABKsSM4USNOBv51AyZ/ekA+90a0SB9IDiK+h85L/bYOOHP0/AAn3/XTb4AEdlFUkmr3yvEodH0Uad2DyunWAA4JxI8V8j5iiC5Ksci759QoAcPfihUY3AKYCFpEwU91XgCqC1Ou/Nnr6ylCvb+GJ7fVuxWiXDwMSCSUi67N2m2Y0QB9x9efBwZKaeXrJF/mam3Gf5zAHmpPRAd/AAXDQAyDXpQKwDfKPpG5Z7JSTfCVk+6xPddVa9L+fhwF8mKHeC1mSx63+V0AaJ8n6vTYTIf3+PQFIBX+8GJ5pEtb2pWHI1QwBoBl7v/7Mb1MMlQK9MAF5Yhup4kAFzAz9ucTcetnoH0hOMjeSJeWKYVyAzHAGmMkIpScA1TiuHeFgsExWORKNQQwaIkCFTbBUK93RpCLryAqo0+YEa/1cBMh02wJyWiCuUhZ/PQbATx3151Q1A9A5ogLU0WFMXnQ1/iY+urLLmeAKBcTjE775Jpfo08t76kMsxcYZB9xZ+eAXu5OQKJITvLdVpurgBZK/Ip0Yn7QmHGhlqKApHctvKzjzI8E1jokmst6ngGCTpq0yxgqn/asrXyFFgOc06rRlY2YndMNVZLbCW1u9EWQCXphV3ESxm5IXHgVt0YLmgY2gDjEFZXnz9L+hfBpcNDoi8HFv/1BucCXh1UtV2edWw44kJV6kndEIGrjXHauYo2Fj/wgTSwRayoyiDa95eTHOWS57zH3XeShe/F7ovgvX1wYc87gfillnucIOrcXUenrh4nctN8kGLRjo3l0IyZoOuUjVTzZP+93/kPy5Q7dvX0I1bX2dNKMINxqbPfxQVUL8RmPe4sPVqwRp5+1RD9/6Pe4k0BB/T2/F7m6qRGeBifDy2C8137iv3oipEpkQUNTHVs162bikO7Qe3ohdsmziIkv+eTV8o+Z5BV+DS1GrtVC+egxzsMH4XxNDfuzFxYE2m6m2OiEPbxDJ5LVl9Wt0XeB5trzjSciehDhiJeUAz0QjFMM+uECNnovg1C5aRkBJLJBAqFDBb746IHbG8N4mCZsOkkTwZs2uulzS8g2pY2i7NektewQGt5DDxrwPD5DJHe+WXDkUmt7lIdZi6DbQd0mxXMu5FGvSnD5gjfVwlu5owhpue2VmACM4A9QtVRMgoNI7B3gma/vsvTxuVeIl1dexlN//Z6uMv4Gr04y+q2Pl8CbjMMvIQC6qYZP8T71I3fSq2gbQ+brcD6AH7H3JdVPyLkrfWtUwlssmb327iJWbotx+yEEiuEf90TqfldmA0m5sA2f9OtK5MPCII8AuVumvN2JAdLQ/dLd7U1tvMJzvbCoYPAc84GIW6CLiHCD9cIJFRVKJV1umnIcO30KUHd3Y4gzXMTo8KUnQIaw7QSjzj7MzLrFJjLjyczQiONmyhGN5EoOLfyepMLK+4dkAO+7czh4xoqHvFbZitIqrCJlYbwBWfnHjThPVb9NqLgi4sSRVMzmq+w3i8gSnTG/3l884cBMUfe0z95B+Z1z8irQtg+8Pv30A1VOh3buFRRkCC4nEHj0tdQSlMNKfWzIDnDohMfQHVv31wGwKta3llp0cXR8cQruHJBlj1AWR3Cl3lUfZNE9yprJOqnSbRLJJN3tfR2JaZIO3aAPk0VpZX80ZD+kuuyceLcSLRxf+oi0eaDe5PLsI/eVXo7lMqvLgClV4RZT7OEP+AUHX0brE+0n+jqheeulCsSNCpjA/lnMFh2+OAdk9/gOF0NbB7zWwnhG4F2Cbv18K2Z+AQVZiBnTcBLBtOggSc0iGGQe5bTdMQmRt9dh2DXvzQf3ZDyjsblV2g6n7QdU+cwcknphhV4OrYi7Msk17kxRwx7dLL1+mjxw1umdT0ZzWb+du5eBCzwWdwT/qcgl+Cd9iTNqp7b/HyDGRjibu8GK2wKt8rOk9gi2XltnY2e3VSPXTspXlxLo60borJP/8ZkmVns9l+EMbhLX6hndMxCF59jI1ZqG1XLmtk5dutTbpXXr91MjywrEzziPnuvZGhMwPu/A5/iPmkcWSPeYRXZ8o/PwlBl1FPzw1FRyk2hjO52FYE9W2U9GY9hZzAiYDyf9HExOIMU8pAQ28/6t8fiTZaC/z2JmxUzZKaf3rU04bqBupHO25O2CqG+M06eYxkcbyPYqE6VQEhKkUsbl0B6kb7V+dOQP1rpw+L/9EjwytI3aOLMJl0yjCeQ8qAa+h4KJmUiN56ueHvKfSKacOEKUWgP0dv081Hmz2Mi0h6+cFYBnFNE9JGgsOXLQn9FTKwLms4pMBQNRiwHqL39ATZYa4ugnxvnrUDLT29F2HBvPCHou9uxTbfndCPQU0+dqNt7M7UvfzV5K2jpgcvCkP+4yywV6MBr04jKVdm4HZplZ3C/yM+a4S2dQ2HAmhM15XqueMiU4iZywyZbzYQHy3ZFI9KDLOPHIbNiUcI6r0S10FL+WktJJ41TQXEHHzXBDk1+dnJrWyoT2khG8VDftgocXpUb1cbK0T/AwZryNoFyq8aZ6jSaXs0vzRjwlMS3WI538sH+xod+hY9ts8F/zH4639/IKyvdvJNtgL6p84TARe/67RWtCbZ5MAXwwBqgkB15K0DAQB6WqhmHuHBUDjZafUEYXVFrbmSsLMoWu5YfiiL/aMzk56/4j+Si5IN/aJQSQUGEUOStffnz0rmGnkUr00ewe10czyMv7CTQAxCYBRhtpr89z+XPP5/zcN1zymUQ7kFRz21gjVqAyG2qhj7h7ByhHnAKBh3S2zcXXuFv8E5Og5Dk3eDMRm03xbjgJ0CiIt+pAcGPIBN2ix4pI/lk5EBUaLGjLg4QCzHcrY1eQHfI7O4afUnnh+6TzFoN3w0UKYFuaJ8l5WAHouAgjxHqJkTfgEChDxv9wyDCfF3gjDTHQwtQ7WNx+hDyQMbYVh81Fkle3D0TuHJFYEyo3P0gHPRcfTeT6b0T/u8Hd6Srn/rnNkK4NLm2K2urE3SbcwwhLCJwugJZfDg2xY67zzKS2etyWcZSl5qu27u64MbUa4l1wYqIAuC0qVF/sXDPFUMuXsQci462WZrnHAA/ZGlCJVor3D3lJ0p3/9N54WQHiIJfwG7qfOHVWp1s/nw3vJngu5229yjJij0iQndXKXZQwpY/QtJIy7+JaZSQguwLDdMw5q53wlgFf519X7r5l1EDMepYdVhsdFTld6Gl/xb2wVTCy0yj7XkUkZtn1D8fKgeeb17G85gOd+EoHSAhZ1ZPyVGezbb8EgTN9FY4lw/Lr9TzSCboufDXEoRoMOnEgfiWciCfkaDVNkeYlARgyhU1fkt8QWHRd2M6r2MWhFdV2NJ0Xhy54pjg3AKMzHhGS6j4lA2KhLBzWiIaQFRg0YTRVZH8m4/6nWEjb4Wj5ACthAQXh9UQjG19jSioLycqnsQI2gSDZrHs8gsgKJhchjJCeoKclccJ44mQDRRTpZgRDe8UAnn4+XKoc0IX4AnzbiZCS+/n0Y0jOB1XiUNfwohpftWfQugnR0nyT1SREP3gWI6TKMfXvLVA1jd+dJ71oSEGQSVq8GN1nxDBSvfSJLGbsCLxJHbegSZTzi5X+R2Gb5xozdvNBSHs5k1YaCcvM4yIi8bSTIL4+YNioQSwIsSnQ/VXBhE1OPAmnTT4EZDiOoo6ya9WMJNZrH2NYMMJb5Sh7DODIyGnkOffGzC1ywFct1nr5K70HXb21gM6PVaJ8avR/WQXITJc+k+25Y3yFnKPsZ4/TeBfWA3SGVDmbGaF79yCRThAm2zRvPKQbBrR8zv7aMri4aw/9s7r2CILNBn7bLzt9fLFwVic9frikmY1s9tXjN3U21Skig9bfbK6o8JJgnsTjicFwS+oYU4AVXvgPEjYKh2I91Szj9HI2i686Wdjou8L/PXoIdMWs/DtD7I8pqJhHv2oRNWl918gRcQABmkjpQmwBwqTx6B5zAZkfp/T8SU3vSdrVirimlghAVmZY15f8nI+gQfeBWvv9Sn5xkXF48qBjVWHMZuCaNtiAE78HxzOQ45GqKLFbHuUGotR9EZhy+/o7lDBREj4BNkbsE6dRwqAKa5QNR1n64fpgUtN63x7zH4Q8bTDt1SlExpuCYADWLft7KbwjJ2uANDaB03MzEFiB1AAIPBAAC+kBRlwAXiCMiwFoj4mQGK0AAAVd+QgbIAAAAAA==)\n", "\n", "Informasi yang dikumpulkan oleh algoritma LSTM kemudian akan disimpan oleh cell dan manipulasi memori dilakukan oleh komponen yang disebut dengan gate. Ada tiga jenis gate pada algoritma LSTM, di antaranya Forget gate, Input gate, dan Output gate. Sumber : [Trivusi](https://www.trivusi.web.id/2022/07/algoritma-lstm.html)\n", "\n", "Jaringan syaraf dalam kasus chatbot ini yang terdiri dari lapisan atau *layer* embedding yang merupakan salah satu hal yang paling kuat di bidang pemrosesan bahasa alami atau NLP. output atau keluaran dari lapisan (*layer*) embedding adalah input (masukan) data teks dari lapisan berulang (*recurrent*) dengan layer LSTM gate (Lapisan Gerbang **Long Shot Term Memory)**. Kemudian, output atau keluaran diratakan dan lapisan Dense digunakan dengan fungsi aktivasi **Softmax** yang dimana implementasi chatbot ini memiliki data label lebih dari dua kelas.\n", "\n", "Bagian utama dalam pemodelan chatbot ini adalah lapisan embedding yang memberikan nilai vektor yang sesuai untuk setiap kata dalam data teks yang telah dimasukkan." ] }, { "cell_type": "code", "execution_count": 43, "id": "2XBG3_reh2KY", "metadata": { "id": "2XBG3_reh2KY" }, "outputs": [], "source": [ "# Creating the model (Membuat Modeling)\n", "i = Input(shape=(input_shape,))\n", "x = Embedding(vocabulary+1,10)(i) # Layer Embedding\n", "x = LSTM(10, return_sequences=True)(x) # Layer Long Short Term Memory\n", "x = Flatten()(x) # Layer Flatten\n", "x = Dense(output_length, activation=\"softmax\")(x) # Layer Dense\n", "model = Model(i,x)\n", "\n", "# Compiling the model (Kompilasi Model)\n", "model.compile(loss=\"sparse_categorical_crossentropy\", optimizer='adam', metrics=['accuracy'])" ] }, { "cell_type": "code", "execution_count": 44, "id": "SO1blkS7ZzuH", "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 533 }, "id": "SO1blkS7ZzuH", "outputId": "4abb8624-1d6b-4cfa-f2fb-047153b1d904" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "You must install pydot (`pip install pydot`) and install graphviz (see instructions at https://graphviz.gitlab.io/download/) for plot_model to work.\n" ] } ], "source": [ "# Visualization Plot Architecture Model (Visualisasi Plot Arsitektur Model)\n", "plot_model(model, to_file='model_plot.png', show_shapes=True, show_layer_names=True)" ] }, { "cell_type": "code", "execution_count": 45, "id": "4hab_JHoopQI", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "4hab_JHoopQI", "outputId": "c2e95e71-0cb5-4bfc-c96f-1724b0cdb857" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model: \"model_1\"\n", "_________________________________________________________________\n", " Layer (type) Output Shape Param # \n", "=================================================================\n", " input_2 (InputLayer) [(None, 14)] 0 \n", " \n", " embedding_1 (Embedding) (None, 14, 10) 1360 \n", " \n", " lstm_1 (LSTM) (None, 14, 10) 840 \n", " \n", " flatten_1 (Flatten) (None, 140) 0 \n", " \n", " dense_1 (Dense) (None, 44) 6204 \n", " \n", "=================================================================\n", "Total params: 8,404\n", "Trainable params: 8,404\n", "Non-trainable params: 0\n", "_________________________________________________________________\n" ] } ], "source": [ "# Menampilkan Parameter Model\n", "model.summary() " ] }, { "cell_type": "code", "execution_count": 46, "id": "AHtOlCb8kGgZ", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "AHtOlCb8kGgZ", "outputId": "ee1389fb-cb3c-4673-826c-93e55d1a86a5" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Epoch 1/400\n", "7/7 [==============================] - 3s 8ms/step - loss: 3.7862 - accuracy: 0.0137 \n", "Epoch 2/400\n", "7/7 [==============================] - 0s 12ms/step - loss: 3.7766 - accuracy: 0.0274\n", "Epoch 3/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 3.7683 - accuracy: 0.0457\n", "Epoch 4/400\n", "7/7 [==============================] - 0s 12ms/step - loss: 3.7550 - accuracy: 0.0548\n", "Epoch 5/400\n", "7/7 [==============================] - 0s 15ms/step - loss: 3.7381 - accuracy: 0.0548\n", "Epoch 6/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 3.7127 - accuracy: 0.0685\n", "Epoch 7/400\n", "7/7 [==============================] - 0s 10ms/step - loss: 3.6768 - accuracy: 0.1050\n", "Epoch 8/400\n", "7/7 [==============================] - 0s 11ms/step - loss: 3.6352 - accuracy: 0.0685\n", "Epoch 9/400\n", "7/7 [==============================] - 0s 11ms/step - loss: 3.6040 - accuracy: 0.0685\n", "Epoch 10/400\n", "7/7 [==============================] - 0s 12ms/step - loss: 3.5821 - accuracy: 0.0685\n", "Epoch 11/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 3.5601 - accuracy: 0.0685\n", "Epoch 12/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 3.5319 - accuracy: 0.0685\n", "Epoch 13/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 3.5060 - accuracy: 0.1461\n", "Epoch 14/400\n", "7/7 [==============================] - 0s 11ms/step - loss: 3.4778 - accuracy: 0.1050\n", "Epoch 15/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 3.4414 - accuracy: 0.0822\n", "Epoch 16/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 3.4014 - accuracy: 0.1324\n", "Epoch 17/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 3.3601 - accuracy: 0.1461\n", "Epoch 18/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 3.3136 - accuracy: 0.1507\n", "Epoch 19/400\n", "7/7 [==============================] - 0s 10ms/step - loss: 3.2651 - accuracy: 0.1142\n", "Epoch 20/400\n", "7/7 [==============================] - 0s 11ms/step - loss: 3.2158 - accuracy: 0.1142\n", "Epoch 21/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 3.1665 - accuracy: 0.1142\n", "Epoch 22/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 3.1219 - accuracy: 0.1142\n", "Epoch 23/400\n", "7/7 [==============================] - 0s 10ms/step - loss: 3.0729 - accuracy: 0.1187\n", "Epoch 24/400\n", "7/7 [==============================] - 0s 10ms/step - loss: 3.0261 - accuracy: 0.1735\n", "Epoch 25/400\n", "7/7 [==============================] - 0s 10ms/step - loss: 2.9801 - accuracy: 0.1918\n", "Epoch 26/400\n", "7/7 [==============================] - 0s 13ms/step - loss: 2.9324 - accuracy: 0.2055\n", "Epoch 27/400\n", "7/7 [==============================] - 0s 13ms/step - loss: 2.8878 - accuracy: 0.2009\n", "Epoch 28/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 2.8413 - accuracy: 0.2009\n", "Epoch 29/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 2.7944 - accuracy: 0.2100\n", "Epoch 30/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 2.7494 - accuracy: 0.2192\n", "Epoch 31/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 2.6981 - accuracy: 0.2237\n", "Epoch 32/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 2.6561 - accuracy: 0.2329\n", "Epoch 33/400\n", "7/7 [==============================] - 0s 11ms/step - loss: 2.6142 - accuracy: 0.2511\n", "Epoch 34/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 2.5661 - accuracy: 0.2740\n", "Epoch 35/400\n", "7/7 [==============================] - 0s 10ms/step - loss: 2.5187 - accuracy: 0.2831\n", "Epoch 36/400\n", "7/7 [==============================] - 0s 10ms/step - loss: 2.4767 - accuracy: 0.3059\n", "Epoch 37/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 2.4294 - accuracy: 0.2968\n", "Epoch 38/400\n", "7/7 [==============================] - 0s 11ms/step - loss: 2.3876 - accuracy: 0.3288\n", "Epoch 39/400\n", "7/7 [==============================] - 0s 11ms/step - loss: 2.3481 - accuracy: 0.3607\n", "Epoch 40/400\n", "7/7 [==============================] - 0s 12ms/step - loss: 2.3066 - accuracy: 0.3699\n", "Epoch 41/400\n", "7/7 [==============================] - 0s 12ms/step - loss: 2.2642 - accuracy: 0.3607\n", "Epoch 42/400\n", "7/7 [==============================] - 0s 12ms/step - loss: 2.2236 - accuracy: 0.3790\n", "Epoch 43/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 2.1819 - accuracy: 0.4338\n", "Epoch 44/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 2.1419 - accuracy: 0.4247\n", "Epoch 45/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 2.1052 - accuracy: 0.4155\n", "Epoch 46/400\n", "7/7 [==============================] - 0s 10ms/step - loss: 2.0636 - accuracy: 0.4201\n", "Epoch 47/400\n", "7/7 [==============================] - 0s 10ms/step - loss: 2.0394 - accuracy: 0.4201\n", "Epoch 48/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 2.0011 - accuracy: 0.4566\n", "Epoch 49/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 1.9674 - accuracy: 0.4749\n", "Epoch 50/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 1.9322 - accuracy: 0.4612\n", "Epoch 51/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 1.8930 - accuracy: 0.4795\n", "Epoch 52/400\n", "7/7 [==============================] - 0s 6ms/step - loss: 1.8618 - accuracy: 0.4840\n", "Epoch 53/400\n", "7/7 [==============================] - 0s 6ms/step - loss: 1.8282 - accuracy: 0.4932\n", "Epoch 54/400\n", "7/7 [==============================] - 0s 6ms/step - loss: 1.7980 - accuracy: 0.5205\n", "Epoch 55/400\n", "7/7 [==============================] - 0s 6ms/step - loss: 1.7663 - accuracy: 0.5251\n", "Epoch 56/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 1.7406 - accuracy: 0.5114\n", "Epoch 57/400\n", "7/7 [==============================] - 0s 6ms/step - loss: 1.7131 - accuracy: 0.5251\n", "Epoch 58/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 1.6811 - accuracy: 0.5753\n", "Epoch 59/400\n", "7/7 [==============================] - 0s 6ms/step - loss: 1.6570 - accuracy: 0.5616\n", "Epoch 60/400\n", "7/7 [==============================] - 0s 6ms/step - loss: 1.6195 - accuracy: 0.5799\n", "Epoch 61/400\n", "7/7 [==============================] - 0s 6ms/step - loss: 1.5957 - accuracy: 0.5982\n", "Epoch 62/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 1.5654 - accuracy: 0.6164\n", "Epoch 63/400\n", "7/7 [==============================] - 0s 10ms/step - loss: 1.5427 - accuracy: 0.6073\n", "Epoch 64/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 1.5173 - accuracy: 0.6301\n", "Epoch 65/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 1.4885 - accuracy: 0.6438\n", "Epoch 66/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 1.4643 - accuracy: 0.6575\n", "Epoch 67/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 1.4448 - accuracy: 0.6575\n", "Epoch 68/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 1.4184 - accuracy: 0.6758\n", "Epoch 69/400\n", "7/7 [==============================] - 0s 10ms/step - loss: 1.3996 - accuracy: 0.6895\n", "Epoch 70/400\n", "7/7 [==============================] - 0s 11ms/step - loss: 1.3737 - accuracy: 0.6941\n", "Epoch 71/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 1.3498 - accuracy: 0.7169\n", "Epoch 72/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 1.3220 - accuracy: 0.7260\n", "Epoch 73/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 1.3009 - accuracy: 0.7443\n", "Epoch 74/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 1.2806 - accuracy: 0.7352\n", "Epoch 75/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 1.2589 - accuracy: 0.7443\n", "Epoch 76/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 1.2339 - accuracy: 0.7489\n", "Epoch 77/400\n", "7/7 [==============================] - 0s 11ms/step - loss: 1.2139 - accuracy: 0.7671\n", "Epoch 78/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 1.1919 - accuracy: 0.7626\n", "Epoch 79/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 1.1718 - accuracy: 0.7626\n", "Epoch 80/400\n", "7/7 [==============================] - 0s 21ms/step - loss: 1.1546 - accuracy: 0.7626\n", "Epoch 81/400\n", "7/7 [==============================] - 0s 28ms/step - loss: 1.1402 - accuracy: 0.7580\n", "Epoch 82/400\n", "7/7 [==============================] - 0s 14ms/step - loss: 1.1211 - accuracy: 0.7900\n", "Epoch 83/400\n", "7/7 [==============================] - 0s 11ms/step - loss: 1.0972 - accuracy: 0.8037\n", "Epoch 84/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 1.0821 - accuracy: 0.8174\n", "Epoch 85/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 1.0632 - accuracy: 0.8265\n", "Epoch 86/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 1.0446 - accuracy: 0.8311\n", "Epoch 87/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 1.0291 - accuracy: 0.8128\n", "Epoch 88/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 1.0091 - accuracy: 0.8174\n", "Epoch 89/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.9929 - accuracy: 0.8356\n", "Epoch 90/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 0.9792 - accuracy: 0.8356\n", "Epoch 91/400\n", "7/7 [==============================] - 0s 10ms/step - loss: 0.9624 - accuracy: 0.8356\n", "Epoch 92/400\n", "7/7 [==============================] - 0s 10ms/step - loss: 0.9497 - accuracy: 0.8356\n", "Epoch 93/400\n", "7/7 [==============================] - 0s 13ms/step - loss: 0.9367 - accuracy: 0.8402\n", "Epoch 94/400\n", "7/7 [==============================] - 0s 16ms/step - loss: 0.9232 - accuracy: 0.8402\n", "Epoch 95/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 0.9100 - accuracy: 0.8539\n", "Epoch 96/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.8911 - accuracy: 0.8447\n", "Epoch 97/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.8747 - accuracy: 0.8493\n", "Epoch 98/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.8605 - accuracy: 0.8539\n", "Epoch 99/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 0.8454 - accuracy: 0.8539\n", "Epoch 100/400\n", "7/7 [==============================] - 0s 10ms/step - loss: 0.8369 - accuracy: 0.8539\n", "Epoch 101/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 0.8221 - accuracy: 0.8630\n", "Epoch 102/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.8091 - accuracy: 0.8584\n", "Epoch 103/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 0.7959 - accuracy: 0.8721\n", "Epoch 104/400\n", "7/7 [==============================] - 0s 11ms/step - loss: 0.7858 - accuracy: 0.8721\n", "Epoch 105/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 0.7729 - accuracy: 0.8767\n", "Epoch 106/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.7639 - accuracy: 0.8721\n", "Epoch 107/400\n", "7/7 [==============================] - 0s 10ms/step - loss: 0.7501 - accuracy: 0.8813\n", "Epoch 108/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.7401 - accuracy: 0.8813\n", "Epoch 109/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 0.7310 - accuracy: 0.8721\n", "Epoch 110/400\n", "7/7 [==============================] - 0s 10ms/step - loss: 0.7177 - accuracy: 0.8904\n", "Epoch 111/400\n", "7/7 [==============================] - 0s 12ms/step - loss: 0.7069 - accuracy: 0.8813\n", "Epoch 112/400\n", "7/7 [==============================] - 0s 12ms/step - loss: 0.6980 - accuracy: 0.8995\n", "Epoch 113/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.6882 - accuracy: 0.8950\n", "Epoch 114/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 0.6874 - accuracy: 0.8904\n", "Epoch 115/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.6753 - accuracy: 0.8995\n", "Epoch 116/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.6601 - accuracy: 0.8950\n", "Epoch 117/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.6495 - accuracy: 0.9087\n", "Epoch 118/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.6415 - accuracy: 0.9178\n", "Epoch 119/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.6313 - accuracy: 0.9224\n", "Epoch 120/400\n", "7/7 [==============================] - 0s 11ms/step - loss: 0.6231 - accuracy: 0.8995\n", "Epoch 121/400\n", "7/7 [==============================] - 0s 12ms/step - loss: 0.6133 - accuracy: 0.9132\n", "Epoch 122/400\n", "7/7 [==============================] - 0s 11ms/step - loss: 0.6049 - accuracy: 0.9315\n", "Epoch 123/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.5953 - accuracy: 0.9224\n", "Epoch 124/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.5885 - accuracy: 0.9269\n", "Epoch 125/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.5811 - accuracy: 0.9315\n", "Epoch 126/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.5727 - accuracy: 0.9406\n", "Epoch 127/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 0.5671 - accuracy: 0.9361\n", "Epoch 128/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.5558 - accuracy: 0.9269\n", "Epoch 129/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.5473 - accuracy: 0.9406\n", "Epoch 130/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.5403 - accuracy: 0.9315\n", "Epoch 131/400\n", "7/7 [==============================] - 0s 10ms/step - loss: 0.5319 - accuracy: 0.9361\n", "Epoch 132/400\n", "7/7 [==============================] - 0s 13ms/step - loss: 0.5261 - accuracy: 0.9406\n", "Epoch 133/400\n", "7/7 [==============================] - 0s 11ms/step - loss: 0.5212 - accuracy: 0.9406\n", "Epoch 134/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.5108 - accuracy: 0.9498\n", "Epoch 135/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.5044 - accuracy: 0.9543\n", "Epoch 136/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.5000 - accuracy: 0.9498\n", "Epoch 137/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.4932 - accuracy: 0.9498\n", "Epoch 138/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.4841 - accuracy: 0.9498\n", "Epoch 139/400\n", "7/7 [==============================] - 0s 19ms/step - loss: 0.4805 - accuracy: 0.9498\n", "Epoch 140/400\n", "7/7 [==============================] - 0s 13ms/step - loss: 0.4759 - accuracy: 0.9452\n", "Epoch 141/400\n", "7/7 [==============================] - 0s 10ms/step - loss: 0.4752 - accuracy: 0.9589\n", "Epoch 142/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.4606 - accuracy: 0.9589\n", "Epoch 143/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.4544 - accuracy: 0.9635\n", "Epoch 144/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.4468 - accuracy: 0.9589\n", "Epoch 145/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 0.4432 - accuracy: 0.9589\n", "Epoch 146/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.4357 - accuracy: 0.9635\n", "Epoch 147/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.4299 - accuracy: 0.9498\n", "Epoch 148/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.4240 - accuracy: 0.9635\n", "Epoch 149/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.4183 - accuracy: 0.9589\n", "Epoch 150/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.4151 - accuracy: 0.9635\n", "Epoch 151/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.4109 - accuracy: 0.9726\n", "Epoch 152/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.4056 - accuracy: 0.9635\n", "Epoch 153/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.3983 - accuracy: 0.9726\n", "Epoch 154/400\n", "7/7 [==============================] - 0s 6ms/step - loss: 0.3961 - accuracy: 0.9680\n", "Epoch 155/400\n", "7/7 [==============================] - 0s 5ms/step - loss: 0.3887 - accuracy: 0.9680\n", "Epoch 156/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.3827 - accuracy: 0.9726\n", "Epoch 157/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 0.3782 - accuracy: 0.9772\n", "Epoch 158/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 0.3725 - accuracy: 0.9772\n", "Epoch 159/400\n", "7/7 [==============================] - 0s 13ms/step - loss: 0.3686 - accuracy: 0.9772\n", "Epoch 160/400\n", "7/7 [==============================] - 0s 12ms/step - loss: 0.3631 - accuracy: 0.9863\n", "Epoch 161/400\n", "7/7 [==============================] - 0s 10ms/step - loss: 0.3568 - accuracy: 0.9772\n", "Epoch 162/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.3550 - accuracy: 0.9817\n", "Epoch 163/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.3490 - accuracy: 0.9817\n", "Epoch 164/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.3438 - accuracy: 0.9817\n", "Epoch 165/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.3397 - accuracy: 0.9817\n", "Epoch 166/400\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "7/7 [==============================] - 0s 8ms/step - loss: 0.3352 - accuracy: 0.9863\n", "Epoch 167/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.3315 - accuracy: 0.9772\n", "Epoch 168/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.3274 - accuracy: 0.9817\n", "Epoch 169/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.3235 - accuracy: 0.9863\n", "Epoch 170/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.3191 - accuracy: 0.9863\n", "Epoch 171/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.3160 - accuracy: 0.9817\n", "Epoch 172/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.3122 - accuracy: 0.9817\n", "Epoch 173/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.3094 - accuracy: 0.9863\n", "Epoch 174/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.3043 - accuracy: 0.9772\n", "Epoch 175/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.3006 - accuracy: 0.9863\n", "Epoch 176/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.2983 - accuracy: 0.9817\n", "Epoch 177/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.2949 - accuracy: 0.9863\n", "Epoch 178/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.2907 - accuracy: 0.9863\n", "Epoch 179/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.2864 - accuracy: 0.9863\n", "Epoch 180/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.2835 - accuracy: 0.9863\n", "Epoch 181/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.2792 - accuracy: 0.9863\n", "Epoch 182/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.2779 - accuracy: 0.9817\n", "Epoch 183/400\n", "7/7 [==============================] - 0s 11ms/step - loss: 0.2710 - accuracy: 0.9863\n", "Epoch 184/400\n", "7/7 [==============================] - 0s 13ms/step - loss: 0.2685 - accuracy: 0.9909\n", "Epoch 185/400\n", "7/7 [==============================] - 0s 10ms/step - loss: 0.2657 - accuracy: 0.9863\n", "Epoch 186/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 0.2624 - accuracy: 0.9863\n", "Epoch 187/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.2585 - accuracy: 0.9863\n", "Epoch 188/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.2560 - accuracy: 0.9863\n", "Epoch 189/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.2533 - accuracy: 0.9863\n", "Epoch 190/400\n", "7/7 [==============================] - 0s 13ms/step - loss: 0.2502 - accuracy: 0.9863\n", "Epoch 191/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 0.2487 - accuracy: 0.9909\n", "Epoch 192/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.2457 - accuracy: 0.9817\n", "Epoch 193/400\n", "7/7 [==============================] - 0s 6ms/step - loss: 0.2425 - accuracy: 0.9909\n", "Epoch 194/400\n", "7/7 [==============================] - 0s 10ms/step - loss: 0.2385 - accuracy: 0.9909\n", "Epoch 195/400\n", "7/7 [==============================] - 0s 13ms/step - loss: 0.2354 - accuracy: 0.9909\n", "Epoch 196/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 0.2332 - accuracy: 0.9863\n", "Epoch 197/400\n", "7/7 [==============================] - 0s 10ms/step - loss: 0.2295 - accuracy: 0.9863\n", "Epoch 198/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.2278 - accuracy: 0.9863\n", "Epoch 199/400\n", "7/7 [==============================] - 0s 12ms/step - loss: 0.2254 - accuracy: 0.9909\n", "Epoch 200/400\n", "7/7 [==============================] - 0s 10ms/step - loss: 0.2243 - accuracy: 0.9909\n", "Epoch 201/400\n", "7/7 [==============================] - 0s 10ms/step - loss: 0.2191 - accuracy: 0.9863\n", "Epoch 202/400\n", "7/7 [==============================] - 0s 12ms/step - loss: 0.2188 - accuracy: 0.9863\n", "Epoch 203/400\n", "7/7 [==============================] - 0s 11ms/step - loss: 0.2192 - accuracy: 0.9909\n", "Epoch 204/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.2182 - accuracy: 0.9817\n", "Epoch 205/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.2109 - accuracy: 0.9863\n", "Epoch 206/400\n", "7/7 [==============================] - 0s 10ms/step - loss: 0.2082 - accuracy: 0.9863\n", "Epoch 207/400\n", "7/7 [==============================] - 0s 11ms/step - loss: 0.2062 - accuracy: 0.9909\n", "Epoch 208/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.2041 - accuracy: 0.9909\n", "Epoch 209/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.2020 - accuracy: 0.9863\n", "Epoch 210/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 0.1978 - accuracy: 0.9909\n", "Epoch 211/400\n", "7/7 [==============================] - 0s 12ms/step - loss: 0.1971 - accuracy: 0.9909\n", "Epoch 212/400\n", "7/7 [==============================] - 0s 12ms/step - loss: 0.1943 - accuracy: 0.9909\n", "Epoch 213/400\n", "7/7 [==============================] - 0s 10ms/step - loss: 0.1931 - accuracy: 0.9863\n", "Epoch 214/400\n", "7/7 [==============================] - 0s 11ms/step - loss: 0.1899 - accuracy: 0.9863\n", "Epoch 215/400\n", "7/7 [==============================] - 0s 10ms/step - loss: 0.1890 - accuracy: 0.9909\n", "Epoch 216/400\n", "7/7 [==============================] - 0s 11ms/step - loss: 0.1864 - accuracy: 0.9909\n", "Epoch 217/400\n", "7/7 [==============================] - 0s 13ms/step - loss: 0.1838 - accuracy: 0.9909\n", "Epoch 218/400\n", "7/7 [==============================] - 0s 14ms/step - loss: 0.1821 - accuracy: 0.9909\n", "Epoch 219/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.1800 - accuracy: 0.9909\n", "Epoch 220/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.1788 - accuracy: 0.9909\n", "Epoch 221/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.1767 - accuracy: 0.9863\n", "Epoch 222/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.1755 - accuracy: 0.9863\n", "Epoch 223/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.1731 - accuracy: 0.9863\n", "Epoch 224/400\n", "7/7 [==============================] - 0s 14ms/step - loss: 0.1728 - accuracy: 0.9863\n", "Epoch 225/400\n", "7/7 [==============================] - 0s 10ms/step - loss: 0.1692 - accuracy: 0.9863\n", "Epoch 226/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.1675 - accuracy: 0.9863\n", "Epoch 227/400\n", "7/7 [==============================] - 0s 10ms/step - loss: 0.1660 - accuracy: 0.9909\n", "Epoch 228/400\n", "7/7 [==============================] - 0s 12ms/step - loss: 0.1641 - accuracy: 0.9909\n", "Epoch 229/400\n", "7/7 [==============================] - 0s 12ms/step - loss: 0.1624 - accuracy: 0.9909\n", "Epoch 230/400\n", "7/7 [==============================] - 0s 11ms/step - loss: 0.1613 - accuracy: 0.9909\n", "Epoch 231/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 0.1595 - accuracy: 0.9863\n", "Epoch 232/400\n", "7/7 [==============================] - 0s 11ms/step - loss: 0.1580 - accuracy: 0.9909\n", "Epoch 233/400\n", "7/7 [==============================] - 0s 11ms/step - loss: 0.1561 - accuracy: 0.9909\n", "Epoch 234/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.1542 - accuracy: 0.9909\n", "Epoch 235/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 0.1533 - accuracy: 0.9909\n", "Epoch 236/400\n", "7/7 [==============================] - 0s 11ms/step - loss: 0.1518 - accuracy: 0.9909\n", "Epoch 237/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 0.1521 - accuracy: 0.9909\n", "Epoch 238/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.1491 - accuracy: 0.9863\n", "Epoch 239/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.1469 - accuracy: 0.9954\n", "Epoch 240/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 0.1459 - accuracy: 0.9909\n", "Epoch 241/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 0.1442 - accuracy: 0.9909\n", "Epoch 242/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.1430 - accuracy: 0.9954\n", "Epoch 243/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.1410 - accuracy: 0.9954\n", "Epoch 244/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.1403 - accuracy: 0.9954\n", "Epoch 245/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.1391 - accuracy: 0.9954\n", "Epoch 246/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.1381 - accuracy: 0.9909\n", "Epoch 247/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.1367 - accuracy: 0.9909\n", "Epoch 248/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.1348 - accuracy: 0.9909\n", "Epoch 249/400\n", "7/7 [==============================] - 0s 10ms/step - loss: 0.1340 - accuracy: 0.9909\n", "Epoch 250/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 0.1322 - accuracy: 0.9909\n", "Epoch 251/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.1310 - accuracy: 0.9954\n", "Epoch 252/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 0.1315 - accuracy: 0.9954\n", "Epoch 253/400\n", "7/7 [==============================] - 0s 10ms/step - loss: 0.1297 - accuracy: 0.9909\n", "Epoch 254/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.1281 - accuracy: 0.9909\n", "Epoch 255/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.1264 - accuracy: 0.9954\n", "Epoch 256/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.1252 - accuracy: 0.9954\n", "Epoch 257/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 0.1243 - accuracy: 0.9954\n", "Epoch 258/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 0.1234 - accuracy: 0.9909\n", "Epoch 259/400\n", "7/7 [==============================] - 0s 10ms/step - loss: 0.1223 - accuracy: 0.9954\n", "Epoch 260/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.1211 - accuracy: 0.9954\n", "Epoch 261/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.1207 - accuracy: 0.9954\n", "Epoch 262/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 0.1190 - accuracy: 0.9954\n", "Epoch 263/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.1182 - accuracy: 0.9954\n", "Epoch 264/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.1163 - accuracy: 0.9954\n", "Epoch 265/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.1156 - accuracy: 0.9954\n", "Epoch 266/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.1144 - accuracy: 0.9954\n", "Epoch 267/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.1137 - accuracy: 1.0000\n", "Epoch 268/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 0.1124 - accuracy: 0.9954\n", "Epoch 269/400\n", "7/7 [==============================] - 0s 10ms/step - loss: 0.1114 - accuracy: 0.9954\n", "Epoch 270/400\n", "7/7 [==============================] - 0s 10ms/step - loss: 0.1107 - accuracy: 1.0000\n", "Epoch 271/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.1114 - accuracy: 0.9954\n", "Epoch 272/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 0.1086 - accuracy: 0.9954\n", "Epoch 273/400\n", "7/7 [==============================] - 0s 11ms/step - loss: 0.1083 - accuracy: 1.0000\n", "Epoch 274/400\n", "7/7 [==============================] - 0s 14ms/step - loss: 0.1078 - accuracy: 0.9954\n", "Epoch 275/400\n", "7/7 [==============================] - 0s 11ms/step - loss: 0.1063 - accuracy: 1.0000\n", "Epoch 276/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 0.1052 - accuracy: 0.9954\n", "Epoch 277/400\n", "7/7 [==============================] - 0s 11ms/step - loss: 0.1042 - accuracy: 0.9954\n", "Epoch 278/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.1031 - accuracy: 1.0000\n", "Epoch 279/400\n", "7/7 [==============================] - 0s 10ms/step - loss: 0.1025 - accuracy: 1.0000\n", "Epoch 280/400\n", "7/7 [==============================] - 0s 11ms/step - loss: 0.1019 - accuracy: 0.9954\n", "Epoch 281/400\n", "7/7 [==============================] - 0s 10ms/step - loss: 0.1004 - accuracy: 1.0000\n", "Epoch 282/400\n", "7/7 [==============================] - 0s 11ms/step - loss: 0.1002 - accuracy: 1.0000\n", "Epoch 283/400\n", "7/7 [==============================] - 0s 10ms/step - loss: 0.0992 - accuracy: 0.9954\n", "Epoch 284/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 0.0979 - accuracy: 1.0000\n", "Epoch 285/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.0974 - accuracy: 0.9954\n", "Epoch 286/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.0979 - accuracy: 0.9954\n", "Epoch 287/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 0.0958 - accuracy: 0.9954\n", "Epoch 288/400\n", "7/7 [==============================] - 0s 11ms/step - loss: 0.0952 - accuracy: 0.9954\n", "Epoch 289/400\n", "7/7 [==============================] - 0s 11ms/step - loss: 0.0945 - accuracy: 1.0000\n", "Epoch 290/400\n", "7/7 [==============================] - 0s 11ms/step - loss: 0.0945 - accuracy: 1.0000\n", "Epoch 291/400\n", "7/7 [==============================] - 0s 10ms/step - loss: 0.0936 - accuracy: 0.9954\n", "Epoch 292/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 0.0932 - accuracy: 0.9954\n", "Epoch 293/400\n", "7/7 [==============================] - 0s 13ms/step - loss: 0.0911 - accuracy: 0.9954\n", "Epoch 294/400\n", "7/7 [==============================] - 0s 12ms/step - loss: 0.0905 - accuracy: 0.9954\n", "Epoch 295/400\n", "7/7 [==============================] - 0s 10ms/step - loss: 0.0903 - accuracy: 1.0000\n", "Epoch 296/400\n", "7/7 [==============================] - 0s 12ms/step - loss: 0.0895 - accuracy: 1.0000\n", "Epoch 297/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.0883 - accuracy: 1.0000\n", "Epoch 298/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.0874 - accuracy: 1.0000\n", "Epoch 299/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 0.0869 - accuracy: 0.9954\n", "Epoch 300/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.0860 - accuracy: 1.0000\n", "Epoch 301/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.0851 - accuracy: 1.0000\n", "Epoch 302/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 0.0847 - accuracy: 1.0000\n", "Epoch 303/400\n", "7/7 [==============================] - 0s 11ms/step - loss: 0.0842 - accuracy: 1.0000\n", "Epoch 304/400\n", "7/7 [==============================] - 0s 11ms/step - loss: 0.0832 - accuracy: 1.0000\n", "Epoch 305/400\n", "7/7 [==============================] - 0s 10ms/step - loss: 0.0828 - accuracy: 1.0000\n", "Epoch 306/400\n", "7/7 [==============================] - 0s 11ms/step - loss: 0.0823 - accuracy: 1.0000\n", "Epoch 307/400\n", "7/7 [==============================] - 0s 11ms/step - loss: 0.0813 - accuracy: 1.0000\n", "Epoch 308/400\n", "7/7 [==============================] - 0s 11ms/step - loss: 0.0810 - accuracy: 1.0000\n", "Epoch 309/400\n", "7/7 [==============================] - 0s 10ms/step - loss: 0.0803 - accuracy: 1.0000\n", "Epoch 310/400\n", "7/7 [==============================] - 0s 12ms/step - loss: 0.0793 - accuracy: 1.0000\n", "Epoch 311/400\n", "7/7 [==============================] - 0s 11ms/step - loss: 0.0789 - accuracy: 1.0000\n", "Epoch 312/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.0784 - accuracy: 1.0000\n", "Epoch 313/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.0777 - accuracy: 1.0000\n", "Epoch 314/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.0775 - accuracy: 1.0000\n", "Epoch 315/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.0766 - accuracy: 1.0000\n", "Epoch 316/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.0758 - accuracy: 1.0000\n", "Epoch 317/400\n", "7/7 [==============================] - 0s 13ms/step - loss: 0.0757 - accuracy: 1.0000\n", "Epoch 318/400\n", "7/7 [==============================] - 0s 11ms/step - loss: 0.0749 - accuracy: 1.0000\n", "Epoch 319/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.0740 - accuracy: 1.0000\n", "Epoch 320/400\n", "7/7 [==============================] - 0s 10ms/step - loss: 0.0734 - accuracy: 1.0000\n", "Epoch 321/400\n", "7/7 [==============================] - 0s 12ms/step - loss: 0.0732 - accuracy: 1.0000\n", "Epoch 322/400\n", "7/7 [==============================] - 0s 11ms/step - loss: 0.0726 - accuracy: 1.0000\n", "Epoch 323/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.0721 - accuracy: 1.0000\n", "Epoch 324/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.0711 - accuracy: 1.0000\n", "Epoch 325/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.0708 - accuracy: 1.0000\n", "Epoch 326/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.0704 - accuracy: 1.0000\n", "Epoch 327/400\n", "7/7 [==============================] - 0s 15ms/step - loss: 0.0700 - accuracy: 1.0000\n", "Epoch 328/400\n", "7/7 [==============================] - 0s 10ms/step - loss: 0.0694 - accuracy: 1.0000\n", "Epoch 329/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.0686 - accuracy: 1.0000\n", "Epoch 330/400\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "7/7 [==============================] - 0s 11ms/step - loss: 0.0689 - accuracy: 1.0000\n", "Epoch 331/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.0674 - accuracy: 1.0000\n", "Epoch 332/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.0669 - accuracy: 1.0000\n", "Epoch 333/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.0676 - accuracy: 1.0000\n", "Epoch 334/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.0659 - accuracy: 1.0000\n", "Epoch 335/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.0661 - accuracy: 1.0000\n", "Epoch 336/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.0654 - accuracy: 1.0000\n", "Epoch 337/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 0.0656 - accuracy: 1.0000\n", "Epoch 338/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.0655 - accuracy: 1.0000\n", "Epoch 339/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.0634 - accuracy: 1.0000\n", "Epoch 340/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.0634 - accuracy: 1.0000\n", "Epoch 341/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 0.0629 - accuracy: 1.0000\n", "Epoch 342/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.0620 - accuracy: 1.0000\n", "Epoch 343/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.0620 - accuracy: 1.0000\n", "Epoch 344/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.0614 - accuracy: 1.0000\n", "Epoch 345/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.0610 - accuracy: 1.0000\n", "Epoch 346/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.0604 - accuracy: 1.0000\n", "Epoch 347/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.0601 - accuracy: 1.0000\n", "Epoch 348/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 0.0594 - accuracy: 1.0000\n", "Epoch 349/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.0591 - accuracy: 1.0000\n", "Epoch 350/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.0588 - accuracy: 1.0000\n", "Epoch 351/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 0.0583 - accuracy: 1.0000\n", "Epoch 352/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.0580 - accuracy: 1.0000\n", "Epoch 353/400\n", "7/7 [==============================] - 0s 10ms/step - loss: 0.0573 - accuracy: 1.0000\n", "Epoch 354/400\n", "7/7 [==============================] - 0s 11ms/step - loss: 0.0571 - accuracy: 1.0000\n", "Epoch 355/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 0.0566 - accuracy: 1.0000\n", "Epoch 356/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.0561 - accuracy: 1.0000\n", "Epoch 357/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.0558 - accuracy: 1.0000\n", "Epoch 358/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.0556 - accuracy: 1.0000\n", "Epoch 359/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.0554 - accuracy: 1.0000\n", "Epoch 360/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.0552 - accuracy: 1.0000\n", "Epoch 361/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.0543 - accuracy: 1.0000\n", "Epoch 362/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.0543 - accuracy: 1.0000\n", "Epoch 363/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.0537 - accuracy: 1.0000\n", "Epoch 364/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.0532 - accuracy: 1.0000\n", "Epoch 365/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.0528 - accuracy: 1.0000\n", "Epoch 366/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.0524 - accuracy: 1.0000\n", "Epoch 367/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.0521 - accuracy: 1.0000\n", "Epoch 368/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.0516 - accuracy: 1.0000\n", "Epoch 369/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.0514 - accuracy: 1.0000\n", "Epoch 370/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.0509 - accuracy: 1.0000\n", "Epoch 371/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.0508 - accuracy: 1.0000\n", "Epoch 372/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.0503 - accuracy: 1.0000\n", "Epoch 373/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 0.0499 - accuracy: 1.0000\n", "Epoch 374/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.0496 - accuracy: 1.0000\n", "Epoch 375/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.0491 - accuracy: 1.0000\n", "Epoch 376/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.0488 - accuracy: 1.0000\n", "Epoch 377/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.0486 - accuracy: 1.0000\n", "Epoch 378/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.0484 - accuracy: 1.0000\n", "Epoch 379/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.0480 - accuracy: 1.0000\n", "Epoch 380/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 0.0475 - accuracy: 1.0000\n", "Epoch 381/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 0.0470 - accuracy: 1.0000\n", "Epoch 382/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 0.0469 - accuracy: 1.0000\n", "Epoch 383/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 0.0467 - accuracy: 1.0000\n", "Epoch 384/400\n", "7/7 [==============================] - 0s 10ms/step - loss: 0.0466 - accuracy: 1.0000\n", "Epoch 385/400\n", "7/7 [==============================] - 0s 15ms/step - loss: 0.0461 - accuracy: 1.0000\n", "Epoch 386/400\n", "7/7 [==============================] - 0s 16ms/step - loss: 0.0455 - accuracy: 1.0000\n", "Epoch 387/400\n", "7/7 [==============================] - 0s 10ms/step - loss: 0.0453 - accuracy: 1.0000\n", "Epoch 388/400\n", "7/7 [==============================] - 0s 11ms/step - loss: 0.0449 - accuracy: 1.0000\n", "Epoch 389/400\n", "7/7 [==============================] - 0s 11ms/step - loss: 0.0448 - accuracy: 1.0000\n", "Epoch 390/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.0445 - accuracy: 1.0000\n", "Epoch 391/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.0444 - accuracy: 1.0000\n", "Epoch 392/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.0438 - accuracy: 1.0000\n", "Epoch 393/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.0436 - accuracy: 1.0000\n", "Epoch 394/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.0435 - accuracy: 1.0000\n", "Epoch 395/400\n", "7/7 [==============================] - 0s 7ms/step - loss: 0.0435 - accuracy: 1.0000\n", "Epoch 396/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.0429 - accuracy: 1.0000\n", "Epoch 397/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.0424 - accuracy: 1.0000\n", "Epoch 398/400\n", "7/7 [==============================] - 0s 8ms/step - loss: 0.0422 - accuracy: 1.0000\n", "Epoch 399/400\n", "7/7 [==============================] - 0s 9ms/step - loss: 0.0420 - accuracy: 1.0000\n", "Epoch 400/400\n", "7/7 [==============================] - 0s 10ms/step - loss: 0.0416 - accuracy: 1.0000\n" ] } ], "source": [ "# Training the model (Latih model data sampai 400 kali)\n", "train = model.fit(x_train, y_train, epochs=400)" ] }, { "attachments": {}, "cell_type": "markdown", "id": "BfQP5TaPkGzB", "metadata": { "id": "BfQP5TaPkGzB" }, "source": [ "# 06 Model Analysis\n", "\n", "Setelah menjalankan pelatihan model dengan algoritma Neural Neural dan LSTM serta telah mengetahui hasil akurasi pada step terakhir. Maka, tahapan selanjutnya adalah menganalisa model dengan visualisasi plot akurasi dan loss untuk melihat hasil akurasi dari algoritma pelatihan model Neural Network dengan LSTM tersebut." ] }, { "cell_type": "code", "execution_count": 47, "id": "FEz3P5djksfa", "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 459 }, "id": "FEz3P5djksfa", "outputId": "4e27fba0-9523-4fc2-8e46-350f0c3baae8" }, "outputs": [ { "data": { "image/png": "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fZozZ4569+6tN998UwMGDNCbb77pPmfatGnavXu3Zs6cKS8vLz344IPq0aOHe/QygOaHRYyBVmTevHkKDw/XK6+8csJjn3zyiT799FPNnj1bnTp10tatW0/6XJ06ddJPP/2kiooKeXp61npOUFCQpKodrX7u4MGDp515y5Yt2r17t9555x1NmjTJffznuyxIcg81PlVuSbruuus0ffp0/ec//1FJSYk8PT117bXXnnYmAACAsy0sLEw+Pj7atWvXCY/t3LlTVqtVMTEx7mPBwcGaMmWKpkyZosLCQo0aNUqPPPKIbrnlFvc5nTp10p///Gf9+c9/1p49e9SvXz/NmjVL7733XqO8JwBnFyNwgFaipKREn3zyiS6++GJdddVVJ9ymTp2qgoICLVy4UFdeeaU2bdpU63bbhmFIqtrZICsrSy+//HKd58TGxspms+n777+v8firr7562rltNluN56z++oUXXqhxXlhYmEaNGqU5c+YoOTm51jzVQkNDNWHCBL333nuaN2+eLrzwQoWGhp52JgAAgLPNZrPpggsu0GeffVZjq+/09HS9//77GjFihAICAiRJ2dnZNa718/NT586dVVZWJkkqLi5WaWlpjXM6deokf39/9zkAmh9G4ACtxMKFC1VQUKBLLrmk1seHDRumsLAwzZs3T++//74++ugjXX311brppps0cOBAHT16VAsXLtTs2bMVHx+vSZMm6d1339X06dO1evVqjRw5UkVFRfrmm29055136tJLL1VgYKCuvvpqvfTSS7JYLOrUqZM+//xzZWRknHbu7t27q1OnTrr33nt1+PBhBQQE6OOPP651Qb4XX3xRI0aM0IABA3TbbbepQ4cOSkpK0qJFi7Rx48Ya506aNElXXXWVJOnxxx8//W8kAADArzRnzhwtXrz4hOOPPPKIlixZohEjRujOO++Uh4eHXn/9dZWVlempp55yn9ezZ0+NGTNGAwcOVHBwsNauXauPPvpIU6dOlSTt3r1b5513nq655hr17NlTHh4e+vTTT5Wenq7rrruu0d4ngLPMzC2wADSeiRMnGl5eXkZRUVGd59x4442Gp6enkZWVZWRnZxtTp0412rVrZ9jtdiM6OtqYPHmykZWV5T6/uLjY+Otf/2p06NDB8PT0NCIjI42rrrqqxtaXmZmZxpVXXmn4+PgYQUFBxh/+8Adj69at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JbJZLeoX00bDOobIapF6tQ3QPed3MTseAABoAqrXwVmxjwIHAICf86jvBR988IGmT5+u2bNna+jQoXr++ec1fvx47dq1S+Hh4Sec//777+svf/mL5syZo+HDh2v37t268cYbZbFY9Oyzz56VN4HmYW1S1VDoHlH+8nV4qEuEvxLvHavwAIccHjaT0wEAgKZgeKdQSdKmlFwVllXKz1Hvj6sAALRI9R6B8+yzz+rWW2/VlClT1LNnT82ePVs+Pj6aM2dOreevWLFC55xzjn77298qLi5OF1xwga6//vpTjtpBy7PuYFWBMyg22H2sfYiPvDwpbwAAQJWYYB/FBHur0mVoTdJRs+MAANBk1KvAKS8v17p16zRu3LjjT2C1aty4cVq5cmWt1wwfPlzr1q1zFzb79+/XF198oYsuuuhXxEZztPZg1YewgbFBJicBAKDxvPbaa+rbt68CAgIUEBCghIQEffnllye95sMPP1T37t3l5eWlPn366IsvvmiktE3D8I5Vo3BW7M0yOQkAAE1HvQqcrKwsOZ1ORURE1DgeERGhtLS0Wq/57W9/q8cee0wjRoyQp6enOnXqpDFjxuj//u//6nydsrIy5efn17iheSssq9T2I1X/HgfFUeAAAFqP6OhoPfnkk1q3bp3Wrl2rc889V5deeqm2bdtW6/krVqzQ9ddfr5tvvlkbNmzQZZddpssuu0xbt25t5OTmGd65aiFj1sEBAOC4Bt+FKjExUf/4xz/06quvav369frkk0+0aNEiPf7443VeM3PmTAUGBrpvMTExDR0TDWxjcq5chtSujbeiAr3NjgMAQKOZOHGiLrroInXp0kVdu3bVE088IT8/P61atarW81944QVdeOGFuu+++9SjRw89/vjjGjBggF5++eVGTm6ehE5VBc721HzlFJWbnAYAgKahXgVOaGiobDab0tPTaxxPT09XZGRkrdc8+OCD+v3vf69bbrlFffr00eWXX65//OMfmjlzplwuV63XzJgxQ3l5ee5bSkpKfWKiCaqePsXoGwBAa+Z0OjV//nwVFRUpISGh1nNWrlxZY7q6JI0fP77O6erVWtII5nB/L3WN8JNhsJ04AADV6lXg2O12DRw4UEuXLnUfc7lcWrp0aZ0fQoqLi2W11nwZm61q0VrDMGq9xuFwuOeJV9/QvB1fwJgCBwDQ+mzZskV+fn5yOBy6/fbb9emnn6pnz561npuWllav6erVWtoI5urdqJbvYx0cAACkM5hCNX36dL3xxht65513tGPHDt1xxx0qKirSlClTJEmTJk3SjBkz3OdPnDhRr732mubPn68DBw5oyZIlevDBBzVx4kR3kYOWb0dq1W8B42PamBsEAAATdOvWTRs3btRPP/2kO+64Q5MnT9b27dvP6mu0tBHM1dOoWAcHAIAqHvW94Nprr1VmZqYeeughpaWlqV+/flq8eLH7N0XJyck1Rtz87W9/k8Vi0d/+9jcdPnxYYWFhmjhxop544omz9y7QpFU4XcoqrJq/3rYN698AAFofu92uzp07S5IGDhyoNWvW6IUXXtDrr79+wrmRkZH1mq5ezeFwyOFwnL3QJhvWMURWi7Q/s0hpeaWKDPQyOxIAAKaqd4EjSVOnTtXUqVNrfSwxMbHmC3h46OGHH9bDDz98Ji+FFiCrsEyS5GG1KNjHbnIaAADM53K5VFZWVutjCQkJWrp0qaZNm+Y+tmTJkjqnq7dUgd6e6t0uUJsP5WnFvixdMSDa7EgAAJiqwXehAjLyqz6ghvk7ZLVaTE4DAEDjmjFjhr7//nslJSVpy5YtmjFjhhITE3XDDTdIOnH6+d13363Fixdr1qxZ2rlzpx555BGtXbu2zl+etWTudXD2Mo0KAAAKHDS49PxSSVK4f8sZ1g0AwOnKyMjQpEmT1K1bN5133nlas2aNvvrqK51//vmSqqafp6amus8fPny43n//ff3rX/9SfHy8PvroIy1YsEC9e/c26y2YZvixdXBW7suqc/MLAABaizOaQgXUR0ZB9Qgc5q4DAFqft95666SP/3L6uSRdffXVuvrqqxsoUfMxOC5YnjaLjuSVKim7WB1Cfc2OBACAaRiBgwZXXeBEBDACBwAAnD5vu0392wdJklawnTgAoJWjwMFZlVlQpie/3Knk7GL3sQz3FCpG4AAAgPo559g6OGwnDgBo7ShwcFa99eMBzV62T6Oe/k6lFU4ZhuEegRPOCBwAAFBPwztXr4OTLZeLdXAAAK0Xa+DgrFq5//hvx7o/uLjGY0yhAgAA9RUf3UY+dpuOFpVrV3qBekQFmB0JAABTMAIHZ1XmselStWEKFQAAqC+7h1WD44IlScv3sg4OAKD1osDBWZNfWqEjeVUFzk//d57WP3i+nrk63v14RAAFDgAAqL/j24mzDg4AoPViChXOmj3pBZKkqEAvd1lz1cBo5ZdUyGUYCvNnChUAAKi/czpXLWT804GjqnS65GHjd5AAgNaHAgdnzc60qgKna4R/jeM3jehgRhwAANBC9IgKUKC3p/JKKrT5cJ4GHNtaHACA1oRfX+CsWXPgqCSpe6T/Kc4EAAA4fTarRQkdq6ZRrWAdHABAK0WBg19l1f5sfbcrQ9/vztSCjUckSeN6RpicCgAAtDTV24mvYB0cAEArxRQqnLGySqeu+9cqSVL4sfVtJifEuneKAAAAOFuGd6paB2ftwRyVVjjl5WkzOREAAI2LETg4Y/syitxfZxSUycNq0bRxXU1MBAAAWqpOYb4K93eovNKl9QdzzI4DAECjo8DBGduVnl/j/sguoQrytZuUBgAAtGQWi8W9G9XyfayDAwBofShwcMZ2pRXWuH9Jv7YmJQEAAK1BQifWwQEAtF6sgYMztju9atvw7pH+6tU2UBN6R5mcCAAAtGTDjxU4mw/lqaC0Qv5eniYnAgCg8TACB2dsV1pVgfP4Zb0165p4FhMEAAANKjrIR7EhPnK6DK0+cNTsOAAANCoKHJyRvJIKHc4tkSR1Dfc3OQ0AAGgthjONCgDQSlHg4Ix8uzNdktQxzFeBPgxfBgAAjaN6O/Hle1nIGADQulDg4Iws3HhEknRxXxYuBgAAjad6IeOdaQXKLiwzOQ0AAI2HAgf1llNUrh/2VP3W65J4ChwAANB4Qv0c6h5ZNX175X6mUQEAWg8KHNTbhpQcVboMdQrzVedwP7PjAACAVobtxAEArREFDuotKatYktSFxYsBAIAJzjm2Ds4K1sEBALQiFDiot+SjVQVObKiPyUkAAEBrNKRjsKwWKSm72L0rJgAALR0FDuotKbtIkhQX4mtyEgAA0BoFeHmqb3QbSYzCAQC0HhQ4qLfk7GMjcIIZgQMAAMwx/Ng6OCtZBwcA0EpQ4KBenC5DKTnVU6gYgQMAAMxxTueqdXB+2JslwzBMTgMAQMOjwEG9HMktUYXTkN3DqqgAL7PjAACAVmpQXJC8PW3KLCjTtiP5ZscBAKDBUeCgXg4emz4VE+Qtq9VichoAANBaOTxsOqdz1TSqZbszTU4DAEDDo8DBaTMMQ2/9uF+S1C2SLcQBAIC5xnQLlyQl7sowOQkAAA2PAgen7fPNqfpuV6bsHlZNG9fV7DgAAKCVG9MtTJK0PjlXBaUVJqcBAKBhUeDgtC3Zni5JuumcDuoawQgcAABgruggH7UP9pHTZWjtwRyz4wAA0KAocHDa1h37YDSyS6jJSQAAAKoM6xgsSVq1n+3EAQAtGwUOTktqXokO55bIZrWoX0wbs+MAAABIkhI6VS1kvGofBQ4AoGWjwMFpWZtUNfqmR5S/fB0eJqcBAACoMrRDVYGz5XAe6+AAAFo0ChyclurpU4Nig01OAgAAcFzbNt6KDfGRy5DWJB01Ow4AAA2GAgenZUdqviSpT7tAk5MAAADUlNDx2DSq/RQ4AICWiwIHp2QYhnanF0iSukWy+xQAAPUxc+ZMDR48WP7+/goPD9dll12mXbt2nfSauXPnymKx1Lh5eXk1UuLmZ9ixAmcl6+AAAFowChycUmZBmXKKK2S1SJ3D/cyOAwBAs7Js2TLdddddWrVqlZYsWaKKigpdcMEFKioqOul1AQEBSk1Ndd8OHjzYSImbn+oCZ9uRPOWVsA4OAKBlYjVanNKuY6Nv4kJ95eVpMzkNAADNy+LFi2vcnzt3rsLDw7Vu3TqNGjWqzussFosiIyMbOl6LEBnopY6hvtqfVaSV+7J1YW++bwCAlocRODilXWnHpk9FMH0KAIBfKy8vT5IUHHzyjQEKCwsVGxurmJgYXXrppdq2bdtJzy8rK1N+fn6NW2syqmuYJClxV4bJSQAAaBgUODipTzcc0t8X7ZAkdaXAAQDgV3G5XJo2bZrOOecc9e7du87zunXrpjlz5uizzz7Te++9J5fLpeHDh+vQoUN1XjNz5kwFBga6bzExMQ3xFpqssd3DJUmJuzJlGIbJaQAAOPsocFAnl8vQIwu3u+8PjA0yMQ0AAM3fXXfdpa1bt2r+/PknPS8hIUGTJk1Sv379NHr0aH3yyScKCwvT66+/Xuc1M2bMUF5envuWkpJytuM3aUM7BMvL06q0/FLtPDZ6GACAloQCB3Xam1noXgjwnZuGaGSXUJMTAQDQfE2dOlWff/65vvvuO0VHR9frWk9PT/Xv31979+6t8xyHw6GAgIAat9bEy9PmXsx4+d4sk9MAAHD2UeCgTmuSjkqSEjqGaHTXMFksFpMTAQDQ/BiGoalTp+rTTz/Vt99+qw4dOtT7OZxOp7Zs2aKoqKgGSNhyDO/EduIAgJaLXahQp3VJOZKkQXFMnQIA4Ezdddddev/99/XZZ5/J399faWlpkqTAwEB5e3tLkiZNmqR27dpp5syZkqTHHntMw4YNU+fOnZWbm6unn35aBw8e1C233GLa+2gOEjpWjRZefeCoKp0uedj4XSUAoOWgwEGd1h6sLnBOvksGAACo22uvvSZJGjNmTI3jb7/9tm688UZJUnJysqzW42VDTk6Obr31VqWlpSkoKEgDBw7UihUr1LNnz8aK3Sz1bBugAC8P5ZdWatuRfMXHtDE7EgAAZw0FDmqVUVCq5KPFslik/u3bmB0HAIBm63R2REpMTKxx/7nnntNzzz3XQIlaLpvVoiEdQvTNjnQt35dFgQMAaFEYV4paVU+f6hbhrwAvT5PTAAAAnJ7RXaumUSXuzDQ5CQAAZxcFDmp1fPoU698AAIDmY2z3cEnSuuQc5RVXmJwGAICzhwIHtXIXOLGsfwMAAJqP6CAfdY3wk9Nl6Ps9jMIBALQcFDg4QUm5U9sO50liBA4AAGh+xnarGoXz3c4Mk5MAAHD2UODgBPsyC1XpMhTk46l2bbzNjgMAAFAv1dOoEndnyuU69SLSAAA0BxQ4OEHy0WJJUlyorywWi8lpAAAA6mdgbJD8vTx0tKhcmw7lmh0HAICzggIHJziYXVXgxAb7mJwEAACg/jxtVo3qEiaJaVQAgJaDAgc1FJdX6kBWoSQpNsTX5DQAAABnZky3YwXOLhYyBgC0DB5mB0DTsfVwni59Zbmcx+aKx4YwAgcAADRPY44tZLzlcJ4y8ksVHuBlciIAAH4dRuDA7Z0VSe7yRmIEDgAAaL7C/B2Kjw6UJCUyCgcA0AKcUYHzyiuvKC4uTl5eXho6dKhWr1590vNzc3N11113KSoqSg6HQ127dtUXX3xxRoHRcIornDXuMwIHAAA0Z9WjcL7bxTo4AIDmr94FzgcffKDp06fr4Ycf1vr16xUfH6/x48crI6P2H4zl5eU6//zzlZSUpI8++ki7du3SG2+8oXbt2v3q8Di79qQX1Lgf4ms3KQkAAMCvd+6x7cR/2JOl8kqXyWkAAPh16l3gPPvss7r11ls1ZcoU9ezZU7Nnz5aPj4/mzJlT6/lz5szR0aNHtWDBAp1zzjmKi4vT6NGjFR8f/6vD4+wpr3Rpf2aR+/6E3pFsIQ4AAJq1Pu0CFepnV2FZpdYmHTU7DgAAv0q9Cpzy8nKtW7dO48aNO/4EVqvGjRunlStX1nrNwoULlZCQoLvuuksRERHq3bu3/vGPf8jpdNZ6PsyxP6tQlS5D/g4PbXnkAr10fX+zIwEAAPwqVqtFo7syjQoA0DLUq8DJysqS0+lUREREjeMRERFKS0ur9Zr9+/fro48+ktPp1BdffKEHH3xQs2bN0t///vc6X6esrEz5+fk1bmhYu9Kqpk91jfSXv5enPGysbw0AAJq/6mlU3+6kwAEANG8N/rd0l8ul8PBw/etf/9LAgQN17bXX6q9//atmz55d5zUzZ85UYGCg+xYTE9PQMVu96gKnW6S/yUkAAADOnhFdQmWzWrQvs0jJ2cVmxwEA4IzVq8AJDQ2VzWZTenp6jePp6emKjIys9ZqoqCh17dpVNpvNfaxHjx5KS0tTeXl5rdfMmDFDeXl57ltKSkp9YuIM7D62gHG3CAocAADQcgR6e2pQbJAkplEBAJq3ehU4drtdAwcO1NKlS93HXC6Xli5dqoSEhFqvOeecc7R37165XMdX/t+9e7eioqJkt9e+y5HD4VBAQECNGxrWTkbgAACAFmos06gAAC1AvadQTZ8+XW+88Ybeeecd7dixQ3fccYeKioo0ZcoUSdKkSZM0Y8YM9/l33HGHjh49qrvvvlu7d+/WokWL9I9//EN33XXX2XsX+FUKyyp1KKdEktSVETgAAKCFqV4HZ+X+bJWUs5EGAKB58qjvBddee60yMzP10EMPKS0tTf369dPixYvdCxsnJyfLaj3eC8XExOirr77SPffco759+6pdu3a6++679cADD5y9d4FfpXr6VJi/Q8G+tY+KAgAAaK66hPupXRtvHc4t0Yp9WTqvR8SpLwIAoImpd4EjSVOnTtXUqVNrfSwxMfGEYwkJCVq1atWZvBQawe5j06e6M30KAAC0QBaLRWO7h+m9Vcn6dmcGBQ4AoFlir2ho17EROEyfAgAALVX1NKrEXZkyDMPkNAAA1N8ZjcBBy7Am6ai2Hs5jC3EAANDiJXQMlcPDqsO5JdqVXqDukWySAQBoXihwWrGrZ6+scZ8txAEAQEvlbbfpnM6h+nZnhpbuyKDAAQA0O0yhgiTJYpG6RPiZHQMAAKDBjDu29s2S7ekmJwEAoP4ocFqpX879bh/sIx87A7IAAEDLdV6PqnVwNqbkKqOg1OQ0AADUDwVOK1Vc7qxxv3MYo28AAEDLFhHgpfjoQEnStzsyTE4DAED9UOC0UnklFTXusxcDAABoDaqnUX2zg2lUAIDmhQKnlcovrVngXDc4xqQkAAAAjWdcz6oC54c9WSr5xYhkAACaMgqcViq/pFKSFOxr13//kKALekWanAgAAKDhdY/0V7s23iqrdOnHvVlmxwEA4LRR4LRS+cemUMUEeWtIh2CT0wAAADQOi8Wi84+NwvmG3agAAM0IBU4rVT2FKsDb0+QkAAAAjat6HZylO9PlcrESIACgeaDAaaWqR+AEeFHgAACA1mVIh2D5OzyUVViujYdyzY4DAMBpocBppfJLq9bACfD2MDkJAABA47J7WDW6W5gk6X+bjpicBgCA00OB00q5R+AwhQoAALRCVw6MliT9Z3WysgrLTE4DAMCpUeC0UnlMoQIAoFHMnDlTgwcPlr+/v8LDw3XZZZdp165dp7zuww8/VPfu3eXl5aU+ffroiy++aIS0rceYrmHqGx2o0gqX3vrxgNlxAAA4JQqcVopFjAEAaBzLli3TXXfdpVWrVmnJkiWqqKjQBRdcoKKiojqvWbFiha6//nrdfPPN2rBhgy677DJddtll2rp1ayMmb9ksFovuGN1JkrRw4xEZBosZAwCaNhZAaaXyS46tgePFfwIAADSkxYsX17g/d+5chYeHa926dRo1alSt17zwwgu68MILdd9990mSHn/8cS1ZskQvv/yyZs+e3eCZW4ux3cPl7WnT4dwSbTuSr97tAs2OBABAnRiB00oxAgcAAHPk5eVJkoKDg+s8Z+XKlRo3blyNY+PHj9fKlSsbNFtr4+Vp06iuoZKkr7elmZwGAICTo8BppdwFDmvgAADQaFwul6ZNm6ZzzjlHvXv3rvO8tLQ0RURE1DgWERGhtLS6S4aysjLl5+fXuOHUxveKlCR9uTWNaVQAgCaNAqcVKS6v1F8/3aIFGw67p1AFso04AACN5q677tLWrVs1f/78s/7cM2fOVGBgoPsWExNz1l+jJTqvR4TsNqv2ZBRqZ1qB2XEAAKgTBU4rcv9HmzXvp2RN+2CjexeqEF+HyakAAGgdpk6dqs8//1zfffedoqOjT3puZGSk0tPTaxxLT09XZGRkndfMmDFDeXl57ltKSspZyd3SBXp7amz3MEnSwk1HTE4DAEDdKHBaiY0pufp8c2qNY3EhPgrytZuUCACA1sEwDE2dOlWffvqpvv32W3Xo0OGU1yQkJGjp0qU1ji1ZskQJCQl1XuNwOBQQEFDjhtNzSXw7SexGBQBo2ihwWomNyTknHBsYW/fiiQAA4Oy466679N577+n999+Xv7+/0tLSlJaWppKSEvc5kyZN0owZM9z37777bi1evFizZs3Szp079cgjj2jt2rWaOnWqGW+hxTuvR7h87VW7Ua2v5TMTAABNAQVOK5GaV3rCsUFxQSYkAQCgdXnttdeUl5enMWPGKCoqyn374IMP3OckJycrNfX4SNnhw4fr/fff17/+9S/Fx8fro48+0oIFC0668DHOnJenTRccW8x44UamUQEAmiZWsG0lDudW/ZZvZJdQ/bAnS5I0KJYCBwCAhnY6U3ISExNPOHb11Vfr6quvboBEqM0l/drq0w2HtWhLqh68uKc8bPyeEwDQtPCTqZWoHoEzMb6tIgIc6hbhr05hfianAgAAaBpGdA5VoLensgrLtT451+w4AACcgAKnlThybARO1wh/fTN9tD69a7isVovJqQAAAJoGT5tV53YPlyQt2Z5mchoAAE5EgdMKVDpdSs+vGoHTNtBL/l6e8rEzew4AAODnzu8ZIUlasj2d3agAAE0OBU4rkF5QJpchedosCvVzmB0HAACgSRrVNUx2m1VJ2cXalV5gdhwAAGqgwGkFUo9Nn4oM9GLaFAAAQB38HB4a0y1MkvTxukMmpwEAoCYKnFagegeqtoHeJicBAABo2q4eFCNJ+nTDYVU4XSanAQDgOAqcVmBfZpEkqV0bChwAAICTGdMtTKF+dmUVluu7nRlmxwEAwI0Cp4UzDENfbEmVJCV0CjE5DQAAQNPmabPq8v7tJEkfMo0KANCEUOC0cDtSC7Q3o1B2D6vG9440Ow4AAECTVz2N6rudGcoqLDM5DQAAVShwWrh5Px2UJI3tFqYAL0+T0wAAADR9XSP8FR8dqEqXoQUbDpsdBwAASRQ4LdqKvVma91OyJOn3w+LMDQMAANCMVI/C+XDtIRmGYXIaAAAocFq015btkyT9dmh7jegSanIaAACA5mNifFs5PKzalV6gLYfzzI4DAAAFTkv0yMJt+sO/12rzoaoPG9cNjjE5EQAAQPMS6O2p8b2q1g/8cC2LGQMAzEeB08IUlFZo7ookfbUtXXklFbJYpM7hfmbHAgAAaHauHhQtSfps42GVVjhNTgMAaO0ocFqY3emFNe63D/aRj93DpDQAAADN1/BOoWob6KX80kp9vT3d7DgAgFaOAqeF2Z1eUON+twh/k5IAAAA0bzarRVcOrBqF8/6xnT0BADALBU4LsyutZoHTlQIHAADgjF0/pL08rBat2n9UWw6xmDEAwDwUOC3MLwucIF+7SUkAAACav7ZtvHVx3yhJ0hs/7Dc5DQCgNaPAaUEMw9CuY1OohsQFq2OYr67o387kVAAAAM3bLSM7SpIWbUnVoZxik9MAAForCpwWJKe4QkeLyiVJ79w0RN/+eQwjcAAAAH6l3u0CdU7nEDldht5enmR2HABAK0WB04JkFJRKkoJ8POVtt5mcBgAAoOW49dgonP+uSVFJOVuKAwAaHwVOC5JdWDX6JtTPYXISAACAlmVUlzDFBHuroKxSX21LMzsOAKAVosBpQbIKyyRJIX5MmwIAADibrFaLrhxQtaX4R+sOmZwGANAaUeC0INUjcEIYgQMAAHDWVRc4y/dlaU96wSnOBgDg7KLAaUGyi6pG4ISycDEAAMBZFxPso/G9ImQY0ovf7jU7DgCglaHAaUGyChiBAwAA0JD+dF4XSdLnm48o5ShbigMAGg8FTjNVUFqhzYdyaxxzj8ChwAEAAGgQvdoGaninEBmG9OXWVLPjAABaEQqcZmrmlzt1ycvL9eWW4x8cstxr4DCFCgAAoKFM6B0pSVq8ld2oAACNhwKnmapeOO+DtSnuY8dH4FDgAAAANJQLelUVOOuTc5WWV2pyGgBAa0GB00wVlFZKkn7ck6WjRVUjb9y7UPkyhQoAAKChRAR4aVBskCTpnZVJ5oYBALQaFDjNVHWBU+ky9MWWVBWXV6q43ClJCvWnwAEAAGhIfxjdSZL0zookZReWmZwGANAaUOA0UwWlFe6vP91wWC8urdrK0uFhla/dZlYsAACAVmFcj3D1aReo4nKn/r3qoNlxAACtAAVOM2QYhgrLKt331x3M0exl+yRJkYFeslgsZkUDAABoFSwWi24e0UGS9N81KXK6DJMTAQBaOgqcZqi43Knqzwjtg33cx4d1DNbMy/uYlAoAAKB1ubB3pAK9PXUkr1Tf78k0Ow4AoIWjwGmGqte/sVktuuf8LpKkawZFa/5tCRreOdTMaAAAAK2Gl6dNVw6IliS9+t1eGQajcAAADeeMCpxXXnlFcXFx8vLy0tChQ7V69erTum7+/PmyWCy67LLLzuRlcUz1+jf+Xh66rF87Jd47Rk9e0dfkVAAAAK3PraM6yOFh1ZqkHCXuYhQOAKDh1LvA+eCDDzR9+nQ9/PDDWr9+veLj4zV+/HhlZGSc9LqkpCTde++9Gjly5BmHRZX8YyNw/L08ZLFYFBfqK6uVdW8AAGiKvv/+e02cOFFt27aVxWLRggULTnp+YmKiLBbLCbe0tLTGCYx6iQr01o3D4yRJz32zm1E4AIAGU+8C59lnn9Wtt96qKVOmqGfPnpo9e7Z8fHw0Z86cOq9xOp264YYb9Oijj6pjx46/KjDkXsDY3+FpchIAAHAqRUVFio+P1yuvvFKv63bt2qXU1FT3LTw8vIES4te6bVRHeXlatflQnpbvzTY7DgCghapXgVNeXq5169Zp3Lhxx5/AatW4ceO0cuXKOq977LHHFB4erptvvvnMk8KtegqVn5eHyUkAAMCpTJgwQX//+991+eWX1+u68PBwRUZGum9WK0sXNlUhfg5dN7i9JLl3BgUA4Gyr1yeBrKwsOZ1ORURE1DgeERFR57DeH3/8UW+99ZbeeOON036dsrIy5efn17jhuOpFjAMocAAAaLH69eunqKgonX/++Vq+fPkpz+fzk7luHtFBVov0494s7c0oNDsOAKAFatBf5RQUFOj3v/+93njjDYWGnv7uSDNnzlRgYKD7FhMT04Apm5/jixgzhQoAgJYmKipKs2fP1scff6yPP/5YMTExGjNmjNavX3/S6/j8ZK6YYB+d273ql5zvrTpochoAQEtUrwInNDRUNptN6enpNY6np6crMjLyhPP37dunpKQkTZw4UR4eHvLw8NC7776rhQsXysPDQ/v21T7EdMaMGcrLy3PfUlJS6hOzxSv82SLGAACgZenWrZv+8Ic/aODAgRo+fLjmzJmj4cOH67nnnjvpdXx+Mt+khFhJ0odrU5RbXG5yGgBAS1OvAsdut2vgwIFaunSp+5jL5dLSpUuVkJBwwvndu3fXli1btHHjRvftkksu0dixY7Vx48Y6fzPkcDgUEBBQ44bjqneh8nNQ4AAA0BoMGTJEe/fuPek5fH4y38guoeoRFaCicqfe+vGA2XEAAC1MvRuA6dOna/LkyRo0aJCGDBmi559/XkVFRZoyZYokadKkSWrXrp1mzpwpLy8v9e7du8b1bdq0kaQTjuP0FbhH4DCFCgCA1mDjxo2KiooyOwZOwWKx6O7zOuv299br7eVJ+v2wWIUHeJkdCwDQQtS7wLn22muVmZmphx56SGlpaerXr58WL17sXtg4OTmZXRIa2PE1cBiBAwBAU1dYWFhj9MyBAwe0ceNGBQcHq3379poxY4YOHz6sd999V5L0/PPPq0OHDurVq5dKS0v15ptv6ttvv9XXX39t1ltAPVzQM1Lx0YHadChPf1+0Qy9e39/sSACAFuKMGoCpU6dq6tSptT6WmJh40mvnzp17Ji+JnyksYw0cAACai7Vr12rs2LHu+9OnT5ckTZ48WXPnzlVqaqqSk5Pdj5eXl+vPf/6zDh8+LB8fH/Xt21fffPNNjedA02W1WvT3y/ro0ld+1MJNR3TziA6Kj2ljdiwAQAtAA9AMHd9GnClUAAA0dWPGjJFhGHU+/stfbt1///26//77GzgVGlKf6EBd1r+dPll/WP/6fr9euWGA2ZEAAC0Ac52aodS8EklSiJ/d5CQAAACozW2jOkqSvtyaqv2ZhSanAQC0BBQ4zUxWYZmyCstlsUidw/3MjgMAAIBadI8M0Hndw+UypL8t2HrSUVgAAJwOCpxm5L1VB/XklzslSe2DfeRjZwYcAABAU/XwxF7y8rRqxb5s/W9zqtlxAADNHAVOM7EjNV9/W7BVH607JEnqGuFvciIAAACcTPsQH90xurMk6dXv9jIKBwDwq1DgNBMLNx2pcb97JAUOAABAU3fj8Dj52m3amVagxN2ZZscBADRjFDjNgGEY+t8vChxG4AAAADR9gT6eun5Ie0nS7MR9JqcBADRnFDjNwK70Ah3KKZG3p819jBE4AAAAzcPNIzvI02bRTweOakNyjtlxAADNFAVOM3A4p2rb8M7hfnrhun762296qAsjcAAAAJqFqEBvXdqvnSRp9jJG4QAAzgwFTjOQnl8mSQr3d+jSfu10y8iOJicCAABAfdw+uurz29fb07Uvs9DkNACA5ogCpxnIKCiVJIUHOExOAgAAgDPROdxf43pEyDBYCwcAcGYocJqB4yNwvExOAgAAgDN159hOkqSP1x/SjtR8k9MAAJobCpxmIJMROAAAAM3egPZB+k2fKLkM6fHPt8swDLMjAQCaEQqcZiCjgBE4AAAALcFfJnSX3cOqFfuytWR7utlxAADNCAVOM5CeXzUCJ4IROAAAAM1aTLCPbh3ZQZL0xBc7VFbpNDkRAKC5oMBp4pwuQ1mF5ZIYgQMAANAS3DGms8L8HTqYXax3ViSZHQcA0ExQ4DRxR4vK5XQZslikUD+72XEAAADwK/k5PHT/+G6SpJeW7lVOUbnJiQAAzQEFThNXPX0qxNchDxv/ugAAAFqCKwdEq2dUgArKKvX28gNmxwEANAM0Ak1cpnsBY9a/AQAAaCmsVoumnttZkjR3RZLySytMTgQAaOoocJq4DLYQBwAAaJEu7BWpzuF+yi+t1Ivf7DE7DgCgiaPAaeLS86tG4ESwgDEAAECLYrVa9Lff9JAkvb0iSTvT8k1OBABoyihwmjhG4AAAALRcY7qF68JekXK6DD24YKsMwzA7EgCgiaLAaeIy8lkDBwAAoCV7aGJPeXvatCYpRx+vP2x2HABAE0WB08SlVy9iHMAUKgAAgJaobRtv3T2uiyRp5hc7lFfMgsYAgBNR4DRxmce2EWcEDgAAQMt10zkd1DncT9lF5Xr6651mxwEANEEUOE2Yy2Uos5AROAAAAC2d3cOqxy/tLUma91OyNh/KNTcQAKDJocBpopbtzlT8Y1+rwlm1kF2YHyNwAAAAWrKETiG6tF9bGYb05/9uUkEpU6kAAMdR4DRR9324SQWllZKkYF+77B78qwIAAGjp/vabnooIcGhPRqGm/3cTu1IBANxoBZqocqfL/bWH1WJiEgAAADSWMH+H3pg0SHabVUu2p+vzzalmRwIANBEUOE3UzyubjGM7UQEAAKDl6xvdRneO7SRJeuzz7SourzQ5EQCgKaDAaYLySiqU87PtI28b1dHENAAAAGhsd4zppPbBPsosKNO/Vx40Ow4AoAmgwGmCkrOLJUmhfg59eHuCpo3rYnIiAAAANCaHh01/PLezJOn17/crp6jc5EQAALNR4DRBB48WSZLiQnw0OC5YPnYPkxMBAACgsV3ev506hfnqaFG5/vifDXK6WNAYAFozCpwm6OCxETixIb4mJwEAAIBZPGxWvXrDQHl72vTj3iy9vfyA2ZEAACaiwGmCDmZXjcCJDfExOQkAAADM1C3SXw9P7ClJmvX1bqUcLTY5EQDALBQ4TYxhGFqxL1uS1DXC3+Q0AAAAMNu1g2M0rGOwSiqc+r9Pt8gwmEoFAK0RBU4TsyElV4dySuRrt2l01zCz4wAAAMBkFotFM6/oK7uHVT/sydJ/16aYHQkAYAIKnCZm4cYjkqTze0bI224zOQ0AAPi1vv/+e02cOFFt27aVxWLRggULTnlNYmKiBgwYIIfDoc6dO2vu3LkNnhNNW4dQX/35/K6SpIc+26ZtR/JMTgQAaGwUOE3MD3syJUm/6dvW5CQAAOBsKCoqUnx8vF555ZXTOv/AgQP6zW9+o7Fjx2rjxo2aNm2abrnlFn311VcNnBRN3a0jO+rc7uEqq3Tp3g83q9LpMjsSAKARsT91E+J0GUo+tjBdjyjWvwEAoCWYMGGCJkyYcNrnz549Wx06dNCsWbMkST169NCPP/6o5557TuPHj2+omGgGrFaLnrk6XmOfSdSO1Hz9e9VBTTmng9mxAACNhBE4TciR3BJVOA3ZbVZFBXqbHQcAAJhg5cqVGjduXI1j48eP18qVK096XVlZmfLz82vc0PIE+9p17/hukqR/Lt6p3ekFJicCADQWCpwmpHr0TXSwt2xWi8lpAACAGdLS0hQREVHjWEREhPLz81VSUlLndTNnzlRgYKD7FhMT09BRYZIbhrTXqK5hKq1w6fZ/r1NucbnZkQAAjYACpwlJyi6SJMWF+JqcBAAANDczZsxQXl6e+5aSwk5FLZXVatGz18SrbaCX9mcV6bZ/r2M9HABoBShwmpDk7KoROO2DfUxOAgAAzBIZGan09PQax9LT0xUQECBv77qnWDscDgUEBNS4oeUK9XPo7SlD5O/w0OoDR/Xit3vNjgQAaGAUOE3I8RE4FDgAALRWCQkJWrp0aY1jS5YsUUJCgkmJ0FR1i/TX3y/vLUl66ds9+nJLqsmJAAANiQKnCTl4bAROLFOoAABoMQoLC7Vx40Zt3LhRUtU24Rs3blRycrKkqqlPkyZNcp9/++23a//+/br//vu1c+dOvfrqq/rvf/+re+65x4z4aOIu7ddONwxtL8OQ7p6/USv2ZpkdCQDQQChwmgiXy/hZgcMIHAAAWoq1a9eqf//+6t+/vyRp+vTp6t+/vx566CFJUmpqqrvMkaQOHTpo0aJFWrJkieLj4zVr1iy9+eabbCGOOj12aW9d2CtS5U6Xbn13rTYfyjU7EgCgAVgMwzDMDnEq+fn5CgwMVF5eXoudz52cXaxRT38nu4dV2x8dLw8b3RoAoPlpDT+zmwv+XbQupRVOTXl7jVbuz1awr10f3p6gTmF+ZscCAJyG0/2ZTUvQROxMy5ckdQ7zo7wBAABAvXh52vSvSQPVu12AjhaVa9Jbq5WaV/e28wCA5oemoInYnV4gqWoxOgAAAKC+/L08NXfKEHUM9dXh3BJNm79RzWCwPQDgNFHgNBG70gslUeAAAADgzFVtLz5Y3p42/XTgqP67NsXsSACAs4QCp4nYdWwKVbcIChwAAACcudgQX00/v6sk6bH/bVdSVpHJiQAAZwMFThNQVunU/syqH6xdGYEDAACAX+mmER00pEOwisqduuv99Sopd5odCQDwK1HgNAHf785SpctQRIBDbQO9zI4DAACAZs5mteiF6/opxNeubUfydd9Hm1gPBwCaOQqcJmDhpiOSpIv7tpXFYjE5DQAAAFqCqEBvvfa7gfKwWvT55lS99O1esyMBAH4FChyTFZZV6pvt6ZKkifFtTU4DAACAlmRIh2A9fllvSdKzS3brvg83qbzSZXIqAMCZoMAx2ROLdqikwqmOob6Kjw40Ow4AAABamOuHtNe9F3SVxSJ9uO6QZnyyhelUANAMUeCYaN3Bo/rP6mRZLNITl/dh+hQAAAAaxNRzu+jNSYNks1r08fpDTKcCgGaIAsdEH607JEm6vH87JXQKMTkNAAAAWrLzekTosUt7SaqaTlX9WRQA0DxQ4JikvNKlL7akSZKuHBBtchoAAAC0BjcMjdUfRneUJD3w8WZ9sSXV5EQAgNN1RgXOK6+8ori4OHl5eWno0KFavXp1nee+8cYbGjlypIKCghQUFKRx48ad9PzW4se9mcorqVCYv0PDOjL6BgAAAI3jgfHddcWAdnK6DN05b73eXn7A7EgAgNNQ7wLngw8+0PTp0/Xwww9r/fr1io+P1/jx45WRkVHr+YmJibr++uv13XffaeXKlYqJidEFF1ygw4cP/+rwzU1OUbm2H8mXJC3cWLV1+G/6RMlmZe0bAAAANA6r1aKnruyryQmxkqRH/7dd/1510ORUAIBTsRj1XIJ+6NChGjx4sF5++WVJksvlUkxMjP74xz/qL3/5yymvdzqdCgoK0ssvv6xJkyad1mvm5+crMDBQeXl5CggIqE/cJuWGN1dp+d5sPXVlXz3yv20qLnfq4zuGa2BskNnRAAA4K1rKz+yWgH8XOBXDMPTklzv1+vf7JVXtVvXEZb1l5ZeLANCoTvdndr1G4JSXl2vdunUaN27c8SewWjVu3DitXLnytJ6juLhYFRUVCg4Ors9LN3vF5ZVavjdbknT/x5tVXO5UdJC3BrRvY24wAAAAtEoWi0V/mdBdfz6/q6wW6T+rk/XPr3ayxTgANFH1KnCysrLkdDoVERFR43hERITS0tJO6zkeeOABtW3btkYJ9EtlZWXKz8+vcWvuNqbknnDsiv7t2DocAAAAprFYLPrjeV301FXxkqTXl+3X9P9uUkm50+RkAIBf8mjMF3vyySc1f/58JSYmysvLq87zZs6cqUcffbQRkzW8dUk5kqRzOofoiv7RsntYdX7PiFNcBQAAADS8qwZGq7i8Uo/+b7s+3XBYu9IKNPemwQr3r/szOwCgcdVrBE5oaKhsNpvS09NrHE9PT1dkZORJr33mmWf05JNP6uuvv1bfvn1Peu6MGTOUl5fnvqWkpNQnZpO09mBVgXN+jwhdOTBaE+PbysvTZnIqAAAAoMqkhDi9d/NQhfjatT01XzfOWaP80gqzYwEAjqlXgWO32zVw4EAtXbrUfczlcmnp0qVKSEio87qnnnpKjz/+uBYvXqxBgwad8nUcDocCAgJq3JozwzC0IbmqwBkY27rW/gEAAEDzkdApRJ/cOVyhflUlznWvr1J6fqnZsQAAOoNtxKdPn6433nhD77zzjnbs2KE77rhDRUVFmjJliiRp0qRJmjFjhvv8f/7zn3rwwQc1Z84cxcXFKS0tTWlpaSosLDx776KJS80rVX5ppTysFnWL9Dc7DgAAAFCn2BBfvXvTUHeJc/FLP2r1gaNmxwKAVq/ea+Bce+21yszM1EMPPaS0tDT169dPixcvdi9snJycLKv1eC/02muvqby8XFdddVWN53n44Yf1yCOP/Lr0zcSu9AJJUodQX9k96t2ZAQAAAI2qZ9sAfXLHObr13bXalV6g699YpQt6Rui8HhG6amC02fEAoFU6o0WMp06dqqlTp9b6WGJiYo37SUlJZ/ISLcrutKoCh9E3AAAAaC7ah/jo07uGa8YnW/TZxiP6cmuavtyapiO5JfrTeV3MjgcArQ7DQRrBruoCJ4ICBwAAAM2Hj91Dz1/bT+/cNERTzomTJD27ZLc+23jY3GAA0Ao16jbirVX1FCpG4AAAAKC5sVgsGt01TKO7hsnb06ZXE/fpgY83q42PXaO7hpkdDwBaDUbgNDCny9CejKoFmylwAAAA0Jz9+YJuOrd7uEorXLpp7ho9/81uVThdZscCgFaBAqeB5RSXq7zSJYtFig7yMTsOAAAAcMZsVotm/26grhjQTk6Xoee/2aMpb69RXnGF2dEAoMWjwGlgBaWVkiQ/u4dsVovJaQAAAIBfx+5h1ayr4/XCdf3kY7fpx71ZuuD5ZfpxT5bZ0QCgRaPAaWAFpVW/jfDzYrkhAAAAtAwWi0WX9munD29PUMdQX6Xnl+n3c37Ss0t2y+kyzI4HAC0SBU4Dqx6B40+BAwAAgBamV9tALfrTSF0/JEaGIb24dI8mz1mto0XlZkcDgBaHAqeBVY/A8ffyNDkJAAAAcPZ5222aeUVfPXdtvLw9q6ZUXfTCD1q0OVWGwWgcADhbKHAaGCNwAAAA0Bpc3j9aC+46R3EhPkrLL9Vd76/XDW/+pOTsYrOjAUCLQIHTwNyLGDsocAAAANCydYv015d3j9Ld53WRw8OqFfuyNeGF7zXr613ukekAgDNDgXOWvPnDfl3/r1Un/GA6PgKHKVQAAABo+bztNt1zflctuWe0hsQFq6jcqZe+3atrX1+lrMIys+MBQLNFgVNPhmFoX2ahKp0u97Ef92Tp74t2aOX+7BO2T6wudAKYQgUAAIBWpH2Ij/5z2zC9esMAhfo5tD01Xxe98IO+25lhdjQAaJYocOpp4aYjOm/WMk37YKOkqkLnwc+2uh8/WlxzxX3WwAEAAJL0yiuvKC4uTl5eXho6dKhWr15d57lz586VxWKpcfPy8mrEtMDZYbNadFGfKH14e4I6hfkqo6BMU+au0S3vrNXB7CKz4wFAs0KBU0+vJe6TJH2+OVWSdDi3RAeyjv/wyS78RYFTVjUChzVwAABovT744ANNnz5dDz/8sNavX6/4+HiNHz9eGRl1j0QICAhQamqq+3bw4MFGTAycXR1CffX5H0fq1pEd5GG16Jsd6Tr/ue/1z8U7lZZXanY8AGgWKHDqycvTVuP+uoM5Ne5n/2JeL2vgAACAZ599VrfeequmTJminj17avbs2fLx8dGcOXPqvMZisSgyMtJ9i4iIaMTEwNnnbbfpr7/pqcXTRmpkl1CVV7r0WuI+jXrqO/13bYrZ8QCgyaPAqScvz5rfsrVJVQWO1VJ1P6uIKVQAAOC48vJyrVu3TuPGjXMfs1qtGjdunFauXFnndYWFhYqNjVVMTIwuvfRSbdu2rTHiAg2uc7i/3r1piN6YNEgDY4NU7nTp/o8267Z312r1gaMyDMPsiADQJFHg1NMvR+CsPTYCZ3yvSElSVsEvR+BUTaFiBA4AAK1TVlaWnE7nCSNoIiIilJaWVus13bp105w5c/TZZ5/pvffek8vl0vDhw3Xo0KE6X6esrEz5+fk1bkBTZbFYdH7PCH34hwT96dzOslqkr7en65rXV+qyV1doU0qu2REBoMmhwKkn758VOHklFdqVVvXh6IJeVR/KshmBAwAAfqWEhARNmjRJ/fr10+jRo/XJJ58oLCxMr7/+ep3XzJw5U4GBge5bTExMIyYGzozVatH0C7rpq2mjdPXAaHl72rQpJVdXvrZCs77epaQsFjoGgGoUOPVkrZ4rJelAVpFchuRhtahnVKCkk62BQ4EDAEBrFBoaKpvNpvT09BrH09PTFRkZeVrP4enpqf79+2vv3r11njNjxgzl5eW5bykprCmC5qNLhL+evjpey+4fo4v6RKrSZeilb/dqzDOJGv30d7rt3bUsdgyg1aPAqaeyCqf76+qtDwO8PRXqZ5ck5RRXqNLpkiRVOF0qOXY+U6gAAGid7Ha7Bg4cqKVLl7qPuVwuLV26VAkJCaf1HE6nU1u2bFFUVFSd5zgcDgUEBNS4Ac1NuL+XXvntAL14fX+N7BIqm9Wig9nF+np7um7791rllVSYHREATMOwkHoqLj9e4CRlFUuSArw81MbHLqtFchnS0eJyhft7qais0n0u24gDANB6TZ8+XZMnT9agQYM0ZMgQPf/88yoqKtKUKVMkSZMmTVK7du00c+ZMSdJjjz2mYcOGqXPnzsrNzdXTTz+tgwcP6pZbbjHzbQCNwmKx6JL4trokvq2yC8v0494sPbhgqzYfytOop77T9PO76nfDYmX72ch4AGgNaBXqqaSOETg2q0XBvnZlFZYru7CqwKmePuXwsMruwWAnAABaq2uvvVaZmZl66KGHlJaWpn79+mnx4sXuhY2Tk5NltR7/rJCTk6Nbb71VaWlpCgoK0sCBA7VixQr17NnTrLcAmCLEz6FL+7VT+2Af3ffRZu3NKNTDC7fphaV7dP2QGE0d20XedtupnwgAWgAKnHoq+fkInOoC59j0qBBfh7IKy5V1bB2cxF0ZkqRQP0cjpwQAAE3N1KlTNXXq1FofS0xMrHH/ueee03PPPdcIqYDmoX/7IH01bZTe/+mgZi3ZraNF5Xrlu336cO0h3Taqo347tL187PzVBkDLxp9y9VRzBM6xKVTeVd/GED+7lC7d+d56OTytyi2umqN704gOjR8UAAAAaEFsVot+nxCn64a01zfb0/X3RTt0OLdEf1+0Q68m7tOU4XGaGN9WcaG+ZkcFgAbBvJ56+vkInOotw6tH4AxoHyRJKiirVFZhuSpdhkZ2CdWU4XGNnhMAAABoiTxtVk3oE6Xv7h2jJ6/oo/bBPjpaVK5ZS3ZrzDOJuuC5ZXrzh/011qMEgJaAETj19PMCp1qgd1WB8+cLuuqKAe1U4TQkSVaLFBfqW2PrcQAAAAC/nt3DquuGtNdVA6P1v81H9PG6w1q1P1u70wv190U79OYPB3T9kPY6r0e4ercLNDsuAPxqFDi1MAxDLyzdo05hfpoY37bGYz+fQlUt4FiBY7FY1DHMr1EyAgAAAJA8bFZd3j9al/ePVl5JhRZtTtXsZfuUfLRYz32zW899s1uXxLfVfeO7KSbYx+y4AHDGKHBqsS+zUM9/s0dBPp41CpzySpcqXcYJ5wd48W0EAAAAzBbo7anfDm2vKwa004drU7R8b7a+2p6mhZuOaNGWVJ3bPVzXDY7R6K5h8rCxmgSA5oXmoRZpeVW7SOUUV6is0imHR9XWhLWNvpGOj8ABAAAAYD4vT5t+nxCn3yfEaevhPM38coeW783Wku3pWrI9XREBDk05p4N+PyxWvg7+SgSgeeBPq1pkF5W5vz5aVK6oQG9JNde/sVqk6sE41YsYAwAAAGhaercL1LxbhmlPeoE+WJOiTzYcVnp+mZ78cqdeX7ZPY7uH65xOoZoY31Z2D0blAGi6+BOqFlmF5e6vs3/2dfUIHH+Hh9q28XYfr95GHAAAAEDT1CXCX3+7uKdWzThPT1/VV3EhPsoprtAn6w/rzx9u0qinvtPsZfuUmldidlQAqBXNQy2yC4+PwMn62dfVI3C87DbFhvjoUE7VH+6MwAEAAACaB7uHVVcPitHl/dtp2e5MbUzJ1QdrUpSWX6onv9ypJ7/cqcFxQZoY31YTekcpzN9hdmQAkESBU6ufj7rJqjECp1KS5GO3qX2wr5YrWxJr4AAAAADNjYfNqvN6ROi8HhGaem5nLdhwWB+vO6zVSUe1JilHa5Jy9MjCbUroFKKJfdvq/J4RCvGjzAFgHgqcWvx81E12jRE4LkmSt6dNYX529/FAChwAAACg2XJ42HTt4Pa6dnB7peaVaNHmVP1vc6o2peRq+d5sLd+brb98skW92gZoRJdQjekarqEdgmW1WsyODqAVocCpRVbRz9bA+dnXxeVVI3C87TYF+R4vcBwsdgYAAAC0CFGB3rplZEfdMrKjkrOL9fmWI/p8U6q2p+Zr25Gq2+vL9qtjqK8u6hOlhE4h6hfTht2sADQ4/pSpRZ1r4BxbxNjb06Z+MW3cxy0WmncAAACgpWkf4qM7x3TWnWM6K6OgVCv2Zuv7PZn6elu69mcV6eXv9url7/bKZrVoWMdgXRrfTuN7RSrQhxH6AM4+Cpxa1LkGzrFFjH3sNvVvH6QXr++v6CDvE64HAAAA0LKE+3vpsv7tdFn/diosq9SS7WlK3JWptUk5Opxb4p5q9cAnm9W3XaAu6BWpLuF+Gts9XJ42RuwD+PUocH6huLzSPdJG+sUaOMeOe3naJEmXxLdt3HAAAAAATOfn8NDl/aN1ef9oSdLB7CJ9vjlVn208rN3phdp0KE+bDuVJkjqF+eqS+HYa0iFY/du3cf9dAgDqiwLnF34++uaX96sLHB87f+gCAAAAqBIb4qu7xnbWXWM7Kz2/VF9tS9PapBz9sCdT+zKL9Nw3uyVJnjaLBsUGa2z3MA1oH6Te7QIpdACcNgqcX8g8NuLGbrOq3OlSRkGppry9WpJ0IKtIUtUaOAAAAADwSxEBXpqUEKdJCXHKK6nQwk1HtPrAUa0+kK30/DKt3J+tlfuzJVUVOj3bBmpA+zYa0D5IA2KD1DbQizU2AdSKAucXkrOLJUndo/x1IKtIBaWV+m5XZo1z2rZh3RsAAAAAJxfo7anfD4vV74fFyjAMHcwu1jc70vXTgaPakJyjrMJybUrJ1aaUXL29PEmSFBfio3O7R2h4pxDFx7RRmL/D3DcBoMmgwPmFdQdzJEmDYoP1zNXx2pSSW+NxP4eHxnYPNyEZAAAAgObKYrEoLtTXvUW5YRhKOVqiDSk5Wn8wR+uTc7U9NV9J2cWas/yA5iw/IEnqERWgTmG+6hDqq45hvhrTNVxBvnaT3w0AM1Dg/MKapKOSpMFxQeoa4a+uEf4mJwIAAADQ0lgsFrUP8VH7EB9d2q+dJKmwrFI/7snUdzsztSElR7vTC7UjNV87UvPd1zk8rIoJ9pGnzSq7h1Wdw/x0z/ldFB3kY9ZbAdBIKHB+Jr+0QrvSCyRJA+OCTE4DAAAAoDXxc3jowt5RurB3lCQpI79UG1NylZRdpANZxdqQnKOdaQXam1HovmZTSq4+Xn9IsSE+6hEZoB5RAeoR5a+hHUMU6O1p1lsB0AAocI5Zn5yjK15dIUlqH+yjcH8vkxMBaCqcTqcqKirMjgE0CZ6enrLZWMwfABpDeICXLugV6b5vGIZ2pRcop6hC5U6XSsorNXdFklbtP6qD2cU6mF2sxdvSJFVtyhIX6qP2wT7q2TZQscE+GhQXpIgAL3a+ApopCpxjXv52r/vrc1njBoCqPiSlpaUpNzfX7ChAk9KmTRtFRkaySwoANDKLxaLukQE1jl3YO0pHi8rdU622H8nXpkO52pdZpN3phdqdXqhvdmTUuCYuxEe92gaqZ9sAdY3wV4dQX7UP9pHdw9qYbwdAPVHgSMotLtf3u6t2mnrm6nhd2q+tyYkANAXV5U14eLh8fHz4yypaPcMwVFxcrIyMqr8IREVFmZwIACBJwb52ndM5VOd0DnUfO5BVpMM5JdqZlq99mUXakZqvbUfyVOE0lJRdrKTsYi3akuo+32a1qG0bL0UFeqtbhL8CvT01MDZIvdsFKtTPzucgoAmgwJH05dY0VboM9YgK0FUDo82OA6AJcDqd7vImJCTE7DhAk+Ht7S1JysjIUHh4ONOpAKCJ6hBatXPViC7HSx3DMJR9bLTO9iP52nYkX/uzCnUgs0hF5U6lHC1RytESrT5wtMZzeXvaFBPsrfbBPooJ9lFMkM/xr4O95WPnr5VAY+D/NEmJu6p+k3hxX36TCKBK9Zo3Pj7s6AD8UvX/FxUVFRQ4ANCMWCwWhfo5NLJLmEZ2CXMfNwxDGQVlSjlarOSjxdqXWaisgnKt2J+lQzklKqlwuqdj1SbUz+EueAK8POXjsCk+uo36tAtU2zbeslkZvQOcDRQ4knamVe081T+mjblBADQ5DBcGTsT/FwDQslgsFkUEeCkiwEuD4oJrPFZW6dSR3FIlHy1WyrFb8tFipeRULZpcUFqprMIyZRWWaUNy7gnPbbNaFObnUGSgl+JCfBQd5KNgX7uCfe0K9XOobRsvtW3jzcLKwGlo9QVOcXmlko8WS5K6RvqbnAYAAAAAmg6Hh809Has2ecUVSsmpKnWSjxaruKxS2UXl2piSq11pBap0GUrLL1XasS3R6xLqZ1fbNt5q18ZbnjarvDytigk6Pk0r5ljx42FjoWW0Xq2+wNmbUSjDqPoDI9TPYXYcAGhy4uLiNG3aNE2bNu20zk9MTNTYsWOVk5OjNm3aNGg2AABgrkAfTwX6BKp3u8ATHnO6DGUXlik1r1SpeSXan1Wk9LxSZReV62hRuTIKynQkt0TF5U5lFZYrq7Bcmw/l1flaFovUxttTwb52hfg6qv7pZ1eIr11h/g51CPVTqL9dbbztauPjyagetDitvsCpnj7VNYLRNwCat1NNa3n44Yf1yCOP1Pt516xZI1/f2n/rVpvhw4crNTVVgYEnfpA729544w29/PLL2rdvnzw8PNShQwddc801mjFjxmldn5SUpA4dOmjDhg3q16/faV0zfvx4ffPNN1q1apUGDx78K9IDANCy2awWhQd4KTzAS/F1LFdhGIbySip0OLdEh3NKdCS3RJUuQ0VlTqXkHJ+2lZpfKsOQcoorlFNcoX2ZRad8fW9Pm7vk8bHb5DKknlEB7nIn2MeusACHwv0dCvf3UoivXVbW60ET1uoLnN0UOABaiNTU41uBfvDBB3rooYe0a9cu9zE/Pz/314ZhyOl0ysPj1D8GwsLCTnnOz9ntdkVGRtbrmjMxZ84cTZs2TS+++KJGjx6tsrIybd68WVu3bm2w10xOTtaKFSs0depUzZkzx/QCp6KiQp6enqZmAADg17BYLGrjY1cbH7t6ta37lz+VTpdyiit0tKhc2UVlVf8sLD82mqdMaXmlSsouVk5RuXJLKuR0GSqpcFYVQ7kl7uf55Q5bNbNI/g4PBfp4KsDLU4HeVf8M8vVUkI9dnjarPKwWdQjzlZ/DQz52D/nYbfK22+RjryqLHB6M+kHDafUFzq70qgKnO+vfAGjmfl6aBAYGymKxuI9VT2v64osv9Le//U1btmzR119/rZiYGE2fPl2rVq1SUVGRevTooZkzZ2rcuHHu5/rlFCqLxaI33nhDixYt0ldffaV27dpp1qxZuuSSS2q8VvUUqrlz52ratGn64IMPNG3aNKWkpGjEiBF6++23FRVVtftfZWWlpk+frnfffVc2m0233HKL0tLSlJeXpwULFtT6fhcuXKhrrrlGN998s/tYr169TjjvzTff1KxZs3TgwAHFxcXpT3/6k+68805JUocOHSRJ/fv3lySNHj1aiYmJdX6P3377bV188cW64447NGzYMD377LPubbUlKTc3Vw888IAWLFigvLw8de7cWU8++aQuvvhiSdLy5cv117/+VatXr5bD4dCQIUM0f/58BQUF1TpVrV+/frrsssvcI6csFoteffVVffnll1q6dKnuu+8+Pfjgg7rtttv07bffKi0tTe3bt9edd96pu+++u0b2OXPmaNasWdq7d6+Cg4N15ZVX6uWXX9ZNN92kjIwMff755+5zKyoq1K5dO82cObPG9xcAALN42KwK83cozN8h6eR/dzMMQwVllcopqpqWdbSoXCUVTlVUurQrvUBFZZUqqXBWTePKL1NGQZmyi8pkGFJ+aaXySysllZz0NWpjs1oUGeClQG9P+Xt5KKD6n16eCvjZfT9H1T+rb76OYze7Bzt24aRadYHjchnuhbRO1vYCgFT1YaCkwtnor+vtaTtru/785S9/0TPPPKOOHTsqKChIKSkpuuiii/TEE0/I4XDo3Xff1cSJE7Vr1y61b9++zud59NFH9dRTT+npp5/WSy+9pBtuuEEHDx5UcHBwrecXFxfrmWee0b///W9ZrVb97ne/07333qt58+ZJkv75z39q3rx5evvtt9WjRw+98MILWrBggcaOHVtnhsjISC1btkwHDx5UbGxsrefMmzdPDz30kF5++WX1799fGzZs0K233ipfX19NnjxZq1ev1pAhQ/TNN9+oV69estvtdb6eYRh6++239corr6h79+7q3LmzPvroI/3+97+XJLlcLk2YMEEFBQV677331KlTJ23fvt29zfbGjRt13nnn6aabbtILL7wgDw8Pfffdd3I66/ff1COPPKInn3xSzz//vDw8PORyuRQdHa0PP/xQISEhWrFihW677TZFRUXpmmuukSS99tprmj59up588klNmDBBeXl5Wr58uSTpllv+v707j46qPMMA/sxMZrIIyQAhG1mBgNKQoCAx9ABWUhPABVCMSI+BKhYEiodFiRVQtI2VYi1LoaKQ1qNN1UPQg0iFsFgxAkEiIAJCg8GaBVmykGW2t39McmGSyYYhM3fy/M7JmTv3fvfO9/JNZl7efPfexzFq1CgUFxcrBbWtW7eiuroaaWlp7eobERGRO9BoNPVFEz2ierXtNPCGGT7lNWZU1NY/1tgfL9fP/DFbbagxW3HuYjWqTVbUmKyoNllRbbKg2mSFxSZNZvy0l49ei27XFHS6+Xhd81wHP4MXbvJu9GjQ1ReBGp57wc9bh5sMXvDRa3n3SA/SpQs4p8oqUVlrgZ9Bh1tCOQOHiFpWY7Zi0NJ/d/rrHl+eAj9Dx3xcL1++HL/85S+V5z179kRCQoLy/MUXX0ROTg4+/PBDzJkzp9njTJs2DVOmTAEA/OEPf8CqVatw4MABpKamOm1vNpuxfv169OvXDwAwZ84cLF++XNm+evVqZGRkYOLEiQCANWvWYNu2bS3GsmzZMkyaNAnR0dEYMGAAkpKSMG7cODz44IPQarVKm5UrV2LSpEkA7DNujh8/jr/97W9IT09XTg/r1atXq6d97dy5E9XV1UhJSQEA/OpXv8Kbb76pFHB27tyJAwcO4JtvvsGAAQMAAH379lX2f+WVVzBs2DD89a9/VdY5mzHUmkceeQTTp093WPfCCy8oyzExMcjLy8O7776rFHBeeuklLFiwwGFWTsPpXyNGjMDAgQPx1ltv4emnnwZgn2k0efJkh9PuiIiIPJnjDJ/2E7Hfbau4vBaVtRZU1Jjtj7Vmh+XKWgsqlUf7ckPxBwBqzTbUmu0zhzqCRgP46XXw1uvg46WFj14HQ/2jj14Lby/7qV9B3b2h1Wqg1QBajQY6rQYRPfzQ4yY9vLRaeHtp4WvQwVevg4/eftqYj97+nLOGOk+XLuDkn70EALg10sjb0RFRlzBs2DCH51VVVXj++efx0Ucfobi4GBaLBTU1NSgqKmrxOPHx8cryTTfdBH9/f5SVlTXb3s/PTyneAEBoaKjSvry8HKWlpRg+fLiyXafTYejQobDZbM0eMzQ0FHl5eTh27Bg+/fRTfP7550hPT8cbb7yB7du3o6amBmfOnMFjjz2GGTNmKPtZLJbrusDyxo0bkZaWplw3aMqUKVi0aBHOnDmDfv36oaCgAOHh4UrxprGCggJMnjy53a/bWOMxBIC1a9di48aNKCoqQk1NDUwmk3JR5rKyMvzwww8YM2ZMs8d8/PHH8frrr+Ppp59GaWkpPv74Y+zatesn95WIiKir0Gg0CA3wRWiAb+uNGxER1FlsqDZZcaXOgqo6i/JYVWdBVa1FmelzxWRFdZ398Uqd4/NqkwVX6q7OCLIfG/a2phs3i9yg08Jbr4VvQ2HHSwdvvb3o4+2lsz/qr1n20sJbf83yNe0N1+7ThuN0tf/Hd+kCzqHv7AWcoVHOp/wTEV3LV6/D8eUpLnndjtL4blILFy7Ejh078Kc//Qn9+/eHr68vHnzwQZhMLf/Vp/GFczUaTYvFFmftRaSdvXcuLi4OcXFxePLJJzFz5kyMHDkSe/fuxaBBgwDY71SVmJjosE/DaU1tdfHiReTk5MBsNmPdunXKeqvVio0bN+L3v/+9w7VwnGltu1arbfJvYjabm7RrPIbZ2dlYuHAhVq5ciaSkJHTv3h0rVqzA/v372/S6APDoo49i8eLFyMvLw+eff46YmBiMHDmy1f2IiIjop9NoNPUzYuyzYTqCrf4izldMFlTXWVFnsaHWfPXx2uXzVXW4WGWCALCJwGYTmKw2nP2xGlV1FpitNpisNtSarKiu37fWfDXvM9Vvr6y1dEjf20On1TQpBBl09kKQXmdf1ntplHUGL139sqb+otT27Xqtvb2Xzt5Wr9PY29YXlQy6qwWmAcHdr3um1k/VpQs4+d/Zr0B+e3QPF/eEiNRAo9F02KlM7mLfvn2YNm2acupSVVUVzp4926l9CAgIQHBwMA4ePIhRo0YBsBdGvvzyyzbf2rtBQ9HmypUrCA4ORlhYGP773/9i6tSpTts3XPOmtevQvP322wgPD29yQeVPPvkEK1euxPLlyxEfH4/vv/8ep06dcjoLJz4+Hrm5uQ6nO12rd+/eDncSq6ioQGFhYYv9AuxjOGLECOXCzABw5swZZbl79+6Ijo5Gbm5us9cU6tWrFyZMmIBNmzYhLy+vySla1DHWrl2LFStWoKSkBAkJCVi9erXDzLPG3nvvPSxZsgRnz55FbGws/vjHP2LcuHGd2GMiIlIrrVajXBy5lWs+X5eGIk+NyYqa+qKO8miywWS1os5sQ53FhjqLvVhUZ7YXeurqi0fKNiftlGVL0/Zm69U/eFltUj87yQqg6R++boTX0oZgwq19OuW1Gruu/4l4QgJSZ7FiQFB3VNdZcWskCzhE1DXFxsZi8+bNuPfee6HRaLBkyZIWZ9LcKHPnzkVmZib69++Pm2++GatXr8alS5davOjerFmzEBYWhrvuugvh4eEoLi7GSy+9hN69eyMpKQmA/dowv/3tbxEQEIDU1FTU1dUhPz8fly5dwvz58xEUFARfX19s374d4eHh8PHxcXp61ZtvvokHH3wQcXFxDusjIiKQkZGB7du3Y/z48Rg1ahQeeOABvPrqq+jfvz9OnDgBjUaD1NRUZGRkYPDgwcpMIYPBgN27d2Py5MkIDAzEXXfdhaysLNx7770wGo1YunRpm2YKxcbG4h//+Af+/e9/IyYmBm+99RYOHjyo3GELsF/4eObMmQgKClIutLxv3z7MnTtXafP444/jnnvugdVqRXp6equvS+3zr3/9C/Pnz8f69euRmJiI1157DSkpKTh58iSCgoKatP/8888xZcoUZGZm4p577sE777yDCRMm4Msvv2zyPiQiIupsWq0GPlr7rKHO/t90Q/HIsdBjnxXUUPAxWW0wWwVmqw1mq329yXL10VK/3mwTmC02WOqPaanfz2SxF5tM9e2vXTb66Vvv5I0i7ZSdnS0Gg0E2btwoX3/9tcyYMUOMRqOUlpY6bb9v3z7R6XTyyiuvyPHjx+W5554TvV4vR48ebfNrlpeXCwApLy9vb3dbZbPZOvyYRKR+NTU1cvz4campqXF1V67Lpk2bJCAgQHm+e/duASCXLl1yaFdYWCi/+MUvxNfXVyIiImTNmjUyevRomTdvntImKipK/vznPyvPAUhOTo7DcQICAmTTpk1OX6txX0REcnJy5NqvILPZLHPmzBF/f3/p0aOHPPPMMzJ58mR5+OGHm43x/fffl3HjxkloaKgYDAYJCwuTBx54QI4cOeLQ7u2335YhQ4aIwWCQHj16yKhRo2Tz5s3K9g0bNkhERIRotVoZPXp0k9fJz88XAHLgwAGn/Rg7dqxMnDhRREQuXLgg06dPl169eomPj4/ExcXJ1q1blbZ79uyRESNGiLe3txiNRklJSVH+ncrLyyUtLU38/f0lIiJCsrKyJCEhQZYtW6bs7+zfvra2VqZNmyYBAQFiNBpl1qxZsnjxYklISHBot379ehk4cKDo9XoJDQ2VuXPnOmy32WwSFRUl48aNcxrntVr6/biR39lqNnz4cJk9e7by3Gq1SlhYmGRmZjpt/9BDD8n48eMd1iUmJspvfvObNr8mx4KIiEgd2vqdrRFp30UIEhMTcfvtt2PNmjUA7LdNjYiIwNy5c7F48eIm7dPS0nDlyhVs3bpVWXfHHXdgyJAhWL9+fZtes6KiAgEBASgvL4e/v397uktEdF1qa2tRWFiImJgY+Pj4uLo7XY7NZsMtt9yChx56CC+++KKru9MlVFVVoU+fPti0aZNy167mtPT7we/spkwmE/z8/PD+++9jwoQJyvr09HRcvnwZH3zwQZN9IiMjMX/+fDz11FPKumXLlmHLli346quv2vS6HAsiIiJ1aOt3drsu2WwymXDo0CEkJydfPYBWi+TkZOTl5TndJy8vz6E9AKSkpDTbnoiIup7vvvsOGzZswKlTp3D06FHMmjULhYWFeOSRR1zdNY9ns9lQVlaGF198EUajEffdd5+ru+RxfvzxR1itVgQHBzusDw4ORklJidN9SkpK2tUeAOrq6lBRUeHwQ0RERJ6jXdfAaSkBOXHihNN9rjcBqaurU54zASEi8mxarRZZWVlYuHAhRARxcXHYuXMnbrnlFld3zeMVFRUhJiYG4eHhyMrKUm6TTuqTmZnZ7EWyiYiISP3cMktjAkJE1LVERERg3759ru5GlxQdHd1ht3Qn5wIDA6HT6VBaWuqwvrS0FCEhIU73CQkJaVd7AMjIyMD8+fOV5xUVFYiIiPgJPSciIiJ30q5TqDozASkvL1d+zp07155uEhEREbkNg8GAoUOHIjc3V1lns9mQm5ur3DGtsaSkJIf2ALBjx45m2wOAt7c3/P39HX6IiIjIc7SrgMMEhIiIiKj95s+fjw0bNuDvf/87vvnmG8yaNQtXrlzB9OnTAQCPPvooMjIylPbz5s3D9u3bsXLlSpw4cQLPP/888vPzMWfOHFeFQERERC7W7lOo5s+fj/T0dAwbNgzDhw/Ha6+91iQB6dOnDzIzMwHYE5DRo0dj5cqVGD9+PLKzs5Gfn4/XX3+9YyMhIroBbDabq7tA5Hb4e9F+aWlpOH/+PJYuXYqSkhIMGTIE27dvV64TWFRUBK326t/VRowYgXfeeQfPPfccnn32WcTGxmLLli2Ii4tzVQhERETkYu2+jTgArFmzBitWrFASkFWrViExMREAcOeddyI6OhpZWVlK+/feew/PPfcczp49i9jYWLzyyisYN25cm1+Pt8Ekos5ms9nw7bffQqfToXfv3jAYDNBoNK7uFpFLiQhMJhPOnz8Pq9WK2NhYh6IDwO9sd8KxICIiUoe2fmdfVwGnszEBISJXMJlMKC4uRnV1tau7QuRW/Pz8EBoaCoPB0GQbv7PdB8eCiIhIHdr6ne2Wd6EiInIHBoMBkZGRsFgssFqtru4OkVvQ6XTw8vLijDQiIiKiTsYCDhFRCzQaDfR6PfR6vau7QkREREREXVi77kJFRERERERERESdjwUcIiIiIiIiIiI3xwIOEREREREREZGbU8U1cBpulFVRUeHinhAREVFLGr6rVXCTS4/H/ImIiEgd2po/qaKAU1lZCQCIiIhwcU+IiIioLSorKxEQEODqbnRpzJ+IiIjUpbX8SSMq+BOZzWbDDz/8gO7du3fobUsrKioQERGBc+fOtXivdbXy9PgAz4+R8akb41M3T48PuDExiggqKysRFhYGrZZnarsS86frw/jUz9NjZHzqxvjU7UbF19b8SRUzcLRaLcLDw2/Y8f39/T3yzdXA0+MDPD9GxqdujE/dPD0+oONj5Mwb98D86adhfOrn6TEyPnVjfOp2I+JrS/7EP40REREREREREbk5FnCIiIiIiIiIiNxcly7geHt7Y9myZfD29nZ1V24IT48P8PwYGZ+6MT518/T4gK4RI3U8T3/fMD718/QYGZ+6MT51c3V8qriIMRERERERERFRV9alZ+AQEREREREREakBCzhERERERERERG6OBRwiIiIiIiIiIjfHAg4RERERERERkZvr0gWctWvXIjo6Gj4+PkhMTMSBAwdc3aXr8vzzz0Oj0Tj83Hzzzcr22tpazJ49G7169UK3bt3wwAMPoLS01IU9btmnn36Ke++9F2FhYdBoNNiyZYvDdhHB0qVLERoaCl9fXyQnJ+Pbb791aHPx4kVMnToV/v7+MBqNeOyxx1BVVdWJUTSvtfimTZvWZDxTU1Md2rhzfJmZmbj99tvRvXt3BAUFYcKECTh58qRDm7a8J4uKijB+/Hj4+fkhKCgIixYtgsVi6cxQnGpLfHfeeWeTMZw5c6ZDG3eNb926dYiPj4e/vz/8/f2RlJSEjz/+WNmu5rEDWo9PzWPnzMsvvwyNRoOnnnpKWaf2MSTXYu7kvpg/MX8C3Pfzm/mTescOYP4EuNEYSheVnZ0tBoNBNm7cKF9//bXMmDFDjEajlJaWurpr7bZs2TL52c9+JsXFxcrP+fPnle0zZ86UiIgIyc3Nlfz8fLnjjjtkxIgRLuxxy7Zt2ya/+93vZPPmzQJAcnJyHLa//PLLEhAQIFu2bJGvvvpK7rvvPomJiZGamhqlTWpqqiQkJMgXX3wh//nPf6R///4yZcqUTo7EudbiS09Pl9TUVIfxvHjxokMbd44vJSVFNm3aJMeOHZOCggIZN26cREZGSlVVldKmtfekxWKRuLg4SU5OlsOHD8u2bdskMDBQMjIyXBGSg7bEN3r0aJkxY4bDGJaXlyvb3Tm+Dz/8UD766CM5deqUnDx5Up599lnR6/Vy7NgxEVH32Im0Hp+ax66xAwcOSHR0tMTHx8u8efOU9WofQ3Id5k7umzuJMH9i/uTen9/Mn9Q7diLMn0TcZwy7bAFn+PDhMnv2bOW51WqVsLAwyczMdGGvrs+yZcskISHB6bbLly+LXq+X9957T1n3zTffCADJy8vrpB5ev8Zf0DabTUJCQmTFihXKusuXL4u3t7f885//FBGR48ePCwA5ePCg0ubjjz8WjUYj//vf/zqt723RXAJy//33N7uPmuITESkrKxMAsnfvXhFp23ty27ZtotVqpaSkRGmzbt068ff3l7q6us4NoBWN4xOxf4ld+4HfmJriExHp0aOHvPHGGx43dg0a4hPxnLGrrKyU2NhY2bFjh0NMnjqG1DmYO6kjdxJh/uSMmuITYf7kjJriE2H+dC21xKeG/KlLnkJlMplw6NAhJCcnK+u0Wi2Sk5ORl5fnwp5dv2+//RZhYWHo27cvpk6diqKiIgDAoUOHYDabHWK9+eabERkZqcpYCwsLUVJS4hBPQEAAEhMTlXjy8vJgNBoxbNgwpU1ycjK0Wi3279/f6X2+Hnv27EFQUBAGDhyIWbNm4cKFC8o2tcVXXl4OAOjZsyeAtr0n8/LyMHjwYAQHByttUlJSUFFRga+//roTe9+6xvE1ePvttxEYGIi4uDhkZGSgurpa2aaW+KxWK7Kzs3HlyhUkJSV53Ng1jq+BJ4zd7NmzMX78eIexAjzv9486D3Mn9eZOAPMnQH3xMX9S73cw8yf1jp0a8ievDjuSivz444+wWq0O/7gAEBwcjBMnTrioV9cvMTERWVlZGDhwIIqLi/HCCy9g5MiROHbsGEpKSmAwGGA0Gh32CQ4ORklJiWs6/BM09NnZ2DVsKykpQVBQkMN2Ly8v9OzZUxUxp6amYtKkSYiJicGZM2fw7LPPYuzYscjLy4NOp1NVfDabDU899RR+/vOfIy4uDgDa9J4sKSlxOsYN29yFs/gA4JFHHkFUVBTCwsJw5MgRPPPMMzh58iQ2b94MwP3jO3r0KJKSklBbW4tu3bohJycHgwYNQkFBgUeMXXPxAeofOwDIzs7Gl19+iYMHDzbZ5km/f9S5mDupN3cCmD8xf3Kvz2/mT3ZqGzvmT+4xhl2ygONpxo4dqyzHx8cjMTERUVFRePfdd+Hr6+vCntH1ePjhh5XlwYMHIz4+Hv369cOePXswZswYF/as/WbPno1jx47hs88+c3VXbojm4nviiSeU5cGDByM0NBRjxozBmTNn0K9fv87uZrsNHDgQBQUFKC8vx/vvv4/09HTs3bvX1d3qMM3FN2jQINWP3blz5zBv3jzs2LEDPj4+ru4Okdti7uR5mD+pB/MndWL+5B665ClUgYGB0Ol0Ta4aXVpaipCQEBf1quMYjUYMGDAAp0+fRkhICEwmEy5fvuzQRq2xNvS5pbELCQlBWVmZw3aLxYKLFy+qMua+ffsiMDAQp0+fBqCe+ObMmYOtW7di9+7dCA8PV9a35T0ZEhLidIwbtrmD5uJzJjExEQAcxtCd4zMYDOjfvz+GDh2KzMxMJCQk4C9/+YvHjF1z8TmjtrE7dOgQysrKcNttt8HLywteXl7Yu3cvVq1aBS8vLwQHB3vEGFLnY+6k7liZP6knPuZPV6ntO5j501VqGzs15U9dsoBjMBgwdOhQ5ObmKutsNhtyc3MdzuNTq6qqKpw5cwahoaEYOnQo9Hq9Q6wnT55EUVGRKmONiYlBSEiIQzwVFRXYv3+/Ek9SUhIuX76MQ4cOKW127doFm82mfJioyffff48LFy4gNDQUgPvHJyKYM2cOcnJysGvXLsTExDhsb8t7MikpCUePHnVItHbs2AF/f39lqqartBafMwUFBQDgMIbuGp8zNpsNdXV1qh+75jTE54zaxm7MmDE4evQoCgoKlJ9hw4Zh6tSpyrInjiHdeMyd1Js7AcyfAPePj/lTU2r7Dm6M+ZN6xk5V+VOHXQ5ZZbKzs8Xb21uysrLk+PHj8sQTT4jRaHS4arRaLFiwQPbs2SOFhYWyb98+SU5OlsDAQCkrKxMR+y3PIiMjZdeuXZKfny9JSUmSlJTk4l43r7KyUg4fPiyHDx8WAPLqq6/K4cOH5bvvvhMR+20wjUajfPDBB3LkyBG5//77nd4G89Zbb5X9+/fLZ599JrGxsW5zm8iW4qusrJSFCxdKXl6eFBYWys6dO+W2226T2NhYqa2tVY7hzvHNmjVLAgICZM+ePQ63EqyurlbatPaebLgN39133y0FBQWyfft26d27t1vcarC1+E6fPi3Lly+X/Px8KSwslA8++ED69u0ro0aNUo7hzvEtXrxY9u7dK4WFhXLkyBFZvHixaDQa+eSTT0RE3WMn0nJ8ah+75jS+M4Tax5Bch7mT++ZOIsyfmD+59+c38yf1jp0I8ycR9xnDLlvAERFZvXq1REZGisFgkOHDh8sXX3zh6i5dl7S0NAkNDRWDwSB9+vSRtLQ0OX36tLK9pqZGnnzySenRo4f4+fnJxIkTpbi42IU9btnu3bsFQJOf9PR0EbHfCnPJkiUSHBws3t7eMmbMGDl58qTDMS5cuCBTpkyRbt26ib+/v0yfPl0qKytdEE1TLcVXXV0td999t/Tu3Vv0er1ERUXJjBkzmiTH7hyfs9gAyKZNm5Q2bXlPnj17VsaOHSu+vr4SGBgoCxYsELPZ3MnRNNVafEVFRTJq1Cjp2bOneHt7S//+/WXRokVSXl7ucBx3je/Xv/61REVFicFgkN69e8uYMWOU5ENE3WMn0nJ8ah+75jROQNQ+huRazJ3cF/Mn5k8i7vv5zfxJvWMnwvxJxH3GUCMi0nHzeYiIiIiIiIiIqKN1yWvgEBERERERERGpCQs4RERERERERERujgUcIiIiIiIiIiI3xwIOEREREREREZGbYwGHiIiIiIiIiMjNsYBDREREREREROTmWMAhIiIiIiIiInJzLOAQEREREREREbk5FnCIiIiIiIiIiNwcCzhERERERERERG6OBRwiIiIiIiIiIjfHAg4RERERERERkZv7P2nhL4bGi1BTAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Plotting model Accuracy and Loss (Visualisasi Plot Hasil Akurasi dan Loss)\n", "# Plot Akurasi\n", "plt.figure(figsize=(14, 5))\n", "plt.subplot(1, 2, 1)\n", "plt.plot(train.history['accuracy'],label='Training Set Accuracy')\n", "plt.legend(loc='lower right')\n", "plt.title('Accuracy')\n", "# Plot Loss\n", "plt.subplot(1, 2, 2)\n", "plt.plot(train.history['loss'],label='Training Set Loss')\n", "plt.legend(loc='upper right')\n", "plt.title('Loss')\n", "plt.show()" ] }, { "attachments": {}, "cell_type": "markdown", "id": "odsh6gL8CAfE", "metadata": { "id": "odsh6gL8CAfE" }, "source": [ "Terlihat bahwa model pelatihan chatbot dengan algoritma Neural Network + LSTM menghasilkan model yang baik dan tidak terjadi overfitting atau underfitting. Sehingga, model ini layak dilakukan pengujian dan evaluasi model chatbot yang diperoleh." ] }, { "attachments": {}, "cell_type": "markdown", "id": "WcOYpQfuln4T", "metadata": { "id": "WcOYpQfuln4T" }, "source": [ "# 07 Testing Chatbot Dan Tambahkan Suara Pada Chatbot\n", "\n", "Setelah mengetahui hasil dari akurasi dan loss pada model yang telah ditetapkan dengan algoritma Neural Network dan LSTM. Maka, tahapan selanjutnya adalah menguji atau testing pada chatbot yang telah dilatih sebelumnya dan melihat apakah sesuai atau tidak pada saat kita masukan teks kalimat pertanyaannya. \n", "\n", "Pada pengujian ini menggunakan metode input atau masukan sesuai dengan kalimat pertanyaan yang dimasukkan." ] }, { "cell_type": "code", "execution_count": 48, "id": "fao4rG4rlh1D", "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 753 }, "id": "fao4rG4rlh1D", "outputId": "b26f1f8f-257f-411d-c21f-e3949d0daf6e" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "👨‍🦰 Kamu : halo\n", "1/1 [==============================] - 0s 406ms/step\n", "🤖 SafeBot : Hai! Safebot di sini. Mau tau informasi tentang apa nih?\n" ] }, { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "============================================================\n", "\n", "👨‍🦰 Kamu : apa itu cybercrime\n", "1/1 [==============================] - 0s 26ms/step\n", "🤖 SafeBot : Cybercrime (kejahatan dunia maya) adalah kejahatan yang dilakukan di dunia maya (internet) dan mengakibatkan kerugian atau dampak negatif pada korban. Kejahatan dunia maya dapat dilakukan oleh individu, kelompok atau organisasi dan dapat melibatkan pencurian identitas, penipuan, peretasan, serangan malware, pencurian data, dan aktivitas ilegal lainnya yang dilakukan melalui komputer atau jaringan internet.\n" ] }, { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "============================================================\n", "\n", "👨‍🦰 Kamu : bagaimana menghindari penipuan online?\n", "1/1 [==============================] - 0s 25ms/step\n", "🤖 SafeBot : Untuk menghindari penipuan online, berikut adalah beberapa langkah yang dapat Anda ikuti:\n", "\n", "1. Berhati-hatilah terhadap penawaran yang terlalu bagus untuk menjadi kenyataan. Jika sesuatu terdengar terlalu bagus untuk dipercaya, mungkin itu bukanlah kenyataan.\n", "\n", "2. Selalu periksa reputasi dan keandalan penjual sebelum melakukan pembelian online. Baca ulasan dari pelanggan sebelumnya untuk mendapatkan informasi yang lebih baik.\n", "\n", "3. Jangan pernah berikan informasi pribadi atau keuangan Anda kepada seseorang yang tidak Anda kenal atau melalui situs web yang tidak terpercaya.\n", "\n", "4. Hati-hati terhadap email atau pesan yang mencoba meminta informasi pribadi atau mengarahkan Anda ke situs web yang mencurigakan. Jangan klik tautan yang mencurigakan atau unduh lampiran dari sumber yang tidak terpercaya.\n", "\n", "5. Gunakan metode pembayaran yang aman dan dapat dipercaya saat melakukan transaksi online. Hindari menggunakan transfer bank langsung kepada pihak yang tidak Anda kenal.\n", "\n", "6. Selalu periksa tagihan kartu kredit dan transaksi keuangan Anda secara teratur untuk mendeteksi aktivitas yang mencurigakan.\n", "\n", "7. Gunakan kecerdasan dan kewaspadaan saat berinteraksi dengan orang asing atau penjual online. Jangan terburu-buru dalam mengambil keputusan dan pastikan Anda merasa nyaman sebelum melakukan transaksi.\n" ] }, { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "============================================================\n", "\n", "👨‍🦰 Kamu : bye\n", "1/1 [==============================] - 0s 26ms/step\n", "🤖 SafeBot : Semoga harimu menyenangkan!\n" ] }, { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "============================================================\n", "\n" ] } ], "source": [ "# Membuat Input Chat\n", "while True:\n", " texts_p = []\n", " prediction_input = input('👨‍🦰 Kamu : ')\n", " \n", " # Menghapus punktuasi dan konversi ke huruf kecil\n", " prediction_input = [letters.lower() for letters in prediction_input if letters not in string.punctuation]\n", " prediction_input = ''.join(prediction_input)\n", " texts_p.append(prediction_input)\n", "\n", " # Tokenisasi dan Padding\n", " prediction_input = tokenizer.texts_to_sequences(texts_p)\n", " prediction_input = np.array(prediction_input).reshape(-1)\n", " prediction_input = pad_sequences([prediction_input],input_shape)\n", "\n", " # Mendapatkan hasil keluaran pada model \n", " output = model.predict(prediction_input)\n", " output = output.argmax()\n", "\n", " # Menemukan respon sesuai data tag dan memainkan voice bot\n", " response_tag = le.inverse_transform([output])[0]\n", " print(\"🤖 SafeBot : \", random.choice(responses[response_tag]))\n", " tts = gTTS(random.choice(responses[response_tag]), lang='id')\n", " # Simpan model voice bot ke dalam Google Drive\n", " tts.save('SafeBot.wav')\n", " time.sleep(0.08)\n", " # Load model voice bot from Google Drive\n", " ipd.display(ipd.Audio('SafeBot.wav', autoplay=True))\n", " print(\"=\"*60 + \"\\n\")\n", " # Tambahkan respon 'goodbye' agar bot bisa berhenti\n", " if response_tag == \"goodbye\":\n", " break" ] }, { "attachments": {}, "cell_type": "markdown", "id": "PpFwQ9gWmWtk", "metadata": { "id": "PpFwQ9gWmWtk" }, "source": [ "# 08 Save The Model\n", "\n", "Setelah pengujian Chatbot telah disesuaikan dengan kalimat dan jawabannya. Maka, model chatbot bisa disimpan dengan format .h5 atau .pkl (pickle) untuk penggunaan aplikasi AI Chatbot dengan website atau sistem Android. Penyimpanan file model bisa langsung secara transient atau bisa taruh di Google Drive." ] }, { "cell_type": "code", "execution_count": 50, "id": "MxdDHujDmaC0", "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 130 }, "id": "MxdDHujDmaC0", "outputId": "c24afa27-969e-46ca-c0ce-3eeef483513c" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model Saved Successfully!\n" ] } ], "source": [ "# Simpan model dalam bentuk format file .h5 atau .pkl (pickle)\n", "model.save('chatbot_model.h5')\n", "\n", "print('Model Saved Successfully!')" ] }, { "cell_type": "code", "execution_count": null, "id": "209fd6d2", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "accelerator": "GPU", "colab": { "provenance": [] }, "gpuClass": "standard", "kernelspec": { "display_name": "proyek-akhir", "language": "python", "name": "myenv" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.9" }, "latex_envs": { "LaTeX_envs_menu_present": true, "autoclose": false, "autocomplete": true, "bibliofile": "biblio.bib", "cite_by": "apalike", "current_citInitial": 1, "eqLabelWithNumbers": true, "eqNumInitial": 1, "hotkeys": { "equation": "Ctrl-E", "itemize": "Ctrl-I" }, "labels_anchors": false, "latex_user_defs": false, "report_style_numbering": false, "user_envs_cfg": false }, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "window_display": false } }, "nbformat": 4, "nbformat_minor": 5 }