radon 0.1.2 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/README.md +78 -78
- data/bin/radon +1 -1
- data/data/crystal_app.b64 +1 -0
- data/data/crystal_app.zip +0 -0
- data/img/radon-readme-header.png +0 -0
- data/lib/core/constants.rb +1 -1
- data/lib/core/environments.rb +4 -1
- data/lib/core/extract.rb +6 -0
- data/lib/core/text.rb +50 -7
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f9c3aac468691c9a99d77ae6bd41ff867f7c5e96
|
4
|
+
data.tar.gz: b79fe8d8576585b1a229ea7640c008278d0bd533
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 50a7baff438be64075bda22ff6ff8ca202186329b7efa342a5c0d4d1b1879e5c6d5dfecdfc585979007cea1f87d092dd0158c182b715a6b03d317fbc8ee4ee4a
|
7
|
+
data.tar.gz: 389c215d16d7552a3c35b8ebdac6ff46f0012b76a6dd5ceb97021a7f0be5e106386c9cdb73b5e71ea33d0b57c77e23058de5a98f11780e19bd6ee3d12ece9ae4
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -1,78 +1,78 @@
|
|
1
|
-
<p align="center"><img src="https://raw.githubusercontent.com/cbrnrd/radon/master/img/radon-readme-header.png"></p>
|
2
|
-
<p align="center"><img src="https://raw.githubusercontent.com/cbrnrd/radon/master/img/demo.gif"></p>
|
3
|
-
|
4
|
-
## Installation
|
5
|
-
|
6
|
-
`radon` is part of the [periodic](https://periodic.now.sh) collection of apps. If you install `periodic-cli`, radon should come with it:
|
7
|
-
|
8
|
-
$ gem install periodic-cli
|
9
|
-
|
10
|
-
Or install just the gem:
|
11
|
-
|
12
|
-
$ gem install radon
|
13
|
-
|
14
|
-
## Usage
|
15
|
-
|
16
|
-
The basic usage is as follows: `radon [environment] {ProjectName}`.
|
17
|
-
|
18
|
-
A full list of supported environments can be found by running `radon --list-env`
|
19
|
-
|
20
|
-
#### Example:
|
21
|
-
|
22
|
-
Here is radon generating a gradle project called MyGradleProject
|
23
|
-
```
|
24
|
-
$ radon gradle MyGradleProject
|
25
|
-
Creating project under /mnt/c/Users/Carter/Desktop/projects/MyGradleProject
|
26
|
-
create MyGradleProject
|
27
|
-
create MyGradleProject/.gradle/
|
28
|
-
create MyGradleProject/.gradle/4.5/
|
29
|
-
create MyGradleProject/.gradle/4.5/fileChanges/
|
30
|
-
create MyGradleProject/.gradle/4.5/fileChanges/last-build.bin
|
31
|
-
create MyGradleProject/.gradle/4.5/fileHashes/
|
32
|
-
create MyGradleProject/.gradle/4.5/fileHashes/fileHashes.bin
|
33
|
-
create MyGradleProject/.gradle/4.5/fileHashes/fileHashes.lock
|
34
|
-
create MyGradleProject/.gradle/4.5/taskHistory/
|
35
|
-
create MyGradleProject/.gradle/4.5/taskHistory/taskHistory.bin
|
36
|
-
create MyGradleProject/.gradle/4.5/taskHistory/taskHistory.lock
|
37
|
-
create MyGradleProject/.gradle/buildOutputCleanup/
|
38
|
-
create MyGradleProject/.gradle/buildOutputCleanup/buildOutputCleanup.lock
|
39
|
-
create MyGradleProject/.gradle/buildOutputCleanup/cache.properties
|
40
|
-
create MyGradleProject/.gradle/buildOutputCleanup/outputFiles.bin
|
41
|
-
create MyGradleProject/build.gradle
|
42
|
-
create MyGradleProject/gradle/
|
43
|
-
create MyGradleProject/gradle/wrapper/
|
44
|
-
create MyGradleProject/gradle/wrapper/gradle-wrapper.jar
|
45
|
-
create MyGradleProject/gradle/wrapper/gradle-wrapper.properties
|
46
|
-
create MyGradleProject/gradlew
|
47
|
-
create MyGradleProject/gradlew.bat
|
48
|
-
create MyGradleProject/settings.gradle
|
49
|
-
create MyGradleProject/src/
|
50
|
-
create MyGradleProject/src/main/
|
51
|
-
create MyGradleProject/src/main/java/
|
52
|
-
create MyGradleProject/src/main/test/
|
53
|
-
Done! Your project is set up in /mnt/c/Users/Carter/Desktop/projects/MyGradleProject.
|
54
|
-
```
|
55
|
-
|
56
|
-
## Development
|
57
|
-
|
58
|
-
#### Adding an environment
|
59
|
-
If you want to add an environment to radon, here are the steps:
|
60
|
-
1. Create the standard directory structure of that environment. This is usually found on the environment's website or just through convention.
|
61
|
-
2. Zip all the files into one file (`zip -r env.zip .`)
|
62
|
-
3. Save the zip data as base64 (`cat env.zip | base64 -w 0 > env.b64`)
|
63
|
-
4. Put both the base64 data and the zip file in radon's `/data` folder.
|
64
|
-
5. Add the function(s) in `extract.rb` to extract the _zip_ file to the target (See [here](https://github.com/cbrnrd/radon/blob/7cd141b5a61de6a8abaf0009a1a8cfd090f05e97/lib/core/extract.rb#L5))
|
65
|
-
6. Add the environments to `@@all` in `environments.rb`
|
66
|
-
7. Open a pull request
|
67
|
-
|
68
|
-
## Contributing
|
69
|
-
|
70
|
-
Bug reports and pull requests are welcome on GitHub at https://github.com/cbrnrd/radon. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
|
71
|
-
|
72
|
-
## License
|
73
|
-
|
74
|
-
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
75
|
-
|
76
|
-
## Code of Conduct
|
77
|
-
|
78
|
-
Everyone interacting in the Radon project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/cbrnrd/radon/blob/master/CODE_OF_CONDUCT.md).
|
1
|
+
<p align="center"><img src="https://raw.githubusercontent.com/cbrnrd/radon/master/img/radon-readme-header.png"></p>
|
2
|
+
<p align="center"><img src="https://raw.githubusercontent.com/cbrnrd/radon/master/img/demo.gif"></p>
|
3
|
+
|
4
|
+
## Installation
|
5
|
+
|
6
|
+
`radon` is part of the [periodic](https://periodic.now.sh) collection of apps. If you install `periodic-cli`, radon should come with it:
|
7
|
+
|
8
|
+
$ gem install periodic-cli
|
9
|
+
|
10
|
+
Or install just the gem:
|
11
|
+
|
12
|
+
$ gem install radon
|
13
|
+
|
14
|
+
## Usage
|
15
|
+
|
16
|
+
The basic usage is as follows: `radon [environment] {ProjectName}`.
|
17
|
+
|
18
|
+
A full list of supported environments can be found by running `radon --list-env`
|
19
|
+
|
20
|
+
#### Example:
|
21
|
+
|
22
|
+
Here is radon generating a gradle project called MyGradleProject
|
23
|
+
```
|
24
|
+
$ radon gradle MyGradleProject
|
25
|
+
Creating project under /mnt/c/Users/Carter/Desktop/projects/MyGradleProject
|
26
|
+
create MyGradleProject
|
27
|
+
create MyGradleProject/.gradle/
|
28
|
+
create MyGradleProject/.gradle/4.5/
|
29
|
+
create MyGradleProject/.gradle/4.5/fileChanges/
|
30
|
+
create MyGradleProject/.gradle/4.5/fileChanges/last-build.bin
|
31
|
+
create MyGradleProject/.gradle/4.5/fileHashes/
|
32
|
+
create MyGradleProject/.gradle/4.5/fileHashes/fileHashes.bin
|
33
|
+
create MyGradleProject/.gradle/4.5/fileHashes/fileHashes.lock
|
34
|
+
create MyGradleProject/.gradle/4.5/taskHistory/
|
35
|
+
create MyGradleProject/.gradle/4.5/taskHistory/taskHistory.bin
|
36
|
+
create MyGradleProject/.gradle/4.5/taskHistory/taskHistory.lock
|
37
|
+
create MyGradleProject/.gradle/buildOutputCleanup/
|
38
|
+
create MyGradleProject/.gradle/buildOutputCleanup/buildOutputCleanup.lock
|
39
|
+
create MyGradleProject/.gradle/buildOutputCleanup/cache.properties
|
40
|
+
create MyGradleProject/.gradle/buildOutputCleanup/outputFiles.bin
|
41
|
+
create MyGradleProject/build.gradle
|
42
|
+
create MyGradleProject/gradle/
|
43
|
+
create MyGradleProject/gradle/wrapper/
|
44
|
+
create MyGradleProject/gradle/wrapper/gradle-wrapper.jar
|
45
|
+
create MyGradleProject/gradle/wrapper/gradle-wrapper.properties
|
46
|
+
create MyGradleProject/gradlew
|
47
|
+
create MyGradleProject/gradlew.bat
|
48
|
+
create MyGradleProject/settings.gradle
|
49
|
+
create MyGradleProject/src/
|
50
|
+
create MyGradleProject/src/main/
|
51
|
+
create MyGradleProject/src/main/java/
|
52
|
+
create MyGradleProject/src/main/test/
|
53
|
+
Done! Your project is set up in /mnt/c/Users/Carter/Desktop/projects/MyGradleProject.
|
54
|
+
```
|
55
|
+
|
56
|
+
## Development
|
57
|
+
|
58
|
+
#### Adding an environment
|
59
|
+
If you want to add an environment to radon, here are the steps:
|
60
|
+
1. Create the standard directory structure of that environment. This is usually found on the environment's website or just through convention.
|
61
|
+
2. Zip all the files into one file (`zip -r env.zip .`)
|
62
|
+
3. Save the zip data as base64 (`cat env.zip | base64 -w 0 > env.b64`)
|
63
|
+
4. Put both the base64 data and the zip file in radon's `/data` folder.
|
64
|
+
5. Add the function(s) in `extract.rb` to extract the _zip_ file to the target (See [here](https://github.com/cbrnrd/radon/blob/7cd141b5a61de6a8abaf0009a1a8cfd090f05e97/lib/core/extract.rb#L5))
|
65
|
+
6. Add the environments to `@@all` in `environments.rb`
|
66
|
+
7. Open a pull request
|
67
|
+
|
68
|
+
## Contributing
|
69
|
+
|
70
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/cbrnrd/radon. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
|
71
|
+
|
72
|
+
## License
|
73
|
+
|
74
|
+
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
75
|
+
|
76
|
+
## Code of Conduct
|
77
|
+
|
78
|
+
Everyone interacting in the Radon project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/cbrnrd/radon/blob/master/CODE_OF_CONDUCT.md).
|
data/bin/radon
CHANGED
@@ -0,0 +1 @@
|
|
1
|
+
UEsDBBQAAAAIAAJYYU3DHinPbgAAAJYAAAANABwALmVkaXRvcmNvbmZpZ1VUCQAD9BTbW/QU21t1eAsAAQToAwAABOgDAABFzD0KwzAMBeBdp8hcaIdOXXKSUoRx5ETgykV+ISSnTxxaun7vx0tB13fwWYiel1v0F8UpeJXGM9L1QWIDl8RZTQ7LidSqODiphcwmyzc5T9QGMXDFmpvVT4h/1K3ZneD6ZnjQYznyMinkLP5OdlBLAwQKAAAAAAADWGFNAAAAAAAAAAAAAAAABQAcAC5naXQvVVQJAAP1FNtb9RTbW3V4CwABBOgDAAAE6AMAAFBLAwQKAAAAAAACWGFNAAAAAAAAAAAAAAAADgAcAC5naXQvYnJhbmNoZXMvVVQJAAP0FNtb9BTbW3V4CwABBOgDAAAE6AMAAFBLAwQUAAAACAADWGFNP27UBU4AAABdAAAACwAcAC5naXQvY29uZmlnVVQJAAP1FNtb9RTbW3V4CwABBOgDAAAE6AMAAE3JwQ2AIAwF0DNMwQgu4CTGQ5VfQ1IsacHE7eXo8eVtpxr2GAxNvXS1l9Uq9QfmRe+0piUGLoKqGVNM4ojhIPtJ9CIRA4+WqcPndBuIH1BLAwQUAAAACAACWGFNN4sHHz8AAABJAAAAEAAcAC5naXQvZGVzY3JpcHRpb25VVAkAA/QU21v0FNtbdXgLAAEE6AMAAAToAwAAC83LS8xNTVEoSi3IL84syS+qtFZITcksUSjJyCxWSMvMSVVQT0ktTi7KLCjJzM9TVyjJVwDpAMqnImnS4wIAUEsDBAoAAAAAAAJYYU0raXOnFwAAABcAAAAJABwALmdpdC9IRUFEVVQJAAP0FNtb9BTbW3V4CwABBOgDAAAE6AMAAHJlZjogcmVmcy9oZWFkcy9tYXN0ZXIKUEsDBAoAAAAAAAJYYU0AAAAAAAAAAAAAAAALABwALmdpdC9ob29rcy9VVAkAA/QU21v0FNtbdXgLAAEE6AMAAAToAwAAUEsDBBQAAAAIAAJYYU2FT/gJFwEAAN4BAAAgABwALmdpdC9ob29rcy9hcHBseXBhdGNoLW1zZy5zYW1wbGVVVAkAA/QU21v0FNtbdXgLAAEE6AMAAAToAwAAVZBdTgMxDITfcwqTrioQpBWvSEhwBy6Qbr2bqPlT7KUtiLvjtGxbXsfjb8Ze3K03Pq3JqYVawHsCPNhYAoLLeQfUV18YOEPvsN8BO4Q+x+gZQh4hIpEdEdjuMMHmKARbSjgWy72DoeYIVogmWh9m8+oU9OHmBJensJVUQe49O0g5mS+sGYgtTwR2YKzgiSafRsGdM2ou1VvGSwU/QCPYxNTqEudy03YF10RPDRFC3uO2WXErizeHzcTBh7msmJLdyFPYeTpRnqCKFP+UZm0ofb3eRBr1SqkVjJ4NOUPIU1HnDJm96u5eJoL5NMVWQjCmOWXZnRJoffY20INWjMRgDqC7C0LDcimPw/6/2H0/P+ruTf+oF/ULUEsDBBQAAAAIAAJYYU3p+MoQ9wEAAIADAAAcABwALmdpdC9ob29rcy9jb21taXQtbXNnLnNhbXBsZVVUCQAD9BTbW/QU21t1eAsAAQToAwAABOgDAAB9kl9v0zAUxZ+bT3FIK9JWTaPyiLRKgyLYC5NY90Tp5CY3ibXEzmyH8ad8d64dqhUm8RJF1/f+zj3HHr/IDlJlto7G0RiXCvRNtF1DqLW+h82N7BycRl5Tfg9XE3LdttKh0RVaslZUtOTJt6JpqMDhO+KKT4emGI/S1dCKIEzVt6TcIjCUaAm6DP+lbIgBrhYOtbDnGic+sK1PG9W6bwreko8DXGmV/iCjGWGdcL2FKB0ZSGt7qSoIBdF1RndGCkcnJGQJTxDKWW/POt15ZaYM2ueakplNox/ZH7dSwYPPlww+liHFLTcpceAQXc2znrGAoWA6VHyrR8UDIm1tFS8jnrxVvsIxBYEDsajvE0UBgRtZKSpSXZYpx9xIFRi+8eweNtqbDiqSnT8ZwEEUkAUJX69IkRHNAod+kOoMdcJQ+rQQs06zrTYETtMNAXA4webN9ZuLydTf9ldh8P5qe3d5u/1w/enuavPu4xZHWO5PFRKb7XfT5Xy9my3nk+wvG6+xW2VdMmNcxSsgfbCI9xNGx4gnqxjHIyivOaqhtl6Hss9q6z2eXmsuHL9Qi6LvGpn7i36eluWIHVmHOMYFY6ZBMdn/s1DyRzgawWrj2Eev5APS/OSIkGT7zxh9ma/8NyuSWdjzZzQKq65fvsLm/3uMwvtdRb+i31BLAwQUAAAACAACWGFNmgz3wIoAAAC9AAAAHQAcAC5naXQvaG9va3MvcG9zdC11cGRhdGUuc2FtcGxlVVQJAAP0FNtb9BTbW3V4CwABBOgDAAAE6AMAAC3NURKCMAwE0P+eYoVfgTN4By8QIJUO0nSS4ODtrejn7s68bS/DmPJgS2hDi1sGH7SVJ2MRWWGTpuJwQVEupAxCoWnlGTWLJRd9I4piN4a8WCsy79sIV8pWRN36U74LONNYYV+Snfq1Gpm2fxPTdxM0lfVuLzM5N30IfPCER3L8qs5Y602XcpTwAVBLAwQUAAAACAACWGFNz8BMAgkBAACoAQAAIAAcAC5naXQvaG9va3MvcHJlLWFwcGx5cGF0Y2guc2FtcGxlVVQJAAP0FNtb9BTbW3V4CwABBOgDAAAE6AMAAFWQW04DMQxF/7OKSzqqQJBW/FZCgj2wgczU00RMJlHs6QPE3vH0AeL32j7H9uJu3cZxzcEszAJvI+joUxkIIecPcFdjEUjGnmrsTzgEL4gM3+bpnLeELqcURWirgPYEX8pwKl66gL7mBK9Ml3wckIjZ72h1Vr2HmyPkadiqNwoOUQLGPLpPqhksXiZ19UJVpTzFcac4HVZHzaVGL3SjIvaYCX4UnhdjyQUSbutdpRk0+lbPk6BXzP4nVI3SNenjXMuwpZL7u8SujFlhF8VxcEwyFaMNF/KLbe61opi9K74ywbm5UwfD2cDrGXZpfrBGiAXuCNv8IiyWS30Adf/D5uv50Tav9ttszA9QSwMEFAAAAAgAAlhhTSUwqFyjAwAAagYAABwAHAAuZ2l0L2hvb2tzL3ByZS1jb21taXQuc2FtcGxlVVQJAAP0FNtb9BTbW3V4CwABBOgDAAAE6AMAAG1UYW/bNhD9HP2KqxMkDWDZjuEGSdYEMLwUCxBswBpgH9pioMSjxUUiVZKy46LYb98jJbsL0G+ieLx77927O34zLbSZ+io7zo5paYhfRNPWTJW1z+RLp9tAwdKGnVY72lYikPYkCtul/wVTaZtGh8ByggwrUdcsqdjRaK3DcDeirQ4VGUvCrbuGTfAToqdqX6WyXS3xmF/wZAg1+Td2lnwQoUM9FdihsO+0WZMwJNrW2dZpEZga9l6smbRCjphBoEAE54NtKVR7iJPE8ckSG1GAYqjAJCIYk8OvZvijdLyzNGod5wOBSZZpRZGR403eCueZ8nwQ5bf75a90N5W8mZqurml+d3qRoazJjsRaaOPDbQzJuPacHR3Tg9FBi3pAdUNSK0VDZOTGTRt2FBwz2eIfLsOPPIviav5OlpeLeVlccnEtZpczfrco1JW8vJ5fXamCeXE9W2RKZ+D6oGhnuyRIZITe2G3Sdvlx9fCQmEbenjyHnvxGQNOiFyC4jidZeoQ3wpda35687dtqlF5DgcLaOknoJ6/izmP1P1lqB/gEr7S9XXyQ7Nwk4xcu6eLudB7jVs56T20tgrKuITQ2kkYH2cgEe2O1/BnsXxDLG9gJSaB3Q8rZBpZMHpGS0+vYf8et9TpYt5vQXwyftbXVIV0pUcYPkU7IA0+ZkBRwwsBUMKADlv6efCtK2KkSDs/gSAGEQOl71wZdSygGp3yi0ckrQUb05pZGUdERfaHT0+iD323gQ2nqYCmrqEDmZ44Vne2QXaANAxS0B9NSseMxvdXhzMckkT/4fe0gtRwTFKTWOjDQtY4usvTR1miqp4vZmadp512a+ODOx+S1KZMlE7evnXC8B4ARDjBGhUFDAaRR4EPapFDJXq8NZk/20CbZEYID9e5Ifs7zUpQVAvI89iq3pt7hO97laCDEu11S/o1O9sb/nh0RPa7+Xj4+3q4i6VzS2SfK//3yeXZG32lbUl6eRxlnw3CVUO79+8/3f3zI7p2z7oaWWENNv7DQf2j32jQUkWCUn6LTS0xaKaLqMBz63XgskFfjsrXuuW9syzbuRGvIorQ7eNXHZGkJ9pojRvf7UW6038/RYblwQoE3w1w+G4xjWqnxFMWXNno3niI8uc+R8FZcPsMlCLjJMqL/zeFPBjANbxalOUpb9eLHRogMOFXbVhptS5bmKKAf9/ZPUK1ScHaEc5DOJ78roethgvfdzrWR/BJ7nkAeen9obp5n/wFQSwMEFAAAAAgAAlhhTQTYj7GdAgAARAUAABoAHAAuZ2l0L2hvb2tzL3ByZS1wdXNoLnNhbXBsZVVUCQAD9BTbW/QU21t1eAsAAQToAwAABOgDAACNVGFr2zAQ/Rz9ipsT1g2atCn7VJbCKIwVRhljZR/Gtsr2ORKVJU+S67a/fneSnaRjsBVCZenu3XvvTpq/OCm1PQlKiDm8s4APsu0MgnLuDkLldRchOrhHr5tHGJSMoAPI0vVpv0To+qCwXgFcSmOwhvIRiq2OBMcnBcgmogcdQckAlcLqjoKiQvDYuogQoox9OIaSEEtsnEeQ9jEqbbcppUS0I1gqc9VQNnEYyeGDjgEGHRVIsM4un9C7EZS+M86gjTngKuYE+IVBkkz6X2XuCYa5Nc4YN3BqJ71skSSE85S2WMNyCde0B6451EFuDEpXOZ8LMW6JjFE7i5x6xqk3nz/+O5aiSSefZPpRseF94C+SSdXrXV3lAlnmt32LNlmRteKvXpos9cqSra2M2tmpdVS3cm2bvEtMJPmeGWSTmFHou85oWlMbjLYYiDjBcTIZbGvpKcx2hKftaJtvs00Ab40jV4llczGtg5Jr+hiJ55NpCvho35eQpzAoN3CTBnas83hPCrNf5P2eP3pM5Y3bQoshyG0i6GMgvNTT4uvVpwJeDc7fMdfOu62nwNcrITKBTbFYF6L3hhZnhRBPb043p//5JwRZaFiQrCEp/UnaxhUJGzuVNscl7YraiZlu4BsUi11oARtYUG34LmakyIrZbA4fyGqCr9HQHNLOuZihCbwa0/egh/kTACFc4wCll7ZSx+mGUy+BJn6ykIPodMsu7KnQ7liGEG66WuYhpwsXIs/Jn4CWivwFcE9utXqO3miR9F3yo8CzA9SlEYIO8mJzS48J2Xa/NFQXlhb4AlL3Ojj6QfFHrJ9LFbeTIRRTLHJ28cwIrJSDi5dnULx3va0PyvFQLHatO+aHY7p9RcqkVwbWmTP/0i0VafdU/AZQSwMEFAAAAAgAAlhhTXq8xBPfBwAAIhMAABwAHAAuZ2l0L2hvb2tzL3ByZS1yZWJhc2Uuc2FtcGxlVVQJAAP0FNtb9BTbW3V4CwABBOgDAAAE6AMAAJ1Ya2/bRhb9LP6KW0Wtpawetj4U27iO4dhBm+1uAmSNFovEsUfkUGJNcrgzwyhq7P/ec2eGIi0r6WIFyObjvu+5j9GTb2aLrJyZVfQkekLnqtrobLmyNIxHND88/H7Mf/9O/6jLTNE5/SwKUSpHe7mS1K+0nGi5EEb2aaXULWWGdF3S77WxtJCp0iBaZpYaImOFtoYSlZVLCMlw/btajEmUCcWiJAj8KEtLFtJjVRT8PNWqYKkleGixIfkps3y5zizMplKVkz+kVizb1ma6ta4xKBZ5LhNH7uSmKs/VmiVUQotCWqnNM8c1OKLJxNHUlbFaisLdGKkzaWgtDHj1rfQmTZlh3jAstCjjFXxmud7bhIZKkywqu6H1Spb+Mb933tVas6eecdSYDXuNKKocWldqbeDEmqxq46KqLA48MMmuhCWBIIsc1iYbiCikXkI1eA5K+ckeNJa5KC6ltR0Dx7A3FrVh/hCSzELGWtV5AiJT55ayjuFBDVX1Is/MCnpgsFV6M42i8OyEtUYs3is+6Q+O+lGWkpXARH/wpE8nNI8QgjLqOXdO+lqmZraCZDMbzPuRzI1s3t0wesymWKg8i4G1lH5+eXZxQ3d3UY+BQId0DIMlIAUksLVIp64r2xqdSCtitpU5ozSLohjWwRSnoQ+WqGPA6ens6SjqHR9H/O/rKhS80EAcU0sj4gixe42EgZaTkkiRN0Al8SB3D4ECNlXye1IpFcJA/pTolUE26M0vnEtPiPtT1nGhXO5lEImc5LmrC4P3LmCAjQvW5L+tn3d39BkexStFz7+bU/81SqZmU7xFgSz4fBTdsybY4HWkNatoweWtPI0QkOusvPa3PluA6gRIsCgNwNbazYkqJQIh6YMn25p0s8XF5A88fCCrHyDS2uuZuKL3G3OMoFoWr2WhPnKwpltvQgZjB2wHdrwG/GvXapArSC1RZuhLduow0vEdpac72hjgp0hPSkbRRtUcbRbL2FjIFnfQH6ky31wzw/XRTnC2sfjQ5GfwOZTQPd1BtLY3Hfb5F9jbzx72tuo6dnD9dR/Mm0iH8HfqbqutNdKrvYl6+zLXIMjL25u6poPU1cSqSSKs9OXRJL33fyWs51tGKNeohwT6J8EwdvQvwdkJYAvQ3qw22s3ISuqcJpIOoKfYhHJBLAdnb3/69d3h1XF4XpglR/hpQ7HC2OBRxrOu8b4Fk1PZdIVn78t+EDP8tmP6CAILUXH59nqzD8N3h5MfxCS9+tuIZkzfG2JynTynoxHf3ZOp8swOZ+/L2TiYd3TlXmF8Edsoc1nQcCtyR+Zw+nQ08IJ777zkwdz5t1f2/Go08nKAieE3rg0ZGnTs/+wUTp4jSveB1NFyrJr7XqWRSvr35cXLt29dFL0BvbpM0MjaB/fRI+o+NQqOrkIIHRm+B23/63dN6j/uN03j4+r/8cf3F2/Or1++voii7lB2O4URqVzWQidm7zxeCTSfhUQJtGPSTd+m52O8lsmUBQP8WChSRrcwpi54oHpwP4siekpvyljuTg5eQYwX2A+mj7dXriy4X0XoCAFlCJTiSSKWArN8KDMuIEoyLWOLNgpIZGVzhz3kS3q3fTdGDCCWV7Ouhq0xrBrqQJ8gK1YmU9csuVOW0qN+UWco63bmZbzZQLBmK5hfCp1n3HWBJXErDTZEMK8fWRSjnqCB10KOi9tRnAA3HTMnnC8b42CKS6frHpiTVmcuCKWMpTFCb1yLCR4UrJkvJBo6jIGJt1JW7IluFh8yGQPDh+039D03LLq+ui6JIAcweO54JcolA0Z5l1hjg6KxDyvbXYTQesR6ggAcE+us4o7oQIXVWX5yEB0DfzqJVRJWhEZtiFmJhTfiDMgg1fdUny9E42Mmcj9Sb3mCIidlmi1rLRZAP15Gg59eXV5fvHo7829gK/uSGezD0W9+xYakBtZjFwq/T66FW2DptlRrwHt4NKLpdEpoBDtI447pwshF1OmV3mCk8D8ooCWHbLf++Ajhys/YusqSLXw6VmjB8HfMcS5BX1fNSSWECvH0BxLLl92i9hMehU071eUWwYdmIMAMG2CrOQ3wnFMeXCTSFEjnzHnWSipGEdELJENx9fmMbDtIJ5BOAJvSBBQdBRXs9o1oOP9aVF1Ad7enbW04wZd8UmFd7IQvYJZM9C8OEcCOzQJ68814Z/dx3HsKGwekro9A1mY7B4MHPhuuJJqga5m7wuYC2S668KAS1oXYNTMUFleTY297IbayrNNu0lo79aHkxiGyYVcMyrl5dBQNMexXojLtoRH9X7riGSF3OBmFAxVeeRz6VtOGMvqntAeGcp4XwvqiCBUK7Pd64FGTyeQvvwH0jmMWNr3m/6NrpuIHApz8XdDZXqLZzrM9NJ2n/I0hbfulF48pZ51v+3n/iLBLt3Amnj+gDHQz+rrImYv6/xLANpDNnI+iszFc4Ao/d+e0h03Et/IzVy/YDSnNPqHJh5Lk3wBC5aBvtD3J8bxwPGlWuorlqWe/UHWBtxnabEroxuwX3/IPKa5EfK9uJqnTc+6kcgfY7Y0MNSzL3IrlTtf1O/R5kLf9AQCHRD7/n/mOJ0ss3FosZfTikeJLHtBFVaMfoHUziPceSD74aLpfAfZThI+j8OcIRJ37Aip7TO3S3HEQewuTt+51jZk/Niacoad+tgYlfuy732OaJvDlVhg169+fUEsDBBQAAAAIAAJYYU0XAr2+lwIAANcEAAAkABwALmdpdC9ob29rcy9wcmVwYXJlLWNvbW1pdC1tc2cuc2FtcGxlVVQJAAP0FNtb9BTbW3V4CwABBOgDAAAE6AMAAHVTXXPTMBB8Jr/ikDNNPyybwls77UwpDPSFztDwlmmr2GdbVJFcSaaUyY/nJDkhHSCTB+WU3dvbPWWvy6XUpesm2SSDCw34U6x6hdAZ8wCusrL34A30FnthEXyHUJnVSnpQpoUVOidaLAh7KZTCGpbPwFq6TX9i8CR9F1FarBBME8+NVIFKeOiECxXCj6wjYw6NUco8JcaAqTGpkUZvaBKEsCNo5sCZwVZYAMy7NAPV+sH2xiFIFybBmrr8Cx1VEfIqkUcDGiGVSzMI0EbzX2gNOC/84HKC7thB7GJprMe6iF7OqZUWyzgo3QW6HCxGG2IlmWCAjd7yRMRXrmXFJDBscCB1pQYygIAWcZORG8dspHXJcNTegRn8aCm7NLpRsvLuhAG18ME4QfPadiN71EosDiuj691WGKj6IaJiprVsGuA8jMCTB8AtI7zUNEcAbNP7PpCkJTZm3JmITxg20garg21j9qQ9hI2VGEJW1M2g07MwWI8pAs6pM2k0Nv12j4NwHdbb7XF/xiGLbb3dZlHXFA/cyFZjzU3TcNoqJXUM4IXwuJWV0ETjvFSKFMWVoVghJUJfS3GpZyJsjSHLahQUWCVIN5u+zafvGDkygWR0fkAngHJwNj61Hq0CLouleABOAmauvC0zKHOgQwZZmZUgGyhvt+GVUBRA5VN6heT0jJocMzg9DTuSrz3ShMKHPtl/+5CDs3hNn0gCbKEZFHC/k2slKjLzr4DvJ9mrpIiU7e3BNO7b0RGcncGbHTEAhwfhgE5UQdrN9fuz6X7g/yEsfLqa3118m3++/np39eHjlzmsaeOomY4GLPaLw/PFQXE4LV9kdAKL47KfhdFaeiXAHx2w2ylRs9R4vQasOnpEqXZ+HsuT31BLAwQUAAAACAACWGFNGiFEJXUEAAAaDgAAGAAcAC5naXQvaG9va3MvdXBkYXRlLnNhbXBsZVVUCQAD9BTbW/QU21t1eAsAAQToAwAABOgDAACtV1FvIjcQfmZ/xdyCwoFgSdK35Eh1TdTqHipVbe6pOkVm8bJuFpuuTbi9tv+9n+1d2F04SJSgSDG2Z+abmW9mTPfdZCbkRKdBN+jSR0n8K1uuMk6pUo+k41ysDBlFs0zFj7SWTEplmOFzMmyhKcnVkrg0PBdyEUHDLcsyHM4KChfCUM5jLp74eMXix5A2wqTE8sV6CRF9hdNEsiUnnbKLscrmfiH5xoG5V9DMZsBiUqEdoBFEnITbSYQ9UxSuV3NACiMndqtkIhZYjN0HCyupIwBTm5oDOCC6t3pmSmWcSdLcaNqk3KQ833d1I7KMZpycHmwKCdO46vTkfKW0MCovIqKfCprzhK0zY88L2ijZNxCNmljmPOOGQ/cJJO4ewvs9GK8CsVRzkRSnQTBrnZassLadkIBxliDzFOecGaFkVDPq1IEAR32f5UzG6XPd97f5W4ZgzmXh0D8PSs6XyvCsKD0+hAkaRcktD+sIJJjBX+mFJa8nLRi8XDI5p0xIHpQ1Mg17F2GAGsn5E9aXYYAy8esfwkrwD5ZwA3Qpjx8DkdCfNP5GYe+XT/cPd59+D+nLtUUkgw6PU5TNnYtHvpYeS1nsrqQt8LgGIwrp5uyyEqT3UF6oNW2YNCO3itXa1u96tUJ4SoPOmNXfFKbeOX2AWzf0wfuDhXfmZlDd/ArqXASJCGpulJEIaaz8hpfeffdK9txca7bgV0es7hut8uA6SbtxTHvvbWuL3SkuWqp8p8cMgj22n5Ku3x0EbYIekW5fbdhG8T7PMC6WgtvOcEpwe3FgA+fIR4nKSSpw3ZMKzSFY5eovHhu7BY0adTvm1L/4u79j6KR2PxwEMdMchzXBEEUVhJ+l5cG8VlnhkP6lECJlyofDIf3mxeoY/MRImfZ9gLvybma/c30dcM3iLQecO6ZYcY0dkLFkma3cc3yiKLL/Ruh1fdSyKxrhJqaPJ7ZAuij4xnM1Dc+f+Qk97XeUnmJtVdTI7Y8eLLSptxXwTPPmQZk6ZsbO9bGp8A8cz8sIV5U1qgw6YRfsDs70xE6eyXDknUOUO13Mx3FjQGJTpyo3D1XD6v1TrrrdnY7/cK10rV0rIb2DlyZf85qTnVpC79GT2lZH1GtYHdm84Lw5G7BX44rPd13zZ0ShbwNlZxy6DQObxpq+9B2P3ditup3NLAi5YgtAiHa6SvZ0ENWO5VAjbj49Pm4lLXzE6qHY1t/JQNxVE9EP5Rd4fBSlq2ALsZ3XOsptsTdQ0tkZ+efeE556OcJZcYpuCFX9NJFrzMfLmzNr/UBq4Ua/EunDFfSxeYG3qNBGRwcy9quD8YIYnExVCottjpePgm0EqoGzq0ZQJey1O6+7cCR/t9XrgZUWXp/CCv0BprWd2JsyL+HbW+H1L6l2vE2Onwm7Z9VhgUPFtCf3Fr62tL7K6aHH+1EWkIFK26nxitIWQY4hUd//0d6tNSf348YN3Cv0v0epNtINJFIJ+V8+tikhSruiw4m70WznHt0WXGvS/Syk0Cneru7CefA/UEsDBAoAAAAAAAJYYU0AAAAAAAAAAAAAAAAKABwALmdpdC9pbmZvL1VUCQAD9BTbW/QU21t1eAsAAQToAwAABOgDAABQSwMEFAAAAAgAAlhhTXc9zSGtAAAA8AAAABEAHAAuZ2l0L2luZm8vZXhjbHVkZVVUCQAD9BTbW/QU21t1eAsAAQToAwAABOgDAAAtjUEKwjAURPeeYqCLqth2L7gSXHkDcRHbnzaS5Jfkh9iNZzeV7obHvJkKoxHY2GhjKaJpWCYKa6BPb9NAjQ7sLm1pdcZr7ja8q3A3vhgyKUEUFQTZyIS6qqECoWfnyEtsS/PGAQpz4Df1AsdR7ALjcT0VnaDZWs7Gj8ic7IAXlfbIPCCSgHVZ2F4xKxEKPmKf/PawTjgYjYUTsloBI0X688O5yMf2weq5hu/uB1BLAwQKAAAAAAADWGFNAAAAAAAAAAAAAAAADQAcAC5naXQvb2JqZWN0cy9VVAkAA/UU21v1FNtbdXgLAAEE6AMAAAToAwAAUEsDBAoAAAAAAANYYU0AAAAAAAAAAAAAAAASABwALmdpdC9vYmplY3RzL2luZm8vVVQJAAP1FNtb9RTbW3V4CwABBOgDAAAE6AMAAFBLAwQKAAAAAAADWGFNAAAAAAAAAAAAAAAAEgAcAC5naXQvb2JqZWN0cy9wYWNrL1VUCQAD9RTbW/UU21t1eAsAAQToAwAABOgDAABQSwMECgAAAAAAAlhhTQAAAAAAAAAAAAAAAAoAHAAuZ2l0L3JlZnMvVVQJAAP0FNtb9BTbW3V4CwABBOgDAAAE6AMAAFBLAwQKAAAAAAACWGFNAAAAAAAAAAAAAAAAEAAcAC5naXQvcmVmcy9oZWFkcy9VVAkAA/QU21v0FNtbdXgLAAEE6AMAAAToAwAAUEsDBAoAAAAAAAJYYU0AAAAAAAAAAAAAAAAPABwALmdpdC9yZWZzL3RhZ3MvVVQJAAP0FNtb9BTbW3V4CwABBOgDAAAE6AMAAFBLAwQUAAAACAACWGFNC4P3vCMAAAAlAAAACgAcAC5naXRpZ25vcmVVVAkAA/QU21v0FNtbdXgLAAEE6AMAAAToAwAA00/JTy7W59LPyUwCkkmZeUBSrzgjsSgFKKqll1KeWJTGBQBQSwMECgAAAAAAAlhhTfbZT6YSAAAAEgAAAAsAHAAudHJhdmlzLnltbFVUCQAD9BTbW/QU21t1eAsAAQToAwAABOgDAABsYW5ndWFnZTogY3J5c3RhbApQSwMEFAAAAAgAJVhhTe8qkah1AgAALwQAAAcAHABMSUNFTlNFVVQJAAM1Fdtb9BTbW3V4CwABBOgDAAAE6AMAAF1SS2+jMBC++1eMcmol1H2cVntzwGmsBYyM02yOBJzgFcERdjbqv98ZkrbqSkhoXt9jxqa3UEgDuWvtGCw8YPDIWOrPr5M79hEe2kf4/vXbDyh5IRir7HRyITg/ggvQ28nuX+E4NWO0XQKHyVrwB2j7ZjraBKKHZnyFs50CDvh9bNzoxiM00CIBw87YI0zwh3htJovNHTQh+NY1iAedby8nO8YmEt/BDTbAQ0TFi/o+sXicSTrbDMyNQLW3Elxd7P0lwmRDnFxLGAm4sR0uHWl4Kw/u5O4MND67DgxBLwEdkM4ETr5zB/rb2db5sh9c6BPoHEHvLxGTgZLzEhPy8cVPEOwwMERwqHv2+qFu7iHpZ1povK8oUOba+9NnJy6ww2UakdLOM53Hlc2Mf2wbKUPtBz8M/krWWj92jhyFn4wZLDV7/9fOXm5HHX1EqTcJdIDzx1XvpdA3wwB7e18Y8rqRUerNzkT0IeLhXTPA2U8z3/82n5B/LaBWK7PlWoCsodLqRWYigwWvMV4ksJVmrTYGsEPz0uxArYCXO/glyywB8bvSoq5BaSaLKpcCc7JM800my2dY4lyp8P1KfLgIahQQ4R1KiprACqHTNYZ8KXNpdglbSVMS5kpp4FBxbWS6ybmGaqMrVQukzxC2lOVKI4soRGmekBVzIF4wgHrN85yoGN+gek36IFXVTsvntYG1yjOByaVAZXyZixsVmkpzLosEMl7wZzFPKUTRjNpu6mC7FpQiPo5faqQqyUaqSqMxTNClNu+jW1mLBLiWNS1kpVWRMFonTqgZBOdKcUOhVcOni2ALxZtavANCJniOWHie8tP5ntg/UEsDBBQAAAAIAENYYU2d0IohGwEAAPsBAAAJABwAUkVBRE1FLm1kVVQJAANtFdtb9BTbW3V4CwABBOgDAAAE6AMAAHWOzU7DMBCE736KlXJoe0gi/i4VQqpakDhAEQJxQIg6zja2GtvBXoOiqu+OUygloN52d+ab2QSEaz3x+pU3DWMP89l8DE9OEQKHEr1wqiFlDUh0yFiSwLXp7DXvrn1A/VK2iwuim/0efvS8wj4VutMB+wzfsbaNRkN9qNwLB9CpNeRUEUiZirGjDK6sW4EiGJ5LosaP87xSJEORCavz59YGlwaPznCNL/l6fTu5udxs8mWkLkbsOIOpQx6bOyMs4xgcQuG4ERKGixgFQqJY2UCQFqDb1OBH+u1bjNhJDLBaR9s2QEhuKvQ78ktJuYbBpCzBW427jkGETzO4C14CWSD5p7XpBOtUpcz/1rOftzlEJabUNdzjW0BP7BNQSwMEFAAAAAgAYlhhTZZGI0t4AAAAjQAAAAkAHABzaGFyZC55bWxVVAkAA6gV21v0FNtbdXgLAAEE6AMAAAToAwAAy0vMTbVSqK72c/R1ra3lKkstKs7Mz7NSMNAz1DPg4kosLcnILyq24lJQ0FWozC8t0s0DalCwSc1NzMyx4+IqSSxKTy0By8PMALEVFIDyQFOKi5L1YeJ6yUVcXMlFlcUliTkg841M9Qy5uHIyk1PzioFO8PUM4QIAUEsDBAoAAAAAAINYYU0AAAAAAAAAAAAAAAAFABwAc3BlYy9VVAkAA+YV21vmFdtbdXgLAAEE6AMAAAToAwAAUEsDBBQAAAAIAG9YYU13iXiKJAAAACkAAAATABwAc3BlYy9zcGVjX2hlbHBlci5jclVUCQADwhXbW/QU21t1eAsAAQToAwAABOgDAAArSi0szSxKVVAqLkhNVuIqgnH19PSLi5L1q6v9HH1da2uVuABQSwMEFAAAAAgAe1hhTYOGz1FyAAAAfQAAABUAHABzcGVjL3t7TkFNRX19X3NwZWMuY3JVVAkAA9oV21v0FNtbdXgLAAEE6AMAAAToAwAAJYqxCsJAEAX7+4rH2WgTe7uglhpBwVI09ySHh5fs7mER8u9GLKaZGeFQohC+WmvP9tYx9RTvXKC2Eh/EOG7r0/lYH/bThJAdsMCl2TUbXCUaYVRTN+to8J8sL/X/DXjek7LSLpcUwGFpUriaC9/B/fgCUEsDBAoAAAAAAK9YYU0AAAAAAAAAAAAAAAAEABwAc3JjL1VUCQADORbbWzkW21t1eAsAAQToAwAABOgDAABQSwMECgAAAAAAj1hhTQAAAAAAAAAAAAAAAA0AHABzcmMve3tOQU1FfX0vVVQJAAP+Fdtb/hXbW3V4CwABBOgDAAAE6AMAAFBLAwQKAAAAAACPWGFNVF0liSwAAAAsAAAAFwAcAHNyYy97e05BTUV9fS92ZXJzaW9uLmNyVVQJAAP+Fdtb9BTbW3V4CwABBOgDAAAE6AMAAG1vZHVsZSB7e0NBUFNOQU1FfX0KICBWRVJTSU9OID0gIjAuMS4wIgplbmQKUEsDBBQAAAAIAKVYYU33dbcRYQAAAGkAAAAPABwAc3JjL3t7TkFNRX19LmNyVVQJAAMlFttb9BTbW3V4CwABBOgDAAAE6AMAACtKLSzNLEpVUNLTr672c/R1ra3V11Li4lJWCPF38bdSCC/KLElVSMlPLs1NzStJLMnMz+PKzU8pzUlVqK52dgwIhujhUlCA6QgoLVGozC8tUkjOT0lVyEgtSuVKzUvhAgBQSwECHgMUAAAACAACWGFNwx4pz24AAACWAAAADQAYAAAAAAABAAAA/4EAAAAALmVkaXRvcmNvbmZpZ1VUBQAD9BTbW3V4CwABBOgDAAAE6AMAAFBLAQIeAwoAAAAAAANYYU0AAAAAAAAAAAAAAAAFABgAAAAAAAAAEAD/QbUAAAAuZ2l0L1VUBQAD9RTbW3V4CwABBOgDAAAE6AMAAFBLAQIeAwoAAAAAAAJYYU0AAAAAAAAAAAAAAAAOABgAAAAAAAAAEAD/QfQAAAAuZ2l0L2JyYW5jaGVzL1VUBQAD9BTbW3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAAAIAANYYU0/btQFTgAAAF0AAAALABgAAAAAAAEAAAD/gTwBAAAuZ2l0L2NvbmZpZ1VUBQAD9RTbW3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAAAIAAJYYU03iwcfPwAAAEkAAAAQABgAAAAAAAEAAAD/gc8BAAAuZ2l0L2Rlc2NyaXB0aW9uVVQFAAP0FNtbdXgLAAEE6AMAAAToAwAAUEsBAh4DCgAAAAAAAlhhTStpc6cXAAAAFwAAAAkAGAAAAAAAAQAAAP+BWAIAAC5naXQvSEVBRFVUBQAD9BTbW3V4CwABBOgDAAAE6AMAAFBLAQIeAwoAAAAAAAJYYU0AAAAAAAAAAAAAAAALABgAAAAAAAAAEAD/QbICAAAuZ2l0L2hvb2tzL1VUBQAD9BTbW3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAAAIAAJYYU2FT/gJFwEAAN4BAAAgABgAAAAAAAEAAAD/gfcCAAAuZ2l0L2hvb2tzL2FwcGx5cGF0Y2gtbXNnLnNhbXBsZVVUBQAD9BTbW3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAAAIAAJYYU3p+MoQ9wEAAIADAAAcABgAAAAAAAEAAAD/gWgEAAAuZ2l0L2hvb2tzL2NvbW1pdC1tc2cuc2FtcGxlVVQFAAP0FNtbdXgLAAEE6AMAAAToAwAAUEsBAh4DFAAAAAgAAlhhTZoM98CKAAAAvQAAAB0AGAAAAAAAAQAAAP+BtQYAAC5naXQvaG9va3MvcG9zdC11cGRhdGUuc2FtcGxlVVQFAAP0FNtbdXgLAAEE6AMAAAToAwAAUEsBAh4DFAAAAAgAAlhhTc/ATAIJAQAAqAEAACAAGAAAAAAAAQAAAP+BlgcAAC5naXQvaG9va3MvcHJlLWFwcGx5cGF0Y2guc2FtcGxlVVQFAAP0FNtbdXgLAAEE6AMAAAToAwAAUEsBAh4DFAAAAAgAAlhhTSUwqFyjAwAAagYAABwAGAAAAAAAAQAAAP+B+QgAAC5naXQvaG9va3MvcHJlLWNvbW1pdC5zYW1wbGVVVAUAA/QU21t1eAsAAQToAwAABOgDAABQSwECHgMUAAAACAACWGFNBNiPsZ0CAABEBQAAGgAYAAAAAAABAAAA/4HyDAAALmdpdC9ob29rcy9wcmUtcHVzaC5zYW1wbGVVVAUAA/QU21t1eAsAAQToAwAABOgDAABQSwECHgMUAAAACAACWGFNerzEE98HAAAiEwAAHAAYAAAAAAABAAAA/4HjDwAALmdpdC9ob29rcy9wcmUtcmViYXNlLnNhbXBsZVVUBQAD9BTbW3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAAAIAAJYYU0XAr2+lwIAANcEAAAkABgAAAAAAAEAAAD/gRgYAAAuZ2l0L2hvb2tzL3ByZXBhcmUtY29tbWl0LW1zZy5zYW1wbGVVVAUAA/QU21t1eAsAAQToAwAABOgDAABQSwECHgMUAAAACAACWGFNGiFEJXUEAAAaDgAAGAAYAAAAAAABAAAA/4ENGwAALmdpdC9ob29rcy91cGRhdGUuc2FtcGxlVVQFAAP0FNtbdXgLAAEE6AMAAAToAwAAUEsBAh4DCgAAAAAAAlhhTQAAAAAAAAAAAAAAAAoAGAAAAAAAAAAQAP9B1B8AAC5naXQvaW5mby9VVAUAA/QU21t1eAsAAQToAwAABOgDAABQSwECHgMUAAAACAACWGFNdz3NIa0AAADwAAAAEQAYAAAAAAABAAAA/4EYIAAALmdpdC9pbmZvL2V4Y2x1ZGVVVAUAA/QU21t1eAsAAQToAwAABOgDAABQSwECHgMKAAAAAAADWGFNAAAAAAAAAAAAAAAADQAYAAAAAAAAABAA/0EQIQAALmdpdC9vYmplY3RzL1VUBQAD9RTbW3V4CwABBOgDAAAE6AMAAFBLAQIeAwoAAAAAAANYYU0AAAAAAAAAAAAAAAASABgAAAAAAAAAEAD/QVchAAAuZ2l0L29iamVjdHMvaW5mby9VVAUAA/UU21t1eAsAAQToAwAABOgDAABQSwECHgMKAAAAAAADWGFNAAAAAAAAAAAAAAAAEgAYAAAAAAAAABAA/0GjIQAALmdpdC9vYmplY3RzL3BhY2svVVQFAAP1FNtbdXgLAAEE6AMAAAToAwAAUEsBAh4DCgAAAAAAAlhhTQAAAAAAAAAAAAAAAAoAGAAAAAAAAAAQAP9B7yEAAC5naXQvcmVmcy9VVAUAA/QU21t1eAsAAQToAwAABOgDAABQSwECHgMKAAAAAAACWGFNAAAAAAAAAAAAAAAAEAAYAAAAAAAAABAA/0EzIgAALmdpdC9yZWZzL2hlYWRzL1VUBQAD9BTbW3V4CwABBOgDAAAE6AMAAFBLAQIeAwoAAAAAAAJYYU0AAAAAAAAAAAAAAAAPABgAAAAAAAAAEAD/QX0iAAAuZ2l0L3JlZnMvdGFncy9VVAUAA/QU21t1eAsAAQToAwAABOgDAABQSwECHgMUAAAACAACWGFNC4P3vCMAAAAlAAAACgAYAAAAAAABAAAA/4HGIgAALmdpdGlnbm9yZVVUBQAD9BTbW3V4CwABBOgDAAAE6AMAAFBLAQIeAwoAAAAAAAJYYU322U+mEgAAABIAAAALABgAAAAAAAEAAAD/gS0jAAAudHJhdmlzLnltbFVUBQAD9BTbW3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAAAIACVYYU3vKpGodQIAAC8EAAAHABgAAAAAAAEAAAD/gYQjAABMSUNFTlNFVVQFAAM1FdtbdXgLAAEE6AMAAAToAwAAUEsBAh4DFAAAAAgAQ1hhTZ3QiiEbAQAA+wEAAAkAGAAAAAAAAQAAAP+BOiYAAFJFQURNRS5tZFVUBQADbRXbW3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAAAIAGJYYU2WRiNLeAAAAI0AAAAJABgAAAAAAAEAAAD/gZgnAABzaGFyZC55bWxVVAUAA6gV21t1eAsAAQToAwAABOgDAABQSwECHgMKAAAAAACDWGFNAAAAAAAAAAAAAAAABQAYAAAAAAAAABAA/0FTKAAAc3BlYy9VVAUAA+YV21t1eAsAAQToAwAABOgDAABQSwECHgMUAAAACABvWGFNd4l4iiQAAAApAAAAEwAYAAAAAAABAAAA/4GSKAAAc3BlYy9zcGVjX2hlbHBlci5jclVUBQADwhXbW3V4CwABBOgDAAAE6AMAAFBLAQIeAxQAAAAIAHtYYU2Dhs9RcgAAAH0AAAAVABgAAAAAAAEAAAD/gQMpAABzcGVjL3t7TkFNRX19X3NwZWMuY3JVVAUAA9oV21t1eAsAAQToAwAABOgDAABQSwECHgMKAAAAAACvWGFNAAAAAAAAAAAAAAAABAAYAAAAAAAAABAA/0HEKQAAc3JjL1VUBQADORbbW3V4CwABBOgDAAAE6AMAAFBLAQIeAwoAAAAAAI9YYU0AAAAAAAAAAAAAAAANABgAAAAAAAAAEAD/QQIqAABzcmMve3tOQU1FfX0vVVQFAAP+FdtbdXgLAAEE6AMAAAToAwAAUEsBAh4DCgAAAAAAj1hhTVRdJYksAAAALAAAABcAGAAAAAAAAQAAAP+BSSoAAHNyYy97e05BTUV9fS92ZXJzaW9uLmNyVVQFAAP+FdtbdXgLAAEE6AMAAAToAwAAUEsBAh4DFAAAAAgApVhhTfd1txFhAAAAaQAAAA8AGAAAAAAAAQAAAP+BxioAAHNyYy97e05BTUV9fS5jclVUBQADJRbbW3V4CwABBOgDAAAE6AMAAFBLBQYAAAAAJAAkADUMAABwKwAAAAA=
|
Binary file
|
data/img/radon-readme-header.png
CHANGED
Binary file
|
data/lib/core/constants.rb
CHANGED
data/lib/core/environments.rb
CHANGED
@@ -6,8 +6,9 @@ class Environments
|
|
6
6
|
'java' => File.join(DATA_DIR, "java.zip"),
|
7
7
|
'maven' => File.join(DATA_DIR, "maven.zip"),
|
8
8
|
'python' => File.join(DATA_DIR, "python.zip"),
|
9
|
+
'c' => File.join(DATA_DIR, "c.zip"),
|
9
10
|
'ruby (beta)' => File.join(DATA_DIR, "ruby.zip"),
|
10
|
-
'
|
11
|
+
'crystal'=> File.join(DATA_DIR, "crystal_app.zip")
|
11
12
|
}
|
12
13
|
|
13
14
|
# Gets all environments as an array of strings
|
@@ -34,6 +35,8 @@ class Environments
|
|
34
35
|
extract_maven(target)
|
35
36
|
when 'c'
|
36
37
|
extract_c(target)
|
38
|
+
when 'crystal'
|
39
|
+
extract_crystal(target)
|
37
40
|
else
|
38
41
|
error("#{key} is not a supported environment.\nYou can suggest it be added at https://github.com/cbrnrd/radon/issues")
|
39
42
|
end
|
data/lib/core/extract.rb
CHANGED
@@ -27,6 +27,12 @@ def extract_c(target)
|
|
27
27
|
extract_zip(Radon::Environments.getTargetOf('c'), target)
|
28
28
|
end
|
29
29
|
|
30
|
+
def extract_crystal(target)
|
31
|
+
extract_zip(Radon::Environments.getTargetOf('crystal'), target)
|
32
|
+
find_and_replace_all(target, '{{NAME}}', projectify(target))#.split('-').collect(&:capitalize).join)
|
33
|
+
find_and_replace_all(target, '{{CAPSNAME}}', classify(target))
|
34
|
+
end
|
35
|
+
|
30
36
|
# Extracts some zip data to the passed destination
|
31
37
|
def extract_zip(file, destination)
|
32
38
|
puts "Creating project under #{File.expand_path(destination)}" unless $quiet
|
data/lib/core/text.rb
CHANGED
@@ -8,6 +8,35 @@ def error(*args)
|
|
8
8
|
puts Paint["ERROR", '#e74c3c'] + " - #{args}"
|
9
9
|
end
|
10
10
|
|
11
|
+
def report_error_to_github(trace)
|
12
|
+
puts %Q{
|
13
|
+
:::::::::::::::::: COPY BELOW ::::::::::::::::::
|
14
|
+
### Ruby version
|
15
|
+
|
16
|
+
`#{RUBY_VERSION}-p#{RUBY_PATCHLEVEL}`
|
17
|
+
|
18
|
+
### OS
|
19
|
+
|
20
|
+
#{Gem::Platform.local.os}
|
21
|
+
|
22
|
+
### Radon Version
|
23
|
+
|
24
|
+
`VERSION`
|
25
|
+
|
26
|
+
### Date Found
|
27
|
+
|
28
|
+
#{Time.now.strftime("%d/%m/%Y %H:%M")}
|
29
|
+
|
30
|
+
### Backtrace
|
31
|
+
```
|
32
|
+
#{trace}
|
33
|
+
```
|
34
|
+
:::::::::::::::::: COPY ABOVE ::::::::::::::::::
|
35
|
+
#{Paint["Whoops! Looks like you've found a bug in radon. Please copy the text above and open a new issue at ", '#e74c3c'] + Paint['https://github.com/cbrnrd/radon/issues', :bold, :bright]}
|
36
|
+
}
|
37
|
+
|
38
|
+
end
|
39
|
+
|
11
40
|
def create(fname)
|
12
41
|
puts Paint[" create", '#2ecc71'] + " #{fname}" unless $quiet
|
13
42
|
end
|
@@ -29,13 +58,27 @@ def projectify(name)
|
|
29
58
|
return name
|
30
59
|
end
|
31
60
|
|
61
|
+
def classify(name)
|
62
|
+
name = name.gsub(/-[a-z]/) {|s| s.upcase }
|
63
|
+
name.delete!('-')
|
64
|
+
return name.slice(0,1).capitalize + name.slice(1..-1)
|
65
|
+
end
|
66
|
+
|
32
67
|
def find_and_replace_all(target_dir, find, repl)
|
33
|
-
Dir.
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
68
|
+
files = Dir[File.join(target_dir,'**','*')]
|
69
|
+
files.each do |file_name|
|
70
|
+
next if File.directory?(file_name)
|
71
|
+
begin
|
72
|
+
text = File.read(file_name)
|
73
|
+
# Do the find and replace
|
74
|
+
new_contents = text.gsub(find, repl)
|
75
|
+
File.open(file_name, 'w') {|f| f.puts new_contents}
|
76
|
+
rescue Errno::ENOENT => e
|
77
|
+
# Something weird happened (this shouldn't come up)
|
78
|
+
error "ERROR GSUBING FILE #{file_name}"
|
79
|
+
report_error_to_github(e.backtrace)
|
80
|
+
next
|
81
|
+
end
|
40
82
|
end
|
83
|
+
|
41
84
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: radon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- cbrnrd
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-11-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: paint
|
@@ -103,6 +103,8 @@ files:
|
|
103
103
|
- bin/setup
|
104
104
|
- data/c.b64
|
105
105
|
- data/c.zip
|
106
|
+
- data/crystal_app.b64
|
107
|
+
- data/crystal_app.zip
|
106
108
|
- data/gradle.b64
|
107
109
|
- data/gradle.zip
|
108
110
|
- data/java.b64
|
@@ -144,7 +146,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
144
146
|
version: '0'
|
145
147
|
requirements: []
|
146
148
|
rubyforge_project:
|
147
|
-
rubygems_version: 2.6.
|
149
|
+
rubygems_version: 2.6.13
|
148
150
|
signing_key:
|
149
151
|
specification_version: 4
|
150
152
|
summary: Radon generates starter code for all kinds of environments.
|