{"metadata":{"kernelspec":{"name":"python3","display_name":"Python 3","language":"python"},"language_info":{"name":"python","version":"3.10.13","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":70367,"databundleVersionId":9188054,"sourceType":"competition"}],"dockerImageVersionId":30746,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"# Calibrating and Time Binning Astronomical Data","metadata":{}},{"cell_type":"markdown","source":"**UPDATE 14.08**: We have updated the calibration steps in the notebook. We understand that some of you have been using the old calibration procedure. The old procedures still provide a good estimate of the transit depth over different wavelengths, but as competition hosts we understand the difficulty to accurately calibrate the data product (even for us, it is still a learning journey, afterall, we are preparing for the mission), and we want to make sure you have the most updated knowledge on the calibration pipeline, so that it helps your journey in tackling this challenge. We will explain more in our discussion \n\n**UPDATE 29.08**: We have added 0.1s to the integration time for both AIRS and FGS observations. They are important when accounting for the contributing of dark frames when calibration the image. The modification, however, should not affect too much of the calibrated product. ","metadata":{}},{"cell_type":"markdown","source":"Data reduction is crucial in astronomical observations, and this challenge is no exception. This notebook outlines essential calibration steps typically employed by astronomers to mitigate noise in data.\n\nKey points:\n\n- The notebook guides participants through pre-processing data and saving it in a more convenient, lighter format.\n- If you plan to use the baseline models (which will be released soon), you must run this notebook first before training.\n\nImportant note: While these steps help reduce noise and data size, they may not be the most effective approach for achieving the optimal model for this challenge. Participants are encouraged to explore alternative methods that could yield better results.\n\n\n\n","metadata":{}},{"cell_type":"markdown","source":"**Acknowledgement**: This notebook is prepared by Angèle Syty and Virginie Batista (IAP), with support from Andrea Bocchieri, Orphée Faucoz (CNES), Lorenzo V. Mugnai (Cardiff University & UCL), Tara Tahseen (UCL), Gordon Yip (UCL).","metadata":{}},{"cell_type":"markdown","source":"Last modified: 29 Aug 2024. ","metadata":{}},{"cell_type":"code","source":"import numpy as np\nimport pandas as pd\nimport itertools\nimport os\nimport glob \nfrom astropy.stats import sigma_clip\n\nfrom tqdm import tqdm","metadata":{"execution":{"iopub.status.busy":"2024-10-17T23:08:47.907561Z","iopub.execute_input":"2024-10-17T23:08:47.908317Z","iopub.status.idle":"2024-10-17T23:08:49.820938Z","shell.execute_reply.started":"2024-10-17T23:08:47.908262Z","shell.execute_reply":"2024-10-17T23:08:49.819641Z"},"trusted":true},"execution_count":1,"outputs":[]},{"cell_type":"markdown","source":"Below, we define the corrections we want to apply, the size of the data chunks and the different path used to import data and save the light ones. ","metadata":{}},{"cell_type":"code","source":"\npath_folder = '/kaggle/input/ariel-data-challenge-2024/' # path to the folder containing the data\npath_out = '/kaggle/tmp/data_light_raw/' # path to the folder to store the light data\noutput_dir = '/kaggle/tmp/data_light_raw/' # path for the output directory\n","metadata":{"execution":{"iopub.status.busy":"2024-10-17T23:09:03.157112Z","iopub.execute_input":"2024-10-17T23:09:03.157633Z","iopub.status.idle":"2024-10-17T23:09:03.165052Z","shell.execute_reply.started":"2024-10-17T23:09:03.157579Z","shell.execute_reply":"2024-10-17T23:09:03.162502Z"},"trusted":true},"execution_count":2,"outputs":[]},{"cell_type":"code","source":"import numpy as np\nimport matplotlib.pyplot as plt\nimport pandas as pd\n\n# Зчитування сигналу\nair_ch0_signal = pd.read_parquet('/kaggle/input/ariel-data-challenge-2024/test/499191466/AIRS-CH0_signal.parquet')\n\n# Вибір одного кадру (рядок) і розгортання його у зображення\nframe = air_ch0_signal.iloc[0].values.reshape(32, 356)\n\n# Візуалізація зображення\nplt.imshow(frame, cmap='viridis')\nplt.colorbar()\nplt.title(\"AIRS-CH0 Signal Frame\")\nplt.show()\n","metadata":{"execution":{"iopub.status.busy":"2024-10-17T23:13:03.954791Z","iopub.execute_input":"2024-10-17T23:13:03.955218Z","iopub.status.idle":"2024-10-17T23:13:05.611959Z","shell.execute_reply.started":"2024-10-17T23:13:03.955185Z","shell.execute_reply":"2024-10-17T23:13:05.608606Z"},"trusted":true},"execution_count":7,"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 640x480 with 2 Axes>","image/png":"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BSGEEEKKhhYKQgghpAB8qKI2tirm3D0BCgpCCCGkABhD0TJ0eRBCCCGkaGihIIQQQgqAQZktQ0FBCCGEFABdHi1DlwchhBBCioYWCkIIIaQA6PJoGQoKQgghpAB0kS6Pji4o6PIghBBCSNHQQkEIIYQUgAagdXHnd2QoKAghhJAC8KGguFPmDqGgIIQQQgqAQZktwxgKQgghpJ2yZMkSnHLKKaiqqoJSCo899tgOjz3//POhlMKtt94a+37Dhg0YP348ysvL0bVrV0ycOBFbtmyJHfPqq69i2LBhKC0tRe/evTFr1qxWp5WCghBCCCkA2diqmE9r2bp1Kw4//HDceeedLR43d+5cPP/886iqqmry2/jx47FixQrMnz8fTz75JJYsWYLJkyeb3+vr6zFy5Ej07dsXy5Ytw89+9jNce+21uOeee1qVVro8CCGEkALQusigzDacO3r0aIwePbrFYz744ANceOGF+POf/4wxY8bEfnvzzTcxb948vPjiizj66KMBAHfccQdOOukk3HTTTaiqqkJNTQ2y2Sx+85vfIJPJ4JBDDsHy5ctx8803x4THp0ELBSGEELILqa+vj30aGxvbfC3f93HuuefisssuwyGHHNLk99raWnTt2tWICQAYMWIEHMfB0qVLzTHHH388MpmMOWbUqFFYuXIlPvnkk4LTQkFBCCGEFIAEZRbzAYDevXujoqLCfGbOnNnmNP30pz9FKpXCRRdd1OzvdXV16NmzZ+y7VCqFbt26oa6uzhzTq1ev2DHytxxTCHR5EEIIIQWws1Z5rFmzBuXl5eb7kpKSNl1v2bJluO222/Dyyy9Dqd2/goQWCkIIIWQXUl5eHvu0VVD87W9/w/r169GnTx+kUimkUim8//77uPTSS7H//vsDACorK7F+/frYefl8Hhs2bEBlZaU5Zt26dbFj5G85phAoKAghhJAC2B2rPFri3HPPxauvvorly5ebT1VVFS677DL8+c9/BgBUV1dj48aNWLZsmTlv4cKF8H0fQ4cONccsWbIEuVzOHDN//nz0798fe++9d8HpocuDEEIIKYDdscpjy5YtePfdd83fq1atwvLly9GtWzf06dMH++yzT+z4dDqNyspK9O/fHwBw8MEH48QTT8SkSZMwe/Zs5HI5TJ06FePGjTNLTM855xz86Ec/wsSJEzF9+nS8/vrruO2223DLLbe0Kq0UFIQQQkg75aWXXsLw4cPN39OmTQMATJgwAXPmzCnoGjU1NZg6dSpOOOEEOI6DsWPH4vbbbze/V1RU4C9/+QumTJmCwYMHo3v37pgxY0arlowCgNK6GL1FCCGEdGzq6+tRUVGBgx64HG6n0jZfx9vWgHe+dSM2bdoUC8rsKNBCQQghhBQA3+XRMhQUhBBCSAFoFPcK8o7uDuAqD0IIIYQUDS0UhBBCSAHQ5dEyFBSEEEJIIdDn0SJ0eRBCCCGkaGihIIQQQgqhSJcHOrjLgxYKQvYg9t9/f5x33nm7OxkAgH/+859QShW8uQ4hezqyU2Yxn44MBQUpirvuugtKKbMnfHMopTB16lTztwxE8nEcB926dcPo0aNRW1vb7DWeffZZjB49Gp/73OdQWlqKPn364JRTTsGDDz5YcFrr6+vxox/9CIcffji6dOmCsrIyHHrooZg+fTrWrl1rjjvvvPPQpUuXgvMj3HvvvTj44INRWlqKgw46CHfccUfBaXvttddwxhlnoG/fvigtLcXnPvc5fO1rX2vVNdorixYtitW3/Rk3btzuTh4hZCdBlwcpipqaGuy///544YUX8O677+Lzn/98weeeffbZOOmkk+B5Ht5++23cddddGD58OF588UUMGjTIHPfII4/grLPOwhFHHIHvfe972HvvvbFq1SosWbIEv/rVr3DOOed86r3+7//+DyNGjMDq1atx5plnYvLkychkMnj11Vdx7733Yu7cuXj77bfbVAYA8Mtf/hLnn38+xo4di2nTpuFvf/sbLrroImzbtg3Tp09v8dznnnsOw4cPR58+fTBp0iRUVlZizZo1eP7553HbbbfhwgsvNMeuXLkSjrNnzgMuuugiDBkyJPadvBGRkD0BrvJoGQoK0mZWrVqF5557Do8++ij++7//GzU1NbjmmmsKPv+oo47Ct771LfP3sGHDMHr0aNx999246667zPfXXnstBg4ciOeffx6ZTCZ2jeRreZsjn8/j9NNPx7p167Bo0SIcd9xxsd+vv/56/PSnPy043Um2b9+OK6+8EmPGjMEf/vAHAMCkSZPg+z6uu+46TJ48ucU39l1//fWoqKjAiy++iK5du8Z+S+avra85bg8MGzYMZ5xxRkHH5vN5+L7fpL4J2a1oVVwcRAcXFHvmVIe0C2pqarD33ntjzJgxOOOMM1BTU1PU9YYNGwYAeO+992Lfv/feexgyZEizg0vPnj0/9br/+7//i3/84x+48sorm4gJACgvL8f111/fxlQDzzzzDD7++GN897vfjX0/ZcoUbN26FU899VSL57/33ns45JBDmogJoGn+mouhePXVV/HlL38ZZWVl2G+//fCTn/wE9913H5RS+Oc//xk79+STT8azzz6LL37xiygtLcUBBxyA//mf/4ldb8OGDfj+97+PQYMGoUuXLigvL8fo0aPxj3/849MLow2IC+ymm27CrbfeigMPPBAlJSV44403kM1mMWPGDAwePBgVFRXo3Lkzhg0bhmeeeWaH17jzzjtxwAEHoFOnThg5ciTWrFkDrTWuu+467LfffigrK8Opp56KDRs2NEnL008/jWHDhqFz587Ya6+9MGbMGKxYseIzyTchHQ1aKEibqampwemnn45MJoOzzz4bd999N1588cUmZu1CkcEvOZvv27cvFixYgH/961/Yb7/9Wn3dxx9/HABw7rnntuq8f//73wUd98orrwAAjj766Nj3gwcPhuM4eOWVV2KWmCR9+/ZFbW0tXn/9dRx66KGtSuMHH3yA4cOHQymFK664Ap07d8avf/3rHVoy3n33XZxxxhmYOHEiJkyYgN/85jc477zzMHjwYBxyyCEAAvfQY489hjPPPBP9+vXDunXr8Mtf/hJf/vKX8cYbb5hXHreWzZs3NynTbt26mX/fd999aGhowOTJk1FSUoJu3bqhvr4ev/71r3H22Wdj0qRJ2Lx5M+69916MGjUKL7zwAo444ojY9WpqapDNZnHhhRdiw4YNmDVrFr75zW/iq1/9KhYtWoTp06fj3XffxR133IHvf//7+M1vfmPO/e1vf4sJEyZg1KhR+OlPf4pt27bh7rvvxnHHHYdXXnmF7hmyW15fvidBQUHaxLJly/DWW2+ZoMHjjjsO++23H2pqagoWFNu2bcO///1veJ6Hd955x7yWN2kWnz59OiZOnIgDDzwQxx57LI477jiMHDkSX/rSlwqKJ3jzzTdRUVGB3r17F5y/rVu3okePHgUd++GHH8J13SbWhEwmg3322ScW8Nkc3//+9zF69GgcccQR+OIXv4hhw4bhhBNOwPDhw5FOp1s896c//Sk++eQTvPzyy2Zw/fa3v42DDjqo2eNXrlyJJUuWGGvQN7/5TfTu3Rv33XcfbrrpJgDA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cAJOOukkHHfccbE9JioqKvCXv/wFq1atwuDBg3HppZdixowZrV+pVnD45i7goYce0iUlJXrOnDn6jTfe0JMnT9Zdu3aNRfDuKVx66aV60aJFetWqVfrvf/+7HjFihO7evbtev3691lrr888/X/fp00cvXLhQv/TSS7q6ulpXV1fv5lTvmM2bN+tXXnlFv/LKKxqAvvnmm/Urr7yi33//fa211jfeeKPu2rWr/uMf/6hfffVVfeqpp+p+/frp7du3m2uceOKJ+sgjj9RLly7Vzz77rD7ooIP02WefvbuyZGgpb5s3b9bf//73dW1trV61apX+61//qo866ih90EEH6YaGBnON9po3rbW+4IILdEVFhV60aJH+8MMPzWfbtm3mmE9rj/l8Xh966KF65MiRevny5XrevHm6R48e+oorrtgdWTJ8Wt7effdd/eMf/1i/9NJLetWqVfqPf/yjPuCAA/Txxx9vrtFe86a11pdffrlevHixXrVqlX711Vf15ZdfrpVS+i9/+YvWes+tN6Gl/LWnupNVHv0vuUEPvPzmNn/6XxKs8ti0adNOTV97oV0JCq21vuOOO3SfPn10JpPRX/ziF/Xzzz+/u5PUJs466yy977776kwmoz/3uc/ps846S7/77rvm9+3bt+vvfve7eu+999adOnXS3/jGN/SHH364G1PcMs8880yzBrwJEyZorYOlo1dffbXu1auXLikp0SeccIJeuXJl7Boff/yxPvvss3WXLl10eXm5/va3v603b968G3ITp6W8bdu2TY8cOVL36NFDp9Np3bdvXz1p0qQmIre95k1rvUPj63333WeOKaQ9/vOf/9SjR4/WZWVlunv37vrSSy/VuVxuF+cmzqflbfXq1fr444/X3bp10yUlJfrzn/+8vuyyy5p06O0xb1pr/Z3vfEf37dtXZzIZ3aNHD33CCScYMaH1nltvQkv5a091ZwTFxTfogdNvbvOn/8UdW1Dw9eWEEEJIC8jry/t/7wa4JUW8vryxAStv67ivL283MRSEEEII2XPhslFCCCGkANoaWGmf35GhoCCEEEIKYSdtbNVRocuDEEIIIUVDCwUhhBBSAHR5tAwFBSGEEFIIdHm0CAUFIYQQUggUFC3CGApCCCGEFA0tFIQQQkgBqPBTzPkdGQoKQgghpBDo8mgRujwIIYQQUjS0UBBCCCEFwGWj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"},"metadata":{}}]},{"cell_type":"code","source":"fgs1_signal = pd.read_parquet('/kaggle/input/ariel-data-challenge-2024/test/499191466/FGS1_signal.parquet')\n\nfig, axes = plt.subplots(4, 4, figsize=(25, 25))\nfig.suptitle(\"FGS1 Signal Frames (4x4 grid)\", fontsize=20)\n\nfor i, ax in enumerate(axes.flat):\n    frame_fgs = fgs1_signal.iloc[i].values.reshape(32, 32)\n    ax.imshow(frame_fgs, cmap='viridis')\n    ax.set_title(f\"Frame {i+1}\")\n    ax.axis('off')\n\nplt.tight_layout()\nplt.subplots_adjust(top=0.93)\nplt.show()\n","metadata":{"execution":{"iopub.status.busy":"2024-10-17T23:16:44.846796Z","iopub.execute_input":"2024-10-17T23:16:44.847244Z","iopub.status.idle":"2024-10-17T23:16:47.665063Z","shell.execute_reply.started":"2024-10-17T23:16:44.847209Z","shell.execute_reply":"2024-10-17T23:16:47.663764Z"},"trusted":true},"execution_count":15,"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 2500x2500 with 16 Axes>","image/png":"iVBORw0KGgoAAAANSUhEUgAACYAAAAmXCAYAAAAzOCi+AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuNSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/xnp5ZAAAACXBIWXMAAA9hAAAPYQGoP6dpAADi1klEQVR4nOzdeXRV9bk/4PckIYBMlkllUqioVVGvImqrONShzsNFrYqKI7WOP7Wt7S0IitZbh2qtOFQUFa0zCnWmauvUivMMouAEAorMoCTZvz9Y5IKBEDgnJN/wPGtlreTsvd/z7jPlZefD3rksy7IAAAAAAAAAAAAgOUV13QAAAAAAAAAAAACrRwAMAAAAAAAAAAAgUQJgAAAAAAAAAAAAiRIAAwAAAAAAAAAASJQAGAAAAAAAAAAAQKIEwAAAAAAAAAAAABIlAAYAAAAAAAAAAJAoATAAAAAAAAAAAIBECYABAAAAAAAAAAAkSgAMAAAAoIaeffbZyOVykcvl4tlnn63rdmrd2ra/LN+4ceOitLQ0mjRpEl988UVdt7NWKtR7cdCgQZV1vu/zzz+Pxo0bR2lpaYwfPz6PbgEAAIA1TQAMAAAA6rml//Bfk6/hw4dXW6+srCweeOCBOPXUU6NHjx7Rvn37aNSoUbRq1So23njjOPTQQ+Pyyy+PiRMn1ri/E088MTbffPNo2bJllJSURMuWLWOzzTaLgw46KIYMGRL//ve/o6KiYrnbT5s2Lf7+97/HwIEDY9999422bdtW7ku/fv1W8dFauVdffTVOP/302GabbWLdddeNkpKSaN68eWy88cax7777xoABA+KZZ56JRYsWFfy+10ZLB05q8jVp0qS6bpnvOffcc2PRokVx0kknRceOHWu83ZQpU+IHP/hB5XO722671V6TCfRR33Xq1ClOOOGEWLRoUZx//vl13Q4AAACwCkrqugEAAABgzRk1alScd955MWHChCrLZs+eHbNnz46PPvooHnroofj1r38d+++/f1x22WWx5ZZbVll/7ty5ceyxx8ZDDz1UZdmcOXNi3LhxMW7cuBg9enQMGDAgHnvssfjZz35WZd311luvIPu2MmVlZXHmmWfGDTfcUGXZvHnz4qOPPoqPPvooHn/88RgyZEhcf/318Ytf/GKN9Ab11YsvvhiPPvpolJaWxgUXXLBK25555pkxc+bM2mkswT5S8Nvf/jZuueWWGD16dLz88svRq1evum4JAAAAqAEBMAAAAEjIaaedFr/85S+rXadTp07LvX3IkCExcODAyLIsIiJ22223OOCAA2KrrbaKNm3axPz582PKlCnxr3/9K/7+97/HpEmT4pFHHolOnTotNzTVp0+feOKJJyIiYuONN45TTjkltt9++/jBD34Q8+bNiw8//DBeeOGFGDVqVEybNq1G+9elS5fYbLPN4sknn6zR+qvijDPOiBtvvDEiIjbYYIPo379//PjHP4527drFggULYtKkSfHSSy/Fww8/HJ9++ulya+y2226Vjx+r7pZbbontt9++2nVW5QxT1L4hQ4ZERMThhx8enTt3rvF2o0ePjgceeCDat29f4/d/bagvfeRrTX32bLjhhvHf//3fcffdd8eQIUNi1KhRtX6fAAAAQP4EwAAAACAh7du3X+7ZuFbmlltuiQEDBkTE4jNu3X333Su8DNrhhx8eV199ddx9993xu9/9brnrPPLII5Xhr3322ScefvjhaNy48TLr/OQnP4l+/frFDTfcEA899NAKwyMDBw6M7bffPrbffvtYb731YtKkSdG1a9dV3sfqvPPOO3HTTTdFRMQ222wTzzzzTKy77rrLrLPTTjvFUUcdFX/+85/jqaeeinXWWaegPRDRtWvX1Xr9UjfGjRsXjz/+eERE9O3bt8bbzZ07N04//fSIiLjiiiviuOOOq5X+UukjNUcffXTcfffd8cgjj8THH38c3bp1q+uWAAAAgJUoqusGAAAAgNr12WefVYYgWrZsGc8///wKw19LFBcXxzHHHBNvvvlm7L///lWWP/zww5XfX3nllVXCX9+v9d///d+xxRZbLHf54MGD44ADDqjVS0GOGjWq8uw5Q4YMqRL++r699torfvKTn9RaP5CCW2+9NbIsi/bt28eee+5Z4+1+97vfxWeffRa77757HHvssbXYYRp9pOZnP/tZtGnTJioqKuLWW2+t63YAAACAGhAAAwAAgAbuqquuioULF0ZExCWXXBIbb7xxjbddd91148ADD6xy+9KXSFyVenWlUP0+++yzkcvlIpfLxbPPPlvt/Z122mnRtWvXaNKkSXTo0CEOOeSQeOaZZyIiYtCgQZV1lmfJskGDBkVExNixY+Ooo46KTp06RePGjaNjx45x7LHHxvvvv19tvx9//HFceeWVceCBB8ZGG20UTZs2jaZNm8aGG24YRx55ZOXZneqj3XbbLXK5XGVY8cMPP4wzzjgjunfvHuuss07kcrmYNGlS5fpTpkyJoUOHRp8+faJ79+7RrFmzysfq4IMPjnvuuScqKipWeH/ff26zLIthw4bFzjvvHG3atImWLVtGr1694o477lhmu++++y5uuOGG2HHHHaN169bRokWL+MlPfhL33ntvjfbzyy+/jP/5n/+Jnj17RuvWraNx48bRuXPnOOKII2LMmDHVblteXh7Dhw+PffbZJ9Zff/0oLS2NVq1aRffu3eOnP/1pXHrppfHee+/VqI/lWbIPBx98cJSU1OxCAi+//HJcd911UVpaGtdff32Ntnn++eejuLg4crnccgOnS8yePTu6du0auVwu2rdvH1OnTi1oH6vq66+/jl//+tex6aabRtOmTWO99daLvfbaK0aOHBkREcOHD698TS39Wl1io402ilwuF/369YuIiFdffTX69esXXbt2jcaNGy/z+VDTz57PP/88Tj/99OjWrVvlZ89BBx200tfS0ho1alT5uX/33XfXeDsAAACg7rgEJAAAADRgWZZVBlZatGgRJ5xwQkHqlpaWVn7//vvvxzbbbFOQurXl+/1uuummtXZfTz/9dBx88MExd+7cytumTJkSDz/8cIwaNSqGDBmySvWGDh0aZ599dpSVlVXeNnny5BgxYkQ8+OCD8dhjj0Xv3r2rbDdx4sT44Q9/uNyan376aXz66adx7733Rt++fePWW2+tccCnLjz88MNxzDHHxLx585a7vLy8PDp16rTcgNfkyZNj1KhRMWrUqBg2bFg8+OCD0bx582rvb9GiRXHwwQfH6NGjl7l97Nixcdxxx8Urr7wS11xzTXzzzTdxyCGHxL/+9a9l1nvxxRfjxRdfjAkTJqzwMqoREXfeeWf079+/yn59/vnncd9998V9990XJ510Utxwww1Vnp+5c+fGfvvtF88991yV3mfPnh0TJkyIp59+Ol577bW4//77q93f5fnkk09i4sSJERGx44471mibsrKyOOWUU6KioiJ+85vf1Ph9tvPOO8cFF1wQl156aTz66KMxdOjQ+OUvf1llvdNPP70ySDVs2LAVnjVwdftYFW+//Xbstddey4TQFi5cGGPGjIkxY8bEqaeeGjvttFON691www1x5plnLvM+X1XPPfdcHHDAATF79uzK26ZMmRKjR4+O0aNHVwZKa2LHHXeM4cOHx4QJE+LDDz+M7t27r3ZfAAAAQO2rv0f2AAAAgLy988478fXXX0dExC677BLNmjUrSN1tt922MhxzxhlnxMiRI6Ndu3YFqV0btt1228rvf/Ob38Q222wTG220UcHv5+OPP46DDjoo5s2bFyUlJXHaaafFIYccEi1btox33nknLr/88vif//mf2GGHHWpU74knnoiXX345evToEWeffXb06NEjFixYECNHjoxrrrkm5s+fH8cee2x8+OGHy4TcIhaHokpLS2OfffaJvfbaKzbffPNo3bp1zJgxI8aPHx/XXXddvPvuuzFixIjo1q1bDB48uOCPRyF8+umn0bdv31hnnXViwIABscsuu0RxcXGMHTu2Msi15PKee+yxR+y7777Ro0ePaNeuXcyZMyc+/vjj+Otf/xovvfRSPPXUU3H66afHbbfdVu19DhgwIP7zn//EMcccE0cffXSsv/76MX78+Bg0aFCMGzcu/vznP8eBBx4Y1157bbz44otx2mmnxaGHHhpt2rSJN954IwYMGBCTJ0+OgQMHxsEHH7zcy5/ee++9ceyxx0aWZdGtW7c444wzYvPNN4927drFpEmTYtiwYfHoo4/GsGHDomXLlnHVVVcts/2gQYMqw18HHHBAHHPMMdGlS5do0qRJTJs2LV5//fX4+9//vsKzzK3M0sGy7bffvkbbXHHFFfHWW2/FxhtvXG3wbXkGDRoUTz75ZLzyyitx/vnnxx577BGbbbZZ5fK77747RowYERER/fv3X+6ZCQvRR03MnDkzfvazn1WGv4499tg4+uijo127djFhwoS45ppr4qabboo333yzRvXGjh0bI0aMiM6dO8f5558fPXv2jLKysirhvup8+umnleGvoqKiOPXUU6NPnz7RqlWreOutt+Kyyy6LQYMGRc+ePWtUr1evXpXf//Of/xQAAwAAgPouAwAAAOq1Z555JouILCKy0047LXv77bdX+DV16tRlth0xYkTltr///e8L1tOnn36arbPOOpW1mzZtmvXp0ye79tprs5dffjn79ttvV7v2xIkTK+sef/zxBel37ty52frrr19Zt6SkJNtvv/2yK664InvuueeyefPm1ajO0s/FM888U2X5IYccUrl85MiRVZbPmzcv69WrV+U6Kzo0s/Ty/fbbb7mP55AhQyrXefDBB5e7z5MnT17hvlRUVGT9+vXLIiJr1qxZNnPmzFXe35q48MILK2vccsst1b5+586dW7ndrrvuWrldhw4dsk8++aTaffnwww+r7WPgwIFZRGS5XC4bP358tfsaEdnVV19dZZ0pU6ZkLVq0yCIia9euXZbL5Zb7PL/55ptZUVFRFhHZWWedVWX59OnTs1atWmURkZ144onZokWLltvz7373uywisqKiouyDDz5YZlnnzp2ziMj69OlT7X5//fXX1S5fkdNOOy2LiKy0tDQrKytb6foTJkzImjZtmkVE9sQTTyyzbMljuuuuu1ZbY9y4cZWfK//1X/9V+br/9NNPs3XXXTeLiGyTTTap9v1aiD5W5pxzzqn2dVJWVpYdfPDBy7yeJk6cWGW9DTfcsHJ5jx49sm+++WaF97my92KfPn0ql991111Vls+ePTvbeuutV/rZs8SiRYuyRo0aZRGR/eIXv6h2XQAAAKDuFRUiRAYAAACsGddff3306NFjhV9Dhw5dZv2vvvqq8vvqztBVUVER77zzzgq/Fi1atMz6nTt3jnvuuafyDEwLFiyI+++/P84888zo1atXtGzZMnr37h1/+tOfYsaMGQV8BFZPs2bN4uGHH668ZFxZWVk8+uijcf7558cuu+wSrVq1il69esXFF18cX3zxxWrdx+TJkyvPitanT5845JBDqqyzzjrrxE033VTjmk2aNIlbb721ytm9IiLOOuusytuXd6agZs2axQYbbLDC2rlcLq688sooLi6OefPmxZgxY2rc1+o68cQTq339jh07drnbXXbZZdGlS5cV1s3lcrHxxhtXe98DBw6Mtm3bRpZlMWrUqGrX3WGHHeLss8+ucvv6668fhx56aERETJ8+PY444ojlPs9bbbVV7LzzzhGx/Ofm+uuvj1mzZkXHjh1j6NChK7z85uDBg6Njx45RUVERt99++zLLvvzyy4hYfGa/6rRu3bra5Svy+eefR0REmzZtori4eKXr/+IXv4gFCxbEkUceGXvvvfdq3ecmm2wSf/rTnyIi4vXXX48BAwZERUVFHHvssTFz5sxo1KhR3HnnnbHOOuvUah/V+fbbb2P48OERsfjMaMt7nRQXF8eNN94YTZo0qXHd6667LtZdd93V6unLL7+MkSNHRsTis8EdddRRVdZp0aLFKn32lJSUVL52Pv7449XqCwAAAFhzBMAAAACgAZszZ07l99Vd/nH27NnVBnOWF4o64IAD4v3334+zzjor2rZtu8yyb7/9Np577rk499xz44c//GGV8Epd6NWrV7z33nvx+9//Pjp37rzMsrKyshg7dmwMHDgwNt544/jjH/+4yvWfeeaZKC8vj4jFl4Rbka233jq23nrrGtXca6+9on379std1qJFi8rLstUkoLFo0aL4/PPP4/33368M9k2ePDnatGkTEVHjy9WtaaWlpXH44Yev0jYVFRUxefLkGDduXOW+vv/++9GpU6eIWPm+/vznP1/hsqWfu5qst7znZkkA7YADDojGjRuvsEZJSUnstNNOERHx0ksvLbNsSbjvnnvuifnz56+wxuqaPn16RET84Ac/WOm6t99+e4wZMyZatmxZGeBaXaeeemocdNBBEbH4Uo5HH310/POf/4yIiAsvvLDaSxgWso8VeeWVV2LmzJkREdG3b98VrrfeeuvFPvvsU6OanTt3XmmQrzpLf/accMIJK1yvV69ey70c6YosCYAtCRsCAAAA9ZcAGAAAACTkwgsvjCzLVvg1aNCgZdZv0aJF5ffz5s0reD+dOnWKa665JqZOnRqvvvpqXHfddXHiiSdWBpMiImbOnBnHH3983HrrrQW//1XVunXruPjii+PTTz+Nd999N/7617/GL37xi+jRo0flOgsXLozf/OY3ceGFF65S7Xfeeafy++22267adasLsSxts802q3b5koDG0kG/pS1atCiuu+662HHHHaN58+bRuXPn2HzzzZcJ902bNi0ilj1bXG155plnqn397rbbblW26d69e43OpJRlWYwYMSJ23333aN68eXTs2DE222yzZfb1jTfeiIiV7+smm2yywmVLn6WpJut9/7kpLy+v7OPGG2+MXC5X7df9998fEVVDOMcff3xERLz44ovRtWvXOOOMM2LkyJGVwa18LTlz38oCYF999VWcd955ERFxySWXVHvWuZq6+eabY/3114+Kioq45557IiJi5513jgsuuGCN9rE8tfE+32qrrfLq6e233678fvvtt6923V69etW47pLnvjZ+dwAAAACFJQAGAAAADdiSsztFRLXBkHXXXbdKGGdJwKQmioqKYtttt41f/vKXMWzYsBg/fny88sorlZfBi4g477zzVhhUqgubb755nHzyyXH99dfHW2+9FePGjYuDDz64cvmll14akyZNqnG9b775pvL76i63WZPlS1R3qbuIxY97RFSe/WdpM2bMiJ122inOOOOM+M9//hPfffddtbUWLFhQo57WtJqcgWrhwoWx//77x7HHHhvPPvvsSvdlZcure9yXPOY1Xa+iomKZ22fMmBFlZWXV3v/yfP8sXwMGDIgTTzwxcrlcTJs2La677ro47LDDon379rHlllvGhRdeGFOnTl3l+1liSehuZY/VueeeG1999VX07NkzfvnLX672/S2tXbt28Yc//KHy50aNGsUdd9xR7aUoa6OP5amN93lNXuPVWfoyuys6Y+ASSy6DWxNLnvtGjRqtXmMAAADAGlNS1w0AAAAAtWfpy9W9/vrra/S+t9tuu3j88cdjm222iQkTJsQ333wTY8aMiUMPPXSN9lFTm2yySTz44IPRu3fveOGFF6KsrCxGjhwZ/+///b+6bm21nH322fHqq69GRMQhhxwSJ554Ymy11VbRvn37aNKkSeRyuYiI6NKlS3z22WeRZVldtrtC1YV+lrjkkkvisccei4iIXXfdNU4//fTYdtttY/3114+mTZtWhrF69+4dzz33XJ3u69JhvZNPPjnOPvvsGm1XWlq6zM+NGjWKYcOGxXnnnRd/+9vf4umnn45XXnklvvvuu3j33Xfj3XffjauuuipGjBixTLCxppaEl5YOF33f5MmT44477oiIiD322CPuvffeamtOmzYt7r777oiI6Nq1a+ywww7LXa+srCyuv/76yp8XLVoUzz77bPTr12+N9rGm1OQ1XlNL3teFsOS5X/qsdwAAAED9JAAGAAAADdiWW24Zbdq0ia+//jqee+65mD9//krPKlVIzZo1i6OOOiouvvjiiIiYMGHCGrvv1VFUVBQnnnhivPDCCxGxav0ufRaf6dOnR8eOHVe4bqEu07cis2fPrrx03jHHHBMjRoxY4bpLn9EoRVmWxc033xwREbvssks8/fTTy5yla2nVhZnWlCWX7YxY3PuWW26ZV73NN988Lr744rj44otj4cKF8fzzz8ddd90Vt99+e8ydOzeOOuqo+Oijj1b5kohLAmDVvT6WPqvcH//4x5XWfP/99+Ooo46KiMWXsFxR8Oqiiy6Kl19+OSIiWrZsGbNnz46zzjordt111+jatesa62N5vv8+r+4yoLX9Pl9i6Z6mTp0anTt3XuG6q3JWuCXPfZcuXVa/OQAAAGCNcAlIAAAAaMByuVz07ds3IhaHgm677bY13kOHDh2W6ae+W91+t9hii8rvl5x5a0VeeeWVVW9sFXz44YexaNGiiIg48sgjV7jeBx98EHPnzq3VXmrbjBkz4ssvv4yIiMMPP3yF4a+5c+fGuHHj1mRry1VaWlr5WlkSNCyUJk2axJ577hm33HJLXH755RGx+DJ+f//731e5Vo8ePSIiYtasWTFt2rSC9lmdl156KS699NKIiNh7773j6aefjkaNGsWcOXPi2GOPXe7lTtek+vQ+X2LJcxURMXbs2GrXXdnyJaZOnRqzZ8+OiGX3GQAAAKifBMAAAACggTv33HOjSZMmERHx29/+NiZOnJh3zVW5hN7SIYhu3brlfd+rY030u9tuu1WGj5Zcjm553nzzzXjzzTdrXHd1lJWVVX4/b968Fa53ww031Gofa0JN9/Xmm29eZt26dNBBB0XE4gDeE088USv38dOf/rTy+6+++mqVt99ll10qv19RaGijjTaKLMtW+rXErrvuWnnb8OHDq9SbO3du9O3bN8rLy6NNmzZx6623xnbbbVd5BsEXXnghLrvsslrvozo9e/aMVq1aRURUe2a9qVOn1tpz+32777575WUkqwv5jh07Nt55550a1Vz6Oa/rS2QCAAAAKycABgAAAA1cly5d4s9//nNELD6bz8477xzPP/98tdtkWRYzZ85c4fLTTjstLr300pVeUu+pp56qDCQ0a9Ys9txzz1VrvkAGDx4cv/71r2Py5MnVrvfmm2/GFVdcERGLLwd54IEH1vg+OnXqFPvvv39ERNx///3x0EMPVVlnwYIFceqpp9a88dW08cYbV5697LbbbltuAG706NHxl7/8pdZ7qW3t2rWLddddNyIi/va3v8W3335bZZ2xY8fGgAED1nBnK3b22WdH8+bNIyLihBNOiHfffbfa9R955JF46623Kn+eMWNGjB49utpg45NPPln5/fIum7gyvXr1isaNG0dEVF6OsbadddZZ8fHHH0dExE033VR5Nr5f/epXseuuu0bE4vfyys68VZuaNGkSxx13XEQsfl1dc801VdapqKiI/v37x8KFC9dITxtssEEcfPDBERExatSouPfee6usM3fu3Ojfv3+Nay55zps0aRK9e/cuTKMAAABArSmp6wYAAACA2nfKKafEF198EYMHD47JkyfHLrvsEnvssUcceOCB0aNHj2jdunWUl5fHl19+Ga+99lrce++9laGU4uLiKC0tXabeV199FTfeeGMMHjw49ttvv9h1111jyy23jDZt2kRZWVlMmDChMohQUVERERFDhgyJli1bVunt+eefjwkTJixTe4kJEyZUOUNPv379Vnn/586dG1deeWVcddVV8dOf/jT22GOP2GabbaJdu3aRZVl88skn8cQTT8Rtt91WGSA688wzo3v37qt0P1dddVX84x//iPnz58fhhx8ep512Whx66KHRsmXLeOedd+KPf/xjvPfee7H99tvX+FJsq6NNmzax3377xSOPPBKPP/547L333nHaaafFhhtuGNOmTYsHHngghg8fHt26dYuZM2fG9OnTa62X2lZUVBTHHHNMXHfddfHWW2/FzjvvHOeee2507949Zs2aFY8++mgMHTo0mjdvHh06dIjx48fXdcux3nrrxW233RZ9+vSJKVOmRM+ePaNfv36x7777RqdOnWLRokXx+eefx8svvxz3339/fPzxxzF69OjYaqutImLx5VwPOuig2GijjeKwww6LHXbYITbccMMoKSmJKVOmxOjRo+Pmm2+OiIiOHTvGAQccsMo9Nm7cOPbZZ58YNWpU/OMf/4jBgwcX9DH4vpEjR8att94aEYtDcYcddljlsqKiorj99ttjq622ilmzZsUxxxwTr7/+ejRt2rRWe1qRQYMGxX333RdffvllnHPOOfHqq6/GMcccE+3atYsJEybENddcEy+++GL06tWrMkhV25e/vfLKK+Opp56KOXPmxNFHHx3//Oc/o0+fPtGyZct466234rLLLovx48dHz549a3Rpyn/84x8REbHPPvvU2eMMAAAA1JwAGAAAAKwlBg0aFFtvvXWcf/758fHHH8fTTz8dTz/99ArXz+Vysc8++8Tll19eeSaeJTp27BgREd9991089NBDyz3b1RJNmjSJiy66KM4555zlLr/55ptXeNmyF154IV544YVlbludANgGG2wQxcXFUV5eHk8++eQyZ0f6vqKiojj77LMrzwS2KjbeeON46KGH4tBDD4158+bFtddeG9dee+0y61x44YVRUVERY8eOrbw0Z224/vrrY+edd45PP/00xowZE2PGjFlmeZcuXeKhhx6K/fbbr9Z6WFMuueSSeOGFF+KNN96IV155JY4++uhllrdu3ToeeOCBGDhwYL0IgEVEHHbYYfHwww9Hv379YsaMGXHDDTes8JKcRUVF0axZsyq3T5o0Ka666qoV3scGG2wQDz/8cOXZxlbVKaecEqNGjYoXX3wxPvnkk9hwww1Xq87KTJkyJU455ZSIWHzZ1SVnLFxaly5d4rrrrou+ffvGuHHj4rzzzouhQ4fWSj8r07p163j88cdjr732iunTp8cdd9xR5bKv/fr1i1122WWZM2nVpo022ihGjRoVBx10UMyZMyeGDh1a5fEZOHBg5HK5lQbAJk2aFC+99FJERPTt27fWegYAAAAKxyUgAQAAYC1y6KGHxrhx4+Lee++Nk046KTbffPNo27ZtlJSURMuWLaNr165x0EEHxR/+8If46KOP4rHHHostt9yySp1rrrkmPvnkk7jxxhujb9++sc0228QPfvCDKCkpiaZNm0aHDh1izz33jEsuuSTGjx8fv/rVr+pgb//PeeedF1OmTInbbrstTjrppOjZs2e0adMmSkpKonHjxrHeeutF796943e/+1289957cdVVV0VR0eodNtlrr73inXfeif79+8eGG24YpaWlsd5668X+++8fjz/+eAwaNChmz54dERGtWrUq5G4uo3PnzvHaa6/Fr371q9hkk02icePG0apVq9h6663jwgsvjDfeeCM233zzWrv/NalVq1bxwgsvxMUXXxw9evSIJk2aRPPmzeNHP/pRnH/++fHmm2/Wy8vYHXjggTFx4sS44oorYo899oj11lsvGjVqFE2bNo2uXbvGAQccEFdddVVMmjQpdt9998rtNtxww3j55Zdj0KBBsffee8emm24a6667bpSUlETbtm2jd+/ecfnll8cHH3wQ22233Wr3t+SMZFmWxd/+9rdC7HIVWZbFCSecEF9//XUUFxfHiBEjVhhYO+aYY+Koo46KiMUBx0cffbRWeqqJrbfeOt57770477zzonv37tG4ceNo27Zt7L777nHXXXfFrbfeWvk+j6jd9/oSu+22W7z77ruVZ/v7/mdPTc/i9re//S2yLIsOHTpUXloSAAAAqN9yWZZldd0EAAAAwNpkzz33jH/84x+x8847x3PPPVfX7cAK/fGPf4zf/OY3sckmm8T777+/2sHItdHJJ58cw4YNi06dOsVnn31W1+3USEVFRfzoRz+K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nnjiMuvtsMMO8dlnn0VZWVlERDz44INRUVERRxxxRHz11VeVX+uvv3507949nnnmmYI8BgAA9d3aNLN98MEHcfrpp8dOO+0Uxx9//CptCwBQl9aGme2cc86Jp556Km677bbYd999o7y8PL777rsabQsAUNca8rz29ddfx8CBA2PAgAHRrl27mj8oQIPkEpCwFurVq1f07Nlzhcu7du1a5baKioq45pprYujQoTFx4sQoLy+vXNamTZsq63fp0mWZn1u1ahUREZ07d65ye0VFRcyaNSvatGkTH374YWRZFt27d19ub0sPTwAADdnaMrN9+eWXsf/++0erVq3i/vvvj+Li4hpvCwBQ19aGmW2zzTaLzTbbLCIW/3Fz7733jgMPPDD+85//RC6Xq1ENAIC60pDntd///vfRunXrOPPMM6tdD1g7CIABVXw/5R4Rcemll8aAAQPixBNPjIsvvjhat24dRUVFcc4550RFRUWV9Vf0h7sV3Z5lWUQsHqhyuVw89thjy123efPmq7IrAAANVkOY2WbNmhX77rtvzJw5M5577rno0KFDjbYDAEhFQ5jZvq9Pnz7Rv3//GD9+fGy66aarVQMAoL5IdV778MMP46abboqrr746Jk+eXHn7woULY9GiRTFp0qRo2bJltG7deoU1gIZFAAyokfvvvz923333GDZs2DK3z5w5M9q2bVuw+/nhD38YWZZF165dY5NNNilYXQCAtUFKM9vChQvjwAMPjPHjx8eYMWNi8803L1h/AAD1WUoz2/IsWLAgIhaH+QEAGqIU5rUvvvgiKioq4qyzzoqzzjqryvKuXbvG2WefHVdffXWBugXqu6K6bgBIQ3FxcWUafYn77rsvvvjii4Lez2GHHRbFxcUxePDgKveXZVl8/fXXBb0/AICGJJWZrby8PI488sh46aWX4r777ouddtqpoP0BANRnqcxs06ZNq3LbokWL4vbbb4+mTZsK8AMADVYK89qWW24ZI0eOrPK1xRZbRJcuXWLkyJFx0kknFbRfoH5zBjCgRg444IC46KKL4oQTTogf//jH8fbbb8edd94Z3bp1K+j9/PCHP4whQ4bEb3/725g0aVIccsgh0aJFi5g4cWKMHDkyTj311Dj//POrrfGXv/wlZs6cWXm609GjR8fnn38eERFnnnlm5XW3AQAamlRmtvPOOy9GjRoVBx54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gPZYvHhxTJ8+fdBt+++/f5t2s3V89KMfjbe+9a2DbnvTm97Upt0AALw+nT6v/du//Vv88R//cRx00EGxcOHC6Ovri1/+8pfx61//ut1bAwAYtk6e2f7iL/4iZs+ePei2sizj7LPPjr322iumTJnSpp0BAAxfJ89rTzzxRMycOTMmTpwY55xzTkyaNCnuu+++uPDCC+PHP/5xfPOb32z3FoERJACDUerYY4+NQw45ZFj3Xb9+ffT29kZXV66LBh5++OFx8sknt3sbAABvSCfPa2vWrInTTz89jjvuuLj11lvT7BsA4Pd18sx22GGHxWGHHTbotu9+97uxbt26eO9739umXQEAvD6dPK99+ctfjlWrVsV3v/vd+IM/+IOIiDjrrLOi1WrFl770pVi5cmXssMMObd4lMFJyvHIBI+blfz7xxhtvjE996lMxZcqUGD9+fKxZsyaee+65mD9/fhxwwAHR19cXEyZMiGOPPTYefvjhza5x8803x6JFi2LKlCmx3XbbxcknnxyrV6+O/v7+OPfcc2PnnXeOvr6+mDdvXvT39w/Zy1e+8pU4+OCDY9y4cTFp0qQ49dRT44knnnhdj+f555+PjRs3VjomAABN0gnz2g033BBPPfVULFmyJLq6uuKFF16IVqtV2zECAGi3TpjZNueGG26IoijiPe95zxt6fwCApuiEeW3NmjUREbHLLrsMun233XaLrq6u6O3trXCEgGxcAQxGqdWrV8czzzwz6LYdd9xx039ffPHF0dvbG/Pnz4/+/v7o7e2NRx99NL7xjW/EKaecEtOnT4+nnnoqrrnmmjjyyCPj0Ucfjd13333QepdddlmMGzcuFixYEL/4xS/iqquuijFjxkRXV1esXLkyLrroorj//vtj6dKlMX369Pj0pz+96X2XLFkSCxcujLlz58YHP/jBePrpp+Oqq66KI444Ih566KHYfvvtX/Mxzps3L9auXRvd3d1x+OGHx+WXXz7swh8AoN06eV67++67Y8KECbFixYo4/vjjY9myZbHtttvG+9///rjiiitim222qecgAgBsZZ08s/2+F198MW6++eaYNWtW7LXXXm/oeAEAjLROntfe8Y53xF//9V/HBz7wgVi0aFFMnjw5vv/978c//MM/xEc/+tHYdttt6zmIQA4lMKpcd911ZURs9k9ZluU999xTRkS59957l+vWrRv0vuvXry8HBgYG3bZ8+fJy7Nix5eLFizfd9vIa+++/f7lhw4ZNt5922mllURTlscceO2iNww47rNxzzz03vf3444+X3d3d5ZIlSwbd75FHHil7enqG3P77vve975UnnXRSee2115bf/OY3y8suu6ycPHlyuc0225QPPvjgax8kAIA2Gg3z2oEHHliOHz++HD9+fPmRj3yk/NrXvlZ+5CMfKSOiPPXUU1/7IAEAtNlomNl+37e+9a0yIsqrr776db0fAEA7jJZ57eKLLy7HjRs36PH91V/91Wu+H9B5XAEMRqnPf/7zMWPGjC3+/RlnnBHjxo0bdNvYsWM3/ffAwECsWrUq+vr6Yr/99osHH3xwyBqnn356jBkzZtPbhx56aHz1q1+NM888c9D9Dj300Ljyyitj48aN0dPTE7fddlu0Wq2YO3fuoCJ/1113jX333TfuueeeuOCCC7a491mzZsWsWbM2vT1nzpw4+eST48ADD4zzzz8//vVf/3WL7wsA0BSdPK+tXbs21q1bF2effXZceeWVERFx4oknxoYNG+Kaa66JxYsXx7777rvF9wcAaIpOntl+3w033BBjxoyJuXPnDvt9AADardPntb322iuOOOKIOOmkk2Ly5Mlxxx13xKWXXhq77rprnHPOOa/6vkBnEYDBKDVz5sxX/ecQp0+fPuS2VqsVn/vc5+Lqq6+O5cuXx8DAwKa/mzx58pD7T5s2bdDbEydOjIiIqVOnDrm91WrF6tWrY/LkyfHYY49FWZZb/KXfKweo4XrTm94Uf/InfxK33XZbDAwMRHd39+teAwBgJHXyvPbySbXTTjtt0O3vec974pprron77rtPAAYApNDJM9srrV27Nr75zW/Gu971rs3uEQCgqTp5XrvxxhvjrLPOimXLlsUee+wRES/9T5atVis++clPxmmnnWZ2g1FEAAZs1u+X7hERl156aSxcuDDOPPPMuPjii2PSpEnR1dUV5557brRarSH331JktaXby7KMiJeGqqIo4s4779zsffv6+l7PQ9lk6tSpsWHDhnjhhRdiwoQJb2gNAICmyDyv7b777vGzn/0sdtlll0G377zzzhERsXLlyld9fwCALDLPbK/0jW98I9atWxfvfe97h/0+AAAZZJ7Xrr766jjooIM2xV8vmzNnTixdujQeeuihmD179quuAXQOARgwbLfeemscddRRce211w66fdWqVbHjjjvW9nH22WefKMsypk+f/qqXZH29/vu//zu22WabNxyQAQA0XZZ57eCDD4677rorVqxYEfvtt9+m23/zm99ERMROO+1U214BAJomy8z2Stdff3309fXFnDlzatodAEBzZZnXnnrqqdhhhx2G3P7iiy9GRMTGjRsr7xHIo6vdGwDy6O7u3lSkv+yWW26JFStW1PpxTjzxxOju7o5FixYN+XhlWcazzz77qu//9NNPD7nt4Ycfjn/5l3+Jo48+Orq6vPQBAJ0py7w2d+7ciIghJ9G++MUvRk9PT7zjHe+odb8AAE2SZWZ72dNPPx133313nHDCCTF+/Pha9wgA0ERZ5rUZM2bEQw89FMuWLRt0+1e/+tXo6uqKAw88sNb9As3mCmDAsL373e+OxYsXx7x582LWrFnxyCOPxPXXXx977713rR9nn332iUsuuSTOP//8ePzxx+P444+P7bbbLpYvXx5f//rX46yzzor58+dv8f3/9E//NMaNGxezZs2KnXfeOR599NH4x3/8xxg/fnx85jOfqXWvAABNkmVeO+igg+LMM8+Mf/qnf4qNGzfGkUceGffee2/ccsstcf7558fuu+9e634BAJoky8z2sptuuik2btzon38EAEaNLPPaeeedF3feeWccfvjhcc4558TkyZPj9ttvjzvvvDM++MEPOscGo4wADBi2Cy64IF544YW44YYb4qabboq3vOUtcccdd8SCBQtq/1gLFiyIGTNmxBVXXBGLFi2KiIipU6fG0Ucf/ZqXmj/++OPj+uuvj7/927+NNWvWxE477RQnnnhiXHjhhfGmN72p9r0CADRFlnktIuILX/hCTJs2La677rr4+te/HnvuuWdcccUVce6559a+VwCAJsk0s0W89M8/7rzzzjF79uza9wcA0ERZ5rUjjjgivv/978dFF10UV199dTz77LMxffr0WLJkSXziE5+ofa9AsxXl719LEAAAAAAAAAAAgBS62r0BAAAAAAAAAAAA3hgBGAAAAAAAAAAAQFICMAAAAAAAAAAAgKQEYAAAAAAAAAAAAEkJwAAAAAAAAAAAAJISgAEAAAAAAAAAACQlAAMAAAAAAAAAAEiqZ7h3fGfXKVtzH1Cvomj3DpqnLKuvUcdxrWMfNJvnCSPkrtYt7d5CI5nZAIAmMbMNZV4jlSb9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++6LCy+8ML7zne/Ev//7v4v4oUMJwGCUOvbYY+OQQw4Z1n3Xr18fvb290dWV46KBCxcujHHjxsV9990XkydPjoiI973vfTFjxoy44IIL4mtf+1qbdwgAMFgnz2a77bZbPPnkk7HrrrvGj370o3jrW9+6xfteeuml8cILL8SPf/zjmDZtWkREzJw5M975znfG0qVL46yzzhqpbQMADGJee8mHPvSh+OQnPxnjxo2Lc845RwAGADSKmS2it7c3vve978WsWbM23fbnf/7nsddee22KwGbPnj1S2wZGUI5XM2DE3HvvvVEURdx4443xqU99KqZMmRLjx4+PNWvWxHPPPRfz58+PAw44IPr6+mLChAlx7LHHxsMPP7zZNW6++eZYtGhRTJkyJbbbbrs4+eSTY/Xq1dHf3x/nnntu7LzzztHX1xfz5s2L/v7+IXv5yle+EgcffHCMGzcuJk2aFKeeemo88cQTr/kY/uu//itmz569Kf6KeGkoOvLII+P222+PtWvXVj9QAAAjoBNms7Fjx8auu+46rMf7ta99Ld797ndvir8iImbPnh0zZsyIm2++eVhrAACMpNE2r+2yyy4xbty44R0cAICGGE0zW29v76D462UnnHBCRET8/Oc/f801gJxcAQxGqdWrV8czzzwz6LYdd9xx039ffPHF0dvbG/Pnz4/+/v7o7e2NRx99NL7xjW/EKaecEtOnT4+nnnoqrrnmmjjyyCPj0Ucfjd13333QepdddlmMGzcuFixYEL/4xS/iqquuijFjxkRXV1esXLkyLrroorj//vtj6dKlMX369Pj0pz+96X2XLFkSCxcujLlz58YHP/jBePrpp+Oqq66KI444Ih566KHYfvvtt/jY+vv7N3siavz48bFhw4b46U9/Gm9729ve4JEDAKhfJ89mw7VixYr47W9/u9n/S3PmzJnx7W9/u/LHAAB4o8xrAADNZ2bbsv/5n/8ZcjyADlMCo8p1111XRsRm/5RlWd5zzz1lRJR77713uW7dukHvu379+nJgYGDQbcuXLy/Hjh1bLl68eNNtL6+x//77lxs2bNh0+2mnnVYWRVEee+yxg9Y47LDDyj333HPT248//njZ3d1dLlmyZND9HnnkkbKnp2fI7b/vgAMOKGfMmFFu3Lhx0239/f3ltGnTyogob7311ld9fwCAkTIaZrNX+uEPf1hGRHnddddt8e++9KUvDfm78847r4yIcv369cP+WAAAdTCvbdlf/uVfln7FAAA0gZnttc2ePbucMGFCuXLlymG/D5CLfwISRqnPf/7zcddddw3680pnnHHGkKtojR07dtO/gz0wMBDPPvts9PX1xX777RcPPvjgkI9x+umnx5gxYza9feihh0ZZlnHmmWcOut+hhx4aTzzxRGzcuDEiIm677bZotVoxd+7ceOaZZzb92XXXXWPfffeNe+6551Uf24c//OFYtmxZfOADH4hHH300fvrTn8bpp58eTz75ZERE/O53vxvmUQIAGBmdPJsN18sz2tixY4f83TbbbDPoPgAAI828BgDQfGa2zbv00kvj7rvvjs985jOuDAsdzD8BCaPUzJkzN/vP67xs+vTpQ25rtVrxuc99Lq6++upYvnx5DAwMbPq7yZMnD7n/tGnTBr09ceLEiIiYOnXqkNtbrVasXr06Jk+eHI899liUZRn77rvvZvf2yqFqc84+++x44okn4vLLL49//ud/joiIQw45JD7xiU/EkiVLoq+v71XfHwBgpHXybDZcL5986+/vH/J369evH3QfAICRZl4DAGg+M9tQN910U3zqU5+KD3zgA/GhD31oq3wMoBkEYMBmbe6Xa5deemksXLgwzjzzzLj44otj0qRJ0dXVFeeee260Wq0h9+/u7t7s2lu6vSzLiHhp0CqKIu68887N3nc4AdeSJUti/vz58bOf/SwmTpwYBxxwQFxwwQURETFjxozXfH8AgCbJPpsNx2677RYRsemqra/05JNPxqRJkzZ7dTAAgCYYDfMaAEB2o21mu+uuu+L000+P4447Lr7whS/Uvj7QLAIwYNhuvfXWOOqoo+Laa68ddPuqVatixx13rO3j7LPPPlGWZUyfPr1SrLXDDjvE29/+9k1v33333bHHHnvEm9/85jq2CQDQVtlms9cyZcqU2GmnneJHP/rRkL974IEH4o/+6I+22scGANgaOm1eAwDoRJ06s/3gBz+IE044IQ455JC4+eabo6dHGgKdrqvdGwDy6O7u3lSpv+yWW26JFStW1PpxTjzxxOju7o5FixYN+XhlWcazzz77ute86aab4oc//GGce+65m/4dbwCAzDLPZlty0kknxe233x5PPPHEptu+853vxLJly+KUU06p7eMAAIyETpzXAAA6TSfObD//+c/juOOOi7322ituv/32zV75DOg8Mk9g2N797nfH4sWLY968eTFr1qx45JFH4vrrr4+999671o+zzz77xCWXXBLnn39+PP7443H88cfHdtttF8uXL4+vf/3rcdZZZ8X8+fO3+P7/+Z//GYsXL46jjz46Jk+eHPfff39cd911ccwxx8THPvaxWvcKANAuWWaziIi///u/j1WrVsVvfvObiIj41re+Fb/+9a8jIuIjH/lITJw4MSIiLrjggrjlllviqKOOio997GOxdu3auPzyy+OAAw6IefPm1fq4AAC2tk6c1371q1/Fl7/85YiITVduveSSSyIiYs8994z3v//9tT42AICtrdNmtueffz7e9a53xcqVK+O8886LO+64Y8g+DjvssFofG9AMAjBg2C644IJ44YUX4oYbboibbrop3vKWt8Qdd9wRCxYsqP1jLViwIGbMmBFXXHFFLFq0KCIipk6dGkcffXTMmTPnVd93ypQp0d3dHZdffnk8//zzMX369Ljkkkvi4x//uMubAgAdI8tsFhHx2c9+Nn71q19tevu2226L2267LSIi3ve+9236heLUqVPjP/7jP+LjH/94LFiwIHp7e+O4446Lv/mbv4mxY8fW/rgAALamTpzXli9fHgsXLhz0vi+/feSRRwrAAIB0Om1me/bZZzddXX9zj+GMM84QgEGHKsrfv74gAAAAAAAAAAAAKXS1ewMAAAAAAAAAAAC8MQIwAAAAAAAAAACApARgAAAAAAAAAAAASQnAAAAAAAAAAAAAkhKAAQAAAAAAAAAAJCUAAwAAAAAAAAAASEoABgAAAAAAAAAAkFTPcO/4zq5TtuY+AABel7tat7R7C41kZgMAmsTMNpR5DQBoEvPa5pnZAIAmGc7M5gpgAAAAAAAAAAAASQnAAAAAAAAAAAAAkhKAAQAAAAAAAAAAJCUAAwAAAAAAAAAASEoABgAAAADw/9m721g7y3LB49ez96K1WChQbGsJyBYFjuAoiOWgEx00x5QM8uIL0BnDW4wfDDro1FCQqhQomkPkCIoyaADTimJTNL4Qgxn8QGYYNBCnEx1HZ6igqFjoCy203XutZz5wLNbdYuG+d9e6Vn+/pAld3b3WvXbp7tVn//dTAAAAgKQEYAAAAAAAAAAAAEkJwAAAAAAAAAAAAJISgAEAAAAAAAAAACQlAAMAAAAAAAAAAEhK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AAAAAAAgKQEYAAAAAAAAAABAUgIwAAAAAAAAAACApARgAAAAAAAAAAAASQnAAAAAAAAAAAAAkhKAAQAAAAAAAAAAJCUAAwAAAAAAAAAASEoABgAAAAAAAAAAkJQADAAAAAAAAAAAICkBGAAAAAAAAAAAQFICMAAAAAAAAAAAgKQEYAAAAAAAAAAAAEl1+n0AAAAAAACYcm3b7xMAAADAlHAHMAAAAAAAAAAAgKQEYAAAAAAAAAAAAEkJwAAAAAAAAAAAAJISgAEAAAAAAAAAACQlAAMAAAAAAAAAAEhKAAYAAAAAAAAAAJCUAAwAAAAAAAAAACApARgAAAAAAAAAAEBSAjAAAAAAAAAAAICkBGAAAAAAAAAAAABJCcAAAAAAAAAAAACSEoABAAAAAAAAAAAkJQADAAAAAAAAAABISgAGAAAAAAAAAACQlAAMAAAAAAAAAAAgKQEYAAAAAAAAAABAUgIwAAAAAAAAAACApARgAAAAAAAAAAAASQnAAAAAAAAAAAAAkhKAAQAAAAAAAAAAJCUAAwAAAAAAAAAASEoABgAAAAAAAAAAkJQADAAAAAAAAAAAICkBGAAAAAAAAAAAQFICMAAAAAAAAAAAgKQEYAAAAAAAAAAAAEkJwAAAAAAAAAAAAJISgAEAAAAAAAAAACQlAAMAAAAAAAAAAEhKAAYAAAAAAAAAAJCUAAwAAAAAAAAAACApARgAAAAAAAAAAEBSAjAAAAAAAAAAAICkBGAAAAAAAAAAAABJCcAAAAAAAAAAAACSEoABAAAAAAAAAAAkJQADAAAAAAAAAABISgAGAAAAAAAAAACQlAAMAAAAAAAAAAAgKQEYAAAAAAAAAABAUgIwAAAAAAAAAACApARgAAAAAAAAAAAASQnAAAAAAAAAAAAAkhKAAQAAAAAAAAAAJCUAAwAAAAAAAAAASEoABgAAAAAAAAAAkJQADAAAAAAAAAAAICkBGAAAAAAAAAAAQFICMAAAAAAAAAAAgKQEYAAAAAAAAAAAAEkJwAAAAAAAAAAAAJISgAEAAAAAAAAAACQlAAMAAAAAAAAAAEhKAAYAAAAAAAAAAJCUAAwAAAAAAAAAACApARgAAAAAAAAAAEBSAjAAAAAAAAAAAICkBGAAAAAAAAAAAABJCcAAAAAAAAAAAACSEoABAAAAAAAAAAAkJQADAAAAAAAAAABISgAGAAAAAAAAAACQlAAMAAAAAAAAAAAgKQEYAAAAAAAAAABAUgIwAAAAAAAAAACApARgAAAAAAAAAAAASQnAAAAAAAAAAAAAkhKAAQAAAAAAAAAAJCUAAwAAAAAAAAAASEoABgAAAAAAAAAAkJQADAAAAAAAAAAAICkBGAAAAAAAAAAAQFICMAAAAAAAAAAAgKQEYAAAAAAAAAAAAEkJwAAAAAAAAAAAAJISgAEAAAAAAAAAACQlAAMAAAAAAAAAAEhKAAYAAAAAAAAAAJCUAAwAAAAAAAAAACApARgAAAAAAAAAAEBSAjAAAAAAAAAAAICkBGAAAAAAAAAAAABJCcAAAAAAAAAAAACSEoABAAAAAAAAAAAkJQADAAAAAAAAAABIqmnbtu33IQAAAAAAAAAAAHjx3AEMAAAAAAAAAAAgKQEYAAAAAAAAAABAUgIwAAAAAAAAAACApARgAAAAAAAAAAAASQnAAAAAAAAAAAAAkhKAAQAAAAAAAAAAJCUAAwAAAAAAAAAASEoABgAAAAAAAAAAkJQADAAAAAAAAAAAICkBGAAAAAAAAAAAQFICMAAAAAAAAAAAgKQEYAAAAAAAAAAAAEkJwAAAAAAAAAAAAJISgMGQuv3226Npml1+W7JkSb+PV8XmzZvj05/+dCxcuDAOOeSQaJombr/99l2+7a233hpvf/vbY+7cuTF9+vQYGxuLiy66KNauXbtXzwwA8NfsbLs3Pj4er3vd66Jpmrj++uun/qAAALtgX9vZhRdeuMv3xbHHHrt3Dw0A8FfsbJP1er348pe/HG984xtjxowZMXv27HjHO94RP//5z/feoYG9qtPvAwBTa9myZTE2NrbTY8cff3yfTlPXunXrYtmyZXHEEUfEG97whvjJT36y27d9+OGHY2xsLM4444w4+OCD45FHHolbb701vv/978fPf/7zmD9//t47OADA37CzTXbTTTfFo48+OrWHAwDYQ/a1502fPj2++tWv7vTYrFmzpvCEAAB7xs72vIsvvjhWrlwZ559/flxyySWxZcuWePjhh+OJJ57YOwcG9joBGAy50047LU466aQ9etutW7fGtGnTYmQkx80BX/nKV8Yf/vCHmDdvXvzsZz+LN7/5zbt925tvvnnSY2eddVacdNJJ8fWvf31o6n8AICc7286eeOKJWLZsWVx22WXxqU99ai+cEgDghdnXntfpdOIDH/jAXjodAMCes7M956677oo77rgjVq9eHWefffZePCXQTzk+mgHV/eQnP4mmaeKb3/xmXHnllXHYYYfF/vvvH5s2bYqnnnoqFi9eHK9//etj5syZceCBB8Zpp5026Zagf5lx1113xVVXXRWHHXZYHHDAAfG+970vNm7cGNu2bYtLL7005syZEzNnzoyLLrootm3bNuksK1asiDe96U0xY8aMOOSQQ+K8886Lxx577O++hunTp8e8efNe8vvgyCOPjIiIDRs2vOQZAABTaV/d2ZYsWRLHHHOMTywCAANvX93Xut1ubNq06UX9HACAftnXdrbPf/7zsWDBgjj77LOj1+vFli1b9uwdBaTmDmAw5DZu3Bjr1q3b6bFDDz10x39fffXVMW3atFi8eHFs27Ytpk2bFr/4xS/iO9/5Trz//e+PsbGx+NOf/hS33HJLvP3tb49f/OIXk/65xOuuuy5mzJgRS5Ysid/85jdx0003xX777RcjIyOxfv36+MxnPhMPPPBA3H777TE2NrbTXRyuvfbaWLp0aZxzzjnxwQ9+MP785z/HTTfdFG9729vi4YcfjoMOOqjq++PJJ5+Mbrcbjz76aCxbtiwiIt75zndWfQ4AgBfLzva8Bx98MO644464//77o2maanMBAErY1573zDPPxIEHHhjPPPNMHHzwwbFo0aL43Oc+FzNnzqz2HAAAL4WdLWLTpk3x4IMPxoc//OG44oor4qabborNmzfH2NhYfPazn41zzjmn+DmAAdUCQ+m2225rI2KX39q2be+77742ItpXv/rV7TPPPLPTz926dWvb7XZ3euyRRx5pp0+f3i5btmzHY3+Zcfzxx7fbt2/f8fiiRYvapmna0047bacZp5xySvuqV71qx/fXrl3bjo6Ottdee+1Ob7dmzZq20+lMevyF/PSnP20jor3tttte8O2mT5++4/0we/bs9sYbb9zj5wAAqM3OtrNer9cuWLCgXbRo0Y7XExHtP//zP+/xcwAA1GRf29mSJUvayy67rP3Wt77V3nnnne0FF1zQRkT71re+tR0fH9/j5wEAqMnO9ryHHnpox+dB586d2958883typUr2wULFrRN07T33HPPHj8PkIs7gMGQ+9KXvhRHH330bn/8ggsuiBkzZuz02PTp03f8d7fbjQ0bNsTMmTPjmGOOiYceemjSjPPPPz/222+/Hd8/+eST484774yLL754p7c7+eST48Ybb4yJiYnodDqxevXq6PV6cc455+xU48+bNy9e+9rXxn333RdXXHHFi37NL+See+6JrVu3xi9/+ctYsWKFW54CAAPBzvac22+/PdasWROrVq2qMg8AoBb72nOuu+66nb5/3nnnxdFHHx2f/OQnY9WqVXHeeedVeR4AgJfCzhaxefPmiHjuX0V64IEH4uSTT46IiDPOOCPGxsbimmuuiYULFxY/DzB4BGAw5BYsWBAnnXTSbn98bGxs0mO9Xi++8IUvxM033xyPPPJIdLvdHT82e/bsSW9/xBFH7PT9WbNmRUTE4YcfPunxXq8XGzdujNmzZ8evf/3raNs2Xvva1+7ybH+9PNVy6qmnRkTEaaedFmeeeWYcf/zxMXPmzLjkkkuqPxcAwJ6ysz13e/rLL788PvGJT0w6EwBAv9nXdu9jH/tYLF26NH784x8LwACAvrKzxY7AbWxsbEf8FRExc+bMePe73x0rVqzYEaUBw8XvatjH/W3lHhGxfPnyWLp0aVx88cVx9dVXxyGHHBIjIyNx6aWXRq/Xm/T2o6Oju5y9u8fbto2I5xaqpmninnvu2eXbzpw588W8lBftqKOOihNOOCFWrlwpAAMABtq+sLNdf/31sX379jj33HNj7dq1ERHxu9/9LiIi1q9fH2vXro358+fHtGnTqjwfAEBN+8K+tjszZsyI2bNnx1NPPTWlzwMAUGpf2Nnmz58fERFz586d9GNz5syJ8fHx2LJly45wDRgeAjBgklWrVsWpp54aX/va13Z6fMOGDXHooYdWe56jjjoq2raNsbGxF7wd61R69tlnY9u2bX15bgCAEsO2sz366KOxfv36OO644yb92PLly2P58uXx8MMPxxvf+MYpOwMAQE3Dtq/tztNPPx3r1q2LV7ziFXv9uQEASg3bzjZ//vyYN29e/P73v5/0Y48//ni87GUviwMOOGDKnh/on5F+HwAYPKOjoztq9L/49re/vctFocR73vOeGB0djauuumrS87VtG08++WSV55mYmIj169dPevzBBx+MNWvWvOCtYAEABtWw7Wwf/ehH4+67797p2y233BIRERdeeGHcfffdu7xNPwDAoBq2fW3r1q3x9NNPT3r86quvjrZtY+HChVWeBwBgbxq2nS0i4txzz43H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AAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBKAAYAAAAAAAAAABBqt/YBAIDXYVn6M8bozwAAAAAAAABgUzwBDAAAAAAAAAAAIJQADAAAAAAAAAAAIJQADAAAAAAAAAAAIJQADAAAAAAAAAAAIJQADAAAAAAAAAAAIJQADAAAAAAAAAAAIJQADAAAAAAAAAAAIJQADAAAAAAAAAAAIJQADAAAAAAAAAAAIJQADAAAAAAAAAAAIJQADAAAAAAAAAAAIJQADAAAAAAAAAAAIJQADAAAAAAAAAAAIJQADAAAAAAAAAAAIJQADAAAAAAAAAAAIJQADAAAAAAAAAAAINRu7QMAAK/DGGufAAAAAAAAAIAN8gQwAAAAAAAAAACAUAIwAAAAAAAAAACAUAIwAAAAAAAAAACAUAIwAAAAAAAAAACAUAIwAAAAAAAAAACAUAIwAAAAAAAAAACAUAIwAAAAAAAAAACAUAIwAAAAAAAAAACAUAIwAAAAAAAAAACAUAIwAAAAAAAAAACAUAIwAAAAAAAAAACAUAIwAAAAAAAAAACAUAIwAAAAAAAAAACAUAIwAAAAAAAAAACAUAIwAAAAAAAAAACAUAIwAAAAAAAAAACAUMsYY6x9CAAAAAAAAAAAAH5zngAGAAAAAAAAAAAQSgAGAAAAAAAAAAAQSgAGAAAAAAAAAAAQSgAGAAAAAAAAAAAQSgAGAAAAAAAAAAAQSgAGAAAAAAAAAAAQSgAGAAAAAAAAAAAQSgAGAAAAAAAAAAAQSgAGAAAAAAAAAAAQ6v8Bt3/jmFE3q8IAAAAASUVORK5CYII="},"metadata":{}}]},{"cell_type":"markdown","source":"If the *path_out* folder doesn't exist yet, it is created. ","metadata":{}},{"cell_type":"code","source":"# Читання темнових кадрів для AIRS-CH0\ndark_frame_air = pd.read_parquet('/kaggle/input/ariel-data-challenge-2024/test/499191466/AIRS-CH0_calibration/dark.parquet')\n\ndark_frame = dark_frame_air.iloc[0].values.reshape(1, 356)  # Оскільки вектор з 356 пікселів\n\nplt.imshow(dark_frame, cmap='gray', aspect='auto')  # aspect='auto', щоб зберегти пропорції\nplt.colorbar()\nplt.title(\"AIRS-CH0 Dark Frame - First Frame\")\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-10-17T23:20:01.19931Z","iopub.execute_input":"2024-10-17T23:20:01.199784Z","iopub.status.idle":"2024-10-17T23:20:01.577973Z","shell.execute_reply.started":"2024-10-17T23:20:01.199742Z","shell.execute_reply":"2024-10-17T23:20:01.576663Z"},"trusted":true},"execution_count":19,"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 640x480 with 2 Axes>","image/png":"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"},"metadata":{}}]},{"cell_type":"code","source":"# Завантаження даних еталонних спектрів\nlabels = pd.read_csv('/kaggle/input/ariel-data-challenge-2024/train_labels.csv')\n\n# Перегляньте перші кілька рядків і колонки\nprint(labels.head())\nprint(labels.columns)\n","metadata":{"execution":{"iopub.status.busy":"2024-10-17T23:24:59.48667Z","iopub.execute_input":"2024-10-17T23:24:59.487216Z","iopub.status.idle":"2024-10-17T23:24:59.584747Z","shell.execute_reply.started":"2024-10-17T23:24:59.487174Z","shell.execute_reply":"2024-10-17T23:24:59.583422Z"},"trusted":true},"execution_count":22,"outputs":[{"name":"stdout","text":"   planet_id      wl_1      wl_2      wl_3      wl_4      wl_5      wl_6  \\\n0     785834  0.001086  0.001137  0.001131  0.001124  0.001138  0.001131   \n1   14485303  0.001835  0.001835  0.001834  0.001833  0.001833  0.001833   \n2   17002355  0.002792  0.002814  0.002808  0.002804  0.002809  0.002805   \n3   24135240  0.001294  0.001308  0.001308  0.001306  0.001306  0.001303   \n4   25070640  0.001987  0.001987  0.001987  0.001987  0.001987  0.001987   \n\n       wl_7      wl_8      wl_9  ...    wl_274    wl_275    wl_276    wl_277  \\\n0  0.001123  0.001127  0.001120  ...  0.001075  0.001076  0.001076  0.001076   \n1  0.001833  0.001834  0.001834  ...  0.001893  0.001892  0.001892  0.001891   \n2  0.002802  0.002805  0.002801  ...  0.002784  0.002783  0.002783  0.002783   \n3  0.001306  0.001314  0.001314  ...  0.001405  0.001404  0.001403  0.001402   \n4  0.001987  0.001987  0.001987  ...  0.001988  0.001988  0.001988  0.001988   \n\n     wl_278    wl_279    wl_280    wl_281    wl_282    wl_283  \n0  0.001074  0.001073  0.001072  0.001073  0.001073  0.001072  \n1  0.001891  0.001891  0.001890  0.001890  0.001889  0.001888  \n2  0.002783  0.002784  0.002784  0.002785  0.002785  0.002784  \n3  0.001401  0.001400  0.001399  0.001397  0.001395  0.001393  \n4  0.001988  0.001988  0.001988  0.001988  0.001988  0.001988  \n\n[5 rows x 284 columns]\nIndex(['planet_id', 'wl_1', 'wl_2', 'wl_3', 'wl_4', 'wl_5', 'wl_6', 'wl_7',\n       'wl_8', 'wl_9',\n       ...\n       'wl_274', 'wl_275', 'wl_276', 'wl_277', 'wl_278', 'wl_279', 'wl_280',\n       'wl_281', 'wl_282', 'wl_283'],\n      dtype='object', length=284)\n","output_type":"stream"}]},{"cell_type":"code","source":"import pandas as pd\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.linear_model import LinearRegression\nfrom sklearn.metrics import mean_squared_error\n\n# 1. Завантаження даних\n# Наприклад, завантаження сигналів\nsignal_data = pd.read_parquet('/kaggle/input/ariel-data-challenge-2024/test/499191466/AIRS-CH0_signal.parquet')\nlabels = pd.read_csv('/kaggle/input/ariel-data-challenge-2024/train_labels.csv')\n\n# 2. Підготовка даних\n# Припустимо, у вас є лише один спектр для спрощення\nX = signal_data.iloc[:, :-1]  # Всі колонки, крім останньої, як фічі\ny = labels['spectrum'].values  # Еталонний спектр\n\n# Розділіть на навчальну та тестову вибірки\nX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)\n\n# 3. Створення моделі\nmodel = LinearRegression()\n\n# 4. Навчання моделі\nmodel.fit(X_train, y_train)\n\n# 5. Оцінка моделі\ny_pred = model.predict(X_test)\nmse = mean_squared_error(y_test, y_pred)\n\nprint(f'Mean Squared Error: {mse}')","metadata":{"execution":{"iopub.status.busy":"2024-10-17T23:24:13.162295Z","iopub.execute_input":"2024-10-17T23:24:13.162757Z","iopub.status.idle":"2024-10-17T23:24:15.975531Z","shell.execute_reply.started":"2024-10-17T23:24:13.162722Z","shell.execute_reply":"2024-10-17T23:24:15.973755Z"},"trusted":true},"execution_count":21,"outputs":[{"traceback":["\u001b[0;31m---------------------------------------------------------------------------\u001b[0m","\u001b[0;31mKeyError\u001b[0m                                  Traceback (most recent call last)","File \u001b[0;32m/opt/conda/lib/python3.10/site-packages/pandas/core/indexes/base.py:3805\u001b[0m, in \u001b[0;36mIndex.get_loc\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m   3804\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m-> 3805\u001b[0m     \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_engine\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_loc\u001b[49m\u001b[43m(\u001b[49m\u001b[43mcasted_key\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m   3806\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m err:\n","File \u001b[0;32mindex.pyx:167\u001b[0m, in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[0;34m()\u001b[0m\n","File \u001b[0;32mindex.pyx:196\u001b[0m, in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[0;34m()\u001b[0m\n","File \u001b[0;32mpandas/_libs/hashtable_class_helper.pxi:7081\u001b[0m, in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[0;34m()\u001b[0m\n","File \u001b[0;32mpandas/_libs/hashtable_class_helper.pxi:7089\u001b[0m, in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[0;34m()\u001b[0m\n","\u001b[0;31mKeyError\u001b[0m: 'spectrum'","\nThe above exception was the direct cause of the following exception:\n","\u001b[0;31mKeyError\u001b[0m                                  Traceback (most recent call last)","Cell \u001b[0;32mIn[21], line 14\u001b[0m\n\u001b[1;32m     11\u001b[0m \u001b[38;5;66;03m# 2. Підготовка даних\u001b[39;00m\n\u001b[1;32m     12\u001b[0m \u001b[38;5;66;03m# Припустимо, у вас є лише один спектр для спрощення\u001b[39;00m\n\u001b[1;32m     13\u001b[0m X \u001b[38;5;241m=\u001b[39m signal_data\u001b[38;5;241m.\u001b[39miloc[:, :\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m]  \u001b[38;5;66;03m# Всі колонки, крім останньої, як фічі\u001b[39;00m\n\u001b[0;32m---> 14\u001b[0m y \u001b[38;5;241m=\u001b[39m \u001b[43mlabels\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mspectrum\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m]\u001b[49m\u001b[38;5;241m.\u001b[39mvalues  \u001b[38;5;66;03m# Еталонний спектр\u001b[39;00m\n\u001b[1;32m     16\u001b[0m \u001b[38;5;66;03m# Розділіть на навчальну та тестову вибірки\u001b[39;00m\n\u001b[1;32m     17\u001b[0m X_train, X_test, y_train, y_test \u001b[38;5;241m=\u001b[39m train_test_split(X, y, test_size\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m0.2\u001b[39m, random_state\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m42\u001b[39m)\n","File \u001b[0;32m/opt/conda/lib/python3.10/site-packages/pandas/core/frame.py:4102\u001b[0m, in \u001b[0;36mDataFrame.__getitem__\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m   4100\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcolumns\u001b[38;5;241m.\u001b[39mnlevels \u001b[38;5;241m>\u001b[39m \u001b[38;5;241m1\u001b[39m:\n\u001b[1;32m   4101\u001b[0m     \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_getitem_multilevel(key)\n\u001b[0;32m-> 4102\u001b[0m indexer \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcolumns\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_loc\u001b[49m\u001b[43m(\u001b[49m\u001b[43mkey\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m   4103\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m is_integer(indexer):\n\u001b[1;32m   4104\u001b[0m     indexer \u001b[38;5;241m=\u001b[39m [indexer]\n","File \u001b[0;32m/opt/conda/lib/python3.10/site-packages/pandas/core/indexes/base.py:3812\u001b[0m, in \u001b[0;36mIndex.get_loc\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m   3807\u001b[0m     \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(casted_key, \u001b[38;5;28mslice\u001b[39m) \u001b[38;5;129;01mor\u001b[39;00m (\n\u001b[1;32m   3808\u001b[0m         \u001b[38;5;28misinstance\u001b[39m(casted_key, abc\u001b[38;5;241m.\u001b[39mIterable)\n\u001b[1;32m   3809\u001b[0m         \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;28many\u001b[39m(\u001b[38;5;28misinstance\u001b[39m(x, \u001b[38;5;28mslice\u001b[39m) \u001b[38;5;28;01mfor\u001b[39;00m x \u001b[38;5;129;01min\u001b[39;00m casted_key)\n\u001b[1;32m   3810\u001b[0m     ):\n\u001b[1;32m   3811\u001b[0m         \u001b[38;5;28;01mraise\u001b[39;00m InvalidIndexError(key)\n\u001b[0;32m-> 3812\u001b[0m     \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m(key) \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01merr\u001b[39;00m\n\u001b[1;32m   3813\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m:\n\u001b[1;32m   3814\u001b[0m     \u001b[38;5;66;03m# If we have a listlike key, _check_indexing_error will raise\u001b[39;00m\n\u001b[1;32m   3815\u001b[0m     \u001b[38;5;66;03m#  InvalidIndexError. Otherwise we fall through and re-raise\u001b[39;00m\n\u001b[1;32m   3816\u001b[0m     \u001b[38;5;66;03m#  the TypeError.\u001b[39;00m\n\u001b[1;32m   3817\u001b[0m     \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_check_indexing_error(key)\n","\u001b[0;31mKeyError\u001b[0m: 'spectrum'"],"ename":"KeyError","evalue":"'spectrum'","output_type":"error"}]},{"cell_type":"code","source":"if not os.path.exists(path_out):\n    os.makedirs(path_out)\n    print(f\"Directory {path_out} created.\")\nelse:\n    print(f\"Directory {path_out} already exists.\")\n","metadata":{"execution":{"iopub.status.busy":"2024-08-14T15:43:30.967731Z","iopub.execute_input":"2024-08-14T15:43:30.968151Z","iopub.status.idle":"2024-08-14T15:43:30.980039Z","shell.execute_reply.started":"2024-08-14T15:43:30.968106Z","shell.execute_reply":"2024-08-14T15:43:30.978927Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**Data import:**\n\n The files are imported by chunks of size 'CHUNK_SIZE' to avoid exceeding the memory capacity. ","metadata":{}},{"cell_type":"code","source":"CHUNKS_SIZE = 1","metadata":{"execution":{"iopub.status.busy":"2024-08-14T15:43:30.981646Z","iopub.execute_input":"2024-08-14T15:43:30.982032Z","iopub.status.idle":"2024-08-14T15:43:30.991466Z","shell.execute_reply.started":"2024-08-14T15:43:30.982002Z","shell.execute_reply":"2024-08-14T15:43:30.990131Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Step 1: Analog-to-Digital Conversion\n\nThe Analog-to-Digital Conversion (adc) is performed by the detector to convert the pixel voltage into an integer number. We revert this operation by using the gain and offset for the calibration files 'train_adc_info.csv'.\n","metadata":{"execution":{"iopub.status.busy":"2024-08-02T14:38:41.270117Z","iopub.execute_input":"2024-08-02T14:38:41.270597Z","iopub.status.idle":"2024-08-02T14:38:41.303633Z","shell.execute_reply.started":"2024-08-02T14:38:41.270558Z","shell.execute_reply":"2024-08-02T14:38:41.30235Z"}}},{"cell_type":"code","source":"def ADC_convert(signal, gain, offset):\n    signal = signal.astype(np.float64)\n    signal /= gain\n    signal += offset\n    return signal","metadata":{"execution":{"iopub.status.busy":"2024-08-14T15:43:30.994865Z","iopub.execute_input":"2024-08-14T15:43:30.995261Z","iopub.status.idle":"2024-08-14T15:43:31.005848Z","shell.execute_reply.started":"2024-08-14T15:43:30.99523Z","shell.execute_reply":"2024-08-14T15:43:31.004311Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Step 2: Mask hot/dead pixel\nThe dead pixels map is a map of the pixels that do not respond to light and, thus, can’t be accounted for any calculation. In all these frames the dead pixels are masked using python masked arrays. The bad pixels are thus masked but left uncorrected. Some methods can be used to correct bad-pixels but this task, if needed, is left to the participants.","metadata":{}},{"cell_type":"code","source":"def mask_hot_dead(signal, dead, dark):\n    hot = sigma_clip(\n        dark, sigma=5, maxiters=5\n    ).mask\n    hot = np.tile(hot, (signal.shape[0], 1, 1))\n    dead = np.tile(dead, (signal.shape[0], 1, 1))\n    signal = np.ma.masked_where(dead, signal)\n    signal = np.ma.masked_where(hot, signal)\n    return signal","metadata":{"execution":{"iopub.status.busy":"2024-08-14T15:43:31.007316Z","iopub.execute_input":"2024-08-14T15:43:31.007782Z","iopub.status.idle":"2024-08-14T15:43:31.019851Z","shell.execute_reply.started":"2024-08-14T15:43:31.007745Z","shell.execute_reply":"2024-08-14T15:43:31.018603Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Step 2: linearity Correction","metadata":{}},{"cell_type":"markdown","source":"\n\n**Non-linearity of pixels' response:**\n\nThe non-linearity of the pixels’ response can be explained as capacitive leakage on the readout electronics of each pixel during the integration time. The number of electrons in the well is proportional to the number of photons that hit the pixel, with a quantum efficiency coefficient. However, the response of the pixel is not linear with the number of electrons in the well. This effect can be described by a polynomial function of the number of electrons actually in the well. The data is provided with calibration files linear_corr.parquet that are the coefficients of the inverse polynomial function and can be used to correct this non-linearity effect.\n\n","metadata":{}},{"cell_type":"code","source":"def apply_linear_corr(linear_corr,clean_signal):\n    linear_corr = np.flip(linear_corr, axis=0)\n    for x, y in itertools.product(\n                range(clean_signal.shape[1]), range(clean_signal.shape[2])\n            ):\n        poli = np.poly1d(linear_corr[:, x, y])\n        clean_signal[:, x, y] = poli(clean_signal[:, x, y])\n    return clean_signal\n    ","metadata":{"execution":{"iopub.status.busy":"2024-08-14T15:43:31.021396Z","iopub.execute_input":"2024-08-14T15:43:31.02172Z","iopub.status.idle":"2024-08-14T15:43:31.033814Z","shell.execute_reply.started":"2024-08-14T15:43:31.021693Z","shell.execute_reply":"2024-08-14T15:43:31.032592Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Step 3: dark current subtraction\n\nThe data provided include calibration for dark current estimation, which can be used to pre-process the observations. Dark current represents a constant signal that accumulates in each pixel during the integration time, independent of the incoming light. To obtain the corrected image, the following conventional approach is applied: The data provided include calibration files such as dark frames or dead pixels' maps. They can be used to pre-process the observations. The dark frame is a map of the detector response to a very short exposure time, to correct for the dark current of the detector.\n$$\\text{image - dark} \\times \\Delta t $$ \nThe corrected image is conventionally obtained via the following: where the dark current map is first corrected for the dead pixel.","metadata":{}},{"cell_type":"code","source":"def clean_dark(signal, dead, dark, dt):\n\n    dark = np.ma.masked_where(dead, dark)\n    dark = np.tile(dark, (signal.shape[0], 1, 1))\n\n    signal -= dark* dt[:, np.newaxis, np.newaxis]\n    return signal\n","metadata":{"execution":{"iopub.status.busy":"2024-08-14T15:43:31.035536Z","iopub.execute_input":"2024-08-14T15:43:31.035887Z","iopub.status.idle":"2024-08-14T15:43:31.045441Z","shell.execute_reply.started":"2024-08-14T15:43:31.035858Z","shell.execute_reply":"2024-08-14T15:43:31.044309Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Step 4: Get Correlated Double Sampling (CDS)","metadata":{}},{"cell_type":"markdown","source":"The science frames are alternating between the start of the exposure and the end of the exposure. The lecture scheme is a ramp with a double sampling, called Correlated Double Sampling (CDS), the detector is read twice, once at the start of the exposure and once at the end of the exposure. The final CDS is the difference (End of exposure) - (Start of exposure).","metadata":{}},{"cell_type":"code","source":"def get_cds(signal):\n    cds = signal[:,1::2,:,:] - signal[:,::2,:,:]\n    return cds","metadata":{"execution":{"iopub.status.busy":"2024-08-14T15:43:31.046913Z","iopub.execute_input":"2024-08-14T15:43:31.047248Z","iopub.status.idle":"2024-08-14T15:43:31.057686Z","shell.execute_reply.started":"2024-08-14T15:43:31.04722Z","shell.execute_reply":"2024-08-14T15:43:31.05647Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Step 5 (Optional): Time Binning\nThis step is performed mianly to save space. Time series observations are binned together at specified frequency. \n\n","metadata":{}},{"cell_type":"code","source":"def bin_obs(cds_signal,binning):\n    cds_transposed = cds_signal.transpose(0,1,3,2)\n    cds_binned = np.zeros((cds_transposed.shape[0], cds_transposed.shape[1]//binning, cds_transposed.shape[2], cds_transposed.shape[3]))\n    for i in range(cds_transposed.shape[1]//binning):\n        cds_binned[:,i,:,:] = np.sum(cds_transposed[:,i*binning:(i+1)*binning,:,:], axis=1)\n    return cds_binned","metadata":{"execution":{"iopub.status.busy":"2024-08-14T15:43:31.05926Z","iopub.execute_input":"2024-08-14T15:43:31.059681Z","iopub.status.idle":"2024-08-14T15:43:31.070098Z","shell.execute_reply.started":"2024-08-14T15:43:31.059648Z","shell.execute_reply":"2024-08-14T15:43:31.068951Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Step 6: Flat Field Correction\n","metadata":{}},{"cell_type":"markdown","source":"The flat field is a map of the detector response to uniform illumination, to correct for the pixel-to-pixel variations of the detector, for example the different quantum efficiencies of each pixel.","metadata":{}},{"cell_type":"code","source":"def correct_flat_field(flat,dead, signal):\n    flat = flat.transpose(1, 0)\n    dead = dead.transpose(1, 0)\n    flat = np.ma.masked_where(dead, flat)\n    flat = np.tile(flat, (signal.shape[0], 1, 1))\n    signal = signal / flat\n    return signal","metadata":{"execution":{"iopub.status.busy":"2024-08-14T15:43:31.071559Z","iopub.execute_input":"2024-08-14T15:43:31.07204Z","iopub.status.idle":"2024-08-14T15:43:31.087923Z","shell.execute_reply.started":"2024-08-14T15:43:31.072004Z","shell.execute_reply":"2024-08-14T15:43:31.086571Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Calibrating all training data","metadata":{}},{"cell_type":"markdown","source":"you can choose to correct the non-linearity of the pixels' response, to apply flat field, dark and dead map or to leave the data unchanged. The observations are binned in time by group of 30 frames for AIRS and 360 frames for FGS1, to obtain a lighter data-cube, easier to use. The images are cut along the wavelength axis between pixels 39 and 321, so that the 282 pixels left in the wavelength dimension match the last 282 targets' points, from AIRS. The 283rd targets' point is the one for FGS1 that will be added later on. ","metadata":{}},{"cell_type":"code","source":"## we will start by getting the index of the training data:\ndef get_index(files,CHUNKS_SIZE ):\n    index = []\n    for file in files :\n        file_name = file.split('/')[-1]\n        if file_name.split('_')[0] == 'AIRS-CH0' and file_name.split('_')[1] == 'signal.parquet':\n            file_index = os.path.basename(os.path.dirname(file))\n            index.append(int(file_index))\n    index = np.array(index)\n    index = np.sort(index) \n    # credit to DennisSakva\n    index=np.array_split(index, len(index)//CHUNKS_SIZE)\n    \n    return index","metadata":{"execution":{"iopub.status.busy":"2024-08-14T15:43:31.089594Z","iopub.execute_input":"2024-08-14T15:43:31.090081Z","iopub.status.idle":"2024-08-14T15:43:31.105731Z","shell.execute_reply.started":"2024-08-14T15:43:31.090039Z","shell.execute_reply":"2024-08-14T15:43:31.104091Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"files = glob.glob(os.path.join(path_folder + 'train/', '*/*'))\n\nindex = get_index(files[:22],CHUNKS_SIZE)  ## 48 is hardcoded here but please feel free to remove it if you want to do it for the entire dataset\n\ntrain_adc_info = pd.read_csv(os.path.join(path_folder, 'train_adc_info.csv'))\ntrain_adc_info = train_adc_info.set_index('planet_id')\naxis_info = pd.read_parquet(os.path.join(path_folder,'axis_info.parquet'))\nDO_MASK = True\nDO_THE_NL_CORR = False\nDO_DARK = True\nDO_FLAT = True\nTIME_BINNING = True\n\ncut_inf, cut_sup = 39, 321\nl = cut_sup - cut_inf\n\nfor n, index_chunk in enumerate(tqdm(index)):\n    AIRS_CH0_clean = np.zeros((CHUNKS_SIZE, 11250, 32, l))\n    FGS1_clean = np.zeros((CHUNKS_SIZE, 135000, 32, 32))\n    \n    for i in range (CHUNKS_SIZE) : \n        df = pd.read_parquet(os.path.join(path_folder,f'train/{index_chunk[i]}/AIRS-CH0_signal.parquet'))\n        signal = df.values.astype(np.float64).reshape((df.shape[0], 32, 356))\n        gain = train_adc_info['AIRS-CH0_adc_gain'].loc[index_chunk[i]]\n        offset = train_adc_info['AIRS-CH0_adc_offset'].loc[index_chunk[i]]\n        signal = ADC_convert(signal, gain, offset)\n        dt_airs = axis_info['AIRS-CH0-integration_time'].dropna().values\n        dt_airs[1::2] += 0.1\n        chopped_signal = signal[:, :, cut_inf:cut_sup]\n        del signal, df\n        \n        # CLEANING THE DATA: AIRS\n        flat = pd.read_parquet(os.path.join(path_folder,f'train/{index_chunk[i]}/AIRS-CH0_calibration/flat.parquet')).values.astype(np.float64).reshape((32, 356))[:, cut_inf:cut_sup]\n        dark = pd.read_parquet(os.path.join(path_folder,f'train/{index_chunk[i]}/AIRS-CH0_calibration/dark.parquet')).values.astype(np.float64).reshape((32, 356))[:, cut_inf:cut_sup]\n        dead_airs = pd.read_parquet(os.path.join(path_folder,f'train/{index_chunk[i]}/AIRS-CH0_calibration/dead.parquet')).values.astype(np.float64).reshape((32, 356))[:, cut_inf:cut_sup]\n        linear_corr = pd.read_parquet(os.path.join(path_folder,f'train/{index_chunk[i]}/AIRS-CH0_calibration/linear_corr.parquet')).values.astype(np.float64).reshape((6, 32, 356))[:, :, cut_inf:cut_sup]\n        \n        if DO_MASK:\n            chopped_signal = mask_hot_dead(chopped_signal, dead_airs, dark)\n            AIRS_CH0_clean[i] = chopped_signal\n        else:\n            AIRS_CH0_clean[i] = chopped_signal\n            \n        if DO_THE_NL_CORR: \n            linear_corr_signal = apply_linear_corr(linear_corr,AIRS_CH0_clean[i])\n            AIRS_CH0_clean[i,:, :, :] = linear_corr_signal\n        del linear_corr\n        \n        if DO_DARK: \n            cleaned_signal = clean_dark(AIRS_CH0_clean[i], dead_airs, dark, dt_airs)\n            AIRS_CH0_clean[i] = cleaned_signal\n        else: \n            pass\n        del dark\n        \n        df = pd.read_parquet(os.path.join(path_folder,f'train/{index_chunk[i]}/FGS1_signal.parquet'))\n        fgs_signal = df.values.astype(np.float64).reshape((df.shape[0], 32, 32))\n        \n        FGS1_gain = train_adc_info['FGS1_adc_gain'].loc[index_chunk[i]]\n        FGS1_offset = train_adc_info['FGS1_adc_offset'].loc[index_chunk[i]]\n        \n        fgs_signal = ADC_convert(fgs_signal, FGS1_gain, FGS1_offset)\n        dt_fgs1 = np.ones(len(fgs_signal))*0.1\n        dt_fgs1[1::2] += 0.1\n        chopped_FGS1 = fgs_signal\n        del fgs_signal, df\n        \n        # CLEANING THE DATA: FGS1\n        flat = pd.read_parquet(os.path.join(path_folder,f'train/{index_chunk[i]}/FGS1_calibration/flat.parquet')).values.astype(np.float64).reshape((32, 32))\n        dark = pd.read_parquet(os.path.join(path_folder,f'train/{index_chunk[i]}/FGS1_calibration/dark.parquet')).values.astype(np.float64).reshape((32, 32))\n        dead_fgs1 = pd.read_parquet(os.path.join(path_folder,f'train/{index_chunk[i]}/FGS1_calibration/dead.parquet')).values.astype(np.float64).reshape((32, 32))\n        linear_corr = pd.read_parquet(os.path.join(path_folder,f'train/{index_chunk[i]}/FGS1_calibration/linear_corr.parquet')).values.astype(np.float64).reshape((6, 32, 32))\n        \n        if DO_MASK:\n            chopped_FGS1 = mask_hot_dead(chopped_FGS1, dead_fgs1, dark)\n            FGS1_clean[i] = chopped_FGS1\n        else:\n            FGS1_clean[i] = chopped_FGS1\n\n        if DO_THE_NL_CORR: \n            linear_corr_signal = apply_linear_corr(linear_corr,FGS1_clean[i])\n            FGS1_clean[i,:, :, :] = linear_corr_signal\n        del linear_corr\n        \n        if DO_DARK: \n            cleaned_signal = clean_dark(FGS1_clean[i], dead_fgs1, dark,dt_fgs1)\n            FGS1_clean[i] = cleaned_signal\n        else: \n            pass\n        del dark\n        \n    # SAVE DATA AND FREE SPACE\n    AIRS_cds = get_cds(AIRS_CH0_clean)\n    FGS1_cds = get_cds(FGS1_clean)\n    \n    del AIRS_CH0_clean, FGS1_clean\n    \n    ## (Optional) Time Binning to reduce space\n    if TIME_BINNING:\n        AIRS_cds_binned = bin_obs(AIRS_cds,binning=30)\n        FGS1_cds_binned = bin_obs(FGS1_cds,binning=30*12)\n    else:\n        AIRS_cds = AIRS_cds.transpose(0,1,3,2) ## this is important to make it consistent for flat fielding, but you can always change it\n        AIRS_cds_binned = AIRS_cds\n        FGS1_cds = FGS1_cds.transpose(0,1,3,2)\n        FGS1_cds_binned = FGS1_cds\n    \n    del AIRS_cds, FGS1_cds\n    \n    for i in range (CHUNKS_SIZE):\n        flat_airs = pd.read_parquet(os.path.join(path_folder,f'train/{index_chunk[i]}/AIRS-CH0_calibration/flat.parquet')).values.astype(np.float64).reshape((32, 356))[:, cut_inf:cut_sup]\n        flat_fgs = pd.read_parquet(os.path.join(path_folder,f'train/{index_chunk[i]}/FGS1_calibration/flat.parquet')).values.astype(np.float64).reshape((32, 32))\n        if DO_FLAT:\n            corrected_AIRS_cds_binned = correct_flat_field(flat_airs,dead_airs, AIRS_cds_binned[i])\n            AIRS_cds_binned[i] = corrected_AIRS_cds_binned\n            corrected_FGS1_cds_binned = correct_flat_field(flat_fgs,dead_fgs1, FGS1_cds_binned[i])\n            FGS1_cds_binned[i] = corrected_FGS1_cds_binned\n        else:\n            pass\n\n    ## save data\n    np.save(os.path.join(path_out, 'AIRS_clean_train_{}.npy'.format(n)), AIRS_cds_binned)\n    np.save(os.path.join(path_out, 'FGS1_train_{}.npy'.format(n)), FGS1_cds_binned)\n    del AIRS_cds_binned\n    del FGS1_cds_binned","metadata":{"execution":{"iopub.status.busy":"2024-08-14T15:43:31.107676Z","iopub.execute_input":"2024-08-14T15:43:31.108094Z","iopub.status.idle":"2024-08-14T15:45:33.985108Z","shell.execute_reply.started":"2024-08-14T15:43:31.108063Z","shell.execute_reply":"2024-08-14T15:45:33.983191Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"Once all the chunks are saved, we concatenate them back in a single dataset. This step is simply to save HDD space, modify it as you wish. ","metadata":{}},{"cell_type":"code","source":"def load_data (file, chunk_size, nb_files) : \n    data0 = np.load(file + '_0.npy')\n    data_all = np.zeros((nb_files*chunk_size, data0.shape[1], data0.shape[2], data0.shape[3]))\n    data_all[:chunk_size] = data0\n    for i in range (1, nb_files) : \n        data_all[i*chunk_size:(i+1)*chunk_size] = np.load(file + '_{}.npy'.format(i))\n    return data_all \n\ndata_train = load_data(path_out + 'AIRS_clean_train', CHUNKS_SIZE, len(index)) \ndata_train_FGS = load_data(path_out + 'FGS1_train', CHUNKS_SIZE, len(index))\n","metadata":{"execution":{"iopub.status.busy":"2024-08-14T15:45:33.992081Z","iopub.execute_input":"2024-08-14T15:45:33.992675Z","iopub.status.idle":"2024-08-14T15:45:34.116287Z","shell.execute_reply.started":"2024-08-14T15:45:33.992614Z","shell.execute_reply":"2024-08-14T15:45:34.114991Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"np.save('/kaggle/working/' + 'data_train.npy', data_train)\nnp.save('/kaggle/working/' + 'data_train_FGS.npy', data_train_FGS)","metadata":{"execution":{"iopub.status.busy":"2024-08-14T15:45:34.117758Z","iopub.execute_input":"2024-08-14T15:45:34.118141Z","iopub.status.idle":"2024-08-14T15:45:34.207721Z","shell.execute_reply.started":"2024-08-14T15:45:34.11811Z","shell.execute_reply":"2024-08-14T15:45:34.20643Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Plots","metadata":{}},{"cell_type":"markdown","source":"Let us checks that everything went well during the data import. ","metadata":{}},{"cell_type":"code","source":"import matplotlib.pyplot as plt \n\nprint('Shape of the training datasset: \\t')\nprint('\\n For AIRS-CH0:', data_train.shape)\nprint('\\n For FGS1:', data_train_FGS.shape)\n\n","metadata":{"execution":{"iopub.status.busy":"2024-08-14T15:45:34.209352Z","iopub.execute_input":"2024-08-14T15:45:34.209816Z","iopub.status.idle":"2024-08-14T15:45:34.217862Z","shell.execute_reply.started":"2024-08-14T15:45:34.209763Z","shell.execute_reply":"2024-08-14T15:45:34.216717Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"Plot of some images: ","metadata":{}},{"cell_type":"code","source":"plt.imshow(data_train_FGS[-1,50,:,:].T, aspect = 'auto')","metadata":{"execution":{"iopub.status.busy":"2024-08-14T15:45:34.21942Z","iopub.execute_input":"2024-08-14T15:45:34.219788Z","iopub.status.idle":"2024-08-14T15:45:34.575938Z","shell.execute_reply.started":"2024-08-14T15:45:34.219756Z","shell.execute_reply":"2024-08-14T15:45:34.574691Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"Plot of some light-curves: ","metadata":{}},{"cell_type":"code","source":"\nfor i in range(len(data_train)) : \n    light_curve = data_train[i,:,:,:].sum(axis=(1,2))\n    plt.plot(light_curve/light_curve.mean(), '-', alpha=0.3)\n\nplt.xlabel('Time (frame index)')\nplt.ylabel('Normalized flux in the frame')","metadata":{"execution":{"iopub.status.busy":"2024-08-14T15:45:34.5773Z","iopub.execute_input":"2024-08-14T15:45:34.577632Z","iopub.status.idle":"2024-08-14T15:45:34.921121Z","shell.execute_reply.started":"2024-08-14T15:45:34.577603Z","shell.execute_reply":"2024-08-14T15:45:34.919856Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]}]}