Loop Tunes
"Draw your own kind of music.
Paint your own special song!"
Loop-tunes is a chip-tune music creation sandbox game. It works by compositing multiple wave forms on top of each other. It was created during bevy-jam 5 with the theme cycles.
This is my first real bevy project and to avoid complicated things like UI, it has no UI. Please check the controls below.
How to start
- Click on the 2m8s circle.
- Keep the mouse above it.
- Press shift + space to start playing.
- Press that again to make it stop.
- Press shift + delete to remove it all.
- Check the controls below on how to draw your own music.
How to share
- Hover above your song's root node and press ctrl + C to copy your creation.
- Share it in the comments below.
- Other people can copy that and paste it into the game with ctrl + V.
Available on:
Controls:
Playback:
- Activate circles using spacebar to listen to them.
- Activate entire trees of circles using shift + spacebar.
Navigation:
- Drag the screen with the right mouse button.
- Zoom using the scroll wheel.
Circle manipulation:
- Drag circles with the left mouse button.
- Draw on circles with the left mouse button while zoomed in.
- Change the frequency of circles with shift + scroll wheel.
- Change the color of circles with Z.
Circle creation/removal:
- Use the 0-9 keys to add new circles.
- Hold shift to insert new circles with 1Hz instead of 440Hz.
- Clone circles by holding ctrl while dragging them. Hold shift to include child nodes.
- Delete circles using the delete key. Hold shift to include child nodes.
- Copy a node and all its children with ctrl + C and paste with ctrl + V.
- You can save a copied tree by pasting it into a text file.
Connectivity
- Add/change connection by holding shift and dragging from one circle to another.
- While dragging a new connection, hold shift for angle snapping, or release shift for free positioning.
Credits
The very few assets this game has, have been made by me during the jam.
The bevy discord, the unofficial bevy cheatbook and ChatGPT have been invaluable resources for teaching me how to write code for bevy. Without these, I would not have been able to write loop-tunes. In particular
- the custom audio backend for playing procedural music; and
- the clipboard plugin for clipboard access in both wasm and native builds,
would have been impossible.
Used libraries:
- bevy v0.14 (obviously)
- bevy_embedded_assets
- rodio & crossbeam-channel (for audio playback)
- copypasta, web-sys (for clipboard access)
- serde, bitcode, zstd & base64 (for copy & paste functionality)
- rand, smallvec
License
Licensed under either of
at your option.
Comments
Log in with itch.io to leave a comment.
I love this so much!!!! Here is my song:
KLUv_WBxee2uARpjC9QoEEBcY0Gj-tcKIZYjcjgBYyXyCBFm3i1BhYD5YIAijoVXSiFue-96KQ8Npwx1DROOrZH1kH9xeOFATeZJrpA8rZxAeXb5aJlyGZ7DLUcr8w7zIvOwjiodmzqod5ztIG1-N7s1nzqPOLs5mz6zn8-eQZ-doaugIaF5o3ei86JJRFNL59IPpGOnQ6a9ph2nZanb1FbUh9QlqHPAfeBscEn4K1y6Oqharbqx2kQ1sfWJ9ZN1AmtH61JrXWvq65prqmu368RrzevU69xr5nhIPCfuFA-LJ4gLxhnjlfHQ-GlcRdw2LiMuHD-OM8eh49Rxa94O08uyUbeTunEaTMcoOsasBVPjl9cKrJ2sgaxnqh-rP6o94ItwR_gk_IfaiFrGtB01BuqraWlqnuniadlpD9MLpH-n36aJp2WpXajf09fUB6hNUMtR11ILU1vD--A24FtwVzgc_Eb1EDwNjqNaEW5drQbnrAapLqz-gD9Wp1RLVd9V61r_WBdWP1tfXt9cR1-TXnNdu69r4xma4yLihHHl6LhinOg69zrxGsh6hbVbNXV1bnVptWO1XHUOD4WbUAtOz5imMT08XTxtY_p4Wp9-kQYhjSVdQBqBtJ10TDSL6AXRQdEq0HDpHOkZaRfpF-kY6QLSjNK20y7ThdO91FHUSNQ-1DPUWdR81BmoXaml4UTwNzgGuCx8Bry5OqTaplpAtQdrHesM1ynW19bJ1rzWsdd5cZV4SzzmuvSa9Zo2ThU3jXPGH-OF__Hsdz_IizzJmzzKqzzLuzzMyzzN2zzO6zzP-zzQCz3RF_3RJ72AZ3qnh_qon_r8rR7rtZ7rvR7sxb7Ak73Zo33aqz2Cb_u3T_AKfu7r_u7zfu_7_u8Df_ALn8EbPuLrr_gPPsJLeMef8JAf-ZKP4Snf8i8_8ze_8z9_w3N40R_9Dx_iS9_0SXyJR_3UV33W31_Fuz7sy_7s077tu3gYj_u6L-N7__eBP_iHv_hr_I1H_uRffubf8c4P_dJP_dV__fF4_Pqrn_qlH_qdf8cz__InP_Lf-Bpf_MMf_MD_-70v43Uf92G8i7d92p992Yd911fx-7O-6qc-6pd4Em_6pR_iP_zoiz6H3_Cf3_mbn_mXb_mUj-ElP_Ihf8I7voSP8A9e8fVHfMNn8IU_-IH_932_93l_93U_9wo-wb992yN4tU97tDd7si_wYg_2Xs_1Wo_1Vp__1Ec91Ds90wv4pD_6oid6oQd6n-d5ncd5m6d5mYd5l2d5lUd5kyd5kQd597P_4_-jC7g_fGAmaVXhBdHjxGoiU3pvKWSvohiNBIyUIXQHhrnrGEJ56S5sgao0h7meGLAV4gI8CPppewEISp2SWil7Zp2ixlaKzbhNQdgLyT_WBCXWEUCiYxgoUAsbS7cbFnVoQA3GmqdUHsO06QmFSlZO06csAA1Hvlpkm1MsF7wRWSFYRli7Dz5tH4TQ0Rp6m3bAxO5HtgKGVUfKmmSHz-HaSm2ABMFibsFgicmnKJBayJgqCXEXAyTnxfkh98oGs96NjS6noX6aNQZ00ujMxb1bQSdSJ9CzlcYQQioPBkGadjXs2CmgSIs0JqtDOIOdZE2TdKIFKQM0ypYlHnBFNJUjjAmU2WetIxMcy0a0tnIUVoDsoZ0PLisRFGBwtpF3QbrvsIMIZS7OHSrWZJWYCuA5OoaafTMsrvHRmMKyQcP6B9ZVJCIBaItTVrCHuxODl7WgiwCcPMi9ULJhHXX-67mDHx_YZf08qAwMjijxpGFnhzGrHCgOVQwCODyZ-WZQ956R3dOa1td8RnBSrcjPZHKffcR4mUuvKCdembQafeJOKyJzXg1w4hIvp_BLVXOhZwu7ucnyBpkxgUbF0OXy09mli2VSE4JYSEupiLPAqZxAlzgQiPI0iTDS042JV_wBct2oIafDwWmEljCrRMaFEKNUGnygqyhbJEvXSICCZRCFG67dJd9orQQEaJ6ygXAHpn44wVpSLIBZlKZ4-WMbpVbFQTemGiEG8MgC32jYDRI5TyfKqhBTHcceFQh1p9tsTb9HEcOlPZUU2J5d6xggq9wNo2Y4hp6AJnhps_DOvKoBbZ9SkBG6gLb52Q74FaFaDaQL-6c8QnlJPWMTnFmCd_EkDcYOBSGbnYRTNTagcIdAIfDgtStX22dU98wAqrlXqZQJRaHKgwsn0R46gSJQvhSHl6aDcg5pwBmaXHD9FxpTkYxGts5MLMZ3EY4ZMXwozqyNz8lmEkrTtBKmwmCdNXvbBbnk1pREkG0x6SqTknzZUJiPq9I0FBGdOF82VgUPsqb1ruipvoMtgIA162qE65EMxmWMWIa3Q9iOpSo4FMykRy2CGkY9Yzx8CdN6Es7YU86znpYA9wEHn3KKoy4KFsCeY_Ws3FprqqpslfDHdycw2VfwR85SJt_bNSUMDAMkHiHniBM4rKiHvyLUNJoPG1j4MspQPTxMMRwjDMelahsWHFyDI-gTvEBvvmcbwriXixsIwEgdjOpxNXsT65FQszQaTI5Qk5YH4taHlHSGtsjCEcuNhJYAQrK0pH9DEqIZrMhM2Rk2oi592RfESYTKXHWlDDCkMnzQG4Hw1Nc4tMKh26kMUi1kZJkA8K6sxNbGyzdJmgkvNsgi04Kq1qvdSoSVYaoUQrSzDlqvar1HuStqYvRu6QBTritDmoSRJBKmQmNEWXQKTRQxlsjSiGtDrLhYOAEcV1HqxSGJhnNtTJgB3yCXs46WBBQFiECQskWaPvxGDS8YoaSa_CEJnsPpRjAQGh6OdAmxmuB61kOnQBAU0_jEWtsJubDnubJeHDJeLAx-Y4g50LJuczourdiRnSQIdqNv5EBDiN7itfxwAQfbZ51gUGYci7BLXCWyTJ5Qz26rFefiix4Yq3mDLVg4eNQgbtEaUi-pmHSqcuUOoB4qkCvWjFuQNBuMIqVDVgSXyuamqTpJQ2gLEw6sC10DrcgUWFDPLBCspVRSMxHYjBrBLKxHhXeSqxZI6xZsIhHl96PQyzgK58fG9KtKk5mrFV9SHKXTir6lU0ssli1dP5cBoVfw3aWtYVNn68DobhWCNkNWjPjp1Y03Grkw0s6hVaKAHkZSOCr4CaaVo7sggYlDJY7J2AYs0CVCDDHqSmZgTSsgbs4Y7TgSYXcovjog5uMLWUKHs1VrLRPIIgsGK6AFuNp5oEG9M9M0K2PGB62gWmfdLRZEzBzZqJt7pZn0QVeY7kIcJraSSWRqEUpYcr3ZwzIEFxhAE6FGBQBfoxuhET2aSpQwPFNQNOywfOkaVGVYfcyLGqAow5xcfmtLUMKHWKRt1EKiixIYfG0tBJ4gaE5uwYg18Cc8BSryAFJCg_ZKMh3hghPDbQdkQoss-24RW0xCe88eOGuSWCmBQ_RhVBDLAV0i-hDLA6kIC6ybMj-dXQxsHwIGIhtZICMbxNitO7JGFmx0bmcLZSyqkV7OIvIaNLeLFNpieHNAkOYs_DEUGmOCBdA21PyJNtv4cec4G9dRMMXDEkgmyPfUKcml-Vn5-wLXmC9UDeZXN4PJ3Yx5folPZBAU8RjZaHYeFPBAWTY9TUDJnuAkTDsHZsJG2Q4xCnxoulUhOM60Y0cCZJ4WmDB8sDJnq-FNMTZH1JpKGnrLJwiOxcFVlq96yz5Lk-kq7FM2JQaTa6xymP2FUyaqgRDhRPUBUcXKW1f8ZYQ6-qVHmSBKLUXcs-hNkyJcsZZapDQpNpqmIcZXNBvjvbuYZJHG-h0CBqXCslHE4VBR4DSEglJrNhVMbi8dPszWurT68migpv3C2uIaLFzTE6CYwWwQLEM3f4A78mGI6hDC8ObXCY8mhUahH0roZh-X2hU31gzjnBAcRS0gY1pp3XBBw5ykeaS4qSmFekQ1GKdVoeYvQ-TIAhoFh9JSV0qpsmM3vFq29gqJSh1DbTRU31IQ1GVqWRFD1U1iwjFAtaWIsuNEG2qGlzfSmjRgWLZGULTkIyKQOUceWY8f7Gfsj6WOQsawXzcAPO3FCJIuu1YiCx9V5EU_HB6IabUmXawBBrFzyShIitQCeeGYUWObqFlt8lVClMTj4x__-P-LfPs_HnJCRfVTVFRUUP9UU1H_rxdTm9AjhXSrmw_K8IaATWsz0vMkJUX1L_VTUk9FNWBqGQGfCxwUImxBdbZM7_-L_shAGpJ4KmMW_V_3sZYd8NT8T_VUVE9FRTX1A_6fKoqK6l9Orq7IY_X_9dkWmP83LRZir2lW5a2s-Z7nVPvemlPlKfa91eqHQPSmHMykicUuzdkgEf0Y-swA4TTnPSVaxc7ZA2eUgN0qotqtRjW_7DBd5OWsQz1W2mK_1bR4taQ5ojGV57lqvrfmO1XVvuetRFsvNuTiV2fLfURLuvkj2ogwDADHCvllZBrEXee6czjlVkFFCx1K35HlGaK0LSStnxx2acQQpGGVZ-mC8aeofmqKaopqaoqKiur_9_9Hyf_1f_3zV26hwfInrsUsCeWDTVRkREZWgMzkR8tEhIyIiKiMCuWfLaFCrWwGPSUl5T_YLAH5kr60Mz1TzqQz7U3flDfpTbvTO-VOutP-9E_5k_60Qz1UDqVD7QN-QD5AH7BHfVQepUftUi-VS-lS-9RP5VP61E71VDmVTrXnn-e5nu9VX5VX6VW71VvlVrrVfvVX-ZV-tWM9Vo6lY-1Zn5Vn6Vm71mvlWrrWvvVb-Za-tXM9V86lc-1d35V36V2713vlXrrX_vVf-Zf-tYM9WA6mg-1hH5aH6WG72IvlYrrYTuAJ5AR0AnuBL5AX0AvsYz-Wj-ljO9mT5WQ62V72ZXmZXrabvVluppvtZ3-Wn-lnO9qj5Wg62m7gDeQGdAN72qflaXrafuAP5Af0A7vaq-Vqutq-9mv5mr62I3gEOQIdwc72bDmbzra3fVveprftbu-Wu-lu-9u_5W_62w73cDmcDrcn-AR5Aj3BHvdxeZwetyt4BbkCXcEu93K5nC63z_1cPqfP7XRPl9PpdHvd1-V1et1u93a5nW633_1dfqff7XiPl-PpeHve5-V5et6u93q5nq637_1evqfv7XzPl_PpfHvf9-V9et_u9365n-63__1f_qf_7YAPmAPqgHvgB-aBeuAu-IK5oC64D_5gPqgP7oRPmBPqhHvhF-aFeuG-4BfkC_QFO4NnkDPQGewNvkHeQG-wG75hbqgb7od_mB_qhzviI-aIOuKe-Il5op6466_nuq7vDt5B7kB3sCu-Yq6oK-6Lv5gv6ov7g3-QP9Af7BAeQg5Bh7BH-Ah5BD3CzviMOaPOuEt4CbkEXcLe-I15o964O75j7qg77o__mD_qj_uEn5BP0CfsFJ5CTkGnsEM-ZA6pQ-4VvkJeQa-wR35kHqlH7hbeQm5Bt7BLvmQuqUvuF_5CfkG_sGN4DDkGHcM--ZP5pD65Uz5lTqlT7pVfmVfqlbvlW-aWuuWe4TPkGfQM--Vf5pf65Y75mDmmjrlnfmaeqWfumq-Za-qa--Zv5pv65s75nDmnzrl3fmfeqXfunu-Ze-qe--d_5p_6567hNeQadA37ht-Qb9A37KAPmoPqoDuH55Bz0DnsoR-ah-qhu-iL5qK66N7hO-Qd9A776I_mo_ro7uE95B50D_uH_5B_0D_sIB5EDkIHsYf4EHkIPcRO-qQ5qU66l35pXqqX7iJeRC5CF7GbvmluqpvuI35EPkIfsZN4EjkJncR--qf5qX66l_gSeQm9xG7iTeQmdBM76qPmqDrqfuJP5Cf0E3vqp-apeuqO4lHkKHQUu-qr5qq66r76q_mqvrqzPmvOqrPuKT5FnkJPse-_57u-763fmrfqrbuKV5Gr0FXsK35FvkJfsbu-a-6qu-6v_5q_6q877MPmsDrsHvuxeaweu8u-bC6ry-4snkXOQmexz_5sPqvP7i2-Rd5Cb7HTPm1Oq9PutV-b1-q1u-3b5ra67X77t_mtfru7eBe5C93F_uJf5C_0FzuMh5HD0GHsMT5GHkOPseM-bo6r4-65n5vn6rm77uvmurruvvu7-a6-u8t4GbkMXcbO-7w5r867935v3qv37r7vm_vqvvvv_-a_-u8-42fkM_QZO_AD58A68E7jaeQ0dBp78AfnwXrwLvzCubAuvA__cD6sD-_ET5wT68R78RfnxXrxbvzGubFuvNf4GnkNvcZu423kNnQb-42_kd_Qb-zHf5wf68c78iPnyDryjuNx5Dh0HHvyJ-fJevKu_Mq5sq68L_9yvqwv7zk-R55Dz7EzP3POrDPvOl5HrkPXse_4HfkOfcfe_M15s968O79z7qw778__nD_rzzv0Q-fQOvQe_dF5tB69S790Lq1L79M_nU_r0zv1U-fUOvUOf3gO1-F79Vfn1Xr1bv3WubVuvV__dX6tX-_xj-dxPb7H4_F43DpOHYeOM8eP48JxGXHbuIr4aTw0XhlnjAvGE8TD4k7xnHjINfN17nXqteZ14rXbNdV1jTW1ta51qbWjdQLrJ-uTauJqE9WN1WrVQXBp-CtcEs4G96HOQV2C-pDairo9LTvtOO01HSIdK_1AOo-mjiYRnRe9A80LDQld9ez8DPp89sx2NnV2cx5pPm12a37vIN1xpoNax6aOKuZh5kXmnRytOdyW4cuUy0fKs8oJkqeTKyTz4EDF4YX8i6x3bH084TjmBocbSTZWbWjVuK1hwHiGcVzxjeI84hzEfsM7hv2EdQjzBScH19EgptEGvAtcYEbsjKlfEr9Bvpq-KL2KvM28CmTgyrDaLd2t0XXMfc59w53FVYqBGeMDht0L2xdKLipv4bdttilsc2od0ArTUrXYnIXPprEgweJE1i52RSwNrOBr7SuPK4MVLlb0qGDQatuaswOmeE3xwlq3irr6VkVDAZq6IzU_MQGVF5XHBF-J1BLs0zASlCOAR_iY7ok4LYWXVpEyhqANkQLi7IOlh18PN6NwHTSIGov6hNJxEAW9AQq0gU4Dh0_jzx1PuE5Ozl_OmE00zQuZt5kjmFuXihlWLaUtlSr1KEUnhydnMJxdgJSUlfSw8BT5V8EDJDHkDIWyCY-PKxzhjkqNdxI-GXkZUSJsQUh8UGJReZFHcc2BpM5C_0QmRL3DDYa-hioNuhg4WIBamKPQh7BtcFKQVpAdGAUY-PfBr9iPps-Mj8IerN61XlOeH97oXfFdjZ2BOkk6Wrr3nJXcoQLUOOe4owR5cB3earztuL21bbL9sskgOLBmqbar9nLAQJqlAV4DMmgIzjbNgs12yujIRseWx5QKFBJgJcAW8wqzAMYLlvNl52XaBe_K4orc8t360QLMSpFVgqV21cFK2mqrqjK_kUNRTZgCnkKSghDVG2U0AAKUL1TSk6MTsVNUEyUTM9PXUugSWwCc0q50k4SIBIyUH3kesY3qimiLkAJQElkTKRiiHVoS4hQSCRIEGgYi8LP6M-SD6UPSc8iTgyfBju7Ol06rjlMOaQ4QjicOzU3lzYpNpM1JDWRNCQ0kDcrMhZkXmUwZnRjRmCOYEzBWL7UvB1xquAC6fLRItuywnLJsrfiu9K24VTRVllJuU-xS2CidKFMnvyeGJzUmrCZwJu2S0ZICJNIknSReI84jnSNhInCRURE1kZEQ1hC_EB-QX5ALIF8g7XeKd4O3kxvafeoWdDe1qdurbcV2VxuFzcv-ZOuxodhvALoAQAEMAuACQPPB_AH7ofkh-EHgI-ij7THssXt0eugeCTyyPIQ8Th76gT_2TV_zHb_w6z7tvV7qkf7nbd7lTz7k2__x__HtD_mTd3mb_3mkl3qvT_u6L3zH13zTj33gh_Y48RDyyPJI4KF7dHrsHsMf7Y-gDwIfgh-aH7AfzABoAHABGAQACkCX_WZDsfXYn2zeNkq7q63YXm1Tu5vcgu5TN_Tb6d3gnQKkDfIFcgHkN8QnxC-EVWRERE1kVAQ-EjbSOeJM4kXSSSJdUqBk1KRtAmfCelJzYnjyizKF0pnCTrFLuVVZUtFcca_0rfiybLGctuy0SLp8uAC61Hg58FILYwVzIuYoRlRGRyZz5mXmAg0KDWRNSQ2kjYlN5M3KTSUODY5nDlAOqY6TTuvO144uTwKeHD2HPiQ-mD9DP6tABICGgwSFRIQ4h5aGaIkUEFkHoCxCKqI1qjtiH3ki5UjASYhKNkq7ALgl9lIo0xcTcxOlU5QT8ZMjVBKU7wAIUUZRvVIQppCmgKkm5FD5japKqy0r6asOWGpZJVkptAC3frZ8uSK7srrgXqZfdmA5YLxhFsS8CLAJsBYoHFMaWyYbLaMz2zELPttEQ2BAxgBvmuUBA2ovartrlggOsMmw_bZtur297bzVgOuQIC_uKM5ZAarc4ZwV3ZuOtk7SzsBdzV0x3mien16T3vUeLB-FPjM_Gr_ivw-AgYFRgmxB2sFJQrZCn8IcC1AZ6A26DFUMfQ83IOolMiXGdRYOJBXXFnkWlR-UgJAYYYsRhZFXwmfjnaOSI_xxxYRHCmWQM5DEFTxE_ll4kvSQlL0AieFscmZymFK0Us9SyVI6w-qlIuZW5kjmreaFTTTOGM7fTk5PuM-dT2MNHDbQgQKB3uAgGkon6iNq3EHDKJyHGw-_HyxBnIVICUFLylhaVQoXcWq6N8JnBDAJytOwEuwSqSb4UHlQZZyYkJqn7kABqoq2-l5FZa1L8ZLidQdszWm1VcFgRc8KF64MXnlea2EFY2liV8jasThhQWI2bRbeYpOWila41oFtjm2K27ZbuIvKF0ovbGHYxfiIgYmrhDub-5b7rOu4W7NbKsNKBi6vAt7mXkVfFF_N36BfEjOmZsQCFwDepdFGgzi4LjhZmE9Yx7Df8A5iP-IcxXnFN4zjjGfUMFDj1oaWjdUbSTc4HMccBwtG-_q42H_HeEgzue602xDAxzCQSdQdw-D2MjE9EMF39fOmPtmPHcCeGDEnrVy2gxfBzFIGjVBgqw5TGCUxKLenFMBmcohIgZloIEBj5Nlkc-NoPb7QlxODEoEsp-SFtgJ9ID48H30CqcUdIxP7bYGA4IGDgG_yD1gKvmPEENpBVOqbz9zS1VhaKRqOiD2Sr1-uL3AFRZ9KdUkLMZI1lHf6KgidmOGJDr6Z-sscmY1VB0o6RTlIol46IkJhCdGKuPCIooFCwTWyEaDKomX1s90I1uEZyKXszbDfLxuoOOHXs1VB5ijktaMeFFPQxCSCD5o253LgLzsiBl-keDF6qOzukWE3BYUDawxBBnRmZQbH7k4iHEhj2XEbTg9MgBXOuXNQISJzqyxACIvFvCUxSi4SskGR-6QwdRk4ecDQ_PX8x8GshEDXp4OqwjxtKSRTrbESRKSK7vgnaenZHMDcqTJhjfLaXaM8ftE-k3KmGZmXrNtX5VDOAsFjTc7Gg6GruBvzwjXX0x7z0nSNcHwL9lOQaadDn5uY8ufWCbHA2uJCOA14W4KVUqiBzB4-rEroSHuu8jjdY7BhhA41SCiYCHBkN1X6gAG6ZVPvWEiXHwVcGmxKNtleyNWqEVaqDhQVcXT28IU1LRszW6mypTJswRNd7KiRMauLKAV8Z0KuccYXDkkwlFuW4MrOcggPaVZPb54vH7C_ZkYDNFjF0DghaZMggex1kYcWtWEOoQi-RtiPl6q3BUNC0fvEoDDnuvakMMAMXkI9ka6O5E8hTVeEvZ1mUjUiLATeIdpQOqhGgUxaMdLWzgUBF59bYyvkRf44ZBF7dmDthJCTfuGNsuzG42QlktQp5geQ2pKkzxSRcYFbaWOG1B45nt45CHxtL68JYuFOOnBPbCkbopltKLGZBcnF8wiOHgJgvKmyW1RzAkAqy2nk5dVYjJAkBx1SmTXcG-Z-qhntKje4mF0rQXtYI4vediiG10XveTiTUxs5qkSEQQBA1qpNLIpOj73LoKyVwAsWAVx1w4wHURrM6O2xJ3MOPTh5goSlMdBN_cEKejo6xh6YfLGzYHXDUOG1Q_VACOSYXWAYOERY1cAi4RSxYbBDjT2-SZIdHtcBK1S8e7ND8qWZifPPM6yw5w2_5KJISbEINDaINai-fNN8JMlR_HnjmfVxpQ26gsmgemHRC4VdBUHCZYZtQdKg5IwDFhRga0j0C8X5V2GvCFIlnC_Wb67an0-OYrGZna7Pag_V8QkM18PzDJJoHLvVS4Ta_TDctHvgnNiJs_uCTMXp6Gis9Yx_KyqykQGIKjCwyY8gGgMeQYTC2dgDj92VLZjxGTp6cxpU2xG5-sygsBiF0nhMSJi49k6x5DGT0UFguoSyGGQEzlrPCaguf5o4WyIAagp8n429ah4WNJzgLRcY9C7UfRDjttYwu6BTObHM4JUV--aDvIrJ9muIq2856CzrgUNLiMvS0fsYZ8R0VVqPvMbyxm4IWQW0sQsFC-JzJmE0WMn6kvXYCCpJ-ofiHY4apFjDgGLqIm2DDFIxbJehE8uQc6yq6pKsjunSHrY6FOd8QIOf4sjizgLFCe8TcBxQT055bKKbPCaUVVCWTXlncDk28DaVmqO6OkKFAYpnKzIC3b4C8LC9GFZ-HvBwRJO7XGX2oJUCYVYGk9vMYZIlhxVBp6O9ooBTcDXFKxtClwLPHmj6WJhFCQCfSsWxbqmgvGGhVdW5KIRdEFOqSD3KXtDyeH4eVTBxCrv0IY2hAcT82hUQOyEqEHMCcJCsi7QpYtabhJwcUG09aDs2bZ4fKokfIKa5WHVt42QFAGPjdJInSDNuK4YNnigBv74aCYlwenBuoHHptihvTOaojJm4As8Rn-_LbNLiuSA1FcjqOcNKsaJor6TTX4bLd3DaYO7AhOY355BRCg2Nui2vtipjZwhuxH0qJOyo8hq8OQ2WkAhR2kDQGPHIRrHMKwBnxLWsS2RjDpN_JkJSjAaiRhroGFMEbClqocFDwg0RRTe8WSMsFEnRrXaMwNDZDSAyVXgHLIGhFkP79IKA7oQn7OgCu4Z4OjLfpFg2CLYR8xsxGAKGrYaMQ3OQhbDHTw22JwJ0CFAjzReIh4GWCZTIjypMBWenWvzy6ajB3AprHQmk6t9HFgOQnjDlnGs1phs4kGxefAhc7o0TGuCSgAXEIhYcRAodxI61Ds9WCZn9memQUuk8mlFVspLwiuoZdpetSjbQoxWqkSCcejg-GrvmRemMO7ErNWDc5j5fEAOy4m5mD38gxG7BH8E99XYE8RV_75RE7zoPGEmGmOBH3dJiriRrWNK16-UQTMGr12o0njLRJtk0qS_QKPC7Rm3NC10jYMnaU5coUR8J15SYxLhiZS4tQ05WuLQELmoOVkeyK2GSgScNLIItY5dxXmsvSxjYilZONCpwkWO1Qiftn3AFEZvIIW78goymL8UW-aiVktHSoqRoKSdxUeEimAA1YOeE5wbiNajEU6Ucaa1ptFEyhnyCCfxJOd27KXpjle5qessMLbzUMFwDhrAcytngE4gA2A2OEBTSZsgI-oEwE4F0ano78rPXxhWk1RmYUTZGQynrwvNWBbhMrMFOketAAFY4AkSQ0MB0I0LGfplhrDXihmugx62SVlODx2iqR71a9XHYyj5T8IwBXfXBeO8JtMGUUAkaC2DVMHS2RvDdCb5G0-61sMUs3YqmxrB6SC1DelIbCS6N-QlsxcLTYcQRAGnHrcIwqWOg6QJIOr4lIfa3udJi3dusSk3j1G-FAO4OcXQK4iqfDssBdsBX3A51LrvyvKUIkyL0PcyTNQpAeDIiBZHMjSCwpeK7BSI5XNwP1IUcqtsuHKqhIHWYLza3OWwvZcZCBPi0dHMy-UHsacBAihoDLh4EED4I0N6glmXdo44lxXq6pCVmRCcXZIHw9E_iW8uUFRzWFCoFCYQoQE2yADgGguYCgJObYHABtTkvBITUPoFg0aSG7cpg2umwbggKwBgETR-4dLAhSK0VnUP6J7VQ5SryailoNRR6RA4BShpcCCA4I1kRfgJhECfxesWcNsXsEnZdi0oYJCew1V0ZdOoBmomholiaK2rKtHk4JBlEqluNnsPr0bzL0U0lGJyRw0KWmDSfXElizDCgcW2AJmpkGhoo_iAB1AVr8xhENQ01A4lH-l9tC0VXrzQkIuE1EdI3SNKYDGwPTssL1kIGVSjHYDNVPb4bMdu8o4XEDsrqB0zP3FVDs1GoneZilHCOU-Ajoha0y4sCdjigMKDxIV0E6RArIdrDEcYbjzMubV6edIgZKmYTgMmNNbagQGizlJh4GX0C5j5gQsbejLmpEB57QMeB0aJF0Sqz0tBygbslImwA_kQ2kMKOzRJRoin2VzV8ROALkYWgjZowQMiRJQl1hmyjKscFGiXbtGJ14DoThOq89xyI5I-xAIwnEQ-cMKpOYUbw1mgaQee3ObMrNAkHy-p2OhIEqYg5ya0DOeRecSVrS41vq98Sm5uiLo6V0R2ZfASE0yrLnnanX66PeAgRn1w3y-lPHX6YJSgsnKEGNqzdhAzYrW6uY9spNLgGcbUKsQBthUy0DDASxg4aRNsJvRmzKgdHoZFq8GVw6AxijO1ihGtc8ip3QYZdIpleG60LOH_clJHCxrPT7ZAT0oQxp8egVEXCuk8s6R4LSFC7yiWOwHApEq_OIJL0pGu6jFajM6E_iDnnJgsp7_JUkCl1fQfIMWbDTotfbCeCH67V8GxciQDJRNXGOm-FKPzR09JtDSlpCf5RSW3POfDYAmlEOwYkRpyagrPRlUZsk9UXF3q2FNLVKKQywiAVAS8LYDJy06JI8NmJhgUahKGUa806WlyMVvyK9CLHgE4jtGVRNeehkkQdiFQKaaGsMEZ4R2Y5iYFxKUNeDY-bYspPWNFYLXUY7W-AA1lPeuWVmcgLdl3Y6wuVTN0bUjGqKMytWVtZzcArsOyamOSCvEP_IbUut-jNuXM5GfKAe4yD19TJ8he0KlD0Z-f4xgykGPNQrBJIyRcUkrEeMZoHl2AKA0QD29Vaxr3xAWrWzD7LayKhYiAhrI9ISBGTJnGEXisXQ5wUtXAutUC5MkQ3CNdGcaQCUwZRW9nnr__u8R65h-6xf_xH_qF_7AAeQA5AB7Czn52zdfbe_nbe1tu7-925W3fv73_nb_29gzxIDqKD7CEfkofoIbvIi-Qiusg-8iP5iD6ykzxJTqKT7CVfkpfoJbvJm-Qmusl-8if5iX6yozxKjqKj7CmfkqfoKbvKq-Qqusq-8iv5ir6yszxLzqKz7C3fkrfoLbvLu-Quusv-8i_5i_6ywzxMDqPD7DEfk8foMbvMy-Qyusw-8zP5jD6z0zxNTqPT7DVfk9foNbvN2-Q2us1-8zf5jX6z4zxOjqPj7Dmfk-foObvO6-Q6us6-8zv5jr6z8zxPzqPz7D3fk_foPbvP--Q-us_-8z_5j_6zAz1QDqQD7UEflAfpQbvQC-VCutA-9EP5kD60Ez1RTqQT7QE-QB5AD7AXfVFepBftRm-UG-lG-9Ef5Uf60Y70SDmSjrQnfVKepCftSq-UK-lKu4AXkAvQBexLvxSeY5s1FsImKD5YXNDGN0uXOycGd4HtBu0FWQ4BE67ZnFmqBlTw05aR8JAXEIGeIR2Qm_ZLWQswi91JDhPQkrWR5feau4ZNAwCDj5YX_gSRCWk18UQJcxmembW5IPQBypxoo3ascrsUOHpROnbuAFU2LbGa44oMLG0tTQrdohkuB45kBsdBNHZ6f3RnxFi0xSBrwopWgmoEgNHnERuQxjcVAEq2ChAJISdImkxQU6BU_mBsb_IdmR7RIAhIWU0qqB61SMJmlLW06eoxNciweEgBq8PXDgw23ng9Y3FRdTv8WppRAFTEQJiKlyEOgtuZmSMBF64DWE1TtVJzTh5IZkPSQWA9WDgeNA9ToiKbEmiSO2KDUvO2fk4PBSAyJaYrHzBlNaU5OzyVRqFKK1FOV22vvA0sTkXfWwOjxuZKEg8vrzaGqePxeDwej8fj8Xg8Ho_H43Ho-KjtA2lAHTnEsw5fBa40B3QqfRGxedhkOLissU_ZJ9is7BVsWTYt-wVbl-3LDmYbs4_Zy-xmtjTbuv3RfrdJ2iltlzZNO6ft0x5qH7WX2gPaeTur7dUu0D5rq7Xf2nLtu3ZfW7DdoK23I7Qf2xbale3M9mc7tA2iPaKN2mZtu7Zn2y7auW3ftnDbRlu53dyebsfdbfeIO8X94q5x77iD3EZuJneU28rN5SbgPnOvuRO469x8bkG3oVvR3eiu4KZ0Z7o1uEfdpW4Tbla3q7uFG4ab1x3stuFWdju74e-Pd8gb5Q3zvnn7vAO8BbwHvK_eXu-x94H325vuzfcefCO-IbwpvDG8M98a3h7eI94o3ires28Y79738Pv4reM9DeIBEgKSAhIDogMiBJIEAgViBfIFUgayBqIAJA9EEOQQJAIIJEglCCeIKIgIkBMgKkBagOCC_IIYgyyDRId8SEiISshMCE9IUUhTSB7SFVIWgiBELoQvpDBEMeQxZDJkM0Q0xDQERchryG0IbwhxiHJItIiHyIhIi8iNSJCIkoiUCJcImQgCEToRP5EGIhFEIkUwRTiIlIqgEIEVeSHiK1JDRIdI9ch7RGWkZiRoRMAI1YjXCNoI3EjeSOHI4kiFkcsRDiOmI6sjLEZyR4RHlEemSdokKSQ1JEEkSyRVJGIkaiRzJIAkiSQTSCxJQElMSVhJWpDIIDEm2UESLyEpiSnxKVEqyUvEStZK6koGSxZLLJRslnwoSS2JLcktIS7RURI3KTGZMQkyaTLRMjEzSWDiZ5JoAmmSaeLBJNVE1mTXpIbJ8wn7ZOVE5wTppOqkwInbCd8J4gnkieYJiJPVE9qT35Pkk2oUEhQaFCKUKJQwFDYUPRREFEgUTpRSlB3lBcowSnMKO6UlxSelKaUrRS0FL-UwBTKlM8U0ZUVKboqNlGmVEZUaFSOVKhUzlTmVQpVHFU2VUpUVKroqxyrwlZMVnZWlFa6VtRW-FcUVypUOK6srL1aMV6ZZSlhyWJZYuljaWP5YIrBgspSyuLLwsiy3AGiBaQnQYtWS1qLXsthi2RKixbWFtyWHS9tlxgXJhculzSXQ5dHF0wXV5dalhov1C8vL0IvVy4EXvxcJL50vqC-3LzZe4jAvMEYwXDBvMIUwFmA6wKiA8YVxjimJ8YmhikmL-Yt5jAGNSREjI2aHDImMj0yVzJqMoEykzKjMq0ywDHzGZQZpBmymbmZxhnMmdUZ3ZgeNCY0QjRZNHE0iTSYNKk0uzY6akxqimq4aupoHNZ81e82MGrhNjE2TDZpNoM0FGxE2Lmxy3JjcBLgBu8m7ebzxcDN7g4wjgiOE84WDh_OI8wGnFmc55yTnKGcs5y8HQ06JnN2caZ0ZnSmdNx1FHVAdWR3knZIdpB2zHcIdzB3WnWEeN48QjxgPIE8ljyqPcI-7Z6inQM9gD2ZPa48NnxIfJZ8DPok-HHxqfZx_Zn6sfux-LPyg_gQDgQAdAaUBOQDqAAQDCB7EExQWRBjUGTQb5CxkI8Ql9CekKSQr1DxkM9Q1FDjUOdRiKJpoh6gAkSFRB6LcAB8BjAKwBXAMgBrAuGilyKqor2izqLao2mjISM3I0SjV6Pgo5sjriMGRhyNfJBIkKSQ-pE4kGEnsJKakuiTMJFulVxKgRKd0qWQr4EMAk4A7AZwCcJdClqaWAJc6LAEzsTB9MTlgQmVabuppYmvC0ETrxHaKcgp0AuFU4-nmKe3JwlMLqDYUFdQCKBJQOQYIDZAb4DngNwom6izKQpSt1IgUlxQEqRVTHlNUU4dTqlNwKiiqBVQnqKbzp3xBnppTV0VVHValsHqrKysIVrJXI1diVxaucrFisNiwPrFqZA1l-WWVyKrWstJq1Lrdctli2wLdUuZa4jrkgu066Urr8uzC4bXkpXvNfrV8vX19-JIGwwKLBJsRJhRGGPYqtiIGJ1Yqdk1AjIAmAeUCUgUoFAAeMxrTx2CQ8ZANkrEooynjK1th9mKGZ7afsZzdnaVAa0HDQ1NhIMZAnwHZNJy0wrQXB4QOLB6YodakZkEteW1rTcPaNYI1BCbYWNj82G7bArQ9tiG7dbl1eAN5s3tjAScENwFOOQGBBKZxLXGFcb8KcgUb5ELk9uRw56DmOunedHt0unVTdaF2J3YL7IbvwO5M4OngUcCbzpPLg6FHpfdhT2avcS-ab45Pt0-rz4QfkF-Gv5G_wz9mwDjA3cCvwBSCAgRHB28GKQlLCB8QVhcGFiovmFtAg8EBBrgNCDRoYbhluOIwP2RFjEJMTXxKPKE_6SccQDlQVZxS3BevFmMffD24hWAGoTfCWwQbjHuMzxIQG92NkY4yjhsejR5TJ2hNiEHhjcIypGGFkQqXkUKRqRa-LMyQ5LvwcWESQxCG1UmyyRuUiJUtlR8ssSxnZBi8RLkcxczCFM481JTRNLF5tunMeaFTqTOGp-Cny-cJDQg0xDdsAO0CXeYwGToglFj0sYOADsCjEjwoeQD-4AiiCYRxiAukVqQ7Sj9FlJm2TU2MuCNhQwLGKWMJqRLOJjygxp2gOaGbGoniS9WtumJVZ51irU6huhu2SrVeq2hd8cCV65XkFQasZayb7I9sDhYnZhdbiNHG0NaoHWHr4LaACxwXzC9UwMAQgw53QO5JrrEuil1JGXe8V701vdG-MX5JZ0wAvqPRFRwkHCKMY7iWuLR40phBjTcbWjeKjl-QHxkHDt1kFcqly5s5KDAf6tjb8dZc5qz1PAAaKRpI-mYahjoFTlL9tmZfe8Q_Hgfx1AsNZKvWGFBCExVMimhBR48O6S1-K91dSERz4Kox4PQjyQBFipkHi2zoEG069JKiI00gKIQwxQIJRqiCDmYxNLUPd7mk1pA3uV3tSkQ5KeeUx1arAONz2jBv4kOzrRElIYkfZCu8TWxyPdcOTQhdgrsRcYIYOnkMRaHH0SrqK7GJrcK32rg1ovFoFuya7ZohE3EXb2olsWrs8QbjnhurbdxIGmqibFmcinhN7ycnUtqGbziZU00A5rAYr3An4c-JiEqZuQW4o8h2NPJidkgmKNgwY2XCFXpbwuc5IqNJmM_myCVrLRTuzIMUnhCu5WAni7TTUdV7R2WHHR1bGaeVATq57JrU2CUl2TM2jskcpg5Ry49YprPMtjaOZYxBcSG8zWZNvIo-vb5DQVQ5IGYlShUHoWBertWQx0O2WJJirYHFgGnQHRfkRkJIJRh27WTHJGCB6zmmYhinA6UiBr1P1tDHS_ZXiqbqRdVo0kcXdGwOEWLRu5xCMgzMMAP2SKRq423Ac_1CQAkFhYZEyXxgfzulCfehtHO3kgNq_K1tZlgTNql415qJI46EAMlB1c4enWOcLwBBwsptd0gtehivRkoGpMRDVTTfXV2tumjrbHBZSdQ4hqbv1PV6OnhsQdT8QnuSk8I4wCqlC1SHHBx2j_yQTwQIjAZ7Pxd-vh5GeEBBCjIZhIwSNW5YW0nrhrEgaCxqxNE7uXZNo8GDaXOjOoZ-25wZ4cmgxQaNYlbPUceNMQQ-2BOxt2jqhr6kETVKApMnwLfPxjalbK6eAjwvsIAy3pUdjDo3OKG6reAgBgsakiyFdnGhjuWSScMBKvP3lY1tWAFXxlvPA7gGxj7pduervgjcPAJsvRmAgFOAT42Ur2QRKZ0pcvT9UrHRoRH6RINaewV9TDPGONBhRCFE3rvZq2fMSop_1GAg19hpCgPa0UnUQFONoRHYSVYYNWRxY1b2Y6JGnqUogDtAtpoNpa8fLToqLDGXkSjstYA2CDKDUEHpFa6Cp0MfJ6AFwsTUIk7cITooAMWZxtEQvZ2x_OploAQtK4GzrThDnCtZ5qNoDk67YBAGvphSiiGhz4leKZOOskEBaEW0WAAEAXa1LSKbdX3jOVkrAuju9MNO1gu63HCKZLQRBQfkpnQFl-vPBNzo_mQcfB13akoFoC8umN5GjAbefK_3SgPUrBQ3B-IIG4H26oE2_SKxVMh3NVeV-_hcMrwh62Usy3a5NNdY9XU3wkk0oy9zCwIa2u0TORSgauGSJqg69AVqCcGrAMKK7m5B5RcbBwovn2AACrjcJOUB593uUYcAATxkqngWIT70bFv4R2ZD7IW6YYNpIt2s4CRsEBxjcxPgH2NZFdg7r9nsycUgDBSkRn9CKtB04m44mLAUAxHk4PWFLaZa5CqYGCQnjtXnD0goYsoBRqjiegyjKAEUKKUERomdoMosLBYD0AISETJJOhJAUSmMxigCh4AhaDDGCIxACb9jhEZAqXodwT3-ZcoJDkXFX1wNed4_ORGvJbDxvFSYQWwWFdJ7tfsvARv8mzhO7F_-ATmffjimAuo9SS-0mgWl07GWQL6WG5MlWIKmLBV68nDCCwdm5Z-_JwyEnyd_UPPP8A_xz4Jfh4gfTG90rFjAMNA2bzlIX7wJ_aXHLGIGAhFhflLVxOxU_Fhw2Es4QihQPaY413nt4iQouh36wqL4M5upe6HAev0
Ooh, I like this one. Thanks!
I'm having too much fun with this.
But there's not enough space in the comments :p
http://0x0.st/XOp-.txt