[a5cbc8]: / HealthCare_ChatBot / modeltraing_googleclob.ipynb

Download this file

4405 lines (4405 with data), 263.7 kB

{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "name": "Healthcarechatbot_Project.ipynb",
      "provenance": []
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    },
    "language_info": {
      "name": "python"
    },
    "widgets": {
      "application/vnd.jupyter.widget-state+json": {
        "bdf425bf3be74af199a8a37a478ebedc": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_8b72555951cd493e8893644b51e888be",
              "IPY_MODEL_94198e6f88d24c229c7cce1c646eded3",
              "IPY_MODEL_87c7738aca1b470191941d77fb4b875c"
            ],
            "layout": "IPY_MODEL_1dffa607443d4972be5af7dd3491efbc"
          }
        },
        "8b72555951cd493e8893644b51e888be": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_2814ef5c8e684b8aa7af7542368f118b",
            "placeholder": "​",
            "style": "IPY_MODEL_67623bf3f78248a0a309fd1f6a1cc013",
            "value": "Downloading: 100%"
          }
        },
        "94198e6f88d24c229c7cce1c646eded3": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_b8998a46768249edacb8ef0550b89c33",
            "max": 802,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_1e684f3c5bb24b389d134b790caeb698",
            "value": 802
          }
        },
        "87c7738aca1b470191941d77fb4b875c": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_3a8a9ed94cb74fefa2b07552cdb09edf",
            "placeholder": "​",
            "style": "IPY_MODEL_96d7b81d46bd4bd0971332168b711103",
            "value": " 802/802 [00:00<00:00, 11.7kB/s]"
          }
        },
        "1dffa607443d4972be5af7dd3491efbc": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "2814ef5c8e684b8aa7af7542368f118b": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "67623bf3f78248a0a309fd1f6a1cc013": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "b8998a46768249edacb8ef0550b89c33": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "1e684f3c5bb24b389d134b790caeb698": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "3a8a9ed94cb74fefa2b07552cdb09edf": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "96d7b81d46bd4bd0971332168b711103": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "b7db20ec05044d2787360e726735cab9": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_42e23072325d4e3f9522380ef489d472",
              "IPY_MODEL_7a82b1c1e0e24f22b89ba654e5e88ceb",
              "IPY_MODEL_d55dd981ecd14534bf76fe8c13a54431"
            ],
            "layout": "IPY_MODEL_bfd78869b3414475bc0db4aa899db911"
          }
        },
        "42e23072325d4e3f9522380ef489d472": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_2ec0b242299c479183c867b0183cccef",
            "placeholder": "​",
            "style": "IPY_MODEL_cb9000301f7a4f40b0df93adbfd3b647",
            "value": "Downloading: 100%"
          }
        },
        "7a82b1c1e0e24f22b89ba654e5e88ceb": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_f5fc7f9bc75f457982b8450959a0cca7",
            "max": 496313335,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_6adb6849a1aa4e9ba001d57acb08d7e2",
            "value": 496313335
          }
        },
        "d55dd981ecd14534bf76fe8c13a54431": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_053a8b74d3d641f49f318601de7ac52c",
            "placeholder": "​",
            "style": "IPY_MODEL_27d0c790e27d4c71adcf7ecff5fe93a5",
            "value": " 473M/473M [00:27<00:00, 20.3MB/s]"
          }
        },
        "bfd78869b3414475bc0db4aa899db911": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "2ec0b242299c479183c867b0183cccef": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "cb9000301f7a4f40b0df93adbfd3b647": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "f5fc7f9bc75f457982b8450959a0cca7": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "6adb6849a1aa4e9ba001d57acb08d7e2": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "053a8b74d3d641f49f318601de7ac52c": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "27d0c790e27d4c71adcf7ecff5fe93a5": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "60696eabaa6d43889f39613085e62255": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_c2bb1e41e482426ea907f4f50b86864f",
              "IPY_MODEL_4e7156de645a4f12b20b016883bd7e1e",
              "IPY_MODEL_64f70ff5e49349678f4c7c9d579c507f"
            ],
            "layout": "IPY_MODEL_fcb04d8b043046419a3721167fa206cb"
          }
        },
        "c2bb1e41e482426ea907f4f50b86864f": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_314ba6f82498438699548f33635d43fe",
            "placeholder": "​",
            "style": "IPY_MODEL_53d1066a5ae44f6897f8667bb756c219",
            "value": "Downloading: 100%"
          }
        },
        "4e7156de645a4f12b20b016883bd7e1e": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_c27d72d7afed4cd29f239d591493b63d",
            "max": 337,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_031bae92dd694cd390839224537cba88",
            "value": 337
          }
        },
        "64f70ff5e49349678f4c7c9d579c507f": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_b6ddfcbef2354b0eac4e99b01ab5cac5",
            "placeholder": "​",
            "style": "IPY_MODEL_f7b2cdd3dfef480c988dd83f31c8e9f4",
            "value": " 337/337 [00:00<00:00, 4.76kB/s]"
          }
        },
        "fcb04d8b043046419a3721167fa206cb": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "314ba6f82498438699548f33635d43fe": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "53d1066a5ae44f6897f8667bb756c219": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "c27d72d7afed4cd29f239d591493b63d": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "031bae92dd694cd390839224537cba88": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "b6ddfcbef2354b0eac4e99b01ab5cac5": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "f7b2cdd3dfef480c988dd83f31c8e9f4": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "ff3bacd9275047a896ab1429c27b8f69": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_f2b42db83ecd445c88bd6efe8b70f907",
              "IPY_MODEL_fafc4f10898e470283f00f12e6239790",
              "IPY_MODEL_50e1009599cd4829b97edfca92f592a6"
            ],
            "layout": "IPY_MODEL_ffc3212f973c41c79fcde322b8019f88"
          }
        },
        "f2b42db83ecd445c88bd6efe8b70f907": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_ae84facf9aaf4ac9b753b9eea9e4bec9",
            "placeholder": "​",
            "style": "IPY_MODEL_b265f4eb6c8b47c5a1ad6ebb96e2d669",
            "value": "Downloading: 100%"
          }
        },
        "fafc4f10898e470283f00f12e6239790": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_da5b4d0bcd464d1d920edb5866297298",
            "max": 798293,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_8662d825502c4912918f76e99a42de65",
            "value": 798293
          }
        },
        "50e1009599cd4829b97edfca92f592a6": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_efff15be0ace418a8e9b66e0e1862f12",
            "placeholder": "​",
            "style": "IPY_MODEL_15de416ebfd64912bbe9a5016aab7333",
            "value": " 780k/780k [00:00<00:00, 754kB/s]"
          }
        },
        "ffc3212f973c41c79fcde322b8019f88": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "ae84facf9aaf4ac9b753b9eea9e4bec9": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "b265f4eb6c8b47c5a1ad6ebb96e2d669": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "da5b4d0bcd464d1d920edb5866297298": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "8662d825502c4912918f76e99a42de65": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "efff15be0ace418a8e9b66e0e1862f12": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "15de416ebfd64912bbe9a5016aab7333": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "08fee2d8e69243b28516d922f016b70a": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_c89d5ec8e606464d9db8b83a70d1628e",
              "IPY_MODEL_21c46d0c124f4e68a58dbb12f59d2f61",
              "IPY_MODEL_51c05055546244518d25d95ef1233484"
            ],
            "layout": "IPY_MODEL_39e50fd248e640c6a92572611b3de83a"
          }
        },
        "c89d5ec8e606464d9db8b83a70d1628e": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_a306c45e04d44efb9e6eb75470a33666",
            "placeholder": "​",
            "style": "IPY_MODEL_a81317dc745e4480a220159b427c1e60",
            "value": "Downloading: 100%"
          }
        },
        "21c46d0c124f4e68a58dbb12f59d2f61": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_253e975441c645bba8d1b570f1234134",
            "max": 456356,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_b086cc2c980448c69a215a1f027420c8",
            "value": 456356
          }
        },
        "51c05055546244518d25d95ef1233484": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_633a991a5953428fb8eca0021c8f566d",
            "placeholder": "​",
            "style": "IPY_MODEL_6071afb54cd34f73b4b7d666c1ad8cd7",
            "value": " 446k/446k [00:00<00:00, 436kB/s]"
          }
        },
        "39e50fd248e640c6a92572611b3de83a": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "a306c45e04d44efb9e6eb75470a33666": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "a81317dc745e4480a220159b427c1e60": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "253e975441c645bba8d1b570f1234134": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "b086cc2c980448c69a215a1f027420c8": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "633a991a5953428fb8eca0021c8f566d": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "6071afb54cd34f73b4b7d666c1ad8cd7": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "489ffa4b00074397bcfc8db36557576e": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_e79f018476c943cf8242853c0114d26e",
              "IPY_MODEL_877651ab8b4f471382483c6860247216",
              "IPY_MODEL_ce308f06e0fa4aacaec704f16292c76b"
            ],
            "layout": "IPY_MODEL_2bcea88db9b6462bbbd122b1741da7ce"
          }
        },
        "e79f018476c943cf8242853c0114d26e": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_9e02c23118634e3b9c16bb7b85bbcdfe",
            "placeholder": "​",
            "style": "IPY_MODEL_a91c84a3afec42ffb6c64d33178164ef",
            "value": "Downloading: 100%"
          }
        },
        "877651ab8b4f471382483c6860247216": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_72733cf1f179414dbf78585812d26e1b",
            "max": 1356047,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_f6c6b284a80243859741becf7c6cf3b0",
            "value": 1356047
          }
        },
        "ce308f06e0fa4aacaec704f16292c76b": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_20c98f28f7c34b459a37ba27096bf5d4",
            "placeholder": "​",
            "style": "IPY_MODEL_30b733d0febd4c70b03833396b5366b5",
            "value": " 1.29M/1.29M [00:01<00:00, 1.76MB/s]"
          }
        },
        "2bcea88db9b6462bbbd122b1741da7ce": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "9e02c23118634e3b9c16bb7b85bbcdfe": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "a91c84a3afec42ffb6c64d33178164ef": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "72733cf1f179414dbf78585812d26e1b": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "f6c6b284a80243859741becf7c6cf3b0": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "20c98f28f7c34b459a37ba27096bf5d4": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "30b733d0febd4c70b03833396b5366b5": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "3c7f6ff5052442acbb205d8c267dd6e2": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HBoxModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HBoxView",
            "box_style": "",
            "children": [
              "IPY_MODEL_6a23df0863494184bd42fe8d4b0b43e8",
              "IPY_MODEL_818cda13c5c5469f8aaaa57f5816180b",
              "IPY_MODEL_d60f81ea6311452b9363da911571cace"
            ],
            "layout": "IPY_MODEL_25148987ce6e4512ab75c502843f5f2d"
          }
        },
        "6a23df0863494184bd42fe8d4b0b43e8": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_7d621b58056f4e28b455f9150daaeaf3",
            "placeholder": "​",
            "style": "IPY_MODEL_fb038b8d342c48549f03dfbb1e86d370",
            "value": "Downloading: 100%"
          }
        },
        "818cda13c5c5469f8aaaa57f5816180b": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "FloatProgressModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "ProgressView",
            "bar_style": "success",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_f4f7c943479f42f6b1429a379778ac64",
            "max": 239,
            "min": 0,
            "orientation": "horizontal",
            "style": "IPY_MODEL_60c453a11be84d849e3b0382eff77944",
            "value": 239
          }
        },
        "d60f81ea6311452b9363da911571cace": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "model_module_version": "1.5.0",
          "state": {
            "_dom_classes": [],
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "HTMLModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/controls",
            "_view_module_version": "1.5.0",
            "_view_name": "HTMLView",
            "description": "",
            "description_tooltip": null,
            "layout": "IPY_MODEL_1a3d52ac7e15473681c384629cd27aad",
            "placeholder": "​",
            "style": "IPY_MODEL_21fe4b822c864917a84e4437c9e48a79",
            "value": " 239/239 [00:00<00:00, 6.49kB/s]"
          }
        },
        "25148987ce6e4512ab75c502843f5f2d": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "7d621b58056f4e28b455f9150daaeaf3": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "fb038b8d342c48549f03dfbb1e86d370": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        },
        "f4f7c943479f42f6b1429a379778ac64": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "60c453a11be84d849e3b0382eff77944": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "ProgressStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "bar_color": null,
            "description_width": ""
          }
        },
        "1a3d52ac7e15473681c384629cd27aad": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "model_module_version": "1.2.0",
          "state": {
            "_model_module": "@jupyter-widgets/base",
            "_model_module_version": "1.2.0",
            "_model_name": "LayoutModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "LayoutView",
            "align_content": null,
            "align_items": null,
            "align_self": null,
            "border": null,
            "bottom": null,
            "display": null,
            "flex": null,
            "flex_flow": null,
            "grid_area": null,
            "grid_auto_columns": null,
            "grid_auto_flow": null,
            "grid_auto_rows": null,
            "grid_column": null,
            "grid_gap": null,
            "grid_row": null,
            "grid_template_areas": null,
            "grid_template_columns": null,
            "grid_template_rows": null,
            "height": null,
            "justify_content": null,
            "justify_items": null,
            "left": null,
            "margin": null,
            "max_height": null,
            "max_width": null,
            "min_height": null,
            "min_width": null,
            "object_fit": null,
            "object_position": null,
            "order": null,
            "overflow": null,
            "overflow_x": null,
            "overflow_y": null,
            "padding": null,
            "right": null,
            "top": null,
            "visibility": null,
            "width": null
          }
        },
        "21fe4b822c864917a84e4437c9e48a79": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "model_module_version": "1.5.0",
          "state": {
            "_model_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_model_name": "DescriptionStyleModel",
            "_view_count": null,
            "_view_module": "@jupyter-widgets/base",
            "_view_module_version": "1.2.0",
            "_view_name": "StyleView",
            "description_width": ""
          }
        }
      }
    }
  },
  "cells": [
    {
      "cell_type": "markdown",
      "source": [
        "***Training Data Takes from***"
      ],
      "metadata": {
        "id": "Modj5EkR43bU"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "1. Davidson's Principle and Practice of Madicine\n",
        "2. KD Tripathi - Essentials of Medical Pharmacology\n",
        "3. Kaggle.com"
      ],
      "metadata": {
        "id": "O7f4hyOk4yX3"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "# **Important Links**"
      ],
      "metadata": {
        "id": "uAtUq6yBoSFh"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "Spacy : https://spacy.io/usage\n",
        "\n",
        "Huggingface : https://huggingface.co/raynardj/ner-disease-ncbi-bionlp-bc5cdr-pubmed\n",
        "\n",
        "kaggle datasets : https://www.kaggle.com/datasets/itachi9604/disease-symptom-description-dataset"
      ],
      "metadata": {
        "id": "X27cQkmOoWfG"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "# **Import modules**"
      ],
      "metadata": {
        "id": "-M8RFYGG6j5H"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "import sys\n",
        "import numpy as np\n",
        "import pandas as pd\n",
        "\n",
        "\n",
        "from sklearn import preprocessing\n",
        "from sklearn.tree import DecisionTreeClassifier,_tree\n",
        "from sklearn.model_selection import cross_val_score\n",
        "\n",
        "\n",
        "from sklearn.model_selection import train_test_split\n",
        "\n",
        "\n",
        "\n",
        "# 4th model train\n",
        "import torch\n",
        "import torch.nn as nn\n",
        "\n",
        "# nltk.download('punkt')\n",
        "from nltk.stem.porter import PorterStemmer\n",
        "import random\n",
        "import json\n",
        "\n",
        "from torch.utils.data import Dataset, DataLoader"
      ],
      "metadata": {
        "id": "3TY4mX1w6puJ"
      },
      "execution_count": 43,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "source": [
        "# **File Pre-processing , Label Encoding & Split datasets**"
      ],
      "metadata": {
        "id": "6Mr7UJ7C4Zwe"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "**Remove warning**"
      ],
      "metadata": {
        "id": "DK6uHF1s61g9"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "import warnings\n",
        "warnings.filterwarnings(\"ignore\", category=DeprecationWarning)"
      ],
      "metadata": {
        "id": "A-eXvw7x6xw_"
      },
      "execution_count": 2,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "source": [
        "**Load dataframe**"
      ],
      "metadata": {
        "id": "wIfY7ETC6_Zc"
      }
    },
    {
      "cell_type": "code",
      "execution_count": 3,
      "metadata": {
        "id": "usZHkr1q4NMw"
      },
      "outputs": [],
      "source": [
        "m_df = pd.read_csv('/content/drive/MyDrive/Project/Training.csv')\n"
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "m_df.head(5)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 386
        },
        "id": "uERMYIcZcyeU",
        "outputId": "f6c4f07e-96cb-4aef-d92b-ca4b5583a957"
      },
      "execution_count": 20,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "   itching  skin_rash  nodal_skin_eruptions  continuous_sneezing  shivering  \\\n",
              "0        1          1                     1                    0          0   \n",
              "1        0          1                     1                    0          0   \n",
              "2        1          0                     1                    0          0   \n",
              "3        1          1                     0                    0          0   \n",
              "4        1          1                     1                    0          0   \n",
              "\n",
              "   chills  joint_pain  stomach_pain  acidity  ulcers_on_tongue  ...  \\\n",
              "0       0           0             0        0                 0  ...   \n",
              "1       0           0             0        0                 0  ...   \n",
              "2       0           0             0        0                 0  ...   \n",
              "3       0           0             0        0                 0  ...   \n",
              "4       0           0             0        0                 0  ...   \n",
              "\n",
              "   blackheads  scurring  skin_peeling  silver_like_dusting  \\\n",
              "0           0         0             0                    0   \n",
              "1           0         0             0                    0   \n",
              "2           0         0             0                    0   \n",
              "3           0         0             0                    0   \n",
              "4           0         0             0                    0   \n",
              "\n",
              "   small_dents_in_nails  inflammatory_nails  blister  red_sore_around_nose  \\\n",
              "0                     0                   0        0                     0   \n",
              "1                     0                   0        0                     0   \n",
              "2                     0                   0        0                     0   \n",
              "3                     0                   0        0                     0   \n",
              "4                     0                   0        0                     0   \n",
              "\n",
              "   yellow_crust_ooze         prognosis  \n",
              "0                  0  Fungal infection  \n",
              "1                  0  Fungal infection  \n",
              "2                  0  Fungal infection  \n",
              "3                  0  Fungal infection  \n",
              "4                  0  Fungal infection  \n",
              "\n",
              "[5 rows x 133 columns]"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-46b31030-53ef-45c9-a8e5-f359f48b7b79\">\n",
              "    <div class=\"colab-df-container\">\n",
              "      <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>itching</th>\n",
              "      <th>skin_rash</th>\n",
              "      <th>nodal_skin_eruptions</th>\n",
              "      <th>continuous_sneezing</th>\n",
              "      <th>shivering</th>\n",
              "      <th>chills</th>\n",
              "      <th>joint_pain</th>\n",
              "      <th>stomach_pain</th>\n",
              "      <th>acidity</th>\n",
              "      <th>ulcers_on_tongue</th>\n",
              "      <th>...</th>\n",
              "      <th>blackheads</th>\n",
              "      <th>scurring</th>\n",
              "      <th>skin_peeling</th>\n",
              "      <th>silver_like_dusting</th>\n",
              "      <th>small_dents_in_nails</th>\n",
              "      <th>inflammatory_nails</th>\n",
              "      <th>blister</th>\n",
              "      <th>red_sore_around_nose</th>\n",
              "      <th>yellow_crust_ooze</th>\n",
              "      <th>prognosis</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>...</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>Fungal infection</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>...</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>Fungal infection</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>...</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>Fungal infection</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>...</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>Fungal infection</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>...</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>Fungal infection</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "<p>5 rows × 133 columns</p>\n",
              "</div>\n",
              "      <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-46b31030-53ef-45c9-a8e5-f359f48b7b79')\"\n",
              "              title=\"Convert this dataframe to an interactive table.\"\n",
              "              style=\"display:none;\">\n",
              "        \n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "       width=\"24px\">\n",
              "    <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
              "    <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
              "  </svg>\n",
              "      </button>\n",
              "      \n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      flex-wrap:wrap;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "      <script>\n",
              "        const buttonEl =\n",
              "          document.querySelector('#df-46b31030-53ef-45c9-a8e5-f359f48b7b79 button.colab-df-convert');\n",
              "        buttonEl.style.display =\n",
              "          google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "        async function convertToInteractive(key) {\n",
              "          const element = document.querySelector('#df-46b31030-53ef-45c9-a8e5-f359f48b7b79');\n",
              "          const dataTable =\n",
              "            await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                     [key], {});\n",
              "          if (!dataTable) return;\n",
              "\n",
              "          const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "            '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "            + ' to learn more about interactive tables.';\n",
              "          element.innerHTML = '';\n",
              "          dataTable['output_type'] = 'display_data';\n",
              "          await google.colab.output.renderOutput(dataTable, element);\n",
              "          const docLink = document.createElement('div');\n",
              "          docLink.innerHTML = docLinkHtml;\n",
              "          element.appendChild(docLink);\n",
              "        }\n",
              "      </script>\n",
              "    </div>\n",
              "  </div>\n",
              "  "
            ]
          },
          "metadata": {},
          "execution_count": 20
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "***Split the dependent and Independent Data varible***"
      ],
      "metadata": {
        "id": "zVIeFecO7OYp"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "X = m_df.drop('prognosis',axis=1)\n",
        "y =m_df['prognosis']"
      ],
      "metadata": {
        "id": "A5SvhJoT7Hk3"
      },
      "execution_count": 4,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "source": [
        "*Label Encoding*"
      ],
      "metadata": {
        "id": "JquG2BjhX3-p"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "le = preprocessing.LabelEncoder()\n",
        "le.fit(y)\n",
        "Y = le.transform(y)"
      ],
      "metadata": {
        "id": "fg_FGtZL7ufU"
      },
      "execution_count": 5,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "source": [
        "**Split data in traing and testing data sets**"
      ],
      "metadata": {
        "id": "QmmA2nBNYXOZ"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "from sklearn.model_selection import train_test_split\n",
        "x_train, x_test, y_train, y_test = train_test_split(X, Y, test_size=0.3, random_state=20)"
      ],
      "metadata": {
        "id": "mT9rKCZqYRnF"
      },
      "execution_count": 6,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "print(x_train.shape)\n",
        "print(x_test.shape)\n",
        "print(y_train.shape)\n",
        "print(y_test.shape)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "5oQ-YfW2YnaF",
        "outputId": "d8793a8b-f7c7-4546-a016-839faf884cd2"
      },
      "execution_count": 7,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "(3444, 132)\n",
            "(1476, 132)\n",
            "(3444,)\n",
            "(1476,)\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "**Data visualization**"
      ],
      "metadata": {
        "id": "MAOq-hVaY1Yp"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "import seaborn as sns\n",
        "import matplotlib.pyplot as plt"
      ],
      "metadata": {
        "id": "4YiIG_vxYqKg"
      },
      "execution_count": 8,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "plt.figure(figsize=(10,10))\n",
        "sns.heatmap(X.isnull())"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 763
        },
        "id": "OZwdEBHPY60r",
        "outputId": "c4fe0e78-d629-4ff6-af73-750d84ccfb86"
      },
      "execution_count": 9,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "<matplotlib.axes._subplots.AxesSubplot at 0x7fb00e078510>"
            ]
          },
          "metadata": {},
          "execution_count": 9
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 720x720 with 2 Axes>"
            ],
            "image/png": "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\n"
          },
          "metadata": {
            "needs_background": "light"
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "**function for fitting trees of various depths on the training data using cross-validation**"
      ],
      "metadata": {
        "id": "HzlLQkrJZXwc"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "# function for fitting trees of various depths on the training data using cross-validation\n",
        "def run_cross_validation_on_trees(X, y, tree_depths, cv=5, scoring='accuracy'):\n",
        "    cv_scores_list = []\n",
        "    cv_scores_std = []\n",
        "    cv_scores_mean = []\n",
        "    accuracy_scores = []\n",
        "    for depth in tree_depths:\n",
        "        tree_model = DecisionTreeClassifier(max_depth=depth , criterion = \"entropy\", random_state = 100,\n",
        "             min_samples_leaf = 24)\n",
        "        cv_scores = cross_val_score(tree_model, X, y, cv=cv, scoring=scoring)\n",
        "        cv_scores_list.append(cv_scores)\n",
        "        cv_scores_mean.append(cv_scores.mean())\n",
        "        cv_scores_std.append(cv_scores.std())\n",
        "        accuracy_scores.append(tree_model.fit(X, y).score(X, y))\n",
        "    cv_scores_mean = np.array(cv_scores_mean)\n",
        "    cv_scores_std = np.array(cv_scores_std)\n",
        "    accuracy_scores = np.array(accuracy_scores)\n",
        "    return cv_scores_mean, cv_scores_std, accuracy_scores\n",
        "  \n",
        "# function for plotting cross-validation results\n",
        "def plot_cross_validation_on_trees(depths, cv_scores_mean, cv_scores_std, accuracy_scores, title):\n",
        "    fig, ax = plt.subplots(1,1, figsize=(15,5))\n",
        "    ax.plot(depths, cv_scores_mean, '-o', label='mean cross-validation accuracy', alpha=0.9)\n",
        "    ax.fill_between(depths, cv_scores_mean-2*cv_scores_std, cv_scores_mean+2*cv_scores_std, alpha=0.2)\n",
        "    ylim = plt.ylim()\n",
        "    ax.plot(depths, accuracy_scores, '-*', label='train accuracy', alpha=0.9)\n",
        "    ax.set_title(title, fontsize=16)\n",
        "    ax.set_xlabel('Tree depth', fontsize=14)\n",
        "    ax.set_ylabel('Accuracy', fontsize=14)\n",
        "    ax.set_ylim(ylim)\n",
        "    ax.set_xticks(depths)\n",
        "    ax.legend()\n",
        "\n",
        "# fitting trees of depth 1 to 24\n",
        "sm_tree_depths = range(1,25)\n",
        "sm_cv_scores_mean, sm_cv_scores_std, sm_accuracy_scores = run_cross_validation_on_trees(x_train, y_train, sm_tree_depths)\n",
        "\n",
        "# plotting accuracy\n",
        "plot_cross_validation_on_trees(sm_tree_depths, sm_cv_scores_mean, sm_cv_scores_std, sm_accuracy_scores, \n",
        "                               'Accuracy per decision tree depth on training data')\n"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 356
        },
        "id": "8Fr69bxXY9pD",
        "outputId": "92cbd2b6-6da6-4f5f-e090-479bce0f0404"
      },
      "execution_count": 10,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 1080x360 with 1 Axes>"
            ],
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAA3wAAAFTCAYAAABicQ7oAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdeXxcdb3/8ddnZjLJJG22pmnSvdACXZG2lKWARRYruItYxAWuiF7xXvR6VdCLoKJe3PipFxdwQdwQEATZoWUrFCzI0tKyd1/olqRt1lm+vz++J8l0SNJpm2Qm6fv5eMwjM2e+55zPnFkyn/l+z+drzjlERERERERk8AnlOgARERERERHpG0r4REREREREBiklfCIiIiIiIoOUEj4REREREZFBSgmfiIiIiIjIIKWET0REREREZJBSwici+8zMrjMzZ2ZX5zoW2T9mNi94Duf1wbbHB9s+bx/WOS9YZ3xvx7OX/X7BzD7Yn/vcX2Z2hZn16VxKwT7e0cXy681sfV/u+0AEr7krzOyQPtj2fr9X+uM52xfB87h6P9Z7W/BYKvsgLBHpY0r4RGSfmFkMODu4+VEzi+QyHslLm4DjgLv2YZ27gnU29UlE3fsCMCASvn5yOfCWhG8AGI+PvdcTPuBf+Nfmv/Zj3V8H6w50b8MfXyV8IgOQEj4R2VfvB0qBu4FqYH5uw3krMwsfTImoedFcx9HOOdfqnHvSObd1H9bZGqzT2pexHQgzK8x1DHLg9vX94pzbGbw2d+7rvpxz651zT+7reiIivUkJn4jsq08CdcB5QHNw+y3M7ANm9riZ7TaznWb2TzN7b9r9ETP7qpmtMLMWM9tqZvea2RHB/V0O8etqiFTQ7jtmdomZrQLagOlmVmRmV5vZ8iCOzWb2j/Z9ZGxjgpn9IWjTamZvmNlPgvu+FCwbnrGOBe1u7OmApcX3dTNbb2bNZvaomb2ti7YfNLMnzazJzOrN7GYzG5vRZrWZ/dHM/s3MXgoe75k97H+4mf05eB7qzewGoLybtnvdf9Du02b2r+Cx1JnZI2Z2fHDfW4Z0mtnRZvaAmW0P1nnDzH6edv9bnm8zKzCzK4PH2xb8vdLMCtLatO/rM2b2LTPbFMT9DzMb3d0xaT+OwDjg3GAbzsyuD+67Irg9zczuM7PdwE3BfcVmdpWZrQriWhU8t6GM7Q83s1+a2Ybg9fOSmV3YU0xp6x5lZo8F740NZnYZYF20i5jZpcG2W81so5n9yMyKujhGnzOzH5vZluD5vTPjeLe/r76edjyu6CauJjN71cw+m+XjOdzMbguem+bgNTY/o037MZ9kZneZf8+uMbNvZB7bjPXmAQ8FNx9Ii31ecH+37xcz+2bwOt5pZtvMbJGZHZu5fcsY0mlmD5vZYjM7NVi/yfznzAe6ekwZy1zwOv7P4LWzK3j/TM1oFw7abQq2v8jMjujqeenmuJwSxNZiZq+b2We6adfjMTD/Pv5dcPPVtOM7Prj/82a2xMx2BM/vk2bW7eeRiPS/g+YXcBE5cGY2EjgVuM45t9XM/g580MwqnHN1ae3+A/gp8Hd8QrgbmIkfdtXuRnxv4f8DHgSKgJOAWuCl/QjvPOAN4L+BRmAjUAgMBa7EDxWsBD4HLDGzyc65zUG8E4B/Ak3AN4BXgbHA6cG2fxds43zg+2n7PB2YAPxbFvF9AlgLfD6I61vAQjOb5JzbEcTxWeAXwf6+FcR+BfCImc1wzu1K297J+GFW3wS2AKt72PetwJHA14LH9hHgZ5mNst2/mf0Q+BLwG/wwrxRwLP6YPdHFdocA9+GP8XnALvxr4fgeYgb4PX748HeBxUH7r+OH7X00o+2lwb7/Dd/z/CPgj8C8Hrb/AXxP9fPB4wTI7JW8Hf84rwJS5nuO7wOmAN8GluEf+2X419eXgsdcGsQcC7a9Cngn8AszK3TOveX4tzOzKmARsBn//mkFvow/vpn+CLwniO8JYHIQ13jgQxltLwWew7+Oq/HH9X4zm+qci+OHHi4Brgd+FayTft5eKfBn/Hv2W8F2fmFmLzvnHqIbwefGYvzz/nmgAbgIuMvM3u2cuydjldvwr8Grg8f2TWAdnUlHpn8F27sG+E9gabB8RVqb7t4vo4L9rAdKgI8Bj5rZLOfcsu4eU+BQ4CfA94Bt+Of+ZjM7wjn32l7W/RjwMnAxEAV+ANwerJsI2nwT/579Af4zchZwx162C4CZTca/tp8GFuA/c64AhgDJjOZ7OwZ34T///gf4MJ2vifbh1+PxQ1dX479Xvge408ze5Zy7N5t4RaSPOed00UUXXbK6AF8BHHBccPudwe3PprUpxX+xu7WH7bwjWO8/e2hzXtBmfMbyK/xH1x7LHD7Bi+0l/jBQHMT3xbTlN+CT0pE9rHs98BpgactuBVZmcdwc/gthSdqy8UAc+HZwewj+i/BvM9adgO+R+ELastX45LQmi32fFux/Qcbye4Ll8/Zl/8BE/BfGH/ewz/HBts8Lbs8Obs/I9vkGpgW3r8ho9z/p20rb18MZ7f47WN7tc5p2LP/YxfIrgvUvzlj+8WD5SRnLvx4cp+rg9mVACzApo911wWsh0kNM3wm2NSZtWUmwnktbdmIQyycy1j83WP62jGO0AgiltZsbLP9Uxmv1ym5e/w44OW1ZIbAduHYvx/iHQAKYmPFefBn4VxfH/PyM9ZcB9+9lH/OCdU/t5jne6/sliCkSxPWTLrY9L23Zw/j376S0ZdX498bXMh9Txn4c/oeXgrRlZwXLjw9uV+A/k36ese5/0cX7oovH8ife+pkzJnhdrd6PY3BesN+Je9lvKFj/fuD2ntrqoosu/XfRkE4R2RefBF51zi0Jbj+IT7TSh3Uej08eru1hO6fjvzxc14ux3euca85caGZnm9lTZlaP/9LZGMR3eEY8dzrnNvaw/Z/jf9E/JdhuLf6X7J4eZ7q7nXON7Tecc6uBJ+ks6HAcPln+k/lhepGgN2kdvsfzpIztPemCHsq9OA7/JfRvGcszh6Fmu/9T8V/qsn3c4L/c1gO/MrOPmdmYLNZp398fM5a33357xvK7M26398501Su2L27LuD0fWAM8kXGc7gcK8L197e2eAlZltLsPGIbvIezOcfjnd137guC1848uYmkDbukiFnjra+YW51wqbZuP43trsi0q0uTSevKcP9/yFfZ+jE8KHk9Hr5dzLgn8BXhb0BuaLrPYz/Is9rE3Xb5fgiGZD5nZdvznQxw4jD0/H7rzqnPu1fYbzrkt+N7DbGJ9wPle1XaZr9fp+CT/5oz1bsli2+Cf08zPnHXA45kND/AYYGazzA8PfjNt/dOyXV9E+p4SPhHJipnNxn9JvdXMys2sHD/k71bgWDM7LGg6LPjbUwn3YcCOrhK0A/CW6o5m9h7gr8BK/BDAY4Cj8cP2itKaDqPneHHO/RN4Bmg/Z+kC/Jeb32cZ35vdLBsVXK8O/j6I/8KUfplO53Ftl201y1qgLuPLZVfxZLv/bJ7fPTjnGvBD6jbiE+e1wflOmUMO07VXA8x8nJsz7m+3I+N2e/GXIg5M5v6r8ef9ZR6jfwb3D0trd1IX7W7OaNeVWrp/vWTGEsX/iJG+jy3d7GNvr8G9qetiWSt7P8aVdP163Yw/L7EiY3lXz2VvP4+Y2Uz8DwW7gU/hk/Wj8UN8s9lfZpyQfax7e73WBn+3ZLTr6jnsSlavoQM9BsGPNwvxz/F/4H/wOxq4N5v1RaR/6Bw+EclWey/eV4NLpk/gh9ttC26Pwv8y35VtQKWZxXpI+lqCv5nV9Lr7otzVXFcLgNecc+e1LzBf8CMzWdhGdl96f47vpRqFT/hudsH5d1kY0c2yDcH17cHf84AXu2i7K+N2tnN7bQIqzKwgI+nLjCfb/ac/vy9nGQPOueeADwU9ULPx55PdZGZHOue6ep20H9ca4PW05TUZ9/e1zOO8HX8+3tldtIXOc8O247+sX9xNu56O3Sa6f71kxtKCH9rZlcwe6+62+VwPsfSGHXQ+b+lq8Me3q0Syt3X1fvkQ/kebD6a/N8ysAt8jnUvtCWo1e74fu3oOu1s/m9fQgR6D+UAZcLZzruNHIDMrzjJOEekH6uETkb0yX8L8HPwQtZO7uDwHfNzMDF84YjfQUzXC+/G/7F/QQ5s1wd9paXFE6Cykko1i/JeZdB/Hn6eSGc+7g2GaPfkLPvH5M37o1S/3IZYzzKyk/UZQ4e5YfJEM8MdtF/4cmae7uGSdXGVYgn+8mb1pCzJuZ7v/B/FFWrKqNpnJOZdwvkz9Zfj/QZO7afpoN3GeG/x9eH/234VWfGGVbN2LPxdqdzfHaVtauyOAtd20y0zg0y3B95p3DH0NXjvv6SKWIqCsm31kJnxnWVq1SzObC4ym8zUIfojovhyPbDyCfzzj0/YdxhcPetbtx3QHXWjvIduX2Ivxw507kkHzk84f6PDR3rAM33P74Yzlmbe7s4S3fuaMwZ+3mS7bY9Dd8W1P7NKTxcO62I+I5JB6+EQkG2fie9a+5Jx7OPNOM/sVvrrjPOfcQ2Z2KfAzM/sbvnjALnyFvBbn3M+CNn8Dfhx8CVmEP//pJOCuYB9L8T07Pwi+pLbiK2zuy1xo9wLvN7OrgTvxPUv/wVt/ub4cOAN/XtZ38cVZRgHznXMfa2/knGs2X7b/i8Ay59xbKlL2oBlfEfEHwWP4JrATXx0P59xOM/sycI356R/uwRdRGYU/X+1h59yf92F/7TE/YGaL8T2TVXRW6ZyW0S6r/TvnXg+O53+Z2VB81cAkMAd4yTn318wYzOzd+ATx7/jesRJ8NcVd7JlspMez3Mz+AlwRJPpP4M9Lugz4i9t7BcVsrQBODGLcDGwLzq/szp/w1SkXmtmP8EPfovjzO98LvN8514R/Xj8CPBYcr5fxj/sI4ETn3Pt62MfV+Nf6/ebL77dX6dyjN9w593BwjG4xsx/jh5Wm8EVazgC+6px7JW2VocDfg/frcHx1yVfxRYvSj8eZZnYvvudt417Obc3G1fie4wfM7HL86/5z+PPEeqt8/yv4H3f+zcx24I/Zy3tJrO8FvgBcb2a/C+K5jM5e95xxztWZ2f8DvmZmu/A/tMzED7sE/zz35Ep8ctj+mRPFF5DJHOaZ7TFor3h6kZn9Hp/gvRDElQBuCN4PtfjPtrWoU0Ekf+S6aowuuuiS/xf8F/WdQHE395fhq+Bdn7bsLHyPYHOw7lPAu9Puj+ArG76C71XYij+X5PC0NlPxPTm78V8g/ovuq951VVkwhP/iszGI7xHgKPywu+sz2h6K78Hbhh8m9zpdVKLEJx0OuGgfjp/DV178Gv7ctxbgMYIqihltz8DPKbYziPlV4LfAlLQ2q+mismQP+x9OZ+9kPf4L/vvIqDyY7f6Ddp/Ff+FrxQ/Ze5jO6q3j2bNK5+H4cylXBY+9/bk+Jm1755FRlRX/JfVKfG9vPPh7JXtWN2zf1wUZ8c3r6vF1cWyOCJ6LpqD99cHyK4Lbb6mmie9VuwJfzKb98S8NlkXS2lXgk51V+Nf4lmBfX+gppmDdmUHbFvyX78vwX6QzX/sh/LDR54O2DcH17+N7/tKP0eeAHwfHvwlfHGVCxvbm4s9VbSGtGiS+Suf6LuJ8mIwKqd08nsPxnyMNwbafxP+gkt6my2Me7Ht1Fvv4DH5qlkT6c08P7xf8D0Cr8J9TS/FFifZ4TF29loI2i7vY3mr2/By8oovn7C2fV2S8Z4JlYfznxuYgvofx58g5MqrHdvPYTgWeDV6jbwTH5y3HMptjELS7PHgttvcIjg+Wn41/L7Tgh58uyPY500UXXfrnYs5lexqIiIiY2XfwX7BHuiyHopmfePk7zrn/6dPgRLoQDKVcBXzaOffr3EYjB8LMzsIX/jnJOfdYruMRkYFBQzpFRLJgZkfheykuxs871hvnHYmIdMnMjsEPeX0K33s2C7gE3zu6OIehicgAo4RPRCQ7t+Er3N2HH9okItKXduPPa74IP0fmFuAm4FKn4Vkisg80pFNERERERGSQUgUlERERERGRQUoJn4iIiIiIyCA14M/hq6qqcuPHj891GCIiIiIiIjnxzDPPbHPODe/qvgGf8I0fP56nn34612GIiIiIiIjkhJmt6e4+DekUEREREREZpJTwiYiIiIiIDFJK+ERERERERAYpJXwiIiIiIiKDlBI+EZGD0e4t8JdzYPdWxaAYFINiyM84FINiUAy9YsBX6RQRGXB2b4F/XAzv+SkM6bKCct9bcg28vhCW/B+c9s2+2YdzkEpAsg2S8bf+ffwn8NqD8ODlcMxn+yaGvXnql4pBMSiGfI1DMSiGfI2hL/939gFzzuU6hgMye/Zsp2kZRGRAeeByeOoXcMy/9/wPI5UCl/RJUyoBqaS/ZC5zqbT7E8H9yS6WpeC2z0C8yS8LRyHZChaGSBG8/at7JmWpOCSCv90lbcnW4G/79bQELxX3SV+mxi3BcgdY518zKKnum2OuGBSDYhg4cSgGxZDPMYQKIBSBcAEUlcEXl/dPDHthZs8452Z3eZ8SPhGRPtZcD1tWwo3nQFujT7YI+STMDCwEFRPSErkggesLqSS07YZEi9+3cz7Ziw6BUNgvCxdAuDD4W+ATw3DU/4OLFPp/dunLO66n/+1mvUgU2ppgxR2wbom/L5WAcSfAjI9ArLxvHnem5np44a+wZrFiUAyKId/iUAyKIZ9jCEf9/86pH4B5l+ZupE6GnhI+DekUEektzsHODbDlJdiywid5W1fCzk3+fov4xKptt/+n5VIwbBKMmwtFQ/0yC/vEKxQOrkc6b3fcn+2yzO0EbZ74GTx/IxTEIN4Ms86DUy8PErl++rew7VVY/YjfZ7INhh8O0z7QP/tut/FZeGORYlAMiiEf41AMiiGfY4g3QuHQvEn29kYJn4jI/kjGYfvrPrHb2p7gvQStu/z9FoLKCTByJrxtMlRPhuGT/Xlr//yl71WLN8LEU/r/PIBUAo79HBy5wCd+jVt88tefmrbBMRkx9DfFoBgUQ/7GoRgUg2LoNRrSKSKyN627YOvLvseuvedu+2s+6QM/XHH4ET6pq57srw8/fI8kKplytMSThO+4iHhsOLsP/xAlL91CuHkrO9/5E0JmGIDRcd3MCBkYhoV467LgFAYjWBasFwpZrz5855yvv+IcDt+R6fDL2q+nXNAO33HZcT/Bel2s036/iIjIQDGyrAiz3v0/2xs0pFNEpF1PFTKd8/dvedH31m1d6ZO7+nWdbYorfVI37pMwYopP7irG+6GSgdZEkpa2FC3NLbTEk7TEU7QlUv7O477f0W7bUV/xV3a19frDbP9fFDKfGLb/bU8a2+93rjPx6kjqMpIzERER8WpLi8jDfK9HSvhE5ODSPh3BEz+FmZ/sTOrah2Q213W2rRgHI6bCtLOg+giongIlwzuyqfZeu5amBM3xVlriKVriyR6TpCde38aNS9fx5s4WRpQWseDoMRx/aFWvP8z2GJIdwXQG1V8x9EQxKAbFkJ8x5EscikEx5GsM23a3MroixsWnTGL+tNp+jWF/aUiniAx+qSRcPQVaGoJhmNZZBdMMSkdD1aTOIZnVk6HqcCgc0rGJjl67RJKWeJLmeJJ4Yt8+P594fRvXPPSaL4wZMhIphxlcdPLEfvvHpRgUg2JQDPkeh2JQDPkcQ1FBiHjSETLjux+cljdJn6ZlEJGDy+4tsOkF2PQcbH4BNi+Hlp2+Omay1ZdUxmDccXDSV2H0LD+NAGm9dkFSl02vXTaa2hJ88a/PsaOxDayzBy7lHEUFYeYeWtUxnDLp3B7nzSWD8Zap4Haq477O2wTrdZxL95a2/r5NDc0kkm6P4SjOQSRsjCyLdQz/hOD8wLecM9h+O2jX1TmHae07hpK2n19o8MzaOlrjqY79pB+HOeMrD+xAZ+mfq3fQEk8qBsWgGPIwDsWgGPI5hoKwUVIYoS2Rora8iHsuPqlfYtgbncMnIoNXWxO8+WJncrfpedj1pr8vXOCLp0x9P9TMgNcXwQs3QkExxBtJVE+jcfgsWhqTtMTb9qvXLlNLPMnG+mY21Dezvi641DdR3xinrqkNBx0FVsAnZ42tCdbuaCJkvuBKezK153WfREXCoT2WhdoTq5ARovP8vHCwPkHbcLD+7c9vIBqxjn+cLogh5eDo8ZV7FmBxnfc7B6m06865jtupYC7aFGn3ZaybTKU6zg1saUti5hPWds45mtoS7Gjq/fMZu9LUlsDwj0kxKAbFkF9xKAbFkM8xpJz//1kQNtbXNffL/g+UEj4RGThSSV8dc/Myn+Bteh62vebLQgKUj4FRs6H2SKid4c+5ixSSSjlaEklCK+6h7chPUzfpQxSvvJnwtk1s2NG0X6HEkyk2NbSwvq6JDUFit6G+ma27WjvaRMLGqPIYU2pLGV1RzN+f3cDuljjRSAjfR+a3UzW0kKs+NONAj05Wnllbx7ZdrRSEQ3s8lqqhhXzy+PH9EsN/3vhstzF8+33TFINiUAw5iiFf4lAMiiGfY4iE2/9/O0ZX9POURvtJCZ+I5K9dbwa9ds/5IZpvLvc9egBFpb7XbuJpUDPdJ3nFlSSSKVoSKZrbkrTsTNIc30VbwvcupVfI3Hn0JVmFkEim2LKr1Sd2ab12W3a1kAryzFDIGFlWxISqEk6cVMXoimJGVcQYPqSQcNoUCRXFBVzz0GvEk45IiI7zEBYcPaa3jtheLTh6TBBDao9zIRSDYlAMiiFf4lAMiiGfYwiHOs/hu/iUSf0Ww4FQwici/aenKRHaGoOhmc93XnYHk5qGC/z0B1M/4JO82iOhYjxtSUdzPElrPElzc5LmnTt7HJLZU5WvlHNs3dWaltT5BG9TQwvJpN+mGVSXFjG6PMYxEyoZVRFjVHmMmtIiImm/PHanfV83Ll3Hlp0tVPdSpbH2+fj80E1/Hl3IrPMS6rzvAzNHUVkS5brH3mBjfQsjy4v41AkTmHd4dcd5fqnUnucAptKGaXYsS+09rv4+DopBMSiGwRGHYlAM+RyDqnTmgIq2iAwgD1wOT/0C5nwGjvrYnoVV9hiaOdYPyayZ0TE0s8VFOgqpNLf5YirJVPafX50Vtvyvcm0pXxhl2sgyUg421jd3zpUHVA2NMqo8xqiKYkaXxxhdEaO2LBYMxzwwZhAOvTU5C4dsj8St41y84Hy8UA/35YJzjmSqMxHcW5LYUYQmLaEc4P+CRETkIDNuWPGAm3hdCZ+I9L0fT4bmeki2+WwnmTYlwrBJPqmrPRJqpuNqZtASKfOJXUdyt39VMpMpx+aGFlZvb+SXj7zOrtZ4RyES8NUpo+EQxxxSGSR1xYws9712sWi4x21nIxwyCgtCFEZCFEbCe1wXERER6S2q0iki/Sfe3Fk1s70HLxH32VUq5YdnRgph3FyS875O8/AZNAdTH7TEk7TWpXBu977vNpliQ10zq7c3smZ7E2t2NLJ2R1PHEM+G5jjhEBREQoTTeskSScdX3nnEAT3kgoj5hC4SJHQFYYoioayGeYqIiIj0JSV8IrL/UimoXw0bg2GZG5+Dba/4apoAZaN91czZR5Jc/QShFbfhCkog3kjd0MPZaBNh275XyWyJJ1m7o4m125tYtd0nduvrmkkFQzxj0TBjK4t5x+HVjBtWwrhhxVx170ts3932lipf1aVFWe3TDKKRtN66SIiiAv83V0MqRURERPZGCZ+IZK+5Liio8kJnYZXWXf6+aAmuZjqJWRfQNnw6TcOm0BypoDWRpDWRYuRLj5GY+inqJ32Q8ldvJdK4Natd7m5NsCbotVsdJHebGlo6xmUOLYowblgJZ0wrY9ywYsYNK2H40MI9JmgFOGfO2KyqfJlBUUFnUldY0Nlzl49j9kVERER6ooRPRLqWjMOWlZ2TmW98DurXAuAsRKryUOKHvJOW4dPYXTGVxiHjiKfoPNcuDsTjHZu7efSlvkLmc9sZUfpOX2ErY5d1TW1+OGZagrd9d+ekqpVDooyrLObYCcMYN6yY8cNKKC8uyCoR66rK1yePH8epk0dQGAl3JHm9UZRFREREJF+oaIvIwaKnKRGcg50b06ZEeA7eXIFLtuFwpIqH01Y1jaaq6eyumMLu8sm4guKsd91ZIZOgdy2Fw3jXtBpi0TBrg+RuZ3OiY50RZUWMD3rsxg8rZlxlCUOK9u83qsKCELGCMEUFYWJRnV8nIiIig4uKtogILLkGXl8IS/4PTvoybF7W0XuX2vgcNG3zFSzDUVorJ9M48SyaKqfSXDWdRPEIP9ZxPySSKW5YsoZ4MJddSyLZUcr/1n9toKIkysjyImaMLu/otRtTUbxfVTLN6Di3LhYNEyvwF51jJyIiIgcrJXwig93V06ClAZdoAQvBEz+Fx38CZiRjw2kdOobm4XNoHjaNlmHTaKmYCKGC/dpVU1uCtdubWLOjyRdV2eEnL9+2qxUHhIL556KRECEgBVz78Vl7FFLJVvu5dkVBUud77pTciYiIiKRTwicy2H16Ee6mT8LaJWAhnEVoHj6drdMvpHHk8aQKy/Z5k845tu5qZW1dU0eCt25H0x7n25XGIoytLGHalFLuX/Emja0JopEQhk/I4skUI4YWZpXs+eRuz167ogIVURERERHZGyV8IoNdcx1u0wuYGcloKaFEE401c9g14V1Zrd6WSLGhvom1O5pZkzYFQnObn3rBDGrKiphYPYRTjihmbGUxYyqLKS+OdmxjTGUx1zz0GomkIxKi2wqZ7dtLT+xi0bAqZIqIiIjsJyV8IoNZMk7qri/T5ox/hM/ghuaTWVD4BLO2bOiyeUNzvGMopp/nrpHNO1tIpfz9hQUhxlYWc/yhwxhb6ZO7URUxCiM9n2/XVYXMBUeP4YRJVR1JXXtRlaKCfT93T0RERES6poRPZDB74me0bFrBFxIXs8TNIBI2/rdtDLYZznlhI1VDCjuSu3U7mqhv6pxGobIkytjKYmaPr+xI7rqa3y5bJ0yq4vSpNZ1DMqOhvSaKIiIiInJglPCJDFYbnyX11LXcmTqeJW46KRzN8RRJ50gkHb9+bBVlsQLCYWNkWRHTRpUxpqKYscN8cjekcP8/HtrPuSuO+ot67kRERERyQwmfyGDU1kTq7i/TEnAupgkAACAASURBVKvm+zs/QMI5WhIpjPYqmQYY337/NEaWFR3wnHTt89wVRzuHZ+qcOxEREZHcU8InMhg99kNSdevY9I5fUPgAbK9vJhoJURINA0Y8maJqaCFjK7OfPL1dJGx7JHbF0QhhTYUgIiIikpeU8IkMNqsXk/rXH9l+2Dk0VB1FOPQsZlAQNpyDRCrVbYXMTKEQHUlde3GVaOTAegNFREREpP/0a8JnZvOBnwBh4NfOuf/NuH8s8HugPGhziXPu7v6MUWRAa2nA3XspzaXj2Xrk57jt2Q3sbkly9uwxPLVqxx4VMtsrZ7Zrn8g8Fo1Q3D6Ruc67ExERERnQ+i3hM7MwcA1wGrAeWGpmdzjnVqQ1+x/gJufcL8xsCnA3ML6/YhQZ8BZdSXL3Njae9jte2R7n7mWbOOmwKs49ZhznHjNuj6bRSGiPoZmxgjAhDc0UERERGVT6s4dvDvCac+4NADO7EXgfkJ7wOaA0uF4GbOzH+EQGtpfvJbXidrZO+TT1pYdx7e3LqSyJcs6csQDEoiFKiwooioYpLggfcKEWEREREcl//ZnwjQLWpd1eDxyT0eYK4H4z+w+gBDi1f0ITGeB2b8U9eDlNFZPZNu18bnpqHVt2tnLJu46gOBqhIGKMH1aiJE9ERETkIJNv3/7OAa53zo0GzgD+YGZvidHMLjSzp83s6a1bt/Z7kCJ5xTl44DKSrY1sOPabvLi5iYUrt3Da1BFMrvUd5qMripXsiYiIiByE+vMb4AYgvSzg6GBZuk8BNwE455YARUBVRhucc9c652Y752YPHz68j8IVGSCW/43U64vYPOMi6mNj+PVjq6gpK+LsWf7tNnxo4QFNoi4iIiIiA1d/JnxLgUlmNsHMosAC4I6MNmuBUwDMbDI+4VMXnkh3GtbjHvoOjdWzqDt8AX96ai31zW1ceNIhRCMhYtEwI0oLcx2liIiIiORIvyV8zrkE8HngPmAlvhrni2b2LTN7b9DsS8Cnzex54C/Aec45118xigwoqRTcewnJFKw/5nL+tbaBxa9u490zRnLo8CGEQjCmMoaZKm+KiIiIHKz6dZxXMKfe3RnLvpF2fQUwtz9jEhmw/vV7Uuv+ycY5l7EjVMXvnljG2GHFvO/IkQCMLItRGNE8eiIiIiIHM1VxEBmItr2Ge+xH7B51EvXj383vl6ymsS3JhSceQiQcory4gIqSaK6jFBEREZEcU8InMtAk43DPV0hGilk/+2ssWbWDp1fX8aGjRjGmsphoJMTI8liuoxQRERGRPKCET2SgeeqXuDdfZP3sS9mWGsoNS9ZwaHUJ86fVYubP2wuHdN6eiIiIiCjhExlYNi+DJ39Bw4Qz2Dn6ZH7z+CqSKceFJx1KOGRUDy2kOKopGERERETEU8InMlDEW+DurxAvGsaGo77EQy9vZdn6Bj4yeww1pUUUF4YZPlRTMIiIiIhIJyV8IgPF4h/jdrzBujmXsamlgBuXrmXKyFLeMbnaT8FQUawpGERERERkD0r4RAaCtU/CM7+n/vAPs7N6Dr9e/AYhMy44YQIhM0aX+2ItIiIiIiLp9A1RJN+17oJ7LyFeOoYN0/+D+1ds5pXNuzn3mLEMG1JIeXEBZcUFuY5SRERERPKQqjuI5LuHvovb9SZrT72WdbtS3PLMeo4aW84JE6soLAgxSlMwiIiIiEg31MMnks9eWwjLb6V++nnsLJ/GtY++QVFBmPPnTiAUMsZUFBPSFAwiIiIi0g0lfCL5qmkH3H8Z8WGHs/6IT/GPFzayZnsT5x8/nrJYAdWlhcSi4VxHKSIiIiJ5TEM6RfKRc/DAN3CtDax5+89YtaONO57fxHGHDmP2+EpKCsNUDy3KdZQiIiIikufUwyeSj1beAa8+QP1RF7FzyCFc++jrlMYifPzYcYRDxpjK4lxHKCIiIiIDgBI+kXyzcxMs/Dbx2qNYf8gCbnlmPRvrW7hg7gRKCiOMqohRENZbV0RERET2Tt8aRfJJKgX3XYpLJVh79GW8vKWJe1/czMlHVDN9dDmVQ6KUxTQFg4iIiIhkRwmfSD55/s+wZgl1c77EjoJarnvsDYYPKWTB0WMoKghRW6rz9kREREQke0r4RPLFjlXwyPeJjzuBDaPfw41L17J1dyufPvEQYtEwYyo1BYOIiIiI7BslfCL5IJmAe76KixSyZtbXeWFDAw+9tJV3Tavh8Jqh1JQVUVSgKRhEREREZN8o4RPJB0t/DZuep+74r7HNlfGbxasYWV7Eh2aOZmhRhKohhbmOUEREREQGICV8Irn25gp44mckJs1n44h38Icn17CzJcGFJx1KLBpmdEUs1xGKiIiIyAClhE8klxJtcM9XcMUVrDnqv/nnqh0seX077z2ylglVJYyuiBHRFAwiIiIisp/0TVIklx7/CWx7lfoTvsGm1hi/e2I146uKec+MkVQNjTK0SFMwiIiIiMj+U8Inkivrn4Gnf0Ni2odZXz6H3z6+itZ4kgtPPJShsQg1moJBRERERA6QEj6RXGhrhHu/CmWjWTP9P3ns1W08t7aes2aNZnRljNEVxZhpCgYREREROTCRXAcgclB65CpoWE/9e3/Lul3wp6fWcljNEE6fUsPI8pimYBARERGRXqEePpH+9sYj8PxfScw8n7WxKVy3eBUp5/j0CYdQWRKlsiSa6whFREREZJBQwifSn5rr4f6vQ9Uk1k6+gIUrtrBy407OmTOWUZUxRmkKBhERERHpRRrSKdKfFn4TmupomH8Nr+9IcOPTa5k+uox5hw1ndEUx4ZDO2xMRERGR3qMePpH+8tLd8NLdJI+9iDWRcVz76OtEQiE+NXcC1aVFDCnU7y8iIiIi0rv0DVOkr+3eArf9O9StgtojWT/pXO5aupHXtzTy2bcfwsiKGCNKC3MdpYiIiIgMQkr4RPrakv+DNxZBdAg7z/orL25q4tZnN3D0+AqOnziMMZUxTcEgIiIiIn1CCZ9IX7l6GrQ0QKIFnMPFmyn53cnMThZREruOTx4/nlHlxRRGNAWDiIiIiPQNncMn0lc+vQimf9hfD4VJRYfwTNlpnOP+l/PnTmBMZTEVmoJBRERERPqQEj6RvjKkGiwEyTZcqADamnhxW4qphx3KsYcMY2S5pmAQERERkb6lIZ0ifaju9acooojPt32ROSxnZKSBjx07ljGVMU3BICIiIiJ9TgmfSB+5d9lGane0sJUjWZyazsLENIoJc/m2RuZMGJbr8ERERETkIKAhnSJ95L7776SWrdzLXNqSjqKCEJGQcf0Tq3MdmoiIiIgcJNTDJ9JHZu1aRDMx7k+8DQNiBWEiIWN9XXOuQxMRERGRg4R6+ET6QstOTgn9i4XMZncyQjQSIhIKEU86RleoWIuIiIiI9A8lfCJ94eV7qIimuDN5HCkHheEQ8WSKkBkXnzIp19GJiIiIyEFCQzpF+sLyWygYcThb3zyMWGOCFDC6vIiLT5nE/Gm1uY5ORERERA4SSvhEetvWV2DTC7x0+EU0rnN86fTDuODEQ3IdlYiIiIgchJTwifS25X/DhSPcUD+DWDTFmTPUoyciIiIiuaFz+ER6UzIOK25n16i389DaBHMnVlFTWpTrqERERETkIKWET6Q3vb4Imut4IHQCiaTjfW8biZnlOioREREROUhpSKdIb1p2C8mSaq7fMJJDhkeZNa4i1xGJiIiIyEFMPXwivWXXZli9mNeqT2dDQ5z502ooKgjnOioREREROYgp4RPpLS/ehnMp/rh7FrFomDOmq1iLiIiIiOSWEj6R3pBKwfK/0ThiFvetjzJ34jAVaxERERGRnOvXhM/M5pvZy2b2mpld0k2bs81shZm9aGZ/7s/4RPbb+qVQv46HCk4KirWMIhRSsRYRERERya1+K9piZmHgGuA0YD2w1MzucM6tSGszCbgUmOucqzOz6v6KT+SALL+FZHQIv3lzEodWx1SsRURERETyQn/28M0BXnPOveGcawNuBN6X0ebTwDXOuToA59yWfoxPZP+07IRX7mXN8JNZ25Di9Kkq1iIiIiIi+aE/E75RwLq02+uDZekOAw4zs8fN7Ekzm99v0Ynsr5fuwiXauLF5DrFomDNVrEVERERE8kS+zcMXASYB84DRwKNmNt05V5/eyMwuBC4EGDt2bH/HKLKn5bfQXHYof99YwbwjVKxFRERERPJHf/bwbQDGpN0eHSxLtx64wzkXd86tAl7BJ4B7cM5d65yb7ZybPXz48D4LWGSvtr4Mm5ezODaPRAoVaxERERGRvNKfCd9SYJKZTTCzKLAAuCOjzd/xvXuYWRV+iOcb/RijyL5ZdgupUITfbJvOodUlzByrYi0iIiIikj/6LeFzziWAzwP3ASuBm5xzL5rZt8zsvUGz+4DtZrYCeAj4snNue3/FKLJPEm2w4nbWDZvLqzsjnD51BLGoirWIiIiISP7o13P4nHN3A3dnLPtG2nUH/FdwEclvry/EtTRwW+GxxKJhzpimYi0iIiIikl/6deJ1kUFl2S20xqq58c1RzJ04jJqyWK4jEhERERHZQ1YJn5m9P5g4XUQAdm7ErXmcp4rn0ZYK8d4jRxJWsRYRERERyTPZ9vD9CdhgZleZ2WF9GZDIgPDibbhUit/Wv80XaxmnYi0iIiIikn+yTfhqgMuBtwMrzWyxmZ1vZiV9F5pInkqlYPnf2Fx+FMt2lfLOKTUUR/NtSksRERERkSwTPufcLufcr5xzxwIzgKeA7wGbzOw6Mzu2L4MUySvrnsI1bOAfqeOJRcPMn16T64hERERERLq0z0VbnHMvAlcD1wJR4CPAY2b2lJnN6OX4RPLP8ltoi5Rww9ZJnDCxiloVaxERERGRPJV1wmdmBWZ2tpndC6wC3gF8FhgBjMPPrffXPolSJF+0NOBeuY9nS06kOVXAe46sVbEWEREREclbWZ14ZGY/A84BHPAH4L+ccyvSmjSb2SXAxt4PUSSPrLwTl2jjhl2zmVg9hKPGqliLiIiIiOSvbCtNTAE+D9zqnGvrps024OReiUokXy2/he3Fh/Dk9hr+ffYISgpVrEVERERE8ldW31adc6dk0SYBPHLAEYnkqy0rcW+u4J7ijxOLhnmXirWIiIiISJ7LduL175jZZ7tY/lkz+3bvhyWSh5bdQoIIv9sxnRMmVlFTWpTriEREREREepRt0ZaPA892sfwZ4BO9F45Inkq04lbewYslc2hIFfOeI2uJhPe5yK2IiIiISL/K9gSkamBrF8u346t0igxury3ENTfwJ5vDxOohvE3FWkRERERkAMi2i2ItcGIXy08C1vdeOCJ5atnNNBQMZ1HjIZw2ZQRDVKxFRERERAaAbL+1/gq42syiwKJg2SnA94Cr+iIwkbzRsAG3ZgkLC99HUWEB86erU1tEREREBoZsq3T+yMyqgJ8C0WBxG/AT59z3+yo4kbzw4q0kUil+1zCTEyZXUVsay3VEIiIiIiJZyXpcmnPuUjO7Ej8nH8BK59zuvglLJE+kUrjlt/JabDqbWiq5dMZIFWsRERERkQFjn05Ecs41Akv7KBaR/LPuSVzDBm7iDCaNGMKRY8pyHZGIiIiISNayTvjM7GTgHGAsncM6AXDOvaOX4xLJD8tuptFKuLtxKhccW83QooJcRyQiIiIikrVsJ14/D7gHGArMw0/RUAHMBFb0UWwiudVcT+rVB1hccBwFRUXMn1qT64hERERERPZJticj/TfweefcOUAcuNQ5dxTwR0Dn8cng9NKdJOOtXL9rNidMrKKmTMVaRERERGRgyTbhOwR4MLjeCgwJrv8fcF4vxySSF9wLN7O+YAKvpsbw7hm1FKhYi4iIiIgMMNl+g92OH84JsAGYFlwfBqjbQwafN1eQ2rKS29qOZdKIIcwYU57riERERERE9lm2Cd9jwOnB9ZuAn5rZ74C/AA/0RWAiObX8FlpSYf7eMpNTp1RTqmItIiIiIjIAZVul8/NAUXD9e0ACmItP/q7sg7hEcifeQurF23m6YDYpSnmnirWIiIiIyAC114TPzCLAAuDvAM65FHBVH8clkjuvPUiyZSd/aJ3D3ClV1JRq1LKIiIiIDEx7HdLpnEsAPwA0pk0OCqllN7PVhvNs6jDePb2WaETFWkRERERkYMr2m+yTwKy+DEQkLzSsx61Zwp3JY5lYU6piLSIiIiIyoGV7Dt91wA/NbCzwDNCYfqdz7l+9HZhITiy/lbak42+tczhr8ghKi7J9i4iIiIiI5J9sv83+Ofj74y7uc0C4d8IRyaFUkuSyW1gemUqjVXP61BGYWa6jEhERERHZb9kmfBP6NAqRfLB2Camdm7ix9V2cMKWKmrKiva8jIiIiIpLHskr4nHNr+joQkVxLvXAzDaliHksdyY9m1FIYUce1iIiIiAxsWSV8ZvbBnu53zt3aO+GI5EhzHe7VB7nfzeWQ2gpmjFKxFhEREREZ+LId0nlLN8td8FddITKwrfwHbW2t/K3tWN55xAhKYyrWIiIiIiIDX1bTMjjnQukXIAocAzwGnNSXAYr0OedIPH8Tb4TG82bReOZPrVGxFhEREREZFPZrRmnnXMI5txT4GvDz3g1JpJ+9+SJu68vc3HYMJ0ysYkRZYa4jEhERERHpFfuV8KWpBw7tjUBEciX5ws00JsMsTM3hjOk1KtYiIiIiIoNGtkVbZmYuAmqBrwLP9nZQIv0m3oJbeSePupmMqq1mxmgVaxERERGRwSPbyhRP4wu0ZJ7Y9CRwfq9GJNKfXr2feFMDt8WP45QjRlAWK8h1RCIiIiIivWZ/J15PAVudcy29HI9Iv4o/fzObqOL1wslcMXWEirWIiIiIyKCiidfl4FW/FtY+yW3xM5k7tZoRpUW5jkhEREREpFdlVbTFzL5jZp/tYvlnzezbvR+WSN9LvPA3WhKO+9zxzJ9eQ1GBirWIiIiIyOCSbZXOj9N1cZZngE/0Xjgi/SSVxC2/laVMYVjtWGaMUrEWERERERl8sk34qoGtXSzfDozovXBE+odbvZhEwyZuTxzHyUcMV7EWERERERmUsk341gIndrH8JGB974Uj0j/iz99MXaqYF4pmcfqUGkIhFWsRERERkcEn2yqdvwKuNrMosChYdgrwPeCqvghMpM807YDXFnFn4niOm1xLTZmKtYiIiIjI4JRtlc4fmVkV8FMgGixuA37inPt+XwUn0hfiy/9Oa1sr93ICF09VsRYRERERGbyy7eHDOXepmV0JTAkWrXTO7e6bsET6iHOkXriFlW4chbVHMH10Wa4jEhERERHpM1klfGZWA0Scc+uBpWnLRwNx59ybfRSfSK9ym18gtfUV/pFcwDsmD6dcxVpEREREZBDLtmjLH4F3dbH8ncAfst2Zmc03s5fN7DUzu6SHdh8yM2dms7Pdtkg22p69md3JCP8sOo5TJ6tYi4iIiIgMbtkmfLOBR7tY/lhw316ZWRi4Bp84TgHOMbMpXbQbClwMPJVlbCLZiTfjXrqThcmjmDVpLDWlKtYiIiIiIoNbtglfBCjsYnlRN8u7Mgd4zTn3hnOuDbgReF8X7b6Nr/zZkuV2RbLStvIe4s27uJe5zJ82glhUxVpEREREZHDLNuF7Cvj3LpZfRNo5fXsxCliXdnt9sKyDmc0Exjjn7spymyJZS75wM+tSVbTWzGLqSBVrEREREZHBL9sqnV8HFpnZDDrn4XsHMBM/H98BM7MQ8GPgvCzaXghcCDB27Nje2L0Mcqkdq2HdUu5MvZt3TB5BeXF0r+uIiIiIiAx0WfXwOeeeBI4DVgMfDC5vAMcCxVnuawMwJu326GBZu6HANOBhM1sdbPuOrgq3OOeudc7Nds7NHj58eJa7l4NZy3M305JwPF50EqdOqSasYi0iIiIichDYl3n4ngfOhY7pGM4HbgPGAdmcDLUUmGRmE/CJ3gLgo2nbbwCq2m+b2cPAfzvnns42RpEupZKw/FaWpKYwddIkRqhYi4iIiIgcJLI9hw8zC5vZB83sLmAV8H7gl8DEbNZ3ziWAzwP3ASuBm5xzL5rZt8zsvfseukgWdm8h+Zv5pHZu5h5O4J1TR1Aczfp3DhERERGRAW2v33zN7HDgAuATQCPwZ/z8ex93zq3Yl5055+4G7s5Y9o1u2s7bl22LdGnJNYQ2Pk3CDaF+5FymjlKxFhERERE5ePSY8JnZY/jz6v4GnO2ceyRY/tV+iE1k/109jXhTPal4KxGXooRGrt18NkXXVcIXl+c6OhERERGRfrG3IZ3HATcAV7cneyIDwaIT/8Jt8eNIAWA0Ucjtqbk8dOKNOY5MRERERKT/7C3hOxrfC7jYzJ41sy+aWU0/xCVyQH7weB0R4hTRRpwIhcRpIsYPHt+R69BERERERPpNjwmfc+5Z59xFQC1+jrz34idPDwFnmllF34cosu821jUyl+fZ4YayIP4//MnOpMp2sr6uOdehiYiIiIj0m6zKFTrnWoA/AH8ws4n4Ii5fBK40s0XOuXf1YYwi++wThY9hLY5LEhfyUvhw1kemkkg6RldoSgYREREROXhkPS1DO+fca865S/CTqJ8NtPV6VCIHoH7zai6w23k8NZWFqZkURUIkko6QGRefMinX4YmIiIiI9Jv9npDMOZcEbg8uInkhkUjCg1eQSDl+audSPTTGrtY4YytjXHzKJOZPq811iCIiIiIi/UYzUMugUvfs7Qxdv5gfJM5i2hFH8Jm3H8qhw4cQi4ZzHZqIiIiISL/b5yGdIvlqV/02hjxxFS+mxrGo8FQ+OmccVUMKleyJiIiIyEFLCZ8MCqmUI77oe8Qbd/Dd+Lmce/whDBsaZURpYa5DExERERHJGSV8MijseOlRSl65gz8lT6Fs3HTmjK9kdEUMM8t1aCIiIiIiOaOETwa85qZGYg9fwZpUFTdF3s95x42namghxVGdoioiIiIiBzclfDKgOedofPSnUL+Wq+ILeP/RhzKirIiaUs23JyIiIiKihE8GtB1rljHkhd9zV/JYmmqPYd7hwxlVESMU0lBOERERERElfDJgtba1UbDwcrbHC/mVfZh/mzuBYUOiDCnUUE4REREREVDCJwPYziU3EHlzGVcnzuK0mYczZliM2rJYrsMSEREREckbSvhkQKp/cy1Dnv4pTySP4LVhJzN/Wi0jy2OENZRTRERERKSDEj4ZcBKJJDz4TRpb4lzNR7ngxEMYNiRKaVFBrkMTEREREckrSvhkwKl77h8Urn2EXyXOZOb0GRxaPYTaMlXlFBERERHJpIRPBpSd9dspefx7vJgczROlZ/L+t41iZHmMSFgvZRERERGRTPqWLANGKuWIP3QVbbt38P3kxzjvxIkMH1pIWUxDOUVEREREuqKETwaM7S8/TvFLt/KXxMmMmTybqSPLqC3XUE4RERERke4o4ZMBoampkdjDV7A2WcEdJR/i7NljGFleRIGGcoqIiIiIdEvfliXvOedofOznuB2r+EHyXM45/nBGlBZRXhzNdWgiIiIiInlNCZ/kvR1rX2TI87/l7uTRRA45kVnjKxhZrgnWRURERET2Rgmf5LXWeJzIwsvZ1hbhhugCPnbsOGrLYkQjeumKiIiIiOyNvjVLXmt48g+ENz3Hz5Jn8Z5jpzOyvIjKEg3lFBERERHJhhI+yVt1b65jyD9/wpPJw9g8aj5zJw5jVIWGcoqIiIiIZEsJn+SleDIFC7/F7qYWrol8gvNPmEBteYzCSDjXoYmIiIiIDBhK+CQv1T13F9HVi/hN6t2cMHsmY4cVUzWkMNdhiYiIiIgMKEr4JO/sbNhB8eLvsjIxkuer38epk0cwSlU5RURERET2mRI+ySuplCP+8A+J79zC1aFPcN4Jh1FbXkRRgYZyioiIiIjsKyV8kle2v7KE2IqbuDl5MkccOZeJI0oYrqGcIiIiIiL7RQmf5I2m5iYKH7qctfEyHqhcwHuOrGV0RTFmluvQREREREQGJCV8khecczQ+9gvc9tf5f3yUc0+cTG15TEM5RUREREQOgBI+yQs71r1E8bPXcX9iFhVTT2PqyFKqh2oop4iIiIjIgVDCJznXGo8TfvAbbG8Nc/PQT/ChWaMZVRHTUE4RERERkQOkhE9yruGpPxPa+Aw/d2fxwROPZFRFjOJoJNdhiYiIiIgMeEr4JKfqtqyn+MmrWZqcRNOk93HU2ApGDC3KdVgiIiIiIoOCEj7JmXgyRWrhlTQ1NXJd0fl89JhxjK6IEQppKKeIiIiISG9Qwic5U/fCvUTfeIDr3ZmcdvwxjBlWTEmhhnKKiIiIiPQWJXySEzsbdlD06JW8nKjh9XEf4fiJldSWaiiniIiIiEhvUsIn/S6ZcrQ+/CMSDZu5puA8zj1+IqMrijWUU0RERESklynhk36349WniL34V25NzWPmMfOYUFXC0KKCXIclIiIiIjLoKOGTftXU3EzBwstZHx/KE7Uf55TJ1Ywsj+U6LBERERGRQUkJn/Qb5xy7F/8Ktr/K/4U+xkdPnMKoimLCGsopIiIiItInlPBJv9m+7mViz/yShcmZjJl9JoeNGEpZTEM5RURERET6ihI+6RctbQnswcupaw1xZ9V5nDG9lpHlqsopIiIiItKXlPBJv2h4+q9ENizlWjuLs06axZjKGJGwXn4i/7+9Ow+PqrzfP/7+ZF/YEhYLRAFbBCRkAoSAspSySdGi4JKvIBTcsSIVS0tbFdQf1iouRW0VLYILFRQFqYBCNSpWlC1AWGSRKEgICCRESAhJnt8fM6QBkrBmJoT7dV25cmbmzHnuOTN5cj5znnOOiIiISGXy6xa3mfU1s6/NbLOZjS3j8dFmts7MVpvZf8ysiT/zSeXYt3sHEZ8/wfKinxKccB3xjWtRJyos0LFERERERKo9vxV8ZhYMPA/8ErgUuNHMLj1mtpVAknMuAXgbeNxf+aRyHC4qpnDR/yP/4I+8UetWBrS7UGflFBERERHxE3/u4UsGNjvn7lJ0kwAAIABJREFUvnHOFQBvAleXnsE597Fz7qDv5hIgzo/55CxzuVkUvdSbiM3zeJ1+9Pt5Zy6qG02ohnKKiIiIiPiFP7e8GwPbSt3e7ruvPLcA8ys1kVSaeaszeWvS7wjLXM7+QmPlT66nXZMYYqM1lFNERERExF9CAh2gLGZ2E5AE/Lycx28Hbge46KKL/JhMTsbBv7aka142Ue4QDkc99vOPzBsI/mcd+MP6QMcTERERETlv+HMP3/fAhaVux/nuO4qZ9QL+DPR3zh0qa0HOucnOuSTnXFL9+vUrJaycnoMFhdzLfeS5cMDxI9EcJJL36cLNYX8NdDwRERERkfOKPwu+pUBzM2tmZmHA/wHvlZ7BzNoCL+It9nb5MZucBTkHD5O5djFjDj5DCIUUEUwxQURaPvkWxdqc8EBHFBERERE5r/htSKdzrtDM7gY+AIKBKc65tWb2MLDMOfce8ARQA3jLzAC+c87191dGOX27cvPJWzmLhl88wnpXi6+LG5EZ3JD5wd35lfuUOm4fcTE6O6eIiIiIiD/59Rg+59w8YN4x9z1YarqXP/PImXPO8f2+A4R8MYl6q/7JF4eb81jECDIPhWMYYWY84wYRFGQ82rN5oOOKiIiIiJxXquRJW+TcUFTs2LZrDzU/vp+wbxYy6/BlfNjwTsb3aMnazBzeXr6dzJx84mIiGdWzOX3jGwY6soiIiIjIeUUFn5yWgsJitm3LoO6ie3E71zCpeCC7WwzmvsubEhEWzE2dmnB7t58GOqaIiIiIyHlNBZ+csoMFhWRuTqP+wlEcyPmBCYygaaf+3HzpBURHhHBRbJQuri4iIiIiUgWo4JNTknPwMHvXLOCCT/7IjrxQHg4dS78ePWgTV4fYGmE0qh2B74Q7IiIiIiISYCr45KTt2p/H4S+nUH/p06w53Ji/1RzN8D4daRwTSaM6kcRGhwU6ooiIiIiIlKKCT07IOcf3e/YT+skEaq5/m4WFicxp/FtG9WhNTHQoF8VGERWmj5KIiIiISFWjrXSpUFGxY1vmTmp+OJqg7UuYVtyXbZfezqiOTakVFarj9UREREREqjAVfFKugsJivt+6gTof3M3hvd8xkWH8pPMghrRsQN0aYTTU8XoiIiIiIlWaCj4p08GCQrLWLSZ20Wj2HTjEX8Luo2evq7i0US0a14kkRsfriYiIiIhUeSr45Dg5eYfJWTaTuosf5ptDdZhU+08MuqIrcbGRNImNJjIsONARRURERETkJKjgk6Ps3p/H4U+eovaqf7Kk8BLevfAP3PGLBOrXDOei2ChCdLyeiIiIiMg5QwWfAN4zce7Ys4+QBWOJ/GYhc4q7sClhNHckNaNBrXAdryciIiIicg5SwScUFTu2b/+WqPfvxnat5R92PXW63UZKiwY6Xk9ERERE5Bymgu88V1BYTOamFdSYfzd5uft4Jmwkl/W5gdaNa+l4PREREalSDh8+zPbt28nPzw90FJGAiIiIIC4ujtDQ0JN+jgq+81heQRG70uZR6z9j2XkojOfrPMi1fXvTpG6UjtcTERGRKmf79u3UrFmTpk2b6lATOe8459izZw/bt2+nWbNmJ/08FXznqZyDBexf/CK1v3qGtYVxzLroz/z6F0nExUbyk1o6Xk9ERESqnvz8fBV7ct4yM+rWrcvu3btP6Xkq+M5Du7N/5NAH44n+ehYfFbdlXeL9DEu6mItio6gTpeP1REREpOpSsSfns9P5/GvM3nnEOceOrCwK37qFyA2zmM4v2fOLx7mu089o3qCmij0REREROSNTp07l7rvvBuCFF17g1VdfPW6ejIwM4uPjK1xORkYG06dPL7m9bNky7rnnnrMb9jyhPXzniaJix46Mrwl7706Ks7fxXPgtJPYdTpu42jpeT0RERKqlBemZ/O0/m9i+L4+4mEhG9WxO3/iGgY5VaQoLCwkJqTqb93feeedpP/dIwTdo0CAAkpKSSEpKOlvR/KKqvB/ayj8PFBQW8/2aT4icmcKB7N38LeZP/GLgHSRfHEuzetEq9kRERKTaWZCeyZ/eSSczO5+IkCAys/P50zvpLEjPPO1lZmRk0LJlS4YNG8Yll1zC4MGDWbRoEZ07d6Z58+Z89dVXABw4cICbb76Z5ORk2rZty5w5c0qe37VrV9q1a0e7du3473//C0Bqairdu3fnuuuuo2XLlgwePBjn3HHtb968mV69euHxeGjXrh1btmwhNTWVrl270r9/fy699FLy8/MZPnw4bdq0oW3btnz88ccArF27luTkZBITE0lISGDTpk0cOHCAK6+8Eo/HQ3x8PDNmzDiqveLiYpo2bUp2dnbJfc2bNycrK4u5c+fSsWNH2rZtS69evcjKyjou7/jx45k4cSIAy5cvx+Px4PF4eP75549ap2Wtk7Fjx/LZZ5+RmJjI008/TWpqKldddRUAe/fu5ZprriEhIYFOnTqxevXqkvZuvvlmunfvzsUXX8ykSZPKfB9HjBhBUlISrVu3Zty4cSX3L126lMsvvxyPx0NycjK5ubkUFRXxu9/9jvj4eBISEnj22WcBaNq0KT/88APg3fvYvXv3kgxDhgyhc+fODBkypNzXB/DXv/6VNm3a4PF4GDt2LFu2bKFdu3Ylj2/atOmo26cr8CWnVKq8giKyvvgXtT57mG8LY3i7yYPc0ONyLq4frSGcIiIics566sOv2Zj1Y7mPf775B/ILiwgyI++w975i5xjz1mpmr9xR5nMuuaAGo/u0qLDdzZs389ZbbzFlyhQ6dOjA9OnTWbx4Me+99x6PPvoos2fPZsKECfTo0YMpU6aQnZ1NcnIyvXr1okGDBixcuJCIiAg2bdrEjTfeyLJlywBYuXIla9eupVGjRnTu3JnPP/+cLl26HNX24MGDGTt2LAMGDCA/P5/i4mK2bdvGihUrSE9Pp1mzZjz55JOYGWvWrGHDhg306dOHjRs38sILLzBq1CgGDx5MQUEBRUVFzJs3j0aNGvH+++8DkJOTc1R7QUFBXH311bz77rsMHz6cL7/8kiZNmnDBBRfQpUsXlixZgpnx8ssv8/jjj/Pkk0+Wu96GDx/Oc889R7du3RgzZkzJ/eWtk8cee4yJEyfy73//G/AWxUeMGzeOtm3bMnv2bD766COGDh1KWloaABs2bODjjz8mNzeXFi1aMGLEiOMuYTBhwgRiY2MpKiqiZ8+erF69mpYtW5KSksKMGTPo0KED+/fvJzIyksmTJ5ORkUFaWhohISHs3bu3ws8HwLp161i8eDGRkZEcPHiwzNc3f/585syZw5dffklUVBR79+4lNjaW2rVrk5aWRmJiIq+88grDhw8/YXsnooKvGlqQnsm0hV9xW/bf2BbajCuL/sMy15LVbR9mSHJLmtaLJiJU19cTERGR6ivvcBFBx5zfwnz3n4lmzZrRpk0bAFq3bk3Pnj0xM9q0aUNGRgYAH374Ie+9917J3q38/Hy+++47GjVqxN13301aWhrBwcFs3LixZLnJycnExcUBkJiYSEZGxlEFX25uLt9//z0DBgwAvNdjK/3cI6fpX7x4MSNHjgSgZcuWNGnShI0bN3LZZZcxYcIEtm/fzsCBA2nevDlt2rThvvvu4w9/+ANXXXUVXbt2Pe71pqSk8PDDDzN8+HDefPNNUlJSAO8lMlJSUsjMzKSgoKDCywRkZ2eTnZ1Nt27dABgyZAjz588HvNdWLG+dlGfx4sXMmjULgB49erBnzx72798PwJVXXkl4eDjh4eE0aNCArKyskvV6xMyZM5k8eTKFhYVkZmaybt06zIyGDRvSoUMHAGrVqgXAokWLuPPOO0uGZsbGxp4wX//+/YmMjKzw9S1atIjhw4cTFRV11HJvvfVWXnnlFZ566ilmzJhRstf4TKjgq2YWpGfyx3fW8NvimfycleQfTuf1ot5s9Yzmjs4tuTAmUkM4RURE5Jx3oj1xv/zbp2Rm5xMW8r/tnoLCYhrWieCFIe1Pu93w8PCS6aCgoJLbQUFBFBYWAt4T5c2aNYsWLY7OOH78eC644AJWrVpFcXHxUUVb6eUGBweXLOtkREdHn3CeQYMG0bFjR95//3369evHiy++SI8ePVixYgXz5s3j/vvvp2fPnlxxxRXccccdADz88MP86le/YvPmzezevZvZs2dz//33AzBy5EhGjx5N//79SU1NZfz48Sedt7Snn3663HVyOk60Hrdu3crEiRNZunQpMTExDBs2jPz8/FNuJyQkhOLiYoDjnl/6/TjV13fttdfy0EMP0aNHD9q3b0/dunVPOduxtOVfTTjnyD5YQPtZl7OkaBBD3PtAMaEUcmPwR9y7LoWmdXVyFhERETk/jOrZnCAzCgqLcc5RUFhMkBmjejav9LavuOIKnn322ZLj8FauXAl4h0w2bNiQoKAgXnvtNYqKTn5vY82aNYmLi2P27NkAHDp0iIMHDx43X9euXXnjjTcA2LhxI9999x0tWrTgm2++4eKLL+aee+7h6quvZvXq1ezYsYOoqChuuukmxowZw4oVK+jYsSNpaWmkpaXRv39/zIwBAwYwevRoWrVqVVKA5OTk0LhxYwCmTZtWYfY6depQp04dFi9eDFCSr6J1UrNmTXJzc8tcXunXmJqaSr169Ur2yJ3I/v37iY6Opnbt2mRlZZXsaWzRogWZmZksXboU8O5RLSwspHfv3rz44oslheORIZ1NmzZl+fLlACV7G8tS3uvr3bs3r7zySsl7eGS5ERERXHHFFYwYMeKsDOcEFXznvOJixw+5+Xy3YiE5/7oNV1zEYYIoIIQcanLAolhgXbnBParr1oiIiMh5o298Qx4dGE/DOhHk+/bsPTow3i9n6XzggQc4fPgwCQkJtG7dmgceeACAu+66i2nTpuHxeNiwYcNJ7Zkr7bXXXmPSpEkkJCRw+eWXs3PnzuPmueuuuyguLqZNmzakpKQwdepUwsPDmTlzJvHx8SQmJpKens7QoUNZs2ZNyYlcHnrooZK9d8dKSUnh9ddfLxnOCd69lddffz3t27enXr16J8z+yiuv8Jvf/IbExMSjTkhT3jpJSEggODgYj8fD008/fdSyxo8fz/Lly0lISGDs2LEnLDhL83g8tG3blpYtWzJo0CA6d+4MQFhYGDNmzGDkyJF4PB569+5Nfn4+t956KxdddBEJCQl4PJ6SS0WMGzeOUaNGkZSURHBw+YdKlff6+vbtS//+/UlKSiIxMbFk+C94j9UMCgqiT58+J/26KmJlnQHoXJKUlOSOHOx6PiksKmbvvr3kpc0idPV0In78jj3FNXi3sDONbDfXBX9CHhFEkc8b9OOtmFuZP6pboGOLiIiInLb169fTqlWrQMcQqVQTJ04kJyeHRx55pMzHy/o7MLPlzrkyr1uhY/jOMYcKi9i3bQN5X71KzS3/JrrgAOtpxuIadxLV5ioiQkKp8dkY3qAfHwR354qiT6hHjl+GL4iIiIiIyOkbMGAAW7Zs4aOPPjpry1TBd47Iyy8gZ+1C8pdOpfauZbjiIBZaMt/EXc0liZ25ulEtYqLDiIkKI/WCF3jbd5HR3Jhbqv1FRkVEREREqoN33333rC9TBV8Vtz97N9lLphOy5k3CDu4kz9VhbvhADrW8lo7xzelSN5o6UaHUCA8pOUavb3xDFXgiIiIiIqKCrypyzrE/I409i6dQ69sPiSw8xCpasKLuIBp4+nJFi59Qr0Y4tSNDCT72AjMiIiIiIiI+KviqkKLDBexdOZcfv5xK7X3phBaHMj/4crKaX0u79sn8ulFt6kSFEh6ii6aLiIiIiMiJqeCrAg7n7GTnp1MJWTuT0Py97Kc+79cYTEiba+nh+RmNYiKpEa63SkRERERETo2qiEBxjoNbvyIz9SVqf59KeFERyyyejY1/Q4uOfRl0cT3qRIURpCGbIiIiIlVCdnY206dP56677jrl5/br14/p06dTp06dSkgmUj4VfP52OI/dy2ZxYMk0auzfRJCL5P3wXuS1uYEelyXRq24NwkKCAp1SREREpHr4cRfMHQW/mgQ16p/RorKzs/n73/9eZsFXWFhISEj5m9bz5s07o7Yri3MO5xxBQdr+rK70zvqJ2/ctGbPGsfOJZPjgfnblHGRW7O2svvI9Bt77LHde04NLLqilYk9ERETkbPriedjyH/jiuTNe1NixY9myZQuJiYmMGTOG1NRUunbtSv/+/bn00ksBuOaaa2jfvj2tW7dm8uTJJc9t2rQpP/zwAxkZGbRq1YrbbruN1q1b06dPH/Ly8o5ra+7cuXTs2JG2bdvSq1cvsrKyAPjxxx8ZPnw4bdq0ISEhgVmzZgGwYMEC2rVrh8fjoWfPngCMHz+eiRMnliwzPj6ejIwMMjIyaNGiBUOHDiU+Pp5t27YxYsQIkpKSaN26NePGjSt5ztKlS7n88svxeDwkJyeTm5tLt27dSEtLK5mnS5curFq16ozXr1QO7eE7yxakZzJt4VfcljOJl2qNZES8o9HWWcRk/ZeIYvgquB27WlzPZV2v4PbGtUsupSAiIiIip+CjCbB7ffmPb1oExYfBFUNQMPx3krfoCwqF5r3Kfk79VtDjz+Uu8rHHHiM9Pb2k2ElNTWXFihWkp6fTrFkzAKZMmUJsbCx5eXl06NCBa6+9lrp16x4dbdMm/vWvf/HSSy9xww03MGvWLG666aaj5unSpQtLlizBzHj55Zd5/PHHefLJJ3nkkUeoXbs2a9asAWDfvn3s3r2b2267jU8//ZRmzZqxd+/eE609Nm3axLRp0+jUqRMAEyZMIDY2lqKiInr27Mnq1atp2bIlKSkpzJgxgw4dOrB//34iIyO55ZZbmDp1Ks888wwbN24kPz8fj8dzwjYlMFTwnUUL0jP50zvp/LZ4Bl1ZSauc3xL0uSObWsyreTVRHQbTp6OHmhGhgY4qIiIiUr016wq7v4bcHWBB3nFtNRtB/RZntZnk5OSSYg9g0qRJJRfP3rZtG5s2bTqu4GvWrBmJiYkAtG/fnoyMjOOWu337dlJSUsjMzKSgoKCkjUWLFvHmm2+WzBcTE8PcuXPp1q1byTyxsbEnzN2kSZOSYg9g5syZTJ48mcLCQjIzM1m3bh1mRsOGDenQoQMAtWrVAuD666/nkUce4YknnmDKlCkMGzbshO1J4KjgO4vavtOVT4oPEOnyMYppQDaHCIWgEG667yntzRMRERE5WyrYE1fiwwfhqxcgNBoOH4DWA6D3Q2c1RnR0dMl0amoqixYt4osvviAqKoru3buTn59/3HPCw8NLpoODg8sc0jly5EhGjx5N//79SU1NZfz48aecLSQkhOLi4pLbpbOUzr1161YmTpzI0qVLiYmJYdiwYWXmPiIqKorevXszZ84cZs6cyfLly085m/iPDhg7i1KKJ7DAunLQIsihJrlWg/eDfsEN7i8q9kRERET87eAP0PEuGD7f+/vA7jNaXM2aNcnNzS338ZycHGJiYoiKimLDhg0sWbLktNvKycmhcePGAEybNq3k/t69e/P888+X3N63bx+dOnXi008/ZevWrQAlQzqbNm3KihUrAFixYkXJ48fav38/0dHR1K5dm6ysLObPnw9AixYtyMzMZOnSpQDk5uZSWFgIwK233so999xDhw4diImJOe3XKZVPBd9ZFBnTkB9dBOEcJsggknxyXQRRMT8JdDQRERGR8881f4fe46FBS+/va/5+RourW7cunTt3Jj4+njFjxhz3eN++fSksLKRVq1aMHTv2qCGTp2r8+PFcf/31tG/fnnr16pXcf//997Nv3z7i4+PxeDx8/PHH1K9fn8mTJzNw4EA8Hg8pKSkAXHvttezdu5fWrVvz3HPPcckll5TZlsfjoW3btrRs2ZJBgwbRuXNnAMLCwpgxYwYjR47E4/HQu3fvkj1/7du3p1atWgwfPvy0X6P4hznnAp3hjCQlJblly5YFOgbgPYbv0Nsj+IHafBD8c64o+oR65BB+3T/oG98w0PFEREREzmnr16+nVatWgY4hwI4dO+jevTsbNmzQJR38rKy/AzNb7pxLKmt+vTtnUd/4hoRf9w/ejrmF9UWNeTvmFhV7IiIiIlKtvPrqq3Ts2JEJEyao2DsH6KQtZ1nf+IYq8ERERESk2ho6dChDhw4NdAw5SSrJRUREREREqikVfCIiIiJyzjjXzz8hciZO5/Ovgk9EREREzgkRERHs2bNHRZ+cl5xz7Nmzh4iIiFN6no7hExEREZFzQlxcHNu3b2f37jO7np7IuSoiIoK4uLhTeo4KPhERERE5J4SGhtKsWbNAxxA5p2hIp4iIiIiISDWlgk9ERERERKSaUsEnIiIiIiJSTdm5fpYjM9sNfBvoHGWoB/ygDMpQhTJA1cihDMqgDMqgDFU/A1SNHMqgDMpwcpo45+qX9cA5X/BVVWa2zDmXpAzKUFUyVJUcyqAMyqAMylD1M1SVHMqgDMpw5jSkU0REREREpJpSwSciIiIiIlJNqeCrPJMDHQBlOEIZ/qcq5FAGL2XwUgYvZfBSBq+qkAGqRg5l8FIGL2U4DTqGT0REREREpJrSHj4REREREZFqSgXfWWZmU8xsl5mlBzDDhWb2sZmtM7O1ZjYqABkizOwrM1vly/CQvzOUyhJsZivN7N8Baj/DzNaYWZqZLQtQhjpm9raZbTCz9WZ2mZ/bb+F7/Ud+9pvZb/2ZwZfjXt/nMd3M/mVmEQHIMMrX/lp/roOy+iYzizWzhWa2yfc7JgAZrveti2Izq/SznpWT4Qnf38ZqM3vXzOoEIMMjvvbTzOxDM2vk7wylHrvPzJyZ1fN3BjMbb2bfl+or+vk7g+/+kb7PxFoze9zfGcxsRql1kGFmaQHIkGhmS4787zKz5ABk8JjZF77/oXPNrFYlZyhz+8mffWUFGfzWV1aQwW99ZQUZ/NZXlpeh1ON+6SvPCuecfs7iD9ANaAekBzBDQ6Cdb7omsBG41M8ZDKjhmw4FvgQ6BWh9jAamA/8OUPsZQL1AfR58GaYBt/qmw4A6AcwSDOzEe70Yf7bbGNgKRPpuzwSG+TlDPJAORAEhwCLgZ35q+7i+CXgcGOubHgv8NQAZWgEtgFQgKUDroQ8Q4pv+a4DWQ61S0/cAL/g7g+/+C4EP8F7ftlL7rXLWw3jgd5X9OThBhl/4/jbDfbcbBOK9KPX4k8CDAVgPHwK/9E33A1IDkGEp8HPf9M3AI5WcocztJ3/2lRVk8FtfWUEGv/WVFWTwW19ZXgbfbb/1lWfjR3v4zjLn3KfA3gBnyHTOrfBN5wLr8W7s+jODc8796LsZ6vvx+wGjZhYHXAm87O+2qwozq433H+k/AZxzBc657ABG6glscc59G4C2Q4BIMwvBW3Tt8HP7rYAvnXMHnXOFwCfAQH80XE7fdDXeLwPw/b7G3xmcc+udc19XZrsnkeFD3/sBsASIC0CG/aVuRlPJ/WUF/6ueBn5f2e2fIIPflJNhBPCYc+6Qb55dAcgAgJkZcAPwrwBkcMCRPWq1qeT+spwMlwCf+qYXAtdWcobytp/81leWl8GffWUFGfzWV1aQwW995Qm2p/3WV54NKviqOTNrCrTFu4fN320H+4ah7AIWOuf8ngF4Bu8fZHEA2j7CAR+a2XIzuz0A7TcDdgOvmHdo68tmFh2AHEf8H5W88VIW59z3wETgOyATyHHOfejnGOlAVzOra2ZReL81v9DPGUq7wDmX6ZveCVwQwCxVxc3A/EA0bGYTzGwbMBh4MADtXw1875xb5e+2j3G3b8jWlMocOleBS/D+nX5pZp+YWYcAZDiiK5DlnNsUgLZ/Czzh+0xOBP4YgAxr8RZbANfjx/7ymO2ngPSVgdyGO4kMfusrj80QiL6ydIYq1FeeNBV81ZiZ1QBmAb895hsRv3DOFTnnEvF+A5RsZvH+bN/MrgJ2OeeW+7PdMnRxzrUDfgn8xsy6+bn9ELzDZP7hnGsLHMA7JMXvzCwM6A+8FYC2Y/BuODQDGgHRZnaTPzM459bjHQbzIbAASAOK/JmhPM47RuWc+KayspjZn4FC4I1AtO+c+7Nz7kJf+3f7s23fFxB/IgCF5jH+AfwUSMT7xcyTAcgQAsQCnYAxwEzfnrZAuJEAfEHmMwK41/eZvBffKBE/uxm4y8yW4x1SV+CPRivafvJXXxnobbiKMvizrywrg7/7ytIZ8L7uqtBXnhIVfNWUmYXi/XC+4Zx7J5BZfMMHPwb6+rnpzkB/M8sA3gR6mNnrfs5wZM/SkWFB7wKVeuB7GbYD20vtYX0bbwEYCL8EVjjnsgLQdi9gq3Nut3PuMPAOcLm/Qzjn/umca++c6wbsw3tMQKBkmVlDAN/vSh26VpWZ2TDgKmCwb4MukN6gkoeuleGneL8MWeXrM+OAFWb2E3+GcM5l+b4sLAZewv/9JXj7zHd8hyZ8hXeEiN9PyuAbej4QmOHvtn1+jbefBO+XdH5/L5xzG5xzfZxz7fEWvlsqu81ytp/82ldWhW248jL4s688ifVQ6X1lGRmqRF95qlTwVUO+byL/Cax3zj0VoAz1j5y9ycwigd7ABn9mcM790TkX55xrincY4UfOOb/u0TGzaDOreWQa7wHPfj2Dq3NuJ7DNzFr47uoJrPNnhlIC+W31d0AnM4vy/Y30xDse36/MrIHv90V4N+am+ztDKe/h3ajD93tOALMEjJn1xTv0u79z7mCAMjQvdfNq/N9frnHONXDONfX1mdvxnqxgpz9zHNmo9hmAn/tLn9l4T9yCmV2C90RXPwQgRy9gg3NuewDaBu8xez/3TfcA/D6stFR/GQTcD7xQye2Vt/3kt76yimzDlZnBn31lBRn81leWlaGq9JWnzFWBM8dUpx+8G7OZwGG8H4JbApChC97hBqvxDhlLA/r5OUMCsNKXIZ1KPsPYSeTpTgDO0glcDKzy/awF/hyg158ILPO9H7OBmABkiAb2ALUD+Dl4CO8/h3TgNXwqYPYgAAAEnUlEQVRn4fNzhs/wFtyrgJ5+bPe4vgmoC/wH74bcIiA2ABkG+KYPAVnABwHIsBnYVqq/rOwzZJaVYZbvc7kamIv35AR+zXDM4xlU/lk6y1oPrwFrfOvhPaBhADKEAa/73o8VQI9AvBfAVODOymz7BOuhC7Dc11d9CbQPQIZReEdBbAQeA6ySM5S5/eTPvrKCDH7rKyvI4Le+soIMfusry8twzDyV3leejR/zhRUREREREZFqRkM6RUREREREqikVfCIiIiIiItWUCj4REREREZFqSgWfiIiIiIhINaWCT0REREREpJpSwSciInKWmFm6mY33U1vOzK7zR1siInLuUsEnIiLnDF+RU9HP1EBnPNvMbLyZBeIC5CIiUg2EBDqAiIjIKWhYavoq4KVj7ssrPbOZhTrnDvsjmIiISFWkPXwiInLOcM7tPPIDZJe+D4gAss3sRjP7yMzygDsAzGy4ma0zs3wz22hm95pZyf9AM6ttZpPNbJeZ5ZrZJ2aWVFEWM2tgZnPMLM/MvjWzm8uYp8LlmtkwM/vRzH7ly5VvZh+b2cVHHgfGAa1L7cUcVqqJWDN7y8wOmNk3ZnbTaa5aERGpplTwiYhIdfMX4O/ApcBsM7sNeBR4EGgF3Af8AbgLwMwMeB9ojHevYVvgU+AjM2t43NL/ZyrwM6AXcA0wFGh65MFTWG443qJuOHAZEAy843v+DOBJ4Gu8ezIb+u474kFgDuDx3T/FzC46mZUkIiLnBxV8IiJS3TzrnHvbObfVObcdeAD4fan75gKP4Sv4gF8AicB1zrmvnHObnXMPAN8AQ8pqwMwuAX4J3O6c+9w5txL4NRBZaraTXW4IMKrUcoYAbYCezrk84EegsNTezdLDVl9zzr3unNvse52FQLfTXG8iIlIN6Rg+ERGpbpYdmTCz+sCFwItm9o9S84QA5ptuD0QBu7071UpEAD8tp41WQDHw1ZE7nHPfmtmOUvOc7HLLW86lwKJyX6XX6lLPKzSz3UCDEzxHRETOIyr4RESkujlQavrISJY7gf+WM38QkAV0LeOx/Sdoy1Xw2Kkst6LlVOTYE9I4NHpHRERKUcEnIiLVlnMuy7e37KfOuVfLmW0FcAFQ7Jz75iQXvQFvYZWMr5D0HTvX6DSWW95y1vseL8B7XJ+IiMgpU8EnIiLV3TjgWTPLBuYBoUA7oLFz7i94h01+Dswxs9/jLeZ+AvQFFjnnPjt2gc65r81sAd6horfjvRzEUxx9WYiTXW4h8IyZjfI9/2lgLf8bzpkBNDGzdsB3QK5z7tCZrxYRETkfaNiHiIhUa865l4Gb8Z4MZRXwGXA7sNX3uAP6AR/hva7f18BMoAWwo4xFHjHMt4yPgLnAdLzF2ZF2T3a5h4AJwKvAl3j/Nw/0PR9gFt5C9T/AbuDGU1wFIiJyHrP//T8RERERf/JdU+8551yNQGcREZHqSXv4REREREREqikVfCIiIiIiItWUhnSKiIiIiIhUU9rDJyIiIiIiUk2p4BMREREREammVPCJiIiIiIhUUyr4REREREREqikVfCIiIiIiItWUCj4REREREZFq6v8DD2+CQ7WcXSQAAAAASUVORK5CYII=\n"
          },
          "metadata": {
            "needs_background": "light"
          }
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "idx_max = sm_cv_scores_mean.argmax()\n",
        "sm_best_tree_depth = sm_tree_depths[idx_max]\n",
        "sm_best_tree_cv_score = sm_cv_scores_mean[idx_max]\n",
        "sm_best_tree_cv_score_std = sm_cv_scores_std[idx_max]\n",
        "print('The depth-{} tree achieves the best mean cross-validation accuracy {} +/- {}% on training dataset'.format(\n",
        "      sm_best_tree_depth, round(sm_best_tree_cv_score*100,5), round(sm_best_tree_cv_score_std*100, 5)))"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "e07_Xc3HZdes",
        "outputId": "61dc487b-47be-44fa-f620-817e322d787d"
      },
      "execution_count": 11,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "The depth-10 tree achieves the best mean cross-validation accuracy 88.61794 +/- 0.61198% on training dataset\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "# function for training and evaluating a tree\n",
        "def run_single_tree(X_train, y_train, X_test, y_test, depth):\n",
        "    model = DecisionTreeClassifier(max_depth=depth).fit(X_train, y_train)\n",
        "    accuracy_train = model.score(X_train, y_train)\n",
        "    accuracy_test = model.score(X_test, y_test)\n",
        "    print('Single tree depth: ', depth)\n",
        "    print('Accuracy, Training Set: ', round(accuracy_train*100,5), '%')\n",
        "    print('Accuracy, Test Set: ', round(accuracy_test*100,5), '%')\n",
        "    return accuracy_train, accuracy_test\n",
        "  \n",
        "\n",
        "# train and evaluate a 5-depth tree\n",
        "sm_best_tree_accuracy_train, sm_best_tree_accuracy_test = run_single_tree(x_train, y_train, \n",
        "                                                                          x_test, y_test, \n",
        "                                                                          sm_best_tree_depth)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "lSw1_2_rZmA4",
        "outputId": "5767cc11-829f-46df-ea23-5523f4427a3d"
      },
      "execution_count": 12,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Single tree depth:  10\n",
            "Accuracy, Training Set:  35.07549 %\n",
            "Accuracy, Test Set:  28.72629 %\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "# **1st ML Model Training**"
      ],
      "metadata": {
        "id": "nRb1TqhBaTqc"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "# Decision Tree Classifier\n",
        "\n",
        "dtc_obj  = DecisionTreeClassifier(criterion = \"entropy\", random_state = 100,\n",
        "            max_depth = 10, min_samples_leaf = 24)\n",
        "dtc = dtc_obj.fit(x_train,y_train)"
      ],
      "metadata": {
        "id": "clNuGIdsZshH"
      },
      "execution_count": 13,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "source": [
        "**Score of Trained Model**"
      ],
      "metadata": {
        "id": "yeYby7VtanwL"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "dtc.score(x_test,y_test)*100"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "8dFhgJuZalql",
        "outputId": "1901098f-867a-48da-85de-ba1fdcbda3a0"
      },
      "execution_count": 14,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "88.07588075880759"
            ]
          },
          "metadata": {},
          "execution_count": 14
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "scores = cross_val_score(dtc, x_test, y_test, cv=3)\n",
        "scores.mean()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "aWysUBaYawxB",
        "outputId": "98133d97-87f3-485a-adf6-44bc399de654"
      },
      "execution_count": 15,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "0.6476964769647696"
            ]
          },
          "metadata": {},
          "execution_count": 15
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "**Model Test Pridections**"
      ],
      "metadata": {
        "id": "kvrn2qsua1PH"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "def warn(*args, **kwargs):\n",
        "    pass\n",
        "import warnings\n",
        "warnings.warn = warn\n",
        "\n",
        "# Model Prediction \n",
        "def get_pridected_value(symptoms_experiance):\n",
        "  symptoms_dict = {'itching': 0, 'skin_rash': 1, 'nodal_skin_eruptions': 2, 'continuous_sneezing': 3, 'shivering': 4, 'chills': 5, 'joint_pain': 6, 'stomach_pain': 7, 'acidity': 8, 'ulcers_on_tongue': 9, 'muscle_wasting': 10, 'vomiting': 11, 'burning_micturition': 12, 'spotting_ urination': 13, 'fatigue': 14, 'weight_gain': 15, 'anxiety': 16, 'cold_hands_and_feets': 17, 'mood_swings': 18, 'weight_loss': 19, 'restlessness': 20, 'lethargy': 21, 'patches_in_throat': 22, 'irregular_sugar_level': 23, 'cough': 24, 'high_fever': 25, 'sunken_eyes': 26, 'breathlessness': 27, 'sweating': 28, 'dehydration': 29, 'indigestion': 30, 'headache': 31, 'yellowish_skin': 32, 'dark_urine': 33, 'nausea': 34, 'loss_of_appetite': 35, 'pain_behind_the_eyes': 36, 'back_pain': 37, 'constipation': 38, 'abdominal_pain': 39, 'diarrhoea': 40, 'mild_fever': 41, 'yellow_urine': 42, 'yellowing_of_eyes': 43, 'acute_liver_failure': 44, 'fluid_overload': 45, 'swelling_of_stomach': 46, 'swelled_lymph_nodes': 47, 'malaise': 48, 'blurred_and_distorted_vision': 49, 'phlegm': 50, 'throat_irritation': 51, 'redness_of_eyes': 52, 'sinus_pressure': 53, 'runny_nose': 54, 'congestion': 55, 'chest_pain': 56, 'weakness_in_limbs': 57, 'fast_heart_rate': 58, 'pain_during_bowel_movements': 59, 'pain_in_anal_region': 60, 'bloody_stool': 61, 'irritation_in_anus': 62, 'neck_pain': 63, 'dizziness': 64, 'cramps': 65, 'bruising': 66, 'obesity': 67, 'swollen_legs': 68, 'swollen_blood_vessels': 69, 'puffy_face_and_eyes': 70, 'enlarged_thyroid': 71, 'brittle_nails': 72, 'swollen_extremeties': 73, 'excessive_hunger': 74, 'extra_marital_contacts': 75, 'drying_and_tingling_lips': 76, 'slurred_speech': 77, 'knee_pain': 78, 'hip_joint_pain': 79, 'muscle_weakness': 80, 'stiff_neck': 81, 'swelling_joints': 82, 'movement_stiffness': 83, 'spinning_movements': 84, 'loss_of_balance': 85, 'unsteadiness': 86, 'weakness_of_one_body_side': 87, 'loss_of_smell': 88, 'bladder_discomfort': 89, 'foul_smell_of urine': 90, 'continuous_feel_of_urine': 91, 'passage_of_gases': 92, 'internal_itching': 93, 'toxic_look_(typhos)': 94, 'depression': 95, 'irritability': 96, 'muscle_pain': 97, 'altered_sensorium': 98, 'red_spots_over_body': 99, 'belly_pain': 100, 'abnormal_menstruation': 101, 'dischromic _patches': 102, 'watering_from_eyes': 103, 'increased_appetite': 104, 'polyuria': 105, 'family_history': 106, 'mucoid_sputum': 107, 'rusty_sputum': 108, 'lack_of_concentration': 109, 'visual_disturbances': 110, 'receiving_blood_transfusion': 111, 'receiving_unsterile_injections': 112, 'coma': 113, 'stomach_bleeding': 114, 'distention_of_abdomen': 115, 'history_of_alcohol_consumption': 116, 'fluid_overload.1': 117, 'blood_in_sputum': 118, 'prominent_veins_on_calf': 119, 'palpitations': 120, 'painful_walking': 121, 'pus_filled_pimples': 122, 'blackheads': 123, 'scurring': 124, 'skin_peeling': 125, 'silver_like_dusting': 126, 'small_dents_in_nails': 127, 'inflammatory_nails': 128, 'blister': 129, 'red_sore_around_nose': 130, 'yellow_crust_ooze': 131}\n",
        "  pred_des_list = {15: 'Fungal infection', 4: 'Allergy', 16: 'GERD', 9: 'Chronic cholestasis', 14: 'Drug Reaction', 33: 'Peptic ulcer diseae', 1: 'AIDS', 12: 'Diabetes ', 17: 'Gastroenteritis', 6: 'Bronchial Asthma', 23: 'Hypertension ', 30: 'Migraine', 7: 'Cervical spondylosis', 32: 'Paralysis (brain hemorrhage)', 28: 'Jaundice', 29: 'Malaria', 8: 'Chicken pox', 11: 'Dengue', 37: 'Typhoid', 40: 'hepatitis A', 19: 'Hepatitis B', 20: 'Hepatitis C', 21: 'Hepatitis D', 22: 'Hepatitis E', 3: 'Alcoholic hepatitis', 36: 'Tuberculosis', 10: 'Common Cold', 34: 'Pneumonia', 13: 'Dimorphic hemmorhoids(piles)', 18: 'Heart attack', 39: 'Varicose veins', 26: 'Hypothyroidism', 24: 'Hyperthyroidism', 25: 'Hypoglycemia', 31: 'Osteoarthristis', 5: 'Arthritis', 0: '(vertigo) Paroymsal  Positional Vertigo', 2: 'Acne', 38: 'Urinary tract infection', 35: 'Psoriasis', 27: 'Impetigo'}\n",
        "  input_vector = np.zeros(len(symptoms_dict))\n",
        "  for item in symptoms_experiance:\n",
        "    input_vector[[symptoms_dict[item]]] = 1\n",
        "  return pred_des_list[dtc.predict([input_vector])[0]]\n",
        "\n",
        "print(get_pridected_value(['skin_rash', 'high_fever', 'yellow_crust_ooze']))"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "V7GiKB_JbFy-",
        "outputId": "e155065b-fd5b-4acb-9980-46c8deec2d99"
      },
      "execution_count": 16,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Fungal infection\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "**Save Model**"
      ],
      "metadata": {
        "id": "uJUz_Brqbg13"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "Save Model Using Pickle"
      ],
      "metadata": {
        "id": "ttLeussvbmjl"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "import pickle as pk"
      ],
      "metadata": {
        "id": "l8XS3-cIbc2A"
      },
      "execution_count": 17,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "# pk.dump([dtc,le],open('/content/drive/MyDrive/Project/save_model', 'wb'))"
      ],
      "metadata": {
        "id": "lOXkcgQhbuxy"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "source": [
        "# **2nd ML Model Training**"
      ],
      "metadata": {
        "id": "-ys1XqM7cEZz"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "second_rf_clf = DecisionTreeClassifier()\n",
        "second_rf_clf.fit(x_train, y_train)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "pMcU896kcEBB",
        "outputId": "01de4717-0e9a-43f7-91fa-f8e60fc99548"
      },
      "execution_count": 19,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "DecisionTreeClassifier()"
            ]
          },
          "metadata": {},
          "execution_count": 19
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "scores = cross_val_score(second_rf_clf, x_test, y_test, cv=3)\n",
        "scores.mean()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "JdhvKxr8dBjw",
        "outputId": "5c1da97a-2f3e-4fe5-fb69-b0bea1417049"
      },
      "execution_count": 21,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "0.9708672086720868"
            ]
          },
          "metadata": {},
          "execution_count": 21
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "**Model predict**"
      ],
      "metadata": {
        "id": "FLYpVmkydItl"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "x_test[:1]"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 174
        },
        "id": "adOgg88VdIWr",
        "outputId": "fc81c38c-d356-4d45-f061-dbc62aae9a21"
      },
      "execution_count": 22,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "      itching  skin_rash  nodal_skin_eruptions  continuous_sneezing  \\\n",
              "4037        0          0                     0                    0   \n",
              "\n",
              "      shivering  chills  joint_pain  stomach_pain  acidity  ulcers_on_tongue  \\\n",
              "4037          0       0           1             0        0                 0   \n",
              "\n",
              "      ...  pus_filled_pimples  blackheads  scurring  skin_peeling  \\\n",
              "4037  ...                   0           0         0             0   \n",
              "\n",
              "      silver_like_dusting  small_dents_in_nails  inflammatory_nails  blister  \\\n",
              "4037                    0                     0                   0        0   \n",
              "\n",
              "      red_sore_around_nose  yellow_crust_ooze  \n",
              "4037                     0                  0  \n",
              "\n",
              "[1 rows x 132 columns]"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-315d8c53-985f-4482-ae2d-d77a4548959f\">\n",
              "    <div class=\"colab-df-container\">\n",
              "      <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>itching</th>\n",
              "      <th>skin_rash</th>\n",
              "      <th>nodal_skin_eruptions</th>\n",
              "      <th>continuous_sneezing</th>\n",
              "      <th>shivering</th>\n",
              "      <th>chills</th>\n",
              "      <th>joint_pain</th>\n",
              "      <th>stomach_pain</th>\n",
              "      <th>acidity</th>\n",
              "      <th>ulcers_on_tongue</th>\n",
              "      <th>...</th>\n",
              "      <th>pus_filled_pimples</th>\n",
              "      <th>blackheads</th>\n",
              "      <th>scurring</th>\n",
              "      <th>skin_peeling</th>\n",
              "      <th>silver_like_dusting</th>\n",
              "      <th>small_dents_in_nails</th>\n",
              "      <th>inflammatory_nails</th>\n",
              "      <th>blister</th>\n",
              "      <th>red_sore_around_nose</th>\n",
              "      <th>yellow_crust_ooze</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>4037</th>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>...</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "<p>1 rows × 132 columns</p>\n",
              "</div>\n",
              "      <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-315d8c53-985f-4482-ae2d-d77a4548959f')\"\n",
              "              title=\"Convert this dataframe to an interactive table.\"\n",
              "              style=\"display:none;\">\n",
              "        \n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
              "       width=\"24px\">\n",
              "    <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
              "    <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
              "  </svg>\n",
              "      </button>\n",
              "      \n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      flex-wrap:wrap;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "      <script>\n",
              "        const buttonEl =\n",
              "          document.querySelector('#df-315d8c53-985f-4482-ae2d-d77a4548959f button.colab-df-convert');\n",
              "        buttonEl.style.display =\n",
              "          google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "        async function convertToInteractive(key) {\n",
              "          const element = document.querySelector('#df-315d8c53-985f-4482-ae2d-d77a4548959f');\n",
              "          const dataTable =\n",
              "            await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                     [key], {});\n",
              "          if (!dataTable) return;\n",
              "\n",
              "          const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "            '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "            + ' to learn more about interactive tables.';\n",
              "          element.innerHTML = '';\n",
              "          dataTable['output_type'] = 'display_data';\n",
              "          await google.colab.output.renderOutput(dataTable, element);\n",
              "          const docLink = document.createElement('div');\n",
              "          docLink.innerHTML = docLinkHtml;\n",
              "          element.appendChild(docLink);\n",
              "        }\n",
              "      </script>\n",
              "    </div>\n",
              "  </div>\n",
              "  "
            ]
          },
          "metadata": {},
          "execution_count": 22
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "second_rf_clf.predict(x_test[:1])"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "iLMvbUJqdVYG",
        "outputId": "e67e5c3e-7ac6-4add-9b49-062853d27472"
      },
      "execution_count": 23,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "array([40])"
            ]
          },
          "metadata": {},
          "execution_count": 23
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "y_test"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "nBrhy1hUdbOF",
        "outputId": "5f06860c-b44c-4664-9715-b006a12e1c51"
      },
      "execution_count": 24,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "array([40,  6, 16, ...,  8, 10, 33])"
            ]
          },
          "metadata": {},
          "execution_count": 24
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "**Save Model**"
      ],
      "metadata": {
        "id": "i9t8qwklcf1H"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "# pk.dump(second_rf_clf,open('/content/drive/MyDrive/Project/second_model', 'wb'))"
      ],
      "metadata": {
        "id": "c5cWbEfkb7cj"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "source": [
        "# **3rd NLTK Model**"
      ],
      "metadata": {
        "id": "jhSrkEg7crvk"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "**Imports**"
      ],
      "metadata": {
        "id": "sbVblUZ-fr3v"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "import spacy\n",
        "import nltk"
      ],
      "metadata": {
        "id": "ZnFFsadWfq_H"
      },
      "execution_count": 25,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "source": [
        "**Using Spacy**"
      ],
      "metadata": {
        "id": "ERpjybVRh861"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "Load spacy Pretrained Model"
      ],
      "metadata": {
        "id": "smhD-wwtgB0l"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "nlp = spacy.load(\"en_core_web_sm\")"
      ],
      "metadata": {
        "id": "4Wp669oQcshh"
      },
      "execution_count": 26,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "source": [
        "Test Pretrained Model"
      ],
      "metadata": {
        "id": "yQuE5PLzgKPw"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "data = '''hey, I am suffering from fever'''"
      ],
      "metadata": {
        "id": "wK-LG716gBQa"
      },
      "execution_count": 27,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "doc = nlp(data)"
      ],
      "metadata": {
        "id": "a0S2vVRpgS-G"
      },
      "execution_count": 28,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "slem = [token.pos_ for token in nlp(data)]\n",
        "print(slem)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "2jQpN8W7gVv8",
        "outputId": "5b4cca4a-c7ae-44d4-9366-eb72433c3fe5"
      },
      "execution_count": 29,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "['INTJ', 'PUNCT', 'PRON', 'AUX', 'VERB', 'ADP', 'NOUN']\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "nlp.pipe_names"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "Q_5rrwyAlGxH",
        "outputId": "e82976bc-bcb1-4f18-c0ed-a69c19f857a1"
      },
      "execution_count": 38,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "['tok2vec', 'tagger', 'parser', 'attribute_ruler', 'lemmatizer', 'ner']"
            ]
          },
          "metadata": {},
          "execution_count": 38
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "for token in doc:\n",
        "  print(token ,\"|\", token.lemma_ , \"|\" , token.pos_ )"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "BnvgvfzNggr9",
        "outputId": "4f193c5c-192e-4c19-f8bd-cb78ef7c4a92"
      },
      "execution_count": 31,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "hey | hey | INTJ\n",
            ", | , | PUNCT\n",
            "I | I | PRON\n",
            "am | be | AUX\n",
            "suffering | suffer | VERB\n",
            "from | from | ADP\n",
            "fever | fever | NOUN\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "**Used Hugging Face Model**"
      ],
      "metadata": {
        "id": "F6u8akmwiFEj"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "# pip install transformers"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "FbK2rLqfg3j_",
        "outputId": "06ed2c8f-cbc2-4233-aada-9dec818830d3"
      },
      "execution_count": 32,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n",
            "Collecting transformers\n",
            "  Downloading transformers-4.20.1-py3-none-any.whl (4.4 MB)\n",
            "\u001b[K     |████████████████████████████████| 4.4 MB 4.2 MB/s \n",
            "\u001b[?25hRequirement already satisfied: tqdm>=4.27 in /usr/local/lib/python3.7/dist-packages (from transformers) (4.64.0)\n",
            "Requirement already satisfied: regex!=2019.12.17 in /usr/local/lib/python3.7/dist-packages (from transformers) (2022.6.2)\n",
            "Collecting tokenizers!=0.11.3,<0.13,>=0.11.1\n",
            "  Downloading tokenizers-0.12.1-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (6.6 MB)\n",
            "\u001b[K     |████████████████████████████████| 6.6 MB 43.4 MB/s \n",
            "\u001b[?25hRequirement already satisfied: filelock in /usr/local/lib/python3.7/dist-packages (from transformers) (3.7.1)\n",
            "Requirement already satisfied: numpy>=1.17 in /usr/local/lib/python3.7/dist-packages (from transformers) (1.21.6)\n",
            "Collecting huggingface-hub<1.0,>=0.1.0\n",
            "  Downloading huggingface_hub-0.8.1-py3-none-any.whl (101 kB)\n",
            "\u001b[K     |████████████████████████████████| 101 kB 10.8 MB/s \n",
            "\u001b[?25hCollecting pyyaml>=5.1\n",
            "  Downloading PyYAML-6.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (596 kB)\n",
            "\u001b[K     |████████████████████████████████| 596 kB 30.6 MB/s \n",
            "\u001b[?25hRequirement already satisfied: requests in /usr/local/lib/python3.7/dist-packages (from transformers) (2.23.0)\n",
            "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.7/dist-packages (from transformers) (21.3)\n",
            "Requirement already satisfied: importlib-metadata in /usr/local/lib/python3.7/dist-packages (from transformers) (4.12.0)\n",
            "Requirement already satisfied: typing-extensions>=3.7.4.3 in /usr/local/lib/python3.7/dist-packages (from huggingface-hub<1.0,>=0.1.0->transformers) (4.1.1)\n",
            "Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /usr/local/lib/python3.7/dist-packages (from packaging>=20.0->transformers) (3.0.9)\n",
            "Requirement already satisfied: zipp>=0.5 in /usr/local/lib/python3.7/dist-packages (from importlib-metadata->transformers) (3.8.0)\n",
            "Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/local/lib/python3.7/dist-packages (from requests->transformers) (1.24.3)\n",
            "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.7/dist-packages (from requests->transformers) (2022.6.15)\n",
            "Requirement already satisfied: chardet<4,>=3.0.2 in /usr/local/lib/python3.7/dist-packages (from requests->transformers) (3.0.4)\n",
            "Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.7/dist-packages (from requests->transformers) (2.10)\n",
            "Installing collected packages: pyyaml, tokenizers, huggingface-hub, transformers\n",
            "  Attempting uninstall: pyyaml\n",
            "    Found existing installation: PyYAML 3.13\n",
            "    Uninstalling PyYAML-3.13:\n",
            "      Successfully uninstalled PyYAML-3.13\n",
            "Successfully installed huggingface-hub-0.8.1 pyyaml-6.0 tokenizers-0.12.1 transformers-4.20.1\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "Using Hugging face model to detect disease from the given sentence"
      ],
      "metadata": {
        "id": "Ur3-MIGIilTV"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "from transformers import pipeline\n",
        "\n",
        "# Test 1\n",
        "# PRETRAINED = \"drAbreu/bioBERT-NER-NCBI_disease\"\n",
        "# ner0 = pipeline(task=\"ner\",model=PRETRAINED, tokenizer=PRETRAINED)\n",
        "\n",
        "# test 2\n",
        "# PRETRAINED = \"alvaroalon2/biobert_diseases_ner\"\n",
        "# ner1 = pipeline(task=\"ner\",model=PRETRAINED, tokenizer=PRETRAINED)\n",
        "\n",
        "# Test 3\n",
        "# PRETRAINED = \"bioformers/bioformer-cased-v1.0-ncbi-disease\"\n",
        "# ner2 = pipeline(task=\"ner\",model=PRETRAINED, tokenizer=PRETRAINED)\n",
        "\n",
        "# test 3\n",
        "# PRETRAINED = \"datummd/NCBI_BC5CDR_disease\"\n",
        "# ner3 = pipeline(task=\"ner\",model=PRETRAINED, tokenizer=PRETRAINED)\n",
        "\n",
        "# test 4\n",
        "PRETRAINED = \"raynardj/ner-disease-ncbi-bionlp-bc5cdr-pubmed\"\n",
        "ner = pipeline(task=\"ner\",model=PRETRAINED, tokenizer=PRETRAINED)\n",
        "\n"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 241,
          "referenced_widgets": [
            "bdf425bf3be74af199a8a37a478ebedc",
            "8b72555951cd493e8893644b51e888be",
            "94198e6f88d24c229c7cce1c646eded3",
            "87c7738aca1b470191941d77fb4b875c",
            "1dffa607443d4972be5af7dd3491efbc",
            "2814ef5c8e684b8aa7af7542368f118b",
            "67623bf3f78248a0a309fd1f6a1cc013",
            "b8998a46768249edacb8ef0550b89c33",
            "1e684f3c5bb24b389d134b790caeb698",
            "3a8a9ed94cb74fefa2b07552cdb09edf",
            "96d7b81d46bd4bd0971332168b711103",
            "b7db20ec05044d2787360e726735cab9",
            "42e23072325d4e3f9522380ef489d472",
            "7a82b1c1e0e24f22b89ba654e5e88ceb",
            "d55dd981ecd14534bf76fe8c13a54431",
            "bfd78869b3414475bc0db4aa899db911",
            "2ec0b242299c479183c867b0183cccef",
            "cb9000301f7a4f40b0df93adbfd3b647",
            "f5fc7f9bc75f457982b8450959a0cca7",
            "6adb6849a1aa4e9ba001d57acb08d7e2",
            "053a8b74d3d641f49f318601de7ac52c",
            "27d0c790e27d4c71adcf7ecff5fe93a5",
            "60696eabaa6d43889f39613085e62255",
            "c2bb1e41e482426ea907f4f50b86864f",
            "4e7156de645a4f12b20b016883bd7e1e",
            "64f70ff5e49349678f4c7c9d579c507f",
            "fcb04d8b043046419a3721167fa206cb",
            "314ba6f82498438699548f33635d43fe",
            "53d1066a5ae44f6897f8667bb756c219",
            "c27d72d7afed4cd29f239d591493b63d",
            "031bae92dd694cd390839224537cba88",
            "b6ddfcbef2354b0eac4e99b01ab5cac5",
            "f7b2cdd3dfef480c988dd83f31c8e9f4",
            "ff3bacd9275047a896ab1429c27b8f69",
            "f2b42db83ecd445c88bd6efe8b70f907",
            "fafc4f10898e470283f00f12e6239790",
            "50e1009599cd4829b97edfca92f592a6",
            "ffc3212f973c41c79fcde322b8019f88",
            "ae84facf9aaf4ac9b753b9eea9e4bec9",
            "b265f4eb6c8b47c5a1ad6ebb96e2d669",
            "da5b4d0bcd464d1d920edb5866297298",
            "8662d825502c4912918f76e99a42de65",
            "efff15be0ace418a8e9b66e0e1862f12",
            "15de416ebfd64912bbe9a5016aab7333",
            "08fee2d8e69243b28516d922f016b70a",
            "c89d5ec8e606464d9db8b83a70d1628e",
            "21c46d0c124f4e68a58dbb12f59d2f61",
            "51c05055546244518d25d95ef1233484",
            "39e50fd248e640c6a92572611b3de83a",
            "a306c45e04d44efb9e6eb75470a33666",
            "a81317dc745e4480a220159b427c1e60",
            "253e975441c645bba8d1b570f1234134",
            "b086cc2c980448c69a215a1f027420c8",
            "633a991a5953428fb8eca0021c8f566d",
            "6071afb54cd34f73b4b7d666c1ad8cd7",
            "489ffa4b00074397bcfc8db36557576e",
            "e79f018476c943cf8242853c0114d26e",
            "877651ab8b4f471382483c6860247216",
            "ce308f06e0fa4aacaec704f16292c76b",
            "2bcea88db9b6462bbbd122b1741da7ce",
            "9e02c23118634e3b9c16bb7b85bbcdfe",
            "a91c84a3afec42ffb6c64d33178164ef",
            "72733cf1f179414dbf78585812d26e1b",
            "f6c6b284a80243859741becf7c6cf3b0",
            "20c98f28f7c34b459a37ba27096bf5d4",
            "30b733d0febd4c70b03833396b5366b5",
            "3c7f6ff5052442acbb205d8c267dd6e2",
            "6a23df0863494184bd42fe8d4b0b43e8",
            "818cda13c5c5469f8aaaa57f5816180b",
            "d60f81ea6311452b9363da911571cace",
            "25148987ce6e4512ab75c502843f5f2d",
            "7d621b58056f4e28b455f9150daaeaf3",
            "fb038b8d342c48549f03dfbb1e86d370",
            "f4f7c943479f42f6b1429a379778ac64",
            "60c453a11be84d849e3b0382eff77944",
            "1a3d52ac7e15473681c384629cd27aad",
            "21fe4b822c864917a84e4437c9e48a79"
          ]
        },
        "id": "_iowdXXFiWAX",
        "outputId": "29fcb133-3c14-45d2-a85a-e2fdde30f12c"
      },
      "execution_count": 33,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Downloading:   0%|          | 0.00/802 [00:00<?, ?B/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "bdf425bf3be74af199a8a37a478ebedc"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Downloading:   0%|          | 0.00/473M [00:00<?, ?B/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "b7db20ec05044d2787360e726735cab9"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Downloading:   0%|          | 0.00/337 [00:00<?, ?B/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "60696eabaa6d43889f39613085e62255"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Downloading:   0%|          | 0.00/780k [00:00<?, ?B/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "ff3bacd9275047a896ab1429c27b8f69"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Downloading:   0%|          | 0.00/446k [00:00<?, ?B/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "08fee2d8e69243b28516d922f016b70a"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Downloading:   0%|          | 0.00/1.29M [00:00<?, ?B/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "489ffa4b00074397bcfc8db36557576e"
            }
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "Downloading:   0%|          | 0.00/239 [00:00<?, ?B/s]"
            ],
            "application/vnd.jupyter.widget-view+json": {
              "version_major": 2,
              "version_minor": 0,
              "model_id": "3c7f6ff5052442acbb205d8c267dd6e2"
            }
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "**test Model**"
      ],
      "metadata": {
        "id": "oUKXrHNqj-0w"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "text_data = \"hey, I am suffering from fever\"\n",
        "ner(text_data, aggregation_strategy=\"first\")"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "hOq69ZrJj68t",
        "outputId": "c9500c72-d161-4c47-e2d7-39df2cfd5ba3"
      },
      "execution_count": 37,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "[{'end': 30,\n",
              "  'entity_group': 'Disease',\n",
              "  'score': 0.69359,\n",
              "  'start': 25,\n",
              "  'word': ' fever'}]"
            ]
          },
          "metadata": {},
          "execution_count": 37
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "**Save Model for reuse**"
      ],
      "metadata": {
        "id": "T3MoDVk7i3Hx"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "# pk.dump( ner,open('/content/drive/MyDrive/Project/ner_model', 'wb'))"
      ],
      "metadata": {
        "id": "TyJKlEy6i7gO"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "source": [
        "# **4th NN Model Training**"
      ],
      "metadata": {
        "id": "0LM5iWUIrA55"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "stemmer = PorterStemmer()\n",
        "\n",
        "class NeuralNet(nn.Module):\n",
        "    def __init__(self, input_size, hidden_size, num_classes):\n",
        "        super(NeuralNet, self).__init__()\n",
        "        self.l1 = nn.Linear(input_size, hidden_size) \n",
        "        self.l2 = nn.Linear(hidden_size, hidden_size) \n",
        "        self.l3 = nn.Linear(hidden_size, num_classes)\n",
        "        self.relu = nn.ReLU()\n",
        "    \n",
        "    def forward(self, x):\n",
        "        out = self.l1(x)\n",
        "        out = self.relu(out)\n",
        "        out = self.l2(out)\n",
        "        out = self.relu(out)\n",
        "        out = self.l3(out)\n",
        "        # no activation and no softmax at the end\n",
        "\n",
        "        return out\n",
        "\n",
        "def tokenize(sentence):\n",
        "    \"\"\"\n",
        "    split sentence into array of words/tokens\n",
        "    a token can be a word or punctuation character, or number\n",
        "    \"\"\"\n",
        "    return nltk.word_tokenize(sentence)\n",
        "\n",
        "\n",
        "def stem(word):\n",
        "    \"\"\"\n",
        "    stemming = find the root form of the word\n",
        "    examples:\n",
        "    words = [\"organize\", \"organizes\", \"organizing\"]\n",
        "    words = [stem(w) for w in words]\n",
        "    -> [\"organ\", \"organ\", \"organ\"]\n",
        "    \"\"\"\n",
        "    return stemmer.stem(word.lower())\n",
        "\n",
        "\n",
        "def bag_of_words(tokenized_sentence, words):\n",
        "    \"\"\"\n",
        "    return bag of words array:\n",
        "    1 for each known word that exists in the sentence, 0 otherwise\n",
        "    example:\n",
        "    sentence = [\"hello\", \"how\", \"are\", \"you\"]\n",
        "    words = [\"hi\", \"hello\", \"I\", \"you\", \"bye\", \"thank\", \"cool\"]\n",
        "    bog   = [  0 ,    1 ,    0 ,   1 ,    0 ,    0 ,      0]\n",
        "    \"\"\"\n",
        "    # stem each word\n",
        "    sentence_words = [stem(word) for word in tokenized_sentence]\n",
        "    # initialize bag with 0 for each word\n",
        "    bag = np.zeros(len(words), dtype=np.float32)\n",
        "    for idx, w in enumerate(words):\n",
        "        if w in sentence_words: \n",
        "            bag[idx] = 1\n",
        "\n",
        "    return bag\n",
        "\n",
        "\n",
        "with open('/content/drive/MyDrive/Project/intents.json', 'r') as f:\n",
        "    intents = json.load(f)\n",
        "\n",
        "all_words = []\n",
        "tags = []\n",
        "xy = []\n",
        "# loop through each sentence in our intents patterns\n",
        "for intent in intents['intents']:\n",
        "    tag = intent['tag']\n",
        "    # add to tag list\n",
        "    tags.append(tag)\n",
        "    for pattern in intent['patterns']:\n",
        "        # tokenize each word in the sentence\n",
        "        w = tokenize(pattern)\n",
        "        # add to our words list\n",
        "        all_words.extend(w)\n",
        "        # add to xy pair\n",
        "        xy.append((w, tag))\n",
        "\n",
        "# stem and lower each word\n",
        "ignore_words = ['?', '.', '!']\n",
        "all_words = [stem(w) for w in all_words if w not in ignore_words]\n",
        "# remove duplicates and sort\n",
        "all_words = sorted(set(all_words))\n",
        "tags = sorted(set(tags))\n",
        "\n",
        "\n",
        "# create training data\n",
        "X_train = []\n",
        "y_train = []\n",
        "for (pattern_sentence, tag) in xy:\n",
        "    # X: bag of words for each pattern_sentence\n",
        "    bag = bag_of_words(pattern_sentence, all_words)\n",
        "    X_train.append(bag)\n",
        "    # y: PyTorch CrossEntropyLoss needs only class labels, not one-hot\n",
        "    label = tags.index(tag)\n",
        "    y_train.append(label)\n",
        "\n",
        "X_train = np.array(X_train)\n",
        "y_train = np.array(y_train)\n",
        "\n",
        "# Hyper-parameters \n",
        "num_epochs = 1000\n",
        "batch_size = 8\n",
        "learning_rate = 0.001\n",
        "input_size = len(X_train[0])\n",
        "hidden_size = 8\n",
        "output_size = len(tags)\n",
        "print(input_size, output_size)\n",
        "\n",
        "class ChatDataset(Dataset):\n",
        "\n",
        "    def __init__(self):\n",
        "        self.n_samples = len(X_train)\n",
        "        self.x_data = X_train\n",
        "        self.y_data = y_train\n",
        "\n",
        "    # support indexing such that dataset[i] can be used to get i-th sample\n",
        "    def __getitem__(self, index):\n",
        "        return self.x_data[index], self.y_data[index]\n",
        "\n",
        "    # we can call len(dataset) to return the size\n",
        "    def __len__(self):\n",
        "        return self.n_samples\n",
        "\n",
        "dataset = ChatDataset()\n",
        "train_loader = DataLoader(dataset=dataset,\n",
        "                          batch_size=batch_size,\n",
        "                          shuffle=True,\n",
        "                          num_workers=0)\n",
        "\n",
        "device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')\n",
        "\n",
        "model = NeuralNet(input_size, hidden_size, output_size).to(device)\n",
        "\n",
        "# Loss and optimizer\n",
        "criterion = nn.CrossEntropyLoss()\n",
        "optimizer = torch.optim.Adam(model.parameters(), lr=learning_rate)\n",
        "\n",
        "# Train the model\n",
        "for epoch in range(num_epochs):\n",
        "    for (words, labels) in train_loader:\n",
        "        words = words.to(device)\n",
        "        labels = labels.to(dtype=torch.long).to(device)\n",
        "        \n",
        "        # Forward pass\n",
        "        outputs = model(words)\n",
        "        # if y would be one-hot, we must apply\n",
        "        # labels = torch.max(labels, 1)[1]\n",
        "        loss = criterion(outputs, labels)\n",
        "        \n",
        "        # Backward and optimize\n",
        "        optimizer.zero_grad()\n",
        "        loss.backward()\n",
        "        optimizer.step()\n",
        "        \n",
        "    if (epoch+1) % 100 == 0:\n",
        "        print (f'Epoch [{epoch+1}/{num_epochs}], Loss: {loss.item():.4f}')\n",
        "\n",
        "\n",
        "print(f'final loss: {loss.item():.4f}')\n",
        "\n",
        "data = {\n",
        "\"model_state\": model.state_dict(),\n",
        "\"input_size\": input_size,\n",
        "\"hidden_size\": hidden_size,\n",
        "\"output_size\": output_size,\n",
        "\"all_words\": all_words,\n",
        "\"tags\": tags\n",
        "}\n",
        "\n",
        "\n",
        "# Save Model \n",
        "# FILE = \"/content/drive/MyDrive/Project/data.pth\"\n",
        "# torch.save(data, FILE)\n",
        "\n",
        "print(f'training complete. file saved')\n"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "S5PKyNjIrHP2",
        "outputId": "92d12bd9-39bf-4d9a-e2c3-777d7f2ee5ad"
      },
      "execution_count": 46,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "38 5\n",
            "Epoch [100/1000], Loss: 0.5416\n",
            "Epoch [200/1000], Loss: 0.1910\n",
            "Epoch [300/1000], Loss: 0.0634\n",
            "Epoch [400/1000], Loss: 0.0179\n",
            "Epoch [500/1000], Loss: 0.0061\n",
            "Epoch [600/1000], Loss: 0.0063\n",
            "Epoch [700/1000], Loss: 0.0047\n",
            "Epoch [800/1000], Loss: 0.0006\n",
            "Epoch [900/1000], Loss: 0.0015\n",
            "Epoch [1000/1000], Loss: 0.0003\n",
            "final loss: 0.0003\n",
            "training complete. file saved\n"
          ]
        }
      ]
    }
  ]
}