From 4583bb217c02872e2c27c12740c8d6a9b7323394 Mon Sep 17 00:00:00 2001 From: Mon <91261297+mon-jai@users.noreply.github.com> Date: Mon, 8 Dec 2025 01:31:36 +0800 Subject: [PATCH 1/2] Add machine learning benchmark report Due to a bug in the GitHub renderer, the notebook currently couldn't be previewed on GitHub. https://github.com/orgs/community/discussions/155944 --- reports/.gitkeep | 0 reports/machine_learning_benchmark.ipynb | 4867 ++++++++++++++++++++++ 2 files changed, 4867 insertions(+) delete mode 100644 reports/.gitkeep create mode 100644 reports/machine_learning_benchmark.ipynb 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..45d623a --- /dev/null +++ b/reports/machine_learning_benchmark.ipynb @@ -0,0 +1,4867 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "provenance": [], + "gpuType": "T4", + "toc_visible": true + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "language_info": { + "name": "python" + }, + "accelerator": "GPU", + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "e9b09ac7c2174367b05883f3d3aff6f9": { + "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_3587d23b09674e159c548c0bde943697", + "IPY_MODEL_7a44cf5adb954842af61929ac583fa64", + "IPY_MODEL_5ea5a900d66a495b83c3960f4653ec2d" + ], + "layout": "IPY_MODEL_ae56cf5f251a486cbc353019959e499d" + } + }, + "3587d23b09674e159c548c0bde943697": { + "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_ecd8422537864ec6abaa7cae1856f9df", + "placeholder": "​", + "style": "IPY_MODEL_eb783c612bf74aa082cbf3e21bfc1e01", + "value": "README.md: " + } + }, + "7a44cf5adb954842af61929ac583fa64": { + "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_e45393cafd624c7596f2e3c2e71702a0", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_92799625f0ca4c8ba569fc606a5ac338", + "value": 1 + } + }, + "5ea5a900d66a495b83c3960f4653ec2d": { + "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_0b4f9fabaa7a42c7b237b4212a725882", + "placeholder": "​", + "style": "IPY_MODEL_9c691f808bf14ffb816825cc553ed20b", + "value": " 6.81k/? [00:00<00:00, 241kB/s]" + } + }, + "ae56cf5f251a486cbc353019959e499d": { + "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 + } + }, + "ecd8422537864ec6abaa7cae1856f9df": { + "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 + } + }, + "eb783c612bf74aa082cbf3e21bfc1e01": { + "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": "" + } + }, + "e45393cafd624c7596f2e3c2e71702a0": { + "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" + } + }, + "92799625f0ca4c8ba569fc606a5ac338": { + "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": "" + } + }, + "0b4f9fabaa7a42c7b237b4212a725882": { + "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 + } + }, + "9c691f808bf14ffb816825cc553ed20b": { + "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": "" + } + }, + "b198f8bede6f4f3f8ab85a5c23410281": { + "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_d8b910cc334641b082407da4cd5bffb6", + "IPY_MODEL_722aed840ffe4a43b0bb096cf9990f69", + "IPY_MODEL_d65f247cab59485caa160e3ab90bf026" + ], + "layout": "IPY_MODEL_20918cbed5c943d5bcb17fa88f927980" + } + }, + "d8b910cc334641b082407da4cd5bffb6": { + "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_1b69a97f14254e1da5f66c4154d8c0b2", + "placeholder": "​", + "style": "IPY_MODEL_46561cbd61a74cad90f78a31925509c7", + "value": "amazon_polarity/train-00000-of-00004.par(…): 100%" + } + }, + "722aed840ffe4a43b0bb096cf9990f69": { + "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_465070b9e6874eff863e01bd75b01457", + "max": 259761770, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_30e99ca83c434ce4a6c10eb312cd6dfc", + "value": 259761770 + } + }, + "d65f247cab59485caa160e3ab90bf026": { + "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_e7276b51b1ea417390c894ae0e541ebd", + "placeholder": "​", + "style": "IPY_MODEL_95798fe15239480ba87d19192d296187", + "value": " 260M/260M [00:07<00:00, 85.6MB/s]" + } + }, + "20918cbed5c943d5bcb17fa88f927980": { + "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 + } + }, + "1b69a97f14254e1da5f66c4154d8c0b2": { + "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 + } + }, + "46561cbd61a74cad90f78a31925509c7": { + "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": "" + } + }, + "465070b9e6874eff863e01bd75b01457": { + "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 + } + }, + "30e99ca83c434ce4a6c10eb312cd6dfc": { + "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": "" + } + }, + "e7276b51b1ea417390c894ae0e541ebd": { + "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 + } + }, + "95798fe15239480ba87d19192d296187": { + "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": "" + } + }, + "e875ad47edfa447bae6f45ad5d17714a": { + "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_546746a37b414bbf9dd081a4038a408f", + "IPY_MODEL_ea1ba4cbd8c746bd9d7db42bac7a8839", + "IPY_MODEL_4c775268eec448b39638db557958b029" + ], + "layout": "IPY_MODEL_d0cf8be2ce0345059651084052734a59" + } + }, + "546746a37b414bbf9dd081a4038a408f": { + "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_d73a05d171444e66bddf66596c4d68f6", + "placeholder": "​", + "style": "IPY_MODEL_66e3a13e9bf04ded8303be8e431c21e8", + "value": "amazon_polarity/train-00001-of-00004.par(…): 100%" + } + }, + "ea1ba4cbd8c746bd9d7db42bac7a8839": { + "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_f209f065e7c744a08a3457726781338c", + "max": 258363554, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_bbc5c01c4a17435790467edebfae6167", + "value": 258363554 + } + }, + "4c775268eec448b39638db557958b029": { + "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_ec2d264d3791489f807207045fcda35d", + "placeholder": "​", + "style": "IPY_MODEL_ce7fafb4755d442e82c14c451b8159df", + "value": " 258M/258M [00:05<00:00, 121MB/s]" + } + }, + "d0cf8be2ce0345059651084052734a59": { + "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 + } + }, + "d73a05d171444e66bddf66596c4d68f6": { + "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 + } + }, + "66e3a13e9bf04ded8303be8e431c21e8": { + "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": "" + } + }, + "f209f065e7c744a08a3457726781338c": { + "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 + } + }, + "bbc5c01c4a17435790467edebfae6167": { + "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": "" + } + }, + "ec2d264d3791489f807207045fcda35d": { + "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 + } + }, + "ce7fafb4755d442e82c14c451b8159df": { + "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": "" + } + }, + "c4eda03bbf964c0d8de7758722619fa4": { + "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_22478687fe0448b69baf6f7dd908f3fc", + "IPY_MODEL_f0de16e3ad7a429292a5cb6b379c1ab3", + "IPY_MODEL_9a2fca6103a64a72875098081b181ab2" + ], + "layout": "IPY_MODEL_8459c016a078475b877bea4b5a787a66" + } + }, + "22478687fe0448b69baf6f7dd908f3fc": { + "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_fe593dcb41ad4ae8a82bbec02aa3727f", + "placeholder": "​", + "style": "IPY_MODEL_31da5a4d89d442f6ac10d2d3e998b9dc", + "value": "amazon_polarity/train-00002-of-00004.par(…): 100%" + } + }, + "f0de16e3ad7a429292a5cb6b379c1ab3": { + "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_9e985af96ba84ce5942fdc0e6b433e36", + "max": 255471883, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_3290118fcc4343f48290853a7ca7a9b2", + "value": 255471883 + } + }, + "9a2fca6103a64a72875098081b181ab2": { + "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_bec15ef07c874e0f9adc7777eeffaeb9", + "placeholder": "​", + "style": "IPY_MODEL_3b57c2f561f946c7885e517fc765bde5", + "value": " 255M/255M [00:04<00:00, 76.8MB/s]" + } + }, + "8459c016a078475b877bea4b5a787a66": { + "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 + } + }, + "fe593dcb41ad4ae8a82bbec02aa3727f": { + "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 + } + }, + "31da5a4d89d442f6ac10d2d3e998b9dc": { + "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": "" + } + }, + "9e985af96ba84ce5942fdc0e6b433e36": { + "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 + } + }, + "3290118fcc4343f48290853a7ca7a9b2": { + "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": "" + } + }, + "bec15ef07c874e0f9adc7777eeffaeb9": { + "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 + } + }, + "3b57c2f561f946c7885e517fc765bde5": { + "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": "" + } + }, + "466ee7b9b4314fe185f2e95e65787368": { + "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_00673fe888754d00ac42786670672893", + "IPY_MODEL_1c97876e5aa24717bf2f1a5ab50b53ed", + "IPY_MODEL_5072c9d6eacd4987aa8768eaa3d14ee0" + ], + "layout": "IPY_MODEL_796c152c3d1d490996adbcce33e9dd67" + } + }, + "00673fe888754d00ac42786670672893": { + "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_1eaa76f0d53045929f88c1670ffce1ff", + "placeholder": "​", + "style": "IPY_MODEL_8e4a0faca6964389816e6c20c8e7ef5d", + "value": "amazon_polarity/train-00003-of-00004.par(…): 100%" + } + }, + "1c97876e5aa24717bf2f1a5ab50b53ed": { + "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_a540fd76d900440fa6fb3429e2e535e0", + "max": 254410930, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_07620dcc7b014eeab2bd847df1ec150b", + "value": 254410930 + } + }, + "5072c9d6eacd4987aa8768eaa3d14ee0": { + "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_ee23a71e4a144e63ba9d42413da7ea5e", + "placeholder": "​", + "style": "IPY_MODEL_cc3117a4286941a3b52608ae183a017b", + "value": " 254M/254M [00:01<00:00, 228MB/s]" + } + }, + "796c152c3d1d490996adbcce33e9dd67": { + "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 + } + }, + "1eaa76f0d53045929f88c1670ffce1ff": { + "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 + } + }, + "8e4a0faca6964389816e6c20c8e7ef5d": { + "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": "" + } + }, + "a540fd76d900440fa6fb3429e2e535e0": { + "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 + } + }, + "07620dcc7b014eeab2bd847df1ec150b": { + "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": "" + } + }, + "ee23a71e4a144e63ba9d42413da7ea5e": { + "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 + } + }, + "cc3117a4286941a3b52608ae183a017b": { + "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": "" + } + }, + "195bb41efd7341298f9e770444b20914": { + "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_82da0b7625254032adb1490ee13301fd", + "IPY_MODEL_4ff2c74d3b5a45d8b604f8924be05464", + "IPY_MODEL_c29c521b900243b2aad1b954b1cf001b" + ], + "layout": "IPY_MODEL_d0e748ae3c7f49d3b1482ac2a36ea9e7" + } + }, + "82da0b7625254032adb1490ee13301fd": { + "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_e074cad8fbc045a3880aa9703e8d08b2", + "placeholder": "​", + "style": "IPY_MODEL_ea4bd15944954cc1a8f6bcc0334b4bbd", + "value": "amazon_polarity/test-00000-of-00001.parq(…): 100%" + } + }, + "4ff2c74d3b5a45d8b604f8924be05464": { + "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_d7e73f7d0b64487e864eef85ea7a6c96", + "max": 117422360, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_f4515ac1497e43df8262e82c2548f1b2", + "value": 117422360 + } + }, + "c29c521b900243b2aad1b954b1cf001b": { + "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_03a21315985d4493b6884a3379f9213d", + "placeholder": "​", + "style": "IPY_MODEL_9245059b9d1746b0b295c7e3098851e0", + "value": " 117M/117M [00:01<00:00, 17.2MB/s]" + } + }, + "d0e748ae3c7f49d3b1482ac2a36ea9e7": { + "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 + } + }, + "e074cad8fbc045a3880aa9703e8d08b2": { + "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 + } + }, + "ea4bd15944954cc1a8f6bcc0334b4bbd": { + "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": "" + } + }, + "d7e73f7d0b64487e864eef85ea7a6c96": { + "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 + } + }, + "f4515ac1497e43df8262e82c2548f1b2": { + "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": "" + } + }, + "03a21315985d4493b6884a3379f9213d": { + "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 + } + }, + "9245059b9d1746b0b295c7e3098851e0": { + "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": "" + } + }, + "142163f8585d4d9b833792771d76960f": { + "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_7ed66d2bce3649729f03175f2dd3ef4e", + "IPY_MODEL_d0bcc429ce54484e9edf5ab92646e333", + "IPY_MODEL_30d7990199ad471da587dafbccacf065" + ], + "layout": "IPY_MODEL_aa04339a34c746a8a7c182fa5017e332" + } + }, + "7ed66d2bce3649729f03175f2dd3ef4e": { + "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_282bf0d0484a40d8999bf5a0f505d1e7", + "placeholder": "​", + "style": "IPY_MODEL_39b9065670204e0499e21e94eb3ada5c", + "value": "Generating train split: 100%" + } + }, + "d0bcc429ce54484e9edf5ab92646e333": { + "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_8efca2469e9b4aec9749b5d71276eea5", + "max": 3600000, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_83ab0aed70bc43de92a73ee9b30df7aa", + "value": 3600000 + } + }, + "30d7990199ad471da587dafbccacf065": { + "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_c3d0bb97b633458d9ecadb548c313f5a", + "placeholder": "​", + "style": "IPY_MODEL_9974b9d4018c407f9c55e530b9cd10f1", + "value": " 3600000/3600000 [00:16<00:00, 193992.69 examples/s]" + } + }, + "aa04339a34c746a8a7c182fa5017e332": { + "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 + } + }, + "282bf0d0484a40d8999bf5a0f505d1e7": { + "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 + } + }, + "39b9065670204e0499e21e94eb3ada5c": { + "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": "" + } + }, + "8efca2469e9b4aec9749b5d71276eea5": { + "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 + } + }, + "83ab0aed70bc43de92a73ee9b30df7aa": { + "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": "" + } + }, + "c3d0bb97b633458d9ecadb548c313f5a": { + "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 + } + }, + "9974b9d4018c407f9c55e530b9cd10f1": { + "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": "" + } + }, + "5863e2cb2ba14a7e80f99c0926b433c9": { + "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_edce6976fecb4b10962a30cf92468498", + "IPY_MODEL_39aa66717d6249449bfec7906c3353bf", + "IPY_MODEL_931dd90e8908487197f8a1d167144df1" + ], + "layout": "IPY_MODEL_60a6f0420dcb445da4ca9d5d7cfbb2dc" + } + }, + "edce6976fecb4b10962a30cf92468498": { + "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_813a118bfc914d1799846f01beb159bd", + "placeholder": "​", + "style": "IPY_MODEL_93225cd1d64844a5b28402aaa581ab0f", + "value": "Generating test split: 100%" + } + }, + "39aa66717d6249449bfec7906c3353bf": { + "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_a6131535305344a98611172811109b45", + "max": 400000, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_f9cac0c062654374a2784ec5feac9b40", + "value": 400000 + } + }, + "931dd90e8908487197f8a1d167144df1": { + "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_b2af4e800994474d80707761c039b69d", + "placeholder": "​", + "style": "IPY_MODEL_b77d676071094802bfbede1cbefa2cc0", + "value": " 400000/400000 [00:02<00:00, 169250.70 examples/s]" + } + }, + "60a6f0420dcb445da4ca9d5d7cfbb2dc": { + "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 + } + }, + "813a118bfc914d1799846f01beb159bd": { + "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 + } + }, + "93225cd1d64844a5b28402aaa581ab0f": { + "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": "" + } + }, + "a6131535305344a98611172811109b45": { + "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 + } + }, + "f9cac0c062654374a2784ec5feac9b40": { + "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": "" + } + }, + "b2af4e800994474d80707761c039b69d": { + "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 + } + }, + "b77d676071094802bfbede1cbefa2cc0": { + "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": "" + } + }, + "9068d0c276964335b73c58216da9656d": { + "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_3895ed82638943758491afccdb828fd9", + "IPY_MODEL_eb4ce1f0c49d458693d225d5620ae3bf", + "IPY_MODEL_2259f89acfaa4ab5aeee9e0f9216ef36" + ], + "layout": "IPY_MODEL_93ddc605f5334f1da787e181266d8bfe" + } + }, + "3895ed82638943758491afccdb828fd9": { + "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_58c813c53d1f492f867718d02ba04a5d", + "placeholder": "​", + "style": "IPY_MODEL_222716afe7fa48a0b655b4c5a9cca846", + "value": "Creating json from Arrow format: 100%" + } + }, + "eb4ce1f0c49d458693d225d5620ae3bf": { + "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_e262d9ec7a4e4dce97d699e7d87b0108", + "max": 3600, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_048c7d4f16ba406a9c80dfb8396feccb", + "value": 3600 + } + }, + "2259f89acfaa4ab5aeee9e0f9216ef36": { + "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_2ad00c27852b4d34b4c0f3254ec07bda", + "placeholder": "​", + "style": "IPY_MODEL_ce68ac2e0389406b97061c1d0833c825", + "value": " 3600/3600 [00:28<00:00, 149.69ba/s]" + } + }, + "93ddc605f5334f1da787e181266d8bfe": { + "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 + } + }, + "58c813c53d1f492f867718d02ba04a5d": { + "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 + } + }, + "222716afe7fa48a0b655b4c5a9cca846": { + "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": "" + } + }, + "e262d9ec7a4e4dce97d699e7d87b0108": { + "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 + } + }, + "048c7d4f16ba406a9c80dfb8396feccb": { + "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": "" + } + }, + "2ad00c27852b4d34b4c0f3254ec07bda": { + "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 + } + }, + "ce68ac2e0389406b97061c1d0833c825": { + "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": "" + } + }, + "6f4b9a0d96cd44d5aef88c9a1746d28a": { + "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_e1ce74de926546f7b7edb785645d94a7", + "IPY_MODEL_b46dc10473594a22a23e6c9bfe635e1e", + "IPY_MODEL_c9991a8fc39d414e95e99da16a734142" + ], + "layout": "IPY_MODEL_a34d936936114a1896f919e5d996e256" + } + }, + "e1ce74de926546f7b7edb785645d94a7": { + "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_8d5f8abe931e469990e70083937b1d86", + "placeholder": "​", + "style": "IPY_MODEL_a2a52084d98d4cbbb066058b24f23596", + "value": "Creating json from Arrow format: 100%" + } + }, + "b46dc10473594a22a23e6c9bfe635e1e": { + "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_b29ecf40cdae4e80be6d937b2b9a6bd6", + "max": 400, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_2464a1ca08fb4726afab6db87dc284ab", + "value": 400 + } + }, + "c9991a8fc39d414e95e99da16a734142": { + "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_c7f99ac5a8924a2fa989e2d7b557abf4", + "placeholder": "​", + "style": "IPY_MODEL_b6d3645d20624cec9e1042651a8a6118", + "value": " 400/400 [00:02<00:00, 222.28ba/s]" + } + }, + "a34d936936114a1896f919e5d996e256": { + "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 + } + }, + "8d5f8abe931e469990e70083937b1d86": { + "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 + } + }, + "a2a52084d98d4cbbb066058b24f23596": { + "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": "" + } + }, + "b29ecf40cdae4e80be6d937b2b9a6bd6": { + "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 + } + }, + "2464a1ca08fb4726afab6db87dc284ab": { + "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": "" + } + }, + "c7f99ac5a8924a2fa989e2d7b557abf4": { + "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 + } + }, + "b6d3645d20624cec9e1042651a8a6118": { + "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": "b32ca55d-d573-4aa8-de68-af2b7a954a1e" + }, + "execution_count": 1, + "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": "7a45e44d-54aa-4b3d-a1b4-37707a570f5d" + }, + "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 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": 2, + "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[91m╸\u001b[0m \u001b[32m3.5/3.5 MB\u001b[0m \u001b[31m194.9 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[31m92.8 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[31m14.2 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 (Optimized for Scale)\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": "9b2ac768-7b40-436e-9f46-92da4b0f3017" + }, + "execution_count": 3, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "✅ Benchmarking utilities ready.\n" + ] + } + ] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "36252453", + "outputId": "0ce19bb0-9685-4f15-b70f-a3ee763b7ba2" + }, + "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": 4, + "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": [ + "e9b09ac7c2174367b05883f3d3aff6f9", + "3587d23b09674e159c548c0bde943697", + "7a44cf5adb954842af61929ac583fa64", + "5ea5a900d66a495b83c3960f4653ec2d", + "ae56cf5f251a486cbc353019959e499d", + "ecd8422537864ec6abaa7cae1856f9df", + "eb783c612bf74aa082cbf3e21bfc1e01", + "e45393cafd624c7596f2e3c2e71702a0", + "92799625f0ca4c8ba569fc606a5ac338", + "0b4f9fabaa7a42c7b237b4212a725882", + "9c691f808bf14ffb816825cc553ed20b", + "b198f8bede6f4f3f8ab85a5c23410281", + "d8b910cc334641b082407da4cd5bffb6", + "722aed840ffe4a43b0bb096cf9990f69", + "d65f247cab59485caa160e3ab90bf026", + "20918cbed5c943d5bcb17fa88f927980", + "1b69a97f14254e1da5f66c4154d8c0b2", + "46561cbd61a74cad90f78a31925509c7", + "465070b9e6874eff863e01bd75b01457", + "30e99ca83c434ce4a6c10eb312cd6dfc", + "e7276b51b1ea417390c894ae0e541ebd", + "95798fe15239480ba87d19192d296187", + "e875ad47edfa447bae6f45ad5d17714a", + "546746a37b414bbf9dd081a4038a408f", + "ea1ba4cbd8c746bd9d7db42bac7a8839", + "4c775268eec448b39638db557958b029", + "d0cf8be2ce0345059651084052734a59", + "d73a05d171444e66bddf66596c4d68f6", + "66e3a13e9bf04ded8303be8e431c21e8", + "f209f065e7c744a08a3457726781338c", + "bbc5c01c4a17435790467edebfae6167", + "ec2d264d3791489f807207045fcda35d", + "ce7fafb4755d442e82c14c451b8159df", + "c4eda03bbf964c0d8de7758722619fa4", + "22478687fe0448b69baf6f7dd908f3fc", + "f0de16e3ad7a429292a5cb6b379c1ab3", + "9a2fca6103a64a72875098081b181ab2", + "8459c016a078475b877bea4b5a787a66", + "fe593dcb41ad4ae8a82bbec02aa3727f", + "31da5a4d89d442f6ac10d2d3e998b9dc", + "9e985af96ba84ce5942fdc0e6b433e36", + "3290118fcc4343f48290853a7ca7a9b2", + "bec15ef07c874e0f9adc7777eeffaeb9", + "3b57c2f561f946c7885e517fc765bde5", + "466ee7b9b4314fe185f2e95e65787368", + "00673fe888754d00ac42786670672893", + "1c97876e5aa24717bf2f1a5ab50b53ed", + "5072c9d6eacd4987aa8768eaa3d14ee0", + "796c152c3d1d490996adbcce33e9dd67", + "1eaa76f0d53045929f88c1670ffce1ff", + "8e4a0faca6964389816e6c20c8e7ef5d", + "a540fd76d900440fa6fb3429e2e535e0", + "07620dcc7b014eeab2bd847df1ec150b", + "ee23a71e4a144e63ba9d42413da7ea5e", + "cc3117a4286941a3b52608ae183a017b", + "195bb41efd7341298f9e770444b20914", + "82da0b7625254032adb1490ee13301fd", + "4ff2c74d3b5a45d8b604f8924be05464", + "c29c521b900243b2aad1b954b1cf001b", + "d0e748ae3c7f49d3b1482ac2a36ea9e7", + "e074cad8fbc045a3880aa9703e8d08b2", + "ea4bd15944954cc1a8f6bcc0334b4bbd", + "d7e73f7d0b64487e864eef85ea7a6c96", + "f4515ac1497e43df8262e82c2548f1b2", + "03a21315985d4493b6884a3379f9213d", + "9245059b9d1746b0b295c7e3098851e0", + "142163f8585d4d9b833792771d76960f", + "7ed66d2bce3649729f03175f2dd3ef4e", + "d0bcc429ce54484e9edf5ab92646e333", + "30d7990199ad471da587dafbccacf065", + "aa04339a34c746a8a7c182fa5017e332", + "282bf0d0484a40d8999bf5a0f505d1e7", + "39b9065670204e0499e21e94eb3ada5c", + "8efca2469e9b4aec9749b5d71276eea5", + "83ab0aed70bc43de92a73ee9b30df7aa", + "c3d0bb97b633458d9ecadb548c313f5a", + "9974b9d4018c407f9c55e530b9cd10f1", + "5863e2cb2ba14a7e80f99c0926b433c9", + "edce6976fecb4b10962a30cf92468498", + "39aa66717d6249449bfec7906c3353bf", + "931dd90e8908487197f8a1d167144df1", + "60a6f0420dcb445da4ca9d5d7cfbb2dc", + "813a118bfc914d1799846f01beb159bd", + "93225cd1d64844a5b28402aaa581ab0f", + "a6131535305344a98611172811109b45", + "f9cac0c062654374a2784ec5feac9b40", + "b2af4e800994474d80707761c039b69d", + "b77d676071094802bfbede1cbefa2cc0" + ] + }, + "collapsed": true, + "id": "9214cb29", + "outputId": "875f3bab-6132-4cbf-95fd-2665cc4baa4d" + }, + "source": [ + "# @title 2.1 Benchmark Hugging Face Baseline\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", + " # Loading a subset for training (e.g., first 20,000 rows)\n", + " dataset = load_dataset(DATASET_NAME, split=TRAIN_SPLIT)\n", + " test_dataset = load_dataset(DATASET_NAME, split=TEST_SPLIT)\n", + "\n", + " return (\n", + " dataset['content'],\n", + " dataset['label'],\n", + " test_dataset['content'],\n", + " test_dataset['label']\n", + " )\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": 5, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "--- Benchmarking: HF Dataset (Arrow) ---\n", + " ⏳ Loading data...\n" + ] + }, + { + "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": "e9b09ac7c2174367b05883f3d3aff6f9" + } + }, + "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": "ae9b924c-e496-401b-8e02-1ac28ba73a63" + }, + "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": 8, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "🔍 Running SchemaForge: scan-schemas...\n", + "2025-12-07 17:08:48,602 - __main__ - INFO - Starting schema scan...\n", + "2025-12-07 17:08:48,603 - src.schema_reader.inference - INFO - Found 2 JSON file(s) in ../schemaforge_bench/data\n", + "2025-12-07 17:08:48,649 - src.schema_reader.inference - INFO - Processing file: train_data.json\n", + "2025-12-07 17:08:48,650 - src.schema_reader.inference - INFO - No max_sample_size set. Defaulting to 10000 for performance.\n", + "2025-12-07 17:08:48,651 - src.schema_reader.inference - INFO - Processing file: test_data.json\n", + "2025-12-07 17:08:48,652 - src.schema_reader.inference - INFO - No max_sample_size set. Defaulting to 10000 for performance.\n", + "2025-12-07 17:08:49,350 - 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-07 17:08:55,748 - 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-07 17:09:02,968 - src.schema_reader.inference - INFO - Streaming first 10000 records from test_data.json\n", + "2025-12-07 17:09:02,973 - src.schema_reader.inference - INFO - Analyzing 10000 of 10000 records from test_data.json\n", + "2025-12-07 17:09:04,111 - src.schema_reader.inference - INFO - Successfully inferred schema for test_data.json: 3 fields\n", + "2025-12-07 17:09:41,007 - src.schema_reader.inference - INFO - Streaming first 10000 records from train_data.json\n", + "2025-12-07 17:09:41,011 - src.schema_reader.inference - INFO - Analyzing 10000 of 10000 records from train_data.json\n", + "2025-12-07 17:09:41,234 - src.schema_reader.inference - INFO - Successfully inferred schema for train_data.json: 3 fields\n", + "2025-12-07 17:09:42,370 - __main__ - INFO - Successfully scanned 2 file(s)\n", + "2025-12-07 17:09:42,372 - src.schema_reader.reporting - INFO - Schema report written to ../schemaforge_bench/schema_report.md\n", + "2025-12-07 17:09:42,373 - src.schema_reader.reporting - INFO - Schemas saved to JSON: ../schemaforge_bench/schema_report.json\n", + "2025-12-07 17:09:42,373 - __main__ - INFO - Schema report generated: ../schemaforge_bench/schema_report.md\n", + "🔄 Converting to CSV...\n", + "2025-12-07 17:09:44,410 - __main__ - INFO - Starting conversion to csv...\n", + "2025-12-07 17:09:44,413 - src.converter.core - INFO - Loading schemas from schema report: /content/schemaforge_bench/schema_report.json\n", + "2025-12-07 17:09:44,413 - src.schema_reader.reporting - INFO - Loaded 2 schema(s) from /content/schemaforge_bench/schema_report.json\n", + "2025-12-07 17:09:44,441 - src.converter.csv - INFO - Converting train_data.json to CSV...\n", + "2025-12-07 17:09:44,441 - src.json_loader - INFO - File train_data.json is 1601.5MB. Using streaming for efficiency.\n", + "2025-12-07 17:09:44,443 - src.converter.csv - INFO - Converting test_data.json to CSV...\n", + "2025-12-07 17:09:44,443 - src.json_loader - INFO - File test_data.json is 177.9MB. Using streaming for efficiency.\n", + "2025-12-07 17:09:45,922 - 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-07 17:09:47,895 - 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-07 17:10:05,340 - src.converter.csv - INFO - Successfully converted test_data.json to ../schemaforge_bench/output/csv/test_data.csv\n", + "2025-12-07 17:11:34,670 - src.converter.csv - INFO - Successfully converted train_data.json to ../schemaforge_bench/output/csv/train_data.csv\n", + "2025-12-07 17:11:36,106 - __main__ - INFO - Conversion complete: 2 successful, 0 failed\n", + "🔄 Converting to Parquet...\n", + "2025-12-07 17:11:37,309 - __main__ - INFO - Starting conversion to parquet...\n", + "2025-12-07 17:11:37,309 - src.converter.core - INFO - Loading schemas from schema report: /content/schemaforge_bench/schema_report.json\n", + "2025-12-07 17:11:37,310 - src.schema_reader.reporting - INFO - Loaded 2 schema(s) from /content/schemaforge_bench/schema_report.json\n", + "2025-12-07 17:11:37,332 - src.converter.parquet - INFO - Converting train_data.json to Parquet...\n", + "2025-12-07 17:11:37,332 - src.json_loader - INFO - File train_data.json is 1601.5MB. Using streaming for efficiency.\n", + "2025-12-07 17:11:37,333 - src.converter.parquet - INFO - Converting test_data.json to Parquet...\n", + "2025-12-07 17:11:37,333 - src.json_loader - INFO - File test_data.json is 177.9MB. Using streaming for efficiency.\n", + "2025-12-07 17:11:37,683 - 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-07 17:11:40,471 - 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-07 17:11:49,605 - src.converter.parquet - INFO - Successfully converted test_data.json to ../schemaforge_bench/output/parquet/test_data.parquet\n", + "2025-12-07 17:12:53,257 - src.converter.parquet - INFO - Successfully converted train_data.json to ../schemaforge_bench/output/parquet/train_data.parquet\n", + "2025-12-07 17:12:54,037 - __main__ - INFO - Conversion complete: 2 successful, 0 failed\n", + "🔄 Converting to Feather...\n", + "2025-12-07 17:12:54,871 - __main__ - INFO - Starting conversion to feather...\n", + "2025-12-07 17:12:54,878 - src.converter.core - INFO - Loading schemas from schema report: /content/schemaforge_bench/schema_report.json\n", + "2025-12-07 17:12:54,878 - src.schema_reader.reporting - INFO - Loaded 2 schema(s) from /content/schemaforge_bench/schema_report.json\n", + "2025-12-07 17:12:54,896 - src.converter.feather - INFO - Converting train_data.json to Feather...\n", + "2025-12-07 17:12:54,897 - src.json_loader - INFO - File train_data.json is 1601.5MB. Using streaming for efficiency.\n", + "2025-12-07 17:12:54,898 - src.converter.feather - INFO - Converting test_data.json to Feather...\n", + "2025-12-07 17:12:54,898 - src.json_loader - INFO - File test_data.json is 177.9MB. Using streaming for efficiency.\n", + "2025-12-07 17:12:55,553 - 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-07 17:12:58,511 - 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-07 17:13:06,899 - src.converter.feather - INFO - Successfully converted test_data.json to ../schemaforge_bench/output/feather/test_data.feather\n", + "2025-12-07 17:14:19,605 - src.converter.feather - INFO - Successfully converted train_data.json to ../schemaforge_bench/output/feather/train_data.feather\n", + "2025-12-07 17:14:20,452 - __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": "412ba5fb-a48e-4baa-cabc-bbd51d251d55" + }, + "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": 9, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "--- Benchmarking: CSV (Pandas) ---\n", + " ⏳ Loading data...\n", + " ✅ Loaded 3,600,000 rows in 34.58s\n", + " ⚙️ Training model...\n", + " ⏱️ Train Time: 176.7297s\n", + " 💾 Mem Delta: 2295.14 MB\n", + "------------------------------\n" + ] + } + ] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "bd83abbb", + "outputId": "a9924b69-652a-4ebf-9e0c-8886ab154ef5" + }, + "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": 10, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "--- Benchmarking: Parquet (PyArrow) ---\n", + " ⏳ Loading data...\n", + " ✅ Loaded 3,600,000 rows in 12.65s\n", + " ⚙️ Training model...\n", + " ⏱️ Train Time: 172.0169s\n", + " 💾 Mem Delta: 2155.44 MB\n", + "------------------------------\n" + ] + } + ] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "731384f9", + "outputId": "533e9ad6-9c44-4f24-a07f-769b775387a5" + }, + "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": 11, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "--- Benchmarking: Feather (Arrow IPC) ---\n", + " ⏳ Loading data...\n", + " ✅ Loaded 3,600,000 rows in 9.03s\n", + " ⚙️ Training model...\n", + " ⏱️ Train Time: 169.1621s\n", + " 💾 Mem Delta: 2384.89 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": "b2ce3ad4-86e6-49ab-a928-0b2703e40f91" + }, + "execution_count": 12, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + " Format Load Time (s) Training Time (s) Total Time (s) \\\n", + "0 HF Dataset (Arrow) 52.5374 317.4109 369.9483 \n", + "1 CSV (Pandas) 34.5824 176.7297 211.3121 \n", + "2 Parquet (PyArrow) 12.6510 172.0169 184.6680 \n", + "3 Feather (Arrow IPC) 9.0286 169.1621 178.1907 \n", + "\n", + " Peak Memory Delta (MB) Accuracy F1 Score \n", + "0 2193.2188 0.8397 0.8396 \n", + "1 2295.1406 0.8397 0.8396 \n", + "2 2155.4414 0.8397 0.8396 \n", + "3 2384.8945 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)52.5374317.4109369.94832193.21880.83970.8396
1CSV (Pandas)34.5824176.7297211.31212295.14060.83970.8396
2Parquet (PyArrow)12.6510172.0169184.66802155.44140.83970.8396
3Feather (Arrow IPC)9.0286169.1621178.19072384.89450.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\": 20.3171261697285,\n \"min\": 9.0286,\n \"max\": 52.5374,\n \"num_unique_values\": 4,\n \"samples\": [\n 34.5824,\n 9.0286,\n 52.5374\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Training Time (s)\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 72.45455524414368,\n \"min\": 169.1621,\n \"max\": 317.4109,\n \"num_unique_values\": 4,\n \"samples\": [\n 176.7297,\n 169.1621,\n 317.4109\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Total Time (s)\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 90.42220472794557,\n \"min\": 178.1907,\n \"max\": 369.9483,\n \"num_unique_values\": 4,\n \"samples\": [\n 211.3121,\n 178.1907,\n 369.9483\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Peak Memory Delta (MB)\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 103.59179237997483,\n \"min\": 2155.4414,\n \"max\": 2384.8945,\n \"num_unique_values\": 4,\n \"samples\": [\n 2295.1406,\n 2384.8945,\n 2193.2188\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": 384 + }, + "outputId": "2a9227cb-4640-468d-c6f0-d3323aaed6c4" + }, + "execution_count": 13, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "iVBORw0KGgoAAAANSUhEUgAAB7MAAAJICAYAAAAD5cCDAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAxppJREFUeJzs3XlcVdX+//H3AUFBQdTUVEQBgxxAsFIJ1FTURAsrzcwxDTNT024l17S0ug7dSnPMgTTzljk1qDhrmkNW5pBlKoFjaeYAGCjT/v3hl/PzCCochnOQ1/PxuI+HZ++11/4czupxP2d/zlrLZBiGIQAAAAAAAAAAAAAA7IiDrQMAAAAAAAAAAAAAAOBGFLMBAAAAAAAAAAAAAHaHYjYAAAAAAAAAAAAAwO5QzAYAAAAAAAAAAAAA2B2K2QAAAAAAAAAAAAAAu0MxGwAAAAAAAAAAAABgdyhmAwAAAAAAAAAAAADsDsVsAAAAAAAAAAAAAIDdoZgNAAAAAAAAAAAAALA7FLOBO9zu3bvl7++v3bt3F0p/0dHRatOmTaH0dTO5xVwc9y2Iwv47F5Z//vlHISEh+vrrr20dSq5WrFghf39/nTp1ytahFKqCjNd3331X3bp1K+SIAACAvcotH+rdu7d69+5tw6hu7dSpU/L399eKFStsHUqxsNdcHwAA5E10dLSCg4NtHQaQK3JN4PbK2DoA4E7k7++fp3YLFy5Us2bNbtnmww8/VL169RQeHl4Yod3UihUr9O9//9v82tnZWTVr1lRoaKgGDx6su+66q0jvb4+io6P1xRdf3LbdY489pscee6wYIsq/hQsXqnz58urUqZP52LRp0zR9+nTt2rVLlStXtmF0xa8w/9ssKn379tXHH3+sTZs2qW3btjaJAQCA/Mgtj6xYsaL8/f3VqlUrPf7446pQoYJVff/000/asWOH+vbtK3d398IKuVTnQzeT/Te5naZNm2rChAnFEFH+GYahr776SkuXLtXhw4eVnp4uLy8vdejQQf3795erq6utQwQAoFQric8fs3Mkk8mkLVu2qEaNGhbnL1++rAcffFBXr15Vz5499frrr9soUtuJjo7WunXrtHfv3lzPBwcHq0OHDpo4cWIxR1Z4ivI7T25Wrlyp8+fPq1+/foXWJ1CSUcwGisA777xj8fqrr77Sjh07chz39fW9bV+zZ89Whw4diryYnW3YsGHy9PRUWlqa9uzZo88++0xbt27VqlWr5OLiorfeekuGYRRLLNezxX27d++ukJAQ8+tTp05p6tSp6t69u+677z7zcS8vLzVu3FgHDhyQk5NTscZ4K+np6Vq4cKH69esnR0dHW4djFwrzv81bKch4rVq1qtq2bauPPvqIYjYAoETJziMzMjL0999/6/vvv9f48eO1YMECzZw5U/fee2+++9y7d6+mT5+uxx57rFCL2fYuJiam2O/Zrl07eXl5mV+npKRo7Nixateundq1a2c+ftddd6lWrVo6cOCAypSxn0cKmZmZ+te//qU1a9bo/vvv15AhQ+Ti4qIff/xRM2bM0Lp16zR//ny7fEgOAEBpc7vnj/bI2dlZq1atUlRUlMXx9evX2ygi2EJRfOfJzapVq3T06FGK2cD/sZ9vnsAdJDIy0uL1/v37tWPHjhzH7VHLli0VEBAgSerWrZs8PDw0f/58bdq0SZ07d7ZZsdYW9w0ODrZYgujnn3/W1KlTFRQUlOtnWbZs2eIM77a++eYbXbhwQR07drR1KEWiTZs2euyxxzR06NA8X2Ptf5upqan5+jJV0PHasWNHvfjiizp58qRq165doL4AACgu1+eRkvTcc89p165dGjRokAYPHqzY2FiVK1fOhhGWHM7OzsV+z3vvvdfi4duFCxc0duxY+fv7l4jcd968eVqzZo369++vkSNHmo93795dHTt21AsvvKDo6GjNmzfPhlECAADp9s8f7VGrVq20evXqHMXsVatW6aGHHtK6detsFFnBpKSksHpNPvCdB7AN9swGbCQlJUUTJ05Uq1at1KhRI3Xo0EExMTEWszn9/f2VkpKiL774Qv7+/vL391d0dLQk6fTp0xo7dqw6dOigwMBANWvWTMOGDSv0vYebN28uSeZ+b9wLOHu/vJiYGC1YsECtW7dWYGCgevXqpSNHjuTo7/fff9ewYcPUtGlTBQQE6PHHH9emTZtuG8et7vv5558rPDxcjRo10hNPPKEDBw4U2n3zKre9TXr37q3OnTvrt99+U69evdS4cWO1a9dOa9eulSR9//336tatmwIDA9WhQwft3LkzR79nz57Vv//9bz344INq1KiROnXqpGXLluUppo0bN6pWrVoWM2zyY9euXXr66acVFBSk+++/X88//7x+//13izb5GYdHjx5Vnz59FBgYqJYtW2rmzJnKysqyKrailP25HTx4UD179lTjxo31/vvvS7r2Nx04cKDCwsLUqFEjhYeHa8aMGcrMzLToo6Dj9cEHH5SkQh2jAADYQkhIiAYPHqzTp0/r66+/Nh//7bffFB0drbZt2yogIEChoaH697//rYsXL5rbTJs2zbx6Stu2bc35cHaesXz5cvXp00chISFq1KiRIiIi9OmnnxZq/LbKh27cMzs714yNjdWsWbPMD9H69u2r48eP57j+f//7n9q2bavAwEB17dpVP/74Y6Huw53bntnZe1H+8ccfeu655xQcHKwWLVrof//7nyTp8OHD6tOnj4KCgtS6dWutXLkyR79JSUn6z3/+Y/6O1K5dO82ZM+e2OeOVK1cUExOjunXr6l//+leO823atFGXLl307bffat++fRbHn3vuOf3444/q2rWrAgIC1LZtW3355Ze3vN/UqVPVsGFDXbhwIce5MWPG6P7779fVq1dv2QcAAPj/bnz+KF1bTe/xxx9XYGCgmjZtqhEjRujPP/+0uO7HH3/UsGHD9NBDD6lRo0Zq1aqVxo8frytXrtz2nocOHVLz5s3Vu3dv/fPPP7dt37lzZx06dMgiFzx37py+++67mxbg09LSNHXqVLVr184c3zvvvKO0tDSLdv7+/nrzzTe1Zs0aRUREKDAwUN27d9fhw4clSYsXL1a7du0UEBCg3r1755pnrlmzxvz3atasmV5++WWdPXvWok12vnbixAlFRUUpODhYL7/8crHnNunp6Zo+fbrat2+vgIAANWvWTD169NCOHTvMbfLyfSHb7t279fjjjysgIEDh4eFavHixpk2blut2g3kZV/l1s+88knXPpHv37q1vvvlGp0+fNn8Hyn7OmJaWpg8++ECPP/647rvvPgUFBenpp5/Wd999V6D3ANg7ZmYDNmAYhp5//nnt3r1bXbt2Vf369fXtt9/qnXfe0dmzZzVq1ChJ15ZEHj16tAIDA/Xkk09Kkrkw+fPPP2vv3r3q1KmT7r77bp0+fVqfffaZ+vTpo9WrVxfakjwnTpyQJHl4eNyy3Zdffql//vlHTz/9tK5evapPPvlEffv21cqVK81L+R09elQ9evRQ9erVFRUVJVdXV61Zs0YvvPCCpk2bZrF8YV6tWrVK//zzj7p37y6TyaR58+Zp6NCh2rhxo3l2bFHcN68SExM1aNAgRURE6OGHH9Znn32ml156SVlZWRo/fryeeuopde7cWTExMRo2bJi++eYb8/4qf//9t5588kmZTCb17NlTlStX1rZt2/Taa6/p8uXLt11mZu/evWrYsKFVce/cuVNRUVHy9PTUkCFDdOXKFS1atEg9evTQihUr5OnpKSnv4/DcuXPq06ePMjMzNXDgQLm4uGjJkiV2N6Mn26VLlxQVFaVOnTrp0UcfVZUqVSRJX3zxhVxdXfXMM8/I1dVV3333naZOnarLly9bzAC6mbyMV0lyc3OTl5eXfvrpJ5YTAgCUeJGRkXr//fe1fft2c067c+dOnTx5Uo8//riqVq2qo0ePasmSJYqLi9OSJUtkMpnUrl07HTt2TKtWrdK///1vVapUSZLMe1x/9tlnuueee9SmTRuVKVNGW7Zs0bhx42QYhnr27FnguO0xH5o7d65MJpP69++vy5cva968eXr55Ze1dOlSc5tPP/1Ub775pu6//37169dPp0+f1gsvvCB3d3fdfffdBf673EpmZqaioqJ0//336+WXX9bKlSv15ptvysXFRZMnT9Yjjzyi9u3ba/HixRo5cqSCgoLMq9CkpqaqV69eOnv2rJ566inVqFFDe/fu1fvvv69z587ptddeu+l99+zZo8TERPXp0+emS5936dJFK1as0JYtWxQUFGQ+fvz4cb344ovq2rWrHnvsMS1fvlzR0dFq2LCh7rnnnlz7ioyM1IwZMxQbG6tevXqZj6elpWndunVq37693ea5AADYoxufP86aNUsffPCBOnbsqK5du+rChQtatGiRevbsqS+//NK8/czatWt15coV9ejRQx4eHjpw4IAWLVqkM2fOaOrUqTe934EDB/Tss8+qUaNGmjlzZp5m0j7wwAO6++67tWrVKr344ouSpNjYWLm6uuqhhx7K0T4rK0vPP/+89uzZoyeffFK+vr46cuSIPv74Yx07dkwzZ860aP/jjz9q8+bNevrppyVJc+bM0aBBg/Tss8/q008/1dNPP63ExETNmzdPo0aN0sKFC83XZu/nHBAQoJdeeknnz5/XwoUL9dNPP1n8vSQpIyNDAwYM0H333aeRI0eqXLlyCg4OLtbcZvr06Zo9e7Z5ks/ly5d18OBB/fLLLwoNDZWUt+8LkvTrr7/q2WefVdWqVTV06FBlZWVpxowZ5u8M18vruLJGbt95rH0mPWjQICUnJ+vMmTPmfbrLly8v6doe7UuXLlXnzp3VrVs3/fPPP1q2bJmeffZZLV26VPXr17f6PQB2zQBQ5MaNG2f4+fmZX2/YsMHw8/MzZs6cadFu6NChhr+/v3H8+HHzsaCgIGPkyJE5+kxNTc1xbO/evYafn5/xxRdfmI999913hp+fn/Hdd9/dMsbly5cbfn5+xs6dO43z588bf/75p7F69WqjadOmRmBgoHHmzBnDMAxj5MiRRuvWrc3XnTx50vDz87NoYxiGsX//fsPPz88YP368+Vjfvn2Nzp07G1evXjUfy8rKMrp37260b9/+ljHf7L5NmzY1Ll26ZD6+ceNGw8/Pz9i8eXO+73s7Bw4cMPz8/Izly5fnOJdbzL169TL8/PyMlStXmo/9/vvvhp+fn3Hvvfca+/btMx//9ttvc/Q9atQoIzQ01Lhw4YLFvUaMGGHcd999uY6BbOnp6Ya/v78xceLEHOemTp1q+Pn5GefPn7/p9ZGRkUZISIhx8eJF87FDhw4Z9957r/Hqq6+aj+V1HP7nP/8x/Pz8jP3795uPnT9/3rjvvvsMPz8/4+TJkzeN5WZat25tTJ06Nd/XXe/G/zYN4/9/bp999lmO9rm93zFjxhiNGze2GF8FGa/Z+vfvb3Ts2NGq9wUAQHHKziMPHDhw0zb33Xef0aVLF/Pr3P4/ddWqVYafn5/xww8/mI/NmzfvprlCbn3079/faNu27W1jtvd8qFevXkavXr3Mr7NzzY4dO1rkHB9//LHh5+dnHD582DAMw7h69arRtGlT44knnjDS09PN7VasWGH4+flZ9Hk758+fN/z8/HLNt7Jzm+tz15EjRxp+fn7Ghx9+aD6WmJhoBAYGGv7+/sbq1avNx7Nz4uv7njFjhhEUFGQkJCRY3Ovdd9816tevb/zxxx83jXXBggWGn5+fsWHDhpu2uXTpkuHn52cMGTLEfKx169Y5xtz58+eNRo0aWeTRueX63bt3N7p162Zxj/Xr1+fpuxcAAKVVXp4/njp1yqhfv74xa9Ysi2sPHz5sNGjQwOJ4bnnY7NmzDX9/f+P06dPmYyNHjjSCgoIMwzCMH3/80WjSpIkxcOBAi7zqZq7PGydOnGi0a9fOfO6JJ54woqOjDcMwDD8/P2PcuHHmc19++aVx7733WuQZhmEYn332meHn52fs2bPHfMzPz89o1KiRRT64ePFiw8/PzwgNDTWSk5PNx9977z2L3DEtLc0ICQkxOnfubFy5csXcbsuWLYafn5/xwQcfWPwd/Pz8jHfffTfH+yxIbnP93zc3Nz7ffvTRR42BAwfess+8fl947rnnjMaNG1s8lz527JjRoEEDi2d++RlXubHmO09BnoUPHDjQ4tlitoyMjBzjNjEx0XjwwQeNf//737d8D0BJxjLjgA1s27ZNjo6OOZb569+/vwzD0LZt227bx/W/GExPT9fFixfl5eUld3d3/frrr1bH1q9fP4WEhKhVq1YaMWKEypcvr+nTp6t69eq3vC48PNyiTWBgoBo3bqytW7dKujbT9bvvvlPHjh11+fJlXbhwQRcuXNDFixcVFhamY8eO5Vj6Ji8iIiJUsWJF8+v7779fknTy5MkivW9eubq6qlOnTubXPj4+cnd3l6+vrxo3bmw+nv3v7LgNw9D69evVpk0bGYZhjvvChQsKCwtTcnKyfvnll5veNzExUYZhWPWLwr/++kuHDh3SY489ZjEj/95779WDDz5o/kylvI/DrVu3KigoSIGBgeZjlStX1iOPPJKnmNLS0iz+BhcuXFBWVpZSU1NzHC8Mzs7Oevzxx3Mcv/79Zo+n+++/X6mpqYqPj79tv7cbr9dzd3fPdekkAABKIldXV4vlG6///9SrV6/qwoUL5nzoVjnO9a7vIzk5WRcuXFDTpk118uRJJScnFyhee8yHJOnxxx+32E/7xlzi4MGDunTpkp588kmLGcqPPPKIRQ5SlLp162b+t7u7u7y9veXi4qKOHTuaj2fnxNfnQGvXrtV9990nd3d3i9zuwQcfVGZmpn744Yeb3jN7bGXPWMnN9bNZrlevXj3z31G69pl4e3vnmp9dLzIyUvv37zfPJJOklStXqkaNGmratOktrwUAoLS71fPHDRs2KCsrSx07drTICe666y7VqVPHYou/6/OwlJQUXbhwQcHBwTIMI9fno999952effZZhYSEaNq0aRZ5VV488sgjOn78uA4cOKDjx4/r559/vmkut3btWvn6+srHx8fifWQvqX79+5CuLVWdvfKP9P+fFbZv3968iqMkcy55ff53/vx59ejRw2L29EMPPSQfHx998803OWLr0aNHjmPFmdu4u7vr6NGjOnbs2E3b5OX7QmZmpnbt2qW2bdtaPJeuU6eOWrRoYdFffsaVta7/zlNUz6QdHR3N4zYrK0uXLl1SRkaGGjVqVKCaAGDvWGYcsIHTp0+rWrVqFomIJPn6+prP386VK1c0e/ZsrVixQmfPnrXYa7sgD+9ef/11eXt7y9HRUXfddZe8vb3l4HD7373UqVMnx7G6detqzZo1kq4tF2QYhj744AN98MEHufZx/vz52xbNb1SjRg2L19kP6ZKSkor0vnl19913m5e9yebm5pZjiUc3NzdJ/z/uCxcuKCkpSZ9//rk+//zzXPvOS+H2+nGRV3/88YckydvbO8c5X19fbd++XSkpKXJ1dc3zOPzjjz8sivfZcrtHbrKXF71RTEyMYmJiLI5l7ydUENWrV8/1C83Ro0c1ZcoUfffddzkehOblv7vbjdfrGYaRY+wAAFBSpaSkmLftkK493Jk+fbpiY2N1/vx5i7Z5zWX37NmjadOmad++fUpNTc3RR3Z+ZQ17zIckqWbNmhavs3+4mJ1LZMedvTVRtjJlyqhWrVp5vo+1ypYtm2NJx+zcN7ec+Poc6Pjx4zp8+LBCQkJy7ftWuW92ofpW+13erOB9Y34mXcvREhMTb9qXdO1HiuPHj9fXX3+tIUOGKDk5WVu2bFG/fv3I4QAAuI1bPX88duyYDMNQ+/btc732+h/s/fHHH5o6dao2b96c4/+7b3xuc/XqVT333HNq2LChpkyZctOtSW6lQYMG8vHx0apVq+Tu7q6qVauai9M3On78uH7//feb5jY35sA35iTZz41v9wzxVnmrj4+P9uzZY3GsTJkyuW49U9S5zfV9DBs2TIMHD1aHDh3k5+ensLAwRUZG6t577zW3ycv3hfPnz+vKlSu5Ppe+8Vh+xpW1rv/OU5TPpL/44gt99NFHSkhIUHp6uvn49T+GAO40FLOBEuqtt97SihUr1LdvXwUFBcnNzU0mk0kjRoywqoCZLTAwUAEBAYUY6TVZWVmSrs0+v/GXcdlufOiWF46Ojrkez/4bFNV98+pm8eU17kcffVSPPfZYrm39/f1vet+KFSvKZDLlWiQtTEU1Dm8UFham+fPnWxx75ZVXFBoaqi5duhTafbLltldSUlKSevXqpQoVKmjYsGHy8vJS2bJl9csvv+jdd981f2a3crvP/cb7Ze8NCgBASXbmzBklJydb5FzDhw/X3r17NWDAANWvX1+urq7KysrSs88+m6cc4sSJE+rXr598fHwUHR2tGjVqyMnJSVu3btWCBQvy9P/LhaW48iFJN/2RaWHfx1rW5r7Stfw3NDRUzz77bK5t69ate9P7Zv8o+LffflN4eHiubbJ/8Jjd9nax3U7FihXVunVrrVy5UkOGDNHatWuVlpamRx991Kr+AAAoTW71/DErK0smk0lz587N9f+nXV1dJV2blfvMM88oMTFRzz77rHx8fOTq6qqzZ88qOjo6Rz7o7Oysli1bavPmzfr222/VunVrq2Lv3LmzPvvsM5UvX14dO3a8aX6WlZUlPz+/XCdnSDmL1AXJo/LD2dk515gLkts4OzsrLS0t14kZhmHo6tWrFpNGHnjgAW3YsEGbNm3Sjh07tGzZMn388ccaN26ceZWfgn5fuFFex5W1bvzOU1TPpL/66itFR0crPDxcAwYMUJUqVeTo6KjZs2ffdmUhoCSjmA3YQK1atbRr1y5dvnzZYnZ29jLFeZk1sW7dOnXp0kXR0dHmY1evXi3wkorWOn78eI5jx44dM7+X2rVrS5KcnJz04IMPFltctrpvQVWuXFnly5dXVlaWVXGXKVNGXl5eOnXqVL6vzZ7xk5CQkONcfHy8KlWqZE7w8joOa9asmesYye0eualWrZqqVatmcaxs2bKqXbt2sX2u33//vflXoQ888ID5uDV/47w4deqUxS9SAQAoqb766itJ136cJl3bDmXXrl0aOnSohgwZYm6X2zKDN5sFsnnzZqWlpWnWrFkWs5ULY3lAyT7zofzEfeLECYtZQhkZGTp9+vQtfwxpa15eXkpJSbEqt8tennzVqlV6/vnnc31A+eWXX0qS1Q+ucxMZGanBgwfrwIEDWrlypRo0aKB77rmn0PoHAKA08vLykmEY8vT0vOUKNkeOHNGxY8c0adIki4kOO3bsyLW9yWTSu+++q8GDB+vFF1/U3Llz1axZs3zH98gjj2jq1Kk6d+6c/vvf/97yffz2228KCQkp0lVbrs9bb5wFnpCQkGNln1uxNrepVauWMjIydOLEiRwzoo8fP67MzMwcz7s9PDz0xBNP6IknntA///yjXr16adq0aerWrVuevy9UqVJFZcuWzTXHvvFYXseVtW78zlPQZ9I3GzPr1q1T7dq1NX36dIs2U6dOzfc9gJKEPbMBG2jZsqUyMzP1v//9z+L4ggULZDKZ1LJlS/MxV1fXXGfX5vaA5pNPPlFmZmbhB5wHGzdutNjn48CBA9q/f7/5vVSpUkVNmzbV559/rr/++ivH9YW11/GNbHXfgnJ0dFSHDh20bt06HTlyJMf5vMQdFBSkgwcP5vve1apVU/369fXll19ajL0jR45ox44datWqlUWcN8ptHLZq1Ur79u3TgQMHLN7DypUr8x2frWT/avX6X3+mpaXp008/LfR7JScn68SJEwoODi70vgEAKE67du3SzJkz5enpaZ7VcbPZJR9//HGOYy4uLpJyLj2e3ceNS3ovX768UOIuqflQo0aN5OHhoSVLligjI8N8fOXKlbddNtvWOnbsqL179+rbb7/NcS4pKcni/dzIxcVF/fv3V0JCgiZPnpzj/DfffKMvvvhCYWFhCgoKKrSYW7ZsqUqVKmnevHn64YcfmJUNAEAhaN++vRwdHTV9+vQcM3ANw9DFixcl5f6cxjAMLVy48KZ9Ozs7a/r06QoICNCgQYMs8rK88vLy0qhRo/Svf/3LvH91bjp27KizZ89qyZIlOc5duXJFKSkp+b53bho1aqQqVapo8eLFSktLMx/funWrfv/9dz300EN57sva3Cb7+e+iRYtynMt+/n398+7szzBb+fLl5eXlZY4/r98XHB0d9eCDD2rTpk0Wz6WPHz+eI6fM67iyRm7feQr6TNrFxSXXSWu5fQ/av3+/9u3bZ3X8QEnAzGzABtq0aaNmzZpp8uTJ5hkSO3bs0KZNm9S3b1+LJUYaNmyoXbt2af78+apWrZo8PT3VuHFjPfTQQ/rqq69UoUIF1atXT/v27dPOnTvl4eFhk/fk5eWlHj16qEePHkpLS9PChQvl4eFhsUzgG2+8oaefflqPPPKInnzySdWuXVt///239u3bpzNnzujrr78ukthsdd+C+te//qXdu3frySefVLdu3VSvXj0lJibql19+0a5du/T999/f8vq2bdvqq6++UkJCQq6/OFywYEGO5bQdHBw0aNAgvfrqq4qKilL37t3VtWtXXblyRYsWLZKbm5vFLyLzOg6fffZZffXVV3r22WfVp08fubi4aMmSJapZs2ah7HFdHIKDg1WxYkVFR0erd+/eMplM+uqrr4pkWc+dO3fKMAy1bdu20PsGAKCobNu2TfHx8crMzNTff/+t3bt3a8eOHapZs6ZmzZqlsmXLSrq2/98DDzygefPmKT09XdWrV9eOHTtyXe2kYcOGkqTJkycrIiJCTk5Oat26tUJDQ+Xk5KRBgwbpqaee0j///KOlS5eqSpUqOnfuXJ5jvtPyIWdnZw0dOlRvvfWW+vbtq44dO+r06dNasWJFkW6tUxgGDBigzZs3a9CgQXrsscfUsGFDpaam6siRI1q3bp02bdqUYz/u6w0cOFCHDh3S3LlztW/fPrVv317lypXTnj179PXXX8vX11eTJk0q1JidnJzUqVMnLVq0SI6OjurUqVOh9g8AQGnk5eWl4cOH67333tPp06cVHh6u8uXL69SpU9q4caOefPJJDRgwQD4+PvLy8tKkSZN09uxZVahQQevWrbvtlnvlypXT7Nmz1adPH0VFRemTTz6Rn59fvmLs27fvbdtERkZqzZo1euONN7R79241adJEmZmZio+P19q1azVv3rxC2erRyclJL7/8sv7973+rV69e6tSpk86fP6+FCxeqVq1a6tevX776sia3qV+/vrp166aFCxfq+PHj5pnIO3fu1NatW9WtWzeL1Qc7deqkpk2bqmHDhvLw8NDPP/+sdevWqVevXpLy931hyJAh2r59u/m5dFZWlhYtWqR77rlHhw4dMrfL67i6nbx+55EK9ky6YcOGio2N1YQJExQQECBXV1e1adNGDz30kNavX68XXnhBDz30kE6dOqXFixerXr16hfYDCcAeUcwGbMDBwUGzZs3S1KlTFRsbqxUrVqhWrVp69dVX1b9/f4u20dHRev311zVlyhRduXJFjz32mBo3bqzXXntNDg4OWrlypa5evaomTZpo/vz5N91jrqh16dJFDg4O+vjjj3X+/HkFBgZqzJgxFktD16tXT8uXL9f06dP1xRdf6NKlS6pcubIaNGigF154ochis9V9C+quu+7S0qVLNWPGDG3YsEGfffaZPDw8VK9ePb388su3vb5169aqVKmS1qxZo8GDB+c4P3v27BzHHB0dNWjQID344IOaN2+epk6dqqlTp6pMmTJ64IEH9Morr5iXyZGU53FYrVo1LVy4UG+//bbmzJkjDw8PPfXUU6pWrZpee+01K/46xa9SpUr68MMPNWnSJE2ZMkXu7u569NFHFRISkqdkNz/Wrl2r++67z+4fOgMAcL3spe2cnJzk4eEhPz8/jRo1So8//rjF1jqS9N577+mtt97Sp59+KsMwFBoaqrlz5+bYTy4wMFAvvviiFi9erG+//VZZWVnatGmTfHx8NHXqVE2ZMkWTJk3SXXfdpR49eqhy5coaNWpUnmO+E/OhXr16yTAMzZ8/X5MmTdK9996rWbNm6e2337Z4uGZvXFxc9Mknn2j27Nlau3atvvzyS1WoUEF169bV0KFD5ebmdsvrHR0dNWXKFH355ZdaunSpPvjgA6Wnp8vLy0svvPCC+vfvX+C9EHMTGRmpRYsWKSQkJMe2OAAAwDoDBw5U3bp1tWDBAs2YMUPStT2mQ0ND1aZNG0nXcs4PP/xQb7/9tmbPnq2yZcuqXbt26tmzpyIjI2/Zf4UKFRQTE6NevXqpf//++t///pdjeeyCcnBw0IwZM7RgwQJ99dVX2rBhg1xcXOTp6anevXsX6lLXjz/+uMqVK6e5c+fq3Xfflaurq8LDw/XKK6/I3d09X31Zm9u8+eab8vPz0/Lly/X+++9Lkry9vTV69Gj17NnTom3v3r21efNm7dixQ2lpaapZs6aGDx9u8Xwtr98XGjVqpLlz5+qdd97RBx98oBo1amjYsGGKj483b+mZLS/j6nby852nIM+kn376aR06dEgrVqzQggULVKtWLbVp00aPP/64/v77b33++efavn276tWrp//+979au3btbSc+ASWZySiKKWUASo1Tp06pbdu2evXVVwu9oIeCmzFjhlasWKH169ffdIke2Jdz586pbdu2ev/99xUeHm7rcAAAwB0gKytLISEhateund5++21bh3NH+e233xQZGZljv04AAICS6E7JbQYPHqy4uDitX7/e1qEAKATsmQ0Ad7B+/fopJSVFq1evtnUoyKOPP/5Yfn5+FLIBAIBVrl69mmMblC+//FKXLl1S06ZNbRTVnWvJkiVydXVV+/btbR0KAABAgZXE3ObKlSsWr48dO6Zt27aR+wJ3EJYZB4A7WPny5bVr1y5bh4F8yMsS8gAAADezb98+TZgwQQ8//LA8PDz066+/atmyZfLz89PDDz9s6/DuGJs3b1ZcXJyWLFminj17FskS5gAAAMWlJOc24eHheuyxx1S7dm2dPn1aixcvlpOTk8224wRQ+ChmAwAAAABwh6hVq5buvvtuffLJJ0pMTFTFihUVGRmpl19+Wc7OzrYO747x9ttv6++//1bLli01dOhQW4cDoBCsWbNGX3/9tX755RclJSWpTp066t27t5544gmZTCZJ1/Z5zW1P0tjYWPn6+ppfJycna8KECdq4caPS09PVokULjR49Osf+sz/99JMmTZqkQ4cOqUqVKurRo4eioqLM9wOA4lKSc5sWLVpo9erVOnfunJydnRUUFKSXXnpJdevWtXVoAAoJe2YDAAAAAAAAKNW6d++uWrVqKTw8XJUqVdLOnTs1b948vfDCCxoyZIika8XsjIwMjRw50uLa+vXrq2zZsubXAwYMUFxcnEaOHKmyZctqypQpcnBw0PLly1WmzLW5RcePH1eXLl0UGhqqnj176vDhw3r33Xc1YsQIDRgwoPjeOAAAgJ1jZjYAAAAAAACAUm3WrFmqXLmy+XVISIguXbqk+fPna/DgwXJwcJAkubu7Kygo6Kb97N27V9u3b1dMTIzCwsIkSd7e3oqIiND69esVEREhSYqJiVGlSpX0/vvvy9nZWSEhIbpw4YI+/PBD9e7dm9U0AAAA/o+DrQMAAAAAAAAAAFu6vpCdrX79+rp8+bJSUlLy3M+2bdvk7u6u0NBQ8zEfHx/Vr19f27Zts2jXtm1bi6J1RESEkpKStHfvXivfBQAAwJ2Hmdn5sHfvXhmGIScnJ1uHAgAAYJaeni6TyaTg4GBbh4J8Ir8EAAD2iPzymj179qh69eqqUKGC+dj333+voKAgZWZmqnHjxnrxxRf1wAMPmM/Hx8fL29s7x77XPj4+io+PlySlpKTozz//lI+PT442JpNJ8fHxatasWb7jJbcEAAD2qiD5JcXsfDAMQ2wxDgAA7A35SclFfgkAAOwR+Yn0448/KjY21mJ/7AceeECRkZGqW7eu/vrrL8XExOiZZ57RJ598Yn4wm5SUJDc3txz9VaxYUQcPHpQkJScnS7q2ZPn1nJ2d5eLiosTERKtizs4t+fwAAIC9KUh+QjE7H7J/1RgQEGDjSAAAAP6/n3/+2dYhwErklwAAwB6V9vzyzJkzGjFihJo1a6Y+ffqYjw8bNsyi3UMPPaTOnTtr5syZmjt3bnGHmYOTk5PS0tKUnp5u61AAAABysHb1GIrZAAAAAAAAAKBrM6ujoqLk4eGhadOmycHB4aZtXV1d1apVK61bt858zN3dXWfOnMnRNjExURUrVpQk88zt7Bna2dLS0pSammpuZw0nJyfVq1fP6usBAACKQlxcnNXXUswGAAAAAAAAUOpduXJFzz33nJKTk/X555/nulz47fj4+GjXrl0yDMNi3+yEhAT5+flJulYEr1GjhnkP7evbGIaRYy/t/DCZTHJ1dbX6egAAgKJwfV6UXzf/aSEAAAAAAAAAlAIZGRkaPny44uPjNW/ePFWvXv2216SkpOibb76x2DKmZcuWSkxM1K5du8zHEhIS9Ouvv6ply5YW7TZt2mSxJHhsbKzc3d3N+28DAACAmdkAAAAAAAAASrlx48Zpy5Ytio6O1uXLl7Vv3z7zuQYNGujAgQOaN2+e2rVrp1q1aumvv/7S/Pnzde7cOX3wwQfmtsHBwQoLC9OoUaM0cuRIlS1bVpMnT5a/v7/at29vbjdgwACtXLlS//rXv9SjRw8dOXJEMTExGjFihJydnYvzrQMAANg1itkAAAAAAAAASrUdO3ZIkiZOnJjj3KZNm1S1alWlp6dr8uTJunTpklxcXBQcHKxx48YpMDDQov2UKVM0YcIEvf7668rIyFBYWJhGjx6tMmX+/6PYOnXqKCYmRhMnTtTAgQNVuXJlDRs2TP379y/aNwoAAFDCmAzDMGwdREnx888/S5LF0kEAAAC2Ro5ScvHZAQAAe0SOUjLxuQEAAHtVkDyFPbMBAAAAAAAAAAAAAHaHYjYAAAAAAAAAAAAAwO5QzAYAAAAAAAAAAAAA2B2K2QAAAAAAAAAAAAAAu0MxGwAAAAAAAAAAAABgdyhmAwAAAAAAAAAAAADsDsVsAAAAAAAAAAAAAIDdoZgNAAAAAAAAAAAAALA7FLMBAAAAAAAAAAAAAHaHYjYAAAAAAAAAAAAAwO5QzAYAAAAAAAAAAAAA2B2K2QAAAAAAAAAAAAAAu0MxGwAAAAAAAAAAAABgdyhmAwAAAAAAAAAAAADsDsVsAAAAAAAAAAAAAIDdoZgNAAAAAAAAAAAAALA7FLOLSVZWlq1DgBX43AAAgD3KzMy0dQiwEp8dAAAAAABSlmHYOgRYqbg/uzLFerdSzMHBQf99d5lOnvrb1qEgj2p73qVXXu5q6zAAAABycHR01KSXJurk7ydsHQryobavl0a+H23rMAAAAAAAsDkHk0kLf9ulsylJtg4F+VDd1V197g0p1ntSzC5GJ0/9rd9//9PWYQAAAOAOcPL3E4r7Jc7WYQAAAAAAAFjlbEqSTl2+aOswYOdYZhwAAAAAAAAAAAAAYHcoZgMAAAAAAAAAAAAA7A7FbAAAAAAAAAAAAACA3aGYDQAAAAAAAAAAAACwOxSzAQAAAAAAAAAAAAB2h2I2AAAAAAAAAAAAAMDuUMwGAAAAAAAAAAAAANgditkAAAAAAAAAAAAAALtDMRsAAAAAAAAAAAAAYHcoZgMAAAAAAAAAAAAA7A7FbAAAAAAAAAAAAACA3aGYDQAAAAAAAAAAAACwOxSzAQAAAAAAAAAAAAB2h2I2AAAASrUVK1bI398/x//effddi3ZLly5Vhw4dFBAQoEcffVRbtmyxUcQAAAAAAABA6VDG1gEAAAAA9mDevHlyc3Mzv65evbr536tXr9aYMWM0aNAgNW/eXLGxsRoyZIj+97//KSgoyAbRAgAAAEDxy8zKkqMDc+RKGj43ACUZxWwAAABAUsOGDVW5cuVcz02dOlWdOnXS8OHDJUnNmzfXkSNHNGPGDM2dO7cYowQAAAAA23F0cNDE2Wt04s8Ltg4FeeRVo7Kin+to6zAAwGp2VczeunWr5s6dq7i4OF2+fFnVq1dXeHi4hgwZYp4lEx0drS+++CLHtXPnzlXLli3Nr9PS0jR58mR9/fXX+ueffxQcHKwxY8bIx8en2N4PAAAASr6TJ0/q2LFjeuWVVyyOR0RE6J133lFaWpqcnZ1tFB0AAAAAFK8Tf15Q3PFztg4DAFBK2FUx+9KlSwoMDFTv3r3l4eGho0ePatq0aTp69Kg++ugjc7vatWvn2MPQ19fX4vXbb7+t2NhYRUdHq3r16vrwww/Vr18/rV692mL5SAAAAECSOnfurIsXL6pmzZp68skn9eyzz8rR0VHx8fGSJG9vb4v2vr6+Sk9P18mTJ3PkogAAAAAAAAAKzq6K2ZGRkRavmzVrJmdnZ40ZM0Znz54171tYrly5W+5NeObMGS1btkxvvPGGunbtKkkKCAhQ69attXjxYkVFRRXZewAAAEDJUrVqVQ0dOlSNGzeWyWTS5s2bNWXKFJ09e1avv/66EhMTJUnu7u4W12W/zj5vLcMwlJKSkuf2JpNJLi4uBbonbCs1NVWGYdg6DAAAbsowDJlMJluHAQAAANhXMTs3Hh4ekqT09PQ8X7N9+3ZlZWXp4YcftugnNDRU27Zto5gNAAAAsxYtWqhFixbm12FhYSpbtqw+/vhjDRo0qMjvn56erkOHDuW5vYuLixo0aFCEEaGoJSQkKDU11dZhAABwS2yjAgAAAHtgl8XszMxMZWRkKC4uTjNmzFCbNm3k6elpPn/8+HHdd999unr1qvz8/DR48GCFh4ebz8fHx6tKlSqqWLGiRb++vr5atmxZsb0PAAAAlEwdO3bURx99pEOHDplzyuTkZFWtWtXcJikpSZJy5Jz55eTkpHr16uW5PbOkSj5vb29mZgMA7FpcXJytQwAAAAAk2Wkxu3Xr1jp79qykazNl3nvvPfO5+vXrKyAgQPXq1VNycrI+++wzvfDCC/rggw/MM7GTkpJy3Rfb3d292JeBlFgKsqRjGUgAgL1jGcii5ePjI+naDyaz/5392snJSbVr1y5Q/yaTSa6urgXqAyUL3w0AAPaO3BIAAAD2wi6L2XPmzFFqaqri4uI0a9YsDRo0SPPnz5ejo6P69u1r0bZNmzZ66qmnNHXqVItlxYtKfpeBlFgKsqRjGUgAQEnAMpCFKzY2Vo6OjmrQoIGqVq2qunXrau3atRarAcXGxiokJIS/PQAAAAAAAFBE7LKYfe+990qSgoODFRAQoMjISG3YsCHXYrWDg4Pat2+v//73v7py5YrKlSsnd3d3Xb58OUfbpKSkYl8GUuLXrCUdy0ACAOwdy0AWzIABA9SsWTP5+/tLkjZt2qQlS5aoT58+5mXFhw4dqpdfflleXl5q1qyZYmNjdeDAAS1atMiWoQMAAAAAAAB3NLssZl/P399fTk5OOnHiRJ6v8fHx0d9//63ExESL4vWNS0Nag2UgSx+WgQQA2Dt+OFcw3t7eWr58uc6cOaOsrCzVrVtXo0aNUu/evc1tOnfurNTUVM2dO1dz5syRt7e3pk+fruDgYBtGDgAAAAAAANzZ7L6YvX//fqWnp8vT0zPX81lZWVq7dq3uuecelStXTpIUFhYmBwcHrV+/Xt26dZMkJSYmavv27Ro8eHCxxQ4AAAD7N3r06Dy169atmzm3BAAAAAAAAFD07KqYPWTIEDVq1Ej+/v4qV66cfvvtN8XExMjf31/h4eE6ffq0oqOj1alTJ9WpU0eJiYn67LPPdPDgQU2bNs3cz913362uXbvqnXfekYODg6pXr67Zs2fLzc1NTz31lA3fIQAAAAAAAAAAAAAgL+yqmB0YGKjY2FjNmTNHhmGoVq1a6tatmwYMGCBnZ2eVL19eFSpU0KxZs3T+/Hk5OTmpUaNGmjt3rlq0aGHR1+jRo1W+fHm99957+ueff9SkSRPNnz9fbm5uNnp3AAAAAAAAAAAAAIC8sqti9sCBAzVw4MCbnvfw8NCsWbPy1Jezs7NGjhypkSNHFlZ4AAAAAAAAAAAAAIBi4mDrAAAAAAAAAAAAAAAAuBHFbAAAAAAAAAAAAACA3aGYDQAAAAAAAAAAAACwOxSzAQAAAAAAAAAAAAB2h2I2AAAAAAAAAAAAAMDuUMwGAAAAAAAAgFIsMzPL1iHASnx2AIA7XRlbBwAAAAAAAAAAsB1HRweNG/W+jsWfsnUoyIe6Pp56Y/xLtg4DAIAiRTEbAAAAAAAAAEq5Y/GndOS3eFuHAQAAYIFlxgEAAAAAAAAAAAAAdodiNgAAAAAAAAAAAADA7lDMBgAAAAAAAAAAAADYHYrZAAAAAAAAAAAAAAC7QzEbAAAAAAAAAAAAAGB3KGYDAAAAAAAAAACgUGRmZdk6BFiJzw72qIytAwAAAAAAAAAAAMCdwdHBQeNjN+vEhUu2DgX54FXZQ6Mi2tg6DCAHitkAAAAAAAAAAAAoNCcuXFLcX+dtHQaAOwDLjAMAAAAAAAAAAAAA7A7FbAAAAAAAAAAAAACA3aGYDQAAAAAAAAAAAACwOxSzAQAAAAAAAAAAAAB2h2I2AAAAAAAAAAAAAMDuUMwGAAAAAAAAAAAAANgditkAAAAAAAAAAAAAALtDMRsAAAAAAAAAAAAAYHcoZgMAAAAAAAAAAAAA7A7FbAAAAAAAAAAAAACA3aGYDQAAAAAAAAAAAACwOxSzAQAAAAAAAAAAAAB2h2I2AAAAAAAAAAAAAMDuUMwGAAAAAAAAAAAAANgditkAAAAAAAAAAAAAALtDMRsAAAAAAAAAAAAAYHcoZgMAAAAAAAAAAAAA7A7FbAAAAAAAAAAAAACA3aGYDQAAAAAAAAAAAACwOxSzAQAAAAAAAAAAAAB2h2I2AAAAAAAAAAAAAMDuUMwGAAAAAAAAUKqtWbNGzz//vFq2bKmgoCBFRkZq2bJlMgzDot3SpUvVoUMHBQQE6NFHH9WWLVty9JWcnKxRo0apadOmCg4O1rBhw/TXX3/laPfTTz+pe/fuCgwMVOvWrTVnzpwc9wMAACjtKGYDAAAAAAAAKNUWLFggFxcXRUdHa9asWWrZsqXGjBmjGTNmmNusXr1aY8aMUceOHTV37lwFBQVpyJAh2rdvn0Vfw4cP144dOzR27Fi9++67SkhIUFRUlDIyMsxtjh8/rgEDBqhq1aqaPXu2+vbtq6lTp+qjjz4qrrcMAABQIpSxdQAAAAAAAAAAYEuzZs1S5cqVza9DQkJ06dIlzZ8/X4MHD5aDg4OmTp2qTp06afjw4ZKk5s2b68iRI5oxY4bmzp0rSdq7d6+2b9+umJgYhYWFSZK8vb0VERGh9evXKyIiQpIUExOjSpUq6f3335ezs7NCQkJ04cIFffjhh+rdu7ecnZ2L9w8AAABgp5iZDQAAAAAAAKBUu76Qna1+/fq6fPmyUlJSdPLkSR07dkwdO3a0aBMREaFdu3YpLS1NkrRt2za5u7srNDTU3MbHx0f169fXtm3bzMe2bdumtm3bWhStIyIilJSUpL179xb22wMAACixKGYDAAAAAAAAwA327Nmj6tWrq0KFCoqPj5d0bZb19Xx9fZWenq6TJ09KkuLj4+Xt7S2TyWTRzsfHx9xHSkqK/vzzT/n4+ORoYzKZzO0AAADAMuMAAAAAAAAAYOHHH39UbGysRo4cKUlKTEyUJLm7u1u0y36dfT4pKUlubm45+qtYsaIOHjwoSUpOTs61L2dnZ7m4uJj7soZhGEpJScnXNSaTSS4uLlbfE7aXmpoqwzCK/D6MlZKNcYK8Ko6xwjgp+fI7TgzDyPFjv7yimA0AAAAAAAAA/+fMmTMaMWKEmjVrpj59+tg6nHxJT0/XoUOH8nWNi4uLGjRoUEQRoTgkJCQoNTW1yO/DWCnZGCfIq+IYK4yTks+acXL99ir5QTEbAAAAAAAAAHRtZnVUVJQ8PDw0bdo0OThc26WxYsWKkq7Nqq5atapF++vPu7u768yZMzn6TUxMNLfJnrmdPUM7W1pamlJTU83trOHk5KR69erl6xprZ0nBfnh7exfbjFuUXIwT5FVxjBXGScmX33ESFxdn9b0oZgMAAAAAAAAo9a5cuaLnnntOycnJ+vzzzy2WC8/e3zo+Pt5ir+v4+Hg5OTmpdu3a5na7du3KsZRmQkKC/Pz8JEmurq6qUaNGjr2xExISZBhGjr2088NkMsnV1dXq61EysVQv8oJxgrxirCAv8jtOCvIDBgerrwQAAAAAAACAO0BGRoaGDx+u+Ph4zZs3T9WrV7c4X7t2bdWtW1dr1661OB4bG6uQkBDzspktW7ZUYmKidu3aZW6TkJCgX3/9VS1btjQfa9mypTZt2qT09HSLvtzd3RUcHFwUbxEAAKBEYmY2AAAAAAAAgFJt3Lhx2rJli6Kjo3X58mXt27fPfK5BgwZydnbW0KFD9fLLL8vLy0vNmjVTbGysDhw4oEWLFpnbBgcHKywsTKNGjdLIkSNVtmxZTZ48Wf7+/mrfvr253YABA7Ry5Ur961//Uo8ePXTkyBHFxMRoxIgRVu8nCQAAcCeimA0AAAAAAACgVNuxY4ckaeLEiTnObdq0SZ6enurcubNSU1M1d+5czZkzR97e3po+fXqOmdRTpkzRhAkT9PrrrysjI0NhYWEaPXq0ypT5/49i69Spo5iYGE2cOFEDBw5U5cqVNWzYMPXv379o3ygAAEAJQzEbAAAAAAAAQKm2efPmPLXr1q2bunXrdss2bm5uGj9+vMaPH3/Ldk2aNNGSJUvyHCMAAEBpZFd7Zm/dulW9evVS8+bN1ahRI7Vt21YTJkxQcnKyRbvNmzfr0UcfVUBAgDp06KDly5fn6CstLU2TJk1SaGiogoKC9Mwzzyg+Pr643goAAAAAAAAAAAAAoADsqph96dIlBQYGaty4cYqJidEzzzyjL7/8Ui+++KK5zY8//qghQ4YoKChIc+fOVceOHfXaa69p7dq1Fn29/fbbWrp0qUaMGKFp06YpLS1N/fr1y1EYBwAAAAAAAAAAAADYH7taZjwyMtLidbNmzeTs7KwxY8bo7Nmzql69umbNmqXAwEC9+eabkqTmzZvr5MmTmjp1qh5++GFJ0pkzZ7Rs2TK98cYb6tq1qyQpICBArVu31uLFixUVFVW8bwwAAAAAAAAAAAAAkC92NTM7Nx4eHpKk9PR0paWlaffu3eaidbaIiAj9/vvvOnXqlCRp+/btysrKsmjn4eGh0NBQbdu2rdhiBwAAAAAAAAAAAABYxy6L2ZmZmbp69ap++eUXzZgxQ23atJGnp6dOnDih9PR0+fj4WLT39fWVJPOe2PHx8apSpYoqVqyYox37ZgMAAAAAAAAAAACA/bOrZcaztW7dWmfPnpUktWjRQu+9954kKTExUZLk7u5u0T77dfb5pKQkubm55ejX3d3d3MZahmEoJSUlX9eYTCa5uLgU6L6wndTUVBmGYeswAAC4KcMwZDKZbB0GAAAAAAAAABQquyxmz5kzR6mpqYqLi9OsWbM0aNAgzZ8/39ZhSbq23PmhQ4fydY2Li4saNGhQRBGhqCUkJCg1NdXWYQAAcEvOzs62DgEAAAAAAAAACpVdFrPvvfdeSVJwcLACAgIUGRmpDRs2qF69epKk5ORki/ZJSUmSZF5W3N3dXZcvX87Rb1JSUo6lx/PLycnJHEdeMVOqZPP29mZmNgDArsXFxdk6BAAAAAAAAAAodHZZzL6ev7+/nJycdOLECbVp00ZOTk6Kj49XixYtzG2y98HO3kvbx8dHf//9txITEy2K1/Hx8Tn2284vk8kkV1fXAvWBkoUl4gEA9o4fzgEAAAAAAAC4EznYOoDb2b9/v9LT0+Xp6SlnZ2c1a9ZM69ats2gTGxsrX19feXp6SpLCwsLk4OCg9evXm9skJiZq+/btatmyZbHGDwAAAAAAAAAAAADIP7uamT1kyBA1atRI/v7+KleunH777TfFxMTI399f4eHhkqTnn39effr00dixY9WxY0ft3r1bq1at0uTJk8393H333erataveeecdOTg4qHr16po9e7bc3Nz01FNP2ertAQAAAAAAAAAAAADyyK6K2YGBgYqNjdWcOXNkGIZq1aqlbt26acCAAXJ2dpYk3X///Zo2bZqmTJmiZcuWqWbNmnr77bfVsWNHi75Gjx6t8uXL67333tM///yjJk2aaP78+XJzc7PFWwMAAAAAAAAAAAAA5INdFbMHDhyogQMH3rZd27Zt1bZt21u2cXZ21siRIzVy5MjCCg8AAAAAAAAAAAAAUEzsfs9sAAAAAAAAAAAAAEDpQzEbAAAAAAAAAAAAAGB3KGYDAAAAAAAAAAAAAOwOxWwAAAAAAAAAAAAAgN2hmA0AAAAAAAAAAAAAsDsUswEAAAAAAAAAAAAAdodiNgAAAAAAAAAAAADA7lDMBgAAAAAAAAAAAADYHYrZAAAAAAAAAAAAAAC7QzEbAAAAAAAAAAAAAGB3KGYDAAAA1/nnn3/UsmVL+fv76+eff7Y4t3TpUnXo0EEBAQF69NFHtWXLFhtFCQAAAAAAANz5KGYDAAAA15k5c6YyMzNzHF+9erXGjBmjjh07au7cuQoKCtKQIUO0b9++4g8SAAAAAAAAKAUoZgMAAAD/5/fff9enn36qoUOH5jg3depUderUScOHD1fz5s315ptvKiAgQDNmzLBBpAAAAAAAAMCdj2I2AAAA8H/efvttPfXUU/L29rY4fvLkSR07dkwdO3a0OB4REaFdu3YpLS2tOMMEAAAAAAAASgWK2QAAAICktWvX6siRI3rhhRdynIuPj5ekHEVuX19fpaen6+TJk8USIwAAAAAAAFCalLF1AAAAAICtpaamauLEiRoxYoQqVKiQ43xiYqIkyd3d3eJ49uvs89YwDEMpKSl5bm8ymeTi4mL1/WB7qampMgzD1mEAAHBThmHIZDLZOgwAAACAYjYAAAAwa9YsValSRU888USx3zs9PV2HDh3Kc3sXFxc1aNCgCCNCUUtISFBqaqqtwwAA4JacnZ1tHQIAAABAMRsAAACl2+nTp/XRRx9pxowZSk5OliTzTOmUlBT9888/qlixoiQpOTlZVatWNV+blJQkSebz1nByclK9evXy3J5ZUiWft7c3M7MBAHYtLi7O1iEAAAAAkihmAwAAoJQ7deqU0tPTNXDgwBzn+vTpo8aNG+u9996TdG3vbB8fH/P5+Ph4OTk5qXbt2lbf32QyydXV1errUfKwTDwAwN7x4zkAAADYC4rZAAAAKNXq16+vhQsXWhw7dOiQJkyYoHHjxikgIEC1a9dW3bp1tXbtWoWHh5vbxcbGKiQkhGU4AQAAAAAAgCJAMRsAAAClmru7u5o1a5bruYYNG6phw4aSpKFDh+rll1+Wl5eXmjVrptjYWB04cECLFi0qznABAAAAAACAUoNiNgAAAJAHnTt3VmpqqubOnas5c+bI29tb06dPV3BwsK1DAwAAAAAAAO5IFLMBAACAGzRr1kyHDx/Ocbxbt27q1q2bDSICAAAAAAAASh8HWwcAAAAAAAAAAAAAAMCNKGYDAAAAAAAAAAAAAOwOxWwAAAAAAAAAAAAAgN2hmA0AAAAAAAAAAAAAsDsUswEAAAAAAAAAAAAAdodiNgAAAAAAAAAAAADA7lDMBgAAAAAAAAAAAADYHYrZAAAAAAAAAAAAAAC7QzEbAAAAAAAAAAAAAGB3KGYDAAAAAAAAAAAAAOwOxWwAAAAAAAAAAAAAgN2hmA0AAAAAAAAAAAAAsDsUswEAAAAAAAAAAAAAdodiNgAAAAAAAAAAAADA7lDMBgAAAAAAAAAAAADYHYrZAAAAAAAAAAAAAAC7QzEbAAAAAAAAAAAAAGB3KGYDAAAAAAAAAAAAAOwOxWwAAAAAAAAAAAAAgN2hmA0AAAAAAAAAAAAAsDsUswEAAAAAAAAAAAAAdodiNgAAAAAAAAAAAADA7lDMBgAAAAAAAAAAAADYHYrZAAAAAAAAAAAAAAC7QzEbAAAAAAAAAAAAAGB3KGYDAAAAAAAAAAAAAOwOxWwAAAAAAAAAAAAAgN0pY+sArrdmzRp9/fXX+uWXX5SUlKQ6deqod+/eeuKJJ2QymSRJvXv31vfff5/j2tjYWPn6+ppfJycna8KECdq4caPS09PVokULjR49WtWqVSu29wMAAAAAAAAAAAAAsI5dFbMXLFigWrVqKTo6WpUqVdLOnTs1ZswYnTlzRkOGDDG3a9KkiUaOHGlxraenp8Xr4cOHKy4uTmPHjlXZsmU1ZcoURUVFafny5SpTxq7eNgAAAAAAAAAAAADgBnZV1Z01a5YqV65sfh0SEqJLly5p/vz5Gjx4sBwcrq2K7u7urqCgoJv2s3fvXm3fvl0xMTEKCwuTJHl7eysiIkLr169XREREkb4PAAAAAAAAAAAAAEDB2NWe2dcXsrPVr19fly9fVkpKSp772bZtm9zd3RUaGmo+5uPjo/r162vbtm2FEisAAAAAAAAAAAAAoOjYVTE7N3v27FH16tVVoUIF87Hvv/9eQUFBCggIUK9evfTDDz9YXBMfHy9vb2/zPtvZfHx8FB8fXyxxAwAAAAAAAAAAAACsZ1fLjN/oxx9/VGxsrMX+2A888IAiIyNVt25d/fXXX4qJidEzzzyjTz75RMHBwZKkpKQkubm55eivYsWKOnjwYIFiMgwjX7PEJclkMsnFxaVA94XtpKamyjAMW4cBAMBNGYaR40d8AAAAAAAAAFDS2W0x+8yZMxoxYoSaNWumPn36mI8PGzbMot1DDz2kzp07a+bMmZo7d26Rx5Wenq5Dhw7l6xoXFxc1aNCgiCJCUUtISFBqaqqtwwAA4JacnZ1tHQIAAAAAAAAAFCq7LGYnJSUpKipKHh4emjZtmhwcbr4auqurq1q1aqV169aZj7m7u+vMmTM52iYmJqpixYoFis3JyUn16tXL1zXMlCrZvL29mZkNALBrcXFxtg4BAAAAAAAAAAqd3RWzr1y5oueee07Jycn6/PPPc10u/HZ8fHy0a9euHEtuJiQkyM/Pr0DxmUwmubq6FqgPlCwsEQ8AsHf8cA4AAAAAAADAnejmU55tICMjQ8OHD1d8fLzmzZun6tWr3/aalJQUffPNNwoICDAfa9mypRITE7Vr1y7zsYSEBP36669q2bJlkcQOAAAAAAAAAAAAACg8djUze9y4cdqyZYuio6N1+fJl7du3z3yuQYMGOnDggObNm6d27dqpVq1a+uuvvzR//nydO3dOH3zwgbltcHCwwsLCNGrUKI0cOVJly5bV5MmT5e/vr/bt29vgnQEAAAAAAAAAAAAA8sOuitk7duyQJE2cODHHuU2bNqlq1apKT0/X5MmTdenSJbm4uCg4OFjjxo1TYGCgRfspU6ZowoQJev3115WRkaGwsDCNHj1aZcrY1VsGAAAAAAAAAAAAAOTCriq7mzdvvm2bmJiYPPXl5uam8ePHa/z48QUNCwAAAAAAAAAAAABQzOxqz2wAAAAAAAAAAAAAACSK2QAAAABwx8rKzLJ1CLACnxsAAAAAANdYtcx4UlKS9u7dq7i4OF28eFEmk0mVKlWSr6+vgoKCVLFixcKOEwAAAKUcOSiQfw6ODlo7cpYuxJ+2dSjIo8o+tfTwpOdtHQYAAAAAAHYhz8XstLQ0rVq1Sl988YX27NmjrKzcfynu4OCgJk2a6PHHH1fnzp3l7OxcaMECAACgdCEHBQruQvxpnTt03NZhAAAAAAAA5FueitmfffaZZs2apYsXLyo0NFT//ve/1bBhQ9WuXVsVK1aUYRhKTEzUqVOndPDgQe3cuVNvvPGGpkyZosGDB+upp54q6vcBAACAOww5KAAAAAAAAFC65amYPXv2bPXv319PPPGE3Nzccm1TrVo1VatWTU2aNFGfPn10+fJlLVu2THPmzOFBIgAAAPKNHBQAAAAAAAAo3fJUzN64caPKlMnf9toVKlRQv3791KtXL6sCAwAAQOlGDgoAAAAAAACUbg55aZTfh4iFdS0AAABKL3JQAAAAAAAAoHSz6inf5cuXlZycrBo1apiPnT17VosXL1ZaWpo6dOigwMDAQgsSAAAAIAcFAAAAAAAASheritmvv/66Tp06pSVLlki69mCxe/fuOnPmjBwcHLRw4ULNmzdPzZo1K9RgAQAAUHqRgwIAACDbhQsXdPHiRZlMJlWqVEmVKlUqUH/Hjx9XTEyM9u/fr6NHj8rHx0erVq2yaNO7d299//33Oa6NjY2Vr6+v+XVycrImTJigjRs3Kj09XS1atNDo0aNVrVo1i+t++uknTZo0SYcOHVKVKlXUo0cPRUVFyWQyFei9AAAA3EmsKmbv2bNH3bt3N7/+6quv9Ndff2nx4sWqV6+e+vXrp1mzZvEgEQAAAIWGHBQAAKD0SklJ0dq1a7Vp0ybt3btXFy9etDhfqVIlBQUFKTw8XA8//LBcXV3z1f/Ro0e1detWNW7cWFlZWTIMI9d2TZo00ciRIy2OeXp6WrwePny44uLiNHbsWJUtW1ZTpkxRVFSUli9fbt4O5/jx4xowYIBCQ0M1fPhwHT58WO+++64cHR01YMCAfMUOAABwJ7OqmH3x4kVVr17d/Hrz5s267777FBQUJEnq0qWLpk+fXigBAgAAABI5KAAAQGl08eJFzZkzx7y1jL+/v9q2bavatWvL3d1dhmEoKSlJp06d0i+//KIxY8borbfe0lNPPaWoqChVrlw5T/dp06aNwsPDJUnR0dE6ePBgru3c3d3N+Wdu9u7dq+3btysmJkZhYWGSJG9vb0VERGj9+vWKiIiQJMXExKhSpUp6//335ezsrJCQEF24cEEffvihevfuLWdn53z8lQAAAO5cVhWz3d3d9ffff0uSrly5oj179mjQoEHm846Ojrpy5UrhRAgAAACIHBQAAKA0atOmjerUqaNXX31VHTp0uG1x+sKFC1q3bp2WLFmizz//XD/99FOe7uPg4FAY4Wrbtm1yd3dXaGio+ZiPj4/q16+vbdu2mYvZ27ZtU7t27SyK1hEREZo9e7b27t3LakMAAAD/x6pidnBwsD799FP5+Pjo22+/1dWrV9W2bVvz+WPHjlnMmgEAAAAKihwUAACg9Jk6dapatGiR5/aVK1dWjx491KNHD3377beFHs/333+voKAgZWZmqnHjxnrxxRf1wAMPmM/Hx8fL29s7x77XPj4+io+Pl3RtyfQ///xTPj4+OdqYTCbFx8dTzAYAAPg/VhWzX375ZfXv319Dhw6VJD3zzDO65557JEmZmZlau3ZtvpJMAAAA4HbIQQEAAEqfguR3hZ0bPvDAA4qMjFTdunX1119/KSYmRs8884w++eQTBQcHS5KSkpLk5uaW49qKFSualy5PTk6WdG3loes5OzvLxcVFiYmJVsdoGIZSUlLydY3JZJKLi4vV94Ttpaam3nSf98LEWCnZGCfIq+IYK4yTki+/48QwjBw/9ssrq4rZderU0dq1a/X777+rQoUK8vT0NJ9LTU3VmDFjdO+991oVEAAAAJAbclAAAADY0rBhwyxeP/TQQ+rcubNmzpypuXPn2igqS+np6Tp06FC+rnFxcVGDBg2KKCIUh4SEBKWmphb5fRgrJRvjBHlVHGOFcVLyWTNOrt9eJT+sKmZLkpOTU64PCytUqKDw8HBruwUAAABuihwUAACgdDp37py++eYblSlTRg899JAqVaqk48eP67333tOPP/6olJQU3XvvvRoyZIjCwsKKJSZXV1e1atVK69atMx9zd3fXmTNncrRNTExUxYoVJck8czt7hna2tLQ0paammttZw8nJSfXq1cvXNdbOkoL98Pb2LrYZtyi5GCfIq+IYK4yTki+/4yQuLs7qe+WpmP3DDz9Y1fn1+8UAAAAA+UEOCgAAAEn6/fff1aNHDyUlJUm6ti92TEyMoqKilJycLG9vb2VmZurgwYN67rnn9NFHH9lsz2kfHx/t2rUrx1KaCQkJ8vPzk3StCF6jRg3zHtrXtzEMI8de2vlhMpnk6upq9fUomViqF3nBOEFeMVaQF/kdJwX5AUOeitm9e/e2uEle1zXP75I2AAAAQDZyUAAAAEjSjBkz5OjoqNmzZ6tKlSqaOHGinn/+ebm7u2v58uWqXr26pGvF4D59+mjOnDnFUsxOSUnRN998o4CAAPOxli1baubMmdq1a5cefPBBc1y//vqrnn32WYt2mzZt0iuvvCInJydJUmxsrNzd3c37bwMAACCPxeyFCxdavE5LS9N///tfXblyRU8++aS8vb0lSfHx8Vq6dKlcXFz0yiuvFH60AAAAKDXIQQEAACBJP/30k3r06KFWrVpJkv71r3+pR48eeuutt8yFbOnacpfdu3fXxx9/nO97pKamauvWrZKk06dP6/Lly1q7dq0kqWnTpoqPj9e8efPUrl071apVS3/99Zfmz5+vc+fO6YMPPjD3ExwcrLCwMI0aNUojR45U2bJlNXnyZPn7+6t9+/bmdgMGDNDKlSvN7+XIkSOKiYnRiBEjrN5PEgAA4E6Up2J206ZNLV5PmDBBTk5OWrJkicqWLWs+3qZNG/Xs2VO9evXSt99+q9DQ0MKNFgAAAKUGOSgAAACka/tle3l5mV9n/7tWrVo52np6eury5cv5vsf58+f14osvWhzLfr1w4ULdfffdSk9P1+TJk3Xp0iW5uLgoODhY48aNU2BgoMV1U6ZM0YQJE/T6668rIyNDYWFhGj16tMqU+f+PYuvUqaOYmBhNnDhRAwcOVOXKlTVs2DD1798/37EDAADcyfJUzL7RypUr9fzzz1s8RMzm4uKiyMhIffjhh4qOji5wgAAAAIBEDgoAAFBaZWZmytHR0fzawcFBUu57L2afyy9PT08dPnz4lm1iYmLy1Jebm5vGjx+v8ePH37JdkyZNtGTJkjzHCAAAUBpZld2lpqbq3LlzNz1/7tw5paamWh0UAAAAcCNyUAAAgNIrt8J1bscAAABwZ7FqZnZISIgWLlyoRo0aWez1Iknr1q3TwoULFRYWVigBAgAAABI5KAAAQGn22muv6fXXX7c4NmjQoBwzsTMzM4szLAAAABQxq4rZb7zxhvr06aMXX3xRVatWVZ06dSRJJ06c0F9//SUvLy+NGTOmUAMFAABA6UYOCgAAUDo99thjtg4BAAAANmJVMbt69er6+uuvtXjxYm3btk1//PGHJKlevXoaMGCAnnzySZUrV65QAwUAAEDpRg4KAABQOk2YMMHWIQAAAMBGrCpmS1LZsmXVt29f9e3btzDjAQAAAG6KHBQAAAAAAAAoPawuZgMAAAAAAABAUbt06VK+r/Hw8Cj0OAAAAFD8rC5mf/vtt1q2bJlOnjyppKQkGYZhcd5kMmnjxo0FDhAAAADIRg4KAABQ+oSEhOT7mkOHDhVBJAAAAChuVhWz582bp/fee09VqlRRYGCg/P39CzsuAAAAwAI5KAAAQOlkGIbKlSunVq1a6Z577rF1OAAAAChGVhWzFy5cqObNm2vOnDlycnIq7JgAAACAHMhBAQAASqfnnntOq1ev1rp163Ts2DF17txZnTt3Vo0aNWwdGgAAAIqYgzUXJSUlqUOHDjxEBAAAQLEhBwUAACidRowYoY0bN+rTTz/Vfffdp/nz56tt27bq2bOnFi9ebNWe2gAAACgZrCpmBwQEKCEhobBjAQAAAG6KHBQAAKB0a9KkiV5//XV9++23mjVrlmrUqKFJkyYpLCxMgwYN0v79+20dIgAAAAqZVcXssWPHasOGDVq5cmVhxwMAAADkihwUAAAAkuTo6KhWrVrp3XffVWxsrJo0aaKtW7fq22+/tXVoAAAAKGRW7Zk9fPhwZWRk6NVXX9XYsWN19913y8HBsi5uMpn09ddfF0qQAAAAADkoAAAAJCk1NVUbN27U6tWrtWPHDjk5OemRRx5ReHi4rUMDAABAIbOqmO3h4SEPDw/VqVOnsOMBAAAAckUOCgAAUHplZGRo27ZtWrVqlbZs2aKMjAy1aNFCkyZNUtu2bVW2bFlbhwgAAIAiYFUx+5NPPinsOAAAAIBbKqocdOvWrZo7d67i4uJ0+fJlVa9eXeHh4RoyZIjc3NzM7TZv3qwpU6YoISFBNWvW1MCBA/XEE08USUwAAAD4/8aMGaP169fr8uXLuv/++zVq1Ch16NBB7u7utg4NAAAARcyqYjYAAABwp7h06ZICAwPVu3dveXh46OjRo5o2bZqOHj2qjz76SJL0448/asiQIeratatGjRql7777Tq+99prKly+vhx9+2MbvAAAA4M62dOlSlStXTm3atFH16tV1+PBhHT58+JbXjB49upiiAwAAQFGyupidmZmpr7/+Wt98843++OMPSVLNmjXVunVrPfLII3J0dCy0IAEAAACpaHLQyMhIi9fNmjWTs7OzxowZo7Nnz6p69eqaNWuWAgMD9eabb0qSmjdvrpMnT2rq1KkUswEAAIrBlStXtGHDhjy1NZlMFLMBAADuEFYVs5OTkzVgwAD9/PPPKl++vGrXri1J2rlzp9avX6/PPvtMMTExqlChQqEGCwAAgNKrOHNQDw8PSVJ6errS0tK0e/duvfzyyxZtIiIitGrVKp06dUqenp4FvicAAABy99tvv9k6BAAAANiIVcXsyZMn65dfftHo0aP15JNPysnJSdK1h31Lly7Vf/7zH02ePFljxowp1GABAABQehV1DpqZmamMjAzFxcVpxowZatOmjTw9PRUXF6f09HT5+PhYtPf19ZUkxcfHU8wGAAAAAAAAioBVxewNGzaoR48e6tmzp8VxJycnPf3004qPj9fatWspZgMAAKDQFHUO2rp1a509e1aS1KJFC7333nuSpMTEREmSu7u7Rfvs19nnrWUYhlJSUvLc3mQyycXFpUD3hG2lpqbKMIwivw9jpWQrrnECALkxDEMmk8nWYQAAAADWFbMvXbokb2/vm5739vYu8EM9oDTKzMqSo4ODrcOAFfjsAKDoFXUOOmfOHKWmpiouLk6zZs3SoEGDNH/+fKv7y6v09HQdOnQoz+1dXFzUoEGDIowIRS0hIUGpqalFfh/GSslWXOMEAG7G2dnZ1iFIura1y8CBAxUREZHnmNLS0rRy5UrFxMQoNja2iCMEAABAUbKqmF2nTh1t3rw5x6yYbJs3b5aXl1eBAgNKI0cHB72+6AsdO/u3rUNBPtStfpfe7PWYrcMAgDteUeeg9957ryQpODhYAQEBioyM1IYNG1SvXj1J1/bsvl5SUpIkqWLFilbfU7o2szz7HnnBLKmSz9vbu9hmZqPkKq5xAgC5iYuLs3UIZo899pgmTJig//znP2rTpo1CQkLUsGFDeXp6mlcgSUlJ0alTp3Tw4EHt3LlTW7ZskZOTkwYMGGDj6AEAAFBQVhWze/ToobfeektRUVHq27ev6tatK+naL8c/+eQT7dy5kyXGASsdO/u3Dp8+Y+swAACwO8WZg/r7+8vJyUknTpxQmzZt5OTkpPj4eLVo0cLcJj4+XpJy7KWdXyaTSa6urgXqAyULS38jLxgnAGzJnn4QFRUVpR49emjZsmX64osv9NVXX5njc3R0lCRlZmZKurY8+j333KOhQ4eqa9euqlChgs3iBgAAQOGwqpjds2dPXbhwQXPmzNH27dstOyxTRi+88IKefvrpQgkQAAAAkIo3B92/f7/S09Pl6ekpZ2dnNWvWTOvWrVPfvn3NbWJjY+Xr6ytPT89CuScAAAByV6FCBfXr10/9+vXTqVOntHfvXsXHx+vSpUuSJA8PD/n4+CgoKEi1a9e2bbAAAAAoVFYVsyVp6NCh6tmzp3bt2qXTp09LkmrVqqWQkBBVrly50AIEAAAAshVFDjpkyBA1atRI/v7+KleunH777TfFxMTI399f4eHhkqTnn39effr00dixY9WxY0ft3r1bq1at0uTJkwvtvQEAAOD2PD09+TEhAABAKWJ1MVuSKleurE6dOhVWLAAAAMBtFXYOGhgYqNjYWM2ZM0eGYahWrVrq1q2bBgwYIGdnZ0nS/fffr2nTpmnKlClatmyZatasqbffflsdO3YstDgAAAAAAAAAWLKqmL1z50599913eumll3I9P3nyZDVv3lwhISEFCg4AAADIVlQ56MCBAzVw4MDbtmvbtq3atm2br74BAAAAAAAAWM/BmotmzpypP//886bnz549q1mzZlkdFAAAAHAjclAAAAAAAACgdLGqmH3kyBE1btz4pucDAgJ0+PDhfPe7Zs0aPf/882rZsqWCgoIUGRmpZcuWyTAMi3ZLly5Vhw4dFBAQoEcffVRbtmzJ0VdycrJGjRqlpk2bKjg4WMOGDdNff/2V75gAAABgH4oqBwUAAAAAAABgn6wqZqelpSk9Pf2W569cuZLvfhcsWCAXFxdFR0dr1qxZatmypcaMGaMZM2aY26xevVpjxoxRx44dNXfuXAUFBWnIkCHat2+fRV/Dhw/Xjh07NHbsWL377rtKSEhQVFSUMjIy8h0XAAAAbK+oclAAAAAAAAAA9smqPbPvuecebdiwQc8880yOc4ZhaP369fL19c13v7NmzVLlypXNr0NCQnTp0iXNnz9fgwcPloODg6ZOnapOnTpp+PDhkqTmzZvryJEjmjFjhubOnStJ2rt3r7Zv366YmBiFhYVJkry9vRUREaH169crIiLCincNAAAAWyqqHBQAAAAlx19//aVq1arZOgwAAAAUE6tmZvfq1Us//fSThg0bpsOHDysjI0MZGRn67bff9OKLL2rfvn3q3bt3vvu9vpCdrX79+rp8+bJSUlJ08uRJHTt2TB07drRoExERoV27diktLU2StG3bNrm7uys0NNTcxsfHR/Xr19e2bdvyHRcAAABsr6hyUAAAAJQcDz30kPr3768vv/xSKSkptg4HAAAARcyqmdmRkZE6efKkZs6cqQ0bNsjB4VpNPCsrSyaTSc8//7wee+yxQglwz549ql69uipUqKA9e/ZIujbL+nq+vr5KT0/XyZMn5evrq/j4eHl7e8tkMlm08/HxUXx8fKHEBQAAgOJVnDkoAAAA7NOwYcO0atUqRUdHa9y4cWrbtq0effRRhYWFmfNDAAAA3DmsKmZL0pAhQ/Too49qw4YNOnnypCTJy8tL4eHh8vLyKpTgfvzxR8XGxmrkyJGSpMTEREmSu7u7Rbvs19nnk5KS5ObmlqO/ihUr6uDBgwWKyTCMfP/q02QyycXFpUD3he2kpqbKMIwivw/jpOQrrrECADcyDCPHj/juVMWRgwIAAMB+DRo0SIMGDdKvv/6qlStXavXq1Vq1apWqVKmiTp066ZFHHlFAQICtwwQAAEAhsbqYLV17cDhgwIDCisXCmTNnNGLECDVr1kx9+vQpkntYIz09XYcOHcrXNS4uLmrQoEERRYSilpCQoNTU1CK/D+Ok5CuusQIAuXF2drZ1CMWmKHNQAAAAlAwNGjRQgwYN9Oqrr+q7777TypUrtWLFCn3yySfy9vbWo48+qkcffVQ1a9a0dagAAAAogAIVs/ft26fdu3fr/Pnzevrpp1W3bl2lpqYqPj5edevWVfny5a3qNykpSVFRUfLw8NC0adPMSwRVrFhRkpScnKyqVatatL/+vLu7u86cOZOj38TERHMbazk5OalevXr5uqa0zJS6U3l7exfbzGyUbMU1VgDgRnFxcbYOoVgVVQ4KAACAksdkMum+++5TUlKSzp49qx07duj48eOaPn26pk6dqvDwcI0ePVrVqlWzdagAAACwglXF7LS0NL300kvatGmTeVnL1q1bq27dunJwcFD//v3Vr18/Pf/88/nu+8qVK3ruueeUnJyszz//3GK5cB8fH0lSfHy8+d/Zr52cnFS7dm1zu127duVYcjMhIUF+fn7WvGUzk8kkV1fXAvWBkoWlv5FXjBUAtlJafhBVlDkoAAAASp7sGdnr16/X5cuX5efnp5EjR+qRRx6Ro6OjVqxYodmzZ+vVV1/VggULbB0uAAAArOBgzUUffPCBvvnmG40dO1Zr1661mIlYtmxZPfzww9q0aVO++83IyNDw4cMVHx+vefPmqXr16hbna9eurbp162rt2rUWx2NjYxUSEmJeXrNly5ZKTEzUrl27zG0SEhL066+/qmXLlvmOCwAAALZXVDkoAAAASo7ffvtN77zzjlq1aqVnnnlG27ZtU9euXfXll1/qq6++0jPPPKO77rpLlSpV0oABAzRs2DDt2bPH1mEDAADASlbNzF69erWeeuopde/eXRcvXsxx3tfXN0fBOS/GjRunLVu2KDo6WpcvX9a+ffvM5xo0aCBnZ2cNHTpUL7/8sry8vNSsWTPFxsbqwIEDWrRokbltcHCwwsLCNGrUKI0cOVJly5bV5MmT5e/vr/bt21vzlgEAAGBjRZWDAgAAoOTo0qWLypUrp7Zt26pLly4KDQ01b1GYm3r16ikoKKj4AgQAAEChsqqYff78efn7+9/0vKOjo65cuZLvfnfs2CFJmjhxYo5zmzZtkqenpzp37qzU1FTNnTtXc+bMkbe3t6ZPn67g4GCL9lOmTNGECRP0+uuvKyMjQ2FhYRo9erTKlCnQNuEAAACwkaLKQQEAAFByjB8/Xh06dFD58uXz1L558+Zq3rx5EUcFAACAomJVZbdGjRqKj4+/6fmffvpJXl5e+e538+bNeWrXrVs3devW7ZZt3NzcNH78eI0fPz7fcQAAAMD+FFUOCgAAgJIhNTVVixYt0tWrV9WjRw9bhwMAAIBiYNWe2Z07d9bixYu1d+9e8zGTySRJWrJkidasWaMuXboUSoAAAACARA4KAABQ2rm4uOjUqVPmHBAAAAB3PqtmZg8aNEj79+9Xr1695OPjI5PJpAkTJigxMVFnzpxRq1at1K9fv0IOFQAAAKUZOSgAAABatGih7du366mnnrJ1KAAAACgGVhWznZ2dNW/ePH399ddat26dsrKylJaWJn9/fw0fPlyRkZH8QhIAAACFihwUAAAAgwcP1osvvqhXXnlF3bt3V+3atVW2bNkc7Tw8PIo/OAAAABQ6q4rZ0rUlHSMjIxUZGVmY8QAAAAA3RQ4KAABQunXq1EmSFBcXp1WrVt203aFDh4orJAAAABQhq4vZNzIMQ999953S0tJ03333qUKFCoXVNQAAAJArclAAAIDS5YUXXmA1HgAAgFLEqmL25MmT9dNPP+mTTz6RdO0hYv/+/fXdd9/JMAzVrFlTCxYskJeXV6EGCwAAgNKLHBQAAABDhw61dQgAAAAoRg7WXLRu3ToFBgaaX69du1a7du3S8OHDNXv2bGVmZmratGmFFiQAAABADgoAAIAbXblyRVeuXLF1GAAAACgiVs3MPnv2rOrUqWN+vWHDBtWrV0/PPfecJKlHjx767LPPCidCAAAAQOSgAAAAuOaPP/7QtGnTtHXrVl28eFGSVKlSJbVq1UpDhgxRrVq1bBwhAAAACotVxewyZcooLS1N0rXlHXft2qUuXbqYz1epUsWcSAIAAACFgRwUAAAAv//+u55++mklJyfrwQcflK+vryQpPj5eX331lbZs2aJPP/1UPj4+No4UAAAAhcGqYvY999yjr7/+Wo888og2bNigS5cuqVWrVubzf/zxhypVqlRoQQIAAADkoAAAAHjvvffk4OCgL774Qv7+/hbnjhw5on79+um9997TjBkzbBQhAAAACpNVxewXXnhBgwYNUvPmzSVJTZo0Mf9bkrZu3aqAgIDCiRAAAAAQOSgAAACkH374Qc8880yOQrYk+fn5qWfPnlqwYEHxBwYAAIAiYVUxOzQ0VF988YV27Nghd3d3RUREmM8lJibq/vvvV9u2bQstSAAAAIAcFAAAABkZGSpXrtxNz7u4uCgjI6MYIwIAAEBRsqqYLUn16tVTvXr1chyvWLGiRo0aVaCgAAA3l5mVJUcHB1uHASvw2QEFRw4KAABQutWvX19Lly5Vt27d5ObmZnHu8uXLWrZsmRo0aGCj6AAAAFDY8lTMTk1NlYuLi1U3KMi1AICcHB0cNHrTUiVcPGfrUJAP3pWq6u223WwdBlCikIMCAADgRkOHDlVUVJQ6duyoxx9/XHXr1pUkJSQk6IsvvtClS5f0+uuv2zZIAAAAFJo8FbMfeugh9e7dW08++aSqVauWp47Pnj2rxYsX69NPP9Xu3bsLFCQAwFLCxXM6/Peftg4DAIoUOSgAAABuFBISojlz5uidd97RnDlzLM7Vr19f//3vf9W8eXMbRQcAAIDClqdi9htvvKHp06dr5syZatKkiUJCQtSwYUN5enrK3d1dhmEoKSlJp06d0sGDB7Vz507t379fderU0RtvvFHU7wEAAAB3IHJQAAAA5ObBBx/Ul19+qXPnzumPP/6QJNWsWVNVq1a1cWQAAAAobHkqZkdEROjhhx/W5s2btWLFCn344YdKT0+XyWSyaGcYhpycnBQaGqqpU6eqTZs2cmBvUAAAAFiBHBQAAAC3UrVqVQrYAAAAd7g8FbMlycHBQeHh4QoPD1daWpoOHjyo+Ph4Xbp0SZLk4eEhHx8fNWrUSM7OzkUVLwAAAEoRclAAAADk5ocfftDJkyeVlJQkwzAszplMJvXr1882gQEAAKBQ5bmYfT1nZ2c1adJETZo0Kex4AAAAgFyRgwIAAODQoUMaPny4Tpw4kaOInY1iNgAAwJ3DqmI2AAAAAAAAABS31157TRcuXNC4ceMUGBgoNzc3W4cEAACAIkQxGwAAAAAAAECJEBcXp2HDhunJJ5+0dSgAAAAoBg62DgAAABSNLCPL1iHACnxuAAAAwM3VqVNHJpPJ1mEAAACgmDAzGwCAO5SDyUErfpujcyl/2DoU5FFV15p6/N6Btg4DAAAAsFtDhw7VxIkT1blzZ1WvXt3W4QAAAKCIUcwGAOAOdi7lD525fMLWYQAAAABAoWjfvr2uXr2qhx9+WM2bN9fdd98tR0fHHO1Gjx5tg+gAAABQ2ChmAwAAAAAAACgRvv/+e40dO1apqanasmVLrm1MJhPFbAAAgDuE1cXsP/74Qx9++KF2796tixcvasaMGXrggQd04cIFzZw5U48//rgaNGhQmLECAACglCMHBQAAKN3eeustVahQQVOnTlXjxo1VoUIFW4cEAACAIuRgzUVxcXF67LHHtGbNGnl6eio5OVkZGRmSpMqVK2vPnj1atGhRoQYKAACA0o0cFAAAACdOnNCAAQMUGhpKIRsAAKAUsGpm9n//+1+5ublpyZIlkqQHH3zQ4nyrVq20Zs2agkcHAAAA/B9yUAAAANSrV0/Jycm2DgMAAADFxKqZ2T/88IN69OihypUry2Qy5Thfs2ZNnT17tsDBAQAAANnIQQEAADBy5Eh9/vnnOnDggK1DAQAAQDGwama2YRgqV67cTc9fuHBBzs7OVgcFAAAA3IgcFAAAAB999JHKly+v7t27q169eqpRo4YcHCzn65hMJs2aNctGEQIAAKAwWVXMbtCggbZu3aqePXvmOJeRkaHVq1ercePGBQ4OAAAAyEYOCgAAgCNHjkiSatSooX/++UdxcXE52uS2ig8AAABKJquK2QMHDtSgQYP0xhtvqFOnTpKk8+fPa+fOnfrwww8VHx+v119/vVADBQAAQOlGDgoAAIDNmzfbOgQAAAAUI6uK2a1atdKECRM0fvx4LVmyRJL0yiuvyDAMVahQQZMmTdIDDzxQqIECAACgdCMHBQAAAAAAAEoXq4rZktSlSxe1b99eO3bs0PHjx5WVlSUvLy+FhYWpQoUKhRkjAAAAIIkcFAAAAFJmZqbWrl2r3bt36/z58xo2bJj8/f2VnJysXbt2qUmTJrrrrrtsHSYAAAAKgdXFbElydXVVu3btCisWAAAA4LbIQQEAAEqvpKQkPfvsszpw4IBcXV2VmpqqXr16SbqWJ7799tvq0qWLXnrpJRtHCgAAgMJQoGJ2enq6zp49q6SkJBmGkeN8w4YNC9I9AAAAkAM5KAAAQOn17rvv6ujRo4qJiVH9+vX14IMPms85OjqqQ4cO2rp1K8VsAACAO4RVxeykpCRNmjRJK1euVHp6eo7zhmHIZDLp0KFDBQ4QAAAAkMhBAQAAIG3atEm9e/dWaGioLl68mON83bp19cUXX9ggMgAAABQFq4rZ0dHR2rJliyIiItS4cWO5ubkVdlwAAACABXJQAAAAJCcny9PT86bnMzIylJmZWYwRAQAAoChZVczesWOHevfurVGjRhV2PAAAAECuyEEBAADg5eWlX3755abnd+zYIV9f32KMCAAAAEXJwZqLPDw8VKdOncKOBQAAALgpclAAAAB07dpVy5cvV2xsrAzDkCSZTCalpaVp8uTJ+vbbb9W9e3cbRwkAAIDCYtXM7CeffFKrV69Wjx495OBgVT0cAAAAyBdyUAAAAPTt21dxcXF66aWX5O7uLkl6+eWXdenSJWVkZKh79+7q1q2bjaMEAABAYbGqmP3CCy8oLS1NTzzxhCIjI1W9enU5OjrmaNe+ffsCBwgAAABI5KAAAAC4Ngv77bffVpcuXbRu3TodP35cWVlZ8vLyUseOHfXAAw/YOkQAAAAUIquK2WfPntXu3bt16NAhHTp0KNc2JpPppucAAACA/CIHBQAAQLb7779f999/v63DAAAAQBGzqpg9atQo/fLLL3ruuecUGBgoNze3wo4LAAAAsEAOCgAAAAAAAJQuVhWz9+zZo6ioKA0bNqyw4wEAAAByRQ4KAABQOg0aNChf7U0mk2bNmpWva44fP66YmBjt379fR48elY+Pj1atWpWj3dKlSzVv3jz98ccf8vb21ogRI9S6dWuLNsnJyZowYYI2btyo9PR0tWjRQqNHj1a1atUs2v3000+aNGmSDh06pCpVqqhHjx6KioqSyWTKV+wAAAB3MquK2XfddZcqVqxY2LEAAAAAN0UOCgAAUDp98803Klu2rO666y4ZhnHb9tYUg48ePaqtW7eqcePGysrKyvU+q1ev1pgxYzRo0CA1b95csbGxGjJkiP73v/8pKCjI3G748OGKi4vT2LFjVbZsWU2ZMkVRUVFavny5ypS59jj2+PHjGjBggEJDQzV8+HAdPnxY7777rhwdHTVgwIB8xw8AAHCnsqqY/cwzz2jx4sXq2rWrypcvX9gxAQAAADmQgwIAAJRO1atX19mzZ1WpUiV17txZnTp1UtWqVQv1Hm3atFF4eLgkKTo6WgcPHszRZurUqerUqZOGDx8uSWrevLmOHDmiGTNmaO7cuZKkvXv3avv27YqJiVFYWJgkydvbWxEREVq/fr0iIiIkSTExMapUqZLef/99OTs7KyQkRBcuXNCHH36o3r17y9nZuVDfHwAAQEllVTE7LS1NZcqUUfv27dWxY0fdfffdcnR0tGhjMpnUr1+/wogRAAAAIAcFAAAopbZu3arvv/9eq1at0qxZs/Tf//5XDzzwgB555BF16NBBFSpUKPA9HBwcbnn+5MmTOnbsmF555RWL4xEREXrnnXeUlpYmZ2dnbdu2Te7u7goNDTW38fHxUf369bVt2zZzMXvbtm1q166dRdE6IiJCs2fP1t69e9WsWbMCvycAAIA7gVXF7EmTJpn/vWjRolzb8CARAAAAhYkcFAAAoPRq2rSpmjZtqjFjxmjr1q1atWqV3nrrLY0bN04tW7ZU586d1aZNmyKb0RwfHy/p2izr6/n6+io9PV0nT56Ur6+v4uPj5e3tnWOpcx8fH3MfKSkp+vPPP+Xj45OjjclkUnx8PMVsAACA/2NVMXvTpk2FHQcAAABwS+SgAAAAcHJyUnh4uMLDw/XPP/9ow4YNWrx4sUaMGKEhQ4bohRdeKJL7JiYmSpLc3d0tjme/zj6flJQkNze3HNdXrFjRvHR5cnJyrn05OzvLxcXF3Jc1DMNQSkpKvq4xmUxycXGx+p6wvdTU1DztJ19QjJWSjXGCvCqOscI4KfnyO04Mw8jxY7+8sqqYXatWLatudjvHjx9XTEyM9u/fr6NHj8rHx0erVq2yaNO7d299//33Oa6NjY2Vr6+v+XVycrImTJigjRs3Kj09XS1atNDo0aNVrVq1IokdAAAARauoclAAAACUPGlpadq+fbs2bdqkX3/9VWXLliVflJSenq5Dhw7l6xoXFxc1aNCgiCJCcUhISFBqamqR34exUrIxTpBXxTFWGCclnzXjxNoVdKwqZheVo0ePauvWrWrcuLGysrJuWtFv0qSJRo4caXHM09PT4vXw4cMVFxensWPHqmzZspoyZYqioqK0fPlylSljV28bAAAAAAAAwG1kZWVpx44dWr16tTZu3KgrV64oJCREb731ltq1aydXV9ciu3fFihUlXZtAU7VqVfPxpKQki/Pu7u46c+ZMjusTExPNbbJnbmfP0M6Wlpam1NRUcztrODk5qV69evm6xtpZUrAf3t7exTbjFiUX4wR5VRxjhXFS8uV3nMTFxVl9rzxVddu0aSMHBwetWbNGTk5OatOmzW0Hmslk0saNG/MVTJs2bRQeHi5Jio6ONi+9cyN3d3cFBQXdtJ+9e/dq+/btiomJUVhYmKRrf9SIiAitX79eERER+YoLAAAAxa+4clAAAADYt59++kmrVq3S2rVr9f/au/vwmO78/+OviUREJSFbRSuahCaEROImiUjdthShpc0qW0rvdNVt6bcottpdVBV11xIUZVuU7bZoWkUpTd0t1aJURTfSKktzowlJ5Pz+8JupMSGTSDIz8Xxcl+syZz7nnM+Z+cw5r8n7zDnp6elq2rSpRo4cqS5dusjPz69c+mC+v/WJEyes7nV94sQJeXh4yN/f39IuOTnZ5lKaKSkpCg4OliRVrVpVderUsdxD++o2hmHY3Eu7OEwmU5kW9eGcuFQv7ME4gb0YK7BHccfJzZzAYFcxOyoqSiaTSW5ublaPS5t5+Tdr+/bt8vHxUevWrS3TgoKC1KhRI23fvp1iNgAAgAsorwwKAAAA59a3b19VqVJFbdq0UXx8vOVy4r/88ot++eWXQudp3LhxqfbB399fAQEBSkpKsvwYR7py68NWrVpZLpvZpk0bzZ8/X8nJyYqNjZV0pUh9+PBhPfXUU5b52rRpo82bN+uFF16Qh4eHZVk+Pj6KjIws1b4DAAC4MruK2VOnTtWePXuUkZEhPz8/TZ06taz7dUO7d+9WRESELl++rKZNm2r48OFq2bKl5fkTJ04oMDDQ5o+dQUFBNmc8AgAAwDk5WwYFAACA41y8eFGfffaZNm3adMN25l9EF/e+0Tk5Odq2bZskKS0tTRcuXFBSUpKkKydV+vn5aejQoRo9erTq1aun6Ohobdy4UQcPHtSKFSssy4mMjFRcXJzGjRunF198UZ6enpo5c6ZCQkLUqVMnS7snn3xSH3/8sUaNGqU+ffro2LFjWrx4sUaOHFni+0kCAABURHbfPLp///6aNm2aunfvXpb9KVLLli314IMPKiAgQGfOnNHixYs1cOBAvfvuu5azFjMzMy33nrmar6/vdS9dbi/DMJSdnV2seUwmE5dlcGE5OTnldi8RxolrK4+xwjhxfexTYI/ijpNrL2FYkThLBgUAAIDjTJkypczXce7cOQ0fPtxqmvnx8uXLFR0drfj4eOXk5CgxMVELFy5UYGCg5s6da/NL6lmzZmnKlCmaOHGi8vPzFRcXp/Hjx8vd/Y8/xd59991avHixpk6dqmeeeUZ+fn4aNmyYnnjiiTLfVgAAAFdidzG7PP7wbo9hw4ZZPW7Xrp3i4+M1f/58JSYmlvn68/Lyin1mp5eXl0JDQ8uoRyhrKSkpysnJKfP1ME5cX3mMFcaJ62OfAnuUZJxU1F9vOEsGBQAAgOP07NmzzNdRt25dHT16tMh2CQkJSkhIuGEbb29vTZ48WZMnT75hu2bNmmn16tXF6icAAMCtxu5itrOqWrWq2rZtq08//dQyzcfHR6dPn7Zpm5GRIV9f35tan4eHhxo0aFCseSrqL6VuFYGBgeX2K0q4tvIYK4wT18c+BfYo7jg5fvx4GfYGAAAAAAAAAByjWMVsV/nDeFBQkJKTk20uuZmSkqLg4OCbWrbJZFLVqlVvtotwIVymF/ZirMAejBPYo7jjxFUyWklV9O0DAAAAAAAAULhiFbNfeOEFvfDCC3a1NZlMOnz4cIk6VRzZ2dn64osvFBYWZpnWpk0bzZ8/X8nJyYqNjZV0pZB9+PBhPfXUU2XeJwAAAJQeZ8ygAAAAAAAAAMpesYrZsbGxCggIKKOuSDk5Odq2bZskKS0tTRcuXFBSUpIkKSoqSidOnNCiRYt0//3366677tKZM2f0zjvv6OzZs3rzzTcty4mMjFRcXJzGjRunF198UZ6enpo5c6ZCQkLUqVOnMus/AAAASl9ZZ1AAAAAAAAAAzqlYxeyHHnpI3bt3L6u+6Ny5cxo+fLjVNPPj5cuXq3bt2srLy9PMmTOVnp4uLy8vRUZGatKkSQoPD7eab9asWZoyZYomTpyo/Px8xcXFafz48XJ3d/nbhAMAANxSyjqDAgAAAAAAAHBOTlXZrVu3ro4ePXrDNosXL7ZrWd7e3po8ebImT55cGl0DAABABfXJJ5/oo48+0qFDh5SZmam7775b/fr108MPP2x1v+41a9Zo0aJF+vnnnxUYGKiRI0eqffv2Duw5AAAAAAAAULG5OboDAAAAgCMtXbpUXl5eGjNmjN566y21adNGEyZM0Lx58yxtNmzYoAkTJqhLly5KTExURESEhgwZogMHDjiu4wAAAAAAAEAF51S/zAYAAADK21tvvSU/Pz/L41atWik9PV3vvPOOBg8eLDc3N82ePVvdunXTiBEjJEkxMTE6duyY5s2bp8TERAf1HAAAAAAAAKjY7P5l9vfff8+9CgEAAFCuyiODXl3INmvUqJEuXLig7Oxspaam6uTJk+rSpYtVm65duyo5OVm5ubll2j8AAAAAAADgVsVlxgEAAIBr7Nu3T7Vq1VK1atV04sQJSVJgYKBVm/r16ysvL0+pqamO6CIAAAAAAABQ4XGZcQAAAOAqe/fu1caNG/Xiiy9KkjIyMiRJPj4+Vu3Mj83Pl5RhGMrOzra7vclkkpeX102tE46Vk5MjwzDKfD2MFddWXuMEAApjGIZMJpOjuwEAAABQzAYAAADMTp8+rZEjRyo6Olr9+/cvl3Xm5eXpyJEjdrf38vJSaGhoGfYIZS0lJUU5OTllvh7Gimsrr3ECANdTuXJlR3cBAAAAoJgNAAAASFJmZqaefvppVa9eXXPmzJGb25U78vj6+kqSsrKyVLNmTav2Vz9fUh4eHmrQoIHd7fmVlOsLDAwst19mw3WV1zgBgMIcP37c0V0AAAAAJFHMBgAAAHTx4kUNGjRIWVlZWrVqlby9vS3PBQUFSZJOnDhh+b/5sYeHh/z9/W9q3SaTSVWrVr2pZcC1cOlv2INxAsCROCEKAAAAzsLN0R0AAAAAHCk/P18jRozQiRMntGjRItWqVcvqeX9/fwUEBCgpKclq+saNG9WqVSsuwQkAAAAAAACUEX6ZDQAAgFvapEmTtHXrVo0ZM0YXLlzQgQMHLM+FhoaqcuXKGjp0qEaPHq169eopOjpaGzdu1MGDB7VixQrHdRwAAAAAAACo4ChmAwAA4Ja2c+dOSdLUqVNtntu8ebPq1q2r+Ph45eTkKDExUQsXLlRgYKDmzp2ryMjI8u4uAAAAAAAAcMugmA0AAIBb2pYtW+xql5CQoISEhDLuDQAAAAAAAAAz7pkNAAAAAAAAAAAAAHA6FLMBAAAAAAAAAAAAAE6HYjYAAAAAAAAAAAAAwOlQzAYAAAAAAAAAAAAAOB2K2QAAAAAAAAAAAAAAp0MxGwAAAAAAAAAAAADgdChmAwAAAAAAAAAAAACcDsVsAAAAAAAAAAAAAIDToZgNAAAAAAAAAAAAAHA6FLMBAAAAAAAAAAAAAE6HYjYAAAAAAAAAAAAAwOlQzAYAAAAAAAAAAAAAOB2K2QAAAAAAAAAAAAAAp0MxGwAAAAAAAAAAAADgdChmAwAAAAAAAAAAAACcDsVsAAAAAAAAAAAAAIDToZgNAAAAAAAAAAAAAHA6FLMBAAAAAAAAAAAAAE6HYjYAAAAAAAAAAAAAwOlQzAYAAAAAAAAAAAAAOB2K2QAAAAAAAAAAAAAAp0MxGwAAAAAAAAAAAADgdChmAwAAAAAAAAAAAACcDsVsAAAAAAAAAAAAAIDToZgNAAAAAAAAAAAAAHA6FLMBAAAAAAAAAAAAAE6HYjYAAAAAAAAAAAAAwOlQzAYAAAAAAAAAAAAAOB2K2QAAAAAAAAAAAAAAp0MxGwAAAAAAAAAAAADgdChmAwAAAAAAAAAAAACcDsVsAAAAAAAAAAAAAIDToZgNAAAAAAAAAAAAAHA6FLMBAAAAAAAAAAAAAE6HYjYAAAAAAAAAAAAAwOlQzAYAAAAAAAAAAAAAOB2K2QAAAAAAAAAAAAAAp0MxGwAAAAAAAAAAAADgdJyqmP3TTz9p4sSJevDBBxUaGqr4+PhC261Zs0adO3dWWFiYevTooa1bt9q0ycrK0rhx4xQVFaXIyEgNGzZMZ86cKetNAAAAAAAAAAAAAACUAqcqZv/www/atm2b7r77btWvX7/QNhs2bNCECRPUpUsXJSYmKiIiQkOGDNGBAwes2o0YMUI7d+7Uyy+/rOnTpyslJUVPP/208vPzy2FLAAAAAAAAAAAAAAA3w93RHbhahw4ddN9990mSxowZo++++86mzezZs9WtWzeNGDFCkhQTE6Njx45p3rx5SkxMlCTt379fO3bs0OLFixUXFydJCgwMVNeuXfXZZ5+pa9eu5bNBAAAAAAAAAAAAAIAScapfZru53bg7qampOnnypLp06WI1vWvXrkpOTlZubq4kafv27fLx8VHr1q0tbYKCgtSoUSNt37699DsOAAAAAAAAAAAAAChVTlXMLsqJEyckXfmV9dXq16+vvLw8paamWtoFBgbKZDJZtQsKCrIsAwAAAAAAAAAAAADgvJzqMuNFycjIkCT5+PhYTTc/Nj+fmZkpb29vm/l9fX0LvXR5cRiGoezs7GLNYzKZ5OXldVPrhePk5OTIMIwyXw/jxPWVx1hhnLg+9imwR3HHiWEYNifxAQAAAAAAAICrc6litjPIy8vTkSNHijWPl5eXQkNDy6hHKGspKSnKyckp8/UwTlxfeYwVxonrY58Ce5RknFSuXLmMegMAAAAAAAAAjuFSxWxfX19JUlZWlmrWrGmZnpmZafW8j4+PTp8+bTN/RkaGpU1JeXh4qEGDBsWah19KubbAwMBy+xUlXFt5jBXGietjnwJ7FHecHD9+vAx7AwAAAAAAAACO4VLF7KCgIElX7olt/r/5sYeHh/z9/S3tkpOTbS65mZKSouDg4Jvqg8lkUtWqVW9qGXAtXKYX9mKswB6ME9ijuOOEkxcAAAAAAAAAVERuju5Acfj7+ysgIEBJSUlW0zdu3KhWrVpZLq/Zpk0bZWRkKDk52dImJSVFhw8fVps2bcq1zwAAAAAAAAAAAACA4nOqX2bn5ORo27ZtkqS0tDRduHDBUriOioqSn5+fhg4dqtGjR6tevXqKjo7Wxo0bdfDgQa1YscKynMjISMXFxWncuHF68cUX5enpqZkzZyokJESdOnVyyLYBAAAAAAAAAAAAAOznVMXsc+fOafjw4VbTzI+XL1+u6OhoxcfHKycnR4mJiVq4cKECAwM1d+5cRUZGWs03a9YsTZkyRRMnTlR+fr7i4uI0fvx4ubs71SYDAAAAAAAAAAAAAArhVJXdunXr6ujRo0W2S0hIUEJCwg3beHt7a/LkyZo8eXJpdQ8AAAAAAAAAAAAAUE5c6p7ZAAAAAAAAAAAAAIBbA8VsAAAAAAAAAAAAAIDToZgNAAAAAAAAAAAAAHA6FLMBAAAAAAAAAAAAAE6HYjYAAAAAAAAAAAAAwOlQzAYAAAAAAAAAAAAAOB2K2QAAAAAAAAAAAAAAp0MxGwAAAACAW5hRUODoLqCEeO8AAAAAVHTuju4AAAAAAABwHJObm1LffFOX0tIc3RUUg+ddd8l/+HBHdwMAAAAAyhTFbAAAAAAAbnGX0tJ0MSXF0d0AAAAAAMAKlxkHAAAAAAAAAAAAADgditkAAAAAAAAAAAAAAKdDMRsAAAAAAAAAAAAA4HQoZgMAAAAAAAAAAAAAnA7FbAAAAAAAAAAAAACA06GYDQAAAAAAAABFWLdunUJCQmz+TZ8+3ardmjVr1LlzZ4WFhalHjx7aunWrzbKysrI0btw4RUVFKTIyUsOGDdOZM2fKa1MAAABchrujOwAAAAAAAAAArmLRokXy9va2PK5Vq5bl/xs2bNCECRP07LPPKiYmRhs3btSQIUO0cuVKRUREWNqNGDFCx48f18svvyxPT0/NmjVLTz/9tNauXSt3d/5kCwAAYEYyAgAAAAAAAAA7NW7cWH5+foU+N3v2bHXr1k0jRoyQJMXExOjYsWOaN2+eEhMTJUn79+/Xjh07tHjxYsXFxUmSAgMD1bVrV3322Wfq2rVruWwHAACAK+Ay4wAAAAAAAABwk1JTU3Xy5El16dLFanrXrl2VnJys3NxcSdL27dvl4+Oj1q1bW9oEBQWpUaNG2r59e7n2GQAAwNlRzAYAAAAAAAAAO8XHx6tRo0bq2LGjFixYoMuXL0uSTpw4IenKr6yvVr9+feXl5Sk1NdXSLjAwUCaTyapdUFCQZRkAAAC4gsuMAwAAAAAAAEARatasqaFDh6pp06YymUzasmWLZs2apV9//VUTJ05URkaGJMnHx8dqPvNj8/OZmZlW99w28/X11XfffXdTfTQMQ9nZ2cWax2QyycvL66bWC8fKycmRYRhlvh7GimtjnMBe5TFWGCeur7jjxDAMmxP57EUxGwAAAAAAAACKcO+99+ree++1PI6Li5Onp6eWLVumZ5991oE9+0NeXp6OHDlSrHm8vLwUGhpaRj1CeUhJSVFOTk6Zr4ex4toYJ7BXeYwVxonrK8k4qVy5conWRTEbAAAAAAAAAEqgS5cuWrJkiY4cOSJfX19JUlZWlmrWrGlpk5mZKUmW5318fHT69GmbZWVkZFjalJSHh4caNGhQrHlK+ispOI/AwMBy+8UtXBfjBPYqj7HCOHF9xR0nx48fL/G6KGYDAAAAAAAAwE0KCgqSdOWe2Ob/mx97eHjI39/f0i45OdnmcpspKSkKDg6+qT6YTCZVrVr1ppYB18OlemEPxgnsxViBPYo7Tm7mBAa3Es8JAAAAVBA//fSTJk6cqAcffFChoaGKj48vtN2aNWvUuXNnhYWFqUePHtq6dWs59xQAAADOZOPGjapUqZJCQ0Pl7++vgIAAJSUl2bRp1aqV5dKabdq0UUZGhpKTky1tUlJSdPjwYbVp06Zc+w8AAODs+GU2AAAAbnk//PCDtm3bpqZNm6qgoKDQyyRt2LBBEyZM0LPPPquYmBht3LhRQ4YM0cqVKxUREVH+nQYAAEC5evLJJxUdHa2QkBBJ0ubNm7V69Wr179/fclnxoUOHavTo0apXr56io6O1ceNGHTx4UCtWrLAsJzIyUnFxcRo3bpxefPFFeXp6aubMmQoJCVGnTp0csm0AAADOimI2AAAAbnkdOnTQfffdJ0kaM2aMvvvuO5s2s2fPVrdu3TRixAhJUkxMjI4dO6Z58+YpMTGxPLsLAAAABwgMDNTatWt1+vRpFRQUKCAgQOPGjVO/fv0sbeLj45WTk6PExEQtXLhQgYGBmjt3riIjI62WNWvWLE2ZMkUTJ05Ufn6+4uLiNH78eLm78+daAACAq5GOAAAAcMtzc7vx3XdSU1N18uRJvfDCC1bTu3btqmnTpik3N9dy2UgAAABUTOPHj7erXUJCghISEm7YxtvbW5MnT9bkyZNLo2sAAAAVFvfMBgAAAIpw4sQJSVd+jXO1+vXrKy8vT6mpqY7oFgAAAAAAAFCh8ctsAAAAoAgZGRmSJB8fH6vp5sfm50vCMAxlZ2fb3d5kMsnLy6vE64Pj5eTkFHpf9tLGWHFtjBPYq7zGCm4thmHIZDI5uhsAAAAAxWwAAADAkfLy8nTkyBG723t5eSk0NLQMe4SylpKSopycnDJfD2PFtTFOYK/yGiu49XALFQAAADgDitkAAABAEXx9fSVJWVlZqlmzpmV6Zmam1fMl4eHhoQYNGtjdnl9Jub7AwMBy+8UtXBfjBPYqr7GCW8vx48cd3QUAAABAEsVsAAAAoEhBQUGSrtw72/x/82MPDw/5+/uXeNkmk0lVq1a96T7CdXBJZ9iDcQJ7MVZQFjjRBQAAAM7CzdEdAAAAAJydv7+/AgIClJSUZDV948aNatWqFZfhBAAAAAAAAMoAv8wGAADALS8nJ0fbtm2TJKWlpenChQuWwnVUVJT8/Pw0dOhQjR49WvXq1VN0dLQ2btyogwcPasWKFY7sOgAAAAAAAFBhUcwGAADALe/cuXMaPny41TTz4+XLlys6Olrx8fHKyclRYmKiFi5cqMDAQM2dO1eRkZGO6DIAAAAAAABQ4VHMBgAAwC2vbt26Onr0aJHtEhISlJCQUA49AgAAAAAAAMA9swEAAAAAAAAAAAAATodiNgAAAAAAAAAAAADA6VDMBgAAAAAAwA0ZBQWO7gJKiPcOAAAArox7ZgMAAAAAAOCGTG5u+m3Hh8rP+J+ju4JicPe9XTXiHnJ0NwAAAIASo5gNAAAAAACAIuVn/E955087uhsAAAAAbiFcZhwAAAAAAAAAAAAA4HQoZgMAAAAAAAAAAAAAnA7FbAAAAAAAAAAAAACA06GYDQAAAAAAAAAAAABwOhSzAQAAAAAAAAAAAABOh2I2AAAAAAAAAAAAAMDpUMwGAAAAAAAAAAAAADgditkAAAAAAAAAAAAAAKfjcsXsdevWKSQkxObf9OnTrdqtWbNGnTt3VlhYmHr06KGtW7c6qMcAAAAAAAAAAAAAgOJyd3QHSmrRokXy9va2PK5Vq5bl/xs2bNCECRP07LPPKiYmRhs3btSQIUO0cuVKRUREOKC3AAAAAAAAAAAAAIDicNliduPGjeXn51foc7Nnz1a3bt00YsQISVJMTIyOHTumefPmKTExsRx7CQAAAAAAAAAAAAAoCZe7zHhRUlNTdfLkSXXp0sVqeteuXZWcnKzc3FwH9QwAAAAAAAAAAAAAYC+XLWbHx8erUaNG6tixoxYsWKDLly9Lkk6cOCFJCgwMtGpfv3595eXlKTU1tdz7CgAAAAAAAAAAAAAoHpe7zHjNmjU1dOhQNW3aVCaTSVu2bNGsWbP066+/auLEicrIyJAk+fj4WM1nfmx+vqQMw1B2dnax5jGZTPLy8rqp9cJxcnJyZBhGma+HceL6ymOsME5cH/sU2KO448QwDJlMpjLsEQAAAAAAAACUP5crZt9777269957LY/j4uLk6empZcuW6dlnny3z9efl5enIkSPFmsfLy0uhoaFl1COUtZSUFOXk5JT5ehgnrq88xgrjxPWxT4E9SjJOKleuXEa9AQAAAAAAAADHcLlidmG6dOmiJUuW6MiRI/L19ZUkZWVlqWbNmpY2mZmZkmR5vqQ8PDzUoEGDYs3DL6VcW2BgYLn9ihKurTzGCuPE9bFPgT2KO06OHz9ehr0BAAAAAAAAAMeoEMXsqwUFBUm6cu9s8//Njz08POTv739TyzeZTKpatepNLQOuhcv0wl6MFdiDcQJ7FHeccPICAAAAAAAAgIrIzdEdKA0bN25UpUqVFBoaKn9/fwUEBCgpKcmmTatWrbgEJwAAAAAAAAAAAAC4AJf7ZfaTTz6p6OhohYSESJI2b96s1atXq3///pbLig8dOlSjR49WvXr1FB0drY0bN+rgwYNasWKFI7sOAAAAAAAAAAAAALCTyxWzAwMDtXbtWp0+fVoFBQUKCAjQuHHj1K9fP0ub+Ph45eTkKDExUQsXLlRgYKDmzp2ryMhIB/YcAAAAAAAAAAAAAGAvlytmjx8/3q52CQkJSkhIKOPeAAAAAAAAAAAAAADKQoW4ZzYAAAAAAAAAAAAAoGKhmA0AAAAAAAAAAAAAcDoUswEAAAAAAAAAAAAATodiNgAAAAAAAAAAAADA6VDMBgAAAAAAAAAAAAA4HYrZAAAAAAAAAAAAAACnQzEbAAAAAAAAAAAAAOB0KGYDAAAAAAAAAAAAAJwOxWwAAAAAAAAAAAAAgNOhmA0AAAAAAAAAAAAAcDoUswEAAAAAAAAAAAAATodiNgAAAAAAAAAAAADA6VDMBgAAAAAAAAAAAAA4HYrZAAAAAAAAAAAAAACnQzEbAAAAAAAAAAAAAOB0KGYDAAAAAAAAAAAAAJwOxWwAAAAAAAAAAAAAgNOhmA0AAAAAAAAAAAAAcDoUswEAAAAAAAAAAAAATodiNgAAAAAAAAAAAADA6VDMBgAAAAAAAAAAAAA4HYrZAAAAAAAAAAAAAACnQzEbAAAAAAAAAAAAAOB0KGYDAAAAAAAAAAAAAJwOxWwAAAAAAAAAAAAAgNOhmA0AAAAAAAAAAAAAcDoUswEAAAAAAAAAAAAATodiNgAAAAAAAAAAAADA6VDMBgAAAAAAAAAAAAA4HYrZAAAAAAAAAAAAAACnQzEbAAAAAAAAAAAAAOB0KGYDAAAAAAAAAAAAAJwOxWwAAAAAAAAAAAAAgNOhmA0AAAAAAAAAAAAAcDoUswEAAAAAAAAAAAAATodiNgAAAAAAAAAAAADA6VDMBgAAAAAAAAAAAAA4HYrZAAAAAAAAAAAAAACnQzEbAAAAAAAAAAAAAOB0KGYDAAAAAAAAAAAAAJwOxWwAAAAAAAAAAAAAgNOhmA0AAAAAAAAAAAAAcDoUswEAAAAAAAAAAAAATodiNgAAAAAAAAAAAADA6VDMBgAAAAAAAAAAAAA4HYrZAAAAAAAAAAAAAACnQzEbAAAAAAAAAAAAAOB0KGYDAAAAAAAAAAAAAJwOxWwAAAAAAAAAAAAAgNOhmA0AAAAAAAAAAAAAcDoVupj9448/auDAgYqIiFDr1q01bdo05ebmOrpbAAAAcFHkSwAAAJQm8iUAAMCNuTu6A2UlIyNDjz/+uAICAjRnzhz9+uuvmjp1qi5evKiJEyc6unsAAABwMeRLAAAAlCbyJQAAQNEqbDH7/fff1++//665c+eqevXqkqTLly9r0qRJGjRokGrVquXYDgIAAMClkC8BAABQmsiXAAAARauwlxnfvn27WrVqZQmCktSlSxcVFBRo586djusYAAAAXBL5EgAAAKWJfAkAAFC0ClvMPnHihIKCgqym+fj4qGbNmjpx4oSDegUAAABXRb4EAABAaSJfAgAAFK3CXmY8MzNTPj4+NtN9fX2VkZFRomXm5eXJMAwdPHiw2POaTCb9+ZEI5eeHlWjdKH/u7pX07bffyjCMclunyWTSU7Hhyr/cuNzWiZvnXql8x4rJZNKges2UV/dyuawPpcPDzTH7lKbqpLDb8sttnbg5bnIv0TjJy8uTyWQqo17BzJnypclkUu+RfXQ5n8+3K6nkXrLP+M0wmUxqMKSLAvPJDa6ikoO+h+Q/+KAM9ikuJa+c9ykmk0kFd4TJuD20XNaH0mFyq6TT5EunVdr58mb/djlwcC/l53EscCXuHo7Jl3063aP8/KCiG8MpOOrv3H+5x1/59e8st3Xi5rmX898vTSaT4vQnXb6tRrmsD6WjktzK/e+XFbaYXRbML3JJX2xf39tKszsoJ+X95a1Gtarluj6UnvIcKzW82J+4qvLep9zm4V2u60PpKO44MZlM/LHRRd1Mvqz+p+ql3BuUl/L+vHr52f6RHM6vvMeJeyHFFLiG8hwrblX4vuqqyJe3hpv922WNGr6l2R2Uo/L+vFb39irX9aF0lPs4qVqlXNeH0lOeY6Wah2e5rQulqzzzZYUtZvv4+CgrK8tmekZGhnx9SxbMIiMjb7ZbAAAAcFHkSwAAAJSm0s6XZEsAAFARVdh7ZgcFBdncWyYrK0tnz561uRcNAAAAUBTyJQAAAEoT+RIAAKBoFbaY3aZNG3311VfKzMy0TEtKSpKbm5tat27twJ4BAADAFZEvAQAAUJrIlwAAAEUzGeV1J/dylpGRoW7duikwMFCDBg3Sr7/+qqlTp6p79+6aOHGio7sHAAAAF0O+BAAAQGkiXwIAABStwhazJenHH3/Uq6++qv379+u2227Tgw8+qJEjR6py5cqO7hoAAABcEPkSAAAApYl8CQAAcGMVupgNAAAAAAAAAAAAAHBNFfae2QAAAAAAAAAAAAAA10UxGwAAAAAAAAAAAADgdChmAwAAAAAAAAAAAACcDsVsAAAAAAAAAAAAAIDToZgNAAAAAAAAAAAAAHA6FLMBAAAAAAAAAAAAAE6HYjYAONCcOXMUEhJi+RcTE6P+/ftr7969ju5aiX3++edauXKl3e0vXbqktm3b6osvvrBM69evn+U1adiwodq1a6dRo0YpLS2txP3q0aOHQkJCnPq13bdvn6Kjo3XhwgVHdwUAALgo8iX58mrkSwAAcLPIl+TLq5Ev4QgUs+0wZ84cRUZG2v3c1Tv2q/8lJSVddx3r1q2zahsZGakHHnhAY8eO1cGDB0vU7yNHjmjOnDnKyckp0fylYdeuXXr77beLNc8jjzxS6IEkLy9P0dHRatiwoX7++efS6mKp++ijj9SlSxddvny5VJe7efNmPfHEE4qKilKTJk3UoUMHTZw4USkpKZY2v/32myZPnqxOnTopLCxMrVq1Up8+fbR06VJJ0qeffnrDg2F6erqaNGmiN99884Z9OXr0qCIjI3X+/HnLtKvHb5MmTdS5c2fNmDFD2dnZN7/xdmrRooXmzJlTqsssq/fzalWqVNGqVau0atUqvfzyy0pPT9eAAQN07NixMltnWfr888/13nvv2d3+vffek4+Pj9q1a2c1vVmzZlq1apVWrlypQYMGaceOHRowYECJ9mk//PCDjh49Kkn6+OOPiz1/eWnevLnuuecePfvss4UeR+Lj40t9nUuXLtW2bdtspnfo0EGvvPJKqa/PXsOGDdNrr71W6HOuEOwLs2vXLoWEhOjbb7+1TCvOF5+ijgMXLlxQVFSU9u3bV27bhJIjX5Yc+bL0kC+LRr50DuTLkmvevLmqVq2q5s2bky3JllbIlhUP+bLkyJelh3xZNPKlcyBflhz58gryZfnmS4rZZaRfv36Wnbv5X0xMTJHzLVq0SKtWrdL8+fPVv39/HTt2TH/+85+1cOHCYvfhyJEjmjt3rkPD4O7du7VgwQK722/atElpaWl6+OGHbZ7bsWOH0tPTZRiG1q9fX5rdLFXdunVTbm6uPvzww1Jb5vTp0zV48GBVq1ZNr776qt555x0999xzOn78uEaOHClJys/P1+OPP65NmzZp4MCBWrRokcaPH6/Q0FBt3bpVktSuXTtVq1ZNGzZsKHQ9n376qfLy8tS9e/cb9mfWrFnq1auX/Pz8rKabx/3ixYv1wAMPWPrgysri/byWm5ubIiIiFBERoQceeEBvv/228vPz9f7775d4mYZhKDc3txR7WTYMw9Dy5csL/cz7+PgoIiJCzZs3V58+fTR27Fj997//LTS8FOXjjz+Wm5uboqOjlZSUpLy8vCLnuXjxYrGml5ZHHnlE3377rdWXBPO/6dOnl/r6li9fXqLXtCwdOnRIW7du1YABA2yec5VgXxz2fPGx5zhQrVo1PfbYY5o5c6ajNgVljHx5BfmydJAvHYd8WbbIl7ZCQ0MlSStXriRbXoNsSba81ZEvryBflg7ypeOQL8sW+dIW+ZJ8Wd75kmJ2GalTp45l527+V7169SLna9y4sSIiItSqVSv17dtXa9asUffu3TVjxgyXO4ujJJYtW6Zu3bqpSpUqNs+tX79ePj4+aty4sd07AUfszCtVqqSePXvq3XffLZXlbdu2TYmJiRo8eLBmz56tzp07q2XLlnr44Yf1z3/+U8OHD5d0JXgfPXpU06ZNU58+fRQdHa1u3bppwoQJeueddyRJnp6e6tSpk5KSkpSfn2+zrvXr16tx48YKCgq6bn9SU1O1devWQg/e5nEfHR2tkSNH6qGHHtKGDRuszoB0NaX9ftrjzjvvlJ+fn06dOiVJWrJkiR5++GE1b95crVq10qBBg6zOaJWkMWPGKD4+Xtu2bVOPHj0UFhamLVu2SLpypuEDDzygsLAwPfLIIzp48KDNWaCFncn2+eefKyQkxNIPScrNzdWMGTPUvn17NWnSRF26dLH6PI4ZM0b/+te/9MMPP1jO2BozZsx1t3X37t1KS0tT586di3xdwsLCJEmnTp3Sli1bFBISopMnT1q1ycjIUHh4uNXZ0eYvkDExMRo4cKDS09P15ZdfWs1nPuvsiy++0LBhw9SsWTMNHz5cp06dUkhIiNatW6fx48crOjpaCQkJkq6cCTx27FhFR0crPDxcjz76qPbs2WNZ5ocffqgmTZpY7W+6d++u0NBQq8vw9O7dW5MmTbI8vu+++5Sbm6uCggKb40jDhg2LfJ1cweXLl28YyJcvX664uDjVqlXL5jlXCvb2KuqLj73HAUl6+OGHtWfPHn3//feO2hyUIfJlyZAvbZEvHYt8Sb4s73xp/vylp6eTLa9BtiRb3urIlyVDvrRFvnQs8iX5knxZusiX1pwhX1LMdnJubm566aWXVLlyZavLXnzxxRcaOHCgWrVqpWbNmikhIUHbt2+3PL9u3TqNHTtWktSqVSuFhISoQ4cOkqQzZ85o7Nix6tixo8LDw9WpUyfNmDHD5iyoDz74QN26dVN4eLiio6PVp08fq0sGGYahxYsXq3PnzmrSpIk6duxouRyMdOUSRnPnzlV2drbloNCvX7/rbmtqaqr27t2rBx54wOa57OxsbdmyRZ07d1avXr107Ngxy9ktV29zSEiI9u/fr4EDByoiIkLTpk277k5ektLS0jRs2DA1b95cERERevLJJ62WO2/ePKtLhxQUFKhFixZq1aqV1brj4uK0aNEiy+MuXbroyJEjpfKFb8mSJbr99ts1ePDgQp9v3769pCsHQUmqWbOmTRs3tz8+6t27d9f58+f11VdfWbX59ddftXfv3iLPavzwww/l7+9vOfvqRpo0aSLpysH7xx9/1MiRI9W2bVs1bdpUXbt21ZIlS1RQUGBpbz7w/vvf/9Yrr7yili1bKi4uTq+99ppNeC0s4FyrqM+JJGVmZmr8+PG69957FRYWprZt21rOFDIrzffTHhcuXFB6erruuOMOSdLp06f12GOPaf78+fr73/+ugoICPfroo0pPT7ea78yZM/r73/+uAQMGKDExUY0aNdKRI0c0bNgwBQQEaO7cuerZs6dGjBhR4rMehw8frlWrVmngwIFasGCB7r33Xr3wwguWA9fgwYPVtm1b+fv7W87Iu97YlaSvvvpKderUUZ06dYpctzmU3nHHHWrbtq1q1aqltWvXWrUxn/V89Tj+z3/+o7S0NMXHxysuLk7Vq1e/7tnREyZMkL+/v+bNm6cnnnjCMn3GjBkyDENvvPGGXnjhBV2+fFlPP/20tm7dqtGjR+vNN99U1apVNXDgQH333XeSpJYtWyovL08HDhyQdOUyWj/88IPc3d0tl1LJycnRoUOH1LJlS8u6qlWrJj8/P6vPRmG++OILJSQkKDw8XDExMfrb3/5mdVms7OxsvfLKK+rcubOaNm1quaxLVlaWpU2HDh2UlpamlStXWvbT69ats1rPypUr1b59ezVv3lyDBw+2+XKXmZmpl19+WXFxcWrSpIl69eqlHTt2WLXp16+fBg0apH/961/q3LmzwsLCrvt5ys7O1meffVboFwRXC/YldfUXH8n+44Ak3XXXXQoPD7d5H4GrkS+vIF+SL8mX5MtbJV9WrlxZJpPJ5jN6NbIl2dKMbImSIF9eQb4kX5IvyZfkyz+QL8mXZqWRL91L2NdbUmFngl2v2FBQUGDV3mQyqVKlSiVab/Xq1dW4cWPt37/fMu3UqVNq3769nnjiCbm5uWn79u165plntGzZMkVHR6tdu3b661//qrfeekuLFi2St7e3KleuLOnKDql69eoaO3asfHx8dPLkSc2ZM0dnz57VlClTJEl79uzRSy+9pCeeeEJt27bVxYsXdfDgQasdyT/+8Q+tWbNGzz77rJo2bar//Oc/mj59ujw9PdWnTx8lJCTo9OnTWr9+vZYtWybpSpHmer7++mu5u7srPDzc5rnPP/9c2dnZio+P1z333KMpU6Zo/fr1CgkJsWk7atQo9e7dW4MGDZKXl5flAzxhwgT16NFD8+bNk5ubmy5cuKB+/frJzc1NkyZNkqenp9566y099thj+uijj1SnTh21bNlSs2fPVmpqqvz9/XXkyBFdvHhRv//+u3788UfVr19fKSkpOnv2rNXOvH79+vL19dXOnTtv6myk/Px8/ec//1GnTp3k4eFxw7aNGjWSm5ubxo8fr+eee07Nmze3vOdXi4mJUc2aNbV+/Xq1adPGMt186Z6uXbvecD1fffXVde/BdC3zzqxWrVo6ceKEAgMD1b17d912222WeyJlZ2dryJAhVvPNmjVLHTt21KxZs7R//37NmTNH9erVU58+fSTJEnDatGmjsWPH6tSpU4UGnKI+J5I0ZcoUffnllxo1apTuuusunT171iYwltb7eSPm/cXp06f12muv6fLly5YD4rhx4yztLl++rNatW6tVq1b69NNP1bt3b8tzGRkZSkxMVNOmTS3TRo4cqTp16mjevHmWfZCnp6deeumlYvfx66+/1pYtW7R48WLFxcVJklq3bq2zZ89qzpw5atu2rerVqyc/Pz/9/PPPioiIKHKZ3333XaGfY+nKwT8/P18FBQU6duyYpk2bJh8fH8XGxqpSpUrq1auX1q5dqxEjRli2be3atbr//vvl4+NjWc769estZ/V6eHioc+fO+uijj/T777/rtttus1pnhw4d9MILL1gem8dww4YN9Y9//MMyffPmzTp48KAWLVqke++9V9KVL4WdOnXSggULNGfOHN1111268847tXfvXsXExGjfvn264447FB4erj179qht27bav3+/8vLy1KJFC6t+3H777Tp//rzNcadSpUoymUxKSkrSyJEj1atXLw0dOlRnz57VG2+8oczMTMtlWi5evKjLly9r5MiR8vPz0y+//KK3335bgwcPtpypO3fuXD3zzDNq1qyZJfzWq1fPsr4tW7bop59+0sSJE/Xbb79pypQpevXVVy3ryM3N1cCBA3Xu3DmNGDFCtWrV0kcffaRBgwZZvqBf/V6npaVp+PDh8vHxue4XgAMHDig7O1vNmze3ec4c7J977jmrYG/+Y8fVrt3nm82YMUNt27bVG2+8oYKCAkuwT01N1ejRo3X77bfr3Xff1cCBA/X++++rSZMmVsE+JibGEuwrV66sffv2qW3btpZg//jjjxe6XcVx9Ref4hwHzCIjI2/4ZQLOhXxJviRfki/Jl+RLqezzpZubmw4cOGB1HCFbki3tQbZ0PeRL8iX5knxJviRfSuRLiXxZkfIlxWw7ZWdnq3HjxoU+V7VqVZtp06dPt7o/QL169bRp06YSr79OnTo6dOiQ5fFj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tgRwK3J3dAcAwBkNGzZMdevWtZoWHBzsoN6UzP79+zV37lz17NlTPj4+ju4OAADALY18CQAAgNJCtgRwK6GYDQCFaNOmjcLCwkp1mdnZ2apatWqpLhMAAACugXwJAACA0kK2BHAr4TLjAFBMycnJ6tu3ryIiItSiRQv99a9/1Y8//mjVZs6cOQoJCdHx48c1atQotWzZUn379pUkdejQQYMGDdKuXbvUq1cvhYeHq3v37tq1a5ck6bPPPlP37t0VFhamXr166fDhw1bL/v777zVmzBh17NhRYWFhat26tcaOHavffvvNav3Tpk2TJHXs2NFyuaFTp06V5UsDAACAEiBfAgAAoLSQLQFUNPwyGwAKceHCBZ0/f95qmp+fn7766is9/fTTqlu3roYMGaKLFy9qxYoV6tOnj9atW2dzeZ/hw4fr7rvv1siRI2UYhmX6Tz/9pFGjRunRRx9Vjx49tGTJEj377LOaNGmSZs6cqT59+kiSFi5cqBEjRigpKUlublfOP/rqq6+UmpqqXr16qWbNmvrhhx+0evVqHT9+XKtXr5bJZNL999+vkydPav369Ro7dqxq1Khh2QYAAACUP/IlAAAASgvZEsCthGI2ABRiwIABNtOOHj2qadOmydfXV6tWrVL16tUlSffdd5969uypOXPm6LXXXrOap2HDhnrjjTdslpWSkqL3339fkZGRkqQGDRroySef1IQJE/TJJ5/ozjvvlCT5+vpq4sSJ2rNnj6KjoyVJffv21RNPPGG1vIiICD3//PPat2+fWrRooYYNGyo0NFTr16/XfffdZxNUAQAAUL7IlwAAACgtZEsAtxKK2QBQiIkTJyowMNBq2pkzZ3TkyBE99dRTljAoXQl9sbGx2rZtm81yHn300UKX36BBA0sYlKSmTZtKkmJiYixh8OrpqamplkBYpUoVy/OXLl3S77//bml36NAhtWjRojibCgAAgHJAvgQAAEBpIVsCuJVQzAaAQoSHhyssLMxq2oEDByTJJihKUv369bVjxw5lZ2eratWqlunXO6uwTp06Vo+9vb0lSbVr17aaXq1aNUlSZmamZVp6errmzp2rjRs36ty5c1bts7KybrRZAAAAcBDyJQAAAEoL2RLArYRiNgCUIU9Pz0KnV6pUqVjTr75nzYgRI7R//349+eSTatSokapWraqCggI99dRTVu0AAABQ8ZAvAQAAUFrIlgBcAcVsALCT+RI6KSkpNs+dOHFCNWrUsDqzsSxkZGQoOTlZQ4cO1ZAhQyzTT548adPWZDKVaV8AAABwc8iXAAAAKC1kSwAVlZujOwAAruKOO+5Qo0aN9OGHH1pdOufYsWPauXOn2rZtW+Z9uN7Zj8uWLbOZ5uXlJYnL9wAAADgr8iUAAABKC9kSQEXFL7MBoBj+7//+T08//bR69+6tRx55RBcvXtSKFSvk7e1tdbZhWalWrZpatmypRYsWKS8vT7Vq1dLOnTt16tQpm7aNGzeWJM2cOVNdu3aVh4eH2rdvX+ZnYAIAAMB+5EsAAACUFrIlgIqIX2YDQDHExsZq0aJFql69umbPnq0lS5aoadOmeu+99+Tv718ufXjjjTcUFxenf/7zn5oxY4bc3d2VmJho0y48PFzDhw/X999/r7Fjx+r555/X+fPny6WPAAAAsA/5EgAAAKWFbAmgIjIZhmE4uhMAAAAAAAAAAAAAAFyNX2YDAAAAAAAAAAAAAJwOxWwAAAAAAAAAAAAAgNOhmA0AAAAAAAAAAAAAcDoUswEAAAAAAAAAAAAATodiNgAAAAAAAAAAAADA6VDMBgAAAAAAAAAAAAA4HYrZAAAAAAAAAAAAAACnQzEbAAAAAAAAAAAAAOB0KGYDAAAAAAAAAAAAAJwOxWwAAAAAAAAAAAAAgNOhmA0AAAAAAAAAAAAAcDoUswEAAAAAAAAAAAAATodiNgAAAAAAAAAAAADA6fw/5R+B3xhRTbgAAAAASUVORK5CYII=\n" + }, + "metadata": {} + } + ] + } + ] +} \ No newline at end of file From a640b930f319edbfff894e43c08887be0388fff5 Mon Sep 17 00:00:00 2001 From: mon-jai <91261297+mon-jai@users.noreply.github.com> Date: Tue, 9 Dec 2025 03:18:43 +0800 Subject: [PATCH 2/2] Update benchmark notebook after edit and rerun --- reports/machine_learning_benchmark.ipynb | 977 +++++++++++------------ 1 file changed, 487 insertions(+), 490 deletions(-) diff --git a/reports/machine_learning_benchmark.ipynb b/reports/machine_learning_benchmark.ipynb index 45d623a..5d6555d 100644 --- a/reports/machine_learning_benchmark.ipynb +++ b/reports/machine_learning_benchmark.ipynb @@ -4,8 +4,7 @@ "metadata": { "colab": { "provenance": [], - "gpuType": "T4", - "toc_visible": true + "gpuType": "T4" }, "kernelspec": { "name": "python3", @@ -17,7 +16,7 @@ "accelerator": "GPU", "widgets": { "application/vnd.jupyter.widget-state+json": { - "e9b09ac7c2174367b05883f3d3aff6f9": { + "5a0ac8c1198c4c2daa6a2f42fb999fcc": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", @@ -32,14 +31,14 @@ "_view_name": "HBoxView", "box_style": "", "children": [ - "IPY_MODEL_3587d23b09674e159c548c0bde943697", - "IPY_MODEL_7a44cf5adb954842af61929ac583fa64", - "IPY_MODEL_5ea5a900d66a495b83c3960f4653ec2d" + "IPY_MODEL_b9685968526f418e8a5acda06fbf1968", + "IPY_MODEL_b9a1a30ac1a643afbdf7be645963a9b7", + "IPY_MODEL_6c0b61d869b04183a4245019cbab68bd" ], - "layout": "IPY_MODEL_ae56cf5f251a486cbc353019959e499d" + "layout": "IPY_MODEL_bd7508dc556342e987d4b1015a9ecfab" } }, - "3587d23b09674e159c548c0bde943697": { + "b9685968526f418e8a5acda06fbf1968": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", @@ -54,13 +53,13 @@ "_view_name": "HTMLView", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_ecd8422537864ec6abaa7cae1856f9df", + "layout": "IPY_MODEL_5223bcca9c90442e98a3b98c8fcb4203", "placeholder": "​", - "style": "IPY_MODEL_eb783c612bf74aa082cbf3e21bfc1e01", + "style": "IPY_MODEL_e99ad09ab6ef46cca9407848423713df", "value": "README.md: " } }, - "7a44cf5adb954842af61929ac583fa64": { + "b9a1a30ac1a643afbdf7be645963a9b7": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", @@ -76,15 +75,15 @@ "bar_style": "success", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_e45393cafd624c7596f2e3c2e71702a0", + "layout": "IPY_MODEL_6d222d2e3d234c2a8323b3fb9ec000b3", "max": 1, "min": 0, "orientation": "horizontal", - "style": "IPY_MODEL_92799625f0ca4c8ba569fc606a5ac338", + "style": "IPY_MODEL_b82668e264924b5dbd35b2d57b5039de", "value": 1 } }, - "5ea5a900d66a495b83c3960f4653ec2d": { + "6c0b61d869b04183a4245019cbab68bd": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", @@ -99,13 +98,13 @@ "_view_name": "HTMLView", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_0b4f9fabaa7a42c7b237b4212a725882", + "layout": "IPY_MODEL_f5b10a15ab0e468784e322135cf9c324", "placeholder": "​", - "style": "IPY_MODEL_9c691f808bf14ffb816825cc553ed20b", - "value": " 6.81k/? [00:00<00:00, 241kB/s]" + "style": "IPY_MODEL_40f0bda9fded407983e4f0c62fbd2dda", + "value": " 6.81k/? [00:00<00:00, 352kB/s]" } }, - "ae56cf5f251a486cbc353019959e499d": { + "bd7508dc556342e987d4b1015a9ecfab": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -157,7 +156,7 @@ "width": null } }, - "ecd8422537864ec6abaa7cae1856f9df": { + "5223bcca9c90442e98a3b98c8fcb4203": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -209,7 +208,7 @@ "width": null } }, - "eb783c612bf74aa082cbf3e21bfc1e01": { + "e99ad09ab6ef46cca9407848423713df": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", @@ -224,7 +223,7 @@ "description_width": "" } }, - "e45393cafd624c7596f2e3c2e71702a0": { + "6d222d2e3d234c2a8323b3fb9ec000b3": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -276,7 +275,7 @@ "width": "20px" } }, - "92799625f0ca4c8ba569fc606a5ac338": { + "b82668e264924b5dbd35b2d57b5039de": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", @@ -292,7 +291,7 @@ "description_width": "" } }, - "0b4f9fabaa7a42c7b237b4212a725882": { + "f5b10a15ab0e468784e322135cf9c324": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -344,7 +343,7 @@ "width": null } }, - "9c691f808bf14ffb816825cc553ed20b": { + "40f0bda9fded407983e4f0c62fbd2dda": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", @@ -359,7 +358,7 @@ "description_width": "" } }, - "b198f8bede6f4f3f8ab85a5c23410281": { + "f576a8515b084e95a80e997c17d2315a": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", @@ -374,14 +373,14 @@ "_view_name": "HBoxView", "box_style": "", "children": [ - "IPY_MODEL_d8b910cc334641b082407da4cd5bffb6", - "IPY_MODEL_722aed840ffe4a43b0bb096cf9990f69", - "IPY_MODEL_d65f247cab59485caa160e3ab90bf026" + "IPY_MODEL_2a019390a6624c008fb2411f8d19cc82", + "IPY_MODEL_7f0e4487d7324fd0bcc40afa6fba7fe7", + "IPY_MODEL_2f1997b0ae6043bcb5f1ca32177ab50b" ], - "layout": "IPY_MODEL_20918cbed5c943d5bcb17fa88f927980" + "layout": "IPY_MODEL_ae62a76dcbdc49fabf859a781350057f" } }, - "d8b910cc334641b082407da4cd5bffb6": { + "2a019390a6624c008fb2411f8d19cc82": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", @@ -396,13 +395,13 @@ "_view_name": "HTMLView", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_1b69a97f14254e1da5f66c4154d8c0b2", + "layout": "IPY_MODEL_3a7bf055d65b45afa17d4ca7ccda48dd", "placeholder": "​", - "style": "IPY_MODEL_46561cbd61a74cad90f78a31925509c7", + "style": "IPY_MODEL_4e0c44ca02e348ad8ca18f88c8ba9370", "value": "amazon_polarity/train-00000-of-00004.par(…): 100%" } }, - "722aed840ffe4a43b0bb096cf9990f69": { + "7f0e4487d7324fd0bcc40afa6fba7fe7": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", @@ -418,15 +417,15 @@ "bar_style": "success", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_465070b9e6874eff863e01bd75b01457", + "layout": "IPY_MODEL_975c82fcad474cb3b93d33108d2cb90c", "max": 259761770, "min": 0, "orientation": "horizontal", - "style": "IPY_MODEL_30e99ca83c434ce4a6c10eb312cd6dfc", + "style": "IPY_MODEL_510533ee0c1d413e8fec253b46a3aa9b", "value": 259761770 } }, - "d65f247cab59485caa160e3ab90bf026": { + "2f1997b0ae6043bcb5f1ca32177ab50b": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", @@ -441,13 +440,13 @@ "_view_name": "HTMLView", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_e7276b51b1ea417390c894ae0e541ebd", + "layout": "IPY_MODEL_31b1eb8b518045e99ec6f7cfa464fa8e", "placeholder": "​", - "style": "IPY_MODEL_95798fe15239480ba87d19192d296187", - "value": " 260M/260M [00:07<00:00, 85.6MB/s]" + "style": "IPY_MODEL_13439674899e48189b83ec73ba1f2dc7", + "value": " 260M/260M [00:05<00:00, 45.0MB/s]" } }, - "20918cbed5c943d5bcb17fa88f927980": { + "ae62a76dcbdc49fabf859a781350057f": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -499,7 +498,7 @@ "width": null } }, - "1b69a97f14254e1da5f66c4154d8c0b2": { + "3a7bf055d65b45afa17d4ca7ccda48dd": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -551,7 +550,7 @@ "width": null } }, - "46561cbd61a74cad90f78a31925509c7": { + "4e0c44ca02e348ad8ca18f88c8ba9370": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", @@ -566,7 +565,7 @@ "description_width": "" } }, - "465070b9e6874eff863e01bd75b01457": { + "975c82fcad474cb3b93d33108d2cb90c": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -618,7 +617,7 @@ "width": null } }, - "30e99ca83c434ce4a6c10eb312cd6dfc": { + "510533ee0c1d413e8fec253b46a3aa9b": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", @@ -634,7 +633,7 @@ "description_width": "" } }, - "e7276b51b1ea417390c894ae0e541ebd": { + "31b1eb8b518045e99ec6f7cfa464fa8e": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -686,7 +685,7 @@ "width": null } }, - "95798fe15239480ba87d19192d296187": { + "13439674899e48189b83ec73ba1f2dc7": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", @@ -701,7 +700,7 @@ "description_width": "" } }, - "e875ad47edfa447bae6f45ad5d17714a": { + "31d696b7927f42ec9576f09be2c3d98b": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", @@ -716,14 +715,14 @@ "_view_name": "HBoxView", "box_style": "", "children": [ - "IPY_MODEL_546746a37b414bbf9dd081a4038a408f", - "IPY_MODEL_ea1ba4cbd8c746bd9d7db42bac7a8839", - "IPY_MODEL_4c775268eec448b39638db557958b029" + "IPY_MODEL_c850cb31ae67428faefed7398bf67387", + "IPY_MODEL_0c793656e98442a2981b3b7d3323dc85", + "IPY_MODEL_f01c5cb7bab34beeba25de2d2eec9744" ], - "layout": "IPY_MODEL_d0cf8be2ce0345059651084052734a59" + "layout": "IPY_MODEL_b8ebf0e6597e4fd7a9d5109249ad48ca" } }, - "546746a37b414bbf9dd081a4038a408f": { + "c850cb31ae67428faefed7398bf67387": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", @@ -738,13 +737,13 @@ "_view_name": "HTMLView", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_d73a05d171444e66bddf66596c4d68f6", + "layout": "IPY_MODEL_bf214ab650d24e69b2d2aa851cbbf9ca", "placeholder": "​", - "style": "IPY_MODEL_66e3a13e9bf04ded8303be8e431c21e8", + "style": "IPY_MODEL_4e04267df185487ea8f8392b8457df7c", "value": "amazon_polarity/train-00001-of-00004.par(…): 100%" } }, - "ea1ba4cbd8c746bd9d7db42bac7a8839": { + "0c793656e98442a2981b3b7d3323dc85": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", @@ -760,15 +759,15 @@ "bar_style": "success", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_f209f065e7c744a08a3457726781338c", + "layout": "IPY_MODEL_980ffcc461a44efaaa1301cc8aadc3f5", "max": 258363554, "min": 0, "orientation": "horizontal", - "style": "IPY_MODEL_bbc5c01c4a17435790467edebfae6167", + "style": "IPY_MODEL_9c51dac5c5d9452b8d724059eac74438", "value": 258363554 } }, - "4c775268eec448b39638db557958b029": { + "f01c5cb7bab34beeba25de2d2eec9744": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", @@ -783,13 +782,13 @@ "_view_name": "HTMLView", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_ec2d264d3791489f807207045fcda35d", + "layout": "IPY_MODEL_abf3ba014071476ca0e1e3f49a52279b", "placeholder": "​", - "style": "IPY_MODEL_ce7fafb4755d442e82c14c451b8159df", - "value": " 258M/258M [00:05<00:00, 121MB/s]" + "style": "IPY_MODEL_9abbd9045722468c89fd04503c1a3d60", + "value": " 258M/258M [00:04<00:00, 96.9MB/s]" } }, - "d0cf8be2ce0345059651084052734a59": { + "b8ebf0e6597e4fd7a9d5109249ad48ca": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -841,7 +840,7 @@ "width": null } }, - "d73a05d171444e66bddf66596c4d68f6": { + "bf214ab650d24e69b2d2aa851cbbf9ca": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -893,7 +892,7 @@ "width": null } }, - "66e3a13e9bf04ded8303be8e431c21e8": { + "4e04267df185487ea8f8392b8457df7c": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", @@ -908,7 +907,7 @@ "description_width": "" } }, - "f209f065e7c744a08a3457726781338c": { + "980ffcc461a44efaaa1301cc8aadc3f5": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -960,7 +959,7 @@ "width": null } }, - "bbc5c01c4a17435790467edebfae6167": { + "9c51dac5c5d9452b8d724059eac74438": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", @@ -976,7 +975,7 @@ "description_width": "" } }, - "ec2d264d3791489f807207045fcda35d": { + "abf3ba014071476ca0e1e3f49a52279b": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -1028,7 +1027,7 @@ "width": null } }, - "ce7fafb4755d442e82c14c451b8159df": { + "9abbd9045722468c89fd04503c1a3d60": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", @@ -1043,7 +1042,7 @@ "description_width": "" } }, - "c4eda03bbf964c0d8de7758722619fa4": { + "b61b9fbe801e4c4282808920aadf7371": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", @@ -1058,14 +1057,14 @@ "_view_name": "HBoxView", "box_style": "", "children": [ - "IPY_MODEL_22478687fe0448b69baf6f7dd908f3fc", - "IPY_MODEL_f0de16e3ad7a429292a5cb6b379c1ab3", - "IPY_MODEL_9a2fca6103a64a72875098081b181ab2" + "IPY_MODEL_c78eba94196e43208d303301f1f72b13", + "IPY_MODEL_0907f6b5721e48919e5d3f1cdf3854f3", + "IPY_MODEL_bb3f0c309fa24719a04dc046d78dd1f4" ], - "layout": "IPY_MODEL_8459c016a078475b877bea4b5a787a66" + "layout": "IPY_MODEL_136d295dbc7a4593a5876e077522e976" } }, - "22478687fe0448b69baf6f7dd908f3fc": { + "c78eba94196e43208d303301f1f72b13": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", @@ -1080,13 +1079,13 @@ "_view_name": "HTMLView", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_fe593dcb41ad4ae8a82bbec02aa3727f", + "layout": "IPY_MODEL_be7dac6179f14d49a04778141be5df99", "placeholder": "​", - "style": "IPY_MODEL_31da5a4d89d442f6ac10d2d3e998b9dc", + "style": "IPY_MODEL_cdfc3ecc89e647ad8f593585b2a14c34", "value": "amazon_polarity/train-00002-of-00004.par(…): 100%" } }, - "f0de16e3ad7a429292a5cb6b379c1ab3": { + "0907f6b5721e48919e5d3f1cdf3854f3": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", @@ -1102,15 +1101,15 @@ "bar_style": "success", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_9e985af96ba84ce5942fdc0e6b433e36", + "layout": "IPY_MODEL_b7e164a485124f5a8f716a31396debc9", "max": 255471883, "min": 0, "orientation": "horizontal", - "style": "IPY_MODEL_3290118fcc4343f48290853a7ca7a9b2", + "style": "IPY_MODEL_2a9fb5f144484df0895e426462dfa0a1", "value": 255471883 } }, - "9a2fca6103a64a72875098081b181ab2": { + "bb3f0c309fa24719a04dc046d78dd1f4": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", @@ -1125,13 +1124,13 @@ "_view_name": "HTMLView", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_bec15ef07c874e0f9adc7777eeffaeb9", + "layout": "IPY_MODEL_b9ec58743b2e467f8ea7452c53630156", "placeholder": "​", - "style": "IPY_MODEL_3b57c2f561f946c7885e517fc765bde5", - "value": " 255M/255M [00:04<00:00, 76.8MB/s]" + "style": "IPY_MODEL_71c0c4e453a24912b0d35f466079197b", + "value": " 255M/255M [00:02<00:00, 189MB/s]" } }, - "8459c016a078475b877bea4b5a787a66": { + "136d295dbc7a4593a5876e077522e976": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -1183,7 +1182,7 @@ "width": null } }, - "fe593dcb41ad4ae8a82bbec02aa3727f": { + "be7dac6179f14d49a04778141be5df99": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -1235,7 +1234,7 @@ "width": null } }, - "31da5a4d89d442f6ac10d2d3e998b9dc": { + "cdfc3ecc89e647ad8f593585b2a14c34": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", @@ -1250,7 +1249,7 @@ "description_width": "" } }, - "9e985af96ba84ce5942fdc0e6b433e36": { + "b7e164a485124f5a8f716a31396debc9": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -1302,7 +1301,7 @@ "width": null } }, - "3290118fcc4343f48290853a7ca7a9b2": { + "2a9fb5f144484df0895e426462dfa0a1": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", @@ -1318,7 +1317,7 @@ "description_width": "" } }, - "bec15ef07c874e0f9adc7777eeffaeb9": { + "b9ec58743b2e467f8ea7452c53630156": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -1370,7 +1369,7 @@ "width": null } }, - "3b57c2f561f946c7885e517fc765bde5": { + "71c0c4e453a24912b0d35f466079197b": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", @@ -1385,7 +1384,7 @@ "description_width": "" } }, - "466ee7b9b4314fe185f2e95e65787368": { + "c1b5f033aa3148118570ccc325046c35": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", @@ -1400,14 +1399,14 @@ "_view_name": "HBoxView", "box_style": "", "children": [ - "IPY_MODEL_00673fe888754d00ac42786670672893", - "IPY_MODEL_1c97876e5aa24717bf2f1a5ab50b53ed", - "IPY_MODEL_5072c9d6eacd4987aa8768eaa3d14ee0" + "IPY_MODEL_6169bca3f9ef4d6b99f5c39aa67f5561", + "IPY_MODEL_10d31a5c91b54f56bc6b30241f394788", + "IPY_MODEL_bac092e2447144909522015e017d3588" ], - "layout": "IPY_MODEL_796c152c3d1d490996adbcce33e9dd67" + "layout": "IPY_MODEL_b6eb15c0ac7849e285f4aab02e0d4f7e" } }, - "00673fe888754d00ac42786670672893": { + "6169bca3f9ef4d6b99f5c39aa67f5561": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", @@ -1422,13 +1421,13 @@ "_view_name": "HTMLView", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_1eaa76f0d53045929f88c1670ffce1ff", + "layout": "IPY_MODEL_e06c9299fe874987bb822820d560a768", "placeholder": "​", - "style": "IPY_MODEL_8e4a0faca6964389816e6c20c8e7ef5d", + "style": "IPY_MODEL_0278269c48074d9788c2eb54a296d9c5", "value": "amazon_polarity/train-00003-of-00004.par(…): 100%" } }, - "1c97876e5aa24717bf2f1a5ab50b53ed": { + "10d31a5c91b54f56bc6b30241f394788": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", @@ -1444,15 +1443,15 @@ "bar_style": "success", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_a540fd76d900440fa6fb3429e2e535e0", + "layout": "IPY_MODEL_ee6ff7545b804e2ea643df3528a7361a", "max": 254410930, "min": 0, "orientation": "horizontal", - "style": "IPY_MODEL_07620dcc7b014eeab2bd847df1ec150b", + "style": "IPY_MODEL_56fdb04f02bc4c1bb3a43e1fa0652cde", "value": 254410930 } }, - "5072c9d6eacd4987aa8768eaa3d14ee0": { + "bac092e2447144909522015e017d3588": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", @@ -1467,13 +1466,13 @@ "_view_name": "HTMLView", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_ee23a71e4a144e63ba9d42413da7ea5e", + "layout": "IPY_MODEL_f3eb00e9817748c1ac14519a189dc684", "placeholder": "​", - "style": "IPY_MODEL_cc3117a4286941a3b52608ae183a017b", - "value": " 254M/254M [00:01<00:00, 228MB/s]" + "style": "IPY_MODEL_2985417fbe584ae288ee6d22fbde554e", + "value": " 254M/254M [00:02<00:00, 168MB/s]" } }, - "796c152c3d1d490996adbcce33e9dd67": { + "b6eb15c0ac7849e285f4aab02e0d4f7e": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -1525,7 +1524,7 @@ "width": null } }, - "1eaa76f0d53045929f88c1670ffce1ff": { + "e06c9299fe874987bb822820d560a768": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -1577,7 +1576,7 @@ "width": null } }, - "8e4a0faca6964389816e6c20c8e7ef5d": { + "0278269c48074d9788c2eb54a296d9c5": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", @@ -1592,7 +1591,7 @@ "description_width": "" } }, - "a540fd76d900440fa6fb3429e2e535e0": { + "ee6ff7545b804e2ea643df3528a7361a": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -1644,7 +1643,7 @@ "width": null } }, - "07620dcc7b014eeab2bd847df1ec150b": { + "56fdb04f02bc4c1bb3a43e1fa0652cde": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", @@ -1660,7 +1659,7 @@ "description_width": "" } }, - "ee23a71e4a144e63ba9d42413da7ea5e": { + "f3eb00e9817748c1ac14519a189dc684": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -1712,7 +1711,7 @@ "width": null } }, - "cc3117a4286941a3b52608ae183a017b": { + "2985417fbe584ae288ee6d22fbde554e": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", @@ -1727,7 +1726,7 @@ "description_width": "" } }, - "195bb41efd7341298f9e770444b20914": { + "f97f673536e94561a7d341f6c69c0e7e": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", @@ -1742,14 +1741,14 @@ "_view_name": "HBoxView", "box_style": "", "children": [ - "IPY_MODEL_82da0b7625254032adb1490ee13301fd", - "IPY_MODEL_4ff2c74d3b5a45d8b604f8924be05464", - "IPY_MODEL_c29c521b900243b2aad1b954b1cf001b" + "IPY_MODEL_a606da5378ec455f9dbd4d895857458e", + "IPY_MODEL_cd50f2eade344c34b56eed1f699032aa", + "IPY_MODEL_6848b8d3dbaa43598010d060f72c8b5c" ], - "layout": "IPY_MODEL_d0e748ae3c7f49d3b1482ac2a36ea9e7" + "layout": "IPY_MODEL_a2f29c5f75e9405f93cbf31992df957d" } }, - "82da0b7625254032adb1490ee13301fd": { + "a606da5378ec455f9dbd4d895857458e": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", @@ -1764,13 +1763,13 @@ "_view_name": "HTMLView", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_e074cad8fbc045a3880aa9703e8d08b2", + "layout": "IPY_MODEL_983f2d2a2ae849b18fdd88aa4937fe5b", "placeholder": "​", - "style": "IPY_MODEL_ea4bd15944954cc1a8f6bcc0334b4bbd", + "style": "IPY_MODEL_50eb2633d2644371b5d382b345ce5080", "value": "amazon_polarity/test-00000-of-00001.parq(…): 100%" } }, - "4ff2c74d3b5a45d8b604f8924be05464": { + "cd50f2eade344c34b56eed1f699032aa": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", @@ -1786,15 +1785,15 @@ "bar_style": "success", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_d7e73f7d0b64487e864eef85ea7a6c96", + "layout": "IPY_MODEL_ad635ba05af44dc9ac29f81b6fecd43c", "max": 117422360, "min": 0, "orientation": "horizontal", - "style": "IPY_MODEL_f4515ac1497e43df8262e82c2548f1b2", + "style": "IPY_MODEL_ae3d02e234734e8da4f468642f0860f9", "value": 117422360 } }, - "c29c521b900243b2aad1b954b1cf001b": { + "6848b8d3dbaa43598010d060f72c8b5c": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", @@ -1809,13 +1808,13 @@ "_view_name": "HTMLView", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_03a21315985d4493b6884a3379f9213d", + "layout": "IPY_MODEL_ee1be19c8cfd4a4694ff9bc72d5a6384", "placeholder": "​", - "style": "IPY_MODEL_9245059b9d1746b0b295c7e3098851e0", - "value": " 117M/117M [00:01<00:00, 17.2MB/s]" + "style": "IPY_MODEL_76a75dfa593342c69026424c0c7591b7", + "value": " 117M/117M [00:02<00:00, 64.4MB/s]" } }, - "d0e748ae3c7f49d3b1482ac2a36ea9e7": { + "a2f29c5f75e9405f93cbf31992df957d": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -1867,7 +1866,7 @@ "width": null } }, - "e074cad8fbc045a3880aa9703e8d08b2": { + "983f2d2a2ae849b18fdd88aa4937fe5b": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -1919,7 +1918,7 @@ "width": null } }, - "ea4bd15944954cc1a8f6bcc0334b4bbd": { + "50eb2633d2644371b5d382b345ce5080": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", @@ -1934,7 +1933,7 @@ "description_width": "" } }, - "d7e73f7d0b64487e864eef85ea7a6c96": { + "ad635ba05af44dc9ac29f81b6fecd43c": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -1986,7 +1985,7 @@ "width": null } }, - "f4515ac1497e43df8262e82c2548f1b2": { + "ae3d02e234734e8da4f468642f0860f9": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", @@ -2002,7 +2001,7 @@ "description_width": "" } }, - "03a21315985d4493b6884a3379f9213d": { + "ee1be19c8cfd4a4694ff9bc72d5a6384": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -2054,7 +2053,7 @@ "width": null } }, - "9245059b9d1746b0b295c7e3098851e0": { + "76a75dfa593342c69026424c0c7591b7": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", @@ -2069,7 +2068,7 @@ "description_width": "" } }, - "142163f8585d4d9b833792771d76960f": { + "c4dd07f49a534338a8718d6efc536156": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", @@ -2084,14 +2083,14 @@ "_view_name": "HBoxView", "box_style": "", "children": [ - "IPY_MODEL_7ed66d2bce3649729f03175f2dd3ef4e", - "IPY_MODEL_d0bcc429ce54484e9edf5ab92646e333", - "IPY_MODEL_30d7990199ad471da587dafbccacf065" + "IPY_MODEL_b3c5dd42012c40a89cac005cb14b1596", + "IPY_MODEL_554e279ea4db4058b60068feca2d46db", + "IPY_MODEL_83e4452b683e4befa68cfa0baea303ee" ], - "layout": "IPY_MODEL_aa04339a34c746a8a7c182fa5017e332" + "layout": "IPY_MODEL_56527a0eef604dc1b4af2fca80627068" } }, - "7ed66d2bce3649729f03175f2dd3ef4e": { + "b3c5dd42012c40a89cac005cb14b1596": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", @@ -2106,13 +2105,13 @@ "_view_name": "HTMLView", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_282bf0d0484a40d8999bf5a0f505d1e7", + "layout": "IPY_MODEL_8b2cc632c55e408a8fc7b03e268e5e6b", "placeholder": "​", - "style": "IPY_MODEL_39b9065670204e0499e21e94eb3ada5c", + "style": "IPY_MODEL_a3ac227a919748b98c9aaab9afccb469", "value": "Generating train split: 100%" } }, - "d0bcc429ce54484e9edf5ab92646e333": { + "554e279ea4db4058b60068feca2d46db": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", @@ -2128,15 +2127,15 @@ "bar_style": "success", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_8efca2469e9b4aec9749b5d71276eea5", + "layout": "IPY_MODEL_c028dfaae83c40979fea90f85344f354", "max": 3600000, "min": 0, "orientation": "horizontal", - "style": "IPY_MODEL_83ab0aed70bc43de92a73ee9b30df7aa", + "style": "IPY_MODEL_8a777d045fd7496ab95f4081ca88fc71", "value": 3600000 } }, - "30d7990199ad471da587dafbccacf065": { + "83e4452b683e4befa68cfa0baea303ee": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", @@ -2151,13 +2150,13 @@ "_view_name": "HTMLView", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_c3d0bb97b633458d9ecadb548c313f5a", + "layout": "IPY_MODEL_14f78810c9c94b3ba1308a9cfda15911", "placeholder": "​", - "style": "IPY_MODEL_9974b9d4018c407f9c55e530b9cd10f1", - "value": " 3600000/3600000 [00:16<00:00, 193992.69 examples/s]" + "style": "IPY_MODEL_9ac87e70aa7d451dafc62b592f5d45fa", + "value": " 3600000/3600000 [00:13<00:00, 164995.19 examples/s]" } }, - "aa04339a34c746a8a7c182fa5017e332": { + "56527a0eef604dc1b4af2fca80627068": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -2209,7 +2208,7 @@ "width": null } }, - "282bf0d0484a40d8999bf5a0f505d1e7": { + "8b2cc632c55e408a8fc7b03e268e5e6b": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -2261,7 +2260,7 @@ "width": null } }, - "39b9065670204e0499e21e94eb3ada5c": { + "a3ac227a919748b98c9aaab9afccb469": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", @@ -2276,7 +2275,7 @@ "description_width": "" } }, - "8efca2469e9b4aec9749b5d71276eea5": { + "c028dfaae83c40979fea90f85344f354": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -2328,7 +2327,7 @@ "width": null } }, - "83ab0aed70bc43de92a73ee9b30df7aa": { + "8a777d045fd7496ab95f4081ca88fc71": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", @@ -2344,7 +2343,7 @@ "description_width": "" } }, - "c3d0bb97b633458d9ecadb548c313f5a": { + "14f78810c9c94b3ba1308a9cfda15911": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -2396,7 +2395,7 @@ "width": null } }, - "9974b9d4018c407f9c55e530b9cd10f1": { + "9ac87e70aa7d451dafc62b592f5d45fa": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", @@ -2411,7 +2410,7 @@ "description_width": "" } }, - "5863e2cb2ba14a7e80f99c0926b433c9": { + "61f3197c6f0547c4964e2c030df0ea3b": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", @@ -2426,14 +2425,14 @@ "_view_name": "HBoxView", "box_style": "", "children": [ - "IPY_MODEL_edce6976fecb4b10962a30cf92468498", - "IPY_MODEL_39aa66717d6249449bfec7906c3353bf", - "IPY_MODEL_931dd90e8908487197f8a1d167144df1" + "IPY_MODEL_b7ed86d35ae746d2849b8e1e18a948e0", + "IPY_MODEL_a09064c441244fc7a333eb92a2e4edd8", + "IPY_MODEL_1478dc488d4f4d17abb26acc069c5ba7" ], - "layout": "IPY_MODEL_60a6f0420dcb445da4ca9d5d7cfbb2dc" + "layout": "IPY_MODEL_eda83c1917d246178eb4c691fb943a77" } }, - "edce6976fecb4b10962a30cf92468498": { + "b7ed86d35ae746d2849b8e1e18a948e0": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", @@ -2448,13 +2447,13 @@ "_view_name": "HTMLView", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_813a118bfc914d1799846f01beb159bd", + "layout": "IPY_MODEL_1d955b2ca1834e0bacd41a97d690148d", "placeholder": "​", - "style": "IPY_MODEL_93225cd1d64844a5b28402aaa581ab0f", + "style": "IPY_MODEL_87ad65daa34747daa1e9013faefca302", "value": "Generating test split: 100%" } }, - "39aa66717d6249449bfec7906c3353bf": { + "a09064c441244fc7a333eb92a2e4edd8": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", @@ -2470,15 +2469,15 @@ "bar_style": "success", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_a6131535305344a98611172811109b45", + "layout": "IPY_MODEL_d0ce34a0515643a48ceba993bd89e3bd", "max": 400000, "min": 0, "orientation": "horizontal", - "style": "IPY_MODEL_f9cac0c062654374a2784ec5feac9b40", + "style": "IPY_MODEL_b525492479004f5f90da96aff44fda79", "value": 400000 } }, - "931dd90e8908487197f8a1d167144df1": { + "1478dc488d4f4d17abb26acc069c5ba7": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", @@ -2493,13 +2492,13 @@ "_view_name": "HTMLView", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_b2af4e800994474d80707761c039b69d", + "layout": "IPY_MODEL_d44f742be39e40e3a4d01facee41213e", "placeholder": "​", - "style": "IPY_MODEL_b77d676071094802bfbede1cbefa2cc0", - "value": " 400000/400000 [00:02<00:00, 169250.70 examples/s]" + "style": "IPY_MODEL_ade8859ae4804772ab10d9b5abba97de", + "value": " 400000/400000 [00:00<00:00, 404115.24 examples/s]" } }, - "60a6f0420dcb445da4ca9d5d7cfbb2dc": { + "eda83c1917d246178eb4c691fb943a77": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -2551,7 +2550,7 @@ "width": null } }, - "813a118bfc914d1799846f01beb159bd": { + "1d955b2ca1834e0bacd41a97d690148d": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -2603,7 +2602,7 @@ "width": null } }, - "93225cd1d64844a5b28402aaa581ab0f": { + "87ad65daa34747daa1e9013faefca302": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", @@ -2618,7 +2617,7 @@ "description_width": "" } }, - "a6131535305344a98611172811109b45": { + "d0ce34a0515643a48ceba993bd89e3bd": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -2670,7 +2669,7 @@ "width": null } }, - "f9cac0c062654374a2784ec5feac9b40": { + "b525492479004f5f90da96aff44fda79": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", @@ -2686,7 +2685,7 @@ "description_width": "" } }, - "b2af4e800994474d80707761c039b69d": { + "d44f742be39e40e3a4d01facee41213e": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -2738,7 +2737,7 @@ "width": null } }, - "b77d676071094802bfbede1cbefa2cc0": { + "ade8859ae4804772ab10d9b5abba97de": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", @@ -2753,7 +2752,7 @@ "description_width": "" } }, - "9068d0c276964335b73c58216da9656d": { + "d7edd9e1cb5c49d7a628d608df6ca9aa": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", @@ -2768,14 +2767,14 @@ "_view_name": "HBoxView", "box_style": "", "children": [ - "IPY_MODEL_3895ed82638943758491afccdb828fd9", - "IPY_MODEL_eb4ce1f0c49d458693d225d5620ae3bf", - "IPY_MODEL_2259f89acfaa4ab5aeee9e0f9216ef36" + "IPY_MODEL_c2413503263844ae87c509f01040e239", + "IPY_MODEL_b5350b54decd4a8b8c3fa55af35aa6a5", + "IPY_MODEL_9a31c5f1a7884b5d85b84be07ab3aed1" ], - "layout": "IPY_MODEL_93ddc605f5334f1da787e181266d8bfe" + "layout": "IPY_MODEL_6924897a1a1043abb4c2314112822ec6" } }, - "3895ed82638943758491afccdb828fd9": { + "c2413503263844ae87c509f01040e239": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", @@ -2790,13 +2789,13 @@ "_view_name": "HTMLView", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_58c813c53d1f492f867718d02ba04a5d", + "layout": "IPY_MODEL_8c537726c7034e75b5a2906b5f23ff8a", "placeholder": "​", - "style": "IPY_MODEL_222716afe7fa48a0b655b4c5a9cca846", + "style": "IPY_MODEL_ae695dc9063048d0979e462d4988d77f", "value": "Creating json from Arrow format: 100%" } }, - "eb4ce1f0c49d458693d225d5620ae3bf": { + "b5350b54decd4a8b8c3fa55af35aa6a5": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", @@ -2812,15 +2811,15 @@ "bar_style": "success", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_e262d9ec7a4e4dce97d699e7d87b0108", + "layout": "IPY_MODEL_2bca204eb3e241c29e90ba15e61227af", "max": 3600, "min": 0, "orientation": "horizontal", - "style": "IPY_MODEL_048c7d4f16ba406a9c80dfb8396feccb", + "style": "IPY_MODEL_4725888641e8425c8db61ef836d5f283", "value": 3600 } }, - "2259f89acfaa4ab5aeee9e0f9216ef36": { + "9a31c5f1a7884b5d85b84be07ab3aed1": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", @@ -2835,13 +2834,13 @@ "_view_name": "HTMLView", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_2ad00c27852b4d34b4c0f3254ec07bda", + "layout": "IPY_MODEL_66f994463d2a41ec890e90fe7ee1e6fa", "placeholder": "​", - "style": "IPY_MODEL_ce68ac2e0389406b97061c1d0833c825", - "value": " 3600/3600 [00:28<00:00, 149.69ba/s]" + "style": "IPY_MODEL_e64efef822d846b7b5ee9b27ed780d34", + "value": " 3600/3600 [00:27<00:00, 210.11ba/s]" } }, - "93ddc605f5334f1da787e181266d8bfe": { + "6924897a1a1043abb4c2314112822ec6": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -2893,7 +2892,7 @@ "width": null } }, - "58c813c53d1f492f867718d02ba04a5d": { + "8c537726c7034e75b5a2906b5f23ff8a": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -2945,7 +2944,7 @@ "width": null } }, - "222716afe7fa48a0b655b4c5a9cca846": { + "ae695dc9063048d0979e462d4988d77f": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", @@ -2960,7 +2959,7 @@ "description_width": "" } }, - "e262d9ec7a4e4dce97d699e7d87b0108": { + "2bca204eb3e241c29e90ba15e61227af": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -3012,7 +3011,7 @@ "width": null } }, - "048c7d4f16ba406a9c80dfb8396feccb": { + "4725888641e8425c8db61ef836d5f283": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", @@ -3028,7 +3027,7 @@ "description_width": "" } }, - "2ad00c27852b4d34b4c0f3254ec07bda": { + "66f994463d2a41ec890e90fe7ee1e6fa": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -3080,7 +3079,7 @@ "width": null } }, - "ce68ac2e0389406b97061c1d0833c825": { + "e64efef822d846b7b5ee9b27ed780d34": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", @@ -3095,7 +3094,7 @@ "description_width": "" } }, - "6f4b9a0d96cd44d5aef88c9a1746d28a": { + "79b9e2fee0f34577a0f2a566d848e8e7": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", @@ -3110,14 +3109,14 @@ "_view_name": "HBoxView", "box_style": "", "children": [ - "IPY_MODEL_e1ce74de926546f7b7edb785645d94a7", - "IPY_MODEL_b46dc10473594a22a23e6c9bfe635e1e", - "IPY_MODEL_c9991a8fc39d414e95e99da16a734142" + "IPY_MODEL_4cf4537065b7434a87f4284c26b7c661", + "IPY_MODEL_7a2fa8ad072442c287e7cf33831a3c10", + "IPY_MODEL_ed89f367a6a24e3b9b5af45035d3cd84" ], - "layout": "IPY_MODEL_a34d936936114a1896f919e5d996e256" + "layout": "IPY_MODEL_df97681806be49598f393f6c0c7b43ec" } }, - "e1ce74de926546f7b7edb785645d94a7": { + "4cf4537065b7434a87f4284c26b7c661": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", @@ -3132,13 +3131,13 @@ "_view_name": "HTMLView", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_8d5f8abe931e469990e70083937b1d86", + "layout": "IPY_MODEL_dc733b574c00437bbe91d282d51af34d", "placeholder": "​", - "style": "IPY_MODEL_a2a52084d98d4cbbb066058b24f23596", + "style": "IPY_MODEL_d2e57805352d44d7bf42aba3ffdd1b89", "value": "Creating json from Arrow format: 100%" } }, - "b46dc10473594a22a23e6c9bfe635e1e": { + "7a2fa8ad072442c287e7cf33831a3c10": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", @@ -3154,15 +3153,15 @@ "bar_style": "success", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_b29ecf40cdae4e80be6d937b2b9a6bd6", + "layout": "IPY_MODEL_7f14e5655eed4bb4a5f40e5d381517b6", "max": 400, "min": 0, "orientation": "horizontal", - "style": "IPY_MODEL_2464a1ca08fb4726afab6db87dc284ab", + "style": "IPY_MODEL_9a8cf916e4fc4a229f91462bfd038907", "value": 400 } }, - "c9991a8fc39d414e95e99da16a734142": { + "ed89f367a6a24e3b9b5af45035d3cd84": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", @@ -3177,13 +3176,13 @@ "_view_name": "HTMLView", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_c7f99ac5a8924a2fa989e2d7b557abf4", + "layout": "IPY_MODEL_43ba4e2bc78942509f1ec955c09e173a", "placeholder": "​", - "style": "IPY_MODEL_b6d3645d20624cec9e1042651a8a6118", - "value": " 400/400 [00:02<00:00, 222.28ba/s]" + "style": "IPY_MODEL_1897b3670ae74d878501f85890576230", + "value": " 400/400 [00:01<00:00, 232.91ba/s]" } }, - "a34d936936114a1896f919e5d996e256": { + "df97681806be49598f393f6c0c7b43ec": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -3235,7 +3234,7 @@ "width": null } }, - "8d5f8abe931e469990e70083937b1d86": { + "dc733b574c00437bbe91d282d51af34d": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -3287,7 +3286,7 @@ "width": null } }, - "a2a52084d98d4cbbb066058b24f23596": { + "d2e57805352d44d7bf42aba3ffdd1b89": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", @@ -3302,7 +3301,7 @@ "description_width": "" } }, - "b29ecf40cdae4e80be6d937b2b9a6bd6": { + "7f14e5655eed4bb4a5f40e5d381517b6": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -3354,7 +3353,7 @@ "width": null } }, - "2464a1ca08fb4726afab6db87dc284ab": { + "9a8cf916e4fc4a229f91462bfd038907": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", @@ -3370,7 +3369,7 @@ "description_width": "" } }, - "c7f99ac5a8924a2fa989e2d7b557abf4": { + "43ba4e2bc78942509f1ec955c09e173a": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -3422,7 +3421,7 @@ "width": null } }, - "b6d3645d20624cec9e1042651a8a6118": { + "1897b3670ae74d878501f85890576230": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", @@ -3497,9 +3496,9 @@ "base_uri": "https://localhost:8080/" }, "id": "IxofynaY2gB_", - "outputId": "b32ca55d-d573-4aa8-de68-af2b7a954a1e" + "outputId": "132e7103-b60c-4fd4-ab31-d0a06e970d6a" }, - "execution_count": 1, + "execution_count": null, "outputs": [ { "output_type": "stream", @@ -3552,7 +3551,7 @@ "base_uri": "https://localhost:8080/" }, "id": "b8614c08", - "outputId": "7a45e44d-54aa-4b3d-a1b4-37707a570f5d" + "outputId": "a719671a-746e-41cd-e3eb-41b9bdd4e956" }, "source": [ "# @title 1.1 Setup & Dependencies\n", @@ -3565,6 +3564,7 @@ "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", @@ -3582,14 +3582,14 @@ "\n", "print(\"✅ Environment setup complete.\")" ], - "execution_count": 2, + "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[91m╸\u001b[0m \u001b[32m3.5/3.5 MB\u001b[0m \u001b[31m194.9 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[31m92.8 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[31m14.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\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" ] } @@ -3598,7 +3598,7 @@ { "cell_type": "code", "source": [ - "# @title 1.2 Define Benchmarking Utilities (Optimized for Scale)\n", + "# @title 1.2 Define Benchmarking Utilities\n", "\n", "class BenchmarkTracker:\n", " def __init__(self):\n", @@ -3683,9 +3683,9 @@ "base_uri": "https://localhost:8080/" }, "id": "Ti7DuqC8zrXl", - "outputId": "9b2ac768-7b40-436e-9f46-92da4b0f3017" + "outputId": "cea7f39c-4ac7-4adf-b016-8c008c42c712" }, - "execution_count": 3, + "execution_count": null, "outputs": [ { "output_type": "stream", @@ -3703,7 +3703,7 @@ "base_uri": "https://localhost:8080/" }, "id": "36252453", - "outputId": "0ce19bb0-9685-4f15-b70f-a3ee763b7ba2" + "outputId": "6120c233-6ccc-4fdc-e45e-f39bceee1ebc" }, "source": [ "# @title 1.3 Define Global Constants and Paths\n", @@ -3726,7 +3726,7 @@ "\n", "print(\"✅ Global constants and paths defined.\")" ], - "execution_count": 4, + "execution_count": null, "outputs": [ { "output_type": "stream", @@ -3755,118 +3755,123 @@ "base_uri": "https://localhost:8080/", "height": 532, "referenced_widgets": [ - "e9b09ac7c2174367b05883f3d3aff6f9", - "3587d23b09674e159c548c0bde943697", - "7a44cf5adb954842af61929ac583fa64", - "5ea5a900d66a495b83c3960f4653ec2d", - "ae56cf5f251a486cbc353019959e499d", - "ecd8422537864ec6abaa7cae1856f9df", - "eb783c612bf74aa082cbf3e21bfc1e01", - "e45393cafd624c7596f2e3c2e71702a0", - "92799625f0ca4c8ba569fc606a5ac338", - "0b4f9fabaa7a42c7b237b4212a725882", - "9c691f808bf14ffb816825cc553ed20b", - "b198f8bede6f4f3f8ab85a5c23410281", - "d8b910cc334641b082407da4cd5bffb6", - "722aed840ffe4a43b0bb096cf9990f69", - "d65f247cab59485caa160e3ab90bf026", - "20918cbed5c943d5bcb17fa88f927980", - "1b69a97f14254e1da5f66c4154d8c0b2", - "46561cbd61a74cad90f78a31925509c7", - "465070b9e6874eff863e01bd75b01457", - "30e99ca83c434ce4a6c10eb312cd6dfc", - "e7276b51b1ea417390c894ae0e541ebd", - "95798fe15239480ba87d19192d296187", - "e875ad47edfa447bae6f45ad5d17714a", - "546746a37b414bbf9dd081a4038a408f", - "ea1ba4cbd8c746bd9d7db42bac7a8839", - "4c775268eec448b39638db557958b029", - "d0cf8be2ce0345059651084052734a59", - "d73a05d171444e66bddf66596c4d68f6", - "66e3a13e9bf04ded8303be8e431c21e8", - "f209f065e7c744a08a3457726781338c", - "bbc5c01c4a17435790467edebfae6167", - "ec2d264d3791489f807207045fcda35d", - "ce7fafb4755d442e82c14c451b8159df", - "c4eda03bbf964c0d8de7758722619fa4", - "22478687fe0448b69baf6f7dd908f3fc", - "f0de16e3ad7a429292a5cb6b379c1ab3", - "9a2fca6103a64a72875098081b181ab2", - "8459c016a078475b877bea4b5a787a66", - "fe593dcb41ad4ae8a82bbec02aa3727f", - "31da5a4d89d442f6ac10d2d3e998b9dc", - "9e985af96ba84ce5942fdc0e6b433e36", - "3290118fcc4343f48290853a7ca7a9b2", - "bec15ef07c874e0f9adc7777eeffaeb9", - "3b57c2f561f946c7885e517fc765bde5", - "466ee7b9b4314fe185f2e95e65787368", - "00673fe888754d00ac42786670672893", - "1c97876e5aa24717bf2f1a5ab50b53ed", - "5072c9d6eacd4987aa8768eaa3d14ee0", - "796c152c3d1d490996adbcce33e9dd67", - "1eaa76f0d53045929f88c1670ffce1ff", - "8e4a0faca6964389816e6c20c8e7ef5d", - "a540fd76d900440fa6fb3429e2e535e0", - "07620dcc7b014eeab2bd847df1ec150b", - "ee23a71e4a144e63ba9d42413da7ea5e", - "cc3117a4286941a3b52608ae183a017b", - "195bb41efd7341298f9e770444b20914", - "82da0b7625254032adb1490ee13301fd", - "4ff2c74d3b5a45d8b604f8924be05464", - "c29c521b900243b2aad1b954b1cf001b", - "d0e748ae3c7f49d3b1482ac2a36ea9e7", - "e074cad8fbc045a3880aa9703e8d08b2", - "ea4bd15944954cc1a8f6bcc0334b4bbd", - "d7e73f7d0b64487e864eef85ea7a6c96", - "f4515ac1497e43df8262e82c2548f1b2", - "03a21315985d4493b6884a3379f9213d", - "9245059b9d1746b0b295c7e3098851e0", - "142163f8585d4d9b833792771d76960f", - "7ed66d2bce3649729f03175f2dd3ef4e", - "d0bcc429ce54484e9edf5ab92646e333", - "30d7990199ad471da587dafbccacf065", - "aa04339a34c746a8a7c182fa5017e332", - "282bf0d0484a40d8999bf5a0f505d1e7", - "39b9065670204e0499e21e94eb3ada5c", - "8efca2469e9b4aec9749b5d71276eea5", - "83ab0aed70bc43de92a73ee9b30df7aa", - "c3d0bb97b633458d9ecadb548c313f5a", - "9974b9d4018c407f9c55e530b9cd10f1", - "5863e2cb2ba14a7e80f99c0926b433c9", - "edce6976fecb4b10962a30cf92468498", - "39aa66717d6249449bfec7906c3353bf", - "931dd90e8908487197f8a1d167144df1", - "60a6f0420dcb445da4ca9d5d7cfbb2dc", - "813a118bfc914d1799846f01beb159bd", - "93225cd1d64844a5b28402aaa581ab0f", - "a6131535305344a98611172811109b45", - "f9cac0c062654374a2784ec5feac9b40", - "b2af4e800994474d80707761c039b69d", - "b77d676071094802bfbede1cbefa2cc0" + "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" ] }, - "collapsed": true, "id": "9214cb29", - "outputId": "875f3bab-6132-4cbf-95fd-2665cc4baa4d" + "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", - " # Loading a subset for training (e.g., first 20,000 rows)\n", " dataset = load_dataset(DATASET_NAME, split=TRAIN_SPLIT)\n", " test_dataset = load_dataset(DATASET_NAME, split=TEST_SPLIT)\n", "\n", - " return (\n", - " dataset['content'],\n", - " dataset['label'],\n", - " test_dataset['content'],\n", - " test_dataset['label']\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", @@ -3875,16 +3880,8 @@ " train_func=train_standard_model\n", ")" ], - "execution_count": 5, + "execution_count": null, "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - "--- Benchmarking: HF Dataset (Arrow) ---\n", - " ⏳ Loading data...\n" - ] - }, { "output_type": "stream", "name": "stderr", @@ -3906,7 +3903,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "e9b09ac7c2174367b05883f3d3aff6f9" + "model_id": "5a0ac8c1198c4c2daa6a2f42fb999fcc" } }, "metadata": {} @@ -3920,7 +3917,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "b198f8bede6f4f3f8ab85a5c23410281" + "model_id": "f576a8515b084e95a80e997c17d2315a" } }, "metadata": {} @@ -3934,7 +3931,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "e875ad47edfa447bae6f45ad5d17714a" + "model_id": "31d696b7927f42ec9576f09be2c3d98b" } }, "metadata": {} @@ -3948,7 +3945,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "c4eda03bbf964c0d8de7758722619fa4" + "model_id": "b61b9fbe801e4c4282808920aadf7371" } }, "metadata": {} @@ -3962,7 +3959,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "466ee7b9b4314fe185f2e95e65787368" + "model_id": "c1b5f033aa3148118570ccc325046c35" } }, "metadata": {} @@ -3976,7 +3973,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "195bb41efd7341298f9e770444b20914" + "model_id": "f97f673536e94561a7d341f6c69c0e7e" } }, "metadata": {} @@ -3990,7 +3987,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "142163f8585d4d9b833792771d76960f" + "model_id": "c4dd07f49a534338a8718d6efc536156" } }, "metadata": {} @@ -4004,7 +4001,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "5863e2cb2ba14a7e80f99c0926b433c9" + "model_id": "61f3197c6f0547c4964e2c030df0ea3b" } }, "metadata": {} @@ -4013,10 +4010,12 @@ "output_type": "stream", "name": "stdout", "text": [ - " ✅ Loaded 3,600,000 rows in 52.54s\n", + "--- Benchmarking: HF Dataset (Arrow) ---\n", + " ⏳ Loading data...\n", + " ✅ Loaded 3,600,000 rows in 6.28s\n", " ⚙️ Training model...\n", - " ⏱️ Train Time: 317.4109s\n", - " 💾 Mem Delta: 2193.22 MB\n", + " ⏱️ Train Time: 174.5190s\n", + " 💾 Mem Delta: 2250.99 MB\n", "------------------------------\n" ] } @@ -4040,40 +4039,38 @@ "base_uri": "https://localhost:8080/", "height": 154, "referenced_widgets": [ - "9068d0c276964335b73c58216da9656d", - "3895ed82638943758491afccdb828fd9", - "eb4ce1f0c49d458693d225d5620ae3bf", - "2259f89acfaa4ab5aeee9e0f9216ef36", - "93ddc605f5334f1da787e181266d8bfe", - "58c813c53d1f492f867718d02ba04a5d", - "222716afe7fa48a0b655b4c5a9cca846", - "e262d9ec7a4e4dce97d699e7d87b0108", - "048c7d4f16ba406a9c80dfb8396feccb", - "2ad00c27852b4d34b4c0f3254ec07bda", - "ce68ac2e0389406b97061c1d0833c825", - "6f4b9a0d96cd44d5aef88c9a1746d28a", - "e1ce74de926546f7b7edb785645d94a7", - "b46dc10473594a22a23e6c9bfe635e1e", - "c9991a8fc39d414e95e99da16a734142", - "a34d936936114a1896f919e5d996e256", - "8d5f8abe931e469990e70083937b1d86", - "a2a52084d98d4cbbb066058b24f23596", - "b29ecf40cdae4e80be6d937b2b9a6bd6", - "2464a1ca08fb4726afab6db87dc284ab", - "c7f99ac5a8924a2fa989e2d7b557abf4", - "b6d3645d20624cec9e1042651a8a6118" + "d7edd9e1cb5c49d7a628d608df6ca9aa", + "c2413503263844ae87c509f01040e239", + "b5350b54decd4a8b8c3fa55af35aa6a5", + "9a31c5f1a7884b5d85b84be07ab3aed1", + "6924897a1a1043abb4c2314112822ec6", + "8c537726c7034e75b5a2906b5f23ff8a", + "ae695dc9063048d0979e462d4988d77f", + "2bca204eb3e241c29e90ba15e61227af", + "4725888641e8425c8db61ef836d5f283", + "66f994463d2a41ec890e90fe7ee1e6fa", + "e64efef822d846b7b5ee9b27ed780d34", + "79b9e2fee0f34577a0f2a566d848e8e7", + "4cf4537065b7434a87f4284c26b7c661", + "7a2fa8ad072442c287e7cf33831a3c10", + "ed89f367a6a24e3b9b5af45035d3cd84", + "df97681806be49598f393f6c0c7b43ec", + "dc733b574c00437bbe91d282d51af34d", + "d2e57805352d44d7bf42aba3ffdd1b89", + "7f14e5655eed4bb4a5f40e5d381517b6", + "9a8cf916e4fc4a229f91462bfd038907", + "43ba4e2bc78942509f1ec955c09e173a", + "1897b3670ae74d878501f85890576230" ] }, "id": "50649dfc", - "outputId": "a806f88e-b4f8-4d13-ef7e-001308f8deb5" + "outputId": "08ba526e-13b0-453b-826e-899cf8a1eff7" }, "source": [ "# @title 3.1 Prepare Input Data for SchemaForge\n", "# SchemaForge requires raw JSON files as input.\n", "# We will export the HF dataset to a raw JSON format to simulate the \"Chaos\" state.\n", "\n", - "import gc\n", - "\n", "print(\"📥 Loading raw dataset for export (this may take a minute)... \")\n", "# Use the predefined constants for dataset name and splits\n", "raw_data = load_dataset(DATASET_NAME, split=TRAIN_SPLIT)\n", @@ -4093,7 +4090,7 @@ "\n", "print(f\"✅ Data exported to JSON in '{DATA_DIR}'\")" ], - "execution_count": 6, + "execution_count": null, "outputs": [ { "output_type": "stream", @@ -4112,7 +4109,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "9068d0c276964335b73c58216da9656d" + "model_id": "d7edd9e1cb5c49d7a628d608df6ca9aa" } }, "metadata": {} @@ -4133,7 +4130,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "6f4b9a0d96cd44d5aef88c9a1746d28a" + "model_id": "79b9e2fee0f34577a0f2a566d848e8e7" } }, "metadata": {} @@ -4159,9 +4156,9 @@ "base_uri": "https://localhost:8080/" }, "id": "aQcp-jxNz782", - "outputId": "657ff2b2-2bcd-4955-b8f1-d072b336b487" + "outputId": "b82d921b-024f-4b85-b27d-fbb2a3d8b1df" }, - "execution_count": 7, + "execution_count": null, "outputs": [ { "output_type": "stream", @@ -4172,7 +4169,7 @@ "remote: Counting objects: 100% (46/46), done.\u001b[K\n", "remote: Compressing objects: 100% (39/39), done.\u001b[K\n", "remote: Total 46 (delta 5), reused 30 (delta 4), pack-reused 0 (from 0)\u001b[K\n", - "Receiving objects: 100% (46/46), 41.65 KiB | 13.88 MiB/s, done.\n", + "Receiving objects: 100% (46/46), 41.65 KiB | 2.78 MiB/s, done.\n", "Resolving deltas: 100% (5/5), done.\n", "Requirement already satisfied: pandas>=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", @@ -4205,7 +4202,7 @@ "base_uri": "https://localhost:8080/" }, "id": "8ca7948e", - "outputId": "ae9b924c-e496-401b-8e02-1ac28ba73a63" + "outputId": "7d191f0a-325b-4199-b0ca-1369152dd19f" }, "source": [ "# @title 3.3 Run SchemaForge Pipeline (Scan & Convert)\n", @@ -4243,70 +4240,70 @@ "\n", "print(f\"\\n✅ Conversion Complete! Formats ready in '{OUTPUT_DIR}/'\")" ], - "execution_count": 8, + "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "🔍 Running SchemaForge: scan-schemas...\n", - "2025-12-07 17:08:48,602 - __main__ - INFO - Starting schema scan...\n", - "2025-12-07 17:08:48,603 - src.schema_reader.inference - INFO - Found 2 JSON file(s) in ../schemaforge_bench/data\n", - "2025-12-07 17:08:48,649 - src.schema_reader.inference - INFO - Processing file: train_data.json\n", - "2025-12-07 17:08:48,650 - src.schema_reader.inference - INFO - No max_sample_size set. Defaulting to 10000 for performance.\n", - "2025-12-07 17:08:48,651 - src.schema_reader.inference - INFO - Processing file: test_data.json\n", - "2025-12-07 17:08:48,652 - src.schema_reader.inference - INFO - No max_sample_size set. Defaulting to 10000 for performance.\n", - "2025-12-07 17:08:49,350 - 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-07 17:08:55,748 - 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-07 17:09:02,968 - src.schema_reader.inference - INFO - Streaming first 10000 records from test_data.json\n", - "2025-12-07 17:09:02,973 - src.schema_reader.inference - INFO - Analyzing 10000 of 10000 records from test_data.json\n", - "2025-12-07 17:09:04,111 - src.schema_reader.inference - INFO - Successfully inferred schema for test_data.json: 3 fields\n", - "2025-12-07 17:09:41,007 - src.schema_reader.inference - INFO - Streaming first 10000 records from train_data.json\n", - "2025-12-07 17:09:41,011 - src.schema_reader.inference - INFO - Analyzing 10000 of 10000 records from train_data.json\n", - "2025-12-07 17:09:41,234 - src.schema_reader.inference - INFO - Successfully inferred schema for train_data.json: 3 fields\n", - "2025-12-07 17:09:42,370 - __main__ - INFO - Successfully scanned 2 file(s)\n", - "2025-12-07 17:09:42,372 - src.schema_reader.reporting - INFO - Schema report written to ../schemaforge_bench/schema_report.md\n", - "2025-12-07 17:09:42,373 - src.schema_reader.reporting - INFO - Schemas saved to JSON: ../schemaforge_bench/schema_report.json\n", - "2025-12-07 17:09:42,373 - __main__ - INFO - Schema report generated: ../schemaforge_bench/schema_report.md\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-07 17:09:44,410 - __main__ - INFO - Starting conversion to csv...\n", - "2025-12-07 17:09:44,413 - src.converter.core - INFO - Loading schemas from schema report: /content/schemaforge_bench/schema_report.json\n", - "2025-12-07 17:09:44,413 - src.schema_reader.reporting - INFO - Loaded 2 schema(s) from /content/schemaforge_bench/schema_report.json\n", - "2025-12-07 17:09:44,441 - src.converter.csv - INFO - Converting train_data.json to CSV...\n", - "2025-12-07 17:09:44,441 - src.json_loader - INFO - File train_data.json is 1601.5MB. Using streaming for efficiency.\n", - "2025-12-07 17:09:44,443 - src.converter.csv - INFO - Converting test_data.json to CSV...\n", - "2025-12-07 17:09:44,443 - src.json_loader - INFO - File test_data.json is 177.9MB. Using streaming for efficiency.\n", - "2025-12-07 17:09:45,922 - 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-07 17:09:47,895 - 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-07 17:10:05,340 - src.converter.csv - INFO - Successfully converted test_data.json to ../schemaforge_bench/output/csv/test_data.csv\n", - "2025-12-07 17:11:34,670 - src.converter.csv - INFO - Successfully converted train_data.json to ../schemaforge_bench/output/csv/train_data.csv\n", - "2025-12-07 17:11:36,106 - __main__ - INFO - Conversion complete: 2 successful, 0 failed\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-07 17:11:37,309 - __main__ - INFO - Starting conversion to parquet...\n", - "2025-12-07 17:11:37,309 - src.converter.core - INFO - Loading schemas from schema report: /content/schemaforge_bench/schema_report.json\n", - "2025-12-07 17:11:37,310 - src.schema_reader.reporting - INFO - Loaded 2 schema(s) from /content/schemaforge_bench/schema_report.json\n", - "2025-12-07 17:11:37,332 - src.converter.parquet - INFO - Converting train_data.json to Parquet...\n", - "2025-12-07 17:11:37,332 - src.json_loader - INFO - File train_data.json is 1601.5MB. Using streaming for efficiency.\n", - "2025-12-07 17:11:37,333 - src.converter.parquet - INFO - Converting test_data.json to Parquet...\n", - "2025-12-07 17:11:37,333 - src.json_loader - INFO - File test_data.json is 177.9MB. Using streaming for efficiency.\n", - "2025-12-07 17:11:37,683 - 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-07 17:11:40,471 - 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-07 17:11:49,605 - src.converter.parquet - INFO - Successfully converted test_data.json to ../schemaforge_bench/output/parquet/test_data.parquet\n", - "2025-12-07 17:12:53,257 - src.converter.parquet - INFO - Successfully converted train_data.json to ../schemaforge_bench/output/parquet/train_data.parquet\n", - "2025-12-07 17:12:54,037 - __main__ - INFO - Conversion complete: 2 successful, 0 failed\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-07 17:12:54,871 - __main__ - INFO - Starting conversion to feather...\n", - "2025-12-07 17:12:54,878 - src.converter.core - INFO - Loading schemas from schema report: /content/schemaforge_bench/schema_report.json\n", - "2025-12-07 17:12:54,878 - src.schema_reader.reporting - INFO - Loaded 2 schema(s) from /content/schemaforge_bench/schema_report.json\n", - "2025-12-07 17:12:54,896 - src.converter.feather - INFO - Converting train_data.json to Feather...\n", - "2025-12-07 17:12:54,897 - src.json_loader - INFO - File train_data.json is 1601.5MB. Using streaming for efficiency.\n", - "2025-12-07 17:12:54,898 - src.converter.feather - INFO - Converting test_data.json to Feather...\n", - "2025-12-07 17:12:54,898 - src.json_loader - INFO - File test_data.json is 177.9MB. Using streaming for efficiency.\n", - "2025-12-07 17:12:55,553 - 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-07 17:12:58,511 - 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-07 17:13:06,899 - src.converter.feather - INFO - Successfully converted test_data.json to ../schemaforge_bench/output/feather/test_data.feather\n", - "2025-12-07 17:14:19,605 - src.converter.feather - INFO - Successfully converted train_data.json to ../schemaforge_bench/output/feather/train_data.feather\n", - "2025-12-07 17:14:20,452 - __main__ - INFO - Conversion complete: 2 successful, 0 failed\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" ] @@ -4331,7 +4328,7 @@ "base_uri": "https://localhost:8080/" }, "id": "6c6df480", - "outputId": "412ba5fb-a48e-4baa-cabc-bbd51d251d55" + "outputId": "356e7070-d503-44a3-fa22-61778175df85" }, "source": [ "# @title 4.1 Benchmark CSV\n", @@ -4350,7 +4347,7 @@ " train_func=train_standard_model\n", ")" ], - "execution_count": 9, + "execution_count": null, "outputs": [ { "output_type": "stream", @@ -4358,10 +4355,10 @@ "text": [ "--- Benchmarking: CSV (Pandas) ---\n", " ⏳ Loading data...\n", - " ✅ Loaded 3,600,000 rows in 34.58s\n", + " ✅ Loaded 3,600,000 rows in 34.78s\n", " ⚙️ Training model...\n", - " ⏱️ Train Time: 176.7297s\n", - " 💾 Mem Delta: 2295.14 MB\n", + " ⏱️ Train Time: 176.3890s\n", + " 💾 Mem Delta: 2298.81 MB\n", "------------------------------\n" ] } @@ -4374,7 +4371,7 @@ "base_uri": "https://localhost:8080/" }, "id": "bd83abbb", - "outputId": "a9924b69-652a-4ebf-9e0c-8886ab154ef5" + "outputId": "4f1a5acf-eabc-4353-ad60-4b4ce70b5a1e" }, "source": [ "# @title 4.2 Benchmark Parquet\n", @@ -4393,7 +4390,7 @@ " train_func=train_standard_model\n", ")" ], - "execution_count": 10, + "execution_count": null, "outputs": [ { "output_type": "stream", @@ -4401,10 +4398,10 @@ "text": [ "--- Benchmarking: Parquet (PyArrow) ---\n", " ⏳ Loading data...\n", - " ✅ Loaded 3,600,000 rows in 12.65s\n", + " ✅ Loaded 3,600,000 rows in 13.88s\n", " ⚙️ Training model...\n", - " ⏱️ Train Time: 172.0169s\n", - " 💾 Mem Delta: 2155.44 MB\n", + " ⏱️ Train Time: 180.0725s\n", + " 💾 Mem Delta: 2028.25 MB\n", "------------------------------\n" ] } @@ -4417,7 +4414,7 @@ "base_uri": "https://localhost:8080/" }, "id": "731384f9", - "outputId": "533e9ad6-9c44-4f24-a07f-769b775387a5" + "outputId": "e2dc793e-f0c3-4a70-dc2c-324115088098" }, "source": [ "# @title 4.3 Benchmark Feather\n", @@ -4436,7 +4433,7 @@ " train_func=train_standard_model\n", ")" ], - "execution_count": 11, + "execution_count": null, "outputs": [ { "output_type": "stream", @@ -4444,10 +4441,10 @@ "text": [ "--- Benchmarking: Feather (Arrow IPC) ---\n", " ⏳ Loading data...\n", - " ✅ Loaded 3,600,000 rows in 9.03s\n", + " ✅ Loaded 3,600,000 rows in 9.55s\n", " ⚙️ Training model...\n", - " ⏱️ Train Time: 169.1621s\n", - " 💾 Mem Delta: 2384.89 MB\n", + " ⏱️ Train Time: 175.7252s\n", + " 💾 Mem Delta: 2329.90 MB\n", "------------------------------\n" ] } @@ -4480,29 +4477,29 @@ "base_uri": "https://localhost:8080/", "height": 175 }, - "outputId": "b2ce3ad4-86e6-49ab-a928-0b2703e40f91" + "outputId": "e775db8f-b2e8-4755-899e-b19a72efbe95" }, - "execution_count": 12, + "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) 52.5374 317.4109 369.9483 \n", - "1 CSV (Pandas) 34.5824 176.7297 211.3121 \n", - "2 Parquet (PyArrow) 12.6510 172.0169 184.6680 \n", - "3 Feather (Arrow IPC) 9.0286 169.1621 178.1907 \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 2193.2188 0.8397 0.8396 \n", - "1 2295.1406 0.8397 0.8396 \n", - "2 2155.4414 0.8397 0.8396 \n", - "3 2384.8945 0.8397 0.8396 " + "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", "