diff --git a/reports/.gitkeep b/reports/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/reports/machine_learning_benchmark.ipynb b/reports/machine_learning_benchmark.ipynb new file mode 100644 index 0000000..5d6555d --- /dev/null +++ b/reports/machine_learning_benchmark.ipynb @@ -0,0 +1,4864 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "provenance": [], + "gpuType": "T4" + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "language_info": { + "name": "python" + }, + "accelerator": "GPU", + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "5a0ac8c1198c4c2daa6a2f42fb999fcc": { + "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_b9685968526f418e8a5acda06fbf1968", + "IPY_MODEL_b9a1a30ac1a643afbdf7be645963a9b7", + "IPY_MODEL_6c0b61d869b04183a4245019cbab68bd" + ], + "layout": "IPY_MODEL_bd7508dc556342e987d4b1015a9ecfab" + } + }, + "b9685968526f418e8a5acda06fbf1968": { + "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_5223bcca9c90442e98a3b98c8fcb4203", + "placeholder": "​", + "style": "IPY_MODEL_e99ad09ab6ef46cca9407848423713df", + "value": "README.md: " + } + }, + "b9a1a30ac1a643afbdf7be645963a9b7": { + "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_6d222d2e3d234c2a8323b3fb9ec000b3", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_b82668e264924b5dbd35b2d57b5039de", + "value": 1 + } + }, + "6c0b61d869b04183a4245019cbab68bd": { + "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_f5b10a15ab0e468784e322135cf9c324", + "placeholder": "​", + "style": "IPY_MODEL_40f0bda9fded407983e4f0c62fbd2dda", + "value": " 6.81k/? [00:00<00:00, 352kB/s]" + } + }, + "bd7508dc556342e987d4b1015a9ecfab": { + "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 + } + }, + "5223bcca9c90442e98a3b98c8fcb4203": { + "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 + } + }, + "e99ad09ab6ef46cca9407848423713df": { + "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": "" + } + }, + "6d222d2e3d234c2a8323b3fb9ec000b3": { + "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": "20px" + } + }, + "b82668e264924b5dbd35b2d57b5039de": { + "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": "" + } + }, + "f5b10a15ab0e468784e322135cf9c324": { + "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 + } + }, + "40f0bda9fded407983e4f0c62fbd2dda": { + "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": "" + } + }, + "f576a8515b084e95a80e997c17d2315a": { + "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_2a019390a6624c008fb2411f8d19cc82", + "IPY_MODEL_7f0e4487d7324fd0bcc40afa6fba7fe7", + "IPY_MODEL_2f1997b0ae6043bcb5f1ca32177ab50b" + ], + "layout": "IPY_MODEL_ae62a76dcbdc49fabf859a781350057f" + } + }, + "2a019390a6624c008fb2411f8d19cc82": { + "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_3a7bf055d65b45afa17d4ca7ccda48dd", + "placeholder": "​", + "style": "IPY_MODEL_4e0c44ca02e348ad8ca18f88c8ba9370", + "value": "amazon_polarity/train-00000-of-00004.par(…): 100%" + } + }, + "7f0e4487d7324fd0bcc40afa6fba7fe7": { + "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_975c82fcad474cb3b93d33108d2cb90c", + "max": 259761770, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_510533ee0c1d413e8fec253b46a3aa9b", + "value": 259761770 + } + }, + "2f1997b0ae6043bcb5f1ca32177ab50b": { + "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_31b1eb8b518045e99ec6f7cfa464fa8e", + "placeholder": "​", + "style": "IPY_MODEL_13439674899e48189b83ec73ba1f2dc7", + "value": " 260M/260M [00:05<00:00, 45.0MB/s]" + } + }, + "ae62a76dcbdc49fabf859a781350057f": { + "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 + } + }, + "3a7bf055d65b45afa17d4ca7ccda48dd": { + "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 + } + }, + "4e0c44ca02e348ad8ca18f88c8ba9370": { + "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": "" + } + }, + "975c82fcad474cb3b93d33108d2cb90c": { + "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 + } + }, + "510533ee0c1d413e8fec253b46a3aa9b": { + "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": "" + } + }, + "31b1eb8b518045e99ec6f7cfa464fa8e": { + "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 + } + }, + "13439674899e48189b83ec73ba1f2dc7": { + "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": "" + } + }, + "31d696b7927f42ec9576f09be2c3d98b": { + "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_c850cb31ae67428faefed7398bf67387", + "IPY_MODEL_0c793656e98442a2981b3b7d3323dc85", + "IPY_MODEL_f01c5cb7bab34beeba25de2d2eec9744" + ], + "layout": "IPY_MODEL_b8ebf0e6597e4fd7a9d5109249ad48ca" + } + }, + "c850cb31ae67428faefed7398bf67387": { + "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_bf214ab650d24e69b2d2aa851cbbf9ca", + "placeholder": "​", + "style": "IPY_MODEL_4e04267df185487ea8f8392b8457df7c", + "value": "amazon_polarity/train-00001-of-00004.par(…): 100%" + } + }, + "0c793656e98442a2981b3b7d3323dc85": { + "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_980ffcc461a44efaaa1301cc8aadc3f5", + "max": 258363554, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_9c51dac5c5d9452b8d724059eac74438", + "value": 258363554 + } + }, + "f01c5cb7bab34beeba25de2d2eec9744": { + "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_abf3ba014071476ca0e1e3f49a52279b", + "placeholder": "​", + "style": "IPY_MODEL_9abbd9045722468c89fd04503c1a3d60", + "value": " 258M/258M [00:04<00:00, 96.9MB/s]" + } + }, + "b8ebf0e6597e4fd7a9d5109249ad48ca": { + "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 + } + }, + "bf214ab650d24e69b2d2aa851cbbf9ca": { + "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 + } + }, + "4e04267df185487ea8f8392b8457df7c": { + "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": "" + } + }, + "980ffcc461a44efaaa1301cc8aadc3f5": { + "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 + } + }, + "9c51dac5c5d9452b8d724059eac74438": { + "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": "" + } + }, + "abf3ba014071476ca0e1e3f49a52279b": { + "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 + } + }, + "9abbd9045722468c89fd04503c1a3d60": { + "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": "" + } + }, + "b61b9fbe801e4c4282808920aadf7371": { + "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_c78eba94196e43208d303301f1f72b13", + "IPY_MODEL_0907f6b5721e48919e5d3f1cdf3854f3", + "IPY_MODEL_bb3f0c309fa24719a04dc046d78dd1f4" + ], + "layout": "IPY_MODEL_136d295dbc7a4593a5876e077522e976" + } + }, + "c78eba94196e43208d303301f1f72b13": { + "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_be7dac6179f14d49a04778141be5df99", + "placeholder": "​", + "style": "IPY_MODEL_cdfc3ecc89e647ad8f593585b2a14c34", + "value": "amazon_polarity/train-00002-of-00004.par(…): 100%" + } + }, + "0907f6b5721e48919e5d3f1cdf3854f3": { + "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_b7e164a485124f5a8f716a31396debc9", + "max": 255471883, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_2a9fb5f144484df0895e426462dfa0a1", + "value": 255471883 + } + }, + "bb3f0c309fa24719a04dc046d78dd1f4": { + "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_b9ec58743b2e467f8ea7452c53630156", + "placeholder": "​", + "style": "IPY_MODEL_71c0c4e453a24912b0d35f466079197b", + "value": " 255M/255M [00:02<00:00, 189MB/s]" + } + }, + "136d295dbc7a4593a5876e077522e976": { + "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 + } + }, + "be7dac6179f14d49a04778141be5df99": { + "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 + } + }, + "cdfc3ecc89e647ad8f593585b2a14c34": { + "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": "" + } + }, + "b7e164a485124f5a8f716a31396debc9": { + "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 + } + }, + "2a9fb5f144484df0895e426462dfa0a1": { + "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": "" + } + }, + "b9ec58743b2e467f8ea7452c53630156": { + "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 + } + }, + "71c0c4e453a24912b0d35f466079197b": { + "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": "" + } + }, + "c1b5f033aa3148118570ccc325046c35": { + "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_6169bca3f9ef4d6b99f5c39aa67f5561", + "IPY_MODEL_10d31a5c91b54f56bc6b30241f394788", + "IPY_MODEL_bac092e2447144909522015e017d3588" + ], + "layout": "IPY_MODEL_b6eb15c0ac7849e285f4aab02e0d4f7e" + } + }, + "6169bca3f9ef4d6b99f5c39aa67f5561": { + "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_e06c9299fe874987bb822820d560a768", + "placeholder": "​", + "style": "IPY_MODEL_0278269c48074d9788c2eb54a296d9c5", + "value": "amazon_polarity/train-00003-of-00004.par(…): 100%" + } + }, + "10d31a5c91b54f56bc6b30241f394788": { + "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_ee6ff7545b804e2ea643df3528a7361a", + "max": 254410930, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_56fdb04f02bc4c1bb3a43e1fa0652cde", + "value": 254410930 + } + }, + "bac092e2447144909522015e017d3588": { + "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_f3eb00e9817748c1ac14519a189dc684", + "placeholder": "​", + "style": "IPY_MODEL_2985417fbe584ae288ee6d22fbde554e", + "value": " 254M/254M [00:02<00:00, 168MB/s]" + } + }, + "b6eb15c0ac7849e285f4aab02e0d4f7e": { + "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 + } + }, + "e06c9299fe874987bb822820d560a768": { + "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 + } + }, + "0278269c48074d9788c2eb54a296d9c5": { + "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": "" + } + }, + "ee6ff7545b804e2ea643df3528a7361a": { + "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 + } + }, + "56fdb04f02bc4c1bb3a43e1fa0652cde": { + "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": "" + } + }, + "f3eb00e9817748c1ac14519a189dc684": { + "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 + } + }, + "2985417fbe584ae288ee6d22fbde554e": { + "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": "" + } + }, + "f97f673536e94561a7d341f6c69c0e7e": { + "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_a606da5378ec455f9dbd4d895857458e", + "IPY_MODEL_cd50f2eade344c34b56eed1f699032aa", + "IPY_MODEL_6848b8d3dbaa43598010d060f72c8b5c" + ], + "layout": "IPY_MODEL_a2f29c5f75e9405f93cbf31992df957d" + } + }, + "a606da5378ec455f9dbd4d895857458e": { + "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_983f2d2a2ae849b18fdd88aa4937fe5b", + "placeholder": "​", + "style": "IPY_MODEL_50eb2633d2644371b5d382b345ce5080", + "value": "amazon_polarity/test-00000-of-00001.parq(…): 100%" + } + }, + "cd50f2eade344c34b56eed1f699032aa": { + "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_ad635ba05af44dc9ac29f81b6fecd43c", + "max": 117422360, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_ae3d02e234734e8da4f468642f0860f9", + "value": 117422360 + } + }, + "6848b8d3dbaa43598010d060f72c8b5c": { + "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_ee1be19c8cfd4a4694ff9bc72d5a6384", + "placeholder": "​", + "style": "IPY_MODEL_76a75dfa593342c69026424c0c7591b7", + "value": " 117M/117M [00:02<00:00, 64.4MB/s]" + } + }, + "a2f29c5f75e9405f93cbf31992df957d": { + "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 + } + }, + "983f2d2a2ae849b18fdd88aa4937fe5b": { + "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 + } + }, + "50eb2633d2644371b5d382b345ce5080": { + "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": "" + } + }, + "ad635ba05af44dc9ac29f81b6fecd43c": { + "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 + } + }, + "ae3d02e234734e8da4f468642f0860f9": { + "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": "" + } + }, + "ee1be19c8cfd4a4694ff9bc72d5a6384": { + "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 + } + }, + "76a75dfa593342c69026424c0c7591b7": { + "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": "" + } + }, + "c4dd07f49a534338a8718d6efc536156": { + "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_b3c5dd42012c40a89cac005cb14b1596", + "IPY_MODEL_554e279ea4db4058b60068feca2d46db", + "IPY_MODEL_83e4452b683e4befa68cfa0baea303ee" + ], + "layout": "IPY_MODEL_56527a0eef604dc1b4af2fca80627068" + } + }, + "b3c5dd42012c40a89cac005cb14b1596": { + "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_8b2cc632c55e408a8fc7b03e268e5e6b", + "placeholder": "​", + "style": "IPY_MODEL_a3ac227a919748b98c9aaab9afccb469", + "value": "Generating train split: 100%" + } + }, + "554e279ea4db4058b60068feca2d46db": { + "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_c028dfaae83c40979fea90f85344f354", + "max": 3600000, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_8a777d045fd7496ab95f4081ca88fc71", + "value": 3600000 + } + }, + "83e4452b683e4befa68cfa0baea303ee": { + "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_14f78810c9c94b3ba1308a9cfda15911", + "placeholder": "​", + "style": "IPY_MODEL_9ac87e70aa7d451dafc62b592f5d45fa", + "value": " 3600000/3600000 [00:13<00:00, 164995.19 examples/s]" + } + }, + "56527a0eef604dc1b4af2fca80627068": { + "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 + } + }, + "8b2cc632c55e408a8fc7b03e268e5e6b": { + "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 + } + }, + "a3ac227a919748b98c9aaab9afccb469": { + "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": "" + } + }, + "c028dfaae83c40979fea90f85344f354": { + "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 + } + }, + "8a777d045fd7496ab95f4081ca88fc71": { + "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": "" + } + }, + "14f78810c9c94b3ba1308a9cfda15911": { + "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 + } + }, + "9ac87e70aa7d451dafc62b592f5d45fa": { + "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": "" + } + }, + "61f3197c6f0547c4964e2c030df0ea3b": { + "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_b7ed86d35ae746d2849b8e1e18a948e0", + "IPY_MODEL_a09064c441244fc7a333eb92a2e4edd8", + "IPY_MODEL_1478dc488d4f4d17abb26acc069c5ba7" + ], + "layout": "IPY_MODEL_eda83c1917d246178eb4c691fb943a77" + } + }, + "b7ed86d35ae746d2849b8e1e18a948e0": { + "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_1d955b2ca1834e0bacd41a97d690148d", + "placeholder": "​", + "style": "IPY_MODEL_87ad65daa34747daa1e9013faefca302", + "value": "Generating test split: 100%" + } + }, + "a09064c441244fc7a333eb92a2e4edd8": { + "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_d0ce34a0515643a48ceba993bd89e3bd", + "max": 400000, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_b525492479004f5f90da96aff44fda79", + "value": 400000 + } + }, + "1478dc488d4f4d17abb26acc069c5ba7": { + "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_d44f742be39e40e3a4d01facee41213e", + "placeholder": "​", + "style": "IPY_MODEL_ade8859ae4804772ab10d9b5abba97de", + "value": " 400000/400000 [00:00<00:00, 404115.24 examples/s]" + } + }, + "eda83c1917d246178eb4c691fb943a77": { + "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 + } + }, + "1d955b2ca1834e0bacd41a97d690148d": { + "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 + } + }, + "87ad65daa34747daa1e9013faefca302": { + "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": "" + } + }, + "d0ce34a0515643a48ceba993bd89e3bd": { + "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 + } + }, + "b525492479004f5f90da96aff44fda79": { + "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": "" + } + }, + "d44f742be39e40e3a4d01facee41213e": { + "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 + } + }, + "ade8859ae4804772ab10d9b5abba97de": { + "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": "" + } + }, + "d7edd9e1cb5c49d7a628d608df6ca9aa": { + "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_c2413503263844ae87c509f01040e239", + "IPY_MODEL_b5350b54decd4a8b8c3fa55af35aa6a5", + "IPY_MODEL_9a31c5f1a7884b5d85b84be07ab3aed1" + ], + "layout": "IPY_MODEL_6924897a1a1043abb4c2314112822ec6" + } + }, + "c2413503263844ae87c509f01040e239": { + "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_8c537726c7034e75b5a2906b5f23ff8a", + "placeholder": "​", + "style": "IPY_MODEL_ae695dc9063048d0979e462d4988d77f", + "value": "Creating json from Arrow format: 100%" + } + }, + "b5350b54decd4a8b8c3fa55af35aa6a5": { + "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_2bca204eb3e241c29e90ba15e61227af", + "max": 3600, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_4725888641e8425c8db61ef836d5f283", + "value": 3600 + } + }, + "9a31c5f1a7884b5d85b84be07ab3aed1": { + "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_66f994463d2a41ec890e90fe7ee1e6fa", + "placeholder": "​", + "style": "IPY_MODEL_e64efef822d846b7b5ee9b27ed780d34", + "value": " 3600/3600 [00:27<00:00, 210.11ba/s]" + } + }, + "6924897a1a1043abb4c2314112822ec6": { + "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 + } + }, + "8c537726c7034e75b5a2906b5f23ff8a": { + "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 + } + }, + "ae695dc9063048d0979e462d4988d77f": { + "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": "" + } + }, + "2bca204eb3e241c29e90ba15e61227af": { + "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 + } + }, + "4725888641e8425c8db61ef836d5f283": { + "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": "" + } + }, + "66f994463d2a41ec890e90fe7ee1e6fa": { + "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 + } + }, + "e64efef822d846b7b5ee9b27ed780d34": { + "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": "" + } + }, + "79b9e2fee0f34577a0f2a566d848e8e7": { + "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_4cf4537065b7434a87f4284c26b7c661", + "IPY_MODEL_7a2fa8ad072442c287e7cf33831a3c10", + "IPY_MODEL_ed89f367a6a24e3b9b5af45035d3cd84" + ], + "layout": "IPY_MODEL_df97681806be49598f393f6c0c7b43ec" + } + }, + "4cf4537065b7434a87f4284c26b7c661": { + "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_dc733b574c00437bbe91d282d51af34d", + "placeholder": "​", + "style": "IPY_MODEL_d2e57805352d44d7bf42aba3ffdd1b89", + "value": "Creating json from Arrow format: 100%" + } + }, + "7a2fa8ad072442c287e7cf33831a3c10": { + "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_7f14e5655eed4bb4a5f40e5d381517b6", + "max": 400, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_9a8cf916e4fc4a229f91462bfd038907", + "value": 400 + } + }, + "ed89f367a6a24e3b9b5af45035d3cd84": { + "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_43ba4e2bc78942509f1ec955c09e173a", + "placeholder": "​", + "style": "IPY_MODEL_1897b3670ae74d878501f85890576230", + "value": " 400/400 [00:01<00:00, 232.91ba/s]" + } + }, + "df97681806be49598f393f6c0c7b43ec": { + "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 + } + }, + "dc733b574c00437bbe91d282d51af34d": { + "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 + } + }, + "d2e57805352d44d7bf42aba3ffdd1b89": { + "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": "" + } + }, + "7f14e5655eed4bb4a5f40e5d381517b6": { + "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 + } + }, + "9a8cf916e4fc4a229f91462bfd038907": { + "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": "" + } + }, + "43ba4e2bc78942509f1ec955c09e173a": { + "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 + } + }, + "1897b3670ae74d878501f85890576230": { + "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": "code", + "source": [ + "# @title ⚙️ Runtime Specifications\n", + "import platform\n", + "import psutil\n", + "import os\n", + "import sys\n", + "import torch\n", + "import tensorflow\n", + "\n", + "def get_size(bytes_val, suffix=\"B\"):\n", + " \"\"\"Scale bytes to its proper format (e.g., 1024 -> 1KB).\"\"\"\n", + " if bytes_val is None:\n", + " return \"N/A\"\n", + "\n", + " factor = 1024\n", + " for unit in [\"\", \"K\", \"M\", \"G\", \"T\", \"P\"]:\n", + " if bytes_val < factor:\n", + " # Ensure the value is converted to float for proper division and formatting\n", + " return f\"{float(bytes_val):.2f}{unit}{suffix}\"\n", + " bytes_val /= factor\n", + "\n", + "print(\"--- System and Environment ---\")\n", + "print(f\"OS/Platform: {platform.system()} ({platform.release()})\")\n", + "print(f\"Kernel Version: {platform.version()}\")\n", + "print(f\"Python Version: {sys.version.split()[0]} ({platform.architecture()[0]})\")\n", + "print(f\"PyTorch Version: {torch.__version__}\")\n", + "print(f\"TensorFlow Version: {tensorflow.__version__}\")\n", + "print()\n", + "\n", + "print(\"--- CPU and System RAM ---\")\n", + "print(\"CPU Details (from `!lscpu`): \")\n", + "!lscpu | grep 'Model name\\|Socket(s)\\|Core(s) per socket\\|Thread(s) per core\\|CPU MHz'\n", + "mem = psutil.virtual_memory()\n", + "print(f\"System RAM: {get_size(mem.total)}\")\n", + "print()\n", + "\n", + "# Check for GPU (CUDA)\n", + "if torch.cuda.is_available():\n", + " device_name = torch.cuda.get_device_name(0)\n", + " device_props = torch.cuda.get_device_properties(0)\n", + " print(\"--- Accelerator: GPU (CUDA) ---\")\n", + " print(f\"Device Name: {device_name}\")\n", + " print(f\"CUDA Cores: {device_props.multi_processor_count * 64} (Approx)\")\n", + " print(f\"Global Memory: {get_size(device_props.total_memory)}\")\n", + " print(f\"CUDA Capability: {device_props.major}.{device_props.minor}\")\n", + "if 'TPU_NAME' in os.environ:\n", + " print(\"--- Accelerator: TPU ---\")\n", + " print(f\"**TPU Name:** {os.environ['TPU_NAME']}\")" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "IxofynaY2gB_", + "outputId": "132e7103-b60c-4fd4-ab31-d0a06e970d6a" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "--- System and Environment ---\n", + "OS/Platform: Linux (6.6.105+)\n", + "Kernel Version: #1 SMP Thu Oct 2 10:42:05 UTC 2025\n", + "Python Version: 3.12.12 (64bit)\n", + "PyTorch Version: 2.9.0+cu126\n", + "TensorFlow Version: 2.19.0\n", + "\n", + "--- CPU and System RAM ---\n", + "CPU Details (from `!lscpu`): \n", + "Model name: Intel(R) Xeon(R) CPU @ 2.00GHz\n", + "Thread(s) per core: 2\n", + "Core(s) per socket: 1\n", + "Socket(s): 1\n", + "System RAM: 12.67GB\n", + "\n", + "--- Accelerator: GPU (CUDA) ---\n", + "Device Name: Tesla T4\n", + "CUDA Cores: 2560 (Approx)\n", + "Global Memory: 14.74GB\n", + "CUDA Capability: 7.5\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "# 1. Configuration & Helper Functions\n", + "\n", + "We define a standardized benchmarking function to ensure fair comparison across all formats. This function measures:\n", + "\n", + "1. Loading Time: Time taken to read data from disk into RAM.\n", + "2. Training Time: Time taken to vectorize text and train the model.\n", + "3. Peak Memory: Maximum RAM usage during the process.\n", + "4. Performance: Accuracy and F1 Score." + ], + "metadata": { + "id": "hxkKUGQBzfpV" + } + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "b8614c08", + "outputId": "a719671a-746e-41cd-e3eb-41b9bdd4e956" + }, + "source": [ + "# @title 1.1 Setup & Dependencies\n", + "# Install necessary libraries for the benchmark and SchemaForge\n", + "!pip install -q datasets pandas scikit-learn matplotlib seaborn psutil pyarrow fastavro ijson\n", + "\n", + "import os\n", + "import sys\n", + "import time\n", + "import psutil\n", + "import shutil\n", + "import subprocess\n", + "import gc\n", + "import numpy as np\n", + "import pandas as pd\n", + "import seaborn as sns\n", + "import matplotlib.pyplot as plt\n", + "from datasets import load_dataset\n", + "from sklearn.feature_extraction.text import TfidfVectorizer\n", + "from sklearn.linear_model import LogisticRegression\n", + "from sklearn.pipeline import make_pipeline\n", + "from sklearn.metrics import accuracy_score, f1_score\n", + "from sklearn.model_selection import train_test_split\n", + "\n", + "# Configure plotting\n", + "sns.set_theme(style=\"whitegrid\")\n", + "plt.rcParams['figure.figsize'] = (12, 6)\n", + "\n", + "print(\"✅ Environment setup complete.\")" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\u001b[?25l \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.0/3.5 MB\u001b[0m \u001b[31m?\u001b[0m eta \u001b[36m-:--:--\u001b[0m\r\u001b[2K \u001b[91m━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[90m╺\u001b[0m\u001b[90m━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.6/3.5 MB\u001b[0m \u001b[31m46.8 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\r\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m3.5/3.5 MB\u001b[0m \u001b[31m57.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25h\u001b[?25l \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.0/149.0 kB\u001b[0m \u001b[31m?\u001b[0m eta \u001b[36m-:--:--\u001b[0m\r\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m149.0/149.0 kB\u001b[0m \u001b[31m15.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25h✅ Environment setup complete.\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "# @title 1.2 Define Benchmarking Utilities\n", + "\n", + "class BenchmarkTracker:\n", + " def __init__(self):\n", + " self.results = []\n", + "\n", + " def measure(self, format_name, load_func, train_func):\n", + " \"\"\"\n", + " Generic function to measure load and train performance.\n", + " \"\"\"\n", + " print(f\"--- Benchmarking: {format_name} ---\")\n", + "\n", + " process = psutil.Process(os.getpid())\n", + " mem_before = process.memory_info().rss / (1024 * 1024)\n", + "\n", + " # --- Measure Loading ---\n", + " print(f\" ⏳ Loading data...\")\n", + " start_load = time.perf_counter()\n", + " X_train, y_train, X_test, y_test = load_func()\n", + " end_load = time.perf_counter()\n", + " load_time = end_load - start_load\n", + " print(f\" ✅ Loaded {len(y_train):,} rows in {load_time:.2f}s\")\n", + "\n", + " # --- Measure Training ---\n", + " print(f\" ⚙️ Training model...\")\n", + " start_train = time.perf_counter()\n", + " model = train_func(X_train, y_train)\n", + " end_train = time.perf_counter()\n", + " train_time = end_train - start_train\n", + "\n", + " # --- Measure Memory Peak ---\n", + " mem_after = process.memory_info().rss / (1024 * 1024)\n", + " peak_memory_usage = max(0, mem_after - mem_before)\n", + "\n", + " # --- Evaluate ---\n", + " # Predict on a subset of test data to save inference time in benchmark\n", + " subset_test_size = 10000\n", + " y_pred = model.predict(X_test[:subset_test_size])\n", + " acc = accuracy_score(y_test[:subset_test_size], y_pred)\n", + " f1 = f1_score(y_test[:subset_test_size], y_pred, average='weighted')\n", + "\n", + " print(f\" ⏱️ Train Time: {train_time:.4f}s\")\n", + " print(f\" 💾 Mem Delta: {peak_memory_usage:.2f} MB\")\n", + " print(\"-\" * 30)\n", + "\n", + " self.results.append({\n", + " \"Format\": format_name,\n", + " \"Load Time (s)\": load_time,\n", + " \"Training Time (s)\": train_time,\n", + " \"Total Time (s)\": load_time + train_time,\n", + " \"Peak Memory Delta (MB)\": peak_memory_usage,\n", + " \"Accuracy\": acc,\n", + " \"F1 Score\": f1\n", + " })\n", + "\n", + " def get_summary(self):\n", + " return pd.DataFrame(self.results)\n", + "\n", + "# Initialize tracker\n", + "tracker = BenchmarkTracker()\n", + "\n", + "# OPTIMIZED Model Architecture for Large Datasets\n", + "from sklearn.linear_model import SGDClassifier\n", + "\n", + "def train_standard_model(X_train, y_train):\n", + " \"\"\"\n", + " Pipeline: TF-IDF + SGDClassifier.\n", + " SGDClassifier is much faster for large datasets (1M+ rows) than standard LogisticRegression.\n", + " \"\"\"\n", + " model = make_pipeline(\n", + " # Limit features to keep memory usage stable during vectorization\n", + " TfidfVectorizer(max_features=10000, stop_words='english'),\n", + " # Log loss = Logistic Regression via SGD\n", + " SGDClassifier(loss='log_loss', max_iter=1000, tol=1e-3, n_jobs=-1, random_state=42)\n", + " )\n", + " model.fit(X_train, y_train)\n", + " return model\n", + "\n", + "print(\"✅ Benchmarking utilities ready.\")" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "Ti7DuqC8zrXl", + "outputId": "cea7f39c-4ac7-4adf-b016-8c008c42c712" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "✅ Benchmarking utilities ready.\n" + ] + } + ] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "36252453", + "outputId": "6120c233-6ccc-4fdc-e45e-f39bceee1ebc" + }, + "source": [ + "# @title 1.3 Define Global Constants and Paths\n", + "\n", + "# Dataset Configuration\n", + "DATASET_NAME = \"amazon_polarity\"\n", + "TRAIN_SPLIT = \"train\"\n", + "TEST_SPLIT = \"test\"\n", + "\n", + "# Directory and File Paths\n", + "SCHEMA_BENCH_ROOT = \"schemaforge_bench\"\n", + "DATA_DIR = os.path.join(SCHEMA_BENCH_ROOT, \"data\")\n", + "OUTPUT_DIR = os.path.join(SCHEMA_BENCH_ROOT, \"output\")\n", + "SCHEMA_REPORT_PREFIX = os.path.join(SCHEMA_BENCH_ROOT, \"schema_report\")\n", + "SCHEMA_REPORT_PATH = f\"{SCHEMA_REPORT_PREFIX}.json\"\n", + "\n", + "# Create necessary directories\n", + "os.makedirs(DATA_DIR, exist_ok=True)\n", + "os.makedirs(OUTPUT_DIR, exist_ok=True)\n", + "\n", + "print(\"✅ Global constants and paths defined.\")" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "✅ Global constants and paths defined.\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "# 2. Baseline: Hugging Face datasets\n", + "\n", + "We use the AG News dataset (Text Classification). We load it directly using the Hugging Face datasets library, which relies on Arrow format internally (memory-mapped), usually providing a very fast baseline." + ], + "metadata": { + "id": "mBCOX3hUzsun" + } + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 532, + "referenced_widgets": [ + "5a0ac8c1198c4c2daa6a2f42fb999fcc", + "b9685968526f418e8a5acda06fbf1968", + "b9a1a30ac1a643afbdf7be645963a9b7", + "6c0b61d869b04183a4245019cbab68bd", + "bd7508dc556342e987d4b1015a9ecfab", + "5223bcca9c90442e98a3b98c8fcb4203", + "e99ad09ab6ef46cca9407848423713df", + "6d222d2e3d234c2a8323b3fb9ec000b3", + "b82668e264924b5dbd35b2d57b5039de", + "f5b10a15ab0e468784e322135cf9c324", + "40f0bda9fded407983e4f0c62fbd2dda", + "f576a8515b084e95a80e997c17d2315a", + "2a019390a6624c008fb2411f8d19cc82", + "7f0e4487d7324fd0bcc40afa6fba7fe7", + "2f1997b0ae6043bcb5f1ca32177ab50b", + "ae62a76dcbdc49fabf859a781350057f", + "3a7bf055d65b45afa17d4ca7ccda48dd", + "4e0c44ca02e348ad8ca18f88c8ba9370", + "975c82fcad474cb3b93d33108d2cb90c", + "510533ee0c1d413e8fec253b46a3aa9b", + "31b1eb8b518045e99ec6f7cfa464fa8e", + "13439674899e48189b83ec73ba1f2dc7", + "31d696b7927f42ec9576f09be2c3d98b", + "c850cb31ae67428faefed7398bf67387", + "0c793656e98442a2981b3b7d3323dc85", + "f01c5cb7bab34beeba25de2d2eec9744", + "b8ebf0e6597e4fd7a9d5109249ad48ca", + "bf214ab650d24e69b2d2aa851cbbf9ca", + "4e04267df185487ea8f8392b8457df7c", + "980ffcc461a44efaaa1301cc8aadc3f5", + "9c51dac5c5d9452b8d724059eac74438", + "abf3ba014071476ca0e1e3f49a52279b", + "9abbd9045722468c89fd04503c1a3d60", + "b61b9fbe801e4c4282808920aadf7371", + "c78eba94196e43208d303301f1f72b13", + "0907f6b5721e48919e5d3f1cdf3854f3", + "bb3f0c309fa24719a04dc046d78dd1f4", + "136d295dbc7a4593a5876e077522e976", + "be7dac6179f14d49a04778141be5df99", + "cdfc3ecc89e647ad8f593585b2a14c34", + "b7e164a485124f5a8f716a31396debc9", + "2a9fb5f144484df0895e426462dfa0a1", + "b9ec58743b2e467f8ea7452c53630156", + "71c0c4e453a24912b0d35f466079197b", + "c1b5f033aa3148118570ccc325046c35", + "6169bca3f9ef4d6b99f5c39aa67f5561", + "10d31a5c91b54f56bc6b30241f394788", + "bac092e2447144909522015e017d3588", + "b6eb15c0ac7849e285f4aab02e0d4f7e", + "e06c9299fe874987bb822820d560a768", + "0278269c48074d9788c2eb54a296d9c5", + "ee6ff7545b804e2ea643df3528a7361a", + "56fdb04f02bc4c1bb3a43e1fa0652cde", + "f3eb00e9817748c1ac14519a189dc684", + "2985417fbe584ae288ee6d22fbde554e", + "f97f673536e94561a7d341f6c69c0e7e", + "a606da5378ec455f9dbd4d895857458e", + "cd50f2eade344c34b56eed1f699032aa", + "6848b8d3dbaa43598010d060f72c8b5c", + "a2f29c5f75e9405f93cbf31992df957d", + "983f2d2a2ae849b18fdd88aa4937fe5b", + "50eb2633d2644371b5d382b345ce5080", + "ad635ba05af44dc9ac29f81b6fecd43c", + "ae3d02e234734e8da4f468642f0860f9", + "ee1be19c8cfd4a4694ff9bc72d5a6384", + "76a75dfa593342c69026424c0c7591b7", + "c4dd07f49a534338a8718d6efc536156", + "b3c5dd42012c40a89cac005cb14b1596", + "554e279ea4db4058b60068feca2d46db", + "83e4452b683e4befa68cfa0baea303ee", + "56527a0eef604dc1b4af2fca80627068", + "8b2cc632c55e408a8fc7b03e268e5e6b", + "a3ac227a919748b98c9aaab9afccb469", + "c028dfaae83c40979fea90f85344f354", + "8a777d045fd7496ab95f4081ca88fc71", + "14f78810c9c94b3ba1308a9cfda15911", + "9ac87e70aa7d451dafc62b592f5d45fa", + "61f3197c6f0547c4964e2c030df0ea3b", + "b7ed86d35ae746d2849b8e1e18a948e0", + "a09064c441244fc7a333eb92a2e4edd8", + "1478dc488d4f4d17abb26acc069c5ba7", + "eda83c1917d246178eb4c691fb943a77", + "1d955b2ca1834e0bacd41a97d690148d", + "87ad65daa34747daa1e9013faefca302", + "d0ce34a0515643a48ceba993bd89e3bd", + "b525492479004f5f90da96aff44fda79", + "d44f742be39e40e3a4d01facee41213e", + "ade8859ae4804772ab10d9b5abba97de" + ] + }, + "id": "9214cb29", + "outputId": "36baefbe-fbef-4d20-a781-6934bd2d6fbf" + }, + "source": [ + "# @title 2.1 Benchmark Hugging Face Baseline\n", + "\n", + "# Ensure data is cached locally before benchmarking to exclude network effects\n", + "cached_dataset = load_dataset(DATASET_NAME, split=TRAIN_SPLIT)\n", + "cached_test_dataset = load_dataset(DATASET_NAME, split=TEST_SPLIT)\n", + "\n", + "# Free up the cached variable immediately to prevent affecting the Baseline benchmark's result\n", + "del cached_dataset\n", + "del cached_test_dataset\n", + "gc.collect()\n", + "\n", + "def load_hf_baseline():\n", + " \"\"\"\n", + " Loads a subset of the Amazon Polarity dataset using Hugging Face datasets\n", + " for benchmarking purposes.\n", + " \"\"\"\n", + " dataset = load_dataset(DATASET_NAME, split=TRAIN_SPLIT)\n", + " test_dataset = load_dataset(DATASET_NAME, split=TEST_SPLIT)\n", + "\n", + " df_train = dataset.to_pandas()\n", + " df_test = test_dataset.to_pandas()\n", + "\n", + " return df_train['content'], df_train['label'], df_test['content'], df_test['label']\n", + "\n", + "# Run Baseline\n", + "tracker.measure(\n", + " format_name=\"HF Dataset (Arrow)\",\n", + " load_func=load_hf_baseline,\n", + " train_func=train_standard_model\n", + ")" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stderr", + "text": [ + "/usr/local/lib/python3.12/dist-packages/huggingface_hub/utils/_auth.py:94: UserWarning: \n", + "The secret `HF_TOKEN` does not exist in your Colab secrets.\n", + "To authenticate with the Hugging Face Hub, create a token in your settings tab (https://huggingface.co/settings/tokens), set it as secret in your Google Colab and restart your session.\n", + "You will be able to reuse this secret in all of your notebooks.\n", + "Please note that authentication is recommended but still optional to access public models or datasets.\n", + " warnings.warn(\n" + ] + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "README.md: 0.00B [00:00, ?B/s]" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "5a0ac8c1198c4c2daa6a2f42fb999fcc" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "amazon_polarity/train-00000-of-00004.par(…): 0%| | 0.00/260M [00:00=2.0.0 in /usr/local/lib/python3.12/dist-packages (from -r requirements.txt (line 1)) (2.2.2)\n", + "Requirement already satisfied: pyarrow>=12.0.0 in /usr/local/lib/python3.12/dist-packages (from -r requirements.txt (line 2)) (18.1.0)\n", + "Requirement already satisfied: pytest>=7.0.0 in /usr/local/lib/python3.12/dist-packages (from -r requirements.txt (line 3)) (8.4.2)\n", + "Requirement already satisfied: ijson>=3.2.0 in /usr/local/lib/python3.12/dist-packages (from -r requirements.txt (line 4)) (3.4.0.post0)\n", + "Collecting json5>=0.9.0 (from -r requirements.txt (line 5))\n", + " Downloading json5-0.12.1-py3-none-any.whl.metadata (36 kB)\n", + "Requirement already satisfied: fastavro>=1.8.0 in /usr/local/lib/python3.12/dist-packages (from -r requirements.txt (line 6)) (1.12.1)\n", + "Requirement already satisfied: psutil>=5.9.0 in /usr/local/lib/python3.12/dist-packages (from -r requirements.txt (line 7)) (5.9.5)\n", + "Requirement already satisfied: numpy>=1.26.0 in /usr/local/lib/python3.12/dist-packages (from pandas>=2.0.0->-r requirements.txt (line 1)) (2.0.2)\n", + "Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.12/dist-packages (from pandas>=2.0.0->-r requirements.txt (line 1)) (2.9.0.post0)\n", + "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.12/dist-packages (from pandas>=2.0.0->-r requirements.txt (line 1)) (2025.2)\n", + "Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.12/dist-packages (from pandas>=2.0.0->-r requirements.txt (line 1)) (2025.2)\n", + "Requirement already satisfied: iniconfig>=1 in /usr/local/lib/python3.12/dist-packages (from pytest>=7.0.0->-r requirements.txt (line 3)) (2.3.0)\n", + "Requirement already satisfied: packaging>=20 in /usr/local/lib/python3.12/dist-packages (from pytest>=7.0.0->-r requirements.txt (line 3)) (25.0)\n", + "Requirement already satisfied: pluggy<2,>=1.5 in /usr/local/lib/python3.12/dist-packages (from pytest>=7.0.0->-r requirements.txt (line 3)) (1.6.0)\n", + "Requirement already satisfied: pygments>=2.7.2 in /usr/local/lib/python3.12/dist-packages (from pytest>=7.0.0->-r requirements.txt (line 3)) (2.19.2)\n", + "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.12/dist-packages (from python-dateutil>=2.8.2->pandas>=2.0.0->-r requirements.txt (line 1)) (1.17.0)\n", + "Downloading json5-0.12.1-py3-none-any.whl (36 kB)\n", + "Installing collected packages: json5\n", + "Successfully installed json5-0.12.1\n" + ] + } + ] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "8ca7948e", + "outputId": "7d191f0a-325b-4199-b0ca-1369152dd19f" + }, + "source": [ + "# @title 3.3 Run SchemaForge Pipeline (Scan & Convert)\n", + "\n", + "# 1. Scan Schemas\n", + "# We run from inside 'SchemaForge', so we point to data using relative paths from schemaforge_tool\n", + "print(\"🔍 Running SchemaForge: scan-schemas...\")\n", + "!cd schemaforge_tool && python -m src.cli scan-schemas \\\n", + " --data-dir ../{DATA_DIR} \\\n", + " --output-report ../{SCHEMA_REPORT_PREFIX}.md\n", + "\n", + "# 2. Convert to CSV\n", + "print(\"🔄 Converting to CSV...\")\n", + "!cd schemaforge_tool && python -m src.cli convert \\\n", + " --format csv \\\n", + " --data-dir ../{DATA_DIR} \\\n", + " --output-dir ../{OUTPUT_DIR}/csv \\\n", + " --schema-report ../{SCHEMA_REPORT_PATH}\n", + "\n", + "# 3. Convert to Parquet\n", + "print(\"🔄 Converting to Parquet...\")\n", + "!cd schemaforge_tool && python -m src.cli convert \\\n", + " --format parquet \\\n", + " --data-dir ../{DATA_DIR} \\\n", + " --output-dir ../{OUTPUT_DIR}/parquet \\\n", + " --schema-report ../{SCHEMA_REPORT_PATH}\n", + "\n", + "# 4. Convert to Feather (Fast I/O)\n", + "print(\"🔄 Converting to Feather...\")\n", + "!cd schemaforge_tool && python -m src.cli convert \\\n", + " --format feather \\\n", + " --data-dir ../{DATA_DIR} \\\n", + " --output-dir ../{OUTPUT_DIR}/feather \\\n", + " --schema-report ../{SCHEMA_REPORT_PATH}\n", + "\n", + "print(f\"\\n✅ Conversion Complete! Formats ready in '{OUTPUT_DIR}/'\")" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "🔍 Running SchemaForge: scan-schemas...\n", + "2025-12-08 18:46:04,545 - __main__ - INFO - Starting schema scan...\n", + "2025-12-08 18:46:04,546 - src.schema_reader.inference - INFO - Found 2 JSON file(s) in ../schemaforge_bench/data\n", + "2025-12-08 18:46:04,572 - src.schema_reader.inference - INFO - Processing file: train_data.json\n", + "2025-12-08 18:46:04,573 - src.schema_reader.inference - INFO - No max_sample_size set. Defaulting to 10000 for performance.\n", + "2025-12-08 18:46:04,574 - src.schema_reader.inference - INFO - Processing file: test_data.json\n", + "2025-12-08 18:46:04,575 - src.schema_reader.inference - INFO - No max_sample_size set. Defaulting to 10000 for performance.\n", + "2025-12-08 18:46:05,067 - src.json_loader - WARNING - Streaming failed for ../schemaforge_bench/data/test_data.json: Extra data: line 2 column 1 (char 569). Falling back to memory load.\n", + "2025-12-08 18:46:10,694 - src.json_loader - WARNING - Streaming failed for ../schemaforge_bench/data/train_data.json: Extra data: line 2 column 1 (char 460). Falling back to memory load.\n", + "2025-12-08 18:46:19,325 - src.schema_reader.inference - INFO - Streaming first 10000 records from test_data.json\n", + "2025-12-08 18:46:19,325 - src.schema_reader.inference - INFO - Analyzing 10000 of 10000 records from test_data.json\n", + "2025-12-08 18:46:20,248 - src.schema_reader.inference - INFO - Successfully inferred schema for test_data.json: 3 fields\n", + "2025-12-08 18:46:58,099 - src.schema_reader.inference - INFO - Streaming first 10000 records from train_data.json\n", + "2025-12-08 18:46:58,102 - src.schema_reader.inference - INFO - Analyzing 10000 of 10000 records from train_data.json\n", + "2025-12-08 18:46:58,320 - src.schema_reader.inference - INFO - Successfully inferred schema for train_data.json: 3 fields\n", + "2025-12-08 18:46:59,479 - __main__ - INFO - Successfully scanned 2 file(s)\n", + "2025-12-08 18:46:59,480 - src.schema_reader.reporting - INFO - Schema report written to ../schemaforge_bench/schema_report.md\n", + "2025-12-08 18:46:59,480 - src.schema_reader.reporting - INFO - Schemas saved to JSON: ../schemaforge_bench/schema_report.json\n", + "2025-12-08 18:46:59,481 - __main__ - INFO - Schema report generated: ../schemaforge_bench/schema_report.md\n", + "🔄 Converting to CSV...\n", + "2025-12-08 18:47:01,008 - __main__ - INFO - Starting conversion to csv...\n", + "2025-12-08 18:47:01,009 - src.converter.core - INFO - Loading schemas from schema report: /content/schemaforge_bench/schema_report.json\n", + "2025-12-08 18:47:01,010 - src.schema_reader.reporting - INFO - Loaded 2 schema(s) from /content/schemaforge_bench/schema_report.json\n", + "2025-12-08 18:47:01,033 - src.converter.csv - INFO - Converting train_data.json to CSV...\n", + "2025-12-08 18:47:01,034 - src.json_loader - INFO - File train_data.json is 1601.5MB. Using streaming for efficiency.\n", + "2025-12-08 18:47:01,035 - src.converter.csv - INFO - Converting test_data.json to CSV...\n", + "2025-12-08 18:47:01,035 - src.json_loader - INFO - File test_data.json is 177.9MB. Using streaming for efficiency.\n", + "2025-12-08 18:47:02,501 - src.json_loader - WARNING - Streaming failed for ../schemaforge_bench/data/test_data.json: Extra data: line 2 column 1 (char 569). Falling back to memory load.\n", + "2025-12-08 18:47:06,406 - src.json_loader - WARNING - Streaming failed for ../schemaforge_bench/data/train_data.json: Extra data: line 2 column 1 (char 460). Falling back to memory load.\n", + "2025-12-08 18:47:22,764 - src.converter.csv - INFO - Successfully converted test_data.json to ../schemaforge_bench/output/csv/test_data.csv\n", + "2025-12-08 18:48:51,356 - src.converter.csv - INFO - Successfully converted train_data.json to ../schemaforge_bench/output/csv/train_data.csv\n", + "2025-12-08 18:48:51,993 - __main__ - INFO - Conversion complete: 2 successful, 0 failed\n", + "🔄 Converting to Parquet...\n", + "2025-12-08 18:48:53,292 - __main__ - INFO - Starting conversion to parquet...\n", + "2025-12-08 18:48:53,292 - src.converter.core - INFO - Loading schemas from schema report: /content/schemaforge_bench/schema_report.json\n", + "2025-12-08 18:48:53,293 - src.schema_reader.reporting - INFO - Loaded 2 schema(s) from /content/schemaforge_bench/schema_report.json\n", + "2025-12-08 18:48:53,313 - src.converter.parquet - INFO - Converting train_data.json to Parquet...\n", + "2025-12-08 18:48:53,314 - src.json_loader - INFO - File train_data.json is 1601.5MB. Using streaming for efficiency.\n", + "2025-12-08 18:48:53,315 - src.converter.parquet - INFO - Converting test_data.json to Parquet...\n", + "2025-12-08 18:48:53,315 - src.json_loader - INFO - File test_data.json is 177.9MB. Using streaming for efficiency.\n", + "2025-12-08 18:48:53,674 - src.json_loader - WARNING - Streaming failed for ../schemaforge_bench/data/test_data.json: Extra data: line 2 column 1 (char 569). Falling back to memory load.\n", + "2025-12-08 18:49:00,067 - src.json_loader - WARNING - Streaming failed for ../schemaforge_bench/data/train_data.json: Extra data: line 2 column 1 (char 460). Falling back to memory load.\n", + "2025-12-08 18:49:04,518 - src.converter.parquet - INFO - Successfully converted test_data.json to ../schemaforge_bench/output/parquet/test_data.parquet\n", + "2025-12-08 18:50:20,543 - src.converter.parquet - INFO - Successfully converted train_data.json to ../schemaforge_bench/output/parquet/train_data.parquet\n", + "2025-12-08 18:50:21,374 - __main__ - INFO - Conversion complete: 2 successful, 0 failed\n", + "🔄 Converting to Feather...\n", + "2025-12-08 18:50:22,837 - __main__ - INFO - Starting conversion to feather...\n", + "2025-12-08 18:50:22,838 - src.converter.core - INFO - Loading schemas from schema report: /content/schemaforge_bench/schema_report.json\n", + "2025-12-08 18:50:22,838 - src.schema_reader.reporting - INFO - Loaded 2 schema(s) from /content/schemaforge_bench/schema_report.json\n", + "2025-12-08 18:50:22,865 - src.converter.feather - INFO - Converting train_data.json to Feather...\n", + "2025-12-08 18:50:22,865 - src.json_loader - INFO - File train_data.json is 1601.5MB. Using streaming for efficiency.\n", + "2025-12-08 18:50:22,867 - src.converter.feather - INFO - Converting test_data.json to Feather...\n", + "2025-12-08 18:50:22,868 - src.json_loader - INFO - File test_data.json is 177.9MB. Using streaming for efficiency.\n", + "2025-12-08 18:50:24,483 - src.json_loader - WARNING - Streaming failed for ../schemaforge_bench/data/test_data.json: Extra data: line 2 column 1 (char 569). Falling back to memory load.\n", + "2025-12-08 18:50:27,295 - src.json_loader - WARNING - Streaming failed for ../schemaforge_bench/data/train_data.json: Extra data: line 2 column 1 (char 460). Falling back to memory load.\n", + "2025-12-08 18:50:35,792 - src.converter.feather - INFO - Successfully converted test_data.json to ../schemaforge_bench/output/feather/test_data.feather\n", + "2025-12-08 18:52:00,644 - src.converter.feather - INFO - Successfully converted train_data.json to ../schemaforge_bench/output/feather/train_data.feather\n", + "2025-12-08 18:52:01,646 - __main__ - INFO - Conversion complete: 2 successful, 0 failed\n", + "\n", + "✅ Conversion Complete! Formats ready in 'schemaforge_bench/output/'\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "# 4. Benchmark Converted Formats\n", + "\n", + "Now we benchmark the loading and training efficiency for the formats generated by SchemaForge." + ], + "metadata": { + "id": "2XizdDLVz_Vu" + } + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "6c6df480", + "outputId": "356e7070-d503-44a3-fa22-61778175df85" + }, + "source": [ + "# @title 4.1 Benchmark CSV\n", + "\n", + "def load_csv_format():\n", + " # Load Train\n", + " df_train = pd.read_csv(os.path.join(OUTPUT_DIR, \"csv\", \"train_data.csv\"))\n", + " # Load Test\n", + " df_test = pd.read_csv(os.path.join(OUTPUT_DIR, \"csv\", \"test_data.csv\"))\n", + "\n", + " return df_train['content'], df_train['label'], df_test['content'], df_test['label']\n", + "\n", + "tracker.measure(\n", + " format_name=\"CSV (Pandas)\",\n", + " load_func=load_csv_format,\n", + " train_func=train_standard_model\n", + ")" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "--- Benchmarking: CSV (Pandas) ---\n", + " ⏳ Loading data...\n", + " ✅ Loaded 3,600,000 rows in 34.78s\n", + " ⚙️ Training model...\n", + " ⏱️ Train Time: 176.3890s\n", + " 💾 Mem Delta: 2298.81 MB\n", + "------------------------------\n" + ] + } + ] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "bd83abbb", + "outputId": "4f1a5acf-eabc-4353-ad60-4b4ce70b5a1e" + }, + "source": [ + "# @title 4.2 Benchmark Parquet\n", + "\n", + "def load_parquet_format():\n", + " # Load Train\n", + " df_train = pd.read_parquet(os.path.join(OUTPUT_DIR, \"parquet\", \"train_data.parquet\"))\n", + " # Load Test\n", + " df_test = pd.read_parquet(os.path.join(OUTPUT_DIR, \"parquet\", \"test_data.parquet\"))\n", + "\n", + " return df_train['content'], df_train['label'], df_test['content'], df_test['label']\n", + "\n", + "tracker.measure(\n", + " format_name=\"Parquet (PyArrow)\",\n", + " load_func=load_parquet_format,\n", + " train_func=train_standard_model\n", + ")" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "--- Benchmarking: Parquet (PyArrow) ---\n", + " ⏳ Loading data...\n", + " ✅ Loaded 3,600,000 rows in 13.88s\n", + " ⚙️ Training model...\n", + " ⏱️ Train Time: 180.0725s\n", + " 💾 Mem Delta: 2028.25 MB\n", + "------------------------------\n" + ] + } + ] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "731384f9", + "outputId": "e2dc793e-f0c3-4a70-dc2c-324115088098" + }, + "source": [ + "# @title 4.3 Benchmark Feather\n", + "\n", + "def load_feather_format():\n", + " # Load Train\n", + " df_train = pd.read_feather(os.path.join(OUTPUT_DIR, \"feather\", \"train_data.feather\"))\n", + " # Load Test\n", + " df_test = pd.read_feather(os.path.join(OUTPUT_DIR, \"feather\", \"test_data.feather\"))\n", + "\n", + " return df_train['content'], df_train['label'], df_test['content'], df_test['label']\n", + "\n", + "tracker.measure(\n", + " format_name=\"Feather (Arrow IPC)\",\n", + " load_func=load_feather_format,\n", + " train_func=train_standard_model\n", + ")" + ], + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "--- Benchmarking: Feather (Arrow IPC) ---\n", + " ⏳ Loading data...\n", + " ✅ Loaded 3,600,000 rows in 9.55s\n", + " ⚙️ Training model...\n", + " ⏱️ Train Time: 175.7252s\n", + " 💾 Mem Delta: 2329.90 MB\n", + "------------------------------\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "# 5. Analysis & Visualization\n", + "\n", + "We aggregate the results into a clean DataFrame and visualize the trade-offs between load time, memory usage, and storage efficiency." + ], + "metadata": { + "id": "VCPcR34-0RRY" + } + }, + { + "cell_type": "code", + "source": [ + "# @title 5.1 Results Summary\n", + "results_df = tracker.get_summary()\n", + "\n", + "# Normalize columns for better visualization comparison if needed,\n", + "# but raw values are usually better for technical benchmarks.\n", + "display(results_df.round(4))" + ], + "metadata": { + "id": "OxcT34jU0TEr", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 175 + }, + "outputId": "e775db8f-b2e8-4755-899e-b19a72efbe95" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + " Format Load Time (s) Training Time (s) Total Time (s) \\\n", + "0 HF Dataset (Arrow) 6.2827 174.5190 180.8017 \n", + "1 CSV (Pandas) 34.7801 176.3890 211.1692 \n", + "2 Parquet (PyArrow) 13.8773 180.0725 193.9499 \n", + "3 Feather (Arrow IPC) 9.5521 175.7252 185.2773 \n", + "\n", + " Peak Memory Delta (MB) Accuracy F1 Score \n", + "0 2250.9883 0.8397 0.8396 \n", + "1 2298.8125 0.8397 0.8396 \n", + "2 2028.2461 0.8397 0.8396 \n", + "3 2329.9023 0.8397 0.8396 " + ], + "text/html": [ + "\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
FormatLoad Time (s)Training Time (s)Total Time (s)Peak Memory Delta (MB)AccuracyF1 Score
0HF Dataset (Arrow)6.2827174.5190180.80172250.98830.83970.8396
1CSV (Pandas)34.7801176.3890211.16922298.81250.83970.8396
2Parquet (PyArrow)13.8773180.0725193.94992028.24610.83970.8396
3Feather (Arrow IPC)9.5521175.7252185.27732329.90230.83970.8396
\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "summary": "{\n \"name\": \"display(results_df\",\n \"rows\": 4,\n \"fields\": [\n {\n \"column\": \"Format\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 4,\n \"samples\": [\n \"CSV (Pandas)\",\n \"Feather (Arrow IPC)\",\n \"HF Dataset (Arrow)\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Load Time (s)\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 12.82106053582672,\n \"min\": 6.2827,\n \"max\": 34.7801,\n \"num_unique_values\": 4,\n \"samples\": [\n 34.7801,\n 9.5521,\n 6.2827\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Training Time (s)\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 2.3927146485042123,\n \"min\": 174.519,\n \"max\": 180.0725,\n \"num_unique_values\": 4,\n \"samples\": [\n 176.389,\n 175.7252,\n 174.519\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Total Time (s)\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 13.407709174544564,\n \"min\": 180.8017,\n \"max\": 211.1692,\n \"num_unique_values\": 4,\n \"samples\": [\n 211.1692,\n 185.2773,\n 180.8017\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Peak Memory Delta (MB)\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 136.4117164548559,\n \"min\": 2028.2461,\n \"max\": 2329.9023,\n \"num_unique_values\": 4,\n \"samples\": [\n 2298.8125,\n 2329.9023,\n 2250.9883\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Accuracy\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.0,\n \"min\": 0.8397,\n \"max\": 0.8397,\n \"num_unique_values\": 1,\n \"samples\": [\n 0.8397\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"F1 Score\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.0,\n \"min\": 0.8396,\n \"max\": 0.8396,\n \"num_unique_values\": 1,\n \"samples\": [\n 0.8396\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" + } + }, + "metadata": {} + } + ] + }, + { + "cell_type": "code", + "source": [ + "# @title 5.2 Visualizing the Benchmark\n", + "fig, axes = plt.subplots(1, 3, figsize=(20, 6))\n", + "\n", + "# 1. Total Time Comparison (Load + Train)\n", + "sns.barplot(\n", + " data=results_df,\n", + " x=\"Format\",\n", + " y=\"Total Time (s)\",\n", + " ax=axes[0],\n", + " palette=\"viridis\",\n", + " hue=\"Format\",\n", + " legend=False\n", + ")\n", + "axes[0].set_title(\"Total Pipeline Time (Load + Train)\")\n", + "axes[0].set_ylabel(\"Time (seconds)\")\n", + "\n", + "# 2. Loading Time Only (Zoom in on I/O efficiency)\n", + "sns.barplot(\n", + " data=results_df,\n", + " x=\"Format\",\n", + " y=\"Load Time (s)\",\n", + " ax=axes[1],\n", + " palette=\"rocket\",\n", + " hue=\"Format\",\n", + " legend=False\n", + ")\n", + "axes[1].set_title(\"Data Loading Time Only\")\n", + "axes[1].set_ylabel(\"Time (seconds)\")\n", + "\n", + "# 3. Memory Footprint\n", + "sns.barplot(\n", + " data=results_df,\n", + " x=\"Format\",\n", + " y=\"Peak Memory Delta (MB)\",\n", + " ax=axes[2],\n", + " palette=\"mako\",\n", + " hue=\"Format\",\n", + " legend=False\n", + ")\n", + "axes[2].set_title(\"Peak Memory Usage Delta\")\n", + "axes[2].set_ylabel(\"Memory (MB)\")\n", + "\n", + "plt.tight_layout()\n", + "plt.show()" + ], + "metadata": { + "id": "51F8exY90T_g", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 445 + }, + "outputId": "c19f231b-ab65-4e5b-87c9-a634cdd3a906" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "iVBORw0KGgoAAAANSUhEUgAAB7MAAAJICAYAAAAD5cCDAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAxChJREFUeJzs3XlcVdX+//H3AUFBRbTUSkRBgzRFsBxQnFETNYciM8c0h8yxLLmmpre+Dk2aYw5czSxL08oBZ01LaTKHa5lKoDnkkANDoIDs3x/+ONcjqHA4cA7yej4e9/Fg77323p8Dq+vn7M9ea5kMwzAEAAAAAAAAAAAAAIADcbJ3AAAAAAAAAAAAAAAA3IpiNgAAAAAAAAAAAADA4VDMBgAAAAAAAAAAAAA4HIrZAAAAAAAAAAAAAACHQzEbAAAAAAAAAAAAAOBwKGYDAAAAAAAAAAAAABwOxWwAAAAAAAAAAAAAgMOhmA0AAAAAAAAAAAAAcDgUswEAAAAAAAAAAAAADodiNnCP++GHH+Tv768ffvjBJteLiIhQy5YtbXKt28ku5oK4b17Y+vdsK//884+Cg4O1Zs0ae4eSrdWrV8vf31+nTp2ydyg2lZf++u677yo8PNzGEQEAAEeVXT7Uq1cv9erVy45R3dmpU6fk7++v1atX2zuUAuGouT4AAMiZiIgIBQUF2TsMIFvkmsDdFbN3AMC9yN/fP0ftli5dqgYNGtyxzYcffqjq1asrNDTUFqHd1urVq/Wvf/3LvO3q6qqHHnpIjRs31pAhQ3T//ffn6/0dUUREhL788su7tuvSpYu6dOlSABHl3tKlS1WyZEm1b9/evG/WrFmaPXu2oqOjVa5cOTtGV/Bs+d9mfunTp48++ugjbdu2Ta1atbJLDAAA5EZ2eWSZMmXk7++vZs2aqWvXripVqpRV1/7ll1+0e/du9enTRx4eHrYKuUjnQ7eT+Tu5m/r162vKlCkFEFHuGYahr7/+WitXrtSRI0eUlpYmb29vtW3bVv369ZO7u7u9QwQAoEgrjM8fM3Mkk8mkHTt26MEHH7Q4npSUpEaNGunatWvq0aOHJkyYYKdI7SciIkKbNm3Svn37sj0eFBSktm3baurUqQUcme3k53ee7Kxdu1YXL15U3759bXZNoDCjmA3kg7ffftti++uvv9bu3buz7K9WrdpdrzV//ny1bds234vZmYYPHy4vLy+lpqZq7969Wr58uXbu3Kl169bJzc1Nb775pgzDKJBYbmaP+3br1k3BwcHm7VOnTmnmzJnq1q2bHnvsMfN+b29v1alTRwcPHpSLi0uBxngnaWlpWrp0qfr27StnZ2d7h+MQbPnf5p3kpb+WL19erVq10n/+8x+K2QCAQiUzj0xPT9fff/+tH3/8UZMnT9aSJUs0d+5cPfLII7m+5r59+zR79mx16dLFpsVsRxcZGVng92zdurW8vb3N28nJyZo4caJat26t1q1bm/fff//9qlSpkg4ePKhixRznkcL169f1yiuvaMOGDXr88cc1dOhQubm56eeff9acOXO0adMmLV682CEfkgMAUNTc7fmjI3J1ddW6des0YMAAi/2bN2+2U0Swh/z4zpOddevW6dixYxSzgf/Pcb55AveQTp06WWwfOHBAu3fvzrLfETVt2lS1a9eWJIWHh8vT01OLFy/Wtm3b1KFDB7sVa+1x36CgIIspiP773/9q5syZCgwMzPZvWbx48YIM766++eYbXbp0Se3atbN3KPmiZcuW6tKli4YNG5bjc6z9bzMlJSVXX6by2l/btWunESNG6OTJk6pcuXKergUAQEG5OY+UpEGDBik6OlqDBw/WkCFDFBUVpRIlStgxwsLD1dW1wO/5yCOPWDx8u3TpkiZOnCh/f/9CkfsuWrRIGzZsUL9+/TRmzBjz/m7duqldu3Z66aWXFBERoUWLFtkxSgAAIN39+aMjatasmdavX5+lmL1u3To1b95cmzZtslNkeZOcnMzsNbnAdx7APlgzG7CT5ORkTZ06Vc2aNVOtWrXUtm1bRUZGWozm9Pf3V3Jysr788kv5+/vL399fERERkqTTp09r4sSJatu2rQICAtSgQQMNHz7c5msPN2zYUJLM1711LeDM9fIiIyO1ZMkStWjRQgEBAerZs6eOHj2a5Xp//PGHhg8frvr166t27drq2rWrtm3bdtc47nTfzz//XKGhoapVq5aeeuopHTx40Gb3zans1jbp1auXOnTooN9//109e/ZUnTp11Lp1a23cuFGS9OOPPyo8PFwBAQFq27at9uzZk+W6586d07/+9S81atRItWrVUvv27fXFF1/kKKatW7eqUqVKFiNsciM6OlrPPfecAgMD9fjjj+vFF1/UH3/8YdEmN/3w2LFj6t27twICAtS0aVPNnTtXGRkZVsWWnzL/bocOHVKPHj1Up04dvf/++5Ju/E4HDhyokJAQ1apVS6GhoZozZ46uX79ucY289tdGjRpJkk37KAAA9hAcHKwhQ4bo9OnTWrNmjXn/77//roiICLVq1Uq1a9dW48aN9a9//UuXL182t5k1a5Z59pRWrVqZ8+HMPGPVqlXq3bu3goODVatWLYWFhenTTz+1afz2yoduXTM7M9eMiorSvHnzzA/R+vTpoxMnTmQ5/5NPPlGrVq0UEBCgp59+Wj///LNN1+HObs3szLUoz5w5o0GDBikoKEhNmjTRJ598Ikk6cuSIevfurcDAQLVo0UJr167Nct2EhAT93//9n/k7UuvWrbVgwYK75oxXr15VZGSkqlatqldeeSXL8ZYtW6pz58769ttvtX//fov9gwYN0s8//6ynn35atWvXVqtWrfTVV1/d8X4zZ87Uo48+qkuXLmU5Nn78eD3++OO6du3aHa8BAAD+59bnj9KN2fS6du2qgIAA1a9fX6NGjdJff/1lcd7PP/+s4cOHq3nz5qpVq5aaNWumyZMn6+rVq3e95+HDh9WwYUP16tVL//zzz13bd+jQQYcPH7bIBS9cuKDvv//+tgX41NRUzZw5U61btzbH9/bbbys1NdWinb+/v/79739rw4YNCgsLU0BAgLp166YjR45Ikj777DO1bt1atWvXVq9evbLNMzds2GD+fTVo0ECjR4/WuXPnLNpk5mt//vmnBgwYoKCgII0ePbrAc5u0tDTNnj1bbdq0Ue3atdWgQQN1795du3fvNrfJyfeFTD/88IO6du2q2rVrKzQ0VJ999plmzZqV7XKDOelXuXW77zySdc+ke/XqpW+++UanT582fwfKfM6YmpqqDz74QF27dtVjjz2mwMBAPffcc/r+++/z9BkAR8fIbMAODMPQiy++qB9++EFPP/20atSooW+//VZvv/22zp07p7Fjx0q6MSXyuHHjFBAQoGeeeUaSzIXJ//73v9q3b5/at2+vBx54QKdPn9by5cvVu3dvrV+/3mZT8vz555+SJE9Pzzu2++qrr/TPP//oueee07Vr1/Txxx+rT58+Wrt2rXkqv2PHjql79+6qWLGiBgwYIHd3d23YsEEvvfSSZs2aZTF9YU6tW7dO//zzj7p16yaTyaRFixZp2LBh2rp1q3l0bH7cN6fi4+M1ePBghYWF6YknntDy5cv18ssvKyMjQ5MnT9azzz6rDh06KDIyUsOHD9c333xjXl/l77//1jPPPCOTyaQePXqoXLly2rVrl15//XUlJSXddZqZffv26dFHH7Uq7j179mjAgAHy8vLS0KFDdfXqVS1btkzdu3fX6tWr5eXlJSnn/fDChQvq3bu3rl+/roEDB8rNzU0rVqxwuBE9ma5cuaIBAwaoffv2evLJJ3XfffdJkr788ku5u7vr+eefl7u7u77//nvNnDlTSUlJFiOAbicn/VWSSpcuLW9vb/3yyy9MJwQAKPQ6deqk999/X9999505p92zZ49Onjyprl27qnz58jp27JhWrFihmJgYrVixQiaTSa1bt9bx48e1bt06/etf/1LZsmUlybzG9fLly/Xwww+rZcuWKlasmHbs2KFJkybJMAz16NEjz3E7Yj60cOFCmUwm9evXT0lJSVq0aJFGjx6tlStXmtt8+umn+ve//63HH39cffv21enTp/XSSy/Jw8NDDzzwQJ5/L3dy/fp1DRgwQI8//rhGjx6ttWvX6t///rfc3Nw0ffp0dezYUW3atNFnn32mMWPGKDAw0DwLTUpKinr27Klz587p2Wef1YMPPqh9+/bp/fff14ULF/T666/f9r579+5VfHy8evfufdupzzt37qzVq1drx44dCgwMNO8/ceKERowYoaefflpdunTRqlWrFBERoUcffVQPP/xwttfq1KmT5syZo6ioKPXs2dO8PzU1VZs2bVKbNm0cNs8FAMAR3fr8cd68efrggw/Url07Pf3007p06ZKWLVumHj166KuvvjIvP7Nx40ZdvXpV3bt3l6enpw4ePKhly5bp7Nmzmjlz5m3vd/DgQb3wwguqVauW5s6dm6ORtPXq1dMDDzygdevWacSIEZKkqKgoubu7q3nz5lnaZ2Rk6MUXX9TevXv1zDPPqFq1ajp69Kg++ugjHT9+XHPnzrVo//PPP2v79u167rnnJEkLFizQ4MGD9cILL+jTTz/Vc889p/j4eC1atEhjx47V0qVLzedmrudcu3Ztvfzyy7p48aKWLl2qX375xeL3JUnp6enq37+/HnvsMY0ZM0YlSpRQUFBQgeY2s2fP1vz5882DfJKSknTo0CH9+uuvaty4saScfV+QpN9++00vvPCCypcvr2HDhikjI0Nz5swxf2e4WU77lTWy+85j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1vXr120fcA5s3brVYp2PgwcP6sCBA+bPct9996l+/fr6/PPPdf78+Szn22qt41vZ67555ezsrLZt22rTpk06evRoluM5iTswMFCHDh3K9b0rVKigGjVq6KuvvrLoe0ePHtXu3bvVrFkzizhvlV0/bNasmfbv36+DBw9afIa1a9fmOj57yXxr9ea3P1NTU/Xpp5/a/F6JiYn6888/FRQUZPNrAwBQkKKjozV37lx5eXmZR3XcbnTJRx99lGWfm5ubpKxTj2de49YpvVetWmWTuAtrPlSrVi15enpqxYoVSk9PN+9fu3btXafNtrd27dpp3759+vbbb7McS0hIsPg8t3Jzc1O/fv0UFxen6dOnZzn+zTff6Msvv1RISIgCAwNtFnPTpk1VtmxZLVq0SD/99BOjsgEAsIE2bdrI2dlZs2fPzjIC1zAMXb58WVL2z2kMw9DSpUtve21XV1fNnj1btWvX1uDBgy3yspzy9vbW2LFj9corr5jXr85Ou3btdO7cOa1YsSLLsatXryo5OTnX985OrVq1dN999+mzzz5Tamqqef/OnTv1xx9/qHnz5jm+lrW5Tebz32XLlmU5lvn8++bn3Zl/w0wlS5aUt7e3Of6cfl9wdnZWo0aNtG3bNovn0idOnMiSU+a0X1kju+88eX0m7ebmlu2gtey+Bx04cED79++3On6gMGBkNmAHLVu2VIMGDTR9+nTzCIndu3dr27Zt6tOnj8UUI48++qiio6O1ePFiVahQQV5eXqpTp46aN2+ur7/+WqVKlVL16tW1f/9+7dmzR56ennb5TN7e3urevbu6d++u1NRULV26VJ6enhbTBL7xxht67rnn1LFjRz3zzDOqXLmy/v77b+3fv19nz57VmjVr8iU2e903r1555RX98MMPeuaZZxQeHq7q1asrPj5ev/76q6Kjo/Xjjz/e8fxWrVrp66+/VlxcXLZvHC5ZsiTLdNpOTk4aPHiwXnvtNQ0YMEDdunXT008/ratXr2rZsmUqXbq0xRuROe2HL7zwgr7++mu98MIL6t27t9zc3LRixQo99NBDNlnjuiAEBQWpTJkyioiIUK9evWQymfT111/ny7See/bskWEYatWqlc2vDQBAftm1a5diY2N1/fp1/f333/rhhx+0e/duPfTQQ5o3b56KFy8u6cb6f/Xq1dOiRYuUlpamihUravfu3dnOdvLoo49KkqZPn66wsDC5uLioRYsWaty4sVxcXDR48GA9++yz+ueff7Ry5Urdd999unDhQo5jvtfyIVdXVw0bNkxvvvmm+vTpo3bt2un06dNavXp1vi6tYwv9+/fX9u3bNXjwYHXp0kWPPvqoUlJSdPToUW3atEnbtm3Lsh73zQYOHKjDhw9r4cKF2r9/v9q0aaMSJUpo7969WrNmjapVq6Zp06bZNGYXFxe1b99ey5Ytk7Ozs9q3b2/T6wMAUBR5e3tr5MiReu+993T69GmFhoaqZMmSOnXqlLZu3apnnnlG/fv3l6+vr7y9vTVt2jSdO3dOpUqV0qZNm+665F6JEiU0f/589e7dWwMGDNDHH38sPz+/XMXYp0+fu7bp1KmTNmzYoDfeeEM//PCD6tatq+vXrys2NlYbN27UokWLbLLUo4uLi0aPHq1//etf6tmzp9q3b6+LFy9q6dKlqlSpkvr27Zura1mT29SoUUPh4eFaunSpTpw4YR6JvGfPHu3cuVPh4eEWsw+2b99e9evX16OPPipPT0/997//1aZNm9SzZ09Jufu+MHToUH333Xfm59IZGRlatmyZHn74YR0+fNjcLqf96m5y+p1Hytsz6UcffVRRUVGaMmWKateuLXd3d7Vs2VLNmzfX5s2b9dJLL6l58+Y6deqUPvvsM1WvXt1mL0gAjohiNmAHTk5OmjdvnmbOnKmoqCitXr1alSpV0muvvaZ+/fpZtI2IiNCECRM0Y8YMXb16VV26dFGdOnX0+uuvy8nJSWvXrtW1a9dUt25dLV68+LZrzOW3zp07y8nJSR999JEuXryogIAAjR8/3mJq6OrVq2vVqlWaPXu2vvzyS125ckXlypVTzZo19dJLL+VbbPa6b17df//9WrlypebMmaMtW7Zo+fLl8vT0VPXq1TV69Oi7nt+iRQuVLVtWGzZs0JAhQ7Icnz9/fpZ9zs7OGjx4sBo1aqRFixZp5syZmjlzpooVK6Z69erp1VdfNU+TIynH/bBChQpaunSp3nrrLS1YsECenp569tlnVaFCBb3++utW/HYKXtmyZfXhhx9q2rRpmjFjhjw8PPTkk08qODg4R8lubmzcuFGPPfaYwz90BgDgZplT27m4uMjT01N+fn4aO3asunbtarG0jiS99957evPNN/Xpp5/KMAw1btxYCxcuzLKeXEBAgEaMGKHPPvtM3377rTIyMrRt2zb5+vpq5syZmjFjhqZNm6b7779f3bt3V7ly5TR27Ngcx3wv5kM9e/aUYRhavHixpk2bpkceeUTz5s3TW2+9ZfFwzdG4ubnp448/1vz587Vx40Z99dVXKlWqlKpWraphw4apdOnSdzzf2dlZM2bM0FdffaWVK1fqgw8+UFpamry9vfXSSy+pX79+eV4LMTudOnXSsmXLFBwcnGVZHAAAYJ2BAweqatWqWrJkiebMmSPpxhrTjRs3VsuWLSXdyDk//PBDvfXWW5o/f76KFy+u1q1bq0ePHurUqdMdr1+qVClFRkaqZ8+e6tevnz755JMs02PnlZOTk+bMmaMlS5bo66+/1pYtW+Tm5iYvLy/16tXLplNdd+3aVSVKlNDChQv17rvvyt3dXaGhoXr11Vfl4eGRq2tZm9v8+9//lp+fn1atWqX3339fkuTj46Nx48apR48eFm179eql7du3a/fu3UpNTdVDDz2kkSNHWjxfy+n3hVq1amnhwoV6++239cEHH+jBBx/U8OHDFRsba17SM1NO+tXd5OY7T16eST/33HM6fPiwVq9erSVLlqhSpUpq2bKlunbtqr///luff/65vvvuO1WvXl3vvPOONm7ceNeBT0BhZjLyY0gZgCLj1KlTatWqlV577TWbF/SQd3PmzNHq1au1efPm207RA8dy4cIFtWrVSu+//75CQ0PtHQ4AALgHZGRkKDg4WK1bt9Zbb71l73DuKb///rs6deqUZb1OAACAwuheyW2GDBmimJgYbd682d6hALAB1swGgHtY3759lZycrPXr19s7FOTQRx99JD8/PwrZAADAKteuXcuyDMpXX32lK1euqH79+naK6t61YsUKubu7q02bNvYOBQAAIM8KY25z9epVi+3jx49r165d5L7APYRpxgHgHlayZElFR0fbOwzkQk6mkAcAALid/fv3a8qUKXriiSfk6emp3377TV988YX8/Pz0xBNP2Du8e8b27dsVExOjFStWqEePHvkyhTkAAEBBKcy5TWhoqLp06aLKlSvr9OnT+uyzz+Ti4mK35TgB2B7FbAAAAAAA7hGVKlXSAw88oI8//ljx8fEqU6aMOnXqpNGjR8vV1dXe4d0z3nrrLf39999q2rSphg0bZu9wAAAA8qQw5zZNmjTR+vXrdeHCBbm6uiowMFAvv/yyqlatau/QANgIa2YDAAAAAAAAAAAAABwOa2YDAAAAAAAAAAAAABwOxWwAAAAAAAAAAAAAgMNhzexc2LdvnwzDkIuLi71DAQAAMEtLS5PJZFJQUJC9Q0EukFsCAABHRX5ZOJFfAgAAR5WX/JJidi4YhiGWGAcAAI6G/KRwIrcEAACOihylcCK/BAAAjiovOQrF7FzIfKuxdu3ado4EAADgf/773//aOwRYgdwSAAA4KvLLwon8EgAAOKq85JesmQ0AAAAAAAAAAAAAcDgUswEAAAAAAAAAAAAADodiNgAAAAAAAAAAAADA4VDMBgAAAAAAAAAAAAA4HIrZAAAAAAAAAAAAAACHQzEbAAAAAAAAAAAAAOBwKGYDAAAAAAAAAAAAABwOxWwAAAAAAAAAAAAAgMOhmA0AAAAAAAAAAAAAcDgUswEAAAAAAAAAAAAADodiNgAAAAAAAAAAAADA4VDMBgAAAAAAAAAAAAA4HIrZAAAAAAAAAAAAAACHU8zeAQAAAAD2tHPnTi1cuFAxMTFKSkpSxYoVFRoaqqFDh6p06dKSpIiICH355ZdZzl24cKGaNm1a0CEDAAAAAAAARQLFbAAAABRpV65cUUBAgHr16iVPT08dO3ZMs2bN0rFjx/Sf//zH3K5y5cp69913Lc6tVq1aQYcLAAAAAAAAFBkUswEAAFCkderUyWK7QYMGcnV11fjx43Xu3DlVrFhRklSiRAkFBgbaIUIAAAAAAACgaGLNbAAAAOAWnp6ekqS0tDT7BgIAAAAAAAAUYRSzAQAAAEnXr1/XtWvX9Ouvv2rOnDlq2bKlvLy8zMdPnDihxx57TLVq1VLXrl21detWO0YLAAAAAAAA3PuYZhwAAACQ1KJFC507d06S1KRJE7333nvmYzVq1FDt2rVVvXp1JSYmavny5XrppZf0wQcf6IknnrD6noZhKDk5Oc+xAwAA2JJhGDKZTPYOAwAAAKCYDQAAAEjSggULlJKSopiYGM2bN0+DBw/W4sWL5ezsrD59+li0bdmypZ599lnNnDkzT8XstLQ0HT58OK+hAwAA2Jyrq6u9QwAAAAAoZgMAAACS9Mgjj0iSgoKCVLt2bXXq1ElbtmzJtljt5OSkNm3a6J133tHVq1dVokQJq+7p4uKi6tWr5yluAAAAW4uJibF3CAAAAIAkitkAAABAFv7+/nJxcdGff/6Zr/cxmUxyd3fP13sAAADkFlOMAwAAwFE42TsAAP9zPSPD3iHACvzdAODec+DAAaWlpcnLyyvb4xkZGdq4caMefvhhq0dlAwUh4zp5SmHE3w0AAADAvS7DMOwdAqxU0H87RmYDDsTZyUkTln2p4+f+tncoyKGqFe/Xv3t2sXcYAIA8GDp0qGrVqiV/f3+VKFFCv//+uyIjI+Xv76/Q0FCdPn1aERERat++vapUqaL4+HgtX75chw4d0qxZs+wdPnBHTs5O2jhmni7FnrZ3KMihcr6V9MS0F+0dBgAAAADkKyeTSUt/j9a55AR7h4JcqOjuod6PBBfoPSlmAw7m+Lm/deT0WXuHAQBAkREQEKCoqCgtWLBAhmGoUqVKCg8PV//+/eXq6qqSJUuqVKlSmjdvni5evCgXFxfVqlVLCxcuVJMmTewdPnBXl2JP68LhE/YOAwAAAAAAC+eSE3Qq6bK9w4CDo5gNAACAIm3gwIEaOHDgbY97enpq3rx5BRgRAAAAAAAAAIk1swEAAAAAAAAAAAAADohiNgAAAAAAAAAAAADA4VDMBgAAAAAAAAAAd3U9I8PeIcAK/N0AFGasmQ0AAAAAAAAAAO7K2clJU+dv0J9/XbJ3KMgh7wfLKWJQO3uHAQBWo5gNAAAAAAAAAABy5M+/LinmxAV7hwEAKCKYZhwAAAAAAAAAAAAA4HAoZgMAAAAAAAAAAAAAHA7FbAAAAAAAAAAAAACAw6GYDQAAAAAAAAAAAABwOBSzAQAAAAAAAAAAAAAOh2I2AAAAAAAAAAAAAMDhUMwGAAAAAAAAgCLs+vUMe4cAK/G3AwDc64rZOwAAAAAAAAAAgP04Oztp0tj3dTz2lL1DQS5U9fXSG5NftncYAADkK4rZAAAAAAAAAFDEHY89paO/x9o7DAAAAAsONc34hg0b9OKLL6pp06YKDAxUp06d9MUXX8gwDIt2K1euVNu2bVW7dm09+eST2rFjR5ZrJSYmauzYsapfv76CgoI0fPhwnT9/vqA+CgAAAAAAAAAAAAAgDxyqmL1kyRK5ubkpIiJC8+bNU9OmTTV+/HjNmTPH3Gb9+vUaP3682rVrp4ULFyowMFBDhw7V/v37La41cuRI7d69WxMnTtS7776ruLg4DRgwQOnp6QX8qQAAAAAAAAAAAAAAueVQ04zPmzdP5cqVM28HBwfrypUrWrx4sYYMGSInJyfNnDlT7du318iRIyVJDRs21NGjRzVnzhwtXLhQkrRv3z599913ioyMVEhIiCTJx8dHYWFh2rx5s8LCwgr8swEAAAAAAAAAAAAAcs6hRmbfXMjOVKNGDSUlJSk5OVknT57U8ePH1a5dO4s2YWFhio6OVmpqqiRp165d8vDwUOPGjc1tfH19VaNGDe3atSt/PwQAAAAAAAAAAAAAIM8cqpidnb1796pixYoqVaqUYmNjJd0YZX2zatWqKS0tTSdPnpQkxcbGysfHRyaTyaKdr6+v+RoAAAAAAAAAAAAAAMflUNOM3+rnn39WVFSUxowZI0mKj4+XJHl4eFi0y9zOPJ6QkKDSpUtnuV6ZMmV06NChPMVkGIaSk5PzdA0gOyaTSW5ubvYOA1ZKSUmRYRj2DgNAEWUYRpaX+AAAAAAAAACgsHPYYvbZs2c1atQoNWjQQL1797Z3OGZpaWk6fPiwvcPAPcjNzU01a9a0dxiwUlxcnFJSUuwdBoAizNXV1d4hAAAAAAAAAIBNOWQxOyEhQQMGDJCnp6dmzZolJ6cbs6GXKVNGkpSYmKjy5ctbtL/5uIeHh86ePZvluvHx8eY21nJxcVH16tXzdA0gO4yoK9x8fHwYmQ3AbmJiYuwdAgAAAAAAAADYnMMVs69evapBgwYpMTFRn3/+ucV04b6+vpJurImd+XPmtouLiypXrmxuFx0dnWXKzbi4OPn5+eUpPpPJJHd39zxdA8C9hyniAdgTL0QBAAAAAAAAuBc52TuAm6Wnp2vkyJGKjY3VokWLVLFiRYvjlStXVtWqVbVx40aL/VFRUQoODjZPr9m0aVPFx8crOjra3CYuLk6//fabmjZtmv8fBAAAAAAAAAAAAACQJw41MnvSpEnasWOHIiIilJSUpP3795uP1axZU66urho2bJhGjx4tb29vNWjQQFFRUTp48KCWLVtmbhsUFKSQkBCNHTtWY8aMUfHixTV9+nT5+/urTZs2dvhkAAAAAAAAAAAAAIDccKhi9u7duyVJU6dOzXJs27Zt8vLyUocOHZSSkqKFCxdqwYIF8vHx0ezZsxUUFGTRfsaMGZoyZYomTJig9PR0hYSEaNy4cSpWzKE+MgAAAAAAAAAAAAAgGw5V2d2+fXuO2oWHhys8PPyObUqXLq3Jkydr8uTJtggNAAAAAAAAAAAAAFCAHGrNbAAAAAAAAAAAAAAAJIrZAAAAAAAAAAAAAAAHRDEbAAAAAAAAAAAAAOBwKGYDAAAAAAAAAAAAABwOxWwAAAAAAAAAAAAAgMOhmA0AAAAAAAAAAAAAcDgUswEAAAAAAAAAAAAADodiNgAUMtczMuwdAqzE3w4AAAAAAAAAgJwrZu8AAAC54+zkpHHbViru8gV7h4Jc8ClbXm+1Crd3GAAAAAAAAAAAFBoUswGgEIq7fEFH/v7L3mEAAAAAAAAAAADkG6YZBwAAAAAAAAAAAAA4HIrZAAAAAAAAAAAAAACHQzEbAAAAAAAAAAAAAOBwKGYDAAAAAAAAAAAAABwOxWwAAAAAAAAAAAAAgMOhmA0AAAAAAAAAAAAAcDgUswEAAAAAAAAAAAAADodiNgAAAAAAAAAAAADA4VDMBgAAAAAAAAAAAAA4HIrZAAAAAAAAAAAAAACHQzEbAAAAAAAAAAAAAOBwKGYDAAAAAAAAAAAAABwOxWwAAAAAAAAAAAAAgMOhmA0AAAAAAAAAAAAAcDgUswEAAAAAAAAAAAAADodiNgAAAAAAAAAAAADA4VDMBgDgHpRhZNg7BFiJvx0AAAAAAAAA3FDM3gEAAADbczI5afXvC3Qh+Yy9Q0EulHd/SF0fGWjvMIqcnTt3auHChYqJiVFSUpIqVqyo0NBQDR06VKVLlza32759u2bMmKG4uDg99NBDGjhwoJ566ik7Rg4AAAAAAADc2yhmAwBwj7qQfEZnk/60dxiAw7ty5YoCAgLUq1cveXp66tixY5o1a5aOHTum//znP5Kkn3/+WUOHDtXTTz+tsWPH6vvvv9frr7+ukiVL6oknnrDzJwAAAAAAAADuTRSzAQAAUKR16tTJYrtBgwZydXXV+PHjde7cOVWsWFHz5s1TQECA/v3vf0uSGjZsqJMnT2rmzJkUswEAAO4BGzZs0Jo1a/Trr78qISFBVapUUa9evfTUU0/JZDKZ261cuVKLFi3SmTNn5OPjo1GjRqlFixYW10pMTNSUKVO0detWpaWlqUmTJho3bpwqVKhg0e6XX37RtGnTdPjwYd13333q3r27BgwYYHE/ACiMrmdkyNmJVW4LI/52cEQUswEAAIBbeHp6SpLS0tKUmpqqH374QaNHj7ZoExYWpnXr1unUqVPy8vKyQ5QAAACwlSVLlqhSpUqKiIhQ2bJltWfPHo0fP15nz57V0KFDJUnr16/X+PHjNXjwYDVs2FBRUVEaOnSoPvnkEwUGBpqvNXLkSMXExGjixIkqXry4ZsyYoQEDBmjVqlUqVuzG49gTJ06of//+aty4sUaOHKkjR47o3XfflbOzs/r372+PXwEA2Iyzk5MmR23Xn5eu2DsU5IJ3OU+NDWtp7zCALChmAwAAAJKuX7+u9PR0xcTEaM6cOWrZsqW8vLwUExOjtLQ0+fr6WrSvVq2aJCk2NpZiNgAAQCE3b948lStXzrwdHBysK1euaPHixRoyZIicnJw0c+ZMtW/fXiNHjpR0Y7aeo0ePas6cOVq4cKEkad++ffruu+8UGRmpkJAQSZKPj4/CwsK0efNmhYWFSZIiIyNVtmxZvf/++3J1dVVwcLAuXbqkDz/8UL169ZKrq2vB/gIAwMb+vHRFMecv2jsMAPcAitkAAACApBYtWujcuXOSpCZNmui9996TJMXHx0uSPDw8LNpnbmcet4ZhGEpOTrb6fOBOTCaT3Nzc7B0GrJSSkiLDMOwdBoAiyjCMIjfV9c2F7Ew1atTQihUrlJycrMuXL+v48eN69dVXLdqEhYXp7bffVmpqqlxdXbVr1y55eHiocePG5ja+vr6qUaOGdu3aZS5m79q1S61bt7YoWoeFhWn+/Pnat2+fGjRokE+fFAAAoHChmA0AAABIWrBggVJSUhQTE6N58+Zp8ODBWrx4cb7eMy0tTYcPH87Xe6DocnNzU82aNe0dBqwUFxenlJQUe4cBoAhjZLC0d+9eVaxYUaVKldLevXsl3RhlfbNq1aopLS1NJ0+eVLVq1RQbGysfH58sLwP4+voqNjZWkpScnKy//vory8w/vr6+MplMio2NpZgNAADw/1HMBgAAACQ98sgjkqSgoCDVrl1bnTp10pYtW1S9enVJUmJiokX7hIQESVKZMmWsvqeLi4v5+oCtFbURdfcaHx8fRmYDsJuYmBh7h2B3P//8s6KiojRmzBhJOZ+tJyEhQaVLl85yvTJlyujQoUOS/pdX3notV1dXubm5FfjMP8zmUvgV1Iwu9JXCjX6CnCqIvkI/Kfxy20/yMvMPxWwAAADgFv7+/nJxcdGff/6pli1bysXFRbGxsWrSpIm5TebImltH1OSGyWSSu7t7nuMFcO/hwQ4AeyrqL0SdPXtWo0aNUoMGDdS7d297h5Mr1sz8w2wuhV9BzehCXync6CfIqYLoK/STws+afmLtzD8UswtARkaGnJyc7B0GrMDfDgCAounAgQNKS0uTl5eXXF1d1aBBA23atEl9+vQxt4mKilK1atXk5eVlx0gBAABgSwkJCRowYIA8PT01a9Ys83OhzNl4EhMTVb58eYv2Nx/38PDQ2bNns1w3Pj7e3CZz5PatM/+kpqYqJSWlwGf+KeovL9wLCmpGF/pK4UY/QU4VRF+hnxR+ue0neZn5h2J2AXByctI7736hk6f+tncoyIXKXvfr1dFP2zsMAACQz4YOHapatWrJ399fJUqU0O+//67IyEj5+/srNDRUkvTiiy+qd+/emjhxotq1a6cffvhB69at0/Tp0+0cPQAAAGzl6tWrGjRokBITE/X5559bTBeeORtPbGysxcw8sbGxcnFxUeXKlc3toqOjs0ylGRcXJz8/P0mSu7u7HnzwQfNMPze3MQyDmX+Qa8zogpygnyCn6CvIidz2k7y8wEAxu4CcPPW3/vjjL3uHAQAAgFsEBAQoKipKCxYskGEYqlSpksLDw9W/f3/z9EePP/64Zs2apRkzZuiLL77QQw89pLfeekvt2rWzc/QAAACwhfT0dI0cOVKxsbH65JNPVLFiRYvjlStXVtWqVbVx40bzC4/Sjdl6goODzXlj06ZNNXfuXEVHR6tRo0aSbhSpf/vtN73wwgvm85o2bapt27bp1VdflYuLi/laHh4eCgoKyu+PCwAAUGhQzAYAAECRNnDgQA0cOPCu7Vq1aqVWrVoVQEQAAAAoaJMmTdKOHTsUERGhpKQk7d+/33ysZs2acnV11bBhwzR69Gh5e3urQYMGioqK0sGDB7Vs2TJz26CgIIWEhGjs2LEaM2aMihcvrunTp8vf319t2rQxt+vfv7/Wrl2rV155Rd27d9fRo0cVGRmpUaNGWb2eJAAAwL2IYjYAAAAAAACAIm337t2SpKlTp2Y5tm3bNnl5ealDhw5KSUnRwoULtWDBAvn4+Gj27NlZRlLPmDFDU6ZM0YQJE5Senq6QkBCNGzdOxYr971FslSpVFBkZqalTp2rgwIEqV66chg8frn79+uXvBwUAAChkKGYDAAAAAAAAKNK2b9+eo3bh4eEKDw+/Y5vSpUtr8uTJmjx58h3b1a1bVytWrMhxjAAAAEWRk70DAAAAAAAAAAAAAADgVg41MvvEiROKjIzUgQMHdOzYMfn6+mrdunXm46dOnbrtOoWurq7673//e8d2derU4W1HAAAAAAAAAAAAACgEHKqYfezYMe3cuVN16tRRRkaGDMOwOF6hQgV9/vnnFvsMw9ALL7yghg0bZrneyy+/rAYNGpi3S5YsmT+BAwAAAAAAAAAAAABsyqGK2S1btlRoaKgkKSIiQocOHbI47urqqsDAQIt9P/zwg5KSktShQ4cs16tSpUqW9gAAAAAAAAAAAAAAx+dQa2Y7OeU+nHXr1qlUqVJq2bJlPkQEAAAAAAAAAAAAALAHhypm51ZaWpo2b96s1q1bq3jx4lmOT5w4UTVq1FBwcLDGjRunK1euFHyQAAAAAAAAAAAAAIBcc6hpxnNr165dunLlSpYpxl1dXdW9e3eFhITIw8NDBw4c0IcffqhDhw5p5cqVcnFxsfqehmEoOTk5x+1NJpPc3Nysvh/sLyUlJcv67fmBvlK40U+QUwXRV+gnhV9u+4lhGDKZTPkYEQAAAAAAAAAUvEJdzF67dq3uv/9+BQcHW+yvUKGCJk6caN6uX7++Hn74YQ0aNEhbtmxRWFiY1fdMS0vT4cOHc9zezc1NNWvWtPp+sL+4uDilpKTk+33oK4Ub/QQ5VRB9hX5S+FnTT1xdXfMpGgAAAAAAAACwj0JbzP7nn3+0Y8cOhYeHy9nZ+a7tmzVrJnd3d/366695Kma7uLioevXqOW7PKKnCz8fHp8BG3KLwop8gpwqir9BPCr/c9pOYmJh8jAYAAAAAAAAA7KPQFrO3bNmiq1evqmPHjgV6X5PJJHd39wK9J+yLqXqRE/QT5BR9BTmR237CCwwAAAAAAAAA7kVO9g7AWuvWrZO3t7fq1KmTo/Y7duxQcnKyateunc+RAQAAAAAAAAAAAADyyqFGZqekpGjnzp2SpNOnTyspKUkbN26UdGPd63LlykmSLl26pOjoaA0YMCDb60ydOlUmk0mBgYHy8PDQwYMHNX/+fNWqVUuhoaEF82EAAAAAAAAAAAAAAFZzqGL2xYsXNWLECIt9mdtLly5VgwYNJEkbNmxQenr6bacYr1atmpYvX64VK1bo6tWrqlixop5++mkNHz5cxYo51EcGAAAAAAAAAAAAAGTDoSq7Xl5eOnLkyF3b9ejRQz169Ljt8fDwcIWHh9syNAAAAAAAAAAAAABAASq0a2YDAAAAAAAAAAAAAO5dFLMBAAAAAAAAAAAAAA6HYjYAAAAAAAAAAAAAwOFQzAYAAAAAAAAAAAAAOByK2QAAAAAAAAAAAAAAh0MxGwAAAAAAAAAAAADgcChmAwAAAAAAAAAAAAAcDsVsAAAAAAAAAAAAAIDDoZgNAAAAAAAAAAAAAHA4FLMBAAAAAAAAAAAAAA6HYjYAAAAAAAAAAAAAwOFQzAYAAAAAAAAAAAAAOByK2QAAAAAAAAAAAAAAh0MxGwAAAAAAAAAAAADgcChmAwAAAAAAAAAAAAAcDsVsAAAAAAAAAAAAAIDDoZgNAAAAAAAAAAAAAHA4FLMBAAAAAAAAAAAAAA6HYjYAAAAAAAAAAAAAwOFQzAYAAAAAAAAAAAAAOByK2QAAAAAAAAAAAAAAh0MxGwAAAAAAAAAAAADgcChmAwAAAAAAAAAAAAAcDsVsAAAAAAAAAAAAAIDDoZgNAAAAAAAAAAAAAHA4FLMBAAAAAAAAAAAAAA6HYjYAAAAAAAAAAAAAwOFQzAYAAAAAAAAAAAAAOByK2QAAAAAAAAAAAAAAh0MxGwAAAAAAAAAAAADgcChmAwAAAAAAAAAAAAAcDsVsAAAAAAAAAAAAAIDDoZgNAAAAAAAAAAAAAHA4FLMBAAAAAAAAAAAAAA6HYjYAAAAAAAAAAAAAwOFQzAYAAAAAAAAAAAAAOByK2QAAAAAAAAAAAAAAh0MxGwAAAAAAAAAAAADgcIrZOwAAAADAnjZs2KA1a9bo119/VUJCgqpUqaJevXrpqaeekslkkiT16tVLP/74Y5Zzo6KiVK1atYIOGQAAAAAAACgSKGYDAACgSFuyZIkqVaqkiIgIlS1bVnv27NH48eN19uxZDR061Nyubt26GjNmjMW5Xl5eBR0uAAAAAAAAUGRQzAYAAECRNm/ePJUrV868HRwcrCtXrmjx4sUaMmSInJxurMzj4eGhwMBAO0UJAAAAAAAAFD2smQ0AAIAi7eZCdqYaNWooKSlJycnJdogIAAAAAAAAgORgI7NPnDihyMhIHThwQMeOHZOvr6/WrVtn0San6xUmJiZqypQp2rp1q9LS0tSkSRONGzdOFSpUyPfPAQAAgMJt7969qlixokqVKmXe9+OPPyowMFDXr19XnTp1NGLECNWrV8+OUQIAAAAAAAD3NocqZh87dkw7d+5UnTp1lJGRIcMwsm2Xk/UKR44cqZiYGE2cOFHFixfXjBkzNGDAAK1atUrFijnUxwYAAIAD+fnnnxUVFWWRb9arV0+dOnVS1apVdf78eUVGRur555/Xxx9/rKCgIKvvZRgGo7+Rb0wmk9zc3OwdBqyUkpJy2+/EAJDfDMOQyWSydxgAAACAYxWzW7ZsqdDQUElSRESEDh06lG27u61XuG/fPn333XeKjIxUSEiIJMnHx0dhYWHavHmzwsLCbB47AAAACr+zZ89q1KhRatCggXr37m3eP3z4cIt2zZs3V4cOHTR37lwtXLjQ6vulpaXp8OHDVp8P3Imbm5tq1qxp7zBgpbi4OKWkpNg7DABFmKurq71DAAAAAByrmO3kZJslvHft2iUPDw81btzYvM/X11c1atTQrl27KGYDAAAgi4SEBA0YMECenp6aNWvWHXNTd3d3NWvWTJs2bcrTPV1cXFS9evU8XQO4HUbUFW4+Pj6MzAZgNzExMfYOAQAAAJDkYMXsnLrbeoWxsbHy8fHJ8vDG19dXsbGxBR0uAAAAHNzVq1c1aNAgJSYm6vPPP1fp0qUL5L4mk0nu7u4Fci8AhQtTxAOwJ16IAgAAgKModMXsnKxXmJCQkO0DyDJlytx26vKcyu26hqxTV/gV1Fp19JXCjX6CnCqIvkI/Kfxy209Y0zBv0tPTNXLkSMXGxuqTTz5RxYoV73pOcnKyvvnmG9WuXbsAIgQAAAAAAACKpkJXzM6v9QpzKrfrGrJOXeFXUGvV0VcKN/oJcqog+gr9pPCzpp+wpqH1Jk2apB07digiIkJJSUnav3+/+VjNmjV18OBBLVq0SK1bt1alSpV0/vx5LV68WBcuXNAHH3xgv8ABAAAAAACAe1yhK2bfKrv1Cj08PHT27NksbePj41WmTJk83S+36xoySqrwK6i16ugrhRv9BDlVEH2FflL45bafsKZh3uzevVuSNHXq1CzHtm3bpvLlyystLU3Tp0/XlStX5ObmpqCgIE2aNEkBAQEFHS4AAAAAAABQZBT6YnZ2fH19FR0dnWXKzbi4OPn5+eXp2qxrWPQwVS9ygn6CnKKvICdy2094gSFvtm/fftc2kZGRBRAJAAAAAAAAgJs52TuAvMpuvcKmTZsqPj5e0dHR5n1xcXH67bff1LRpU3uECQAAAAAAAAAAAADIBYcamZ2SkqKdO3dKkk6fPq2kpCRt3LhRklS/fn3FxsbmaL3CoKAghYSEaOzYsRozZoyKFy+u6dOny9/fX23atLHLZwMAAAAAAAAAAAAA5JxDFbMvXryoESNGWOzL3F66dKkeeOCBHK9XOGPGDE2ZMkUTJkxQenq6QkJCNG7cOBUr5lAfGQAAAAAAAAAAAACQDYeq7Hp5eenIkSN3bJPT9QpLly6tyZMna/LkybYIDQAAAAAAAAAAAABQgAr9mtkAAAAAAAAAAAAAgHsPxWwAAAAAAAAAAAAAgMOhmA0AAAAAAAAAAAAAcDgUswEAAAAAAAAAAAAADodiNgAAAAAAAAAAAADA4VDMBgAAAAAAAAAAAAA4HIrZAAAAAAAAAAAAAACHQzEbAAAAAAAAAAAAAOBwKGYDAAAAAAAAAAAAABwOxWwAAAAAAAAAAAAAgMOhmA0AAAAAAAAAAAAAcDgUswEAAAAAAAAAAAAADodiNgAAAAAAAAAAAADA4VDMBgAAAAAAAAAAAAA4HIrZAAAAAAAAAAAAAACHQzEbAAAAAAAAAAAAAOBwKGYDAAAAAAAAAAAAABwOxWwAAAAAAAAAAAAAgMMpZs1JCQkJ2rdvn2JiYnT58mWZTCaVLVtW1apVU2BgoMqUKWPrOAEAAFDEkYMCAAAgv5w4cUKRkZE6cOCAjh07Jl9fX61bt86iTa9evfTjjz9mOTcqKkrVqlUzbycmJmrKlCnaunWr0tLS1KRJE40bN04VKlSwOO+XX37RtGnTdPjwYd13333q3r27BgwYIJPJlD8fEgAAoBDKcTE7NTVV69at05dffqm9e/cqIyMj23ZOTk6qW7euunbtqg4dOsjV1dVmwQIAAKBoIQcFAABAQTh27Jh27typOnXqKCMjQ4ZhZNuubt26GjNmjMU+Ly8vi+2RI0cqJiZGEydOVPHixTVjxgwNGDBAq1atUrFiNx7HnjhxQv3791fjxo01cuRIHTlyRO+++66cnZ3Vv3///PmQAAAAhVCOitnLly/XvHnzdPnyZTVu3Fj/+te/9Oijj6py5coqU6aMDMNQfHy8Tp06pUOHDmnPnj164403NGPGDA0ZMkTPPvtsfn8OAAAA3GPIQQEAAFBQWrZsqdDQUElSRESEDh06lG07Dw8PBQYG3vY6+/bt03fffafIyEiFhIRIknx8fBQWFqbNmzcrLCxMkhQZGamyZcvq/fffl6urq4KDg3Xp0iV9+OGH6tWrFy9nAgAA/H85KmbPnz9f/fr101NPPaXSpUtn26ZChQqqUKGC6tatq969eyspKUlffPGFFixYwINEAAAA5Bo5KAAAAAqKk5OTTa6za9cueXh4qHHjxuZ9vr6+qlGjhnbt2mUuZu/atUutW7e2KFqHhYVp/vz52rdvnxo0aGCTeAAAAAq7HBWzt27dap4CJ6dKlSqlvn37qmfPnlYFBgAAgKKNHBQAAACO5scff1RgYKCuX7+uOnXqaMSIEapXr575eGxsrHx8fLKse+3r66vY2FhJUnJysv766y/5+vpmaWMymRQbG0sxGwAA4P/L0dPB3D5EtNW5AAAAKLrIQQEAAOBI6tWrp06dOqlq1ao6f/68IiMj9fzzz+vjjz9WUFCQJCkhISHbWYXKlCljnro8MTFR0o0py2/m6uoqNzc3xcfHWx2jYRhKTk7O1Tkmk0lubm5W3xP2l5KSctt13m2JvlK40U+QUwXRV+gnhV9u+4lhGFle9sspq57yJSUlKTExUQ8++KB537lz5/TZZ58pNTVVbdu2VUBAgFUBAQAAANkhBwUAAIA9DR8+3GK7efPm6tChg+bOnauFCxfaKSpLaWlpOnz4cK7OcXNzU82aNfMpIhSEuLg4paSk5Pt96CuFG/0EOVUQfYV+UvhZ009uXl4lN6wqZk+YMEGnTp3SihUrJN14sNitWzedPXtWTk5OWrp0qRYtWsR0OAAAALAZclAAAABkunTpki5fviyTyaSyZcuqbNmyBR6Du7u7mjVrpk2bNpn3eXh46OzZs1naxsfHq0yZMpJkHrmdOUI7U2pqqlJSUsztrOHi4qLq1avn6hxrR0nBcfj4+BTYiFsUXvQT5FRB9BX6SeGX234SExNj9b2sKmbv3btX3bp1M29//fXXOn/+vD777DNVr15dffv21bx583iQCAAAAJshBwUAACi6kpOTtXHjRm3btk379u3T5cuXLY6XLVtWgYGBCg0N1RNPPCF3d3e7xOnr66vo6OgsU2nGxcXJz89P0o0i+IMPPmheQ/vmNoZhZFlLOzdMJpPdPjvsh6l6kRP0E+QUfQU5kdt+kpcXGJysOeny5cuqWLGieXv79u167LHHFBgYqFKlSqlz5876/fffrQ4KAAAAuBU5KAAAQNFz+fJlTZs2TY0bN9b48eP1119/qVWrVho1apTeeOMNTZgwQSNHjlSrVq109uxZjR8/Xo0bN9a0adN06dKlfI0tOTlZ33zzjWrXrm3e17RpU8XHxys6Otq8Ly4uTr/99puaNm1q0W7btm1KS0sz74uKipKHh4d5/W0AAABYOTLbw8NDf//9tyTp6tWr2rt3rwYPHmw+7uzsrKtXr9omQgAAAEDkoAAAAEVRy5YtVaVKFb322mtq27atypUrd8f2ly5d0qZNm7RixQp9/vnn+uWXX3J0n5SUFO3cuVOSdPr0aSUlJWnjxo2SpPr16ys2NlaLFi1S69atValSJZ0/f16LFy/WhQsX9MEHH5ivExQUpJCQEI0dO1ZjxoxR8eLFNX36dPn7+6tNmzbmdv3799fatWv1yiuvqHv37jp69KgiIyM1atQoq9eTBAAAuBdZVcwOCgrSp59+Kl9fX3377be6du2aWrVqZT5+/Phxi1EzAAAAQF6RgwIAABQ9M2fOVJMmTXLcvly5curevbu6d++ub7/9NsfnXbx4USNGjLDYl7m9dOlSPfDAA0pLS9P06dN15coVubm5KSgoSJMmTVJAQIDFeTNmzNCUKVM0YcIEpaenKyQkROPGjVOxYv97FFulShVFRkZq6tSpGjhwoMqVK6fhw4erX79+OY4ZAACgKLCqmD169Gj169dPw4YNkyQ9//zzevjhhyVJ169f18aNG3OVZAIAAAB3Qw4KAABQ9OQlv8vNuV5eXjpy5Mgd20RGRuboWqVLl9bkyZM1efLkO7arW7euVqxYkeMYAQAAiiKritlVqlTRxo0b9ccff6hUqVLy8vIyH0tJSdH48eP1yCOP2CxIAAAAgBwUAAAAAAAAKFqsKmZLkouLS7YPC0uVKqXQ0NA8BQUAAABkhxwUAACgaLpw4YK++eYbFStWTM2bN1fZsmV14sQJvffee/r555+VnJysRx55REOHDlVISIi9wwUAAICN5KiY/dNPP1l18Xr16ll1HgAAAEAOCgAAAEn6448/1L17dyUkJEi6sS52ZGSkBgwYoMTERPn4+Oj69es6dOiQBg0apP/85z9q0KCBnaMGAACALeSomN2rVy+ZTCbztmEYFtu3c/jwYesjAwAAQJFGDgoAAABJmjNnjpydnTV//nzdd999mjp1ql588UV5eHho1apVqlixoiQpLi5OvXv31oIFCyhmAwAA3CNyVMxeunSpxXZqaqreeecdXb16Vc8884x8fHwkSbGxsVq5cqXc3Nz06quv2j5aAAAAFBnkoAAAAJCkX375Rd27d1ezZs0kSa+88oq6d++uN99801zIliQfHx9169ZNH330kb1CBQAAgI3lqJhdv359i+0pU6bIxcVFK1asUPHixc37W7ZsqR49eqhnz5769ttv1bhxY9tGCwAAgCKDHBQAAADSjfWyvb29zduZP1eqVClLWy8vLyUlJRVYbAAAAMhfTtactHbtWnXq1MniIWImNzc3derUSWvWrMlzcAAAAEAmclAAAICi6fr163J2djZvOzndeKSZ3RI0mccAAABwb7Aqu0tJSdGFCxdue/zChQtKSUmxOigAAADgVuSgAAAARVd2hevs9gEAAODekqNpxm8VHByspUuXqlatWmrTpo3FsU2bNmnp0qUKCQmxSYAAAACARA4KAABQlL3++uuaMGGCxb7BgwdnGYl9/fr1ggwLAAAA+cyqYvYbb7yh3r17a8SIESpfvryqVKkiSfrzzz91/vx5eXt7a/z48TYNFAAAAEUbOSgAAEDR1KVLF3uHAAAAADuxqphdsWJFrVmzRp999pl27dqlM2fOSJKqV6+u/v3765lnnlGJEiVsGigAAACKNnJQAACAomnKlCn2DgEAAAB2YlUxW5KKFy+uPn36qE+fPjYL5sSJE4qMjNSBAwd07Ngx+fr6at26debjSUlJWrx4sXbu3Knjx4/L1dVVAQEBGjVqlPz9/c3tTp06pVatWmW5fp06dbRixQqbxQsAAICClR85KAAAAAAAAADHZHUxOz8cO3ZMO3fuVJ06dZSRkSHDMCyOnzlzRp9//rmeeuopjRw5UteuXdN//vMfdevWTatWrVK1atUs2r/88stq0KCBebtkyZIF8jkAAAAAAAAA2MaVK1dyfY6np6fN4wAAAEDBs7qY/e233+qLL77QyZMnlZCQkKXwbDKZtHXr1lxds2XLlgoNDZUkRURE6NChQxbHvby8tGXLFrm5uZn3NWzYUC1bttSnn36aZY3EKlWqKDAwMFcxAAAAwHHlRw4KAAAAxxYcHJzrcw4fPpwPkQAAAKCgWVXMXrRokd577z3dd999CggIsJjiOy+cnJzueNzd3T3LvpIlS8rb21vnz5+3SQwAAABwTPmVgwIAAMCxGYahEiVKqFmzZnr44YftHQ4AAAAKkFXF7KVLl6phw4ZasGCB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mwYKAACAoo0cFAAAAMOHD9e6desUERGhSZMmqVWrVnryyScVEhJizg8BAABw77CqmC1JQ4cO1ZNPPqktW7bo5MmTkiRvb2+FhobK29vbZgECAAAAmchBAQAAirbBgwdr8ODB+u2337R27VqtX79e69at03333af27durY8eOql27tr3DBAAAgI1YXcyWbjw47N+/v61iAQAAAO6KHBQAAAA1a9ZUzZo19dprr+n777/X2rVrtXr1an388cfy8fHRk08+qSeffFIPPfSQvUMFAABAHuRp7p39+/dr/vz5mjx5so4fPy5JSklJ0a+//qp//vnHFvEBAAAAFshBAQAAkMlkMumxxx5Ts2bNVKdOHRmGoRMnTmj27NkKDQ3V8OHDdf78eXuHCQAAACtZNTI7NTVVL7/8srZt2ybDMGQymdSiRQtVrVpVTk5O6tevn/r27asXX3zR1vECAACgiCIHBQAAwM0yR2Rv3rxZSUlJ8vPz05gxY9SxY0c5Oztr9erVmj9/vl577TUtWbLE3uECAADAClYVsz/44AN98803mjhxoho0aKAnnnjCfKx48eJ64okntG3bNh4kAgAAwGbIQQEAAPD7779rzZo1Wr9+vc6fP6/7779fTz/9tDp37ix/f3+Ltv3791fx4sU1bdo0O0ULAACAvLKqmL1+/Xo9++yz6tatmy5fvpzleLVq1bRx48Y8BwcAAABkIgcFAABA586dVaJECbVq1UqdO3dW48aN5eR0+5UUq1evrsDAwIILEAAAADZlVTH74sWLWd50vJmzs7OuXr1qdVAAAADArchBAQAAMHnyZLVt21YlS5bMUfuGDRuqYcOG+RwVAAAA8svtX1u8gwcffFCxsbG3Pf7LL7/I29vb6qAAAACAW5GDAgAAFG0pKSlatmyZ1qxZY+9QAAAAUECsKmZ36NBBn332mfbt22feZzKZJEkrVqzQhg0b1LlzZ5sECAAAAEjkoAAAAEWdm5ubTp06Zc4BAQAAcO+zaprxwYMH68CBA+rZs6d8fX1lMpk0ZcoUxcfH6+zZs2rWrJn69u1r41ABAABQlJGDAgAAoEmTJvruu+/07LPP2jsUAAAAFACritmurq5atGiR1qxZo02bNikjI0Opqany9/fXyJEj1alTJ96QBAAAgE2RgwIAAGDIkCEaMWKEXn31VXXr1k2VK1dW8eLFs7Tz9PQs+OAAAABgc1YVs6UbUzp26tRJnTp1smU8AAAAwG2RgwIAABRt7du3lyTFxMRo3bp1t213+PDhggoJAAAA+cjqYvatDMPQ999/r9TUVD322GMqVaqUrS4NAAAAZIscFAAAoGh56aWXmI0HAACgCLGqmD19+nT98ssv+vjjjyXdeIjYr18/ff/99zIMQw899JCWLFkib29vmwYLAACAooscFAAAAMOGDbN3CAAAAChATtactGnTJgUEBJi3N27cqOjoaI0cOVLz58/X9evXNWvWLJsFCQAAAJCDAgAA4FZXr17V1atX7R0GAAAA8olVI7PPnTunKlWqmLe3bNmi6tWra9CgQZKk7t27a/ny5baJEAAAABA5KAAAAG44c+aMZs2apZ07d+ry5cuSpLJly6pZs2YaOnSoKlWqZOcIAQAAYCtWFbOLFSum1NRUSTemd4yOjlbnzp3Nx++77z5zIgkAAADYAjkoAAAA/vjjDz333HNKTExUo0aNVK1aNUlSbGysvv76a+3YsUOffvqpfH197RwpAAAAbMGqYvbDDz+sNWvWqGPHjtqyZYuuXLmiZs2amY+fOXNGZcuWtVmQAAAAADkoAAAA3nvvPTk5OenLL7+Uv7+/xbGjR4+qb9++eu+99zRnzhw7RQgAAABbsqqY/dJLL2nw4MFq2LChJKlu3brmnyVp586dql27tm0iBAAAAEQOCgAAAOmnn37S888/n6WQLUl+fn7q0aOHlixZUvCBAQAAIF9YVcxu3LixvvzyS+3evVseHh4KCwszH4uPj9fjjz+uVq1a2SxIAAAAgBwUAAAA6enpKlGixG2Pu7m5KT09vQAjAgAAQH6yqpgtSdWrV1f16tWz7C9TpozGjh2bp6AAAACA7JCDAgAAFG01atTQypUrFR4ertKlS1scS0pK0hdffKGaNWvaKToAAADYWo6K2SkpKXJzc7PqBnk5FwAAAEUXOSgAAABuNWzYMA0YMEDt2rVT165dVbVqVUlSXFycvvzyS125ckUTJkywb5AAAACwGaecNGrevLlmz56t8+fP5/jC586d0wcffKDmzZtbGxsAAACKMHJQAAAA3Co4OFgLFizQ/fffrwULFmjs2LEaO3asFi5cqPLly2vhwoVq2LChvcMEAACAjeRoZPYbb7yh2bNna+7cuapbt66Cg4P16KOPysvLSx4eHjIM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UR4eHpKubpB8fX01duxYeXt768SJE5o1a5ZSU1M1adIkSdLu3bv10ksv6YknnlBsbKwuXbqkAwcOWG1I/vWvf+mDDz7QM888o8aNG+u7777T1KlTVa5cOfXp00e9evXS6dOnlZCQoGXLlkm62qS5kW+//VZly5ZVWFiYzXVfffWVMjMzFRcXp3r16mnSpElKSEhQcHCwzdjRo0erd+/eGjx4sDw9PS1v4PHjx6t79+6aM2eO3NzcdPHiRfXr109ubm6aOHGiypUrp7ffflt9+/bVxx9/rGrVqikqKkozZ85UcnKyatWqpcTERF26dEl//PGHfv75Z9WpU0dJSUlKTU212pjXqVNHPj4+2rZt2y0djZSbm6vvvvtOHTp0kLu7+03HNmjQQG5ubho3bpyeffZZRUZGWl7za8XExMjf318JCQm67777LMvNp+7p0qXLTdezffv2G/4O0/XMG7OqVavq+PHjCgwMVLdu3XTXXXdZfhcpMzNTQ4cOtbrd9OnT1b59e02fPl379u3TrFmzdM8996hPnz6SZAk49913n8aOHauTJ0/mG3AKep9I0qRJk/TNN99o9OjRqlGjhlJTU20CY3G9njdj3l6cPn1ar7/+uq5cuWLZIb744ouWcVeuXFHLli3VvHlzff755+rdu7fluvT0dC1YsECNGze2LBs1apSqVaumOXPmWLZB5cqV00svvVToGr/99ltt3LhRixYtUqtWrSRJLVu2VGpqqmbNmqXY2Fjdc8898vPz06lTpxQeHl7gfR48eDDf97F0deefm5urvLw8HT16VFOmTJG3t7datGihMmXKqGfPnlqzZo1GjhxpeWxr1qzRAw88IG9vb8v9JCQkWI7qdXd3V8eOHfXxxx/rjz/+0F133WW1znbt2un555+3XDbP4fr16+tf//qXZfmGDRt04MABLVy4UK1bt5Z09YNhhw4dNG/ePM2aNUs1atRQ9erVtWfPHsXExGjv3r2qUqWKwsLCtHv3bsXGxmrfvn3KyclR06ZNreqoXLmyzp07Z7PfKVOmjEwmk9avX69Ro0apZ8+eGjZsmFJTU/Xmm2/qwoULltO0XLp0SVeuXNGoUaPk5+en3377Te+8846GDBliOVJ39uzZevrpp9WkSRNL+L3nnnss69u4caN++eUXTZgwQefPn9ekSZP06quvWtaRnZ2tgQMH6uzZsxo5cqSqVq2qjz/+WIMHD7Z8SL/2tU5JSdGIESPk7e19ww8A+/fvV2ZmpiIjI22uMwf7Z5991irYm//gca3rt/lm06ZNU2xsrN58803l5eVZgn1ycrLGjBmjypUr691339XAgQP1/vvvq1GjRlbBPiYmxhLsPTw8tHfvXsXGxlqC/eOPP57v4yqMaz/4FGY/YBYREXHTDxNwLuRL8iX5knxJviRfSiWfL93c3LR//36r/QjZkmxpD7KlayFbki1LO1tK5EvyJfmSfEm+NCNflly+pJltp8zMTDVs2DDf67y8vGyWTZ061er3Ae655x59+eWXRV5/tWrVdOjQIcvlvn37Wv6fl5en6OhoHTt2TKtXr1Z0dLT8/Pwsb+qGDRta/TZIcHCwXnjhBcvlJk2ayNPTU/Hx8ZowYYI8PT114MAB+fr6Wo279ii/X3/9VStWrNDEiRMtO6MWLVro0qVLmjNnjnr37q27775bd999t+X3NAryww8/KCAgIN8Ak5CQoKpVq6pZs2Zyc3NTTEyMEhIS9Nxzz8lkMlmNffTRR/X0009bLu/cuVOS7UZ++fLlOnXqlD799FPVqVNH0tUjkdq2batly5YpPj5ejRs3loeHh/bs2aNatWpp9+7datSokS5fvqxdu3apTp062rNnj7y8vGzmR3BwsL7//vsCH/fNpKWlKTs7W9WrVy9wbEBAgOLj4/XGG29owIABcnd3V1hYmDp37qw+ffqobNmrb3c3Nzd16dJFH374oS5fvqxy5cpJuvocN2vWLN9TY5gZhqGDBw/q/vvvz/d68wehy5cva8eOHXrvvfcUERGhqlWrqmrVqpajQg3DUGRkpC5duqQVK1bYhMGwsDDLb9W0bNlSO3fu1Oeff24Jg/Pnz7cr4BT0PpGuzru4uDj16NHDMrZr1642j604Xs8buX774uPjowkTJlhCxv79+zVjxgwdPnzY6mjG609R4+vraxUEJen7779Xu3btrD6QdurUqUhhcNu2bfL19VVMTIxVSGnRooVefvllXblypdAffM+cOWM5AvZ6W7ZssXpeAgICNGvWLFWuXFnS1d+Wfuedd/TNN9+oTZs2OnLkiA4dOmT1Ps/NzdX69esVGxurihUrSrp6VNqqVav05Zdf6qGHHrJa57XbuZst37NnjypUqGB5jSTJ3d1dDzzwgNVRk02bNrUcJbd7925FRUUpLCxM69atsyy79957LUexmpUvX155eXk225UpU6aoe/fumjJlirp06WIVUP39/fX0009ryJAhqlevnvz8/KyOtMvNzVXNmjX12GOPKSkpSYGBgQoJCZGHh4cqV66c73baMAy9/fbblu1ySkqK5s2bp7y8PLm5uemTTz7RkSNH9N///ld169aVJLVu3Vq//PKL5s6dqxkzZljuKz09XR9++GGBR7H+8MMP8vLyUq1atWyuc8Vgb4+bffApzH7ArH79+lq+fLkuXrx40z/EwPHIl+RL8iX5knxJvjQr6Xx55coVHTp0yOrxky3JlvYgW7oOsiXZ0hHZUiJfSuRLiXxpRr4kX5IvC1aUfEkz207ly5fXihUrbJavXr0639M99O/fX927d7dcNu9wi8owDKvgc/r0ab311lvavn27UlNTZRiGJN0wtF5/X8uWLdPq1at18uRJXb582XJdcnKygoKCFBISorS0NMXHx6tbt26W0GhmPmqiQ4cONjuFBQsW6LffflONGjUK9RjPnDmjSpUq2Sw/d+6ctm3bZjkSUbq6MX/hhRe0d+9emzdfYTbm9erVs4RB6erOtEWLFpZTaJQrV06hoaHavXu3evTooT179qhZs2a6dOmSdu/erT59+mj37t0KDw+3hC2zSpUqKTU1tVDPwY1cH3pv5PHHH1eXLl20ceNG7dq1Szt27NA///lPffHFF1q2bJnl+YuLi9OyZcu0adMmderUSSdOnNChQ4esNpL5SU9PV3Z2ttUHjGtd/0GoZcuWlt8xuXz5subNm6dPPvlEv/32m9VvRVy/MTcfNWdWp04dffvtt5bL9gYce94nISEh+s9//iN/f3+1bt1aQUFB+T624nw9r2fevphMJlWqVEnVqlWzvFanTp3SE088oUaNGmnixImqUqWK3N3dNXjwYKv3riRLSLpWamqq/vKXv1gtq1ChQpG2SefPn1daWtoNtzOpqam6++67C3Wf2dnZNzxiKzIyUmPHjlWZMmVUtWpVm8dRs2ZNtWzZUh9++KHatGmjNWvWqGbNmoqJibGM2bZtm86dO6e2bdvqwoULkqSgoCDL0b3Xh8Hr13Gj5RcuXMh3bOXKlS2nzJKkZs2a6V//+pdycnK0e/du9erVS40bN9Ybb7yhrKws7dmzJ98AYZ7bH374odXyWrVqKSkpSSkpKXrxxRettr/mD8wHDx5UvXr1JF09xczSpUv1yy+/WJ3G58SJEwoMDMz3sV4rKirK6kN6nTp1lJOTo7Nnz8rf31/btm1TUFCQAgICbPYFH3/8sdV9BQUF2XU6ptTU1Hz3Ba4a7O1xsw8+//vf/yTZvx+Qrm6vDMPQ2bNn+YOjkyNfki/Jl+RL8iX50qyk82XZsmVVvnx5q9Prki3JlvYgW7oOsiXZ0pHZUiJfki/Jl+RL8iX50j5FyZc0s+3k5uZmOQ/8tTZv3pzv+Lvvvjvf8UV1+vRpy4Y+Ly9Pf//735WRkaHhw4fr3nvvlaenp2bOnKnffvutwPtatmyZXn/9dT355JOKjo6Wt7e3fvjhB73yyiuWnUvz5s01ZcoULV++XIMGDVK5cuXUsWNHvfjii/L19dX58+dlGIbVRvdaRQmE2dnZ+R7Z+Nlnnyk3N1exsbGWjXl0dLQ8PDz0ySef5Ht63vzktzHPb+xf/vIX/fTTT5bLUVFR+uyzzyRJe/fu1V//+lddvnzZEnL27Nmjhx9+2OZ+3N3dbXbWheXr66ty5crp1KlTdt/G399fvXv3Vu/evZWTk6MJEyZo7dq12rRpk9q3by/p6pGDAQEBSkhIUKdOnZSQkCAPD498f+fhWubHk9/rJP35QcjDw0M1atSw2hC98cYb+uCDD/Tss8+qUaNGqlixojZs2KC3335bly9ftgqD5o29mbu7u9UpeOwJOPa+T8aPHy8fHx8tWbJEU6ZMUbVq1fT000/rscces6nhVl/PG7nR9kWSvvnmG2VmZmr27NmWU8/k5uZaBQ6z/HYY/v7+Onv2rNWyixcv2jwWDw8Pq4AuyWYdPj4+8vPz0/z58/Ot9UYfEm7Gx8fH6hRg16pYsWKB29FevXppzJgx+v333/XJJ5+oX79+Vs/DJ598IkkaO3as5be4zM6fP6+zZ89azaUb7XSvX+7j42PzvErS//73P/n4+FguN23aVFlZWdq5c6eOHDmiqKgo1a5dW+XLl9fOnTv1/fffWx1Va3b58mWZTKZ8H//PP/8sSXr22WfzrdU8v7/88ku98MIL6t27t0aNGiVfX1+lpqbq2WeftXsuX3u6I+nP97759ufPn9fhw4fz/YBw/VGuN9o2X+/y5cv5bmNcNdjb42YffIqyHzA/f9f+Tg6cE/mSfCmRL8mX5Evy5Z91l2S+lK5uy65//GRLsmVByJaug2xJtpRKP1tK5Esz8iX58kbIl9bIl1eRLwuXL2lmu4Dz58/r4MGDlh31L7/8osOHD2vOnDlWp0ux94Vfv3692rVrp9GjR1uWmTcw13rwwQf14IMP6ty5c9qwYYMmTZqksmXL6rXXXpOPj49MJpP+/e9/53tUkj1HzVzPx8dHKSkpNsvNR5cMGDAg38cybtw4u87Fn9/GPCkpyWbc2bNnrTbmUVFReuedd7Rjxw6lp6erSZMmys7OVmpqqnbs2KGUlJR8NwIZGRny9fUtsK6bKVu2rJo0aaJvv/1Wubm5NkdQFsTd3V0DBgzQ2rVr9fPPP1vCoHT16Mb58+crIyNDCQkJatOmjU0Iu5758Zg3xte72Qeh9evXq3fv3lanUdqyZUuhHo+ZPQHH3vdJxYoV9dJLL+mll17Sjz/+qOXLl2vixIkKCgqyel2L4/UsikuXLslkMlm99uYPSfYICwvTpk2bLDsb6eprcb27777bZjuwbds2q8stWrTQwoUL5e7uftPf3ilMcA4MDNTx48ftGpuf9u3by9vbW6NHj1Z6erp69uxpuS4rK0sbNmzQ/fffr/79+1vd7n//+5+ee+45rVu3Tv369Sv0eiMjI7Vo0SJt3brVciRubm6uvvrqK6vfSwkMDJS/v7/mzZsnHx8fy+lszLe/fPmy1W9WmWVkZFj9Vsq1zPNwwoQJ+f5Ol/nouvXr16tBgwaWD6+StGvXrkI/1pvx8fFRcHBwgUdFS/YfnXejDwiuHOwLcrMPPkXZD5i30Y7YZsF1kC/Jl+RLa+RL8qXZ7Zov8/Ly8t2Oki3JlgUhW8IeZMs7N1tK5MsbIV+SL83Il9bIlzdfH/kyf/n/pRxOIy8vT6+99ppycnL0t7/9TdKfR5VcG4JSUlK0b98+q9uar7/2iDDp6s7l+gBlfqPlx8/PT7169VLLli0tG23zb4ekpaUpNDTU5p/5iLbrj0i7mcDAQMvvAlz/uB599FEtX77c6t/YsWOVlpamb775xq77v15kZKSOHj1qtSNKT0/X9u3brTbmERERKlu2rObOnasGDRqoQoUK8vPzU926dTV37ly5u7vn+3sNKSkpRQrG1xs4cKBSU1P1zjvv5Hu9OVClpaXlGxDMv0vi7+9vtTwuLk7Z2dmaPn26kpKS1K1btwJrKVeunKpXr27zOtnj8uXLVvPuypUr+vTTTwt9P9KfAefKlSuWZdcHHHvfJ9cKDg627GiuD0bF9XoWlvkI4rFjx2rHjh1avny5pk2bZnPU2Y08/fTT+u233/Tss89qy5YtWrlypebOnWtzmp6OHTtq7969mj17trZt26bXXntN+/fvtxrTsmVLtW3bVk8++aSWLl2qHTt2aOPGjZo/f77VKZLq1KmjlJQUJSQk6IcffrjpfGnSpIl+/PFHm6Mq7eXu7q6HHnpIu3fvVosWLaxOBbNhwwZlZmaqX79+io6OtvrXtWtXhYSE5HuqNXu0adNGYWFhev755/Xhhx9q8+bNGjx4sM6cOaPBgwdbjY2MjNSuXbusPlw0bdpUu3bt0t13353v76ucOXPmhs3s2rVr6+6771ZycnK+21/z70bZu62/laN2W7RooeTkZFWpUiXfWooiMDBQ586dszq10LXB/vp9wbRp05Sbm2s5ZU5hRUZG6uLFi9q6datlmb3B3s3NrcBgXxzs3Q+YpaSkqGLFijbbfcCMfEm+JF/aIl+SL81u13yZl5dntR0yI1uSLa9HtkRhkS3JlhL5Mj/kS/KlGfmSfEm+vPV8yTezncyhQ4dUsWJFXbp0SUlJSVqzZo0OHTqk559/XhEREZL+3Bi8+eabysvLU2ZmpmbOnGlzrnvz76msXLlS999/v8qXL6/g4GC1aNFCy5cv14oVKxQQEKCPP/5Yv/zyi9VtZ86cqbS0NDVr1kx/+ctfdPToUX3zzTeWIwwDAwP1t7/9Tf/3f/+nQYMGqXHjxsrJydGJEye0c+dOzZ0711JDbm6uli1bpoiICFWoUEG1a9fO97E3adJEc+bM0enTpy2/W2HeUD/55JM2G8zIyEjNnz9fCQkJateuXaGf6549e2rp0qUaPHiwRo4cqXLlyuntt99W2bJl9fjjj1vG3XXXXWrQoIF27dqlgQMHWpY3bdpU7733npo0aWKzY83MzNTx48dveCqNwoiNjdWTTz6pWbNm6dixY+ratasqVaqkkydPas2aNcrIyFBsbKy+/fZbTZ06VT169FBYWJjKli2rxMREzZs3T9WrV9cDDzxgdb+BgYFq2LChVq5cqYoVK97wNxqu16RJEx06dKjQj6NFixb64IMPVLduXVWqVEn//ve/7f6wcL2nn35ajzzyiJ599ln16dNHJ0+e1KJFi6xeB3vfJ48++qgeeOAB1atXT2XKlNFHH30kd3d3qx13cb6ehRUcHKxJkyZp9uzZGjx4sBo0aKAZM2Zo5MiRdt0+JCREM2bM0NSpUzV06FDVq1dPb731lgYNGmQ1rlevXvr111/13nvvaenSperSpYuee+45q6Ogpavbhvnz5+u9996z7HTq1atndUThI488ogMHDujVV19VWlqaevToocmTJ+dbX/v27fXKK69o165datmyZeGenP/vgQce0KJFi2xOmZWQkKDq1asrOjo639s99NBDeu211/Trr78Wep1lypTR/PnzNWXKFL3xxhvKzMxUw4YNtXjxYjVq1MhqbLNmzbR+/XqrOdWsWTNJyvfI6EOHDikrK0vly5fPd90mk0nx8fEaM2aMMjMz1aZNG3l6eurUqVPasmWLRo0apcDAQLVo0UKvvPKK5syZo4iICG3ZskU7duywub/atWvr22+/1bZt2+Tt7a2aNWvm+7sv+XnooYf0/vvvq3///nriiScUEBCgjIwMHT58WDk5OTbzxx5NmjRRXl6eDh8+bHl+rg/211u4cKESEhKKdJTqtcF+9OjRqly5st59912dOXNGM2fOtBobGRmp9evXq0OHDpZlTZs21dSpU28Y7IuDvfsBs4MHDyoiIuKGB0TgzkO+JF9ej3xpi3xJvrzW7ZYvz5w5I0n5npaVbEm2JFuisMiWZMv8kC9tkS/Jl9ciX5IvyZe3mC8NFGjmzJlGeHi43dcFBQUZCxcuLNQ61qxZYwQFBVn+hYeHGx06dDDi4+ON77//3mb8999/bzz88MNGaGio0aFDB+M///mP8cILLxhdu3a1Gjdr1izjvvvuM+rXr2+0bdvWMAzDuHjxohEfH29ERUUZUVFRxrhx44yNGzcaQUFBxoEDBwzDMIyNGzcajz/+uBETE2M0atTIuP/++42ZM2caOTk5lvvOy8sz3n33XSMuLs5o2LCh0axZM6N3797GkiVLLGNycnKMl19+2WjRooURHBxs9O3b94bPweXLl41mzZoZq1atsiyLi4sz+vTpc8Pb/Otf/zIaN25sXLx40fIcnj171mrMt99+a/XYrnXy5Elj6NChRkREhNG4cWNj4MCBxpEjR2zGTZ482QgKCjK+/PJLy7JPP/3UCAoKMt58802b8Z9//rkRHh5uZGRk3LD2wvryyy+NAQMGGE2bNjUaNmxotG3b1hg/frxx4sQJ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\n" + }, + "metadata": {} + } + ] + } + ] +} \ No newline at end of file