├── CHANGELOG.md ├── LICENSE ├── README.md ├── pyinstaller.cmd ├── static ├── css │ ├── bootstrap.min.css │ ├── bootstrap.min.css.map │ ├── iframe.css │ ├── loader.css │ ├── onionform.css │ ├── owl.carousel.min.css │ ├── style.css │ └── timer.css ├── fonts │ └── icomoon │ │ ├── Read Me.txt │ │ ├── demo-files │ │ ├── demo.css │ │ └── demo.js │ │ ├── demo.html │ │ ├── fonts │ │ ├── icomoon.eot │ │ ├── icomoon.svg │ │ ├── icomoon.ttf │ │ └── icomoon.woff │ │ ├── selection.json │ │ └── style.css ├── img │ ├── loading.gif │ ├── logo_xmrswap_128.png │ └── qrcodes │ │ ├── .exists │ │ ├── 0346c21417e63352a135d2d2968fe481303122cafb35d0e63e921176927464e4.png │ │ ├── 162ec52031786189d4de231ddd67a0ea7a195cf7d97f03d1e5464f2034d8057d.png │ │ ├── 2156ae3ab5236d6e20154c339ebfc5404c65647ba67fb489961462e8d1c5df07.png │ │ ├── 2fc39381fb5b431cf6f2b5f5439c14a5208625bbc33b39a40d9b650e379340aa.png │ │ ├── 3b59b8217333ec875075c91aa08a7d9077103b4196ddaacb2f0cb8d93b675057.png │ │ ├── 81ea87119e74ddbdb7e0a141284eea7583ab106208bb3c13794bbd215e1997fc.png │ │ ├── 836db89f3b7f98d314b01101782ff23d6a2f8ec1eb04a77d8430bd0bfb2e1106.png │ │ ├── b04df9cfe6a56cfa9505c58a34d2d92da79f01052c55c6f3c51a2cd74cd9e685.png │ │ ├── b3e02e46cf323575ad51b74bf82df063285de5d42cb7fdaf1695fc7000b3b28b.png │ │ ├── ccdfb3e058ac259a458a0d300e8eecf36e2c340bd866c06af0b725ea8c69d174.png │ │ ├── df32295433168e74dc5d6c35a259aaa04f9b2a27a3cc46747fc9d268775a8bfb.png │ │ └── f6dde7c941e7377f055d49f78b7231a65bc0f6a3e67d38d490c4dd7a076aff34.png └── js │ ├── jquery-1.11.2.js │ └── jquery-1.11.2.min.map ├── swapfe.ico ├── swapfe.py └── templates ├── dashboard.html ├── listsellerform.html ├── resumeswap.html ├── standard.html ├── swapform.html ├── table.html ├── timer.html └── withdrawform.html /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # CHANGELOG 2 | 3 | ## 0.0.3 - 2021-11-01 4 | ADDED: Resume capabilities for cancelled/exited swaps in menu 5 | ADDED: Auto-resume of timedout/exited swap (EXPERIMENTAL) 6 | CHANGED: Strucutre of swap interpretation 7 | CHANGED: Better code readability/commenting 8 | CHANGED: Removed counting steps and instead now relies fully on json interpretation 9 | FIX: Interface issues with swap_0.9.0 10 | FIX: Compliance with swap_0.9.0 11 | FIX: Added checks for **qrencode** on linux based systems for QR codes 12 | TODO: Make **swapfe** modular 13 | TODO: Add other capabilities to **swapfe**, such as cancel, refund, etc. 14 | 15 | 16 | ## 0.0.2 - 2021-10-04 17 | ADDED: Windows 10 (x86) standalone binary. First binary release. 18 | ADDED: Linux (x86) standalone binary. First binary release 19 | ADDED: Multithreading with the **threading** module for actively handling flask startup 20 | ADDED: URL requests for downloading current swap CLI with the **requests** module 21 | ADDED: BeautifulSoup for parsing github for new swap CLI release with the **bs4** module 22 | ADDED: PyQt5 support for showing a loading screen while determining version information 23 | ADDED: Downloading Windows **qrcode.exe** for support with QR codes in swaps. 24 | CHANGED: Resource path for templates and other files needed for binary release 25 | CHANGED: Local directory in user's home directory for saving swap CLI database and command. ($HOME/AtomicSwaps/swap) 26 | FIXED: Headers in HTML/CSS files to be uniform across interfaace 27 | FIXED: No QR Code executable checks causing undisplayed QR code in swap interface 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "[]" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright [yyyy] [name of copyright owner] 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # swapfe 2 | Atomic Swap web interface front end with realtime reporting for *Bitcoin* to *Monero* atomic swaps. 3 | 4 | # NEW RELEASE 5 | Version 0.1.0 is now available. Windows and Linux binaries are available on the release page. 6 | 7 | ## Mobile swap 8 | From your web browser on your phone or tablet, after starting **swapfe**, navigate to your computers LAN address port 3333 followed by /swapform 9 | i.e, 10 | 11 | ```shell 12 | http://192.168.1.201:3333/swapform 13 | ```` 14 | 15 | ## Atomic Swap CLI 16 | Developed by the Comit-Network, their command line interface (SWAP CLI) allows atomic swaps between the Bitcoin and Monero blockchain. You can download the Atomic Swap CLI to get started at the links below. 17 | 18 | Latest Release Version (0.8.3): 19 | [Linux Swap CLI](https://github.com/comit-network/xmr-btc-swap/releases/download/0.8.3/swap_0.8.3_Linux_x86_64.tar) 20 | [Windows Swap CLI](https://github.com/comit-network/xmr-btc-swap/releases/download/0.8.3/swap_0.8.3_Windows_x86_64.zip) 21 | [OS X Swap CLI](https://github.com/comit-network/xmr-btc-swap/releases/download/0.8.3/swap_0.8.3_Darwin_x86_64.tar) 22 | 23 | We suggest exploring the various command line options that you may need to use aside from **swapfe**. We would appreciate it if you could provide us with feedback when **swapfe** is not providing details for various commands - as some have not been tested. This will enable us to build a complete GUI for the surrounding swap cli. 24 | 25 | ## Swapfe Web Interface 26 | **swapfe** is a GUI web interface to the comit-network swap command. It processes the json output of the swap CLI and interprets it producing a user interface within your web browser. It does this by starting its own "webserver" (flask), automatically opens your web-browser to the specified address, and allows you to interact with the swap CLI. 27 | 28 | Currently, the first screen is the swap form. This is a UI for conducting a swap. It uses a known database of Market Makers (Atomic Swap Providers) from our [xmrswap.me](https://xmrswap.me) server. This database is checked against current swap providers and determines if they are online or not. You can use the **swapfe** web interface to choose an Atomic Swap Provider, or if you know another one that is not in the database, feel free to use that one as well. 29 | 30 | ### Conducting a swap 31 | 32 | **swapfe** will spin up a web-server and automatically open the web-browser to the swapform page as seen below. 33 | 34 | ![swapform](https://i.imgur.com/Rhsjgxn.png) 35 | 36 | From here you can choose a Seller Address from the table on the page, or enter your own seller address into **1**. Next enter an unused *Bitcoin* change address into **2**. Finally, input the *Monero* address you wish to receive the funds to in **3**. Press submit, **ONLY ONCE**, as it will begin running the command and will display the output of swap CLI on the page it redirects you to. 37 | 38 | The redirected page is continuously updated with the results of the swap in realtime. Please leave this page open until the swap finishes successfully or with an error. If a swap is currently live, do not close or go to a different page, as you will not be able to see the progress of the live swap. 39 | 40 | **Note**: All progress of the swap can also be seen in JSON format within the terminal where you ran **swapfe**. This is used for debugging purposes and will be needed for other use cases when they arise. 41 | 42 | **Note 2**: NO DATA IS SENT TO OUR SERVERS. This is a local only web-server that is only accessible by you. We do pull in the Seller Database from our server, but nothing is sent to our servers. NO LOGGING OF ANY KIND OTHER THAN WHAT YOU SEE IN YOUR LOCAL BROWSER AND IN THE CONSOLE. 43 | 44 | ### Successful Swap 45 | Here are the results of the Live Swap page on a fully completed swap. Click on the image to see it in full scale. 46 | 47 | 48 | 49 | As you can see, it provides a nice format with which to see the realtime progress of the active swap. Once your swap completes, you may navigate away from the page. 50 | 51 | ### Failed or Incomplete Swap 52 | The most common occurrence when a swap fails is the ability to withdraw your funds from the local *Bitcoin* wallet that SWAP CLI uses. We provide an interface to allow the withdraw of your transferred BTC back to your private wallet. 53 | 54 | One aspect of a failed swap is that generally, you can conduct a new swap using the existing *Bitcoin* funds with a new provider. Our interface handles this option as well. But, if you are just fed up and want your *Bitcoin* in a safe place and would rather not conduct a new swap you can use this form to do that. The following screenshot shows the Withdraw interface. 55 | 56 | ![Withdraw](https://i.imgur.com/6kRc9za.png) 57 | 58 | Click submit **ONLY ONCE** and it will redirect you to a new page telling you the status of your withdraw. 59 | 60 | ### Swap History 61 | Another feature of **swapfe** is the ability to view the output of the history database from the Swap CLI database. A screenshot of the history can be seen below. 62 | 63 | ![Swap History](https://i.imgur.com/D91VzhO.png) 64 | 65 | The swap cli database is very primitive as of now and just displays the SWAP ID and the state the swap finished in. As you can see, we conducted three successful swaps. 66 | 67 | ### Find Providers 68 | We have interpreted the output of the swap command when listing sellers for an arbritary rendezvous point. It pulls in the price, min, max qty and the seller address to a formatted table and displays it within the web browser. The seller form and results can be seen in the following screenshots: 69 | 70 | ![Seller Form](https://i.imgur.com/zCy4th5.png) 71 | 72 | ![Rendezvous Results](https://i.imgur.com/Tfom7MR.png) 73 | 74 | 75 | #### Testing 76 | 77 | We have successfully tested this on various error responses and completed swaps. It **MUST** be pointed out that not all use cases have arisen in our testing. This is why we need more people to test this interface so we can properly interpret the JSON results so they may be provided within the interface and appropriate responses can be implemented. 78 | 79 | What you can do if the interface fails to provide you with a status that is acceptable is to provide us with the JSON output in the console you ran **swapfe** from. This will allow us to code an interpreter to the JSON output and be able to handle it within the UI. 80 | 81 | ## Installing and Running 82 | We now have Windows (x86) and Linux (x86) standalone binaries. 83 | 84 | ### Windows 85 | The Windows (x86) binary was created using PyInstaller and contains all the necessary dependencies we have built in from the source. Simply download the binary release here and run it: 86 | 87 | [https://github.com/xmrswapme/swapfe/releases/tag/v0.0.3](https://github.com/xmrswapme/swapfe/releases/tag/v0.0.3) 88 | 89 | 90 | ### Linux 91 | - Dependencies: qrencode 92 | 93 | [https://github.com/xmrswapme/swapfe/releases/tag/v0.0.3](https://github.com/xmrswapme/swapfe/releases/tag/v0.0.3) 94 | 95 | 96 | #### Debian 97 | There is a .deb package for Debian distributions. 98 | 99 | Run 100 | 101 | `sudo apt install ./swapfe_0.0.3_amd64.deb` 102 | 103 | **swapfe** will be installed in */usr/local/bin* and the .deb wil isntall the **qrencode** dependency as well. 104 | 105 | ### Note 106 | Because we have not signed **swapfe.exe** your Windows system may ask for permission and authorization to run the program. It may also requests permissions to run the swap CLI as well as that package is not signed either. Please allow these permissions to continue with the swap. 107 | 108 | Also, we have created a folder in your system's user's home directory called *AtomicSwaps/swap*. This is where you will find the downloaded swap CLI from Comit-Network. Also, in this directory is where your swap CLI database files are. These contain your local *Bitcoin* and *Monero* wallets. 109 | 110 | If you need to use the swap CLI for any reason outside of **swapfe**, please add the following option at the beginning of the command: 111 | 112 | `--data-base-dir HOMEDIR/AtomicSwaps/swap` 113 | 114 | or 115 | 116 | `--data-base-dir HOMEDIR\AtomicSwaps\swap` 117 | 118 | Where **HOMEDIR** is your user's home directory for the system you are on. 119 | 120 | ## Installing From Source 121 | Simply clone this git repo using your favorite method. Using the git CLI you can simply do the following: 122 | 123 | `git clone https://github.com/xmrswapme/swapfe` 124 | 125 | ### Dependencies 126 | * Python 3 or higher 127 | * Flask 128 | * psutil 129 | * qrencode (linux) or qrcode.exe (windows) 130 | * PyQt5 131 | * BeautifuSoup 132 | * requests 133 | * xmr-btc-swap SWAP CLI 134 | 135 | **swapfe** requires two extra dependencies to be able to run correclty. Issue the following comands in your console to install these requried packages. 136 | 137 | `pip install Flask` 138 | 139 | `pip install psutil` 140 | 141 | `pip install pyqt5` 142 | 143 | `pip install bs4` 144 | 145 | `pip install requests` 146 | 147 | `sudo apt install qrencode` 148 | 149 | 150 | You must download the Swap CLI from Comit-network and install it in the directory where **swapfe** resides. For \*NIX users you can download that by issuing the following command in your console: 151 | 152 | `wget -q -O- https://github.com/comit-network/xmr-btc-swap/releases/download/0.8.3/swap_0.8.3_Linux_x86_64.tar | tar x` 153 | 154 | ### Running 155 | Once you've installed the required dependencies you can then run **swapfe**. Simply run the following in your console window: 156 | 157 | `$ python swapfe.py` 158 | or 159 | `$ ./swapfe.py` 160 | 161 | It will spin up a web-server and open your default webbrowser to the location that provides the swap interface. 162 | 163 | By default, the **swapfe** interface uses a tor-socks5 port of 9050. If you have the tor socks running on a different port, we currently don't have support for that. If you know how to read Python you can change that in the code. 164 | 165 | If you are not running a tor instance on your machine **swapfe** will use the clearnet. This is by design of the Comit-network which defaults to tor and falls back to the clearnet if tor is not available. 166 | 167 | ## Use Case Scenarios 168 | What is nice about the way we designed a UI to the swap CLI is that it is able to run as a standalone web-server. This is particularly useful for any third-parties that want to be a custodian for Atomic Swaps. 169 | 170 | Of course, it must be said that being a third party that wishes to conduct atomic swaps on users behalf goes against the whole ideology of an atomic swap not needing a trusted third party. Nevertheless, exposure to Monero/Bitcoin atomic swaps is necessary and if people are willing to forgo the primary reason behind them and enlist trust in a third party using our (or anyone else's) software; then so be it. So long as the network of atomic swap providers and users increases, we fully support the use of the software. 171 | 172 | ### Apache & Nginx 173 | Because this is a Flask app one can ultimately use it with **wsgi** and the apache/nginx **wsgi** module. A little work needs to be done first. For one, if you are going to be a third party providing atomic swaps, then you need to edit the code to issue a unique `--data-base-dir ` with every instance. You will need to build in an interface to handle an internal swapID, separate from the one the SWAP CLI provides, for each user's case - so that you may conduct withdraws/refunds and the like from the appropriate wallet. Finally, you will need to create a **wsgi** startup file with the necessary SSL requirements and options. 174 | 175 | We plan on providing this use case in future releases as we see the benefit of expanding the network. However, at this time, you will need to edit the code to make this work on you or your party's behalf. 176 | 177 | ### Other uses 178 | Because this is a local and standalone web-server, a user can run this on a machine on their local network and connect to it from their phone or their tablet and run a swap through there. Hell. You can run a swap while you do the dishes or laundry. It's a use case, although we suggest using your computer. 179 | 180 | # Donation 181 | We are reaching out to the Monero community for support. Testing **swapfe** and the various functions requires holding a decent amount of XMR. Donations will help us facilitate more functions, design implementations and features in future releases. If you are willing to donate, your donation, not matter how large or small, will go a long way to the maturity of this software. 182 | 183 | XMR Address: 184 | 185 | `82YwMfwYghJ9ZQwuN1NujXZYqFv9UHQkHBobLCp4FdsGa72BS92eM2KfpmzQwZkXr68wmAUuMiXqsXuqScbqE7cTQFZjHth` 186 | 187 | Thank you. 188 | -------------------------------------------------------------------------------- /pyinstaller.cmd: -------------------------------------------------------------------------------- 1 | 2 | # Linux/OS X 3 | pyinstaller --onefile --add-data templates/:templates --add-data static/:static swapfe.py 4 | 5 | # Windows 6 | pyinstaller --icon swapfe.ico --onefile --add-data "templates;templates" --add-data "static;static" swapfe.py 7 | 8 | 9 | -------------------------------------------------------------------------------- /static/css/bootstrap.min.css.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["../scss/bootstrap/bootstrap.scss","../scss/bootstrap/_root.scss","../scss/bootstrap/_reboot.scss","../scss/bootstrap/_variables.scss","../scss/bootstrap/vendor/_rfs.scss","../scss/bootstrap/bootstrap.css","../scss/bootstrap/mixins/_hover.scss","../scss/bootstrap/_type.scss","../scss/bootstrap/mixins/_lists.scss","../scss/bootstrap/_images.scss","../scss/bootstrap/mixins/_image.scss","../scss/bootstrap/mixins/_border-radius.scss","../scss/bootstrap/_code.scss","../scss/bootstrap/_grid.scss","../scss/bootstrap/mixins/_grid.scss","../scss/bootstrap/mixins/_breakpoints.scss","../scss/bootstrap/mixins/_grid-framework.scss","../scss/bootstrap/_tables.scss","../scss/bootstrap/mixins/_table-row.scss","../scss/bootstrap/_functions.scss","../scss/bootstrap/_forms.scss","../scss/bootstrap/mixins/_transition.scss","../scss/bootstrap/mixins/_forms.scss","../scss/bootstrap/mixins/_gradients.scss","../scss/bootstrap/_buttons.scss","../scss/bootstrap/mixins/_buttons.scss","../scss/bootstrap/_transitions.scss","../scss/bootstrap/_dropdown.scss","../scss/bootstrap/mixins/_caret.scss","../scss/bootstrap/mixins/_nav-divider.scss","../scss/bootstrap/_button-group.scss","../scss/bootstrap/_input-group.scss","../scss/bootstrap/_custom-forms.scss","../scss/bootstrap/_nav.scss","../scss/bootstrap/_navbar.scss","../scss/bootstrap/_card.scss","../scss/bootstrap/_breadcrumb.scss","../scss/bootstrap/_pagination.scss","../scss/bootstrap/mixins/_pagination.scss","../scss/bootstrap/_badge.scss","../scss/bootstrap/mixins/_badge.scss","../scss/bootstrap/_jumbotron.scss","../scss/bootstrap/_alert.scss","../scss/bootstrap/mixins/_alert.scss","../scss/bootstrap/_progress.scss","../scss/bootstrap/_media.scss","../scss/bootstrap/_list-group.scss","../scss/bootstrap/mixins/_list-group.scss","../scss/bootstrap/_close.scss","../scss/bootstrap/_toasts.scss","../scss/bootstrap/_modal.scss","../scss/bootstrap/_tooltip.scss","../scss/bootstrap/mixins/_reset-text.scss","../scss/bootstrap/_popover.scss","../scss/bootstrap/_carousel.scss","../scss/bootstrap/mixins/_clearfix.scss","../scss/bootstrap/_spinners.scss","../scss/bootstrap/utilities/_align.scss","../scss/bootstrap/mixins/_background-variant.scss","../scss/bootstrap/utilities/_background.scss","../scss/bootstrap/utilities/_borders.scss","../scss/bootstrap/utilities/_display.scss","../scss/bootstrap/utilities/_embed.scss","../scss/bootstrap/utilities/_flex.scss","../scss/bootstrap/utilities/_float.scss","../scss/bootstrap/utilities/_overflow.scss","../scss/bootstrap/utilities/_position.scss","../scss/bootstrap/utilities/_screenreaders.scss","../scss/bootstrap/mixins/_screen-reader.scss","../scss/bootstrap/utilities/_shadows.scss","../scss/bootstrap/utilities/_sizing.scss","../scss/bootstrap/utilities/_stretched-link.scss","../scss/bootstrap/utilities/_spacing.scss","../scss/bootstrap/utilities/_text.scss","../scss/bootstrap/mixins/_text-truncate.scss","../scss/bootstrap/mixins/_text-emphasis.scss","../scss/bootstrap/mixins/_text-hide.scss","../scss/bootstrap/utilities/_visibility.scss","../scss/bootstrap/_print.scss"],"names":[],"mappings":"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IACnB,yBAAuB;IAAvB,sBAAuB;IAAvB,wBAAuB;GACxB;EAnEL;IAqEM,iBAAgB;GACjB;Cf8zDJ;;AmB/nED;EACE,sBAAqB;EAErB,iBrBkR+B;EqBjR/B,erBMgB;EqBLhB,mBAAkB;EAClB,uBAAsB;EACtB,0BAAiB;EAAjB,uBAAiB;EAAjB,sBAAiB;EAAjB,kBAAiB;EACjB,8BAA6B;EAC7B,8BAA2C;ECsF3C,0BtB0RkC;EChQ9B,gBAtCY;EqBchB,iBtByL+B;EQ3R7B,uBRqOgC;EkBpO9B,sJlBqb6I;EkBrb7I,8IlBqb6I;EkBrb7I,yIlBqb6I;EkBrb7I,sIlBqb6I;EkBrb7I,4KlBqb6I;CqB9YlJ;;AHlCG;EGLJ;IHMM,yBAAgB;IAAhB,oBAAgB;IAAhB,iBAAgB;GGiCrB;CnB8mEA;;AC/oEC;EkBQE,erBJc;EqBKd,sBAAqB;ClBTD;;AkBNxB;EAoBI,WAAU;EACV,yDrBSa;EqBTb,iDrBSa;CqBRd;;AAtBH;EA2BI,crB8Y6B;CqB5Y9B;;AAaH;;EAEE,qBAAoB;CACrB;;AAQC;ECrDA,YtBCa;EoBDX,0BpB8Ba;EsB5Bf,sBtB4Be;CqByBd;;AlBjDD;EmBAE,YtBLW;EoBDX,0BEDoF;EASpF,sBATyH;CnBOrG;;AmBKtB;EAMI,yDAAiF;EAAjF,iDAAiF;CAEpF;;AAGD;EAEE,YtBvBW;EsBwBX,0BtBKa;EsBJb,sBtBIa;CsBCd;;AAED;;EAGE,YtBnCW;EsBoCX,0BAtCuK;EA0CvK,sBA1C+M;CAoDhN;;AARC;;EAKI,yDAAiF;EAAjF,iDAAiF;CAEpF;;ADGH;ECrDA,YtBCa;EoBDX,0BpBOc;EsBLhB,sBtBKgB;CqBgDf;;AlBjDD;EmBAE,YtBLW;EoBDX,0BEDoF;EASpF,sBATyH;CnBOrG;;AmBKtB;EAMI,0DAAiF;EAAjF,kDAAiF;CAEpF;;AAGD;EAEE,YtBvBW;EsBwBX,0BtBlBc;EsBmBd,sBtBnBc;CsBwBf;;AAED;;EAGE,YtBnCW;EsBoCX,0BAtCuK;EA0CvK,sBA1C+M;CAoDhN;;AARC;;EAKI,0DAAiF;EAAjF,kDAAiF;CAEpF;;ADGH;ECrDA,YtBCa;EoBDX,0BpBqCa;EsBnCf,sBtBmCe;CqBkBd;;AlBjDD;EmBAE,YtBLW;EoBDX,0BEDoF;EASpF,sBATyH;CnBOrG;;AmBKtB;EAMI,wDAAiF;EAAjF,gDAAiF;CAEpF;;AAGD;EAEE,YtBvBW;EsBwBX,0BtBYa;EsBXb,sBtBWa;CsBNd;;AAED;;EAGE,YtBnCW;EsBoCX,0BAtCuK;EA0CvK,sBA1C+M;CAoDhN;;AARC;;EAKI,wDAAiF;EAAjF,gDAAiF;CAEpF;;ADGH;ECrDA,YtBCa;EoBDX,0BpBuCa;EsBrCf,sBtBqCe;CqBgBd;;AlBjDD;EmBAE,YtBLW;EoBDX,0BEDoF;EASpF,sBATyH;CnBOrG;;AmBKtB;EAMI,yDAAiF;EAAjF,iDAAiF;CAEpF;;AAGD;EAEE,YtBvBW;EsBwBX,0BtBca;EsBbb,sBtBaa;CsBRd;;AAED;;EAGE,YtBnCW;EsBoCX,0BAtCuK;EA0CvK,sBA1C+M;CAoDhN;;AARC;;EAKI,yDAAiF;EAAjF,iDAAiF;CAEpF;;ADGH;ECrDA,etBUgB;EoBVd,0BpBoCa;EsBlCf,sBtBkCe;CqBmBd;;AlBjDD;EmBAE,etBIc;EoBVd,0BEDoF;EASpF,sBATyH;CnBOrG;;AmBKtB;EAMI,yDAAiF;EAAjF,iDAAiF;CAEpF;;AAGD;EAEE,etBdc;EsBed,0BtBWa;EsBVb,sBtBUa;CsBLd;;AAED;;EAGE,etB1Bc;EsB2Bd,0BAtCuK;EA0CvK,sBA1C+M;CAoDhN;;AARC;;EAKI,yDAAiF;EAAjF,iDAAiF;CAEpF;;ADGH;ECrDA,YtBCa;EoBDX,0BpBkCa;EsBhCf,sBtBgCe;CqBqBd;;AlBjDD;EmBAE,YtBLW;EoBDX,0BEDoF;EASpF,sBATyH;CnBOrG;;AmBKtB;EAMI,wDAAiF;EAAjF,gDAAiF;CAEpF;;AAGD;EAEE,YtBvBW;EsBwBX,0BtBSa;EsBRb,sBtBQa;CsBHd;;AAED;;EAGE,YtBnCW;EsBoCX,0BAtCuK;EA0CvK,sBA1C+M;CAoDhN;;AARC;;EAKI,wDAAiF;EAAjF,gDAAiF;CAEpF;;ADGH;ECrDA,etBUgB;EoBVd,0BpBEc;EsBAhB,sBtBAgB;CqBqDf;;AlBjDD;EmBAE,etBIc;EoBVd,0BEDoF;EASpF,sBATyH;CnBOrG;;AmBKtB;EAMI,0DAAiF;EAAjF,kDAAiF;CAEpF;;AAGD;EAEE,etBdc;EsBed,0BtBvBc;EsBwBd,sBtBxBc;CsB6Bf;;AAED;;EAGE,etB1Bc;EsB2Bd,0BAtCuK;EA0CvK,sBA1C+M;CAoDhN;;AARC;;EAKI,0DAAiF;EAAjF,kDAAiF;CAEpF;;ADGH;ECrDA,YtBCa;EoBDX,0BpBSc;EsBPhB,sBtBOgB;CqB8Cf;;AlBjDD;EmBAE,YtBLW;EoBDX,0BEDoF;EASpF,sBATyH;CnBOrG;;AmBKtB;EAMI,uDAAiF;EAAjF,+CAAiF;CAEpF;;AAGD;EAEE,YtBvBW;EsBwBX,0BtBhBc;EsBiBd,sBtBjBc;CsBsBf;;AAED;;EAGE,YtBnCW;EsBoCX,0BAtCuK;EA0CvK,sBA1C+M;CAoDhN;;AARC;;EAKI,uDAAiF;EAAjF,+CAAiF;CAEpF;;ADSH;ECJA,etBzBe;EsB0Bf,sBtB1Be;CqB+Bd;;AlBvDD;EmBqDE,YtB1DW;EsB2DX,0BtB9Ba;EsB+Bb,sBtB/Ba;CGxBO;;AmB0DtB;EAEE,wDtBpCa;EsBoCb,gDtBpCa;CsBqCd;;AAED;EAEE,etBzCa;EsB0Cb,8BAA6B;CAC9B;;AAED;;EAGE,YtB7EW;EsB8EX,0BtBjDa;EsBkDb,sBtBlDa;CsB4Dd;;AARC;;EAKI,wDtBzDS;EsByDT,gDtBzDS;CsB2DZ;;AD9BH;ECJA,etBhDgB;EsBiDhB,sBtBjDgB;CqBsDf;;AlBvDD;EmBqDE,YtB1DW;EsB2DX,0BtBrDc;EsBsDd,sBtBtDc;CGDM;;AmB0DtB;EAEE,0DtB3Dc;EsB2Dd,kDtB3Dc;CsB4Df;;AAED;EAEE,etBhEc;EsBiEd,8BAA6B;CAC9B;;AAED;;EAGE,YtB7EW;EsB8EX,0BtBxEc;EsByEd,sBtBzEc;CsBmFf;;AARC;;EAKI,0DtBhFU;EsBgFV,kDtBhFU;CsBkFb;;AD9BH;ECJA,etBlBe;EsBmBf,sBtBnBe;CqBwBd;;AlBvDD;EmBqDE,YtB1DW;EsB2DX,0BtBvBa;EsBwBb,sBtBxBa;CG/BO;;AmB0DtB;EAEE,wDtB7Ba;EsB6Bb,gDtB7Ba;CsB8Bd;;AAED;EAEE,etBlCa;EsBmCb,8BAA6B;CAC9B;;AAED;;EAGE,YtB7EW;EsB8EX,0BtB1Ca;EsB2Cb,sBtB3Ca;CsBqDd;;AARC;;EAKI,wDtBlDS;EsBkDT,gDtBlDS;CsBoDZ;;AD9BH;ECJA,etBhBe;EsBiBf,sBtBjBe;CqBsBd;;AlBvDD;EmBqDE,YtB1DW;EsB2DX,0BtBrBa;EsBsBb,sBtBtBa;CGjCO;;AmB0DtB;EAEE,yDtB3Ba;EsB2Bb,iDtB3Ba;CsB4Bd;;AAED;EAEE,etBhCa;EsBiCb,8BAA6B;CAC9B;;AAED;;EAGE,YtB7EW;EsB8EX,0BtBxCa;EsByCb,sBtBzCa;CsBmDd;;AARC;;EAKI,yDtBhDS;EsBgDT,iDtBhDS;CsBkDZ;;AD9BH;ECJA,etBnBe;EsBoBf,sBtBpBe;CqByBd;;AlBvDD;EmBqDE,etBjDc;EsBkDd,0BtBxBa;EsByBb,sBtBzBa;CG9BO;;AmB0DtB;EAEE,wDtB9Ba;EsB8Bb,gDtB9Ba;CsB+Bd;;AAED;EAEE,etBnCa;EsBoCb,8BAA6B;CAC9B;;AAED;;EAGE,etBpEc;EsBqEd,0BtB3Ca;EsB4Cb,sBtB5Ca;CsBsDd;;AARC;;EAKI,wDtBnDS;EsBmDT,gDtBnDS;CsBqDZ;;AD9BH;ECJA,etBrBe;EsBsBf,sBtBtBe;CqB2Bd;;AlBvDD;EmBqDE,YtB1DW;EsB2DX,0BtB1Ba;EsB2Bb,sBtB3Ba;CG5BO;;AmB0DtB;EAEE,wDtBhCa;EsBgCb,gDtBhCa;CsBiCd;;AAED;EAEE,etBrCa;EsBsCb,8BAA6B;CAC9B;;AAED;;EAGE,YtB7EW;EsB8EX,0BtB7Ca;EsB8Cb,sBtB9Ca;CsBwDd;;AARC;;EAKI,wDtBrDS;EsBqDT,gDtBrDS;CsBuDZ;;AD9BH;ECJA,etBrDgB;EsBsDhB,sBtBtDgB;CqB2Df;;AlBvDD;EmBqDE,etBjDc;EsBkDd,0BtB1Dc;EsB2Dd,sBtB3Dc;CGIM;;AmB0DtB;EAEE,0DtBhEc;EsBgEd,kDtBhEc;CsBiEf;;AAED;EAEE,etBrEc;EsBsEd,8BAA6B;CAC9B;;AAED;;EAGE,etBpEc;EsBqEd,0BtB7Ec;EsB8Ed,sBtB9Ec;CsBwFf;;AARC;;EAKI,0DtBrFU;EsBqFV,kDtBrFU;CsBuFb;;AD9BH;ECJA,etB9CgB;EsB+ChB,sBtB/CgB;CqBoDf;;AlBvDD;EmBqDE,YtB1DW;EsB2DX,0BtBnDc;EsBoDd,sBtBpDc;CGHM;;AmB0DtB;EAEE,uDtBzDc;EsByDd,+CtBzDc;CsB0Df;;AAED;EAEE,etB9Dc;EsB+Dd,8BAA6B;CAC9B;;AAED;;EAGE,YtB7EW;EsB8EX,0BtBtEc;EsBuEd,sBtBvEc;CsBiFf;;AARC;;EAKI,uDtB9EU;EsB8EV,+CtB9EU;CsBgFb;;ADnBL;EACE,iBrB8M+B;EqB7M/B,erB1Ce;EqB2Cf,sBrB6F4C;CqBzE7C;;AlBvFC;EkBsEE,erB2F8D;EqB1F9D,2BrB2F+C;CGlK3B;;AkBgExB;EAYI,2BrBsF+C;EqBrF/C,yBAAgB;EAAhB,iBAAgB;CACjB;;AAdH;EAkBI,erBjFc;EqBkFd,qBAAoB;CACrB;;AAUH;ECLE,qBtBySgC;EC/Q5B,mBAtCY;EqBchB,iBtB6H+B;EQ/N7B,sBRsO+B;CqB/HlC;;AAED;ECTE,wBtBoSiC;EC1Q7B,oBAtCY;EqBchB,iBtB8H+B;EQhO7B,sBRuO+B;CqB5HlC;;AAOD;EACE,eAAc;EACd,YAAW;CAMZ;;AARD;EAMI,mBrBuT+B;CqBtThC;;AAIH;;;EAII,YAAW;CACZ;;AEvIH;ELMM,yClBsP2C;EkBtP3C,oClBsP2C;EkBtP3C,iClBsP2C;CuBtPhD;;ALKG;EKXJ;ILYM,yBAAgB;IAAhB,oBAAgB;IAAhB,iBAAgB;GKNrB;CrBovFA;;AqB1vFD;EAII,WAAU;CACX;;AAGH;EAEI,cAAa;CACd;;AAGH;EACE,mBAAkB;EAClB,UAAS;EACT,iBAAgB;ELXZ,sClBuPwC;EkBvPxC,iClBuPwC;EkBvPxC,8BlBuPwC;CuB1O7C;;ALRG;EKGJ;ILFM,yBAAgB;IAAhB,oBAAgB;IAAhB,iBAAgB;GKOrB;CrB4vFA;;AsB9wFD;;;;EAIE,mBAAkB;CACnB;;AAED;EACE,oBAAmB;CAIpB;;ACgBG;EACE,sBAAq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;AASH;EACE,YAAW;EACX,4BAA+F;EAC/F,WAAU;EACV,8BAA6B;EAC7B,yBAAgB;EAAhB,sBAAgB;EAAhB,iBAAgB;CAkIjB;;AAvID;EAQI,cAAa;CAOd;;AAfH;EAY8B,yE7BrVb;E6BqVa,iE7BrVb;C6BqViE;;AAZlF;EAa8B,iE7BtVb;C6BsViE;;AAblF;EAc8B,iE7BvVb;C6BuViE;;AAdlF;EAkBI,UAAS;CACV;;AAnBH;EAsBI,Y7B8N6C;E6B7N7C,a7B6N6C;E6B5N7C,qBAAyE;ET/XzE,0BpB8Ba;E6BmWb,U7B6N0C;EQ/lB1C,oBRgmB6C;EkB/lB3C,6HlB8f+H;EkB9f/H,qHlB8f+H;EkB9f/H,gHlB8f+H;EkB9f/H,6GlB8f+H;EkB9f/H,mJlB8f+H;E6BzHjI,yBAAgB;EAAhB,iBAAgB;CAKjB;;AXrYC;EWkWJ;IXjWM,yBAAgB;IAAhB,oBAAgB;IAAhB,iBAAgB;GWoYnB;C3BwuGF;;A2B3wGD;ETvWI,0BpBmmB2E;C6B1N1E;;AAlCL;EAsCI,Y7BuMoC;E6BtMpC,e7BuMqC;E6BtMrC,mBAAkB;EAClB,gB7BsMuC;E6BrMvC,0B7B7Yc;E6B8Yd,0BAAyB;ErBnZzB,oBRylBoC;C6BnMrC;;AA9CH;EAiDI,Y7BmM6C;E6BlM7C,a7BkM6C;EoB3lB7C,0BpB8Ba;E6B6Xb,U7BmM0C;EQ/lB1C,oBRgmB6C;EkB/lB3C,6HlB8f+H;EkB9f/H,qHlB8f+H;EkB9f/H,gHlB8f+H;EkB9f/H,6GlB8f+H;EkB9f/H,mJlB8f+H;E6B/FjI,sBAAgB;EAAhB,iBAAgB;CAKjB;;AX/ZC;EWkWJ;IXjWM,yBAAgB;IAAhB,oBAAgB;IAAhB,iBAAgB;GW8ZnB;C3B4uGF;;A2BzyGD;ETvWI,0BpBmmB2E;C6BhM1E;;AA5DL;EAgEI,Y7B6KoC;E6B5KpC,e7B6KqC;E6B5KrC,mBAAkB;EAClB,gB7B4KuC;E6B3KvC,0B7Bvac;E6Bwad,0BAAyB;ErB7azB,oBRylBoC;C6BzKrC;;AAxEH;EA2EI,Y7ByK6C;E6BxK7C,a7BwK6C;E6BvK7C,cAAa;EACb,qB7BvD+B;E6BwD/B,oB7BxD+B;EoB9X/B,0BpB8Ba;E6B0Zb,U7BsK0C;EQ/lB1C,oBRgmB6C;EkB/lB3C,6HlB8f+H;EkB9f/H,qHlB8f+H;EkB9f/H,gHlB8f+H;EkB9f/H,6GlB8f+H;EkB9f/H,mJlB8f+H;E6BlEjI,iBAAgB;CAKjB;;AX5bC;EWkWJ;IXjWM,yBAAgB;IAAhB,oBAAgB;IAAhB,iBAAgB;GW2bnB;C3BgvGF;;A2B10GD;ETvWI,0BpBmmB2E;C6BnK1E;;AAzFL;EA6FI,Y7BgJoC;E6B/IpC,e7BgJqC;E6B/IrC,mBAAkB;EAClB,gB7B+IuC;E6B9IvC,8BAA6B;EAC7B,0BAAyB;EACzB,qBAA4C;CAE7C;;AArGH;EAwGI,0B7B3cc;EQLd,oBRylBoC;C6BvIrC;;AA1GH;EA6GI,mBAAkB;EAClB,0B7Bjdc;EQLd,oBRylBoC;C6BjIrC;;AAhHH;EAoHM,0B7BrdY;C6Bsdb;;AArHL;EAwHM,gBAAe;CAChB;;AAzHL;EA4HM,0B7B7dY;C6B8db;;AA7HL;EAgIM,gBAAe;CAChB;;AAjIL;EAoIM,0B7BreY;C6Bseb;;AAIL;;;EXhfM,6HlB8f+H;EkB9f/H,qHlB8f+H;EkB9f/H,gHlB8f+H;EkB9f/H,6GlB8f+H;EkB9f/H,mJlB8f+H;C6BVpI;;AX/eG;EW2eJ;;;IX1eM,yBAAgB;IAAhB,oBAAgB;IAAhB,iBAAgB;GW8erB;C3BwvGA;;A4B7uHD;EACE,qBAAa;EAAb,qBAAa;EAAb,cAAa;EACb,oBAAe;EAAf,gBAAe;EACf,gBAAe;EACf,iBAAgB;EAChB,iBAAgB;CACjB;;AAED;EACE,eAAc;EACd,qB9BkqBsC;C8BtpBvC;;A3BXC;E2BEE,sBAAqB;C3BCtB;;A2BNH;EAUI,e9BVc;E8BWd,qBAAoB;EACpB,gBAAe;CAChB;;AAOH;EACE,iC9BxBgB;C8B0DjB;;AAnCD;EAII,oB9BkM6B;C8BjM9B;;AALH;EAQI,8BAAgD;EtB3BhD,gCR4NgC;EQ3NhC,iCR2NgC;C8BrLjC;;A3BrCD;E2B6BI,sC9BnCY;CGSf;;A2BcH;EAgBM,e9BpCY;E8BqCZ,8BAA6B;EAC7B,0BAAyB;CAC1B;;AAnBL;;EAwBI,e9B3Cc;E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CACjB;;AA1CT;EA6CU,cAAa;CACd;;AAYT;EAEI,0B/BjLW;C+BsLZ;;A5BvLD;E4BqLI,0B/BpLS;CGEZ;;A4B6KH;EAWM,0B/B1LS;C+BmMV;;A5BpMH;E4B8LM,0B/B7LO;CGEZ;;A4B6KH;EAkBQ,0B/BjMO;C+BkMR;;AAnBP;;;;EA0BM,0B/BzMS;C+B0MV;;AA3BL;EA+BI,0B/B9MW;E+B+MX,iC/B/MW;C+BgNZ;;AAjCH;EAoCI,yP/B6fsR;C+B5fvR;;AArCH;EAwCI,0B/BvNW;C+B+NZ;;AAhDH;EA0CM,0B/BzNS;C+B8NV;;A5B/NH;E4B6NM,0B/B5NO;CGEZ;;A4BiOH;EAEI,Y/B/OW;C+BoPZ;;A5B3OD;E4ByOI,Y/BlPS;CGYZ;;A4BiOH;EAWM,gC/BxPS;C+BiQV;;A5BxPH;E4BkPM,iC/B3PO;CGYZ;;A4BiOH;EAkBQ,iC/B/PO;C+BgQR;;AAnBP;;;;EA0BM,Y/BvQS;C+BwQV;;AA3BL;EA+BI,gC/B5QW;E+B6QX,uC/B7QW;C+B8QZ;;AAjCH;EAoCI,+P/BkcqR;C+BjctR;;AArCH;EAwCI,gC/BrRW;C+B6RZ;;AAhDH;EA0CM,Y/BvRS;C+B4RV;;A5BnRH;E4BiRM,Y/B1RO;CGYZ;;A6BfH;EACE,mBAAkB;EAClB,qBAAa;EAAb,qBAAa;EAAb,cAAa;EACb,6BAAsB;EAAtB,8BAAsB;EAAtB,2BAAsB;EAAtB,uBAAsB;EACtB,aAAY;EACZ,sBAAqB;EACrB,uBhCHa;EgCIb,4BAA2B;EAC3B,uChCKa;EQZX,uBRqOgC;CgC3MnC;;AA3BD;EAYI,gBAAe;EACf,eAAc;CACf;;AAdH;ExBUI,gCR4NgC;EQ3NhC,iCR2NgC;CgCnN/B;;AAnBL;ExBwBI,oCR8MgC;EQ7MhC,mCR6MgC;CgC7M/B;;AAIL;EAGE,oBAAc;EAAd,mBAAc;EAAd,eAAc;EACd,iBhC+wByC;CgC7wB1C;;AAED;EACE,uBhCywBwC;CgCxwBzC;;AAED;EACE,sBAA+B;EAC/B,iBAAgB;CACjB;;AAED;EACE,iBAAgB;CACjB;;A7BxCC;E6B4CE,sBAAqB;C7B5CD;;A6B0CxB;EAMI,qBhCwvBuC;CgCvvBx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BtC,elCwBe;EkCvBf,uBlCNa;EkCOb,0BlCJgB;CkCmBjB;;AAvBD;EAWI,WAAU;EACV,elC2J8D;EkC1J9D,sBAAqB;EACrB,0BlCXc;EkCYd,sBlCXc;CkCYf;;AAhBH;EAmBI,WAAU;EACV,WlCiwBiC;EkChwBjC,yDlCSa;EkCTb,iDlCSa;CkCRd;;AAGH;EAGM,eAAc;E1BChB,gCRuMgC;EQtMhC,mCRsMgC;CkCtM/B;;AALL;E1BVI,iCRqNgC;EQpNhC,oCRoNgC;CkCjM/B;;AAVL;EAcI,WAAU;EACV,YlCvCW;EkCwCX,0BlCXa;EkCYb,sBlCZa;CkCad;;AAlBH;EAqBI,elCvCc;EkCwCd,qBAAoB;EAEpB,aAAY;EACZ,uBlCjDW;EkCkDX,sBlC/Cc;CkCgDf;;ACvDD;EACE,wBnC8wBsC;ECnpBpC,mBAtCY;EkCnFd,iBnC8N6B;CmC7N9B;;AAIG;E3BwBF,+BRwM+B;EQvM/B,kCRuM+B;CmC9N5B;;AAGD;E3BKF,gCRsN+B;EQrN/B,mCRqN+B;CmCzN5B;;AAfL;EACE,wBnC4wBqC;ECjpBnC,oBAtCY;EkCnFd,iBnC+N6B;CmC9N9B;;AAIG;E3BwBF,+BRyM+B;EQxM/B,kCRwM+B;CmC/N5B;;AAGD;E3BKF,gCRuN+B;EQtN/B,mCRsN+B;CmC1N5B;;ACbP;EACE,sBAAqB;EACrB,sBpC24BsC;EC10BpC,eAAW;EmC/Db,iBpCmR+B;EoClR/B,eAAc;EACd,mBAAkB;EAClB,oBAAmB;EACnB,yBAAwB;E5BRtB,uBRqOgC;EkBpO9B,sJlBqb6I;EkBrb7I,8IlBqb6I;EkBrb7I,yIlBqb6I;EkBrb7I,sIlBqb6I;EkBrb7I,4KlBqb6I;CoChalJ;;AlBhBG;EkBNJ;IlBOM,yBAAgB;IAAhB,oBAAgB;IAAhB,iBAAgB;GkBerB;ClCihJA;;AC5hJC;EiCGI,sBAAqB;CjCAxB;;AiCdH;EAoBI,cAAa;CACd;;AAIH;EACE,mBAAkB;EAClB,UAAS;CACV;;AAMD;EACE,qBpCg3BsC;EoC/2BtC,oBpC+2BsC;EQn5BpC,qBRs5BqC;CoCh3BxC;;AAOC;ECjDA,YrCMa;EqCLb,0BrCkCe;CoCgBd;;AjCpCD;EkCVI,YrCCS;EqCAT,0BAAkC;ClCYrC;;AkCfO;EAQJ,WAAU;EACV,wDrCuBW;EqCvBX,gDrCuBW;CqCtBZ;;ADoCH;ECjDA,YrCMa;EqCLb,0BrCWgB;CoCuCf;;AjCpCD;EkCVI,YrCCS;EqCAT,0BAAkC;ClCYrC;;AkCfO;EAQJ,WAAU;EACV,0DrCAY;EqCAZ,kDrCAY;CqCCb;;ADoCH;ECjDA,YrCMa;EqCLb,0BrCyCe;CoCSd;;AjCpCD;EkCVI,YrCCS;EqCAT,0BAAkC;ClCYrC;;AkCfO;EAQJ,WAAU;EACV,wDrC8BW;EqC9BX,gDrC8BW;CqC7BZ;;ADoCH;ECjDA,YrCMa;EqCLb,0BrC2Ce;CoCOd;;AjCpCD;EkCVI,YrCCS;EqCAT,0BAAkC;ClCYrC;;AkCfO;EAQJ,WAAU;EACV,yDrCgCW;EqChCX,iDrCgCW;CqC/BZ;;ADoCH;ECjDA,erCegB;EqCdhB,0BrCwCe;CoCUd;;AjCpCD;EkCVI,erCUY;EqCTZ,0BAAkC;ClCYrC;;AkCfO;EAQJ,WAAU;EACV,wDrC6BW;EqC7BX,gDrC6BW;CqC5BZ;;ADoCH;ECjDA,YrCMa;EqCLb,0BrCsCe;CoCYd;;AjCpCD;EkCVI,YrCCS;EqCAT,0BAAkC;ClCYrC;;AkCfO;EAQJ,WAAU;EACV,wDrC2BW;EqC3BX,gDrC2BW;CqC1BZ;;ADoCH;ECjDA,erCegB;EqCdhB,0BrCMgB;CoC4Cf;;AjCpCD;EkCVI,erCUY;EqCTZ,0BAAkC;ClCYrC;;AkCfO;EAQJ,WAAU;EACV,0DrCLY;EqCKZ,kDrCLY;CqCMb;;ADoCH;ECjDA,YrCMa;EqCLb,0BrCagB;CoCqCf;;AjCpCD;EkCVI,YrCCS;EqCAT,0BAAkC;ClCYrC;;AkCfO;EAQJ,WAAU;EACV,uDrCEY;EqCFZ,+CrCEY;CqCDb;;ACdL;EACE,mBAAoD;EACpD,oBtC0yBsC;EsCxyBtC,0BtCKgB;EQJd,sBRsO+B;CsCjOlC;;A1BkDG;E0B5DJ;IAQI,mBtCoyBoC;GsClyBvC;CpC0rJA;;AoCxrJD;EACE,iBAAgB;EAChB,gBAAe;E9BTb,iB8BUsB;CACzB;;ACZD;EACE,mBAAkB;EAClB,yBvCo8ByC;EuCn8BzC,oBvCo8BsC;EuCn8BtC,8BAA6C;E/BH3C,uBRqOgC;CuChOnC;;AAGD;EAEE,eAAc;CACf;;AAGD;EACE,iBvCwQ+B;CuCvQhC;;AAOD;EACE,oBAAsD;CAUvD;;AAXD;EAKI,mBAAkB;EAClB,OAAM;EACN,SAAQ;EACR,yBvCs6BuC;EuCr6BvC,eAAc;CACf;;AASD;EC9CA,exBmFgE;EI9E9D,0BJ8E8D;EwBjFhE,sBxBiFgE;CuBnC/D;;AC5CD;EACE,0BAAqC;CACtC;;AAED;EACE,eAA0B;CAC3B;;ADoCD;EC9CA,exBmFgE;EI9E9D,0BJ8E8D;EwBjFhE,sBxBiFgE;CuBnC/D;;AC5CD;EACE,0BAAqC;CACtC;;AAED;EACE,eAA0B;CAC3B;;ADoCD;EC9CA,exBmFgE;EI9E9D,0BJ8E8D;EwBjFhE,sBxBiFgE;CuBnC/D;;AC5CD;EACE,0BAAqC;CACtC;;AAED;EACE,eAA0B;CAC3B;;ADoCD;EC9CA,exBmFgE;EI9E9D,0BJ8E8D;EwBjFhE,sBxBiFgE;CuBnC/D;;AC5CD;EACE,0BAAqC;CACtC;;AAED;EACE,eAA0B;CAC3B;;ADoCD;EC9CA,exBmFgE;EI9E9D,0BJ8E8D;EwBjFhE,sBxBiFgE;CuBnC/D;;AC5CD;EACE,0BAAqC;CACtC;;AAED;EACE,eAA0B;CAC3B;;ADoCD;EC9CA,exBmFgE;EI9E9D,0BJ8E8D;EwBjFhE,sBxBiFgE;CuBnC/D;;AC5CD;EACE,0BAAqC;CACtC;;AAED;EACE,eAA0B;CAC3B;;ADoCD;EC9CA,exBmFgE;EI9E9D,0BJ8E8D;EwBjFhE,sBxBiFgE;CuBnC/D;;AC5CD;EACE,0BAAqC;CACtC;;AAED;EACE,eAA0B;CAC3B;;ADoCD;EC9CA,exBmFgE;EI9E9D,0BJ8E8D;EwBjFhE,sBxBiFgE;CuBnC/D;;AC5CD;EACE,0BAAqC;CACtC;;AAED;EACE,eAA0B;CAC3B;;ACTD;EACE;IAAO,4BAAuC;GvCw1J/C;EuCv1JC;IAAK,yBAAwB;GvC01J9B;CACF;;AuC71JC;EACE;IAAO,4BAAuC;GvCw1J/C;EuCv1JC;IA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BpB;EAlBD;IAII,mB3C4IyB;I2C3IzB,iBAAgB;GAYjB;EAjBH;InCpDA,gCRuMgC;IQtMhC,mCRsMgC;IQ1LhC,2BmCgDwC;GACnC;EAVL;IAaM,gBAAe;InC/ErB,iCRqNgC;IQpNhC,oCRoNgC;IQ9KhC,6BmC0C0C;GACrC;CzC88JR;;AyCl8JD;EAEI,gBAAe;EACf,eAAc;EnCjHd,iBmCkHwB;CAKzB;;AATH;EAOM,oB3C6G2B;C2C5G5B;;AARL;EAaM,cAAa;CACd;;AAdL;EAmBM,iBAAgB;EAChB,iBAAgB;CACjB;;ACrIH;EACE,e5BgF8D;E4B/E9D,0B5B+E8D;C4BjE/D;;AzCHD;EyCPM,e5B2E0D;E4B1E1D,0BAAyC;CzCS9C;;AyChBD;EAWM,Y5CPO;E4CQP,0B5BqE0D;E4BpE1D,sB5BoE0D;C4BnE3D;;AAdL;EACE,e5BgF8D;E4B/E9D,0B5B+E8D;C4BjE/D;;AzCHD;EyCPM,e5B2E0D;E4B1E1D,0BAAyC;CzCS9C;;AyChBD;EAWM,Y5CPO;E4CQP,0B5BqE0D;E4BpE1D,sB5BoE0D;C4BnE3D;;AAdL;EACE,e5BgF8D;E4B/E9D,0B5B+E8D;C4BjE/D;;AzCHD;EyCPM,e5B2E0D;E4B1E1D,0BAAyC;CzCS9C;;AyChBD;EAWM,Y5CPO;E4CQP,0B5BqE0D;E4BpE1D,sB5BoE0D;C4BnE3D;;AAdL;EACE,e5BgF8D;E4B/E9D,0B5B+E8D;C4BjE/D;;AzCHD;EyCPM,e5B2E0D;E4B1E1D,0BAAyC;CzCS9C;;AyChBD;EAWM,Y5CPO;E4CQP,0B5BqE0D;E4BpE1D,sB5BoE0D;C4BnE3D;;AAdL;EACE,e5BgF8D;E4B/E9D,0B5B+E8D;C4BjE/D;;AzCHD;EyCPM,e5B2E0D;E4B1E1D,0BAAyC;CzCS9C;;AyChBD;EAWM,Y5CPO;E4CQP,0B5BqE0D;E4BpE1D,sB5BoE0D;C4BnE3D;;AAdL;EACE,e5BgF8D;E4B/E9D,0B5B+E8D;C4BjE/D;;AzCHD;EyCPM,e5B2E0D;E4B1E1D,0BAAyC;CzCS9C;;AyChBD;EAWM,Y5CPO;E4CQP,0B5BqE0D;E4BpE1D,sB5BoE0D;C4BnE3D;;AAdL;EACE,e5BgF8D;E4B/E9D,0B5B+E8D;C4BjE/D;;AzCHD;EyCPM,e5B2E0D;E4B1E1D,0BAAyC;CzCS9C;;AyChBD;EAWM,Y5CPO;E4CQP,0B5BqE0D;E4BpE1D,sB5BoE0D;C4BnE3D;;AAdL;EACE,e5BgF8D;E4B/E9D,0B5B+E8D;C4BjE/D;;AzCHD;EyCPM,e5B2E0D;E4B1E1D,0BAAyC;CzCS9C;;AyChBD;EAWM,Y5CPO;E4CQP,0B5BqE0D;E4BpE1D,sB5BoE0D;C4BnE3D;;ACjBP;EACE,aAAY;E5C8HR,kBAtCY;E4CtFhB,iB7CyR+B;E6CxR/B,eAAc;EACd,Y7CYa;E6CXb,0B7CCa;E6CAb,YAAW;CAaZ;;A1CRC;E0CDE,Y7CMW;E6CLX,sBAAqB;C1CAD;;AAItB;E0CCI,aAAY;C1CEf;;A0CSH;EACE,WAAU;EACV,8BAA6B;EAC7B,UAAS;EACT,yBAAgB;EAAhB,sBAAgB;EAAhB,iBAAgB;CACjB;;AAKD;EACE,qBAAoB;CACrB;;ACxCD;EACE,iB9C43BuC;E8C33BvC,iBAAgB;E7C6HZ,oBAtCY;E6CpFhB,4C9CEa;E8CDb,6BAA4B;EAC5B,qC9C63BmD;E8C53BnD,yD9CSa;E8CTb,iD9CSa;E8CRb,oCAA2B;EAA3B,4BAA2B;EAC3B,WAAU;EtCLR,uBRg4BsC;C8Cx2BzC;;AA7BD;EAcI,uB9Cg3BsC;C8C/2BvC;;AAfH;EAkBI,WAAU;CACX;;AAnBH;EAsBI,eAAc;EACd,WAAU;CACX;;AAxBH;EA2BI,cAAa;CACd;;AAGH;EACE,qBAAa;EAAb,qBAAa;EAAb,cAAa;EACb,0BAAmB;EAAnB,uBAAmB;EAAnB,oBAAmB;EACnB,yB9C41BwC;E8C31BxC,e9CtBgB;E8CuBhB,4C9C7Ba;E8C8Bb,6BAA4B;EAC5B,6C9Co2BoD;C8Cn2BrD;;AAED;EACE,iB9Co1BwC;C8Cn1BzC;;ACrCD;EAEE,iBAAgB;CAMjB;;AARD;EAKI,mBAAkB;EAClB,iBAAgB;CACjB;;AAIH;EACE,gBAAe;EACf,OAAM;EACN,QAAO;EACP,c/CopBsC;E+CnpBtC,cAAa;EACb,YAAW;EACX,aAAY;EACZ,iBAAgB;EAGhB,WAAU;CAIX;;AAGD;EACE,mBAAkB;EAClB,YAAW;EACX,e/C63BuC;E+C33BvC,qBAAoB;CAiBrB;;AAdC;E7BrCI,oDlB47BoD;EkB57BpD,4ClB47BoD;EkB57BpD,uClB47BoD;EkB57BpD,oClB47BoD;EkB57BpD,qElB47BoD;E+Cr5BtD,uC/Ck5BmD;E+Cl5BnD,mC/Ck5BmD;E+Cl5BnD,+B/Ck5BmD;C+Cj5BpD;;A7BnCC;E6BgCF;I7B/BI,yBAAgB;IAAhB,oBAAgB;IAAhB,iBAAgB;G6BkCnB;C7C2wKF;;A6C1wKC;EACE,wB/Ci5BoC;E+Cj5BpC,oB/Ci5BoC;E+Cj5BpC,gB/Ci5BoC;C+Ch5BrC;;AAGD;E7B9CI,oDlB47BoD;EkB57BpD,4ClB47BoD;EkB57BpD,uClB47BoD;EkB57BpD,oClB47BoD;EkB57BpD,qElB47BoD;E+C54BtD,qC/C04BmD;E+C14BnD,iC/C04BmD;E+C14BnD,6B/C04BmD;C+Cz4BpD;;A7B5CC;E6ByCF;I7BxCI,yBAAgB;IAAhB,oBAAgB;IAAhB,iBAAgB;G6B2CnB;C7CixKF;;A6C7wKD;EACE,qBAAa;EAAb,qBAAa;EAAb,cAAa;EACb,8BAAoD;CAerD;;AAjBD;EAKI,+BAAqD;EACrD,iBAAgB;CACjB;;AAPH;;EAWI,qBAAc;EAAd,eAAc;CACf;;AAZH;EAeI,iBAAgB;CACjB;;AAGH;EACE,qBAAa;EAAb,qBAAa;EAAb,cAAa;EACb,0BAAmB;EAAnB,uBAAmB;EAAnB,oBAAmB;EACnB,8BAAoD;CAuBrD;;AA1BD;EAOI,eAAc;EACd,2BAAiD;EACjD,YAAW;CACZ;;AAVH;EAcI,6BAAsB;EAAtB,8BAAsB;EAAtB,2BAAsB;EAAtB,uBAAsB;EACtB,yBAAuB;EAAvB,sBAAuB;EAAvB,wBAAuB;EACvB,aAAY;CASb;;AAzBH;EAmBM,iBAAgB;CACjB;;AApBL;EAuBM,cAAa;CACd;;AAKL;EACE,mBAAkB;EAClB,qBAAa;EAAb,qBAAa;EAAb,cAAa;EACb,6BAAsB;EAAtB,8BAAsB;EAAtB,2BAAsB;EAAtB,uBAAsB;EACtB,YAAW;EAGX,qBAAoB;EACpB,uB/C5Ga;E+C6Gb,6BAA4B;EAC5B,qC/CpGa;EQZX,sBRsO+B;E+ClHjC,WAAU;CACX;;AAGD;EACE,gBAAe;EACf,OAAM;EACN,QAAO;EACP,c/CuiBsC;E+CtiBtC,aAAY;EACZ,cAAa;EACb,uB/CnHa;C+CyHd;;AAbD;EAUW,WAAU;CAAI;;AAVzB;EAWY,WAAU;CAAI;;AAX1B;EAYW,a/CwyB2B;C+CxyBS;;AAK/C;EACE,qBAAa;EAAb,qBAAa;EAAb,cAAa;EACb,yBAAuB;EAAvB,sBAAuB;EAAvB,wBAAuB;EACvB,0BAA8B;EAA9B,uBAA8B;EAA9B,+BAA8B;EAC9B,mB/CqyBsC;E+CpyBtC,iC/CzIgB;EQId,+BR6N+B;EQ5N/B,gCR4N+B;C+ChFlC;;AAbD;EASI,mB/CgyBoC;E+C9xBpC,+BAA6F;CAC9F;;AAIH;EACE,iBAAgB;EAChB,iB/CgI+B;C+C/HhC;;AAID;EACE,mBAAkB;EAGlB,oBAAc;EAAd,mBAAc;EAAd,eAAc;EACd,c/CuvBsC;C+CtvBvC;;AAGD;EACE,qBAAa;EAAb,qBAAa;EAAb,cAAa;EACb,0BAAmB;EAAnB,uBAAmB;EAAnB,oBAAmB;EACnB,sBAAyB;EAAzB,mBAAyB;EAAzB,0BAAyB;EACzB,c/C+uBsC;E+C9uBtC,8B/CzKgB;EQkBd,mCR+M+B;EQ9M/B,kCR8M+B;C+ClDlC;;AAXD;EASyB,oBAAmB;CAAI;;AAThD;EAUwB,qBAAoB;CAAI;;AAIhD;EACE,mBAAkB;EAClB,aAAY;EACZ,YAAW;EACX,aAAY;EACZ,iBAAgB;CACjB;;AnCtIG;EmCzBJ;IAqKI,iB/CovBqC;I+CnvBrC,qBAAyC;GAC1C;EA/IH;IAkJI,gCAA4D;GAK7D;EAvJH;IAqJM,iCAA6D;GAC9D;EAnIL;IAuII,gCAA4D;GAK7D;EA5IH;IA0IM,6BAAyD;GAC1D;EAOH;IAAY,iB/C6tB2B;G+C7tBH;C7CkwKrC;;AUt6KG;EmCwKF;;IAEE,iB/CqtBqC;G+CptBtC;C7CkwKF;;AU76KG;EmC+KF;IAAY,kB/C+sB4B;G+C/sBJ;C7CowKrC;;A8C9+KD;EACE,mBAAkB;EAClB,chDwqBsC;EgDvqBtC,eAAc;EACd,UhD60BmC;EiDj1BnC,6MjD+Q2N;EiD7Q3N,mBAAkB;EAClB,iBjDuR+B;EiDtR/B,iBjD2R+B;EiD1R/B,iBAAgB;EAChB,kBAAiB;EACjB,sBAAqB;EACrB,kBAAiB;EACjB,qBAAoB;EACpB,uBAAsB;EACtB,mBAAkB;EAClB,qBAAoB;EACpB,oBAAmB;EACnB,iBAAgB;EhDgHZ,oBAtCY;E+C9EhB,sBAAqB;EACrB,WAAU;CAiBX;;AA5BD;EAaW,ahDi0B2B;CgDj0BE;;AAbxC;EAgBI,mBAAkB;EAClB,eAAc;EACd,chDi0BqC;EgDh0BrC,ehDi0BqC;CgDzzBtC;;AA3BH;EAsBM,mBAAkB;EAClB,YAAW;EACX,0BAAyB;EACzB,oBAAmB;CACpB;;AAIL;EACE,kBAAgC;CAWjC;;AAZD;EAII,UAAS;CAOV;;AAXH;EAOM,OAAM;EACN,8BAAgE;EAChE,uBhDvBS;CgDwBV;;AAIL;EACE,kBhDuyBuC;CgD1xBxC;;AAdD;EAII,QAAO;EACP,chDmyBqC;EgDlyBrC,ehDiyBqC;CgD1xBtC;;AAbH;EASM,SAAQ;EACR,qCAA2F;EAC3F,yBhDvCS;CgDwCV;;AAIL;EACE,kBAAgC;CAWjC;;AAZD;EAII,OAAM;CAOP;;AAXH;EAOM,UAAS;EACT,8BhDgxBmC;EgD/wBnC,0BhDrDS;CgDsDV;;AAIL;EACE,kBhDywBuC;CgD5vBxC;;AAdD;EAII,SAAQ;EACR,chDqwBqC;EgDpwBrC,ehDmwBqC;CgD5vBtC;;AAbH;EASM,QAAO;EACP,qChDgwBmC;EgD/vBnC,wBhDrES;CgDsEV;;AAoBL;EACE,iBhD+tBuC;EgD9tBvC,wBhDouBuC;EgDnuBvC,YhDvGa;EgDwGb,mBAAkB;EAClB,uBhD/Fa;EQZX,uBRqOgC;CgDxHnC;;AElHD;EACE,mBAAkB;EAClB,OAAM;EACN,QAAO;EACP,clDsqBsC;EkDrqBtC,eAAc;EACd,iBlD+1BuC;EiDp2BvC,6MjD+Q2N;EiD7Q3N,mBAAkB;EAClB,iBjDuR+B;EiDtR/B,iBjD2R+B;EiD1R/B,iBAAgB;EAChB,kBAAiB;EACjB,sBAAqB;EACrB,kBAAiB;EACjB,qBAAoB;EACpB,uBAAsB;EACtB,mBAAkB;EAClB,qBAAoB;EACpB,oBAAmB;EACnB,iBAAgB;EhDgHZ,oBAtCY;EiD7EhB,sBAAqB;EACrB,uBlDNa;EkDOb,6BAA4B;EAC5B,qClDEa;EQZX,sBRsO+B;CkDxMlC;;AAnCD;EAoBI,mBAAkB;EAClB,eAAc;EACd,YlD81BoC;EkD71BpC,elD81BqC;EkD71BrC,iBlDmN+B;CkDzMhC;;AAlCH;EA4BM,mBAAkB;EAClB,eAAc;EACd,YAAW;EACX,0BAAyB;EACzB,oBAAmB;CACpB;;AAIL;EACE,sBlD+0BuC;CkD9zBxC;;AAlBD;EAII,kCAAwE;CAazE;;AAjBH;EAOM,UAAS;EACT,8BAAgE;EAChE,sClD00BiE;CkDz0BlE;;AAVL;EAaM,YlDqL2B;EkDpL3B,8BAAgE;EAChE,uBlD7CS;CkD8CV;;AAIL;EACE,oBlD2zBuC;CkDvyBxC;;AArBD;EAII,gCAAsE;EACtE,clDuzBqC;EkDtzBrC,alDqzBoC;EkDpzBpC,iBAA2B;CAa5B;;AApBH;EAUM,QAAO;EACP,qCAA2F;EAC3F,wClDmzBiE;CkDlzBlE;;AAbL;EAgBM,UlD8J2B;EkD7J3B,qCAA2F;EAC3F,yBlDpES;CkDqEV;;AAIL;EACE,mBlDoyBuC;CkDvwBxC;;AA9BD;EAII,+BAAqE;CAatE;;AAjBH;EAOM,OAAM;EACN,qCAA2F;EAC3F,yClD+xBiE;CkD9xBlE;;AAVL;EAaM,SlD0I2B;EkDzI3B,qCAA2F;EAC3F,0BlDxFS;CkDyFV;;AAhBL;EAqBI,mBAAkB;EAClB,OAAM;EACN,UAAS;EACT,eAAc;EACd,YlD2wBoC;EkD1wBpC,qBAAsC;EACtC,YAAW;EACX,iClD+vBuD;CkD9vBxD;;AAGH;EACE,qBlDowBuC;CkDhvBxC;;AArBD;EAII,iCAAuE;EACvE,clDgwBqC;EkD/vBrC,alD8vBoC;EkD7vBpC,iBAA2B;CAa5B;;AApBH;EAUM,SAAQ;EACR,qClD0vBmC;EkDzvBnC,uClD4vBiE;CkD3vBlE;;AAbL;EAgBM,WlDuG2B;EkDtG3B,qClDovBmC;EkDnvBnC,wBlD3HS;CkD4HV;;AAqBL;EACE,wBlDqtBwC;EkDptBxC,iBAAgB;EjD3BZ,gBAtCY;EiDoEhB,0BlD8sByD;EkD7sBzD,iCAAyE;E1ChJvE,2C0CiJyE;E1ChJzE,4C0CgJyE;CAM5E;;AAbD;EAWI,cAAa;CACd;;AAGH;EACE,wBlDssBwC;EkDrsBxC,elDzJgB;CkD0JjB;;AC7JD;EACE,mBAAkB;CACnB;;AAED;EACE,wBAAmB;EAAnB,oBAAmB;CACpB;;AAED;EACE,mBAAkB;EAClB,YAAW;EACX,iBAAgB;CAEjB;;ACzBC;EACE,eAAc;EACd,YAAW;EACX,YAAW;CACZ;;ADuBH;EACE,mBAAkB;EAClB,cAAa;EACb,YAAW;EACX,YAAW;EACX,oBAAmB;EACnB,oCAA2B;EAA3B,4BAA2B;EjC5BvB,uDlB8iCkF;EkB9iClF,+ClB8iCkF;EkB9iClF,0ClB8iCkF;EkB9iClF,uClB8iCkF;EkB9iClF,2ElB8iCkF;CmDhhCvF;;AjCzBG;EiCiBJ;IjChBM,yBAAgB;IAAhB,oBAAgB;IAAhB,iBAAgB;GiCwBrB;CjD+vLA;;AiD7vLD;;;EAGE,eAAc;CACf;;AAED;;EAEE,oCAA2B;EAA3B,gCAA2B;EAA3B,4BAA2B;CAC5B;;AAED;;EAEE,qCAA4B;EAA5B,iCAA4B;EAA5B,6BAA4B;CAC7B;;AAOD;EAEI,WAAU;EACV,qCAA4B;EAA5B,gCAA4B;EAA5B,6BAA4B;EAC5B,wBAAe;EAAf,oBAAe;EAAf,gBAAe;CAChB;;AALH;;;EAUI,WAAU;EACV,WAAU;CACX;;AAZH;;EAgBI,WAAU;EACV,WAAU;EjCtER,oCiCuE0D;EjCvE1D,+BiCuE0D;EjCvE1D,4BiCuE0D;CAC7D;;AjCnEC;EiCgDJ;;IjC/CM,yBAAgB;IAAhB,oBAAgB;IAAhB,iBAAgB;GiCkEnB;CjDgwLF;;AiDxvLD;;EAEE,mBAAkB;EAClB,OAAM;EACN,UAAS;EACT,WAAU;EAEV,qBAAa;EAAb,qBAAa;EAAb,cAAa;EACb,0BAAmB;EAAnB,uBAAmB;EAAnB,oBAAmB;EACnB,yBAAuB;EAAvB,sBAAuB;EAAvB,wBAAuB;EACvB,WnD+7BsC;EmD97BtC,YnD1Fa;EmD2Fb,mBAAkB;EAClB,anD67BqC;EkB1hCjC,uClB4hCgD;EkB5hChD,kClB4hCgD;EkB5hChD,+BlB4hCgD;CmDr7BrD;;AjClGG;EiC2EJ;;IjC1EM,yBAAgB;IAAhB,oBAAgB;IAAhB,iBAAgB;GiCiGrB;CjDwvLA;;ACr1LC;;;EgDwFE,YnDjGW;EmDkGX,sBAAqB;EACrB,WAAU;EACV,anDs7BmC;CG9gCpC;;AgD2FH;EACE,QAAO;CAIR;;AACD;EACE,SAAQ;CAIT;;AAGD;;EAEE,sBAAqB;EACrB,YnD+6BuC;EmD96BvC,anD86BuC;EmD76BvC,sCAAqC;CACtC;;AACD;EACE,oMnCxFyI;CmCyF1I;;AACD;EACE,oMnC3FyI;CmC4F1I;;AAQD;EACE,mBAAkB;EAClB,SAAQ;EACR,UAAS;EACT,QAAO;EACP,YAAW;EACX,qBAAa;EAAb,qBAAa;EAAb,cAAa;EACb,yBAAuB;EAAvB,sBAAuB;EAAvB,wBAAuB;EACvB,gBAAe;EAEf,kBnDq4BsC;EmDp4BtC,iBnDo4BsC;EmDn4BtC,iBAAgB;CAuBjB;;AAnCD;EAeI,gCAAuB;EAAvB,wBAAuB;EACvB,oBAAc;EAAd,mBAAc;EAAd,eAAc;EACd,YnDm4BqC;EmDl4BrC,YnDm4BoC;EmDl4BpC,kBnDo4BoC;EmDn4BpC,iBnDm4BoC;EmDl4BpC,oBAAmB;EACnB,gBAAe;EACf,uBnDhKW;EmDiKX,6BAA4B;EAE5B,mCAAiE;EACjE,sCAAoE;EACpE,YAAW;EjCtKT,sClBmiC+C;EkBniC/C,iClBmiC+C;EkBniC/C,8BlBmiC+C;CmD33BlD;;AjCnKC;EiCqIJ;IjCpIM,yBAAgB;IAAhB,oBAAgB;IAAhB,iBAAgB;GiCkKnB;CjD6vLF;;AiD3xLD;EAiCI,WAAU;CACX;;AAQH;EACE,mBAAkB;EAClB,WAA2C;EAC3C,aAAY;EACZ,UAA0C;EAC1C,YAAW;EACX,kBAAiB;EACjB,qBAAoB;EACpB,YnD3La;EmD4Lb,mBAAkB;CACnB;;AEhMD;EACE;IAAK,kCAAyB;IAAzB,0BAAyB;GnD27L7B;CACF;;AmD77LD;EACE;IAAK,kCAAyB;IAAzB,0BAAyB;GnD27L7B;CACF;;AmDz7LD;EACE,sBAAqB;EACrB,YrD+iC0B;EqD9iC1B,arD8iC0B;EqD7iC1B,4BAA2B;EAC3B,kCAAgD;EAChD,gCAA+B;EAE/B,mBAAkB;EAClB,uDAA8C;EAA9C,+CAA8C;CAC/C;;AAED;EACE,YrDwiC4B;EqDviC5B,arDuiC4B;EqDtiC5B,oBrDwiC4B;CqDviC7B;;AAMD;EACE;IACE,4BAAmB;IAAnB,oBAAmB;GnDu7LpB;EmDr7LD;IACE,WAAU;GnDu7LX;CACF;;AmD77LD;EACE;IACE,4BAAmB;IAAnB,oBAAmB;GnDu7LpB;EmDr7LD;IACE,WAAU;GnDu7LX;CACF;;AmDp7LD;EACE,sBAAqB;EACrB,YrDghC0B;EqD/gC1B,arD+gC0B;EqD9gC1B,4BAA2B;EAC3B,+BAA8B;EAE9B,mBAAkB;EAClB,WAAU;EACV,qDAA4C;EAA5C,6CAA4C;CAC7C;;AAED;EACE,YrDygC4B;EqDxgC5B,arDwgC4B;CqDvgC7B;;ACpDD;EAAqB,oCAAmC;CAAI;;AAC5D;EAAqB,+BAA8B;CAAI;;AACvD;EAAqB,kCAAiC;CAAI;;AAC1D;EAAqB,kCAAiC;CAAI;;AAC1D;EAAqB,uCAAsC;CAAI;;AAC/D;EAAqB,oCAAmC;CAAI;;ACF1D;EACE,qCAAmC;CACpC;;ApDSD;;;EoDLI,qCAAgD;CpDQnD;;AoDdD;EACE,qCAAmC;CACpC;;ApDSD;;;EoDLI,qCAAgD;CpDQnD;;AoDdD;EACE,qCAAmC;CACpC;;ApDSD;;;EoDLI,qCAAgD;CpDQnD;;AoDdD;EACE,qCAAmC;CACpC;;ApDSD;;;EoDLI,qCAAgD;CpDQnD;;AoDdD;EACE,qCAAmC;CACpC;;ApDSD;;;EoDLI,qCAAgD;CpDQnD;;AoDdD;EACE,qCAAmC;CACpC;;ApDSD;;;EoDLI,qCAAgD;CpDQnD;;AoDdD;EACE,qCAAmC;CACpC;;ApDSD;;;EoDLI,qCAAgD;CpDQnD;;AoDdD;EACE,qCAAmC;CACpC;;ApDSD;;;EoDLI,qCAAgD;CpDQnD;;AqDPH;EACE,kCAAmC;CACpC;;AAED;EACE,yCAAwC;CACzC;;ACZD;EAAkB,qCAAoD;CAAI;;AAC1E;EAAkB,yCAAwD;CAAI;;AAC9E;EAAkB,2CAA0D;CAAI;;AAChF;EAAkB,4CAA2D;CAAI;;AACjF;EAAkB,0CAAyD;CAAI;;AAE/E;EAAmB,qBAAoB;CAAI;;AAC3C;EAAmB,yBAAwB;CAAI;;AAC/C;EAAmB,2BAA0B;CAAI;;AACjD;EAAmB,4BAA2B;CAAI;;AAClD;EAAmB,0BAAyB;CAAI;;AAG9C;EACE,iCAA+B;CAChC;;AAFD;EACE,iCAA+B;CAChC;;AAFD;EACE,iCAA+B;CAChC;;AAFD;EACE,iCAA+B;CAChC;;AAFD;EACE,iCAA+B;CAChC;;AAFD;EACE,iCAA+B;CAChC;;AAFD;EACE,iCAA+B;CAChC;;AAFD;EACE,iCAA+B;CAChC;;AAGH;EACE,8BAA+B;CAChC;;AAMD;EACE,iCAA2C;CAC5C;;AAED;EACE,kCAAwC;CACzC;;AAED;EACE,2CAAiD;EACjD,4CAAkD;CACnD;;AAED;EACE,4CAAkD;EAClD,+CAAqD;CACtD;;AAED;EACE,+CAAqD;EACrD,8CAAoD;CACrD;;AAED;EACE,2CAAiD;EACjD,8CAAoD;CACrD;;AAED;EACE,iCAA2C;CAC5C;;AAED;EACE,8BAA6B;CAC9B;;AAED;EACE,gCAAuC;CACxC;;AAED;EACE,4BAA2B;CAC5B;;ALzEC;EACE,eAAc;EACd,YAAW;EACX,YAAW;CACZ;;AMMG;EAAwB,yBAA0B;CAAI;;AAAtD;EAAwB,2BAA0B;CAAI;;AAAtD;EAAwB,iCAA0B;CAAI;;AAAtD;EAAwB,0BAA0B;CAAI;;AAAtD;EAAwB,0BAA0B;CAAI;;AAAtD;EAAwB,8BAA0B;CAAI;;AAAtD;EAAwB,+BAA0B;CAAI;;AAAtD;EAAwB,gCAA0B;EAA1B,gCAA0B;EAA1B,yBAA0B;CAAI;;AAAtD;EAAwB,uCAA0B;EAA1B,uCAA0B;EAA1B,gCAA0B;CAAI;;A9CiDxD;E8CjDE;IAAwB,yBAA0B;GAAI;EAAtD;IAAwB,2BAA0B;GAAI;EAAtD;IAAwB,iCAA0B;GAAI;EAAtD;IAAwB,0BAA0B;GAAI;EAAtD;IAAwB,0BAA0B;GAAI;EAAtD;IAAwB,8BAA0B;GAAI;EAAtD;IAAwB,+BAA0B;GAAI;EAAtD;IAAwB,gCAA0B;IAA1B,gCAA0B;IAA1B,yBAA0B;GAAI;EAAtD;IAAwB,uCAA0B;IAA1B,uCAA0B;IAA1B,gCAA0B;GAAI;CxDgxM3D;;AU/tMG;E8CjDE;IAAwB,yBAA0B;GAAI;EAAtD;IAAwB,2BAA0B;GAAI;EAAtD;IAAwB,iCAA0B;GAAI;EAAtD;IAAwB,0BAA0B;GAAI;EAAtD;IAAwB,0BAA0B;GAAI;EAAtD;IAAwB,8BAA0B;GAAI;EAAtD;IAAwB,+BAA0B;GAAI;EAAtD;IAAwB,gCAA0B;IAA1B,gCAA0B;IAA1B,yBAA0B;GAAI;EAAtD;IAAwB,uCAA0B;IAA1B,uCAA0B;IAA1B,gCAA0B;GAAI;CxD8yM3D;;AU7vMG;E8CjDE;IAAwB,yBAA0B;GAAI;EAAtD;IAAwB,2BAA0B;GAAI;EAAtD;IAAwB,iCAA0B;GAAI;EAAtD;IAAwB,0BAA0B;GAAI;EAAtD;IAAwB,0BAA0B;GAAI;EAAtD;IAAwB,8BAA0B;GAAI;EAAtD;IAAwB,+BAA0B;GAAI;EAAtD;IAAwB,gCAA0B;IAA1B,gCAA0B;IAA1B,yBAA0B;GAAI;EAAtD;IAAwB,uCAA0B;IAA1B,uCAA0B;IAA1B,gCAA0B;GAAI;CxD40M3D;;AU3xMG;E8CjDE;IAAwB,yBAA0B;GAAI;EAAtD;IAAwB,2BAA0B;GAAI;EAAtD;IAAwB,iCAA0B;GAAI;EAAtD;IAAwB,0BAA0B;GAAI;EAAtD;IAAwB,0BAA0B;GAAI;EAAtD;IAAwB,8BAA0B;GAAI;EAAtD;IAAwB,+BAA0B;GAAI;EAAtD;IAAwB,gCAA0B;IAA1B,gCAA0B;IAA1B,yBAA0B;GAAI;EAAtD;IAAwB,uCAA0B;IAA1B,uCAA0B;IAA1B,gCAA0B;GAAI;CxD02M3D;;AwDh2MD;EAEI;IAAqB,yBAA0B;GAAI;EAAnD;IAAqB,2BAA0B;GAAI;EAAnD;IAAqB,iCAA0B;GAAI;EAAnD;IAAqB,0BAA0B;GAAI;EAAnD;IAAqB,0BAA0B;GAAI;EAAnD;IAAqB,8BAA0B;GAAI;EAAnD;IAAqB,+BAA0B;GAAI;EAAnD;IAAqB,gCAA0B;IAA1B,gCAA0B;IAA1B,yBAA0B;GAAI;EAAnD;IAAqB,uCAA0B;IAA1B,uCAA0B;IAA1B,gCAA0B;GAAI;CxD43MtD;;AyDj5MD;EACE,mBAAkB;EAClB,eAAc;EACd,YAAW;EACX,WAAU;EACV,iBAAgB;CAoBjB;;AAzBD;EAQI,eAAc;EACd,YAAW;CACZ;;AAVH;;;;;EAiBI,mBAAkB;EAClB,OAAM;EACN,UAAS;EACT,QAAO;EACP,YAAW;EACX,aAAY;EACZ,UAAS;CACV;;AAOD;EAEI,uBAA4F;CAC7F;;AAHH;EAEI,oBAA4F;CAC7F;;AAHH;EAEI,iBAA4F;CAC7F;;AAHH;EAEI,kBAA4F;CAC7F;;AC1BD;EAAgC,0CAA8B;EAA9B,yCAA8B;EAA9B,mCAA8B;EAA9B,+BAA8B;CAAI;;AAClE;EAAgC,wCAAiC;EAAjC,yCAAiC;EAAjC,sCAAiC;EAAjC,kCAAiC;CAAI;;AACrE;EAAgC,0CAAsC;EAAtC,0CAAsC;EAAtC,2CAAsC;EAAtC,uCAAsC;CAAI;;AAC1E;EAAgC,wCAAyC;EAAzC,0CAAyC;EAAzC,8CAAyC;EAAzC,0CAAyC;CAAI;;AAE7E;EAA8B,+BAA0B;EAA1B,2BAA0B;CAAI;;AAC5D;EAA8B,iCAA4B;EAA5B,6BAA4B;CAAI;;AAC9D;EAA8B,uCAAkC;EAAlC,mCAAkC;CAAI;;AACpE;EAA8B,+BAAyB;EAAzB,8BAAyB;EAAzB,0BAAyB;CAAI;;AAC3D;EAA8B,+BAAuB;EAAvB,gCAAuB;EAAvB,wBAAuB;CAAI;;AACzD;EAA8B,+BAAuB;EAAvB,gCAAuB;EAAvB,wBAAuB;CAAI;;AACzD;EAA8B,gCAAyB;EAAzB,0BAAyB;CAAI;;AAC3D;EAA8B,gCAAyB;EAAzB,0BAAyB;CAAI;;AAE3D;EAAoC,mCAAsC;EAAtC,gCAAsC;EAAtC,uCAAsC;CAAI;;AAC9E;EAAoC,iCAAoC;EAApC,8BAAoC;EAApC,qCAAoC;CAAI;;AAC5E;EAAoC,oCAAkC;EAAlC,iCAAkC;EAAlC,mCAAkC;CAAI;;AAC1E;EAAoC,qCAAyC;EAAzC,kCAAyC;EAAzC,0CAAyC;CAAI;;AACjF;EAAoC,qCAAwC;EAAxC,yCAAwC;CAAI;;AAEhF;EAAiC,oCAAkC;EAAlC,iCAAkC;EAAlC,mCAAkC;CAAI;;AACvE;EAAiC,kCAAgC;EAAhC,+BAAgC;EAAhC,iCAAgC;CAAI;;AACrE;EAAiC,qCAA8B;EAA9B,kCAA8B;EAA9B,+BAA8B;CAAI;;AACnE;EAAiC,uCAAgC;EAAhC,oCAAgC;EAAhC,iCAAgC;CAAI;;AACrE;EAAiC,sCAA+B;EAA/B,mCAA+B;EAA/B,gCAA+B;CAAI;;AAEpE;EAAkC,qCAAoC;EAApC,qCAAoC;CAAI;;AAC1E;EAAkC,mCAAkC;EAAlC,mCAAkC;CAAI;;AACxE;EAAkC,sCAAgC;EAAhC,iCAAgC;CAAI;;AACtE;EAAkC,uCAAuC;EAAvC,wCAAuC;CAAI;;AAC7E;EAAkC,0CAAsC;EAAtC,uCAAsC;CAAI;;AAC5E;EAAkC,uCAAiC;EAAjC,kCAAiC;CAAI;;AAEvE;EAAgC,qCAA2B;EAA3B,oCAA2B;EAA3B,4BAA2B;CAAI;;AAC/D;EAAgC,sCAAiC;EAAjC,kCAAiC;CAAI;;AACrE;EAAgC,oCAA+B;EAA/B,gCAA+B;CAAI;;AACnE;EAAgC,uCAA6B;EAA7B,sCAA6B;EAA7B,8BAA6B;CAAI;;AACjE;EAAgC,yCAA+B;EAA/B,gCAA+B;CAAI;;AACnE;EAAgC,wCAA8B;EAA9B,uCAA8B;EAA9B,+BAA8B;CAAI;;AhDYlE;EgDlDA;IAAgC,0CAA8B;IAA9B,yCAA8B;IAA9B,mCAA8B;IAA9B,+BAA8B;GAAI;EAClE;IAAgC,wCAAiC;IAAjC,yCAAiC;IAAjC,sCAAiC;IAAjC,kCAAiC;GAAI;EACrE;IAAgC,0CAAsC;IAAtC,0CAAsC;IAAtC,2CAAsC;IAAtC,uCAAsC;GAAI;EAC1E;IAAgC,wCAAyC;IAAzC,0CAAyC;IAAzC,8CAAyC;IAAzC,0CAAyC;GAAI;EAE7E;IAA8B,+BAA0B;IAA1B,2BAA0B;GAAI;EAC5D;IAA8B,iCAA4B;IAA5B,6BAA4B;GAAI;EAC9D;IAA8B,uCAAkC;IAAlC,mCAAkC;GAAI;EACpE;IAA8B,+BAAyB;IAAzB,8BAAyB;IAAzB,0BAAyB;GAAI;EAC3D;IAA8B,+BAAuB;IAAvB,gCAAuB;IAAvB,wBAAuB;GAAI;EACzD;IAA8B,+BAAuB;IAAvB,gCAAuB;IAAvB,wBAAuB;GAAI;EACzD;IAA8B,gCAAyB;IAAzB,0BAAyB;GAAI;EAC3D;IAA8B,gCAAyB;IAAzB,0BAAyB;GAAI;EAE3D;IAAoC,mCAAsC;IAAtC,gCAAsC;IAAtC,uCAAsC;GAAI;EAC9E;IAAoC,iCAAoC;IAApC,8BAAoC;IAApC,qCAAoC;GAAI;EAC5E;IAAoC,oCAAkC;IAAlC,iCAAkC;IAAlC,mCAAkC;GAAI;EAC1E;IAAoC,qCAAyC;IAAzC,kCAAyC;IAAzC,0CAAyC;GAAI;EACjF;IAAoC,qCAAwC;IAAxC,yCAAwC;GAAI;EAEhF;IAAiC,oCAAkC;IAAlC,iCAAkC;IAAlC,mCAAkC;GAAI;EACvE;IAAiC,kCAAgC;IAAhC,+BAAgC;IAAhC,iCAAgC;GAAI;EACrE;IAAiC,qCAA8B;IAA9B,kCAA8B;IAA9B,+BAA8B;GAAI;EACnE;IAAiC,uCAAgC;IAAhC,oCAAgC;IAAhC,iCAAgC;GAAI;EACrE;IAAiC,sCAA+B;IAA/B,mCAA+B;IAA/B,gCAA+B;GAAI;EAEpE;IAAkC,qCAAoC;IAApC,qCAAoC;GAAI;EAC1E;IAAkC,mCAAkC;IAAlC,mCAAkC;GAAI;EACxE;IAAkC,sCAAgC;IAAhC,iCAAgC;GAAI;EACtE;IAAkC,uCAAuC;IAAvC,wCAAuC;GAAI;EAC7E;IAAkC,0CAAsC;IAAtC,uCAAsC;GAAI;EAC5E;IAAkC,uCAAiC;IAAjC,kCAAiC;GAAI;EAEvE;IAAgC,qCAA2B;IAA3B,oCAA2B;IAA3B,4BAA2B;GAAI;EAC/D;IAAgC,sCAAiC;IAAjC,kCAAiC;GAAI;EACrE;IAAgC,oCAA+B;IAA/B,gCAA+B;GAAI;EACnE;IAAgC,uCAA6B;IAA7B,sCAA6B;IAA7B,8BAA6B;GAAI;EACjE;IAAgC,yCAA+B;IAA/B,gCAA+B;GAAI;EACnE;IAAgC,wCAA8B;IAA9B,uCAA8B;IAA9B,+BAA8B;GAAI;C1D+nNrE;;AUnnNG;EgDlDA;IAAgC,0CAA8B;IAA9B,yCAA8B;IAA9B,mCAA8B;IAA9B,+BAA8B;GAAI;EAClE;IAAgC,wCAAiC;IAAjC,yCAAiC;IAAjC,sCAAiC;IAAjC,kCAAiC;GAAI;EACrE;IAAgC,0CAAsC;IAAtC,0CAAsC;IAAtC,2CAAsC;IAAtC,uCAAsC;GAAI;EAC1E;IAAgC,wCAAyC;IAAzC,0CAAyC;IAAzC,8CAAyC;IAAzC,0CAAyC;GAAI;EAE7E;IAA8B,+BAA0B;IAA1B,2BAA0B;GAAI;EAC5D;IAA8B,iCAA4B;IAA5B,6BAA4B;GAAI;EAC9D;IAA8B,uCAAkC;IAAlC,mCAAkC;GAAI;EACpE;IAA8B,+BAAyB;IAAzB,8BAAyB;IAAzB,0BAAyB;GAAI;EAC3D;IAA8B,+BAAuB;IAAvB,gCAAuB;IAAvB,wBAAuB;GAAI;EACzD;IAA8B,+BAAuB;IAAvB,gCAAuB;IAAvB,wBAAuB;GAAI;EACzD;IAA8B,gCAAyB;IAAzB,0BAAyB;GAAI;EAC3D;IAA8B,gCAAyB;IAAzB,0BAAyB;GAAI;EAE3D;IAAoC,mCAAsC;IAAtC,gCAAsC;IAAtC,uCAAsC;GAAI;EAC9E;IAAoC,iCAAoC;IAApC,8BAAoC;IAApC,qCAAoC;GAAI;EAC5E;IAAoC,oCAAkC;IAAlC,iCAAkC;IAAlC,mCAAkC;GAAI;EAC1E;IAAoC,qCAAyC;IAAzC,kCAAyC;IAAzC,0CAAyC;GAAI;EACjF;IAAoC,qCAAwC;IAAxC,yCAAwC;GAAI;EAEhF;IAAiC,oCAAkC;IAAlC,iCAAkC;IAAlC,mCAAkC;GAAI;EACvE;IAAiC,kCAAgC;IAAhC,+BAAgC;IAAhC,iCAAgC;GAAI;EACrE;IAAiC,qCAA8B;IAA9B,kCAA8B;IAA9B,+BAA8B;GAAI;EACnE;IAAiC,uCAAgC;IAAhC,oCAAgC;IAAhC,iCAAgC;GAAI;EACrE;IAAiC,sCAA+B;IAA/B,mCAA+B;IAA/B,gCAA+B;GAAI;EAEpE;IAAkC,qCAAoC;IAApC,qCAAoC;GAAI;EAC1E;IAAkC,mCAAkC;IAAlC,mCAAkC;GAAI;EACxE;IAAkC,sCAAgC;IAAhC,iCAAgC;GAAI;EACtE;IAAkC,uCAAuC;IAAvC,wCAAuC;GAAI;EAC7E;IAAkC,0CAAsC;IAAtC,uCAAsC;GAAI;EAC5E;IAAkC,uCAAiC;IAAjC,kCAAiC;GAAI;EAEvE;IAAgC,qCAA2B;IAA3B,oCAA2B;IAA3B,4BAA2B;GAAI;EAC/D;IAAgC,sCAAiC;IAAjC,kCAAiC;GAAI;EACrE;IAAgC,oCAA+B;IAA/B,gCAA+B;GAAI;EACnE;IAAgC,uCAA6B;IAA7B,sCAA6B;IAA7B,8BAA6B;GAAI;EACjE;IAAgC,yCAA+B;IAA/B,gCAA+B;GAAI;EACnE;IAAgC,wCAA8B;IAA9B,uCAA8B;IAA9B,+BAA8B;GAAI;C1DwuNrE;;AU5tNG;EgDlDA;IAAgC,0CAA8B;IAA9B,yCAA8B;IAA9B,mCAA8B;IAA9B,+BAA8B;GAAI;EAClE;IAAgC,wCAAiC;IAAjC,yCAAiC;IAAjC,sCAAiC;IAAjC,kCAAiC;GAAI;EACrE;IAAgC,0CAAsC;IAAtC,0CAAsC;IAAtC,2CAAsC;IAAtC,uCAAsC;GAAI;EAC1E;IAAgC,wCAAyC;IAAzC,0CAAyC;IAAzC,8CAAyC;IAAzC,0CAAyC;GAAI;EAE7E;IAA8B,+BAA0B;IAA1B,2BAA0B;GAAI;EAC5D;IAA8B,iCAA4B;IAA5B,6BAA4B;GAAI;EAC9D;IAA8B,uCAAkC;IAAlC,mCAAkC;GAAI;EACpE;IAA8B,+BAAyB;IAAzB,8BAAyB;IAAzB,0BAAyB;GAAI;EAC3D;IAA8B,+BAAuB;IAAvB,gCAAuB;IAAvB,wBAAuB;GAAI;EACzD;IAA8B,+BAAuB;IAAvB,gCAAuB;IAAvB,wBAAuB;GAAI;EACzD;IAA8B,gCAAyB;IAAzB,0BAAyB;GAAI;EAC3D;IAA8B,gCAAyB;IAAzB,0BAAyB;GAAI;EAE3D;IAAoC,mCAAsC;IAAtC,gCAAsC;IAAtC,uCAAsC;GAAI;EAC9E;IAAoC,iCAAoC;IAApC,8BAAoC;IAApC,qCAAoC;GAAI;EAC5E;IAAoC,oCAAkC;IAAlC,iCAAkC;IAAlC,mCAAkC;GAAI;EAC1E;IAAoC,qCAAyC;IAAzC,kCAAyC;IAAzC,0CAAyC;GAAI;EACjF;IAAoC,qCAAwC;IAAxC,yCAAwC;GAAI;EAEhF;IAAiC,oCAAkC;IAAlC,iCAAkC;IAAlC,mCAAkC;GAAI;EACvE;IAAiC,kCAAgC;IAAhC,+BAAgC;IAAhC,iCAAgC;GAAI;EACrE;IAAiC,qCAA8B;IAA9B,kCAA8B;IAA9B,+BAA8B;GAAI;EACnE;IAAiC,uCAAgC;IAAhC,oCAAgC;IAAhC,iCAAgC;GAAI;EACrE;IAAiC,sCAA+B;IAA/B,mCAA+B;IAA/B,gCAA+B;GAAI;EAEpE;IAAkC,qCAAoC;IAApC,qCAAoC;GAAI;EAC1E;IAAkC,mCAAkC;IAAlC,mCAAkC;GAAI;EACxE;IAAkC,sCAAgC;IAAhC,iCAAgC;GAAI;EACtE;IAAkC,uCAAuC;IAAvC,wCAAuC;GAAI;EAC7E;IAAkC,0CAAsC;IAAtC,uCAAsC;GAAI;EAC5E;IAAkC,uCAAiC;IAAjC,kCAAiC;GAAI;EAEvE;IAAgC,qCAA2B;IAA3B,oCAA2B;IAA3B,4BAA2B;GAAI;EAC/D;IAAgC,sCAAiC;IAAjC,kCAAiC;GAAI;EACrE;IAAgC,oCAA+B;IAA/B,gCAA+B;GAAI;EACnE;IAAgC,uCAA6B;IAA7B,sCAA6B;IAA7B,8BAA6B;GAAI;EACjE;IAAgC,yCAA+B;IAA/B,gCAA+B;GAAI;EACnE;IAAgC,wCAA8B;IAA9B,uCAA8B;IAA9B,+BAA8B;GAAI;C1Di1NrE;;AUr0NG;EgDlDA;IAAgC,0CAA8B;IAA9B,yCAA8B;IAA9B,mCAA8B;IAA9B,+BAA8B;GAAI;EAClE;IAAgC,wCAAiC;IAAjC,yCAAiC;IAAjC,sCAAiC;IAAjC,kCAAiC;GAAI;EACrE;IAAgC,0CAAsC;IAAtC,0CAAsC;IAAtC,2CAAsC;IAAtC,uCAAsC;GAAI;EAC1E;IAAgC,wCAAyC;IAAzC,0CAAyC;IAAzC,8CAAyC;IAAzC,0CAAyC;GAAI;EAE7E;IAA8B,+BAA0B;IAA1B,2BAA0B;GAAI;EAC5D;IAA8B,iCAA4B;IAA5B,6BAA4B;GAAI;EAC9D;IAA8B,uCAAkC;IAAlC,mCAAkC;GAAI;EACpE;IAA8B,+BAAyB;IAAzB,8BAAyB;IAAzB,0BAAyB;GAAI;EAC3D;IAA8B,+BAAuB;IAAvB,gCAAuB;IAAvB,wBAAuB;GAAI;EACzD;IAA8B,+BAAuB;IAAvB,gCAAuB;IAAvB,wBAAuB;GAAI;EACzD;IAA8B,gCAAyB;IAAzB,0BAAyB;GAAI;EAC3D;IAA8B,gCAAyB;IAAzB,0BAAyB;GAAI;EAE3D;IAAoC,mCAAsC;IAAtC,gCAAsC;IAAtC,uCAAsC;GAAI;EAC9E;IAAoC,iCAAoC;IAApC,8BAAoC;IAApC,qCAAoC;GAAI;EAC5E;IAAoC,oCAAkC;IAAlC,iCAAkC;IAAlC,mCAAkC;GAAI;EAC1E;IAAoC,qCAAyC;IAAzC,kCAAyC;IAAzC,0CAAyC;GAAI;EACjF;IAAoC,qCAAwC;IAAxC,yCAAwC;GAAI;EAEhF;IAAiC,oCAAkC;IAAlC,iCAAkC;IAAlC,mCAAkC;GAAI;EACvE;IAAiC,kCAAgC;IAAhC,+BAAgC;IAAhC,iCAAgC;GAAI;EACrE;IAAiC,qCAA8B;IAA9B,kCAA8B;IAA9B,+BAA8B;GAAI;EACnE;IAAiC,uCAAgC;IAAhC,oCAAgC;IAAhC,iCAAgC;GAAI;EACrE;IAAiC,sCAA+B;IAA/B,mCAA+B;IAA/B,gCAA+B;GAAI;EAEpE;IAAkC,qCAAoC;IAApC,qCAAoC;GAAI;EAC1E;IAAkC,mCAAkC;IAAlC,mCAAkC;GAAI;EACxE;IAAkC,sCAAgC;IAAhC,iCAAgC;GAAI;EACtE;IAAkC,uCAAuC;IAAvC,wCAAuC;GAAI;EAC7E;IAAkC,0CAAsC;IAAtC,uCAAsC;GAAI;EAC5E;IAAkC,uCAAiC;IAAjC,kCAAiC;GAAI;EAEvE;IAAgC,qCAA2B;IAA3B,oCAA2B;IAA3B,4BAA2B;GAAI;EAC/D;IAAgC,sCAAiC;IAAjC,kCAAiC;GAAI;EACrE;IAAgC,oCAA+B;IAA/B,gCAA+B;GAAI;EACnE;IAAgC,uCAA6B;IAA7B,sCAA6B;IAA7B,8BAA6B;GAAI;EACjE;IAAgC,yCAA+B;IAA/B,gCAA+B;GAAI;EACnE;IAAgC,wCAA8B;IAA9B,uCAA8B;IAA9B,+BAA8B;GAAI;C1D07NrE;;A2Dp+NG;EAAwB,uBAAsB;CAAI;;AAClD;EAAwB,wBAAuB;CAAI;;AACnD;EAAwB,uBAAsB;CAAI;;AjDoDlD;EiDtDA;IAAwB,uBAAsB;GAAI;EAClD;IAAwB,wBAAuB;GAAI;EACnD;IAAwB,uBAAsB;GAAI;C3D0/NrD;;AUt8NG;EiDtDA;IAAwB,uBAAsB;GAAI;EAClD;IAAwB,wBAAuB;GAAI;EACnD;IAAwB,uBAAsB;GAAI;C3DsgOrD;;AUl9NG;EiDtDA;IAAwB,uBAAsB;GAAI;EAClD;IAAwB,wBAAuB;GAAI;EACnD;IAAwB,uBAAsB;GAAI;C3DkhOrD;;AU99NG;EiDtDA;IAAwB,uBAAsB;GAAI;EAClD;IAAwB,wBAAuB;GAAI;EACnD;IAAwB,uBAAsB;GAAI;C3D8hOrD;;A4DniOC;EAAsB,0BAA2B;CAAI;;AAArD;EAAsB,4BAA2B;CAAI;;ACCrD;EAAyB,4BAA8B;CAAI;;AAA3D;EAAyB,8BAA8B;CAAI;;AAA3D;EAAyB,8BAA8B;CAAI;;AAA3D;EAAyB,2BAA8B;CAAI;;AAA3D;EAAyB,oCAA8B;EAA9B,4BAA8B;CAAI;;AAK7D;EACE,gBAAe;EACf,OAAM;EACN,SAAQ;EACR,QAAO;EACP,c/DypBsC;C+DxpBvC;;AAED;EACE,gBAAe;EACf,SAAQ;EACR,UAAS;EACT,QAAO;EACP,c/DipBsC;C+DhpBvC;;AAG6B;EAD9B;IAEI,yBAAgB;IAAhB,iBAAgB;IAChB,OAAM;IACN,c/DyoBoC;G+DvoBvC;C7D2jOA;;A8DtlOD;ECEE,mBAAkB;EAClB,WAAU;EACV,YAAW;EACX,WAAU;EACV,iBAAgB;EAChB,uBAAsB;EACtB,oBAAmB;EACnB,UAAS;CDPV;;ACiBC;EAEE,iBAAgB;EAChB,YAAW;EACX,aAAY;EACZ,kBAAiB;EACjB,WAAU;EACV,oBAAmB;CACpB;;AC7BH;EAAa,uEAAqC;EAArC,+DAAqC;CAAI;;AACtD;EAAU,iEAAkC;EAAlC,yDAAkC;CAAI;;AAChD;EAAa,gEAAqC;EAArC,wDAAqC;CAAI;;AACtD;EAAe,oCAA2B;EAA3B,4BAA2B;CAAI;;ACC1C;EAAuB,sBAA4B;CAAI;;AAAvD;EAAuB,sBAA4B;CAAI;;AAAvD;EAAuB,sBAA4B;CAAI;;AAAvD;EAAuB,uBAA4B;CAAI;;AAAvD;EAAuB,uBAA4B;CAAI;;AAAvD;EAAuB,uBAA4B;CAAI;;AAAvD;EAAuB,uBAA4B;CAAI;;AAAvD;EAAuB,uBAA4B;CAAI;;AAAvD;EAAuB,wBAA4B;CAAI;;AAAvD;EAAuB,wBAA4B;CAAI;;AAI3D;EAAU,2BAA0B;CAAI;;AACxC;EAAU,4BAA2B;CAAI;;AAIzC;EAAc,4BAA2B;CAAI;;AAC7C;EAAc,6BAA4B;CAAI;;AAE9C;EAAU,wBAAuB;CAAI;;AACrC;EAAU,yBAAwB;CAAI;;ACftC;EAEI,mBAAkB;EAClB,OAAM;EACN,SAAQ;EACR,UAAS;EACT,QAAO;EACP,WAAU;EAEV,qBAAoB;EACpB,YAAW;EAEX,mCAAkC;CACnC;;ACPK;EAAgC,qBAA4B;CAAI;;AAChE;;EAEE,yBAAoC;CACrC;;AACD;;EAEE,2BAAwC;CACzC;;AACD;;EAEE,4BAA0C;CAC3C;;AACD;;EAEE,0BAAsC;CACvC;;AAhBD;EAAgC,2BAA4B;CAAI;;AAChE;;EAEE,+BAAoC;CACrC;;AACD;;EAEE,iCAAwC;CACzC;;AACD;;EAEE,kCAA0C;CAC3C;;AACD;;EAEE,gCAAsC;CACvC;;AAhBD;EAAgC,0BAA4B;CAAI;;AAChE;;EAEE,8BAAoC;CACrC;;AACD;;EAEE,gCAAwC;CACzC;;AACD;;EAEE,iCAA0C;CAC3C;;AACD;;EAEE,+BAAsC;CACvC;;AAhBD;EAAgC,wBAA4B;CAAI;;AAChE;;EAEE,4BAAoC;CACrC;;AACD;;EAEE,8BAAwC;CACzC;;AACD;;EAEE,+BAA0C;CAC3C;;AACD;;EAEE,6BAAsC;CACvC;;AAhBD;EAAgC,0BAA4B;CAAI;;AAChE;;EAEE,8BAAoC;CACrC;;AACD;;EAEE,gCAAwC;CACzC;;AACD;;EAEE,iCAA0C;CAC3C;;AACD;;EAEE,+BAAsC;CACvC;;AAhBD;EAAgC,wBAA4B;CAAI;;AAChE;;EAEE,4BAAoC;CACrC;;AACD;;EAEE,8BAAwC;CACzC;;AACD;;EAEE,+BAA0C;CAC3C;;AACD;;EAEE,6BAAsC;CACvC;;AAhBD;EAAgC,sBAA4B;CAAI;;AAChE;;EAEE,0BAAoC;CACrC;;AACD;;EAEE,4BAAwC;CACzC;;AACD;;EAEE,6BAA0C;CAC3C;;AACD;;EAEE,2BAAsC;CACvC;;AAhBD;EAAgC,4BAA4B;CAAI;;AAChE;;EAEE,gCAAoC;CACrC;;AACD;;EAEE,kCAAwC;CACzC;;AACD;;EAEE,mCAA0C;CAC3C;;AACD;;EAEE,iCAAsC;CACvC;;AAhBD;EAAgC,2BAA4B;CAAI;;AAChE;;EAEE,+BAAoC;CACrC;;AACD;;EAEE,iCAAwC;CACzC;;AACD;;EAEE,kCAA0C;CAC3C;;AACD;;EAEE,gCAAsC;CACvC;;AAhBD;EAAgC,yBAA4B;CAAI;;AAChE;;EAEE,6BAAoC;CACrC;;AACD;;EAEE,+BAAwC;CACzC;;AACD;;EAEE,gCAA0C;CAC3C;;AACD;;EAEE,8BAAsC;CACvC;;AAhBD;EAAgC,2BAA4B;CAAI;;AAChE;;EAEE,+BAAoC;CACrC;;AACD;;EAEE,iCAAwC;CACzC;;AACD;;EAEE,kCAA0C;CAC3C;;AACD;;EAEE,gCAAsC;CACvC;;AAhBD;EAAgC,yBAA4B;CAAI;;AAChE;;EAEE,6BAAoC;CACrC;;AACD;;EAEE,+BAAwC;CACzC;;AACD;;EAEE,gCAA0C;CAC3C;;AACD;;EAEE,8BAAsC;CACvC;;AAOD;EAAwB,4BAA2B;CAAI;;AACvD;;EAEE,gCAA+B;CAChC;;AACD;;EAEE,kCAAiC;CAClC;;AACD;;EAEE,mCAAkC;CACnC;;AACD;;EAEE,iCAAgC;CACjC;;AAhBD;EAAwB,2BAA2B;CAAI;;AACvD;;EAEE,+BAA+B;CAChC;;AACD;;EAEE,iCAAiC;CAClC;;AACD;;EAEE,kCAAkC;CACnC;;AACD;;EAEE,gCAAgC;CACjC;;AAhBD;EAAwB,yBAA2B;CAAI;;AACvD;;EAEE,6BAA+B;CAChC;;AACD;;EAEE,+BAAiC;CAClC;;AACD;;EAEE,gCAAkC;CACnC;;AACD;;EAEE,8BAAgC;CACjC;;AAhBD;EAAwB,2BAA2B;CAAI;;AACvD;;EAEE,+BAA+B;CAChC;;AACD;;EAEE,iCAAiC;CAClC;;AACD;;EAEE,kCAAkC;CACnC;;AACD;;EAEE,gCAAgC;CACjC;;AAhBD;EAAwB,yBAA2B;CAAI;;AACvD;;EAEE,6BAA+B;CAChC;;AACD;;EAEE,+BAAiC;CAClC;;AACD;;EAEE,gCAAkC;CACnC;;AACD;;EAEE,8BAAgC;CACjC;;AAKL;EAAmB,wBAAuB;CAAI;;AAC9C;;EAEE,4BAA2B;CAC5B;;AACD;;EAEE,8BAA6B;CAC9B;;AACD;;EAEE,+BAA8B;CAC/B;;AACD;;EAEE,6BAA4B;CAC7B;;AzDVD;EyDlDI;IAAgC,qBAA4B;GAAI;EAChE;;IAEE,yBAAoC;GACrC;EACD;;IAEE,2BAAwC;GACzC;EACD;;IAEE,4BAA0C;GAC3C;EACD;;IAEE,0BAAsC;GACvC;EAhBD;IAAgC,2BAA4B;GAAI;EAChE;;IAEE,+BAAoC;GACrC;EACD;;IAEE,iCAAwC;GACzC;EACD;;IAEE,kCAA0C;GAC3C;EACD;;IAEE,gCAAsC;GACvC;EAhBD;IAAgC,0BAA4B;GAAI;EAChE;;IAEE,8BAAoC;GACrC;EACD;;IAEE,gCAAwC;GACzC;EACD;;IAEE,iCAA0C;GAC3C;EACD;;IAEE,+BAAsC;GACvC;EAhBD;IAAgC,wBAA4B;GAAI;EAChE;;IAEE,4BAAoC;GACrC;EACD;;IAEE,8BAAwC;GACzC;EACD;;IAEE,+BAA0C;GAC3C;EACD;;IAEE,6BAAsC;GACvC;EAhBD;IAAgC,0BAA4B;GAAI;EAChE;;IAEE,8BAAoC;GACrC;EACD;;IAEE,gCAAwC;GACzC;EACD;;IAEE,iCAA0C;GAC3C;EACD;;IAEE,+BAAsC;GACvC;EAhBD;IAAgC,wBAA4B;GAAI;EAChE;;IAEE,4BAAoC;GACrC;EACD;;IAEE,8BAAwC;GACzC;EACD;;IAEE,+BAA0C;GAC3C;EACD;;IAEE,6BAAsC;GACvC;EAhBD;IAAgC,sBAA4B;GAAI;EAChE;;IAEE,0BAAoC;GACrC;EACD;;IAEE,4BAAwC;GACzC;EACD;;IAEE,6BAA0C;GAC3C;EACD;;IAEE,2BAAsC;GACvC;EAhBD;IAAgC,4BAA4B;GAAI;EAChE;;IAEE,gCAAoC;GACrC;EACD;;IAEE,kCAAwC;GACzC;EACD;;IAEE,mCAA0C;GAC3C;EACD;;IAEE,iCAAsC;GACvC;EAhBD;IAAgC,2BAA4B;GAAI;EAChE;;IAEE,+BAAoC;GACrC;EACD;;IAEE,iCAAwC;GACzC;EACD;;IAEE,kCAA0C;GAC3C;EACD;;IAEE,gCAAsC;GACvC;EAhBD;IAAgC,yBAA4B;GAAI;EAChE;;IAEE,6BAAoC;GACrC;EACD;;IAEE,+BAAwC;GACzC;EACD;;IAEE,gCAA0C;GAC3C;EACD;;IAEE,8BAAsC;GACvC;EAhBD;IAAgC,2BAA4B;GAAI;EAChE;;IAEE,+BAAoC;GACrC;EACD;;IAEE,iCAAwC;GACzC;EACD;;IAEE,kCAA0C;GAC3C;EACD;;IAEE,gCAAsC;GACvC;EAhBD;IAAgC,yBAA4B;GAAI;EAChE;;IAEE,6BAAoC;GACrC;EACD;;IAEE,+BAAwC;GACzC;EACD;;IAEE,gCAA0C;GAC3C;EACD;;IAEE,8BAAsC;GACvC;EAOD;IAAwB,4BAA2B;GAAI;EACvD;;IAEE,gCAA+B;GAChC;EACD;;IAEE,kCAAiC;GAClC;EACD;;IAEE,mCAAkC;GACnC;EACD;;IAEE,iCAAgC;GACjC;EAhBD;IAAwB,2BAA2B;GAAI;EACvD;;IAEE,+BAA+B;GAChC;EACD;;IAEE,iCAAiC;GAClC;EACD;;IAEE,kCAAkC;GACnC;EACD;;IAEE,gCAAgC;GACjC;EAhBD;IAAwB,yBAA2B;GAAI;EACvD;;IAEE,6BAA+B;GAChC;EACD;;IAEE,+BAAiC;GAClC;EACD;;IAEE,gCAAkC;GACnC;EACD;;IAEE,8BAAgC;GACjC;EAhBD;IAAwB,2BAA2B;GAAI;EACvD;;IAEE,+BAA+B;GAChC;EACD;;IAEE,iCAAiC;GAClC;EACD;;IAEE,kCAAkC;GACnC;EACD;;IAEE,gCAAgC;GACjC;EAhBD;IAAwB,yBAA2B;GAAI;EACvD;;IAEE,6BAA+B;GAChC;EACD;;IAEE,+BAAiC;GAClC;EACD;;IAEE,gCAAkC;GACnC;EACD;;IAEE,8BAAgC;GACjC;EAKL;IAAmB,wBAAuB;GAAI;EAC9C;;IAEE,4BAA2B;GAC5B;EACD;;IAEE,8BAA6B;GAC9B;EACD;;IAEE,+BAA8B;GAC/B;EACD;;IAEE,6BAA4B;GAC7B;CnE64PJ;;AUv5PG;EyDlDI;IAAgC,qBAA4B;GAAI;EAChE;;IAEE,yBAAoC;GACrC;EACD;;IAEE,2BAAwC;GACzC;EACD;;IAEE,4BAA0C;GAC3C;EACD;;IAEE,0BAAsC;GACvC;EAhBD;IAAgC,2BAA4B;GAAI;EAChE;;IAEE,+BAAoC;GACrC;EACD;;IAEE,iCAAwC;GACzC;EACD;;IAEE,kCAA0C;GAC3C;EACD;;IAEE,gCAAsC;GACvC;EAhBD;IAAgC,0BAA4B;GAAI;EAChE;;IAEE,8BAAoC;GACrC;EACD;;IAEE,gCAAwC;GACzC;EACD;;IAEE,iCAA0C;GAC3C;EACD;;IAEE,+BAAsC;GACvC;EAhBD;IAAgC,wBAA4B;GAAI;EAChE;;IAEE,4BAAoC;GACrC;EACD;;IAEE,8BAAwC;GACzC;EACD;;IAEE,+BAA0C;GAC3C;EACD;;IAEE,6BAAsC;GACvC;EAhBD;IAAgC,0BAA4B;GAAI;EAChE;;IAEE,8BAAoC;GACrC;EACD;;IAEE,gCAAwC;GACzC;EACD;;IAEE,iCAA0C;GAC3C;EACD;;IAEE,+BAAsC;GACvC;EAhBD;IAAgC,wBAA4B;GAAI;EAChE;;IAEE,4BAAoC;GACrC;EACD;;IAEE,8BAAwC;GACzC;EACD;;IAEE,+BAA0C;GAC3C;EACD;;IAEE,6BAAsC;GACvC;EAhBD;IAAgC,sBAA4B;GAAI;EAChE;;IAEE,0BAAoC;GACrC;EACD;;IAEE,4BAAwC;GACzC;EACD;;IAEE,6BAA0C;GAC3C;EACD;;IAEE,2BAAsC;GACvC;EAhBD;IAAgC,4BAA4B;GAAI;EAChE;;IAEE,gCAAoC;GACrC;EACD;;IAEE,kCAAwC;GACzC;EACD;;IAEE,mCAA0C;GAC3C;EACD;;IAEE,iCAAsC;GACvC;EAhBD;IAAgC,2BAA4B;GAAI;EAChE;;IAEE,+BAAoC;GACrC;EACD;;IAEE,iCAAwC;GACzC;EACD;;IAEE,kCAA0C;GAC3C;EACD;;IAEE,gCAAsC;GACvC;EAhBD;IAAgC,yBAA4B;GAAI;EAChE;;IAEE,6BAAoC;GACrC;EACD;;IAEE,+BAAwC;GACzC;EACD;;IAEE,gCAA0C;GAC3C;EACD;;IAEE,8BAAsC;GACvC;EAhBD;IAAgC,2BAA4B;GAAI;EAChE;;IAEE,+BAAoC;GACrC;EACD;;IAEE,iCAAwC;GACzC;EACD;;IAEE,kCAA0C;GAC3C;EACD;;IAEE,gCAAsC;GACvC;EAhBD;IAAgC,yBAA4B;GAAI;EAChE;;IAEE,6BAAoC;GACrC;EACD;;IAEE,+BAAwC;GACzC;EACD;;IAEE,gCAA0C;GAC3C;EACD;;IAEE,8BAAsC;GACvC;EAOD;IAAwB,4BAA2B;GAAI;EACvD;;IAEE,gCAA+B;GAChC;EACD;;IAEE,kCAAiC;GAClC;EACD;;IAEE,mCAAkC;GACnC;EACD;;IAEE,iCAAgC;GACjC;EAhBD;IAAwB,2BAA2B;GAAI;EACvD;;IAEE,+BAA+B;GAChC;EACD;;IAEE,iCAAiC;GAClC;EACD;;IAEE,kCAAkC;GACnC;EACD;;IAEE,gCAAgC;GACjC;EAhBD;IAAwB,yBAA2B;GAAI;EACvD;;IAEE,6BAA+B;GAChC;EACD;;IAEE,+BAAiC;GAClC;EACD;;IAEE,gCAAkC;GACnC;EACD;;IAEE,8BAAgC;GACjC;EAhBD;IAAwB,2BAA2B;GAAI;EACvD;;IAEE,+BAA+B;GAChC;EACD;;IAEE,iCAAiC;GAClC;EACD;;IAEE,kCAAkC;GACnC;EACD;;IAEE,gCAAgC;GACjC;EAhBD;IAAwB,yBAA2B;GAAI;EACvD;;IAEE,6BAA+B;GAChC;EACD;;IAEE,+BAAiC;GAClC;EACD;;IAEE,gCAAkC;GACnC;EACD;;IAEE,8BAAgC;GACjC;EAKL;IAAmB,wBAAuB;GAAI;EAC9C;;IAEE,4BAA2B;GAC5B;EACD;;IAEE,8BAA6B;GAC9B;EACD;;IAEE,+BAA8B;GAC/B;EACD;;IAEE,6BAA4B;GAC7B;CnEsuQJ;;AUhvQG;EyDlDI;IAAgC,qBAA4B;GAAI;EAChE;;IAEE,yBAAoC;GACrC;EACD;;IAEE,2BAAwC;GACzC;EACD;;IAEE,4BAA0C;GAC3C;EACD;;IAEE,0BAAsC;GACvC;EAhBD;IAAgC,2BAA4B;GAAI;EAChE;;IAEE,+BAAoC;GACrC;EACD;;IAEE,iCAAwC;GACzC;EACD;;IAEE,kCAA0C;GAC3C;EACD;;IAEE,gCAAsC;GACvC;EAhBD;IAAgC,0BAA4B;GAAI;EAChE;;IAEE,8BAAoC;GACrC;EACD;;IAEE,gCAAwC;GACzC;EACD;;IAEE,iCAA0C;GAC3C;EACD;;IAEE,+BAAsC;GACvC;EAhBD;IAAgC,wBAA4B;GAAI;EAChE;;IAEE,4BAAoC;GACrC;EACD;;IAEE,8BAAwC;GACzC;EACD;;IAEE,+BAA0C;GAC3C;EACD;;IAEE,6BAAsC;GACvC;EAhBD;IAAgC,0BAA4B;GAAI;EAChE;;IAEE,8BAAoC;GACrC;EACD;;IAEE,gCAAwC;GACzC;EACD;;IAEE,iCAA0C;GAC3C;EACD;;IAEE,+BAAsC;GACvC;EAhBD;IAAgC,wBAA4B;GAAI;EAChE;;IAEE,4BAAoC;GACrC;EACD;;IAEE,8BAAwC;GACzC;EACD;;IAEE,+BAA0C;GAC3C;EACD;;IAEE,6BAAsC;GACvC;EAhBD;IAAgC,sBAA4B;GAAI;EAChE;;IAEE,0BAAoC;GACrC;EACD;;IAEE,4BAAwC;GACzC;EACD;;IAEE,6BAA0C;GAC3C;EACD;;IAEE,2BAAsC;GACvC;EAhBD;IAAgC,4BAA4B;GAAI;EAChE;;IAEE,gCAAoC;GACrC;EACD;;IAEE,kCAAwC;GACzC;EACD;;IAEE,mCAA0C;GAC3C;EACD;;IAEE,iCAAsC;GACvC;EAhBD;IAAgC,2BAA4B;GAAI;EAChE;;IAEE,+BAAoC;GACrC;EACD;;IAEE,iCAAwC;GACzC;EACD;;IAEE,kCAA0C;GAC3C;EACD;;IAEE,gCAAsC;GACvC;EAhBD;IAAgC,yBAA4B;GAAI;EAChE;;IAEE,6BAAoC;GACrC;EACD;;IAEE,+BAAwC;GACzC;EACD;;IAEE,gCAA0C;GAC3C;EACD;;IAEE,8BAAsC;GACvC;EAhBD;IAAgC,2BAA4B;GAAI;EAChE;;IAEE,+BAAoC;GACrC;EACD;;IAEE,iCAAwC;GACzC;EACD;;IAEE,kCAA0C;GAC3C;EACD;;IAEE,gCAAsC;GACvC;EAhBD;IAAgC,yBAA4B;GAAI;EAChE;;IAEE,6BAAoC;GACrC;EACD;;IAEE,+BAAwC;GACzC;EACD;;IAEE,gCAA0C;GAC3C;EACD;;IAEE,8BAAsC;GACvC;EAOD;IAAwB,4BAA2B;GAAI;EACvD;;IAEE,gCAA+B;GAChC;EACD;;IAEE,kCAAiC;GAClC;EACD;;IAEE,mCAAkC;GACnC;EACD;;IAEE,iCAAgC;GACjC;EAhBD;IAAwB,2BAA2B;GAAI;EACvD;;IAEE,+BAA+B;GAChC;EACD;;IAEE,iCAAiC;GAClC;EACD;;IAEE,kCAAkC;GACnC;EACD;;IAEE,gCAAgC;GACjC;EAhBD;IAAwB,yBAA2B;GAAI;EACvD;;IAEE,6BAA+B;GAChC;EACD;;IAEE,+BAAiC;GAClC;EACD;;IAEE,gCAAkC;GACnC;EACD;;IAEE,8BAAgC;GACjC;EAhBD;IAAwB,2BAA2B;GAAI;EACvD;;IAEE,+BAA+B;GAChC;EACD;;IAEE,iCAAiC;GAClC;EACD;;IAEE,kCAAkC;GACnC;EACD;;IAEE,gCAAgC;GACjC;EAhBD;IAAwB,yBAA2B;GAAI;EACvD;;IAEE,6BAA+B;GAChC;EACD;;IAEE,+BAAiC;GAClC;EACD;;IAEE,gCAAkC;GACnC;EACD;;IAEE,8BAAgC;GACjC;EAKL;IAAmB,wBAAuB;GAAI;EAC9C;;IAEE,4BAA2B;GAC5B;EACD;;IAEE,8BAA6B;GAC9B;EACD;;IAEE,+BAA8B;GAC/B;EACD;;IAEE,6BAA4B;GAC7B;CnE+jRJ;;AUzkRG;EyDlDI;IAAgC,qBAA4B;GAAI;EAChE;;IAEE,yBAAoC;GACrC;EACD;;IAEE,2BAAwC;GACzC;EACD;;IAEE,4BAA0C;GAC3C;EACD;;IAEE,0BAAsC;GACvC;EAhBD;IAAgC,2BAA4B;GAAI;EAChE;;IAEE,+BAAoC;GACrC;EACD;;IAEE,iCAAwC;GACzC;EACD;;IAEE,kCAA0C;GAC3C;EACD;;IAEE,gCAAsC;GACvC;EAhBD;IAAgC,0BAA4B;GAAI;EAChE;;IAEE,8BAAoC;GACrC;EACD;;IAEE,gCAAwC;GACzC;EACD;;IAEE,iCAA0C;GAC3C;EACD;;IAEE,+BAAsC;GACvC;EAhBD;IAAgC,wBAA4B;GAAI;EAChE;;IAEE,4BAAoC;GACrC;EACD;;IAEE,8BAAwC;GACzC;EACD;;IAEE,+BAA0C;GAC3C;EACD;;IAEE,6BAAsC;GACvC;EAhBD;IAAgC,0BAA4B;GAAI;EAChE;;IAEE,8BAAoC;GACrC;EACD;;IAEE,gCAAwC;GACzC;EACD;;IAEE,iCAA0C;GAC3C;EACD;;IAEE,+BAAsC;GACvC;EAhBD;IAAgC,wBAA4B;GAAI;EAChE;;IAEE,4BAAoC;GACrC;EACD;;IAEE,8BAAwC;GACzC;EACD;;IAEE,+BAA0C;GAC3C;EACD;;IAEE,6BAAsC;GACvC;EAhBD;IAAgC,sBAA4B;GAAI;EAChE;;IAEE,0BAAoC;GACrC;EACD;;IAEE,4BAAwC;GACzC;EACD;;IAEE,6BAA0C;GAC3C;EACD;;IAEE,2BAAsC;GACvC;EAhBD;IAAgC,4BAA4B;GAAI;EAChE;;IAEE,gCAAoC;GACrC;EACD;;IAEE,kCAAwC;GACzC;EACD;;IAEE,mCAA0C;GAC3C;EACD;;IAEE,iCAAsC;GACvC;EAhBD;IAAgC,2BAA4B;GAAI;EAChE;;IAEE,+BAAoC;GACrC;EACD;;IAEE,iCAAwC;GACzC;EACD;;IAEE,kCAA0C;GAC3C;EACD;;IAEE,gCAAsC;GACvC;EAhBD;IAAgC,yBAA4B;GAAI;EAChE;;IAEE,6BAAoC;GACrC;EACD;;IAEE,+BAAwC;GACzC;EACD;;IAEE,gCAA0C;GAC3C;EACD;;IAEE,8BAAsC;GACvC;EAhBD;IAAgC,2BAA4B;GAAI;EAChE;;IAEE,+BAAoC;GACrC;EACD;;IAEE,iCAAwC;GACzC;EACD;;IAEE,kCAA0C;GAC3C;EACD;;IAEE,gCAAsC;GACvC;EAhBD;IAAgC,yBAA4B;GAAI;EAChE;;IAEE,6BAAoC;GACrC;EACD;;IAEE,+BAAwC;GACzC;EACD;;IAEE,gCAA0C;GAC3C;EACD;;IAEE,8BAAsC;GACvC;EAOD;IAAwB,4BAA2B;GAAI;EACvD;;IAEE,gCAA+B;GAChC;EACD;;IAEE,kCAAiC;GAClC;EACD;;IAEE,mCAAkC;GACnC;EACD;;IAEE,iCAAgC;GACjC;EAhBD;IAAwB,2BAA2B;GAAI;EACvD;;IAEE,+BAA+B;GAChC;EACD;;IAEE,iCAAiC;GAClC;EACD;;IAEE,kCAAkC;GACnC;EACD;;IAEE,gCAAgC;GACjC;EAhBD;IAAwB,yBAA2B;GAAI;EACvD;;IAEE,6BAA+B;GAChC;EACD;;IAEE,+BAAiC;GAClC;EACD;;IAEE,gCAAkC;GACnC;EACD;;IAEE,8BAAgC;GACjC;EAhBD;IAAwB,2BAA2B;GAAI;EACvD;;IAEE,+BAA+B;GAChC;EACD;;IAEE,iCAAiC;GAClC;EACD;;IAEE,kCAAkC;GACnC;EACD;;IAEE,gCAAgC;GACjC;EAhBD;IAAwB,yBAA2B;GAAI;EACvD;;IAEE,6BAA+B;GAChC;EACD;;IAEE,+BAAiC;GAClC;EACD;;IAEE,gCAAkC;GACnC;EACD;;IAEE,8BAAgC;GACjC;EAKL;IAAmB,wBAAuB;GAAI;EAC9C;;IAEE,4BAA2B;GAC5B;EACD;;IAEE,8BAA6B;GAC9B;EACD;;IAEE,+BAA8B;GAC/B;EACD;;IAEE,6BAA4B;GAC7B;CnEw5RJ;;AoEx9RD;EAAkB,6GAA8C;CAAI;;AAIpE;EAAiB,+BAA8B;CAAI;;AACnD;EAAiB,+BAA8B;CAAI;;AACnD;EAAiB,+BAA8B;CAAI;;AACnD;ECTE,iBAAgB;EAChB,2BAAuB;EAAvB,wBAAuB;EACvB,oBAAmB;CDOsB;;AAQvC;EAAwB,4BAA2B;CAAI;;AACvD;EAAwB,6BAA4B;CAAI;;AACxD;EAAwB,8BAA6B;CAAI;;A1DqCzD;E0DvCA;IAAwB,4BAA2B;GAAI;EACvD;IAAwB,6BAA4B;GAAI;EACxD;IAAwB,8BAA6B;GAAI;CpEq/R5D;;AUh9RG;E0DvCA;IAAwB,4BAA2B;GAAI;EACvD;IAAwB,6BAA4B;GAAI;EACxD;IAAwB,8BAA6B;GAAI;CpEigS5D;;AU59RG;E0DvCA;IAAwB,4BAA2B;GAAI;EACvD;IAAwB,6BAA4B;GAAI;EACxD;IAAwB,8BAA6B;GAAI;CpE6gS5D;;AUx+RG;E0DvCA;IAAwB,4BAA2B;GAAI;EACvD;IAAwB,6BAA4B;GAAI;EACxD;IAAwB,8BAA6B;GAAI;CpEyhS5D;;AoEnhSD;EAAmB,qCAAoC;CAAI;;AAC3D;EAAmB,qCAAoC;CAAI;;AAC3D;EAAmB,sCAAqC;CAAI;;AAI5D;EAAuB,4BAA0C;CAAI;;AACrE;EAAuB,gCAA4C;CAAI;;AACvE;EAAuB,4BAA2C;CAAI;;AACtE;EAAuB,4BAAyC;CAAI;;AACpE;EAAuB,+BAA2C;CAAI;;AACtE;EAAuB,8BAA6B;CAAI;;AAIxD;EAAc,uBAAwB;CAAI;;AEvCxC;EACE,0BAAwB;CACzB;;ArESD;EqELM,0BAA0E;CrEQ/E;;AqEdD;EACE,0BAAwB;CACzB;;ArESD;EqELM,0BAA0E;CrEQ/E;;AqEdD;EACE,0BAAwB;CACzB;;ArESD;EqELM,0BAA0E;CrEQ/E;;AqEdD;EACE,0BAAwB;CACzB;;ArESD;EqELM,0BAA0E;CrEQ/E;;AqEdD;EACE,0BAAwB;CACzB;;ArESD;EqELM,0BAA0E;CrEQ/E;;AqEdD;EACE,0BAAwB;CACzB;;ArESD;EqELM,0BAA0E;CrEQ/E;;AqEdD;EACE,0BAAwB;CACzB;;ArESD;EqELM,0BAA0E;CrEQ/E;;AqEdD;EACE,0BAAwB;CACzB;;ArESD;EqELM,0BAA0E;CrEQ/E;;AmE+BH;EAAa,0BAA6B;CAAI;;AAC9C;EAAc,0BAA6B;CAAI;;AAE/C;EAAiB,qCAAkC;CAAI;;AACvD;EAAiB,2CAAkC;CAAI;;AAIvD;EGvDE,YAAW;EACX,mBAAkB;EAClB,kBAAiB;EACjB,8BAA6B;EAC7B,UAAS;CHqDV;;AAED;EAAwB,iCAAgC;CAAI;;AAE5D;EACE,kCAAiC;EACjC,qCAAoC;CACrC;;AAID;EAAc,0BAAyB;CAAI;;AIjE3C;EACE,+BAA8B;CAC/B;;AAED;EACE,8BAA6B;CAC9B;;ACDC;E5EOF;;;I4EDM,6BAA4B;IAE5B,oCAA2B;IAA3B,4BAA2B;GAC5B;EAED;IAEI,2BAA0B;GAC3B;EAQH;IACE,8BAA6B;GAC9B;E5E8LL;I4EhLM,iCAAgC;GACjC;EACD;;IAEE,0B3EzCY;I2E0CZ,yBAAwB;GACzB;EAOD;IACE,4BAA2B;GAC5B;EAED;;IAEE,yBAAwB;GACzB;EAED;;;IAGE,WAAU;IACV,UAAS;GACV;EAED;;IAEE,wBAAuB;GACxB;EAOD;IACE,S3EygCgC;GE6oQnC;EHlsSH;I4E+CM,4BAA2C;GAC5C;EjExFH;IiE0FI,4BAA2C;GAC5C;E5C/EL;I4CmFM,cAAa;GACd;EvChGL;IuCkGM,uB3EtFS;G2EuFV;E7DpGL;I6DuGM,qCAAoC;GAMrC;EAPD;;IAKI,kCAAmC;GACpC;E7DpEP;;I6D0EQ,qCAAsC;GACvC;E7DUP;I6DNM,eAAc;GAQf;E5D9HH;;;;I4D4HM,sB3EvHU;G2EwHX;E7DnBP;I6DuBM,eAAc;IACd,sB3E7HY;G2E8Hb;CzE4oSJ"} -------------------------------------------------------------------------------- /static/css/iframe.css: -------------------------------------------------------------------------------- 1 | [style*="--aspect-ratio"] > :first-child { 2 | width: 100%; 3 | } 4 | [style*="--aspect-ratio"] > img { 5 | height: auto; 6 | } 7 | @supports (--custom:property) { 8 | [style*="--aspect-ratio"] { 9 | position: relative; 10 | } 11 | [style*="--aspect-ratio"]::before { 12 | content: ""; 13 | display: block; 14 | padding-bottom: calc(100% / (var(--aspect-ratio))); 15 | } 16 | [style*="--aspect-ratio"] > :first-child { 17 | position: absolute; 18 | top: 0; 19 | left: 0; 20 | height: 80%; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /static/css/loader.css: -------------------------------------------------------------------------------- 1 | form{ 2 | text-align: center; 3 | transition: opacity 0.6s ease-out; 4 | } 5 | 6 | img{ 7 | display: none; 8 | position: fixed; 9 | top: 50%; 10 | left: 50%; 11 | transform: translate(-50%, -50%); 12 | } 13 | .show{ 14 | display: block; 15 | } 16 | 17 | .fade-out{ 18 | opacity: 0; 19 | } -------------------------------------------------------------------------------- /static/css/onionform.css: -------------------------------------------------------------------------------- 1 | /* fonts */ 2 | @import url(https://fonts.googleapis.com/css?family=PT+Sans:400,400italic); 3 | @import url(https://fonts.googleapis.com/css?family=Droid+Serif); 4 | 5 | html, 6 | body { 7 | background: #2F1E27; 8 | } 9 | 10 | body { 11 | counter-reset: section; 12 | text-align: center; 13 | } 14 | 15 | .container { 16 | position: relative; 17 | top: 10px; 18 | } 19 | 20 | .container h1, 21 | .container span { 22 | font-family: "Pt Sans", helvetica, sans-serif; 23 | } 24 | 25 | .container h1 { 26 | text-align: center; 27 | color: #fff; 28 | font-weight: 100; 29 | font-size: 2em; 30 | margin-bottom: 10px; 31 | } 32 | 33 | .container h2 { 34 | font-family: "droid serif"; 35 | font-style: italic; 36 | color: #d3b6ca; 37 | text-align: center; 38 | font-size: 1.2em; 39 | margin-top: -5; 40 | } 41 | 42 | .container form span:before { 43 | counter-increment: section; 44 | content: counter(section); 45 | border: 2px solid #4c2639; 46 | width: 40px; 47 | height: 40px; 48 | color: #fff; 49 | display: inline-block; 50 | border-radius: 50%; 51 | line-height: 1.6em; 52 | font-size: 1.5em; 53 | position: relative; 54 | left: -22px; 55 | top: -11px; 56 | background: #2F1E27; 57 | } 58 | 59 | form { 60 | margin-top: 25px; 61 | display: inline-block; 62 | } 63 | 64 | .fields { 65 | border-left: 2px solid #4c2639; 66 | } 67 | 68 | .container span { 69 | margin-bottom: 22px; 70 | display: inline-block; 71 | } 72 | 73 | .container span:last-child { 74 | margin-bottom: -11px; 75 | } 76 | 77 | input { 78 | border: none; 79 | outline: none; 80 | display: inline-block; 81 | height: 34px; 82 | vertical-align: middle; 83 | position: relative; 84 | bottom: 0; 85 | right: 9px; 86 | border-radius: 22px; 87 | width: 220px; 88 | box-sizing: border-box; 89 | padding-top: 0; 90 | padding-left: 18px; 91 | padding-right: 18px; 92 | } 93 | 94 | input[type="submit"] { 95 | background: rgba(197,62,126,.33) ! important; 96 | color: #fff; 97 | position: relative; 98 | left: 9px; 99 | top: 25px; 100 | width: 100px; 101 | cursor: pointer; 102 | } 103 | -------------------------------------------------------------------------------- /static/css/owl.carousel.min.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Owl Carousel v2.3.4 3 | * Copyright 2013-2018 David Deutsch 4 | * Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE 5 | */ 6 | .owl-carousel,.owl-carousel .owl-item{-webkit-tap-highlight-color:transparent;position:relative}.owl-carousel{display:none;width:100%;z-index:1}.owl-carousel .owl-stage{position:relative;-ms-touch-action:pan-Y;touch-action:manipulation;-moz-backface-visibility:hidden}.owl-carousel .owl-stage:after{content:".";display:block;clear:both;visibility:hidden;line-height:0;height:0}.owl-carousel .owl-stage-outer{position:relative;overflow:hidden;-webkit-transform:translate3d(0,0,0)}.owl-carousel .owl-item,.owl-carousel .owl-wrapper{-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0)}.owl-carousel .owl-item{min-height:1px;float:left;-webkit-backface-visibility:hidden;-webkit-touch-callout:none}.owl-carousel .owl-item img{display:block;width:100%}.owl-carousel .owl-dots.disabled,.owl-carousel .owl-nav.disabled{display:none}.no-js .owl-carousel,.owl-carousel.owl-loaded{display:block}.owl-carousel .owl-dot,.owl-carousel .owl-nav .owl-next,.owl-carousel .owl-nav .owl-prev{cursor:pointer;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.owl-carousel .owl-nav button.owl-next,.owl-carousel .owl-nav button.owl-prev,.owl-carousel button.owl-dot{background:0 0;color:inherit;border:none;padding:0!important;font:inherit}.owl-carousel.owl-loading{opacity:0;display:block}.owl-carousel.owl-hidden{opacity:0}.owl-carousel.owl-refresh .owl-item{visibility:hidden}.owl-carousel.owl-drag .owl-item{-ms-touch-action:pan-y;touch-action:pan-y;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.owl-carousel.owl-grab{cursor:move;cursor:grab}.owl-carousel.owl-rtl{direction:rtl}.owl-carousel.owl-rtl .owl-item{float:right}.owl-carousel .animated{animation-duration:1s;animation-fill-mode:both}.owl-carousel .owl-animated-in{z-index:0}.owl-carousel .owl-animated-out{z-index:1}.owl-carousel .fadeOut{animation-name:fadeOut}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}.owl-height{transition:height .5s ease-in-out}.owl-carousel .owl-item .owl-lazy{opacity:0;transition:opacity .4s ease}.owl-carousel .owl-item .owl-lazy:not([src]),.owl-carousel .owl-item .owl-lazy[src^=""]{max-height:0}.owl-carousel .owl-item img.owl-lazy{transform-style:preserve-3d}.owl-carousel .owl-video-wrapper{position:relative;height:100%;background:#000}.owl-carousel .owl-video-play-icon{position:absolute;height:80px;width:80px;left:50%;top:50%;margin-left:-40px;margin-top:-40px;background:url(owl.video.play.png) no-repeat;cursor:pointer;z-index:1;-webkit-backface-visibility:hidden;transition:transform .1s ease}.owl-carousel .owl-video-play-icon:hover{-ms-transform:scale(1.3,1.3);transform:scale(1.3,1.3)}.owl-carousel .owl-video-playing .owl-video-play-icon,.owl-carousel .owl-video-playing .owl-video-tn{display:none}.owl-carousel .owl-video-tn{opacity:0;height:100%;background-position:center center;background-repeat:no-repeat;background-size:contain;transition:opacity .4s ease}.owl-carousel .owl-video-frame{position:relative;z-index:1;height:100%;width:100%} -------------------------------------------------------------------------------- /static/css/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-family: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; 3 | background-color: #3c373e; 4 | font-weight: 300; } 5 | 6 | p { 7 | color: rgba(255, 255, 255, 0.5); 8 | font-weight: 300; 9 | font-family: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";} 10 | 11 | h1, h2, h3, h4, h5, h6, 12 | .h1, .h2, .h3, .h4, .h5, .h6 { 13 | font-family: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; } 14 | 15 | a { 16 | -webkit-transition: .3s all ease; 17 | -o-transition: .3s all ease; 18 | transition: .3s all ease; } 19 | a, a:hover { 20 | text-decoration: none !important; } 21 | 22 | .content { 23 | padding: 7rem 0; } 24 | 25 | h2 { 26 | font-size: 20px; 27 | color: #fff; } 28 | 29 | pre { 30 | color: white; 31 | } 32 | 33 | body nav { 34 | background: rgba(255, 255, 255, 0.1); 35 | } 36 | 37 | body nav .navbar-nav a { 38 | font-size: 16px; 39 | text-transform: uppercase; 40 | color: #fff !important; 41 | transition: all 0.3s; 42 | -webkit-transition: all 0.3s; 43 | -ms-transition: all 0.3s; 44 | -o-transition: all 0.3s; 45 | } 46 | 47 | body nav .navbar-nav a:hover { 48 | color: #ff8013 !important; 49 | } 50 | 51 | body nav .navbar-nav .btn-danger { 52 | background: #ff8013; 53 | border-color: #ff8013; 54 | border-radius: 0; 55 | } 56 | 57 | body nav .navbar-nav .btn-danger:hover { 58 | background: #df6700; 59 | border-color: #df6700; 60 | } 61 | .navbar { 62 | position: relative; 63 | display: -webkit-box; 64 | display: -ms-flexbox; 65 | display: flex; 66 | -ms-flex-wrap: wrap; 67 | flex-wrap: wrap; 68 | -webkit-box-align: center; 69 | -ms-flex-align: center; 70 | align-items: center; 71 | -webkit-box-pack: justify; 72 | -ms-flex-pack: justify; 73 | justify-content: space-between; 74 | padding: 0.5rem 1rem; 75 | } 76 | 77 | .navbar > .container, 78 | .navbar > .container-fluid { 79 | display: -webkit-box; 80 | display: -ms-flexbox; 81 | display: flex; 82 | -ms-flex-wrap: wrap; 83 | flex-wrap: wrap; 84 | -webkit-box-align: center; 85 | -ms-flex-align: center; 86 | align-items: center; 87 | -webkit-box-pack: justify; 88 | -ms-flex-pack: justify; 89 | justify-content: space-between; 90 | } 91 | 92 | .navbar-brand { 93 | display: inline-block; 94 | padding-top: 0.3125rem; 95 | padding-bottom: 0.3125rem; 96 | margin-right: 1rem; 97 | font-size: 1.25rem; 98 | line-height: inherit; 99 | white-space: nowrap; 100 | } 101 | 102 | .navbar-brand:hover, .navbar-brand:focus { 103 | text-decoration: none; 104 | } 105 | 106 | .navbar-nav { 107 | display: -webkit-box; 108 | display: -ms-flexbox; 109 | display: flex; 110 | -webkit-box-orient: vertical; 111 | -webkit-box-direction: normal; 112 | -ms-flex-direction: column; 113 | flex-direction: column; 114 | padding-left: 0; 115 | margin-bottom: 0; 116 | list-style: none; 117 | } 118 | 119 | .navbar-nav .nav-link { 120 | padding-right: 0; 121 | padding-left: 0; 122 | } 123 | 124 | .navbar-nav .dropdown-menu { 125 | position: static; 126 | float: none; 127 | } 128 | 129 | .navbar-text { 130 | display: inline-block; 131 | padding-top: 0.5rem; 132 | padding-bottom: 0.5rem; 133 | } 134 | 135 | .navbar-collapse { 136 | -ms-flex-preferred-size: 100%; 137 | flex-basis: 100%; 138 | -webkit-box-flex: 1; 139 | -ms-flex-positive: 1; 140 | flex-grow: 1; 141 | -webkit-box-align: center; 142 | -ms-flex-align: center; 143 | align-items: center; 144 | } 145 | 146 | .navbar-toggler { 147 | padding: 0.25rem 0.75rem; 148 | font-size: 1.25rem; 149 | line-height: 1; 150 | background-color: transparent; 151 | border: 1px solid transparent; 152 | border-radius: 0.25rem; 153 | } 154 | 155 | .navbar-toggler:hover, .navbar-toggler:focus { 156 | text-decoration: none; 157 | } 158 | 159 | .navbar-toggler-icon { 160 | display: inline-block; 161 | width: 1.5em; 162 | height: 1.5em; 163 | vertical-align: middle; 164 | content: ""; 165 | background: no-repeat center center; 166 | background-size: 100% 100%; 167 | } 168 | 169 | @media (max-width: 575.98px) { 170 | .navbar-expand-sm > .container, 171 | .navbar-expand-sm > .container-fluid { 172 | padding-right: 0; 173 | padding-left: 0; 174 | } 175 | } 176 | 177 | @media (min-width: 576px) { 178 | .navbar-expand-sm { 179 | -webkit-box-orient: horizontal; 180 | -webkit-box-direction: normal; 181 | -ms-flex-flow: row nowrap; 182 | flex-flow: row nowrap; 183 | -webkit-box-pack: start; 184 | -ms-flex-pack: start; 185 | justify-content: flex-start; 186 | } 187 | .navbar-expand-sm .navbar-nav { 188 | -webkit-box-orient: horizontal; 189 | -webkit-box-direction: normal; 190 | -ms-flex-direction: row; 191 | flex-direction: row; 192 | } 193 | .navbar-expand-sm .navbar-nav .dropdown-menu { 194 | position: absolute; 195 | } 196 | .navbar-expand-sm .navbar-nav .nav-link { 197 | padding-right: 0.5rem; 198 | padding-left: 0.5rem; 199 | } 200 | .navbar-expand-sm > .container, 201 | .navbar-expand-sm > .container-fluid { 202 | -ms-flex-wrap: nowrap; 203 | flex-wrap: nowrap; 204 | } 205 | .navbar-expand-sm .navbar-collapse { 206 | display: -webkit-box !important; 207 | display: -ms-flexbox !important; 208 | display: flex !important; 209 | -ms-flex-preferred-size: auto; 210 | flex-basis: auto; 211 | } 212 | .navbar-expand-sm .navbar-toggler { 213 | display: none; 214 | } 215 | } 216 | 217 | @media (max-width: 767.98px) { 218 | .navbar-expand-md > .container, 219 | .navbar-expand-md > .container-fluid { 220 | padding-right: 0; 221 | padding-left: 0; 222 | } 223 | } 224 | 225 | @media (min-width: 768px) { 226 | .navbar-expand-md { 227 | -webkit-box-orient: horizontal; 228 | -webkit-box-direction: normal; 229 | -ms-flex-flow: row nowrap; 230 | flex-flow: row nowrap; 231 | -webkit-box-pack: start; 232 | -ms-flex-pack: start; 233 | justify-content: flex-start; 234 | } 235 | .navbar-expand-md .navbar-nav { 236 | -webkit-box-orient: horizontal; 237 | -webkit-box-direction: normal; 238 | -ms-flex-direction: row; 239 | flex-direction: row; 240 | } 241 | .navbar-expand-md .navbar-nav .dropdown-menu { 242 | position: absolute; 243 | } 244 | .navbar-expand-md .navbar-nav .nav-link { 245 | padding-right: 0.5rem; 246 | padding-left: 0.5rem; 247 | } 248 | .navbar-expand-md > .container, 249 | .navbar-expand-md > .container-fluid { 250 | -ms-flex-wrap: nowrap; 251 | flex-wrap: nowrap; 252 | } 253 | .navbar-expand-md .navbar-collapse { 254 | display: -webkit-box !important; 255 | display: -ms-flexbox !important; 256 | display: flex !important; 257 | -ms-flex-preferred-size: auto; 258 | flex-basis: auto; 259 | } 260 | .navbar-expand-md .navbar-toggler { 261 | display: none; 262 | } 263 | } 264 | 265 | @media (max-width: 991.98px) { 266 | .navbar-expand-lg > .container, 267 | .navbar-expand-lg > .container-fluid { 268 | padding-right: 0; 269 | padding-left: 0; 270 | } 271 | } 272 | 273 | @media (min-width: 992px) { 274 | .navbar-expand-lg { 275 | -webkit-box-orient: horizontal; 276 | -webkit-box-direction: normal; 277 | -ms-flex-flow: row nowrap; 278 | flex-flow: row nowrap; 279 | -webkit-box-pack: start; 280 | -ms-flex-pack: start; 281 | justify-content: flex-start; 282 | } 283 | .navbar-expand-lg .navbar-nav { 284 | -webkit-box-orient: horizontal; 285 | -webkit-box-direction: normal; 286 | -ms-flex-direction: row; 287 | flex-direction: row; 288 | } 289 | .navbar-expand-lg .navbar-nav .dropdown-menu { 290 | position: absolute; 291 | } 292 | .navbar-expand-lg .navbar-nav .nav-link { 293 | padding-right: 0.5rem; 294 | padding-left: 0.5rem; 295 | } 296 | .navbar-expand-lg > .container, 297 | .navbar-expand-lg > .container-fluid { 298 | -ms-flex-wrap: nowrap; 299 | flex-wrap: nowrap; 300 | } 301 | .navbar-expand-lg .navbar-collapse { 302 | display: -webkit-box !important; 303 | display: -ms-flexbox !important; 304 | display: flex !important; 305 | -ms-flex-preferred-size: auto; 306 | flex-basis: auto; 307 | } 308 | .navbar-expand-lg .navbar-toggler { 309 | display: none; 310 | } 311 | } 312 | 313 | @media (max-width: 1199.98px) { 314 | .navbar-expand-xl > .container, 315 | .navbar-expand-xl > .container-fluid { 316 | padding-right: 0; 317 | padding-left: 0; 318 | } 319 | } 320 | 321 | @media (min-width: 1200px) { 322 | .navbar-expand-xl { 323 | -webkit-box-orient: horizontal; 324 | -webkit-box-direction: normal; 325 | -ms-flex-flow: row nowrap; 326 | flex-flow: row nowrap; 327 | -webkit-box-pack: start; 328 | -ms-flex-pack: start; 329 | justify-content: flex-start; 330 | } 331 | .navbar-expand-xl .navbar-nav { 332 | -webkit-box-orient: horizontal; 333 | -webkit-box-direction: normal; 334 | -ms-flex-direction: row; 335 | flex-direction: row; 336 | } 337 | .navbar-expand-xl .navbar-nav .dropdown-menu { 338 | position: absolute; 339 | } 340 | .navbar-expand-xl .navbar-nav .nav-link { 341 | padding-right: 0.5rem; 342 | padding-left: 0.5rem; 343 | } 344 | .navbar-expand-xl > .container, 345 | .navbar-expand-xl > .container-fluid { 346 | -ms-flex-wrap: nowrap; 347 | flex-wrap: nowrap; 348 | } 349 | .navbar-expand-xl .navbar-collapse { 350 | display: -webkit-box !important; 351 | display: -ms-flexbox !important; 352 | display: flex !important; 353 | -ms-flex-preferred-size: auto; 354 | flex-basis: auto; 355 | } 356 | .navbar-expand-xl .navbar-toggler { 357 | display: none; 358 | } 359 | } 360 | 361 | .navbar-expand { 362 | -webkit-box-orient: horizontal; 363 | -webkit-box-direction: normal; 364 | -ms-flex-flow: row nowrap; 365 | flex-flow: row nowrap; 366 | -webkit-box-pack: start; 367 | -ms-flex-pack: start; 368 | justify-content: flex-start; 369 | } 370 | 371 | .navbar-expand > .container, 372 | .navbar-expand > .container-fluid { 373 | padding-right: 0; 374 | padding-left: 0; 375 | } 376 | 377 | .navbar-expand .navbar-nav { 378 | -webkit-box-orient: horizontal; 379 | -webkit-box-direction: normal; 380 | -ms-flex-direction: row; 381 | flex-direction: row; 382 | } 383 | 384 | .navbar-expand .navbar-nav .dropdown-menu { 385 | position: absolute; 386 | } 387 | 388 | .navbar-expand .navbar-nav .nav-link { 389 | padding-right: 0.5rem; 390 | padding-left: 0.5rem; 391 | } 392 | 393 | .navbar-expand > .container, 394 | .navbar-expand > .container-fluid { 395 | -ms-flex-wrap: nowrap; 396 | flex-wrap: nowrap; 397 | } 398 | 399 | .navbar-expand .navbar-collapse { 400 | display: -webkit-box !important; 401 | display: -ms-flexbox !important; 402 | display: flex !important; 403 | -ms-flex-preferred-size: auto; 404 | flex-basis: auto; 405 | } 406 | 407 | .navbar-expand .navbar-toggler { 408 | display: none; 409 | } 410 | 411 | .navbar-light .navbar-brand { 412 | color: rgba(0, 0, 0, 0.9); 413 | } 414 | 415 | .navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus { 416 | color: rgba(0, 0, 0, 0.9); 417 | } 418 | 419 | .navbar-light .navbar-nav .nav-link { 420 | color: rgba(0, 0, 0, 0.5); 421 | } 422 | 423 | .navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus { 424 | color: rgba(0, 0, 0, 0.7); 425 | } 426 | 427 | .navbar-light .navbar-nav .nav-link.disabled { 428 | color: rgba(0, 0, 0, 0.3); 429 | } 430 | 431 | .navbar-light .navbar-nav .show > .nav-link, 432 | .navbar-light .navbar-nav .active > .nav-link, 433 | .navbar-light .navbar-nav .nav-link.show, 434 | .navbar-light .navbar-nav .nav-link.active { 435 | color: rgba(0, 0, 0, 0.9); 436 | } 437 | 438 | .navbar-light .navbar-toggler { 439 | color: rgba(0, 0, 0, 0.5); 440 | border-color: rgba(0, 0, 0, 0.1); 441 | } 442 | 443 | .navbar-light .navbar-toggler-icon { 444 | background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); 445 | } 446 | 447 | .navbar-light .navbar-text { 448 | color: rgba(0, 0, 0, 0.5); 449 | } 450 | 451 | .navbar-light .navbar-text a { 452 | color: rgba(0, 0, 0, 0.9); 453 | } 454 | 455 | .navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus { 456 | color: rgba(0, 0, 0, 0.9); 457 | } 458 | 459 | .navbar-dark .navbar-brand { 460 | color: #fff; 461 | } 462 | 463 | .navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus { 464 | color: #fff; 465 | } 466 | 467 | .navbar-dark .navbar-nav .nav-link { 468 | color: rgba(255, 255, 255, 0.5); 469 | } 470 | 471 | .navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus { 472 | color: rgba(255, 255, 255, 0.75); 473 | } 474 | 475 | .navbar-dark .navbar-nav .nav-link.disabled { 476 | color: rgba(255, 255, 255, 0.25); 477 | } 478 | 479 | .navbar-dark .navbar-nav .show > .nav-link, 480 | .navbar-dark .navbar-nav .active > .nav-link, 481 | .navbar-dark .navbar-nav .nav-link.show, 482 | .navbar-dark .navbar-nav .nav-link.active { 483 | color: #fff; 484 | } 485 | 486 | .navbar-dark .navbar-toggler { 487 | color: rgba(255, 255, 255, 0.5); 488 | border-color: rgba(255, 255, 255, 0.1); 489 | } 490 | 491 | .navbar-dark .navbar-toggler-icon { 492 | background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); 493 | } 494 | 495 | .navbar-dark .navbar-text { 496 | color: rgba(255, 255, 255, 0.5); 497 | } 498 | 499 | .navbar-dark .navbar-text a { 500 | color: #fff; 501 | } 502 | 503 | .navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus { 504 | color: #fff; 505 | } 506 | 507 | footer .footer3 .nav-item li { 508 | margin: 0 5px; 509 | } 510 | 511 | @media (max-width: 767px) { 512 | body nav .navbar-nav { 513 | margin-left: 0 !important; 514 | max-width: 50px; 515 | } 516 | } 517 | @media (min-width: 576px) { 518 | .container { 519 | max-width: 540px; 520 | } 521 | } 522 | @media (min-width: 768px) { 523 | .container { 524 | max-width: 720px; 525 | } 526 | } 527 | @media (min-width: 992px) { 528 | .container { 529 | max-width: 960px; 530 | } 531 | } 532 | 533 | @media (min-width: 1200px) { 534 | .container { 535 | max-width: 1140px; 536 | } 537 | } 538 | article, aside, figcaption, figure, footer, header, hgroup, main, nav, section { 539 | display: block; 540 | } 541 | 542 | .nav { 543 | display: -webkit-box; 544 | display: -ms-flexbox; 545 | display: flex; 546 | -ms-flex-wrap: wrap; 547 | flex-wrap: wrap; 548 | padding-left: 0; 549 | margin-bottom: 0; 550 | list-style: none; 551 | } 552 | 553 | .nav-link { 554 | display: block; 555 | padding: 0.5rem 1rem; 556 | } 557 | 558 | .nav-link:hover, .nav-link:focus { 559 | text-decoration: none; 560 | } 561 | 562 | .nav-link.disabled { 563 | color: #6c757d; 564 | pointer-events: none; 565 | cursor: default; 566 | } 567 | 568 | .nav-tabs { 569 | border-bottom: 1px solid #dee2e6; 570 | } 571 | 572 | .nav-tabs .nav-item { 573 | margin-bottom: -1px; 574 | } 575 | 576 | .nav-tabs .nav-link { 577 | border: 1px solid transparent; 578 | border-top-left-radius: 0.25rem; 579 | border-top-right-radius: 0.25rem; 580 | } 581 | 582 | .nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus { 583 | border-color: #e9ecef #e9ecef #dee2e6; 584 | } 585 | 586 | .nav-tabs .nav-link.disabled { 587 | color: #6c757d; 588 | background-color: transparent; 589 | border-color: transparent; 590 | } 591 | 592 | .nav-tabs .nav-link.active, 593 | .nav-tabs .nav-item.show .nav-link { 594 | color: #495057; 595 | background-color: #fff; 596 | border-color: #dee2e6 #dee2e6 #fff; 597 | } 598 | 599 | .nav-tabs .dropdown-menu { 600 | margin-top: -1px; 601 | border-top-left-radius: 0; 602 | border-top-right-radius: 0; 603 | } 604 | 605 | .nav-pills .nav-link { 606 | border-radius: 0.25rem; 607 | } 608 | 609 | .nav-pills .nav-link.active, 610 | .nav-pills .show > .nav-link { 611 | color: #fff; 612 | background-color: #007bff; 613 | } 614 | 615 | .nav-fill .nav-item { 616 | -webkit-box-flex: 1; 617 | -ms-flex: 1 1 auto; 618 | flex: 1 1 auto; 619 | text-align: center; 620 | } 621 | 622 | .nav-justified .nav-item { 623 | -ms-flex-preferred-size: 0; 624 | flex-basis: 0; 625 | -webkit-box-flex: 1; 626 | -ms-flex-positive: 1; 627 | flex-grow: 1; 628 | text-align: center; 629 | } 630 | .mr-auto, 631 | .mx-auto { 632 | margin-right: auto !important; 633 | } 634 | 635 | .ml-auto, 636 | .mx-auto { 637 | margin-left: auto !important; 638 | } 639 | 640 | .container { 641 | min-width: 992px !important; 642 | } 643 | .container { 644 | width: 100%; 645 | padding-right: 15px; 646 | padding-left: 15px; 647 | margin-right: auto; 648 | margin-left: auto; 649 | } 650 | 651 | .custom-table { 652 | min-width: 900px; } 653 | .custom-table thead tr, .custom-table thead th { 654 | padding-bottom: 30px; 655 | border-top: none; 656 | border-bottom: none !important; 657 | color: #fff; 658 | font-size: 11px; 659 | text-transform: uppercase; 660 | letter-spacing: .2rem; } 661 | .custom-table tbody th, .custom-table tbody td { 662 | color: #777; 663 | font-weight: 400; 664 | padding-bottom: 20px; 665 | padding-top: 20px; 666 | font-weight: 300; 667 | border: none; 668 | -webkit-transition: .3s all ease; 669 | -o-transition: .3s all ease; 670 | transition: .3s all ease; } 671 | .custom-table tbody th small, .custom-table tbody td small { 672 | color: rgba(255, 255, 255, 0.3); 673 | font-weight: 300; } 674 | .custom-table tbody th a, .custom-table tbody td a { 675 | color: rgba(255, 255, 255, 0.3); } 676 | .custom-table tbody th .more, .custom-table tbody td .more { 677 | color: rgba(255, 255, 255, 0.3); 678 | font-size: 11px; 679 | font-weight: 900; 680 | text-transform: uppercase; 681 | letter-spacing: .2rem; } 682 | .custom-table tbody tr { 683 | -webkit-transition: .3s all ease; 684 | -o-transition: .3s all ease; 685 | transition: .3s all ease; } 686 | .custom-table tbody tr:hover td, .custom-table tbody tr:focus td { 687 | color: #fff; } 688 | .custom-table tbody tr:hover td a, .custom-table tbody tr:focus td a { 689 | color: #fdd114; } 690 | .custom-table tbody tr:hover td .more, .custom-table tbody tr:focus td .more { 691 | color: #fdd114; } 692 | .custom-table .td-box-wrap { 693 | padding: 0; } 694 | .custom-table .box { 695 | background: #fff; 696 | border-radius: 4px; 697 | margin-top: 15px; 698 | margin-bottom: 15px; } 699 | .custom-table .box td, .custom-table .box th { 700 | border: none !important; } 701 | -------------------------------------------------------------------------------- /static/css/timer.css: -------------------------------------------------------------------------------- 1 | @import url(https://fonts.googleapis.com/css?family=Yanone+Kaffeesatz:200,300,400); 2 | 3 | * { 4 | box-sizing: border-box; 5 | } 6 | 7 | p { 8 | color: #fff; 9 | font-family: 'Yanone Kaffeesatz', sans-serif; 10 | } 11 | 12 | 13 | 14 | .timer-group { 15 | height: 400px; 16 | margin: 0 auto; 17 | position: relative; 18 | width: 400px; 19 | } 20 | 21 | .timer { 22 | border-radius: 50%; 23 | height: 100px; 24 | overflow: hidden; 25 | position: absolute; 26 | width: 100px; 27 | } 28 | 29 | .timer:after { 30 | background: #111 url(https://codepen.io/images/classy_fabric.png); 31 | border-radius: 50%; 32 | content: ""; 33 | display: block; 34 | height: 80px; 35 | left: 10px; 36 | position: absolute; 37 | width: 80px; 38 | top: 10px; 39 | } 40 | 41 | .timer .hand { 42 | float: left; 43 | height: 100%; 44 | overflow: hidden; 45 | position: relative; 46 | width: 50%; 47 | } 48 | 49 | .timer .hand span { 50 | border: 50px solid rgba(0, 255, 255, .4); 51 | border-bottom-color: transparent; 52 | border-left-color: transparent; 53 | border-radius: 50%; 54 | display: block; 55 | height: 0; 56 | position: absolute; 57 | right: 0; 58 | top: 0; 59 | transform: rotate(225deg); 60 | width: 0; 61 | } 62 | 63 | .timer .hand:first-child { 64 | transform: rotate(180deg); 65 | } 66 | 67 | .timer .hand span { 68 | animation-duration: 4s; 69 | animation-iteration-count: infinite; 70 | animation-timing-function: linear; 71 | } 72 | 73 | .timer .hand:first-child span { 74 | animation-name: spin1; 75 | } 76 | 77 | .timer .hand:last-child span { 78 | animation-name: spin2; 79 | } 80 | 81 | .timer.hour { 82 | background: rgba(0, 0, 0, .3); 83 | height: 400px; 84 | left: 0; 85 | width: 400px; 86 | top: 0; 87 | } 88 | 89 | .timer.hour .hand span { 90 | animation-duration: 3600s; 91 | border-top-color: rgba(255, 0, 255, .4); 92 | border-right-color: rgba(255, 0, 255, .4); 93 | border-width: 200px; 94 | } 95 | 96 | .timer.hour:after { 97 | height: 360px; 98 | left: 20px; 99 | width: 360px; 100 | top: 20px; 101 | } 102 | 103 | .timer.minute { 104 | background: rgba(0, 0, 0, .2); 105 | height: 350px; 106 | left: 25px; 107 | width: 350px; 108 | top: 25px; 109 | } 110 | 111 | .timer.minute .hand span { 112 | animation-duration: 60s; 113 | border-top-color: rgba(0, 255, 255, .4); 114 | border-right-color: rgba(0, 255, 255, .4); 115 | border-width: 175px; 116 | } 117 | 118 | .timer.minute:after { 119 | height: 310px; 120 | left: 20px; 121 | width: 310px; 122 | top: 20px; 123 | } 124 | 125 | .timer.second { 126 | background: rgba(0, 0, 0, .2); 127 | height: 300px; 128 | left: 50px; 129 | width: 300px; 130 | top: 50px; 131 | } 132 | 133 | .timer.second .hand span { 134 | animation-duration: 1s; 135 | border-top-color: rgba(255, 255, 255, .15); 136 | border-right-color: rgba(255, 255, 255, .15); 137 | border-width: 150px; 138 | } 139 | 140 | .timer.second:after { 141 | height: 296px; 142 | left: 2px; 143 | width: 296px; 144 | top: 2px; 145 | } 146 | 147 | .face { 148 | background: rgba(0, 0, 0, .1); 149 | border-radius: 50%; 150 | height: 296px; 151 | left: 52px; 152 | padding: 165px 40px 0; 153 | position: absolute; 154 | width: 296px; 155 | text-align: center; 156 | top: 52px; 157 | } 158 | 159 | .face h2 { 160 | font-weight: 300; 161 | } 162 | 163 | .face p { 164 | border-radius: 20px; 165 | font-size: 76px; 166 | font-weight: 400; 167 | position: absolute; 168 | top: 17px; 169 | width: 260px; 170 | left: 20px; 171 | } 172 | 173 | @keyframes spin1 { 174 | 0% { 175 | transform: rotate(225deg); 176 | } 177 | 50% { 178 | transform: rotate(225deg); 179 | } 180 | 100% { 181 | transform: rotate(405deg); 182 | } 183 | } 184 | 185 | @keyframes spin2 { 186 | 0% { 187 | transform: rotate(225deg); 188 | } 189 | 50% { 190 | transform: rotate(405deg); 191 | } 192 | 100% { 193 | transform: rotate(405deg); 194 | } 195 | } -------------------------------------------------------------------------------- /static/fonts/icomoon/Read Me.txt: -------------------------------------------------------------------------------- 1 | Open *demo.html* to see a list of all the glyphs in your font along with their codes/ligatures. 2 | 3 | To use the generated font in desktop programs, you can install the TTF font. In order to copy the character associated with each icon, refer to the text box at the bottom right corner of each glyph in demo.html. The character inside this text box may be invisible; but it can still be copied. See this guide for more info: https://icomoon.io/#docs/local-fonts 4 | 5 | You won't need any of the files located under the *demo-files* directory when including the generated font in your own projects. 6 | 7 | You can import *selection.json* back to the IcoMoon app using the *Import Icons* button (or via Main Menu → Manage Projects) to retrieve your icon selection. 8 | -------------------------------------------------------------------------------- /static/fonts/icomoon/demo-files/demo.css: -------------------------------------------------------------------------------- 1 | body { 2 | padding: 0; 3 | margin: 0; 4 | font-family: sans-serif; 5 | font-size: 1em; 6 | line-height: 1.5; 7 | color: #555; 8 | background: #fff; 9 | } 10 | h1 { 11 | font-size: 1.5em; 12 | font-weight: normal; 13 | } 14 | small { 15 | font-size: .66666667em; 16 | } 17 | a { 18 | color: #e74c3c; 19 | text-decoration: none; 20 | } 21 | a:hover, a:focus { 22 | box-shadow: 0 1px #e74c3c; 23 | } 24 | .bshadow0, input { 25 | box-shadow: inset 0 -2px #e7e7e7; 26 | } 27 | input:hover { 28 | box-shadow: inset 0 -2px #ccc; 29 | } 30 | input, fieldset { 31 | font-family: sans-serif; 32 | font-size: 1em; 33 | margin: 0; 34 | padding: 0; 35 | border: 0; 36 | } 37 | input { 38 | color: inherit; 39 | line-height: 1.5; 40 | height: 1.5em; 41 | padding: .25em 0; 42 | } 43 | input:focus { 44 | outline: none; 45 | box-shadow: inset 0 -2px #449fdb; 46 | } 47 | .glyph { 48 | font-size: 16px; 49 | width: 15em; 50 | padding-bottom: 1em; 51 | margin-right: 4em; 52 | margin-bottom: 1em; 53 | float: left; 54 | overflow: hidden; 55 | } 56 | .liga { 57 | width: 80%; 58 | width: calc(100% - 2.5em); 59 | } 60 | .talign-right { 61 | text-align: right; 62 | } 63 | .talign-center { 64 | text-align: center; 65 | } 66 | .bgc1 { 67 | background: #f1f1f1; 68 | } 69 | .fgc1 { 70 | color: #999; 71 | } 72 | .fgc0 { 73 | color: #000; 74 | } 75 | p { 76 | margin-top: 1em; 77 | margin-bottom: 1em; 78 | } 79 | .mvm { 80 | margin-top: .75em; 81 | margin-bottom: .75em; 82 | } 83 | .mtn { 84 | margin-top: 0; 85 | } 86 | .mtl, .mal { 87 | margin-top: 1.5em; 88 | } 89 | .mbl, .mal { 90 | margin-bottom: 1.5em; 91 | } 92 | .mal, .mhl { 93 | margin-left: 1.5em; 94 | margin-right: 1.5em; 95 | } 96 | .mhmm { 97 | margin-left: 1em; 98 | margin-right: 1em; 99 | } 100 | .mls { 101 | margin-left: .25em; 102 | } 103 | .ptl { 104 | padding-top: 1.5em; 105 | } 106 | .pbs, .pvs { 107 | padding-bottom: .25em; 108 | } 109 | .pvs, .pts { 110 | padding-top: .25em; 111 | } 112 | .unit { 113 | float: left; 114 | } 115 | .unitRight { 116 | float: right; 117 | } 118 | .size1of2 { 119 | width: 50%; 120 | } 121 | .size1of1 { 122 | width: 100%; 123 | } 124 | .clearfix:before, .clearfix:after { 125 | content: " "; 126 | display: table; 127 | } 128 | .clearfix:after { 129 | clear: both; 130 | } 131 | .hidden-true { 132 | display: none; 133 | } 134 | .textbox0 { 135 | width: 3em; 136 | background: #f1f1f1; 137 | padding: .25em .5em; 138 | line-height: 1.5; 139 | height: 1.5em; 140 | } 141 | #testDrive { 142 | display: block; 143 | padding-top: 24px; 144 | line-height: 1.5; 145 | } 146 | .fs0 { 147 | font-size: 16px; 148 | } 149 | .fs1 { 150 | font-size: 28px; 151 | } 152 | .fs2 { 153 | font-size: 24px; 154 | } 155 | 156 | -------------------------------------------------------------------------------- /static/fonts/icomoon/demo-files/demo.js: -------------------------------------------------------------------------------- 1 | if (!('boxShadow' in document.body.style)) { 2 | document.body.setAttribute('class', 'noBoxShadow'); 3 | } 4 | 5 | document.body.addEventListener("click", function(e) { 6 | var target = e.target; 7 | if (target.tagName === "INPUT" && 8 | target.getAttribute('class').indexOf('liga') === -1) { 9 | target.select(); 10 | } 11 | }); 12 | 13 | (function() { 14 | var fontSize = document.getElementById('fontSize'), 15 | testDrive = document.getElementById('testDrive'), 16 | testText = document.getElementById('testText'); 17 | function updateTest() { 18 | testDrive.innerHTML = testText.value || String.fromCharCode(160); 19 | if (window.icomoonLiga) { 20 | window.icomoonLiga(testDrive); 21 | } 22 | } 23 | function updateSize() { 24 | testDrive.style.fontSize = fontSize.value + 'px'; 25 | } 26 | fontSize.addEventListener('change', updateSize, false); 27 | testText.addEventListener('input', updateTest, false); 28 | testText.addEventListener('change', updateTest, false); 29 | updateSize(); 30 | }()); 31 | -------------------------------------------------------------------------------- /static/fonts/icomoon/fonts/icomoon.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmrswapme/swapfe/66e2837f6e1f60287f8f60caaec896bfc10f439b/static/fonts/icomoon/fonts/icomoon.eot -------------------------------------------------------------------------------- /static/fonts/icomoon/fonts/icomoon.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmrswapme/swapfe/66e2837f6e1f60287f8f60caaec896bfc10f439b/static/fonts/icomoon/fonts/icomoon.ttf -------------------------------------------------------------------------------- /static/fonts/icomoon/fonts/icomoon.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmrswapme/swapfe/66e2837f6e1f60287f8f60caaec896bfc10f439b/static/fonts/icomoon/fonts/icomoon.woff -------------------------------------------------------------------------------- /static/img/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmrswapme/swapfe/66e2837f6e1f60287f8f60caaec896bfc10f439b/static/img/loading.gif -------------------------------------------------------------------------------- /static/img/logo_xmrswap_128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmrswapme/swapfe/66e2837f6e1f60287f8f60caaec896bfc10f439b/static/img/logo_xmrswap_128.png -------------------------------------------------------------------------------- /static/img/qrcodes/.exists: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmrswapme/swapfe/66e2837f6e1f60287f8f60caaec896bfc10f439b/static/img/qrcodes/.exists -------------------------------------------------------------------------------- /static/img/qrcodes/0346c21417e63352a135d2d2968fe481303122cafb35d0e63e921176927464e4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmrswapme/swapfe/66e2837f6e1f60287f8f60caaec896bfc10f439b/static/img/qrcodes/0346c21417e63352a135d2d2968fe481303122cafb35d0e63e921176927464e4.png -------------------------------------------------------------------------------- /static/img/qrcodes/162ec52031786189d4de231ddd67a0ea7a195cf7d97f03d1e5464f2034d8057d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmrswapme/swapfe/66e2837f6e1f60287f8f60caaec896bfc10f439b/static/img/qrcodes/162ec52031786189d4de231ddd67a0ea7a195cf7d97f03d1e5464f2034d8057d.png -------------------------------------------------------------------------------- /static/img/qrcodes/2156ae3ab5236d6e20154c339ebfc5404c65647ba67fb489961462e8d1c5df07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmrswapme/swapfe/66e2837f6e1f60287f8f60caaec896bfc10f439b/static/img/qrcodes/2156ae3ab5236d6e20154c339ebfc5404c65647ba67fb489961462e8d1c5df07.png -------------------------------------------------------------------------------- /static/img/qrcodes/2fc39381fb5b431cf6f2b5f5439c14a5208625bbc33b39a40d9b650e379340aa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmrswapme/swapfe/66e2837f6e1f60287f8f60caaec896bfc10f439b/static/img/qrcodes/2fc39381fb5b431cf6f2b5f5439c14a5208625bbc33b39a40d9b650e379340aa.png -------------------------------------------------------------------------------- /static/img/qrcodes/3b59b8217333ec875075c91aa08a7d9077103b4196ddaacb2f0cb8d93b675057.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmrswapme/swapfe/66e2837f6e1f60287f8f60caaec896bfc10f439b/static/img/qrcodes/3b59b8217333ec875075c91aa08a7d9077103b4196ddaacb2f0cb8d93b675057.png -------------------------------------------------------------------------------- /static/img/qrcodes/81ea87119e74ddbdb7e0a141284eea7583ab106208bb3c13794bbd215e1997fc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmrswapme/swapfe/66e2837f6e1f60287f8f60caaec896bfc10f439b/static/img/qrcodes/81ea87119e74ddbdb7e0a141284eea7583ab106208bb3c13794bbd215e1997fc.png -------------------------------------------------------------------------------- /static/img/qrcodes/836db89f3b7f98d314b01101782ff23d6a2f8ec1eb04a77d8430bd0bfb2e1106.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmrswapme/swapfe/66e2837f6e1f60287f8f60caaec896bfc10f439b/static/img/qrcodes/836db89f3b7f98d314b01101782ff23d6a2f8ec1eb04a77d8430bd0bfb2e1106.png -------------------------------------------------------------------------------- /static/img/qrcodes/b04df9cfe6a56cfa9505c58a34d2d92da79f01052c55c6f3c51a2cd74cd9e685.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmrswapme/swapfe/66e2837f6e1f60287f8f60caaec896bfc10f439b/static/img/qrcodes/b04df9cfe6a56cfa9505c58a34d2d92da79f01052c55c6f3c51a2cd74cd9e685.png -------------------------------------------------------------------------------- /static/img/qrcodes/b3e02e46cf323575ad51b74bf82df063285de5d42cb7fdaf1695fc7000b3b28b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmrswapme/swapfe/66e2837f6e1f60287f8f60caaec896bfc10f439b/static/img/qrcodes/b3e02e46cf323575ad51b74bf82df063285de5d42cb7fdaf1695fc7000b3b28b.png -------------------------------------------------------------------------------- /static/img/qrcodes/ccdfb3e058ac259a458a0d300e8eecf36e2c340bd866c06af0b725ea8c69d174.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmrswapme/swapfe/66e2837f6e1f60287f8f60caaec896bfc10f439b/static/img/qrcodes/ccdfb3e058ac259a458a0d300e8eecf36e2c340bd866c06af0b725ea8c69d174.png -------------------------------------------------------------------------------- /static/img/qrcodes/df32295433168e74dc5d6c35a259aaa04f9b2a27a3cc46747fc9d268775a8bfb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmrswapme/swapfe/66e2837f6e1f60287f8f60caaec896bfc10f439b/static/img/qrcodes/df32295433168e74dc5d6c35a259aaa04f9b2a27a3cc46747fc9d268775a8bfb.png -------------------------------------------------------------------------------- /static/img/qrcodes/f6dde7c941e7377f055d49f78b7231a65bc0f6a3e67d38d490c4dd7a076aff34.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmrswapme/swapfe/66e2837f6e1f60287f8f60caaec896bfc10f439b/static/img/qrcodes/f6dde7c941e7377f055d49f78b7231a65bc0f6a3e67d38d490c4dd7a076aff34.png -------------------------------------------------------------------------------- /swapfe.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmrswapme/swapfe/66e2837f6e1f60287f8f60caaec896bfc10f439b/swapfe.ico -------------------------------------------------------------------------------- /swapfe.py: -------------------------------------------------------------------------------- 1 | #!/bin/env python3 2 | 3 | import threading 4 | import subprocess 5 | import requests 6 | import platform 7 | import shutil 8 | import time 9 | import hashlib 10 | import psutil 11 | import sys 12 | import webbrowser 13 | 14 | from threading import Thread 15 | 16 | from flask import Flask, request, json, render_template, Response 17 | 18 | from os import path, mkdir 19 | from os.path import expanduser 20 | from decimal import Decimal 21 | 22 | from bs4 import BeautifulSoup 23 | 24 | from PyQt5 import QtCore, QtWidgets 25 | from PyQt5.QtGui import QMovie 26 | from PyQt5.QtCore import Qt 27 | 28 | 29 | 30 | 31 | app = Flask(__name__) 32 | 33 | 34 | 35 | def resource_path(relative_path): 36 | """ Get absolute path to resource, works for dev and for PyInstaller """ 37 | base_path = getattr(sys, '_MEIPASS', path.dirname(path.abspath(__file__))) 38 | return path.join(base_path, relative_path) 39 | 40 | 41 | SwapFormFile = resource_path('templates/swapform.html') 42 | StandardHTMLFile = resource_path('templates/standard.html') 43 | TimerHTMLFile = resource_path('templates/timer.html') 44 | DashboardTMLFile = resource_path('templates/dashboard.html') 45 | home_dir = expanduser("~") 46 | SwapCmd = path.join(path.abspath(home_dir),'AtomicSwaps', 'swap', 'swap') 47 | SwapDBdir = path.join(path.abspath(home_dir),'AtomicSwaps', 'swap') 48 | sys_platform = platform.system() 49 | PreStepOneMessage = False 50 | SwapID = '' 51 | SwapResumes = 0 52 | 53 | class ThreadWithReturnValue(Thread): 54 | def __init__(self, group=None, target=None, name=None, 55 | args=(), kwargs={}, Verbose=None): 56 | Thread.__init__(self, group, target, name, args, kwargs) 57 | self._return = None 58 | def run(self): 59 | print(type(self._target)) 60 | if self._target is not None: 61 | self._return = self._target(*self._args, 62 | **self._kwargs) 63 | def join(self, *args): 64 | Thread.join(self, *args) 65 | return self._return 66 | 67 | 68 | 69 | def kill(proc_pid): 70 | process = psutil.Process(proc_pid) 71 | for proc in process.children(recursive=True): 72 | proc.kill() 73 | process.kill() 74 | print("process killed!") 75 | 76 | 77 | @app.route('/withdrawform') 78 | def withDrawForm(): 79 | return render_template('withdrawform.html') 80 | 81 | @app.route('/withdraw',methods=['POST','GET']) 82 | def withdraw(): 83 | def inner(BTCAddress): 84 | StandardHTML = open(StandardHTMLFile, "r") 85 | html_output = StandardHTML.read() 86 | 87 | SwapCMD = [SwapCmd, "--data-base-dir", SwapDBdir, 'withdraw-btc', '--address', BTCAddress] 88 | proc = subprocess.Popen(SwapCMD, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True) 89 | TotalOutput = ' ' 90 | for line in iter(proc.stdout.readline, ''): 91 | TotalOutput = TotalOutput + line 92 | for line in iter(proc.stderr.readline, ''): 93 | TotalOutput = TotalOutput + line 94 | yield html_output + '

' + TotalOutput + '

' 95 | 96 | try: 97 | BTCAddress = request.form['btc'] 98 | except Exception as e: 99 | return Response(str(e), mimetype='text/html') 100 | 101 | return Response(inner(BTCAddress), mimetype='text/html') # text/html is required for most browsers to show th$ 102 | 103 | @app.route('/listsellerform') 104 | def sellerform(): 105 | return render_template('listsellerform.html') 106 | 107 | @app.route('/listsellers', methods=['POST', 'GET']) 108 | def listsellers(): 109 | 110 | try: 111 | rendezvous = request.form['multiaddress'] 112 | except Exception as e: 113 | return Response(str(e), mimetype='text/html') 114 | return Response(GetSellers(rendezvous), mimetype='text/html') 115 | 116 | 117 | def format_btc(Price): 118 | OneBTC = 100000000 119 | BTC = Decimal(Price) / Decimal(OneBTC) 120 | return(f"{BTC : .8f}") 121 | 122 | def render_sellers_html(SellerData): 123 | StandardHTML = open(DashboardTMLFile, "r") 124 | html_output = StandardHTML.read() 125 | 126 | html_table = '' 127 | for row in SellerData: 128 | html_table = html_table + '\n' 129 | for d in row: 130 | html_table = html_table + "%s\n" % d 131 | html_table = html_table + '\n' 132 | html_table = html_table + '\n' 133 | html_output = html_output + html_table + '



' 134 | return html_output 135 | 136 | def GetSellers(rendezvous): 137 | 138 | SellerData = [] 139 | 140 | SwapCMD = [SwapCmd,"--data-base-dir", SwapDBdir,'-j', 'list-sellers', '--rendezvous-point', rendezvous, '--tor-socks5-port', '9050'] 141 | proc = subprocess.Popen(SwapCMD, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True) 142 | 143 | for line in iter(proc.stdout.readline, ''): 144 | print(line) 145 | try: 146 | jsonOBJ = json.loads(line) 147 | except Exception as e: 148 | print(str(e)) 149 | continue 150 | if 'status' in jsonOBJ: 151 | if "Unreachable" == jsonOBJ['status']: 152 | continue 153 | if 'Online' in jsonOBJ['status']: 154 | SellerInfo = [] 155 | try: 156 | SellerInfo.append(format_btc(jsonOBJ['status']['Online']['price'])) 157 | SellerInfo.append(format_btc(jsonOBJ['status']['Online']['min_quantity'])) 158 | SellerInfo.append(format_btc(jsonOBJ['status']['Online']['max_quantity'])) 159 | SellerInfo.append(jsonOBJ['multiaddr']) 160 | SellerData.append(SellerInfo) 161 | except Exception as e: 162 | print(str(e)) 163 | yield str(e) 164 | break 165 | else: 166 | continue 167 | else: 168 | continue 169 | html_output = render_sellers_html(SellerData) 170 | yield html_output 171 | 172 | @app.route('/resume') 173 | def resume(): 174 | 175 | def inner(): 176 | ResumeSwapHTMLFile = resource_path("templates/resumeswap.html") 177 | SwapHistoryHTML = open(ResumeSwapHTMLFile, "r") 178 | html_output = SwapHistoryHTML.read() 179 | SwapHistoryHTML.flush() 180 | SwapHistoryHTML.close() 181 | SwapCMD = [SwapCmd,"--data-base-dir", SwapDBdir, 'history'] 182 | proc = subprocess.Popen(SwapCMD, stdout=subprocess.PIPE, universal_newlines=True) 183 | swaplines = '

Swap History

'
184 |         for line in iter(proc.stdout.readline,''):
185 |             swaplines = swaplines + line 
186 |     
187 |         yield html_output + swaplines + '
\n' 188 | 189 | return Response(inner(), mimetype='text/html') 190 | 191 | @app.route('/resumeswap', methods=['POST', 'GET']) 192 | def resume_swap(): 193 | try: 194 | global SwapID 195 | SwapID = request.form['swapid'] 196 | except Exception as e: 197 | return Response(str(e), mimetype='text/html') 198 | return Response(ResumeSwap(False), mimetype='text/html') 199 | 200 | @app.route('/history') 201 | def SwapHistory(): 202 | 203 | def inner(): 204 | SwapHistoryHTML = open(StandardHTMLFile, "r") 205 | html_output = SwapHistoryHTML.read() 206 | SwapHistoryHTML.flush() 207 | SwapHistoryHTML.close() 208 | SwapCMD = [SwapCmd,"--data-base-dir", SwapDBdir, 'history'] 209 | proc = subprocess.Popen(SwapCMD, stdout=subprocess.PIPE, universal_newlines=True) 210 | swaplines = '

Swap History

'
211 |         for line in iter(proc.stdout.readline,''):
212 |             swaplines = swaplines + line 
213 |     
214 |         yield html_output + swaplines + '
\n' 215 | 216 | return Response(inner(), mimetype='text/html') 217 | 218 | @app.route('/swapform') 219 | def showSwapForm(): 220 | return render_template('swapform.html') 221 | 222 | def GetQRcmd(): 223 | if sys_platform == "Windows": 224 | return path.join(path.abspath(home_dir),'AtomicSwaps', 'swap', 'qrcode.exe') 225 | else: 226 | if shutil.which('qrencode') is not None: 227 | return 'qrencode' 228 | else: 229 | return '' 230 | 231 | 232 | def PreStepOne(html_body, PreStepOneMessage, Message): 233 | 234 | if PreStepOneMessage: 235 | html_output = Message 236 | else: 237 | html_output = html_body + Message 238 | 239 | yield html_output 240 | 241 | def SwapPriceTable(Price, MinAmount, MaxAmount): 242 | html_price_table = ''' 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 |
PriceMinimumMaximum
%s%s%s
260 | ''' % (Price, MinAmount, MaxAmount) 261 | return html_price_table 262 | 263 | def SwapAmtTable(NewBalance, SwappableAmt): 264 | html_swap_table = ''' 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 |
BalanceSwappable Amount
%s%s
281 | ''' % (NewBalance, SwappableAmt) 282 | 283 | return html_swap_table 284 | 285 | def ResumeSwap(auto): 286 | global SwapResumes 287 | SwapResumes += 1 288 | 289 | 290 | if not auto: 291 | HTML = open(StandardHTMLFile, "r") 292 | html_output = HTML.read() 293 | HTML.close() 294 | yield html_output 295 | 296 | timer_file = open(TimerHTMLFile, "r") 297 | timer_html = timer_file.read() 298 | timer_file.flush() 299 | timer_file.close() 300 | 301 | yield timer_html + "
" 302 | time.sleep(5) 303 | 304 | SwapCMD = [SwapCmd, "--data-base-dir", SwapDBdir, "-j", "resume", "--swap-id", SwapID, "--tor-socks5-port", "9050"] 305 | proc = subprocess.Popen(SwapCMD, stderr=subprocess.PIPE, universal_newlines=True) 306 | for line in iter(proc.stderr.readline,''): 307 | time.sleep(1) 308 | global PreStepOneMessage 309 | PreStepOneMessage = True 310 | print(line) 311 | html_gen = SwapConditionals(line, proc) 312 | try: 313 | html_output = next(html_gen) 314 | except: 315 | pass 316 | yield html_output + '
\n' 317 | 318 | def SwapConditionals(line, proc): 319 | 320 | def error_message(line, html_error, SwapCmd): 321 | html_error = html_error + "

You can either: Issue the command:

swap withdraw-btc --address


Or use the Withdraw Link on this page


Or:

Start a new Atomic Swap with another Provider as this one seems to have problems. The funds in your bitcoin wallet will automatically be used to begin a new swap.

" 322 | p1 = subprocess.Popen([SwapCmd,"--data-base-dir", SwapDBdir, "balance"], stdout=subprocess.PIPE) 323 | templine = p1.communicate() 324 | temp = templine[0].decode('utf-8') 325 | html_error = html_error + "

" + temp + "

\n" 326 | yield html_error 327 | 328 | global PreStepOneMessage 329 | global SwapResumes 330 | 331 | WaitingMessage = '

Please be patient. This can take a while....

' + '

Go buy some more BTC so you can swap it for XMR again once this finishes.

\n' 332 | DonutMessage = '

Please be patient. This can take a while....

\n' + '

Go grab a coffee and a donut and watch your crypto ticker for 13-30 minutes.

\n' 333 | 334 | StandardHTML = open(StandardHTMLFile, "r") 335 | html_body = StandardHTML.read() 336 | StandardHTML.flush() 337 | StandardHTML.close() 338 | 339 | QRPath = path.join('static', 'img', 'qrcodes') 340 | 341 | 342 | 343 | try: 344 | jsonOBJ = json.loads(line.rstrip()) 345 | Message = jsonOBJ['fields']['message'].rstrip() 346 | #print(Message) 347 | #print(Level) 348 | #print(step) 349 | except Exception as e: 350 | print(str(e)) 351 | if "Error: Failed to complete swap" in line: 352 | #print(line) 353 | kill(proc.pid) 354 | yield '

Will try to resume swap.

' 355 | if SwapResumes > 1: 356 | yield '

Already tried to resume swap once. Manual intervention is needed. Please consult the swap CLI.

' 357 | else: 358 | if SwapID: 359 | ResumeSwap(True) 360 | else: 361 | yield '

No SWAPID found. Cannot resume.

' 362 | elif "Error:" in line: 363 | #print(line) 364 | html_error = "

" + line + "

\n" 365 | yield html_error 366 | elif "Caused by:" in line: 367 | #print(line) 368 | html_error = "

" + line + "

" 369 | yield html_error 370 | elif line != '\n': 371 | #print(line) 372 | html_error = "

" + line + "

" + "

Your funds are safe.

\n" 373 | html_error_gen = error_message(line, html_error, SwapCmd) 374 | try: 375 | html_error = next(html_error_gen) 376 | except: 377 | pass 378 | kill(proc.pid) 379 | yield html_error 380 | else: 381 | yield ' ' 382 | 383 | 384 | # output any warning message to the web interface 385 | try: 386 | Level = jsonOBJ['level'] 387 | if Level == "WARN": 388 | html_output = '

' + Message + '

' 389 | yield html_output 390 | except: 391 | pass 392 | 393 | # download monero-wallet-rpc 394 | if 'Downloading' in jsonOBJ['fields']['message']: 395 | html_output = PreStepOne(html_body, PreStepOneMessage, Message) 396 | PreStepOneMessage = True 397 | yield next(html_output) 398 | 399 | 400 | 401 | # if sqlite is not used, let them know about migrating 402 | if 'migrate' in jsonOBJ['fields']['message']: 403 | html_output = PreStepOne(html_body, PreStepOneMessage, Message) 404 | PreStepOneMessage = True; 405 | yield next(html_output) 406 | 407 | 408 | # Just a way to get started parsing the messages 409 | # really should be something more concrete 410 | if 'Connected' in Message or 'connect' in Message: 411 | try: 412 | html_pre_step = PreStepOne(html_body, PreStepOneMessage, Message) 413 | except Exception as e: 414 | print("ERROR: STEP 1 (Connection issues)") 415 | yield str(e) + '
\n' 416 | 417 | elif 'quote' in Message: 418 | try: 419 | html_price_table = SwapPriceTable(jsonOBJ['fields']['price'], 420 | jsonOBJ['fields']['minimum_amount'], 421 | jsonOBJ['fields']['maximum_amount']) 422 | 423 | html_output = '

%s

' % Message + html_price_table + '\n' 424 | except Exception as e: 425 | print("ERROR: STEP 2 (receiving quote") 426 | print(str(e)) 427 | yield str(e) + '
\n' 428 | 429 | # Show Deposit Address and QR code to begin swap 430 | elif "deposit_address" in jsonOBJ['fields']: 431 | try: 432 | BTCDepositAddy = jsonOBJ['fields']['deposit_address'] 433 | #print("BTC Deposity Address: %s" % BTCDepositAddy) 434 | qrhash= hashlib.sha256(str(BTCDepositAddy).encode("utf-8") ).hexdigest() 435 | qrfile = qrhash + ".png" 436 | qrcmd = GetQRcmd() 437 | if qrcmd: 438 | subprocess.Popen([qrcmd, '-o', path.join(resource_path(QRPath),qrfile), '-s', '6','-t', 'PNG', BTCDepositAddy], universal_newlines=True) 439 | image_html = '
\n' 440 | cancel_html = '

If you would like to cancel this active swap, do not deposit BTC in the above address and click the following link:

Cancel Swap
Otherwise, proceed with the deposit.' % proc.pid 441 | html_output = '

%s

\n' % Message + '

Bitcoin Depoist Address: %s


\n' % BTCDepositAddy + image_html + '
\n' + cancel_html 442 | else: 443 | cancel_html = '

If you would like to cancel this active swap, do not deposit BTC in the above address and click the following link:

Cancel Swap
Otherwise, proceed with the deposit.' % proc.pid 444 | html_output = '

%s

\n' % Message + '

Bitcoin Depoist Address: %s


\n' % BTCDepositAddy + '

No QR code program available... use address


\n' + cancel_html 445 | except Exception as e: 446 | print(line) 447 | yield str(e) 448 | 449 | 450 | # Bitcoin received in internal wallet 451 | elif 'new_balance' in jsonOBJ['fields']: 452 | try: 453 | html_swap_table = SwapAmtTable(jsonOBJ['fields']['new_balance'], jsonOBJ['fields']['max_giveable']) 454 | html_output = '

%s

\n' % Message + html_swap_table + "

Conducting a swap for Swappable Amount...

\n" 455 | except Exception as e: 456 | print(line) 457 | yield str(e) 458 | 459 | # This means the swap has started 460 | elif 'fees' in jsonOBJ['fields']: 461 | Fees = jsonOBJ['fields']['fees'] 462 | SwapAmt = jsonOBJ['fields']['amount'] 463 | html_output = '

%s

' % Message + '

BTC Swap Amount: %s

' % SwapAmt + '

Fees: %s

\n' % Fees 464 | 465 | elif 'swap_id' in jsonOBJ['fields']: 466 | try: 467 | SwapID = jsonOBJ['fields']['swap_id'] 468 | print(SwapID) 469 | html_output = '

%s

\n' % Message + '

Swap ID: %s

' % SwapID + '

PLEASE COPY OR WRITE DOWN YOUR SWAP ID

' 470 | except Exception as e: 471 | yield str(e) 472 | 473 | elif 'txid' in jsonOBJ['fields']: 474 | # This is where Bob Publishes his Bitcoin Transaction 475 | if 'kind' in jsonOBJ['fields']: 476 | html_output = '

%s

\n' % Message + '

Bitcoin TxID: %s

\n' % jsonOBJ['fields']['txid'] 477 | 478 | # Alice Locked and Published Monero lock TxID 479 | elif 'target_confirmations' in jsonOBJ['fields']: 480 | MoneroTxID = jsonOBJ['fields']['txid'] 481 | TargetToConfirm = jsonOBJ['fields']['target_confirmations'] 482 | html_output = '

%s

\n' % Message + '

Alices Monero TxID: %s

\n' % MoneroTxID + '

Needed Confirmations: %s

\n' % TargetToConfirm + WaitingMessage 483 | 484 | # Print no. of Monero Confirmations 485 | elif 'seen_confirmations' in jsonOBJ['fields']: 486 | MoneroTxID = jsonOBJ['fields']['txid'] 487 | Confirmations = jsonOBJ['fields']['seen_confirmations'] 488 | print("XMR TxID: %s" % MoneroTxID) 489 | print("Confirmations: %s" % Confirmations) 490 | html_output = '

%s

\n' % Message + '

Confirmations: %s

\n' % Confirmations 491 | 492 | # Success 493 | elif 'monero_receive_address' in jsonOBJ['fields']: 494 | print(Message) 495 | MoneroAddy = jsonOBJ['fields']['monero_receive_address'] 496 | XMRFinalityTxID = jsonOBJ['fields']['txid'] 497 | html_output = '

%s

\n' % Message + '

XMR Receive Address: %s

\n' % MoneroAddy + '

Finality TxID: %s

\n

SUCCESS!

' % XMRFinalityTxID 498 | 499 | # Handle any messages not in tx conditionals 500 | else: 501 | print(Message) 502 | html_output = '

%s

\n' % Message 503 | 504 | # Right after swap has begun 505 | elif 'Waiting for Alice' in Message: 506 | print(Message) 507 | html_output = '

%s

\n' % Message + DonutMessage 508 | 509 | # print any message not caught in main conditionals 510 | else: 511 | print("Not Caught") 512 | html_output = '

%s

\n' % Message 513 | try: 514 | html_output = next(html_pre_step) 515 | except: 516 | pass 517 | #return return_val 518 | yield html_output 519 | #return 520 | 521 | @app.route('/swap',methods=['POST','GET']) 522 | def index(): 523 | 524 | 525 | def inner(btcAddy, xmrAddy, seller): 526 | SwapCMD = [SwapCmd, "--data-base-dir", SwapDBdir, "-j", "buy-xmr", "--change-address", btcAddy, "--receive-address", xmrAddy,"--seller", seller, "--tor-socks5-port", "9050"] 527 | proc = subprocess.Popen(SwapCMD, stderr=subprocess.PIPE, universal_newlines=True) 528 | 529 | for line in iter(proc.stderr.readline,''): 530 | time.sleep(1) 531 | print(line) 532 | html_gen = SwapConditionals(line, proc) 533 | try: 534 | html_output = next(html_gen) 535 | except Exception as e: 536 | print("ERROR with Generator: %s" % str(e)) 537 | pass 538 | yield html_output + '
\n' 539 | 540 | 541 | try: 542 | seller = request.form['multiaddress'].rstrip().lstrip() 543 | btcAddy = request.form['btc'].rstrip().lstrip() 544 | xmrAddy = request.form['xmr'].rstrip().lstrip() 545 | return Response(inner(btcAddy,xmrAddy,seller), mimetype='text/html') # text/html is required for most browsers to show th$ 546 | except Exception as e: 547 | print(str(e)) 548 | return Response(str(e), mimetype='text/html') 549 | 550 | 551 | @app.route('/cancel', methods=['GET']) 552 | def CancelSwap(): 553 | StandardHTML = open(StandardHTMLFile, "r") 554 | html_body = StandardHTML.read() 555 | StandardHTML.flush() 556 | StandardHTML.close() 557 | query_parameters = request.args 558 | 559 | swap_process_pid = query_parameters.get('pid') 560 | kill(int(swap_process_pid)) 561 | html_output = html_body + '

Swap Cancelled!

\n' 562 | return html_output 563 | 564 | 565 | 566 | def get_latest_platform_release(): 567 | GhBaseURL = "https://github.com/" 568 | SwapCLIURL = 'https://github.com/comit-network/xmr-btc-swap/releases' 569 | 570 | req = requests.get(SwapCLIURL) 571 | HTML = req.text 572 | 573 | soup = BeautifulSoup(HTML, features="html.parser") 574 | ahref_blocks = soup.find_all('a', {"rel" : "nofollow"}) 575 | 576 | sys_platform = platform.system() 577 | 578 | for link in ahref_blocks: 579 | if 'swap_' in link['href']: 580 | if ''.join([sys_platform, "_x86"]) in link['href']: 581 | print(''.join([GhBaseURL,link['href']])) 582 | return ''.join([GhBaseURL,link['href']]) 583 | 584 | 585 | def get_swap(url,target_path): 586 | response = requests.get(url, stream=True) 587 | if response.status_code == 200: 588 | with open(target_path, 'wb') as f: 589 | f.write(response.raw.read()) 590 | 591 | 592 | def get_swap_cli(url): 593 | 594 | if path.isdir(path.join(path.abspath(home_dir), "AtomicSwaps")): 595 | print("Atomic Swaps Directory Exists!") 596 | else: 597 | print("Creating space for Comit-Network swap CLI") 598 | mkdir(path.join(path.abspath(home_dir), "AtomicSwaps")) 599 | 600 | if sys_platform == "Windows": 601 | print("Downloading Comit-Network swap CLI...") 602 | 603 | get_swap(url, resource_path('swap_0.8.3.zip')) 604 | shutil.unpack_archive(resource_path('swap_0.8.3.zip'), path.join(path.abspath(home_dir), 'AtomicSwaps','swap')) 605 | else: 606 | print("Downloading Comit-Network swap CLI...") 607 | 608 | get_swap(url, resource_path('swap_0.8.3.tar')) 609 | shutil.unpack_archive(resource_path('swap_0.8.3.tar'), path.join(path.abspath(home_dir), 'AtomicSwaps', 'swap')) 610 | 611 | print("Done.") 612 | 613 | def DownloadSwap(window): 614 | 615 | 616 | if path.isfile(path.join(path.abspath(home_dir),"AtomicSwaps","swap", "swap")) or path.isfile(path.join(path.abspath(home_dir),"AtomicSwaps","swap", "swap.exe")): 617 | print("Swap CLI installed.") 618 | SwapCmd = path.join(path.abspath(home_dir),"AtomicSwaps","swap", "swap") 619 | p1 = subprocess.Popen([SwapCmd, "--version"], stdout=subprocess.PIPE) 620 | templine = p1.communicate() 621 | version = templine[0].decode('utf-8').split(' ')[-1].replace('.', '') 622 | print("Installed Version: %s" % version) 623 | print("Checking for new version...") 624 | url = get_latest_platform_release() 625 | latest_version = url.split('/')[-1] 626 | latest_version = latest_version.split('_')[1] 627 | latest_version = latest_version.replace('swap_', '').replace('.', '') 628 | print("Latest Version: %s" % latest_version) 629 | if (latest_version > version or "preview" in latest_version) and "0102" not in version: 630 | print("New Version found... Getting...") 631 | get_swap_cli(url) 632 | 633 | 634 | else: 635 | print("No version found. Retrieving...") 636 | url = get_latest_platform_release() 637 | get_swap_cli(url) 638 | 639 | # This is to get the QRCode binary for Windows. Pyinstaller had permission issues in temp folder. 640 | # Seeing if this works. 641 | if sys_platform == "Windows": 642 | print("Downloading QRCode executable...") 643 | get_swap("https://xmrswap.me/pkgs/qrcode.exe",path.join(path.abspath(home_dir),'AtomicSwaps', 'swap', 'qrcode.exe')) 644 | 645 | return window.close() 646 | 647 | class Ui_MainWindow(object): 648 | def setupUi(self, MainWindow): 649 | MainWindow.setObjectName("MainWindow") 650 | MainWindow.resize(400, 300) 651 | self.centralwidget = QtWidgets.QWidget(MainWindow) 652 | self.centralwidget.setObjectName("centralwidget") 653 | 654 | # create label 655 | self.label = QtWidgets.QLabel(self.centralwidget) 656 | self.label.setGeometry(QtCore.QRect(0, 0, 400, 300)) 657 | self.label.setMinimumSize(QtCore.QSize(400, 300)) 658 | self.label.setMaximumSize(QtCore.QSize(400, 300)) 659 | self.label.setObjectName("Loading") 660 | 661 | # frameless window 662 | MainWindow.setWindowFlags(Qt.FramelessWindowHint) 663 | 664 | 665 | # add label to main window 666 | MainWindow.setCentralWidget(self.centralwidget) 667 | 668 | # set qmovie as label 669 | self.movie = QMovie(resource_path("static/img/loading.gif")) 670 | self.label.setMovie(self.movie) 671 | self.movie.start() 672 | 673 | 674 | 675 | def LoadingAtomicApp(): 676 | app = QtWidgets.QApplication(sys.argv) 677 | window = QtWidgets.QMainWindow() 678 | ui = Ui_MainWindow() 679 | ui.setupUi(window) 680 | window.show() 681 | 682 | #window.close() 683 | dlthrd = threading.Thread(target=DownloadSwap, args=(window,)) 684 | dlthrd.start() 685 | #y = threading.Thread(target=app.exec_()) 686 | #y.start() 687 | app.exec_() 688 | 689 | def LoadBrowser(): 690 | time.sleep(2) 691 | webbrowser.open("http://0.0.0.0:3333/swapform") 692 | 693 | 694 | if __name__ == "__main__": 695 | 696 | 697 | qtthread = threading.Thread(target=LoadingAtomicApp()) 698 | qtthread.start() 699 | 700 | wbthread = threading.Thread(target=LoadBrowser) 701 | wbthread.start() 702 | app.run(debug=True, port=3333, host='0.0.0.0', use_reloader=False) 703 | 704 | print("Done.") 705 | 706 | -------------------------------------------------------------------------------- /templates/dashboard.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | Live Atomic Swap! 20 | 21 | 22 | 52 |
53 |
54 |

Live Atomic Swap

55 | 56 | 57 | 58 |
59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | -------------------------------------------------------------------------------- /templates/listsellerform.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 44 |
45 |

Find Rendezvous Sellers

46 |

Onion3/Tor Rendezvous Addresses Suppored!

47 |
48 |
49 |

Full Multiaddress of Rendezvous endpoint"

50 |
51 | 56 | 57 |
58 |
59 | 60 | 61 |

62 |

Click only once and wait for the next screen to appear.

63 | 64 | 70 |




71 | 72 | 73 |
74 | 76 |
77 |




78 | 79 | 80 | 81 | 82 | -------------------------------------------------------------------------------- /templates/resumeswap.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 45 |
46 |

Resume a failed or cancelled swap

47 |

Swap IDs listed below

48 |
49 |
50 |

Enter a swap ID found below

51 |
52 | 57 | 58 |
59 |
60 | 61 | 62 |

63 |

Click only once and wait for the next screen to appear.

64 | 65 | 66 |




67 | 68 | 69 | 70 | 71 | -------------------------------------------------------------------------------- /templates/standard.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | Live Atomic Swap! 20 | 21 | 22 | 52 |
53 |
54 |

Live Atomic Swap

55 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /templates/swapform.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 44 |
45 | 46 |

Start a Swap!

47 |

Onion3/Tor Addresses Suppored!

48 |
49 |
50 |

Full Multiaddress including "/p2p/xxxxxxxxxx..."

51 |
52 | 57 |

Your bitcoin change address in case of a refund.


58 |

Monero receive address.

59 |
60 | 61 | 62 |
63 | 64 | 65 |

66 |

Click only once and wait for the next screen to appear.

67 | 68 | 69 | 72 | 84 |




85 | 86 | 87 |
88 | 90 | 96 |
97 |
98 |



99 | 100 | 101 | 102 | -------------------------------------------------------------------------------- /templates/table.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | Live Atomic Swap! 20 | 21 | 22 | 49 |
50 |
51 |

Live Atomic Swap

52 | 53 | 54 |
55 | 56 |

PriceMinimumMaximumSeller Address
57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | {% for row in data %} 67 | 68 | {% for d in row %} 69 | 70 | {% endfor %} 71 | 72 | {% endfor %} 73 | 74 |
PriceMinimumMaximumAddress
{{ d }}
75 | 76 |
77 |

78 |
79 | -------------------------------------------------------------------------------- /templates/timer.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 |

WILL AUTO-RESUME SWAP IN...

9 |

10 |
11 | 44 | 45 | -------------------------------------------------------------------------------- /templates/withdrawform.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 40 |
41 |

Swap failed?

42 |

Your funds are safe


43 |

Refund to Your Original Bitcoin Wallet

44 |
45 |
46 | 47 |

BTC Refund Address


48 |
49 |
50 | 51 | 52 |
53 |
54 |


55 |



56 | 57 | 58 | 59 | --------------------------------------------------------------------------------