Compare commits
1181 Commits
v2.0.0.300
...
v0.2.0.99
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5a8d944397 | ||
|
|
0b70a5c315 | ||
|
|
91cded3b71 | ||
|
|
84112dc85b | ||
|
|
b1b947ae7f | ||
|
|
1b035f8657 | ||
|
|
9d50f4d651 | ||
|
|
c06a6dc988 | ||
|
|
f198ca2b77 | ||
|
|
9cfc766889 | ||
|
|
5ef1e40403 | ||
|
|
c9e6835d7b | ||
|
|
604cea00f6 | ||
|
|
b4782da1d1 | ||
|
|
d5504043c5 | ||
|
|
81ebbcad70 | ||
|
|
92e9dc6ee1 | ||
|
|
5e8b617625 | ||
|
|
2cbe17151d | ||
|
|
95bd615718 | ||
|
|
8e8c4ff497 | ||
|
|
5eddcc1660 | ||
|
|
d42165a93a | ||
|
|
99012d8a40 | ||
|
|
8bc42c76e4 | ||
|
|
b7f72c6259 | ||
|
|
64ef8db037 | ||
|
|
3b5887bf09 | ||
|
|
40a75949ba | ||
|
|
6747267d19 | ||
|
|
13db03f97c | ||
|
|
cd68eea790 | ||
|
|
cfe55d00ae | ||
|
|
1d88313424 | ||
|
|
9513068467 | ||
|
|
9206258370 | ||
|
|
0fa1509ca6 | ||
|
|
c5eb772f7a | ||
|
|
04fec6d4d8 | ||
|
|
d0b5e380d7 | ||
|
|
df69c58d2b | ||
|
|
27114c9399 | ||
|
|
cfca07996b | ||
|
|
e97b80f630 | ||
|
|
792679fd81 | ||
|
|
ecf47d4b17 | ||
|
|
3b1d49a78f | ||
|
|
753f3eb863 | ||
|
|
9fc2d22d19 | ||
|
|
3cb42f06c2 | ||
|
|
a6c396a595 | ||
|
|
bac9076b1e | ||
|
|
b228273be0 | ||
|
|
e7fa4cba19 | ||
|
|
0506cc4185 | ||
|
|
cde8b4dd97 | ||
|
|
0a0a44162c | ||
|
|
125f46fbec | ||
|
|
f3222ca7c7 | ||
|
|
d252a8b232 | ||
|
|
48559cf964 | ||
|
|
c734e8bc7e | ||
|
|
3c7d7756e6 | ||
|
|
683bda49d8 | ||
|
|
52fb29ee18 | ||
|
|
236e16c9a5 | ||
|
|
0584038273 | ||
|
|
6685aea144 | ||
|
|
e4f7aa52df | ||
|
|
f61c4feb00 | ||
|
|
04e8c635e0 | ||
|
|
93ea5cfdee | ||
|
|
1b7288e7cb | ||
|
|
f1914082b8 | ||
|
|
6016948329 | ||
|
|
708db1a75c | ||
|
|
994e881ba6 | ||
|
|
893e20c27b | ||
|
|
23aace6149 | ||
|
|
e774e6a038 | ||
|
|
f19a1a5960 | ||
|
|
03156d62f6 | ||
|
|
04d01dc781 | ||
|
|
cfae8807aa | ||
|
|
f90e77987e | ||
|
|
2ed0738b30 | ||
|
|
74c5664a7f | ||
|
|
4c9abe3d84 | ||
|
|
7a45394820 | ||
|
|
588a48e65d | ||
|
|
83453e2464 | ||
|
|
e6809585c9 | ||
|
|
14bf63e21d | ||
|
|
b5d932866a | ||
|
|
0b8a84a57c | ||
|
|
3555b4ce20 | ||
|
|
8cad976e7f | ||
|
|
ad7b6a8ec2 | ||
|
|
906ecfb6a1 | ||
|
|
03cc3a1ad2 | ||
|
|
d62dbd48ae | ||
|
|
cb12945270 | ||
|
|
af74854b8e | ||
|
|
f35fae109b | ||
|
|
804b2130a8 | ||
|
|
49537a2efe | ||
|
|
1dfb4ddcd8 | ||
|
|
fb7969e046 | ||
|
|
cd4863b974 | ||
|
|
55f4a81dee | ||
|
|
d006df8d7c | ||
|
|
97095733dd | ||
|
|
d08b0ce47a | ||
|
|
caa5a7e6b7 | ||
|
|
9376c02158 | ||
|
|
1ebd639e36 | ||
|
|
eff34725af | ||
|
|
00d4bfd712 | ||
|
|
5f9e285c70 | ||
|
|
902824cdbd | ||
|
|
d3cbf9a8ff | ||
|
|
c63704ba0d | ||
|
|
da404d6435 | ||
|
|
d9a6c4f211 | ||
|
|
7436997f9b | ||
|
|
4c2be68549 | ||
|
|
6d1766d81a | ||
|
|
3e676d2073 | ||
|
|
6da73d73a5 | ||
|
|
b9c98205e0 | ||
|
|
07d2f5b6a0 | ||
|
|
bfa479507c | ||
|
|
4182728901 | ||
|
|
5be5709043 | ||
|
|
ee5a2ec289 | ||
|
|
cdfb95f425 | ||
|
|
451060cb65 | ||
|
|
4d795e13cd | ||
|
|
ff6bf235aa | ||
|
|
a272127a00 | ||
|
|
e3bc6de734 | ||
|
|
23249de728 | ||
|
|
05e4af9ae7 | ||
|
|
1864a79f99 | ||
|
|
5843a881e6 | ||
|
|
d898fbb4b0 | ||
|
|
721767331b | ||
|
|
abd4c1a1ad | ||
|
|
df971b1289 | ||
|
|
e5c81eefd2 | ||
|
|
49c7c033d9 | ||
|
|
f7fb238fb4 | ||
|
|
52dbd8d708 | ||
|
|
427babf34e | ||
|
|
1022879103 | ||
|
|
dbf34e6740 | ||
|
|
4fd062b4e3 | ||
|
|
9aa8050627 | ||
|
|
cd310626e9 | ||
|
|
145c2ca4a4 | ||
|
|
1f5dcef29d | ||
|
|
899c1d98e3 | ||
|
|
3f8ea405bf | ||
|
|
f3c9a91da8 | ||
|
|
a6c79cd5d8 | ||
|
|
ed1174affb | ||
|
|
451f101350 | ||
|
|
a29fe1681d | ||
|
|
48e142c47d | ||
|
|
f1bc0164f6 | ||
|
|
aceb282f8d | ||
|
|
7871c118e7 | ||
|
|
5e7b379a45 | ||
|
|
be95311471 | ||
|
|
17d7083412 | ||
|
|
51e5c55d5f | ||
|
|
88dacc00f7 | ||
|
|
c314c9f6ec | ||
|
|
2b54f0a7f3 | ||
|
|
7a5fe59dbf | ||
|
|
a63587bb19 | ||
|
|
eb46343ce8 | ||
|
|
8fa43fb9f7 | ||
|
|
6d5e9ad4a1 | ||
|
|
70c8228605 | ||
|
|
82470bd995 | ||
|
|
a263558383 | ||
|
|
7d82e35650 | ||
|
|
8616bcedd4 | ||
|
|
2c66322121 | ||
|
|
1402bc883e | ||
|
|
1325822798 | ||
|
|
7a786d4c0e | ||
|
|
87c7afac16 | ||
|
|
06d39579a5 | ||
|
|
c8ea0a73e2 | ||
|
|
eeb3c88131 | ||
|
|
fd718b61ac | ||
|
|
4a3b2a0014 | ||
|
|
cbd87dcc38 | ||
|
|
956de03a62 | ||
|
|
2b74098040 | ||
|
|
402a9e1ee0 | ||
|
|
e68653463d | ||
|
|
0715962ec5 | ||
|
|
5668a3bcfd | ||
|
|
bd241dcbe0 | ||
|
|
69786b3968 | ||
|
|
6e2ded5d33 | ||
|
|
b47d5f7fa1 | ||
|
|
90ff73d45f | ||
|
|
c2c7015f39 | ||
|
|
579602419e | ||
|
|
28857e7fac | ||
|
|
6d23fb1b61 | ||
|
|
96332978a0 | ||
|
|
ad95fbfd4a | ||
|
|
1488c0a0fc | ||
|
|
d9d8cbacec | ||
|
|
80f2adad50 | ||
|
|
7a72f4a05b | ||
|
|
6d7ff628d8 | ||
|
|
e9f9f66b2f | ||
|
|
6ca88f98af | ||
|
|
631cf776f6 | ||
|
|
6ea9b4b94a | ||
|
|
d835c168d3 | ||
|
|
329786365d | ||
|
|
4f6380a73c | ||
|
|
cde1217356 | ||
|
|
2eedfca78a | ||
|
|
0d65984991 | ||
|
|
2a932fe7e8 | ||
|
|
0e02171938 | ||
|
|
a3dfa05f25 | ||
|
|
2a3b0304cb | ||
|
|
16e35f68bb | ||
|
|
74b1c846a5 | ||
|
|
1f930c18e4 | ||
|
|
d9e60eff6b | ||
|
|
097982334c | ||
|
|
be6e6b910e | ||
|
|
31b9ec1116 | ||
|
|
ff6c3b70d3 | ||
|
|
0fd0b31a60 | ||
|
|
76e6ebc63c | ||
|
|
2ea35adb98 | ||
|
|
782f63f510 | ||
|
|
c874122fc0 | ||
|
|
2efda4933d | ||
|
|
b7c70d750a | ||
|
|
5ebfac6cc8 | ||
|
|
74ca6149e3 | ||
|
|
40d7590f80 | ||
|
|
2cb27240dc | ||
|
|
837c2683df | ||
|
|
0b278c7db8 | ||
|
|
0b765d10fe | ||
|
|
20dbdfb344 | ||
|
|
426448ed98 | ||
|
|
03b83ed226 | ||
|
|
eafe79450e | ||
|
|
f286dba40a | ||
|
|
448f579723 | ||
|
|
1562081235 | ||
|
|
0214c8e0f0 | ||
|
|
f16dd069b5 | ||
|
|
aba613acd1 | ||
|
|
2e36538dcd | ||
|
|
c42e4d682c | ||
|
|
327536b684 | ||
|
|
7dbacf105d | ||
|
|
8d776abb48 | ||
|
|
7f8093de92 | ||
|
|
c1de7f26d1 | ||
|
|
4a82d30d3d | ||
|
|
da52e60f36 | ||
|
|
cf58e52f40 | ||
|
|
2a7ae96906 | ||
|
|
053f6fcaeb | ||
|
|
0c75d0bb03 | ||
|
|
0c9b5dc97e | ||
|
|
c99e92e6af | ||
|
|
3f64c01d5b | ||
|
|
f022dae1fa | ||
|
|
52ad8cf37f | ||
|
|
3d20fd8f96 | ||
|
|
cf662291d5 | ||
|
|
43d85bf59d | ||
|
|
4a149c356b | ||
|
|
740fc9154f | ||
|
|
0a657302f7 | ||
|
|
7b09b259a8 | ||
|
|
b093be3f4e | ||
|
|
3c8b263694 | ||
|
|
43c5d03f9a | ||
|
|
9fbe06ad68 | ||
|
|
db899a9bb8 | ||
|
|
d3890bd712 | ||
|
|
1a61796092 | ||
|
|
1251e294cd | ||
|
|
0411b82e65 | ||
|
|
9519f3137c | ||
|
|
f8d97cac7d | ||
|
|
f2ecbe776b | ||
|
|
1ac442d0e6 | ||
|
|
5f2aeb0cea | ||
|
|
2ece05cd1e | ||
|
|
25a3f83ebc | ||
|
|
cdce65a922 | ||
|
|
8f73a51522 | ||
|
|
bc438a6a63 | ||
|
|
4167ffe11a | ||
|
|
6fb1aa85d0 | ||
|
|
eb8ef6c337 | ||
|
|
c076f1ddb1 | ||
|
|
eeff79b288 | ||
|
|
697a62da0a | ||
|
|
f1a289cc74 | ||
|
|
c39a26d9e0 | ||
|
|
f2ccf94835 | ||
|
|
19d625c6c5 | ||
|
|
cd3b6000a0 | ||
|
|
ff33f15bac | ||
|
|
50a0e9514e | ||
|
|
7ef1ca8a00 | ||
|
|
e0d1e08f94 | ||
|
|
9fae76015a | ||
|
|
17bf438cad | ||
|
|
c0b0567c23 | ||
|
|
edc1e0b8d1 | ||
|
|
cd79b42f5f | ||
|
|
dc82e66dde | ||
|
|
b034d0c1b3 | ||
|
|
36a3e86882 | ||
|
|
e76fb8c90b | ||
|
|
e6288148ad | ||
|
|
bf8d68a873 | ||
|
|
080e2e9eff | ||
|
|
e3310e590c | ||
|
|
a0b4d3a38d | ||
|
|
a72b856fb8 | ||
|
|
522ef9d8d5 | ||
|
|
a486bff40b | ||
|
|
0de1f3f17a | ||
|
|
755fdce227 | ||
|
|
cd8659e684 | ||
|
|
a621f0d49b | ||
|
|
2e96c4e798 | ||
|
|
816cf608fc | ||
|
|
713e109bc9 | ||
|
|
4bf3ef45b0 | ||
|
|
09530b238f | ||
|
|
5414dadffc | ||
|
|
5482fa3ae0 | ||
|
|
6e8480d7cb | ||
|
|
7c7cfc0b7d | ||
|
|
4e051bfde2 | ||
|
|
356e14ac5b | ||
|
|
97d0ddb6e9 | ||
|
|
17f6841426 | ||
|
|
a6a7732cd5 | ||
|
|
aa37b65842 | ||
|
|
6ac9e5ec18 | ||
|
|
2d54ca5d47 | ||
|
|
422371d118 | ||
|
|
77574ec555 | ||
|
|
3b385e8738 | ||
|
|
7f6101a6bc | ||
|
|
28f6777f9a | ||
|
|
e7275af073 | ||
|
|
5fcd65ef57 | ||
|
|
222ed1eb4b | ||
|
|
4486317888 | ||
|
|
206ff12b71 | ||
|
|
73fb216e6f | ||
|
|
e9eab0ae48 | ||
|
|
626d94d435 | ||
|
|
e4adc1d3a1 | ||
|
|
c3f9a0336c | ||
|
|
04ca1e4569 | ||
|
|
459715b9b4 | ||
|
|
db4b0de5e2 | ||
|
|
914f799f9d | ||
|
|
e2272dcca3 | ||
|
|
2b1c97ffa4 | ||
|
|
b80d6c74ad | ||
|
|
6f2dd5d2fa | ||
|
|
1218dd255f | ||
|
|
5bf9b069fc | ||
|
|
2ab9bb4fce | ||
|
|
87d00abdf1 | ||
|
|
19aded7a15 | ||
|
|
a2536deef0 | ||
|
|
ff6737314f | ||
|
|
4fc150f77b | ||
|
|
90b5947a19 | ||
|
|
c7d445d1c1 | ||
|
|
c4a3bc3d2f | ||
|
|
8966e5a403 | ||
|
|
bc94a7f921 | ||
|
|
f3cbc2bdd2 | ||
|
|
f681d43601 | ||
|
|
b232cc3081 | ||
|
|
857d661ff1 | ||
|
|
8255fb0b28 | ||
|
|
ab63c3e83d | ||
|
|
c1f59a55c6 | ||
|
|
c8474701a0 | ||
|
|
c206b83318 | ||
|
|
a8b9a47f5f | ||
|
|
3e9a159466 | ||
|
|
ba817557ba | ||
|
|
30ed3a4a80 | ||
|
|
006dc9202b | ||
|
|
c2a2746ccf | ||
|
|
2fa0729158 | ||
|
|
b3eee50892 | ||
|
|
f1c007c5fe | ||
|
|
7c8a8f8e55 | ||
|
|
a3ade09964 | ||
|
|
8e429239a8 | ||
|
|
4783803b6b | ||
|
|
b320a23bf8 | ||
|
|
32a347bdd2 | ||
|
|
a0b0f6162f | ||
|
|
6c287f118f | ||
|
|
8213f020ff | ||
|
|
d984dd41d6 | ||
|
|
fea5db3e4b | ||
|
|
c38973cce4 | ||
|
|
958153be55 | ||
|
|
d4bab775df | ||
|
|
ecf67e609e | ||
|
|
449b15331a | ||
|
|
f0437d1f22 | ||
|
|
902d6929c0 | ||
|
|
d81e03fcc0 | ||
|
|
abf8c684e7 | ||
|
|
7476d692aa | ||
|
|
c25bea6470 | ||
|
|
b9d67ae421 | ||
|
|
ff3fc8de2e | ||
|
|
e4e3770e54 | ||
|
|
498a86f850 | ||
|
|
f0ae908892 | ||
|
|
54c17de849 | ||
|
|
12a1865d4d | ||
|
|
9ea753011b | ||
|
|
4c39594a57 | ||
|
|
67ff871cf6 | ||
|
|
ea0982ecae | ||
|
|
4f5d79b189 | ||
|
|
aec3ed16d0 | ||
|
|
2e90ea9c19 | ||
|
|
a6b1a1fc0d | ||
|
|
fd42ddec1b | ||
|
|
229986033c | ||
|
|
c249ad5dbe | ||
|
|
e2d6d374ab | ||
|
|
d3adb7ac40 | ||
|
|
0f1afd416b | ||
|
|
2f3bc61af7 | ||
|
|
2b11ad4585 | ||
|
|
c82b90aca8 | ||
|
|
5fae8e7762 | ||
|
|
319b4f13b7 | ||
|
|
54fda3d648 | ||
|
|
2f6fded7c3 | ||
|
|
7934003b5e | ||
|
|
b479064abd | ||
|
|
9e7927acec | ||
|
|
f807e44a39 | ||
|
|
d68abc746c | ||
|
|
8773d38ddd | ||
|
|
6fdbb2b659 | ||
|
|
bfe134ee54 | ||
|
|
f16f097b3e | ||
|
|
7284ef50eb | ||
|
|
e9248e284e | ||
|
|
aff6af1806 | ||
|
|
c0c35a0eba | ||
|
|
072ca459bd | ||
|
|
0865306064 | ||
|
|
ac14444d34 | ||
|
|
8a6d1ef373 | ||
|
|
dc694b0f34 | ||
|
|
76f8cc81da | ||
|
|
14f737bd60 | ||
|
|
5942ddf9f1 | ||
|
|
ab7b427241 | ||
|
|
15120270b4 | ||
|
|
cc0406653a | ||
|
|
9f34127565 | ||
|
|
71ecc96c70 | ||
|
|
2fa3873503 | ||
|
|
96b7bd3b2b | ||
|
|
e1ea17cabf | ||
|
|
3a162be265 | ||
|
|
502298aab9 | ||
|
|
edea488dbe | ||
|
|
2fabe2d198 | ||
|
|
f2c8156c00 | ||
|
|
942be364dc | ||
|
|
44e09e2220 | ||
|
|
0fcd20ec4a | ||
|
|
4c5707bba8 | ||
|
|
947f494e72 | ||
|
|
3f74a87b45 | ||
|
|
da0bdc5750 | ||
|
|
3ea59cd91b | ||
|
|
9b42dc7082 | ||
|
|
8b1c022244 | ||
|
|
e5cb8bb0bd | ||
|
|
d37343bb7d | ||
|
|
9c91f11cdc | ||
|
|
444fcf5ae5 | ||
|
|
31f8e0a47a | ||
|
|
1e0fcc877b | ||
|
|
1293bab868 | ||
|
|
9de92d18e1 | ||
|
|
5a877cbd62 | ||
|
|
99aa25bf83 | ||
|
|
5f66c15b91 | ||
|
|
af220c7f7b | ||
|
|
59e71a4cd9 | ||
|
|
6b1a4c4198 | ||
|
|
1072c5247c | ||
|
|
6508e920fe | ||
|
|
1154e0eeb3 | ||
|
|
2d96914bfa | ||
|
|
70494c3674 | ||
|
|
d68ad98176 | ||
|
|
eb70a6419c | ||
|
|
22aa759abc | ||
|
|
19b8fb6d8b | ||
|
|
d4bc835b1c | ||
|
|
b99d82cccc | ||
|
|
25d481d5d9 | ||
|
|
23871503a2 | ||
|
|
7c54fa70d7 | ||
|
|
2ffbbb0e71 | ||
|
|
7818f0c59b | ||
|
|
03e2adc332 | ||
|
|
e6ab4196de | ||
|
|
f2784d3ec2 | ||
|
|
ef3d508b31 | ||
|
|
9ffc0ec521 | ||
|
|
b598add64e | ||
|
|
47446515d1 | ||
|
|
e5de7fb8cf | ||
|
|
55e870f295 | ||
|
|
1485c83ab6 | ||
|
|
e8d1623e96 | ||
|
|
3bc6bf9e99 | ||
|
|
949d8bf49b | ||
|
|
c29e49da95 | ||
|
|
79c565911c | ||
|
|
bb9a0371c5 | ||
|
|
e945231ab3 | ||
|
|
c1298d162e | ||
|
|
f005edfcf0 | ||
|
|
59c68ec6cc | ||
|
|
a5077b0b1b | ||
|
|
a22c0499d5 | ||
|
|
c38608e3cf | ||
|
|
3b57194d47 | ||
|
|
21c901eab4 | ||
|
|
9ad8311dd6 | ||
|
|
df84028c90 | ||
|
|
7cb1e91ba1 | ||
|
|
974a7276c3 | ||
|
|
f0ca2bc11e | ||
|
|
cb43888496 | ||
|
|
34d5fb1aa0 | ||
|
|
72f0085ef7 | ||
|
|
f25f5abced | ||
|
|
94323f79e7 | ||
|
|
bdb1076100 | ||
|
|
8818e39c63 | ||
|
|
6a90035a4c | ||
|
|
e01b2ef25c | ||
|
|
91d91bc673 | ||
|
|
1c92ea58da | ||
|
|
bd6a38173e | ||
|
|
5d05a85411 | ||
|
|
1a5eafd2b1 | ||
|
|
1603b06431 | ||
|
|
2396af4589 | ||
|
|
262b8daec1 | ||
|
|
d33efe59fc | ||
|
|
5550565d6a | ||
|
|
68540cb479 | ||
|
|
4038fa6907 | ||
|
|
f96f997506 | ||
|
|
4e84d1a17c | ||
|
|
97cdb6a4a5 | ||
|
|
f5b3d70641 | ||
|
|
db66d3da9e | ||
|
|
c20e0667d4 | ||
|
|
4771b1c1b2 | ||
|
|
8e07a39ec0 | ||
|
|
9895b5bc1d | ||
|
|
e89a1bc0fb | ||
|
|
9b0654c7f2 | ||
|
|
56da824e98 | ||
|
|
f84b7904e6 | ||
|
|
9f523bb167 | ||
|
|
f38d5de946 | ||
|
|
de379b2e47 | ||
|
|
64e90f35c8 | ||
|
|
bbfe8c27c6 | ||
|
|
2f50074123 | ||
|
|
5cfaed7b26 | ||
|
|
0d19f645e8 | ||
|
|
45d4371328 | ||
|
|
889933cb41 | ||
|
|
958b294152 | ||
|
|
cf25097cd1 | ||
|
|
902e0dd5d6 | ||
|
|
d943551a7f | ||
|
|
46304b8a71 | ||
|
|
6e2fc186ca | ||
|
|
845689401d | ||
|
|
4fb9cc5e8d | ||
|
|
487581a01a | ||
|
|
2bc771d91e | ||
|
|
8bd7969328 | ||
|
|
5876ab487c | ||
|
|
9c14ca0f39 | ||
|
|
81ca352b2f | ||
|
|
0edfed5b95 | ||
|
|
0ff053415c | ||
|
|
a0ee607ae6 | ||
|
|
2723e2a7b8 | ||
|
|
6e105ce2c6 | ||
|
|
9fc7fceda4 | ||
|
|
2b72c0e328 | ||
|
|
536aa350f0 | ||
|
|
7c382c0e0c | ||
|
|
dda0d3259f | ||
|
|
a96718f7b3 | ||
|
|
7ca67fe57a | ||
|
|
8373024f9d | ||
|
|
b62ef0c40c | ||
|
|
376481eda5 | ||
|
|
800fa42982 | ||
|
|
4e728c3a02 | ||
|
|
663d254ced | ||
|
|
8753c232c7 | ||
|
|
221f3ef08c | ||
|
|
b59175a87c | ||
|
|
37c621dcdb | ||
|
|
eaf3228bb7 | ||
|
|
c8debbf470 | ||
|
|
8dcd8d17b5 | ||
|
|
cfe121c777 | ||
|
|
b4f83d8a4e | ||
|
|
9039d7e694 | ||
|
|
7a25717da6 | ||
|
|
7e1c444c02 | ||
|
|
dc3f7c9bda | ||
|
|
de754169fb | ||
|
|
2d3c3bbb0c | ||
|
|
15cefe4a43 | ||
|
|
95da301975 | ||
|
|
e03906b294 | ||
|
|
7921dd3f96 | ||
|
|
9f066f7a6b | ||
|
|
81d131e732 | ||
|
|
0552b56b71 | ||
|
|
3952ee402b | ||
|
|
0b3e27cb44 | ||
|
|
4fa4b3507e | ||
|
|
8c211364e2 | ||
|
|
2d9917d074 | ||
|
|
d514699ab7 | ||
|
|
dc176a83b3 | ||
|
|
69e3516a89 | ||
|
|
c8a0f9fa7a | ||
|
|
c2b9504b15 | ||
|
|
2693a3df2e | ||
|
|
8062466ab8 | ||
|
|
6cde1dd5ae | ||
|
|
b6c4a97675 | ||
|
|
a9444cef30 | ||
|
|
bf217a7093 | ||
|
|
b6b5355261 | ||
|
|
bc37084ec4 | ||
|
|
0a1a30f2af | ||
|
|
7e023a7944 | ||
|
|
91f68de8a7 | ||
|
|
994e2a6c57 | ||
|
|
04da2d845a | ||
|
|
d3b87bc3e8 | ||
|
|
554c81f251 | ||
|
|
6de3f9dd0b | ||
|
|
e9692d5b9c | ||
|
|
1a74990e9b | ||
|
|
3b9ac8699d | ||
|
|
ea6ae85f7a | ||
|
|
b02b9f026f | ||
|
|
c419e7b710 | ||
|
|
cd9132520d | ||
|
|
08d19df3f7 | ||
|
|
b34879b4f6 | ||
|
|
6b9c4af591 | ||
|
|
c00c207517 | ||
|
|
6f7fea3591 | ||
|
|
83eebfe153 | ||
|
|
fce3f86be7 | ||
|
|
2d42c59d70 | ||
|
|
f0933b9786 | ||
|
|
e4e687c2a4 | ||
|
|
44de353b8b | ||
|
|
aac4938598 | ||
|
|
d37b24cd0b | ||
|
|
c9a36fe4b2 | ||
|
|
f01a21ce43 | ||
|
|
cc72699b8a | ||
|
|
04de0049fe | ||
|
|
330554edb0 | ||
|
|
a06a3fa5d6 | ||
|
|
e8d6d62fba | ||
|
|
9cc8ed545f | ||
|
|
8bf969983b | ||
|
|
4ee7d57b7d | ||
|
|
6ff754eec0 | ||
|
|
862f8024e3 | ||
|
|
d170c9ad07 | ||
|
|
20df619ddd | ||
|
|
f7859c8eb5 | ||
|
|
97cdcb8b19 | ||
|
|
e3c4070924 | ||
|
|
74403815d9 | ||
|
|
897937a778 | ||
|
|
b6ddc8756b | ||
|
|
25aa3b60b0 | ||
|
|
fe76d0f98f | ||
|
|
e13c89521d | ||
|
|
828071c1a5 | ||
|
|
408d86245e | ||
|
|
e67de6aae8 | ||
|
|
45cdb98c58 | ||
|
|
6585aed0a9 | ||
|
|
ef305b8d25 | ||
|
|
84c7f4cd8c | ||
|
|
9162e97dd5 | ||
|
|
1ad1d73c91 | ||
|
|
88ce0ec487 | ||
|
|
99f452e299 | ||
|
|
7af7c2003e | ||
|
|
bb482047b1 | ||
|
|
a39b36d157 | ||
|
|
0841bf1d2a | ||
|
|
97f1761092 | ||
|
|
0e90bf5227 | ||
|
|
192d001b61 | ||
|
|
68cd9ab8c8 | ||
|
|
4be0fe1b76 | ||
|
|
9ffa28f17c | ||
|
|
0b219e1169 | ||
|
|
ccfa13e383 | ||
|
|
d6a135857d | ||
|
|
6ed7a8b471 | ||
|
|
7426efd423 | ||
|
|
95017884d7 | ||
|
|
db5494e7ac | ||
|
|
2d7774c018 | ||
|
|
986dae590b | ||
|
|
99f6c65b76 | ||
|
|
0c7d8c2d38 | ||
|
|
c63b65eba1 | ||
|
|
3fc348d045 | ||
|
|
5dae0b24d3 | ||
|
|
07b70f9d3f | ||
|
|
4060a24eec | ||
|
|
d637ee1a2d | ||
|
|
30bcc662bc | ||
|
|
57afa668e1 | ||
|
|
d7eae958b7 | ||
|
|
c591a86b02 | ||
|
|
49dea2cd7f | ||
|
|
fa527d7820 | ||
|
|
81778cb0b0 | ||
|
|
e1afd89aae | ||
|
|
a2f62a5dcd | ||
|
|
19f09fdb86 | ||
|
|
68e12f1c5e | ||
|
|
5acaf9d60b | ||
|
|
741dc8f50b | ||
|
|
28a70a0cf1 | ||
|
|
bf10d420ec | ||
|
|
7286ccdd56 | ||
|
|
c5b25bcfee | ||
|
|
187064101c | ||
|
|
66e829f71e | ||
|
|
a28dd6269a | ||
|
|
53985a282d | ||
|
|
ffffd8ca69 | ||
|
|
d3b9ebf86c | ||
|
|
d41dd05d00 | ||
|
|
8f9e076325 | ||
|
|
ac587168cd | ||
|
|
bb144a6df6 | ||
|
|
4f38454825 | ||
|
|
3a59b38037 | ||
|
|
f032cc8cf6 | ||
|
|
1a872035e7 | ||
|
|
026e05dcee | ||
|
|
99fd1fd4c1 | ||
|
|
d6bfa561ad | ||
|
|
8d0dab6578 | ||
|
|
1a402a9cf4 | ||
|
|
211863d55d | ||
|
|
38c57ce73a | ||
|
|
372ba13fd2 | ||
|
|
9bcb6ff19a | ||
|
|
2627072aab | ||
|
|
7991a3f1c3 | ||
|
|
408991e03c | ||
|
|
5ea954695e | ||
|
|
648a16c1bb | ||
|
|
8090c853ba | ||
|
|
809c8a7f37 | ||
|
|
608cb296e6 | ||
|
|
7cf400975e | ||
|
|
4faf7ed959 | ||
|
|
25493654ff | ||
|
|
48f70815a3 | ||
|
|
a720e5f3b5 | ||
|
|
a84f39bb48 | ||
|
|
c56cf8860e | ||
|
|
2d968a725c | ||
|
|
b1d0d422e9 | ||
|
|
86b748b9eb | ||
|
|
129d7c9338 | ||
|
|
7f23d25fcf | ||
|
|
b82e830e86 | ||
|
|
2fbf7a4114 | ||
|
|
e05365a669 | ||
|
|
44e6c46337 | ||
|
|
ecb4835a16 | ||
|
|
8c31af608b | ||
|
|
9b1915a187 | ||
|
|
db879426db | ||
|
|
c274c7d589 | ||
|
|
8bd675f9f4 | ||
|
|
0a12989a70 | ||
|
|
5b58bd504d | ||
|
|
f4d9e3495a | ||
|
|
fcfbfae4c1 | ||
|
|
3f7ae250c7 | ||
|
|
645c9c25d1 | ||
|
|
c8b7446f7c | ||
|
|
293bc55e58 | ||
|
|
7eeabd7ca3 | ||
|
|
c16d02fc1d | ||
|
|
fc75783fbe | ||
|
|
58b01b91d5 | ||
|
|
c6c68c0c75 | ||
|
|
9fe8477a40 | ||
|
|
794a7957ef | ||
|
|
5c1d683e71 | ||
|
|
0789ace879 | ||
|
|
9b16e3b538 | ||
|
|
98acd0d886 | ||
|
|
760469fc5f | ||
|
|
5af12b67be | ||
|
|
a1bfecedcd | ||
|
|
f2a70677e4 | ||
|
|
6d046a8df8 | ||
|
|
23bd9440b3 | ||
|
|
0f2bba0615 | ||
|
|
492b114510 | ||
|
|
55412968e0 | ||
|
|
dba359cafe | ||
|
|
6682266cc9 | ||
|
|
05dc68d689 | ||
|
|
8fede1efc9 | ||
|
|
8d85fb15c4 | ||
|
|
32d7da91b7 | ||
|
|
08ebc8d292 | ||
|
|
ada5919136 | ||
|
|
bfa629f431 | ||
|
|
2a42ad8970 | ||
|
|
08714f79da | ||
|
|
6983f36f4d | ||
|
|
03cf9a44cf | ||
|
|
c4fe645c31 | ||
|
|
ea19020015 | ||
|
|
346d7f3cf4 | ||
|
|
1b65ead75d | ||
|
|
889d3d1207 | ||
|
|
3c88f6c452 | ||
|
|
cc6ab0ade1 | ||
|
|
3ad7673d69 | ||
|
|
51155ba909 | ||
|
|
786e0b825a | ||
|
|
7bc4249ede | ||
|
|
fd3dda2b16 | ||
|
|
fa0401fa89 | ||
|
|
15b215f9c2 | ||
|
|
61de750e05 | ||
|
|
84ae81efe3 | ||
|
|
5c6ac2ae8b | ||
|
|
265821c9de | ||
|
|
1eb6629088 | ||
|
|
103de770c3 | ||
|
|
bf3d0ed2d1 | ||
|
|
3a84e0fafc | ||
|
|
4b9ec94fcc | ||
|
|
067f450486 | ||
|
|
dbb3eb0e54 | ||
|
|
30ab5bc17f | ||
|
|
8917ea9cc9 | ||
|
|
c5684439f4 | ||
|
|
d46c170b70 | ||
|
|
de8deffbd2 | ||
|
|
0578e68a51 | ||
|
|
1ac27002e5 | ||
|
|
2f3e444394 | ||
|
|
c02d6c426c | ||
|
|
102f2e39be | ||
|
|
a78381db7d | ||
|
|
a143c0b75e | ||
|
|
36f97329ff | ||
|
|
b5b15b623a | ||
|
|
724a3eee45 | ||
|
|
80403a4021 | ||
|
|
14b9a031bb | ||
|
|
873fadbcaa | ||
|
|
370406c3de | ||
|
|
461be2b388 | ||
|
|
dc75c44a50 | ||
|
|
c9d0bc7148 | ||
|
|
77e9493ccf | ||
|
|
120be567d3 | ||
|
|
cce82d38c0 | ||
|
|
527122452c | ||
|
|
c4430ab4de | ||
|
|
c9f720885e | ||
|
|
bd222dbd95 | ||
|
|
c9ef0951bc | ||
|
|
6f8cbc22be | ||
|
|
2b6bac8104 | ||
|
|
a9ada8fcf1 | ||
|
|
c7f56c1091 | ||
|
|
7d0ba9dd2b | ||
|
|
f3d31c3ea1 | ||
|
|
2c472d6e3e | ||
|
|
54a6f7c05b | ||
|
|
754237c57b | ||
|
|
0c56fddecf | ||
|
|
a7523ed462 | ||
|
|
51f705d89a | ||
|
|
569ef09f39 | ||
|
|
71f3435026 | ||
|
|
7e89bcca38 | ||
|
|
92cff8c4cc | ||
|
|
4c1e211675 | ||
|
|
3df5d9444b | ||
|
|
c42e322949 | ||
|
|
963f1a168e | ||
|
|
36629242d1 | ||
|
|
408ff983cf | ||
|
|
92b87b9d21 | ||
|
|
c9f1039ab4 | ||
|
|
3c52a9066c | ||
|
|
4c3c705517 | ||
|
|
5a2fa41af7 | ||
|
|
27980b2cd6 | ||
|
|
fc572500e4 | ||
|
|
155c82c199 | ||
|
|
28e2cf97da | ||
|
|
acaa07c69d | ||
|
|
6fd7a64330 | ||
|
|
546f4ab577 | ||
|
|
5effca92b8 | ||
|
|
aa4fca7177 | ||
|
|
860d7ed079 | ||
|
|
eb8af60029 | ||
|
|
225489738d | ||
|
|
ccff4fe142 | ||
|
|
cd5b00afa8 | ||
|
|
866f971d41 | ||
|
|
6d18b37a94 | ||
|
|
de3ba041f2 | ||
|
|
a2d8413b2a | ||
|
|
1fbbfb3317 | ||
|
|
724981db57 | ||
|
|
aae3970865 | ||
|
|
49718fbfbe | ||
|
|
587ad5beb5 | ||
|
|
4de20b09a8 | ||
|
|
f7adb19474 | ||
|
|
a1ff7cbef0 | ||
|
|
1cc6ad0d5f | ||
|
|
aa78807ee2 | ||
|
|
5fda64de66 | ||
|
|
75a50b83fb | ||
|
|
78ade3250c | ||
|
|
fac6b05bb4 | ||
|
|
39aef8bed5 | ||
|
|
99e9e4f5fd | ||
|
|
70544738ed | ||
|
|
90469630d1 | ||
|
|
7a74327761 | ||
|
|
ba2da07c2f | ||
|
|
5363a9e8d7 | ||
|
|
4010a5336c | ||
|
|
9d7522cc15 | ||
|
|
a090ed8b5e | ||
|
|
6b9c686390 | ||
|
|
6744e0d506 | ||
|
|
bbcabf0632 | ||
|
|
b540307dbd | ||
|
|
4a6778c609 | ||
|
|
3ae2883eb5 | ||
|
|
dc91fa0206 | ||
|
|
fb02499823 | ||
|
|
f4b9d0336d | ||
|
|
49acae0fbb | ||
|
|
f547cfd0c9 | ||
|
|
1bdc1acddd | ||
|
|
267b54fd8b | ||
|
|
527663e27e | ||
|
|
310b788352 | ||
|
|
7d23f24854 | ||
|
|
ab1e82414b | ||
|
|
00ba19d683 | ||
|
|
e5278a0243 | ||
|
|
7c246abc88 | ||
|
|
475f4244c4 | ||
|
|
f57dea7f1f | ||
|
|
f1a5261e0a | ||
|
|
fe5cb9503c | ||
|
|
4b9664d82a | ||
|
|
944a775625 | ||
|
|
c8c17bce7e | ||
|
|
366e3ed0be | ||
|
|
cef6eb7509 | ||
|
|
f88e2e2b79 | ||
|
|
57bcc9f4c1 | ||
|
|
69dd1c6ec4 | ||
|
|
761a106fa9 | ||
|
|
5cd2d71e6f | ||
|
|
96578ca59b | ||
|
|
213f905767 | ||
|
|
9d980a8ac7 | ||
|
|
c4e1a732dd | ||
|
|
9f73b2b7f0 | ||
|
|
149c149094 | ||
|
|
ee224cb422 | ||
|
|
335be1c85d | ||
|
|
a79fc94a54 | ||
|
|
c3acfe34fe | ||
|
|
6e7a2af86b | ||
|
|
cce280d260 | ||
|
|
852f97012f | ||
|
|
f221b00795 | ||
|
|
429298c68c | ||
|
|
af060d73cc | ||
|
|
e98a174884 | ||
|
|
92a23d0f8b | ||
|
|
d5ba11bd51 | ||
|
|
a8aac36379 | ||
|
|
23c6da4746 | ||
|
|
cf9391a7a3 | ||
|
|
d0bf539a73 | ||
|
|
95bd82778f | ||
|
|
b73413f189 | ||
|
|
df4604057e | ||
|
|
1e2ba691ed | ||
|
|
6abda8adef | ||
|
|
84128482f4 | ||
|
|
a184021621 | ||
|
|
c4f8e44f55 | ||
|
|
b359e1c175 | ||
|
|
6dd22e7dcb | ||
|
|
29ca1bc9da | ||
|
|
bc03ad2a18 | ||
|
|
14f49489a7 | ||
|
|
4356da039f | ||
|
|
587aff602a | ||
|
|
1275d8098d | ||
|
|
0c6ca6971d | ||
|
|
f5fde97f68 | ||
|
|
50dc4c4f3d | ||
|
|
c08d8252ff | ||
|
|
2a83088045 | ||
|
|
4ca8178ca8 | ||
|
|
bb48491eb2 | ||
|
|
0534fb4330 | ||
|
|
8b7eedf6f9 | ||
|
|
6ab629ea98 | ||
|
|
97cbdfdc5c | ||
|
|
25c77711cd | ||
|
|
2e6cf2b7f6 | ||
|
|
6592310f2b | ||
|
|
918fcac2aa | ||
|
|
4b7ee3cb9e | ||
|
|
27246de623 | ||
|
|
b1a0e759ef | ||
|
|
f90fdef50d | ||
|
|
702b4429ac | ||
|
|
4eff8d88d1 | ||
|
|
235a986679 | ||
|
|
c3e0dbc173 | ||
|
|
e296d94417 | ||
|
|
0e865fff8c | ||
|
|
9a629c2fc6 | ||
|
|
ecd941a6e5 | ||
|
|
2feb583e45 | ||
|
|
23daae05cc | ||
|
|
b4e8a39c2c | ||
|
|
2f7e3c1c3c | ||
|
|
8a0e873eb5 | ||
|
|
10214bff42 | ||
|
|
1fc99fd24e | ||
|
|
e40508e5e9 | ||
|
|
65f1dbde00 | ||
|
|
4c9f13cb26 | ||
|
|
f831dbd789 | ||
|
|
f18ad21b48 | ||
|
|
61ae7dc189 | ||
|
|
e304a615d0 | ||
|
|
c12f16b6d3 | ||
|
|
c43296ffe9 | ||
|
|
ab6233dd3f | ||
|
|
2a4fd2bbde | ||
|
|
c3d15015fe | ||
|
|
f30e7bc701 | ||
|
|
ee87537848 | ||
|
|
d4532c3856 | ||
|
|
20e40f73b3 | ||
|
|
923488bc02 | ||
|
|
b62d36bdbe | ||
|
|
62f4fc5e58 | ||
|
|
cfefed34fc | ||
|
|
c58d607349 | ||
|
|
f13a4b5aa5 | ||
|
|
9cf575c096 | ||
|
|
2c52ac1a7b | ||
|
|
7e0c833ad0 | ||
|
|
7f38617d76 | ||
|
|
8aa6969aee | ||
|
|
0adea0ded6 | ||
|
|
ccfd66260d | ||
|
|
a6d2283be8 | ||
|
|
b92cc6fb15 | ||
|
|
f2ec02876b | ||
|
|
7378a98e07 | ||
|
|
42a3ff2625 | ||
|
|
4448e87e28 | ||
|
|
90b047f0d4 | ||
|
|
adfaa00ce1 | ||
|
|
755a42ea45 | ||
|
|
210524b51a | ||
|
|
a1a91878ad | ||
|
|
216286db5e | ||
|
|
061c40c8f4 | ||
|
|
15eeb19cd5 | ||
|
|
93c6047cd5 | ||
|
|
db4746bef7 | ||
|
|
971e159fa4 | ||
|
|
a4deea2333 | ||
|
|
6114952012 | ||
|
|
fcc1439754 | ||
|
|
06a2cb0de4 | ||
|
|
9dd66879a2 | ||
|
|
5d03c94b26 | ||
|
|
679455713e | ||
|
|
9aeda7aaba | ||
|
|
ca8e16a5be | ||
|
|
52ec1cf1b1 | ||
|
|
1efb7446c9 | ||
|
|
c5f2c2823e | ||
|
|
beb4aee4c9 | ||
|
|
638e3ca898 | ||
|
|
dea58ed663 |
25
.editorconfig
Normal file
@@ -0,0 +1,25 @@
|
||||
# This file is for unifying the coding style for different editors and IDEs
|
||||
# editorconfig.org
|
||||
root = true
|
||||
|
||||
[*.{cs,html,js,hbs}]
|
||||
charset = utf-8
|
||||
trim_trailing_whitespace = true
|
||||
insert_final_newline = true
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
|
||||
[*.less]
|
||||
charset = utf-8
|
||||
trim_trailing_whitespace = true
|
||||
insert_final_newline = true
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
|
||||
# They have troubles with TABS. Use 2 spaces
|
||||
[{package.json,.travis.yml}]
|
||||
charset = utf-8
|
||||
trim_trailing_whitespace = true
|
||||
insert_final_newline = true
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
7
.github/ISSUE_TEMPLATE.md
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
|
||||
|
||||
|
||||
Provide a description of the feature request or bug, the more details the better.
|
||||
When possible include a log!
|
||||
|
||||
Please use our [Discord server](https://discord.gg/NWYch8M) for support or longer discussions.
|
||||
14
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
#### Database Migration
|
||||
YES | NO
|
||||
|
||||
#### Description
|
||||
A few sentences describing the overall goals of the pull request's commits.
|
||||
|
||||
#### Todos
|
||||
- [ ] Tests
|
||||
- [ ] Documentation
|
||||
|
||||
|
||||
#### Issues Fixed or Closed by this PR
|
||||
|
||||
*
|
||||
29
.gitignore
vendored
@@ -10,6 +10,7 @@ src/**/[Oo]bj/
|
||||
*.suo
|
||||
*.user
|
||||
*.sln.docstates
|
||||
.vs/
|
||||
|
||||
# Build results
|
||||
*_i.c
|
||||
@@ -41,6 +42,9 @@ src/**/[Oo]bj/
|
||||
_ReSharper*
|
||||
_dotCover*
|
||||
|
||||
# DevExpress CodeRush
|
||||
src/.cr/
|
||||
|
||||
# NCrunch
|
||||
*.ncrunch*
|
||||
.*crunch*.local.xml
|
||||
@@ -97,7 +101,7 @@ App_Data/*.ldf
|
||||
_NCrunch_*
|
||||
_TeamCity*
|
||||
|
||||
# NzbDrone
|
||||
# Sonarr
|
||||
config.xml
|
||||
nzbdrone.log*txt
|
||||
UpdateLogs/
|
||||
@@ -105,7 +109,7 @@ UpdateLogs/
|
||||
*.test-cache
|
||||
*.userprefs
|
||||
*/test-results/*
|
||||
.idea/*
|
||||
src/UI/.idea/*
|
||||
*log.txt
|
||||
node_modules/
|
||||
_output*
|
||||
@@ -113,13 +117,28 @@ _rawPackage/
|
||||
_dotTrace*
|
||||
_tests/
|
||||
*.Result.xml
|
||||
wix/*.msi
|
||||
wix/*.wixobj
|
||||
wix/*.wixpdb
|
||||
setup/Output/
|
||||
*.~is
|
||||
|
||||
UI.Phantom/
|
||||
|
||||
#VS outout folders
|
||||
bin
|
||||
obj
|
||||
output/*
|
||||
|
||||
#Packages
|
||||
Radarr_*/
|
||||
Radarr_*.zip
|
||||
Radarr_*.gz
|
||||
|
||||
#OS X metadata files
|
||||
._*
|
||||
.DS_Store
|
||||
|
||||
_start
|
||||
_temp_*/**/*
|
||||
|
||||
#AppVeyor
|
||||
/tools-cake/
|
||||
/_artifacts/
|
||||
4
.gitmodules
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
[submodule "src/ExternalModules/CurlSharp"]
|
||||
path = src/ExternalModules/CurlSharp
|
||||
url = https://github.com/Sonarr/CurlSharp.git
|
||||
branch = master
|
||||
1
.idea/.name
generated
Normal file
@@ -0,0 +1 @@
|
||||
Sonarr
|
||||
25
.idea/Sonarr.iml
generated
Normal file
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="WEB_MODULE" version="4">
|
||||
<component name="NewModuleRootManager">
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<excludeFolder url="file://$MODULE_DIR$/.idea" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/Logo" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/_output" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/_output_mono" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/_output_osx" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/_output_osx_app" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/_start" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/_tests" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/debian" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/node_modules" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/osx" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/schemas" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/setup" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/src" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/tools" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
<orderEntry type="library" name="Sonarr node_modules" level="project" />
|
||||
</component>
|
||||
</module>
|
||||
59
.idea/codeStyleSettings.xml
generated
Normal file
@@ -0,0 +1,59 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectCodeStyleSettingsManager">
|
||||
<option name="PER_PROJECT_SETTINGS">
|
||||
<value>
|
||||
<option name="LINE_SEPARATOR" value=" " />
|
||||
<option name="RIGHT_MARGIN" value="190" />
|
||||
<option name="HTML_ATTRIBUTE_WRAP" value="0" />
|
||||
<option name="HTML_KEEP_LINE_BREAKS" value="false" />
|
||||
<option name="HTML_KEEP_BLANK_LINES" value="1" />
|
||||
<option name="HTML_ALIGN_ATTRIBUTES" value="false" />
|
||||
<option name="HTML_INLINE_ELEMENTS" value="" />
|
||||
<option name="HTML_DONT_ADD_BREAKS_IF_INLINE_CONTENT" value="" />
|
||||
<CssCodeStyleSettings>
|
||||
<option name="HEX_COLOR_LOWER_CASE" value="true" />
|
||||
<option name="HEX_COLOR_LONG_FORMAT" value="true" />
|
||||
<option name="VALUE_ALIGNMENT" value="1" />
|
||||
</CssCodeStyleSettings>
|
||||
<JSCodeStyleSettings>
|
||||
<option name="SPACE_BEFORE_PROPERTY_COLON" value="true" />
|
||||
<option name="ALIGN_OBJECT_PROPERTIES" value="2" />
|
||||
<option name="SPACE_BEFORE_FUNCTION_LEFT_PARENTH" value="false" />
|
||||
<option name="OBJECT_LITERAL_WRAP" value="2" />
|
||||
<option name="SPACES_WITHIN_OBJECT_LITERAL_BRACES" value="true" />
|
||||
</JSCodeStyleSettings>
|
||||
<XML>
|
||||
<option name="XML_LEGACY_SETTINGS_IMPORTED" value="true" />
|
||||
</XML>
|
||||
<codeStyleSettings language="CSS">
|
||||
<indentOptions>
|
||||
<option name="SMART_TABS" value="true" />
|
||||
</indentOptions>
|
||||
</codeStyleSettings>
|
||||
<codeStyleSettings language="JavaScript">
|
||||
<option name="LINE_COMMENT_AT_FIRST_COLUMN" value="true" />
|
||||
<option name="KEEP_LINE_BREAKS" value="false" />
|
||||
<option name="KEEP_FIRST_COLUMN_COMMENT" value="false" />
|
||||
<option name="KEEP_BLANK_LINES_IN_CODE" value="1" />
|
||||
<option name="CATCH_ON_NEW_LINE" value="true" />
|
||||
<option name="FINALLY_ON_NEW_LINE" value="true" />
|
||||
<option name="ALIGN_MULTILINE_PARAMETERS" value="false" />
|
||||
<option name="ALIGN_MULTILINE_BINARY_OPERATION" value="true" />
|
||||
<option name="SPACE_BEFORE_METHOD_PARENTHESES" value="true" />
|
||||
<option name="CALL_PARAMETERS_WRAP" value="1" />
|
||||
<option name="BINARY_OPERATION_WRAP" value="1" />
|
||||
<option name="TERNARY_OPERATION_SIGNS_ON_NEXT_LINE" value="true" />
|
||||
<option name="ARRAY_INITIALIZER_WRAP" value="2" />
|
||||
<option name="ARRAY_INITIALIZER_LBRACE_ON_NEXT_LINE" value="true" />
|
||||
<option name="ARRAY_INITIALIZER_RBRACE_ON_NEXT_LINE" value="true" />
|
||||
<option name="IF_BRACE_FORCE" value="3" />
|
||||
<option name="DOWHILE_BRACE_FORCE" value="3" />
|
||||
<option name="WHILE_BRACE_FORCE" value="3" />
|
||||
<option name="FOR_BRACE_FORCE" value="3" />
|
||||
</codeStyleSettings>
|
||||
</value>
|
||||
</option>
|
||||
<option name="USE_PER_PROJECT_SETTINGS" value="true" />
|
||||
</component>
|
||||
</project>
|
||||
6
.idea/encodings.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="Encoding">
|
||||
<file url="PROJECT" charset="UTF-8" />
|
||||
</component>
|
||||
</project>
|
||||
6
.idea/jsLibraryMappings.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="JavaScriptLibraryMappings">
|
||||
<includedPredefinedLibrary name="ECMAScript 6" />
|
||||
</component>
|
||||
</project>
|
||||
14
.idea/libraries/Sonarr_node_modules.xml
generated
Normal file
@@ -0,0 +1,14 @@
|
||||
<component name="libraryTable">
|
||||
<library name="Sonarr node_modules" type="javaScript">
|
||||
<properties>
|
||||
<option name="frameworkName" value="node_modules" />
|
||||
<sourceFilesUrls>
|
||||
<item url="file://$PROJECT_DIR$/node_modules" />
|
||||
</sourceFilesUrls>
|
||||
</properties>
|
||||
<CLASSES>
|
||||
<root url="file://$PROJECT_DIR$/node_modules" />
|
||||
</CLASSES>
|
||||
<SOURCES />
|
||||
</library>
|
||||
</component>
|
||||
14
.idea/misc.xml
generated
Normal file
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectLevelVcsManager" settingsEditedManually="false">
|
||||
<OptionsSetting value="true" id="Add" />
|
||||
<OptionsSetting value="true" id="Remove" />
|
||||
<OptionsSetting value="true" id="Checkout" />
|
||||
<OptionsSetting value="true" id="Update" />
|
||||
<OptionsSetting value="true" id="Status" />
|
||||
<OptionsSetting value="true" id="Edit" />
|
||||
<ConfirmationsSetting value="0" id="Add" />
|
||||
<ConfirmationsSetting value="0" id="Remove" />
|
||||
</component>
|
||||
<component name="ProjectRootManager" version="2" />
|
||||
</project>
|
||||
8
.idea/modules.xml
generated
Normal file
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/Sonarr.iml" filepath="$PROJECT_DIR$/.idea/Sonarr.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
||||
6
.idea/vcs.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
||||
14
.travis.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
language: csharp
|
||||
solution: src/NzbDrone.sln
|
||||
script: # the following commands are just examples, use whatever your build process requires
|
||||
- ./build.sh
|
||||
- chmod +x test.sh
|
||||
# - ./test.sh Linux Unit Takes far too long, maybe even crashes travis :/
|
||||
install:
|
||||
- sudo apt-get install nodejs
|
||||
- sudo apt-get install npm
|
||||
after_success:
|
||||
- chmod +x package.sh
|
||||
- ./package.sh
|
||||
notifications:
|
||||
- webhooks: https://discordapp.com/api/webhooks/266910310219251712/V-QvCcnYkg3O8PMevcAJOJyCgrYkZQoF2pupLDGbaISNUECmYPd6LRwl3avKHsPyfgWP
|
||||
4
CLA.md
@@ -1,6 +1,6 @@
|
||||
# NzbDrone Individual Contributor License Agreement #
|
||||
# Radarr Individual Contributor License Agreement #
|
||||
|
||||
Thank you for your interest in contributing to NzbDrone ("We" or "Us").
|
||||
Thank you for your interest in contributing to Radarr ("We" or "Us").
|
||||
This contributor agreement ("Agreement") documents the rights granted by contributors to Us. To make this document effective, please complete the form below. This is a legally binding document, so please read it carefully before agreeing to it. The Agreement may cover more than one software project managed by Us.
|
||||
|
||||
## 1. Definitions ##
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# How to Contribute #
|
||||
|
||||
We're always looking for people to help make NzbDrone even better, there are a number of ways to contribute. To get started, <a href="http://www.clahub.com/agreements/NzbDrone/NzbDrone">sign the Contributor License Agreement</a>.
|
||||
We're always looking for people to help make Radarr even better, there are a number of ways to contribute.
|
||||
|
||||
## Documentation ##
|
||||
Setup guides, FAQ, the more information we have on the wiki the better.
|
||||
@@ -8,22 +8,24 @@ Setup guides, FAQ, the more information we have on the wiki the better.
|
||||
## Development ##
|
||||
|
||||
### Tools required ###
|
||||
- Visual Studio 2013
|
||||
- HTML/Javascript editor of choice (Sublime Text/Webstorm/etc)
|
||||
- Visual Studio 2015
|
||||
- HTML/Javascript editor of choice (Sublime Text/Webstorm/Atom/etc)
|
||||
- npm (node package manager)
|
||||
- git
|
||||
|
||||
### Getting started ###
|
||||
|
||||
1. Fork NzbDrone
|
||||
2. Clone (develop branch)
|
||||
1. Fork Radarr
|
||||
2. Clone (develop branch) *you may need pull in submodules separately if you client doesn't clone them automatically (CurlSharp)*
|
||||
3. Run `npm install`
|
||||
4. Run `gulp watch` - Used to compile the UI components and copy them (leave this window open)
|
||||
4. Run `npm start` - Used to compile the UI components and copy them.
|
||||
Leave this window open.
|
||||
If you have gulp globally installed you can use `gulp watch` instead
|
||||
5. Compile in Visual Studio
|
||||
|
||||
### Contributing Code ###
|
||||
- If you're adding a new, already requested feature, please comment on [Trello](https://trello.sonarr.tv "Trello") so work is not duplicated (If you want to add something not already on there, please talk to us first)
|
||||
- Rebase from NzbDrone's develop branch, don't merge
|
||||
- If you're adding a new, already requested feature, please comment on [Github Issues](https://github.com/Radarr/Radarr/issues "Github Issues") so work is not duplicated (If you want to add something not already on there, please talk to us first)
|
||||
- Rebase from Radarr's develop branch, don't merge
|
||||
- Make meaningful commits, or squash them
|
||||
- Feel free to make a pull request before work is complete, this will let us see where its at and make comments/suggest improvements
|
||||
- Reach out to us on the forums or on IRC if you have any questions
|
||||
|
||||
@@ -1,720 +0,0 @@
|
||||
<Config xmlns:a="http://schemas.microsoft.com/2003/10/Serialization/Arrays" xmlns:b="http://schemas.datacontract.org/2004/07/System.Drawing" xmlns:d="http://schemas.datacontract.org/2004/07/Prosa.Log4View.Db" xmlns:f="http://schemas.datacontract.org/2004/07/Prosa.Log4View.Receiver.File" xmlns:l="http://schemas.datacontract.org/2004/07/Prosa.Log4View.Level" xmlns:m="http://schemas.datacontract.org/2004/07/Prosa.Log4View.Receiver.Msg" xmlns:n="http://schemas.datacontract.org/2004/07/Prosa.Log4View.Receiver.Net" xmlns:t="http://schemas.datacontract.org/2004/07/Prosa.Log4View.LoggerTree" xmlns:u="http://schemas.datacontract.org/2004/07/Prosa.Log4View.Utils" xmlns:i="http://www.w3.org/2001/XMLSchema-instance" z:Id="1" xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/" xmlns="http://schemas.datacontract.org/2004/07/Prosa.Log4View.Configuration">
|
||||
<Id>
|
||||
<u:Value>1</u:Value>
|
||||
</Id>
|
||||
<Data z:Id="2">
|
||||
<Id>
|
||||
<u:Value>2</u:Value>
|
||||
</Id>
|
||||
<Version>17</Version>
|
||||
<_receivers z:Id="3" z:Size="1">
|
||||
<ReceiverConfig z:Id="4" i:type="n:NetReceiverConfig">
|
||||
<Id>
|
||||
<u:Value>16</u:Value>
|
||||
</Id>
|
||||
<BackColor>
|
||||
<b:knownColor>0</b:knownColor>
|
||||
<b:name i:nil="true" />
|
||||
<b:state>2</b:state>
|
||||
<b:value>4293654015</b:value>
|
||||
</BackColor>
|
||||
<BufferSize>500000</BufferSize>
|
||||
<Encoding z:Id="5">Windows-1252</Encoding>
|
||||
<LevelFilter z:Id="6" i:type="LogLevelSurrogated">
|
||||
<LevelName z:Id="7">ALL</LevelName>
|
||||
</LevelFilter>
|
||||
<LoggingFrameworkId z:Id="8">Log4net</LoggingFrameworkId>
|
||||
<Name z:Id="9">NzbDrone</Name>
|
||||
<ParserType>XML</ParserType>
|
||||
<ReadAdjacentMessages>0</ReadAdjacentMessages>
|
||||
<ReadFrom>0001-01-01T00:00:00</ReadFrom>
|
||||
<ReadUntil>0001-01-01T00:00:00</ReadUntil>
|
||||
<SourceId>0</SourceId>
|
||||
<TimeOffset>0</TimeOffset>
|
||||
<TimeZone z:Id="10">Pacific Standard Time</TimeZone>
|
||||
<UseFilter>false</UseFilter>
|
||||
<Window>18</Window>
|
||||
<n:HostName z:Id="11">localhost</n:HostName>
|
||||
<n:Port>20480</n:Port>
|
||||
<n:Protocol>Udp</n:Protocol>
|
||||
</ReceiverConfig>
|
||||
</_receivers>
|
||||
<_sources z:Id="12" z:Size="0" />
|
||||
</Data>
|
||||
<Presentation z:Id="13">
|
||||
<Id>
|
||||
<u:Value>3</u:Value>
|
||||
</Id>
|
||||
<DefaultLogLevel z:Ref="6" i:nil="true" />
|
||||
<ShowCodeDetails>false</ShowCodeDetails>
|
||||
<ShowMessageDetails>true</ShowMessageDetails>
|
||||
<ShowMultiField>true</ShowMultiField>
|
||||
<ShowOutputOnDebug>true</ShowOutputOnDebug>
|
||||
<ShowProcessDetails>false</ShowProcessDetails>
|
||||
<ToolTipLogLevel z:Id="14" i:type="LogLevelSurrogated">
|
||||
<LevelName z:Id="15">OFF</LevelName>
|
||||
</ToolTipLogLevel>
|
||||
<Version>17</Version>
|
||||
<_charts z:Id="16" z:Size="0" />
|
||||
<_columns z:Id="17" z:Size="29">
|
||||
<ColumnConfig z:Id="18">
|
||||
<Id>
|
||||
<u:Value>78</u:Value>
|
||||
</Id>
|
||||
<ClipMode>ClipRight</ClipMode>
|
||||
<FieldName z:Id="19">Id</FieldName>
|
||||
<Name z:Ref="19" i:nil="true" />
|
||||
<Position>-1</Position>
|
||||
<Width>45</Width>
|
||||
<WindowId>18</WindowId>
|
||||
</ColumnConfig>
|
||||
<ColumnConfig z:Id="20">
|
||||
<Id>
|
||||
<u:Value>79</u:Value>
|
||||
</Id>
|
||||
<ClipMode>ClipRight</ClipMode>
|
||||
<FieldName z:Id="21">OriginalTime</FieldName>
|
||||
<Name z:Ref="21" i:nil="true" />
|
||||
<Position>-1</Position>
|
||||
<Width>120</Width>
|
||||
<WindowId>18</WindowId>
|
||||
</ColumnConfig>
|
||||
<ColumnConfig z:Id="22">
|
||||
<Id>
|
||||
<u:Value>80</u:Value>
|
||||
</Id>
|
||||
<ClipMode>ClipRight</ClipMode>
|
||||
<FieldName z:Id="23">Time</FieldName>
|
||||
<Name z:Ref="23" i:nil="true" />
|
||||
<Position>1</Position>
|
||||
<Width>80</Width>
|
||||
<WindowId>18</WindowId>
|
||||
</ColumnConfig>
|
||||
<ColumnConfig z:Id="24">
|
||||
<Id>
|
||||
<u:Value>81</u:Value>
|
||||
</Id>
|
||||
<ClipMode>ClipRight</ClipMode>
|
||||
<FieldName z:Id="25">LocalTime</FieldName>
|
||||
<Name z:Ref="25" i:nil="true" />
|
||||
<Position>-1</Position>
|
||||
<Width>120</Width>
|
||||
<WindowId>18</WindowId>
|
||||
</ColumnConfig>
|
||||
<ColumnConfig z:Id="26">
|
||||
<Id>
|
||||
<u:Value>82</u:Value>
|
||||
</Id>
|
||||
<ClipMode>ClipRight</ClipMode>
|
||||
<FieldName z:Id="27">UtcTime</FieldName>
|
||||
<Name z:Ref="27" i:nil="true" />
|
||||
<Position>-1</Position>
|
||||
<Width>120</Width>
|
||||
<WindowId>18</WindowId>
|
||||
</ColumnConfig>
|
||||
<ColumnConfig z:Id="28">
|
||||
<Id>
|
||||
<u:Value>83</u:Value>
|
||||
</Id>
|
||||
<ClipMode>ClipRight</ClipMode>
|
||||
<FieldName z:Id="29">Date</FieldName>
|
||||
<Name z:Ref="29" i:nil="true" />
|
||||
<Position>-1</Position>
|
||||
<Width>70</Width>
|
||||
<WindowId>18</WindowId>
|
||||
</ColumnConfig>
|
||||
<ColumnConfig z:Id="30">
|
||||
<Id>
|
||||
<u:Value>84</u:Value>
|
||||
</Id>
|
||||
<ClipMode>ClipRight</ClipMode>
|
||||
<FieldName z:Id="31">Key</FieldName>
|
||||
<Name z:Ref="31" i:nil="true" />
|
||||
<Position>-1</Position>
|
||||
<Width>120</Width>
|
||||
<WindowId>18</WindowId>
|
||||
</ColumnConfig>
|
||||
<ColumnConfig z:Id="32">
|
||||
<Id>
|
||||
<u:Value>85</u:Value>
|
||||
</Id>
|
||||
<ClipMode>ClipRight</ClipMode>
|
||||
<FieldName z:Id="33">Level</FieldName>
|
||||
<Name z:Ref="33" i:nil="true" />
|
||||
<Position>-1</Position>
|
||||
<Width>85</Width>
|
||||
<WindowId>18</WindowId>
|
||||
</ColumnConfig>
|
||||
<ColumnConfig z:Id="34">
|
||||
<Id>
|
||||
<u:Value>86</u:Value>
|
||||
</Id>
|
||||
<ClipMode>ClipMiddle</ClipMode>
|
||||
<FieldName z:Id="35">Logger</FieldName>
|
||||
<Name z:Ref="35" i:nil="true" />
|
||||
<Position>2</Position>
|
||||
<Width>120</Width>
|
||||
<WindowId>18</WindowId>
|
||||
</ColumnConfig>
|
||||
<ColumnConfig z:Id="36">
|
||||
<Id>
|
||||
<u:Value>87</u:Value>
|
||||
</Id>
|
||||
<ClipMode>ClipRight</ClipMode>
|
||||
<FieldName z:Id="37">Source</FieldName>
|
||||
<Name z:Ref="37" i:nil="true" />
|
||||
<Position>-1</Position>
|
||||
<Width>90</Width>
|
||||
<WindowId>18</WindowId>
|
||||
</ColumnConfig>
|
||||
<ColumnConfig z:Id="38">
|
||||
<Id>
|
||||
<u:Value>88</u:Value>
|
||||
</Id>
|
||||
<ClipMode>ClipRight</ClipMode>
|
||||
<FieldName z:Id="39">Message</FieldName>
|
||||
<Name z:Ref="39" i:nil="true" />
|
||||
<Position>3</Position>
|
||||
<Width>874</Width>
|
||||
<WindowId>18</WindowId>
|
||||
</ColumnConfig>
|
||||
<ColumnConfig z:Id="40">
|
||||
<Id>
|
||||
<u:Value>89</u:Value>
|
||||
</Id>
|
||||
<ClipMode>ClipRight</ClipMode>
|
||||
<FieldName z:Id="41">Thread</FieldName>
|
||||
<Name z:Ref="41" i:nil="true" />
|
||||
<Position>-1</Position>
|
||||
<Width>95</Width>
|
||||
<WindowId>18</WindowId>
|
||||
</ColumnConfig>
|
||||
<ColumnConfig z:Id="42">
|
||||
<Id>
|
||||
<u:Value>90</u:Value>
|
||||
</Id>
|
||||
<ClipMode>ClipRight</ClipMode>
|
||||
<FieldName z:Id="43">Host</FieldName>
|
||||
<Name z:Ref="43" i:nil="true" />
|
||||
<Position>-1</Position>
|
||||
<Width>90</Width>
|
||||
<WindowId>18</WindowId>
|
||||
</ColumnConfig>
|
||||
<ColumnConfig z:Id="44">
|
||||
<Id>
|
||||
<u:Value>91</u:Value>
|
||||
</Id>
|
||||
<ClipMode>ClipRight</ClipMode>
|
||||
<FieldName z:Id="45">Exception</FieldName>
|
||||
<Name z:Ref="45" i:nil="true" />
|
||||
<Position>-1</Position>
|
||||
<Width>120</Width>
|
||||
<WindowId>18</WindowId>
|
||||
</ColumnConfig>
|
||||
<ColumnConfig z:Id="46">
|
||||
<Id>
|
||||
<u:Value>92</u:Value>
|
||||
</Id>
|
||||
<ClipMode>ClipRight</ClipMode>
|
||||
<FieldName z:Id="47">Domain</FieldName>
|
||||
<Name z:Ref="47" i:nil="true" />
|
||||
<Position>-1</Position>
|
||||
<Width>90</Width>
|
||||
<WindowId>18</WindowId>
|
||||
</ColumnConfig>
|
||||
<ColumnConfig z:Id="48">
|
||||
<Id>
|
||||
<u:Value>93</u:Value>
|
||||
</Id>
|
||||
<ClipMode>ClipRight</ClipMode>
|
||||
<FieldName z:Id="49">Identity</FieldName>
|
||||
<Name z:Ref="49" i:nil="true" />
|
||||
<Position>-1</Position>
|
||||
<Width>120</Width>
|
||||
<WindowId>18</WindowId>
|
||||
</ColumnConfig>
|
||||
<ColumnConfig z:Id="50">
|
||||
<Id>
|
||||
<u:Value>94</u:Value>
|
||||
</Id>
|
||||
<ClipMode>ClipRight</ClipMode>
|
||||
<FieldName z:Id="51">User</FieldName>
|
||||
<Name z:Ref="51" i:nil="true" />
|
||||
<Position>-1</Position>
|
||||
<Width>90</Width>
|
||||
<WindowId>18</WindowId>
|
||||
</ColumnConfig>
|
||||
<ColumnConfig z:Id="52">
|
||||
<Id>
|
||||
<u:Value>95</u:Value>
|
||||
</Id>
|
||||
<ClipMode>ClipRight</ClipMode>
|
||||
<FieldName z:Id="53">Class</FieldName>
|
||||
<Name z:Ref="53" i:nil="true" />
|
||||
<Position>-1</Position>
|
||||
<Width>90</Width>
|
||||
<WindowId>18</WindowId>
|
||||
</ColumnConfig>
|
||||
<ColumnConfig z:Id="54">
|
||||
<Id>
|
||||
<u:Value>96</u:Value>
|
||||
</Id>
|
||||
<ClipMode>ClipRight</ClipMode>
|
||||
<FieldName z:Id="55">Method</FieldName>
|
||||
<Name z:Ref="55" i:nil="true" />
|
||||
<Position>-1</Position>
|
||||
<Width>120</Width>
|
||||
<WindowId>18</WindowId>
|
||||
</ColumnConfig>
|
||||
<ColumnConfig z:Id="56">
|
||||
<Id>
|
||||
<u:Value>97</u:Value>
|
||||
</Id>
|
||||
<ClipMode>ClipRight</ClipMode>
|
||||
<FieldName z:Id="57">File</FieldName>
|
||||
<Name z:Ref="57" i:nil="true" />
|
||||
<Position>-1</Position>
|
||||
<Width>120</Width>
|
||||
<WindowId>18</WindowId>
|
||||
</ColumnConfig>
|
||||
<ColumnConfig z:Id="58">
|
||||
<Id>
|
||||
<u:Value>98</u:Value>
|
||||
</Id>
|
||||
<ClipMode>ClipRight</ClipMode>
|
||||
<FieldName z:Id="59">Line</FieldName>
|
||||
<Name z:Ref="59" i:nil="true" />
|
||||
<Position>-1</Position>
|
||||
<Width>45</Width>
|
||||
<WindowId>18</WindowId>
|
||||
</ColumnConfig>
|
||||
<ColumnConfig z:Id="60">
|
||||
<Id>
|
||||
<u:Value>99</u:Value>
|
||||
</Id>
|
||||
<ClipMode>ClipRight</ClipMode>
|
||||
<FieldName z:Id="61">NDC</FieldName>
|
||||
<Name z:Ref="61" i:nil="true" />
|
||||
<Position>-1</Position>
|
||||
<Width>120</Width>
|
||||
<WindowId>18</WindowId>
|
||||
</ColumnConfig>
|
||||
<ColumnConfig z:Id="62">
|
||||
<Id>
|
||||
<u:Value>100</u:Value>
|
||||
</Id>
|
||||
<ClipMode>ClipRight</ClipMode>
|
||||
<FieldName z:Id="63">MDC</FieldName>
|
||||
<Name z:Ref="63" i:nil="true" />
|
||||
<Position>-1</Position>
|
||||
<Width>120</Width>
|
||||
<WindowId>18</WindowId>
|
||||
</ColumnConfig>
|
||||
<ColumnConfig z:Id="64">
|
||||
<Id>
|
||||
<u:Value>101</u:Value>
|
||||
</Id>
|
||||
<ClipMode>ClipRight</ClipMode>
|
||||
<FieldName z:Id="65">Comment</FieldName>
|
||||
<Name z:Ref="65" i:nil="true" />
|
||||
<Position>-1</Position>
|
||||
<Width>120</Width>
|
||||
<WindowId>18</WindowId>
|
||||
</ColumnConfig>
|
||||
<ColumnConfig z:Id="66">
|
||||
<Id>
|
||||
<u:Value>102</u:Value>
|
||||
</Id>
|
||||
<ClipMode>ClipRight</ClipMode>
|
||||
<FieldName z:Id="67">StackTrace</FieldName>
|
||||
<Name z:Ref="67" i:nil="true" />
|
||||
<Position>-1</Position>
|
||||
<Width>120</Width>
|
||||
<WindowId>18</WindowId>
|
||||
</ColumnConfig>
|
||||
<ColumnConfig z:Id="68">
|
||||
<Id>
|
||||
<u:Value>103</u:Value>
|
||||
</Id>
|
||||
<ClipMode>ClipRight</ClipMode>
|
||||
<FieldName z:Id="69">ProcessId</FieldName>
|
||||
<Name z:Ref="69" i:nil="true" />
|
||||
<Position>-1</Position>
|
||||
<Width>120</Width>
|
||||
<WindowId>18</WindowId>
|
||||
</ColumnConfig>
|
||||
<ColumnConfig z:Id="70">
|
||||
<Id>
|
||||
<u:Value>104</u:Value>
|
||||
</Id>
|
||||
<ClipMode>ClipRight</ClipMode>
|
||||
<FieldName z:Id="71">ThreadId</FieldName>
|
||||
<Name z:Ref="71" i:nil="true" />
|
||||
<Position>-1</Position>
|
||||
<Width>120</Width>
|
||||
<WindowId>18</WindowId>
|
||||
</ColumnConfig>
|
||||
<ColumnConfig z:Id="72">
|
||||
<Id>
|
||||
<u:Value>105</u:Value>
|
||||
</Id>
|
||||
<ClipMode>ClipRight</ClipMode>
|
||||
<FieldName z:Id="73">CallStack</FieldName>
|
||||
<Name z:Ref="73" i:nil="true" />
|
||||
<Position>-1</Position>
|
||||
<Width>120</Width>
|
||||
<WindowId>18</WindowId>
|
||||
</ColumnConfig>
|
||||
<ColumnConfig z:Id="74">
|
||||
<Id>
|
||||
<u:Value>106</u:Value>
|
||||
</Id>
|
||||
<ClipMode>ClipRight</ClipMode>
|
||||
<FieldName z:Id="75">assembly</FieldName>
|
||||
<Name z:Ref="75" i:nil="true" />
|
||||
<Position>-1</Position>
|
||||
<Width>120</Width>
|
||||
<WindowId>18</WindowId>
|
||||
</ColumnConfig>
|
||||
</_columns>
|
||||
<_filters z:Id="76" z:Size="0" />
|
||||
<_formats z:Id="77" z:Size="1">
|
||||
<FormatConfig z:Id="78">
|
||||
<Id>
|
||||
<u:Value>0</u:Value>
|
||||
</Id>
|
||||
<ConditionFieldName z:Ref="39" i:nil="true" />
|
||||
<ConditionRelation z:Id="79"></ConditionRelation>
|
||||
<ConditionText z:Ref="79" i:nil="true" />
|
||||
<Formats z:Id="80" z:Size="12">
|
||||
<a:KeyValueOfLogLevelLoggerFormatConfigxIppDzWS>
|
||||
<a:Key z:Id="81" i:type="LogLevelSurrogated">
|
||||
<LevelName z:Id="82">VERBOSE</LevelName>
|
||||
</a:Key>
|
||||
<a:Value z:Id="83">
|
||||
<Id>
|
||||
<u:Value>4</u:Value>
|
||||
</Id>
|
||||
<Backcolor>
|
||||
<b:knownColor>0</b:knownColor>
|
||||
<b:name i:nil="true" />
|
||||
<b:state>0</b:state>
|
||||
<b:value>0</b:value>
|
||||
</Backcolor>
|
||||
<FontName z:Id="84">Tahoma</FontName>
|
||||
<Forecolor>
|
||||
<b:knownColor>0</b:knownColor>
|
||||
<b:name i:nil="true" />
|
||||
<b:state>2</b:state>
|
||||
<b:value>4290032820</b:value>
|
||||
</Forecolor>
|
||||
<Loglevel z:Ref="81" i:nil="true" />
|
||||
<Size>8.25</Size>
|
||||
<Style>Regular</Style>
|
||||
</a:Value>
|
||||
</a:KeyValueOfLogLevelLoggerFormatConfigxIppDzWS>
|
||||
<a:KeyValueOfLogLevelLoggerFormatConfigxIppDzWS>
|
||||
<a:Key z:Id="85" i:type="LogLevelSurrogated">
|
||||
<LevelName z:Id="86">TRACE</LevelName>
|
||||
</a:Key>
|
||||
<a:Value z:Id="87">
|
||||
<Id>
|
||||
<u:Value>5</u:Value>
|
||||
</Id>
|
||||
<Backcolor>
|
||||
<b:knownColor>0</b:knownColor>
|
||||
<b:name i:nil="true" />
|
||||
<b:state>0</b:state>
|
||||
<b:value>0</b:value>
|
||||
</Backcolor>
|
||||
<FontName z:Id="88">Tahoma</FontName>
|
||||
<Forecolor>
|
||||
<b:knownColor>0</b:knownColor>
|
||||
<b:name i:nil="true" />
|
||||
<b:state>2</b:state>
|
||||
<b:value>4288716960</b:value>
|
||||
</Forecolor>
|
||||
<Loglevel z:Ref="85" i:nil="true" />
|
||||
<Size>8.25</Size>
|
||||
<Style>Regular</Style>
|
||||
</a:Value>
|
||||
</a:KeyValueOfLogLevelLoggerFormatConfigxIppDzWS>
|
||||
<a:KeyValueOfLogLevelLoggerFormatConfigxIppDzWS>
|
||||
<a:Key z:Id="89" i:type="LogLevelSurrogated">
|
||||
<LevelName z:Id="90">DEBUG</LevelName>
|
||||
</a:Key>
|
||||
<a:Value z:Id="91">
|
||||
<Id>
|
||||
<u:Value>6</u:Value>
|
||||
</Id>
|
||||
<Backcolor>
|
||||
<b:knownColor>0</b:knownColor>
|
||||
<b:name i:nil="true" />
|
||||
<b:state>0</b:state>
|
||||
<b:value>0</b:value>
|
||||
</Backcolor>
|
||||
<FontName z:Id="92">Tahoma</FontName>
|
||||
<Forecolor>
|
||||
<b:knownColor>0</b:knownColor>
|
||||
<b:name i:nil="true" />
|
||||
<b:state>2</b:state>
|
||||
<b:value>4286743170</b:value>
|
||||
</Forecolor>
|
||||
<Loglevel z:Ref="89" i:nil="true" />
|
||||
<Size>8.25</Size>
|
||||
<Style>Regular</Style>
|
||||
</a:Value>
|
||||
</a:KeyValueOfLogLevelLoggerFormatConfigxIppDzWS>
|
||||
<a:KeyValueOfLogLevelLoggerFormatConfigxIppDzWS>
|
||||
<a:Key z:Id="93" i:type="LogLevelSurrogated">
|
||||
<LevelName z:Id="94">INFO</LevelName>
|
||||
</a:Key>
|
||||
<a:Value z:Id="95">
|
||||
<Id>
|
||||
<u:Value>7</u:Value>
|
||||
</Id>
|
||||
<Backcolor>
|
||||
<b:knownColor>0</b:knownColor>
|
||||
<b:name i:nil="true" />
|
||||
<b:state>0</b:state>
|
||||
<b:value>0</b:value>
|
||||
</Backcolor>
|
||||
<FontName z:Id="96">Tahoma</FontName>
|
||||
<Forecolor>
|
||||
<b:knownColor>0</b:knownColor>
|
||||
<b:name i:nil="true" />
|
||||
<b:state>2</b:state>
|
||||
<b:value>4278190080</b:value>
|
||||
</Forecolor>
|
||||
<Loglevel z:Ref="93" i:nil="true" />
|
||||
<Size>8.25</Size>
|
||||
<Style>Regular</Style>
|
||||
</a:Value>
|
||||
</a:KeyValueOfLogLevelLoggerFormatConfigxIppDzWS>
|
||||
<a:KeyValueOfLogLevelLoggerFormatConfigxIppDzWS>
|
||||
<a:Key z:Id="97" i:type="LogLevelSurrogated">
|
||||
<LevelName z:Id="98">NOTICE</LevelName>
|
||||
</a:Key>
|
||||
<a:Value z:Id="99">
|
||||
<Id>
|
||||
<u:Value>8</u:Value>
|
||||
</Id>
|
||||
<Backcolor>
|
||||
<b:knownColor>0</b:knownColor>
|
||||
<b:name i:nil="true" />
|
||||
<b:state>0</b:state>
|
||||
<b:value>0</b:value>
|
||||
</Backcolor>
|
||||
<FontName z:Id="100">Tahoma</FontName>
|
||||
<Forecolor>
|
||||
<b:knownColor>0</b:knownColor>
|
||||
<b:name i:nil="true" />
|
||||
<b:state>2</b:state>
|
||||
<b:value>4281957177</b:value>
|
||||
</Forecolor>
|
||||
<Loglevel z:Ref="97" i:nil="true" />
|
||||
<Size>8.25</Size>
|
||||
<Style>Regular</Style>
|
||||
</a:Value>
|
||||
</a:KeyValueOfLogLevelLoggerFormatConfigxIppDzWS>
|
||||
<a:KeyValueOfLogLevelLoggerFormatConfigxIppDzWS>
|
||||
<a:Key z:Id="101" i:type="LogLevelSurrogated">
|
||||
<LevelName z:Id="102">WARN</LevelName>
|
||||
</a:Key>
|
||||
<a:Value z:Id="103">
|
||||
<Id>
|
||||
<u:Value>9</u:Value>
|
||||
</Id>
|
||||
<Backcolor>
|
||||
<b:knownColor>0</b:knownColor>
|
||||
<b:name i:nil="true" />
|
||||
<b:state>0</b:state>
|
||||
<b:value>0</b:value>
|
||||
</Backcolor>
|
||||
<FontName z:Id="104">Tahoma</FontName>
|
||||
<Forecolor>
|
||||
<b:knownColor>0</b:knownColor>
|
||||
<b:name i:nil="true" />
|
||||
<b:state>2</b:state>
|
||||
<b:value>4294934528</b:value>
|
||||
</Forecolor>
|
||||
<Loglevel z:Ref="101" i:nil="true" />
|
||||
<Size>8.25</Size>
|
||||
<Style>Regular</Style>
|
||||
</a:Value>
|
||||
</a:KeyValueOfLogLevelLoggerFormatConfigxIppDzWS>
|
||||
<a:KeyValueOfLogLevelLoggerFormatConfigxIppDzWS>
|
||||
<a:Key z:Id="105" i:type="LogLevelSurrogated">
|
||||
<LevelName z:Id="106">ERROR</LevelName>
|
||||
</a:Key>
|
||||
<a:Value z:Id="107">
|
||||
<Id>
|
||||
<u:Value>10</u:Value>
|
||||
</Id>
|
||||
<Backcolor>
|
||||
<b:knownColor>0</b:knownColor>
|
||||
<b:name i:nil="true" />
|
||||
<b:state>0</b:state>
|
||||
<b:value>0</b:value>
|
||||
</Backcolor>
|
||||
<FontName z:Id="108">Tahoma</FontName>
|
||||
<Forecolor>
|
||||
<b:knownColor>0</b:knownColor>
|
||||
<b:name i:nil="true" />
|
||||
<b:state>2</b:state>
|
||||
<b:value>4294901760</b:value>
|
||||
</Forecolor>
|
||||
<Loglevel z:Ref="105" i:nil="true" />
|
||||
<Size>8.25</Size>
|
||||
<Style>Regular</Style>
|
||||
</a:Value>
|
||||
</a:KeyValueOfLogLevelLoggerFormatConfigxIppDzWS>
|
||||
<a:KeyValueOfLogLevelLoggerFormatConfigxIppDzWS>
|
||||
<a:Key z:Id="109" i:type="LogLevelSurrogated">
|
||||
<LevelName z:Id="110">SEVERE</LevelName>
|
||||
</a:Key>
|
||||
<a:Value z:Id="111">
|
||||
<Id>
|
||||
<u:Value>11</u:Value>
|
||||
</Id>
|
||||
<Backcolor>
|
||||
<b:knownColor>0</b:knownColor>
|
||||
<b:name i:nil="true" />
|
||||
<b:state>0</b:state>
|
||||
<b:value>0</b:value>
|
||||
</Backcolor>
|
||||
<FontName z:Id="112">Tahoma</FontName>
|
||||
<Forecolor>
|
||||
<b:knownColor>0</b:knownColor>
|
||||
<b:name i:nil="true" />
|
||||
<b:state>2</b:state>
|
||||
<b:value>4293067295</b:value>
|
||||
</Forecolor>
|
||||
<Loglevel z:Ref="109" i:nil="true" />
|
||||
<Size>8.25</Size>
|
||||
<Style>Regular</Style>
|
||||
</a:Value>
|
||||
</a:KeyValueOfLogLevelLoggerFormatConfigxIppDzWS>
|
||||
<a:KeyValueOfLogLevelLoggerFormatConfigxIppDzWS>
|
||||
<a:Key z:Id="113" i:type="LogLevelSurrogated">
|
||||
<LevelName z:Id="114">CRITICAL</LevelName>
|
||||
</a:Key>
|
||||
<a:Value z:Id="115">
|
||||
<Id>
|
||||
<u:Value>12</u:Value>
|
||||
</Id>
|
||||
<Backcolor>
|
||||
<b:knownColor>0</b:knownColor>
|
||||
<b:name i:nil="true" />
|
||||
<b:state>0</b:state>
|
||||
<b:value>0</b:value>
|
||||
</Backcolor>
|
||||
<FontName z:Id="116">Tahoma</FontName>
|
||||
<Forecolor>
|
||||
<b:knownColor>0</b:knownColor>
|
||||
<b:name i:nil="true" />
|
||||
<b:state>2</b:state>
|
||||
<b:value>4289400377</b:value>
|
||||
</Forecolor>
|
||||
<Loglevel z:Ref="113" i:nil="true" />
|
||||
<Size>8.25</Size>
|
||||
<Style>Regular</Style>
|
||||
</a:Value>
|
||||
</a:KeyValueOfLogLevelLoggerFormatConfigxIppDzWS>
|
||||
<a:KeyValueOfLogLevelLoggerFormatConfigxIppDzWS>
|
||||
<a:Key z:Id="117" i:type="LogLevelSurrogated">
|
||||
<LevelName z:Id="118">ALERT</LevelName>
|
||||
</a:Key>
|
||||
<a:Value z:Id="119">
|
||||
<Id>
|
||||
<u:Value>13</u:Value>
|
||||
</Id>
|
||||
<Backcolor>
|
||||
<b:knownColor>0</b:knownColor>
|
||||
<b:name i:nil="true" />
|
||||
<b:state>0</b:state>
|
||||
<b:value>0</b:value>
|
||||
</Backcolor>
|
||||
<FontName z:Id="120">Tahoma</FontName>
|
||||
<Forecolor>
|
||||
<b:knownColor>0</b:knownColor>
|
||||
<b:name i:nil="true" />
|
||||
<b:state>2</b:state>
|
||||
<b:value>4294902015</b:value>
|
||||
</Forecolor>
|
||||
<Loglevel z:Ref="117" i:nil="true" />
|
||||
<Size>8.25</Size>
|
||||
<Style>Regular</Style>
|
||||
</a:Value>
|
||||
</a:KeyValueOfLogLevelLoggerFormatConfigxIppDzWS>
|
||||
<a:KeyValueOfLogLevelLoggerFormatConfigxIppDzWS>
|
||||
<a:Key z:Id="121" i:type="LogLevelSurrogated">
|
||||
<LevelName z:Id="122">FATAL</LevelName>
|
||||
</a:Key>
|
||||
<a:Value z:Id="123">
|
||||
<Id>
|
||||
<u:Value>14</u:Value>
|
||||
</Id>
|
||||
<Backcolor>
|
||||
<b:knownColor>0</b:knownColor>
|
||||
<b:name i:nil="true" />
|
||||
<b:state>0</b:state>
|
||||
<b:value>0</b:value>
|
||||
</Backcolor>
|
||||
<FontName z:Id="124">Tahoma</FontName>
|
||||
<Forecolor>
|
||||
<b:knownColor>0</b:knownColor>
|
||||
<b:name i:nil="true" />
|
||||
<b:state>2</b:state>
|
||||
<b:value>4287309977</b:value>
|
||||
</Forecolor>
|
||||
<Loglevel z:Ref="121" i:nil="true" />
|
||||
<Size>8.25</Size>
|
||||
<Style>Regular</Style>
|
||||
</a:Value>
|
||||
</a:KeyValueOfLogLevelLoggerFormatConfigxIppDzWS>
|
||||
<a:KeyValueOfLogLevelLoggerFormatConfigxIppDzWS>
|
||||
<a:Key z:Id="125" i:type="LogLevelSurrogated">
|
||||
<LevelName z:Id="126">EMERGENCY</LevelName>
|
||||
</a:Key>
|
||||
<a:Value z:Id="127">
|
||||
<Id>
|
||||
<u:Value>15</u:Value>
|
||||
</Id>
|
||||
<Backcolor>
|
||||
<b:knownColor>0</b:knownColor>
|
||||
<b:name i:nil="true" />
|
||||
<b:state>0</b:state>
|
||||
<b:value>0</b:value>
|
||||
</Backcolor>
|
||||
<FontName z:Id="128">Tahoma</FontName>
|
||||
<Forecolor>
|
||||
<b:knownColor>0</b:knownColor>
|
||||
<b:name i:nil="true" />
|
||||
<b:state>2</b:state>
|
||||
<b:value>4285932413</b:value>
|
||||
</Forecolor>
|
||||
<Loglevel z:Ref="125" i:nil="true" />
|
||||
<Size>8.25</Size>
|
||||
<Style>Regular</Style>
|
||||
</a:Value>
|
||||
</a:KeyValueOfLogLevelLoggerFormatConfigxIppDzWS>
|
||||
</Formats>
|
||||
<IgnoreCase>false</IgnoreCase>
|
||||
<Name z:Id="129">Default Format Settings</Name>
|
||||
</FormatConfig>
|
||||
</_formats>
|
||||
<_logLevels z:Id="130" z:Size="0" />
|
||||
<_loggers z:Id="131" z:Size="1">
|
||||
<LoggerConfig z:Id="132">
|
||||
<Id>
|
||||
<u:Value>77</u:Value>
|
||||
</Id>
|
||||
<LogLevel z:Ref="6" i:nil="true" />
|
||||
<LoggerPath z:Ref="79" i:nil="true" />
|
||||
<ReceiverId>16</ReceiverId>
|
||||
</LoggerConfig>
|
||||
</_loggers>
|
||||
</Presentation>
|
||||
<Version>17</Version>
|
||||
</Config>
|
||||
BIN
Logo/1024.png
|
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 156 KiB |
BIN
Logo/128.png
|
Before Width: | Height: | Size: 7.1 KiB After Width: | Height: | Size: 14 KiB |
BIN
Logo/16.png
|
Before Width: | Height: | Size: 707 B After Width: | Height: | Size: 811 B |
BIN
Logo/256.png
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 30 KiB |
BIN
Logo/32.png
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 2.1 KiB |
BIN
Logo/400.png
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 51 KiB |
BIN
Logo/48.png
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 3.7 KiB |
BIN
Logo/512.png
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 68 KiB |
BIN
Logo/64.png
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 5.6 KiB |
BIN
Logo/800.png
|
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 115 KiB |
572
Logo/Radarr.svg
Normal file
@@ -0,0 +1,572 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="1024px" height="1024px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Generator: Sketch 41.2 (35397) - http://www.bohemiancoding.com/sketch -->
|
||||
<title>SVG</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<defs>
|
||||
<ellipse id="path-1" cx="512" cy="512" rx="512" ry="512"></ellipse>
|
||||
<mask id="mask-2" maskContentUnits="userSpaceOnUse" maskUnits="objectBoundingBox" x="0" y="0" width="1024" height="1024" fill="white">
|
||||
<use xlink:href="#path-1"></use>
|
||||
</mask>
|
||||
<mask id="mask-4" maskContentUnits="userSpaceOnUse" maskUnits="objectBoundingBox" x="0" y="0" width="1024" height="1024" fill="white">
|
||||
<use xlink:href="#path-1"></use>
|
||||
</mask>
|
||||
<polygon id="path-5" points="0 0 1007.8334 0 1007.8334 1181.7303 0 1181.7303"></polygon>
|
||||
<polygon id="path-7" points="0 0.308593451 979.971467 0.308593451 979.971467 66.8717453 0 66.8717453"></polygon>
|
||||
<polygon id="path-9" points="0 0.308593451 979.971467 0.308593451 979.971467 66.8717453 0 66.8717453"></polygon>
|
||||
<polygon id="path-11" points="0 0.308593451 979.971467 0.308593451 979.971467 66.8717453 0 66.8717453"></polygon>
|
||||
<polygon id="path-13" points="0 0.308593451 979.971467 0.308593451 979.971467 66.8717453 0 66.8717453"></polygon>
|
||||
<polygon id="path-15" points="0 0.308593451 979.971467 0.308593451 979.971467 66.8717453 0 66.8717453"></polygon>
|
||||
<polygon id="path-17" points="0 0.308593451 979.971467 0.308593451 979.971467 66.8717453 0 66.8717453"></polygon>
|
||||
<polygon id="path-19" points="0 0.308593451 979.971467 0.308593451 979.971467 66.8717453 0 66.8717453"></polygon>
|
||||
<polygon id="path-21" points="0 0.308593451 979.971467 0.308593451 979.971467 66.8717453 0 66.8717453"></polygon>
|
||||
<polygon id="path-23" points="0 0.308593451 979.971467 0.308593451 979.971467 66.8717453 0 66.8717453"></polygon>
|
||||
<polygon id="path-25" points="0 0.308593451 979.971467 0.308593451 979.971467 66.8717453 0 66.8717453"></polygon>
|
||||
<polygon id="path-27" points="0 0.308593451 979.971467 0.308593451 979.971467 66.8717453 0 66.8717453"></polygon>
|
||||
<polygon id="path-29" points="0 0.308593451 979.971467 0.308593451 979.971467 66.8717453 0 66.8717453"></polygon>
|
||||
<polygon id="path-31" points="0 0.308593451 979.971467 0.308593451 979.971467 66.8717453 0 66.8717453"></polygon>
|
||||
<polygon id="path-33" points="0 0.308593451 979.971467 0.308593451 979.971467 66.8717453 0 66.8717453"></polygon>
|
||||
<polygon id="path-35" points="0 0.308593451 979.971467 0.308593451 979.971467 66.8717453 0 66.8717453"></polygon>
|
||||
<polygon id="path-37" points="0 0.308593451 979.971467 0.308593451 979.971467 66.8717453 0 66.8717453"></polygon>
|
||||
<polygon id="path-39" points="0 0.308593451 979.971467 0.308593451 979.971467 66.8717453 0 66.8717453"></polygon>
|
||||
<polygon id="path-41" points="0 0.308593451 979.971467 0.308593451 979.971467 66.8717453 0 66.8717453"></polygon>
|
||||
<polygon id="path-43" points="0 0.308593451 979.971467 0.308593451 979.971467 66.8717453 0 66.8717453"></polygon>
|
||||
<polygon id="path-45" points="0 0.308593451 979.971467 0.308593451 979.971467 66.8717453 0 66.8717453"></polygon>
|
||||
<path d="M211.257613,211.421878 C134.335253,288.344238 86.7577838,394.611489 86.7577838,511.991053 C86.7577838,629.370617 134.335253,735.637868 211.257613,812.560228 L511.826788,511.991053 L211.257613,211.421878 Z" id="path-47"></path>
|
||||
<path d="M639.447177,208.78225 C562.524817,285.704609 514.947349,391.97186 514.947349,509.351425 C514.947349,626.730989 562.524817,732.99824 639.447177,809.9206 L940.016353,509.351425 L639.447177,208.78225 Z" id="path-49"></path>
|
||||
<ellipse id="path-51" cx="512" cy="512" rx="512" ry="512"></ellipse>
|
||||
<mask id="mask-52" maskContentUnits="userSpaceOnUse" maskUnits="objectBoundingBox" x="0" y="0" width="1024" height="1024" fill="white">
|
||||
<use xlink:href="#path-51"></use>
|
||||
</mask>
|
||||
</defs>
|
||||
<g id="Logo" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="SVG">
|
||||
<mask id="mask-3" fill="white">
|
||||
<use xlink:href="#path-1"></use>
|
||||
</mask>
|
||||
<g id="Mask" stroke="#FFC231" mask="url(#mask-2)" stroke-width="40" fill="#050808">
|
||||
<use mask="url(#mask-4)" xlink:href="#path-1"></use>
|
||||
</g>
|
||||
<g id="Grid" mask="url(#mask-3)">
|
||||
<g transform="translate(23.843025, 1.692150)">
|
||||
<mask id="mask-6" fill="white">
|
||||
<use xlink:href="#path-5"></use>
|
||||
</mask>
|
||||
<g id="Duplicate-control" stroke="none" fill="none"></g>
|
||||
<g id="Group-2" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" mask="url(#mask-6)">
|
||||
<g id="Group" transform="translate(0.000000, 0.924454)">
|
||||
<mask id="mask-8" fill="white">
|
||||
<use xlink:href="#path-7"></use>
|
||||
</mask>
|
||||
<g id="Duplicate-control"></g>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-8)" points="28.8226902 0.308593451 57.6453804 16.9493814 57.6453804 50.2309573 28.8226902 66.8717453 1.95399252e-13 50.2309573 1.76747506e-13 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-8)" points="951.148777 0.308593451 979.971467 16.9493814 979.971467 50.2309573 951.148777 66.8717453 922.326087 50.2309573 922.326087 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-8)" points="893.503397 0.308593451 922.326087 16.9493814 922.326087 50.2309573 893.503397 66.8717453 864.680706 50.2309573 864.680706 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-8)" points="835.858016 0.308593451 864.680706 16.9493814 864.680706 50.2309573 835.858016 66.8717453 807.035326 50.2309573 807.035326 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-8)" points="778.212636 0.308593451 807.035326 16.9493814 807.035326 50.2309573 778.212636 66.8717453 749.389945 50.2309573 749.389945 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-8)" points="720.567255 0.308593451 749.389945 16.9493814 749.389945 50.2309573 720.567255 66.8717453 691.744565 50.2309573 691.744565 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-8)" points="662.921875 0.308593451 691.744565 16.9493814 691.744565 50.2309573 662.921875 66.8717453 634.099185 50.2309573 634.099185 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-8)" points="605.276494 0.308593451 634.099185 16.9493814 634.099185 50.2309573 605.276494 66.8717453 576.453804 50.2309573 576.453804 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-8)" points="547.631114 0.308593451 576.453804 16.9493814 576.453804 50.2309573 547.631114 66.8717453 518.808424 50.2309573 518.808424 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-8)" points="489.985734 0.308593451 518.808424 16.9493814 518.808424 50.2309573 489.985734 66.8717453 461.163043 50.2309573 461.163043 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-8)" points="432.340353 0.308593451 461.163043 16.9493814 461.163043 50.2309573 432.340353 66.8717453 403.517663 50.2309573 403.517663 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-8)" points="374.694973 0.308593451 403.517663 16.9493814 403.517663 50.2309573 374.694973 66.8717453 345.872283 50.2309573 345.872283 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-8)" points="317.049592 0.308593451 345.872283 16.9493814 345.872283 50.2309573 317.049592 66.8717453 288.226902 50.2309573 288.226902 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-8)" points="259.404212 0.308593451 288.226902 16.9493814 288.226902 50.2309573 259.404212 66.8717453 230.581522 50.2309573 230.581522 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-8)" points="201.758831 0.308593451 230.581522 16.9493814 230.581522 50.2309573 201.758831 66.8717453 172.936141 50.2309573 172.936141 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-8)" points="144.113451 0.308593451 172.936141 16.9493814 172.936141 50.2309573 144.113451 66.8717453 115.290761 50.2309573 115.290761 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-8)" points="86.4680706 0.308593451 115.290761 16.9493814 115.290761 50.2309573 86.4680706 66.8717453 57.6453804 50.2309573 57.6453804 16.9493814"></polygon>
|
||||
</g>
|
||||
<g id="Group" transform="translate(27.861934, 50.883783)">
|
||||
<mask id="mask-10" fill="white">
|
||||
<use xlink:href="#path-9"></use>
|
||||
</mask>
|
||||
<g id="Duplicate-control"></g>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-10)" points="28.8226902 0.308593451 57.6453804 16.9493814 57.6453804 50.2309573 28.8226902 66.8717453 1.95399252e-13 50.2309573 1.76747506e-13 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-10)" points="951.148777 0.308593451 979.971467 16.9493814 979.971467 50.2309573 951.148777 66.8717453 922.326087 50.2309573 922.326087 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-10)" points="893.503397 0.308593451 922.326087 16.9493814 922.326087 50.2309573 893.503397 66.8717453 864.680706 50.2309573 864.680706 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-10)" points="835.858016 0.308593451 864.680706 16.9493814 864.680706 50.2309573 835.858016 66.8717453 807.035326 50.2309573 807.035326 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-10)" points="778.212636 0.308593451 807.035326 16.9493814 807.035326 50.2309573 778.212636 66.8717453 749.389945 50.2309573 749.389945 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-10)" points="720.567255 0.308593451 749.389945 16.9493814 749.389945 50.2309573 720.567255 66.8717453 691.744565 50.2309573 691.744565 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-10)" points="662.921875 0.308593451 691.744565 16.9493814 691.744565 50.2309573 662.921875 66.8717453 634.099185 50.2309573 634.099185 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-10)" points="605.276494 0.308593451 634.099185 16.9493814 634.099185 50.2309573 605.276494 66.8717453 576.453804 50.2309573 576.453804 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-10)" points="547.631114 0.308593451 576.453804 16.9493814 576.453804 50.2309573 547.631114 66.8717453 518.808424 50.2309573 518.808424 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-10)" points="489.985734 0.308593451 518.808424 16.9493814 518.808424 50.2309573 489.985734 66.8717453 461.163043 50.2309573 461.163043 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-10)" points="432.340353 0.308593451 461.163043 16.9493814 461.163043 50.2309573 432.340353 66.8717453 403.517663 50.2309573 403.517663 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-10)" points="374.694973 0.308593451 403.517663 16.9493814 403.517663 50.2309573 374.694973 66.8717453 345.872283 50.2309573 345.872283 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-10)" points="317.049592 0.308593451 345.872283 16.9493814 345.872283 50.2309573 317.049592 66.8717453 288.226902 50.2309573 288.226902 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-10)" points="259.404212 0.308593451 288.226902 16.9493814 288.226902 50.2309573 259.404212 66.8717453 230.581522 50.2309573 230.581522 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-10)" points="201.758831 0.308593451 230.581522 16.9493814 230.581522 50.2309573 201.758831 66.8717453 172.936141 50.2309573 172.936141 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-10)" points="144.113451 0.308593451 172.936141 16.9493814 172.936141 50.2309573 144.113451 66.8717453 115.290761 50.2309573 115.290761 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-10)" points="86.4680706 0.308593451 115.290761 16.9493814 115.290761 50.2309573 86.4680706 66.8717453 57.6453804 50.2309573 57.6453804 16.9493814"></polygon>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Group-2" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" mask="url(#mask-6)">
|
||||
<g transform="translate(0.000000, 901.189447)" id="Group">
|
||||
<g transform="translate(0.000000, 0.924454)">
|
||||
<mask id="mask-12" fill="white">
|
||||
<use xlink:href="#path-11"></use>
|
||||
</mask>
|
||||
<g id="Duplicate-control"></g>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-12)" points="28.8226902 0.308593451 57.6453804 16.9493814 57.6453804 50.2309573 28.8226902 66.8717453 1.95399252e-13 50.2309573 1.76747506e-13 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-12)" points="951.148777 0.308593451 979.971467 16.9493814 979.971467 50.2309573 951.148777 66.8717453 922.326087 50.2309573 922.326087 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-12)" points="893.503397 0.308593451 922.326087 16.9493814 922.326087 50.2309573 893.503397 66.8717453 864.680706 50.2309573 864.680706 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-12)" points="835.858016 0.308593451 864.680706 16.9493814 864.680706 50.2309573 835.858016 66.8717453 807.035326 50.2309573 807.035326 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-12)" points="778.212636 0.308593451 807.035326 16.9493814 807.035326 50.2309573 778.212636 66.8717453 749.389945 50.2309573 749.389945 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-12)" points="720.567255 0.308593451 749.389945 16.9493814 749.389945 50.2309573 720.567255 66.8717453 691.744565 50.2309573 691.744565 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-12)" points="662.921875 0.308593451 691.744565 16.9493814 691.744565 50.2309573 662.921875 66.8717453 634.099185 50.2309573 634.099185 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-12)" points="605.276494 0.308593451 634.099185 16.9493814 634.099185 50.2309573 605.276494 66.8717453 576.453804 50.2309573 576.453804 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-12)" points="547.631114 0.308593451 576.453804 16.9493814 576.453804 50.2309573 547.631114 66.8717453 518.808424 50.2309573 518.808424 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-12)" points="489.985734 0.308593451 518.808424 16.9493814 518.808424 50.2309573 489.985734 66.8717453 461.163043 50.2309573 461.163043 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-12)" points="432.340353 0.308593451 461.163043 16.9493814 461.163043 50.2309573 432.340353 66.8717453 403.517663 50.2309573 403.517663 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-12)" points="374.694973 0.308593451 403.517663 16.9493814 403.517663 50.2309573 374.694973 66.8717453 345.872283 50.2309573 345.872283 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-12)" points="317.049592 0.308593451 345.872283 16.9493814 345.872283 50.2309573 317.049592 66.8717453 288.226902 50.2309573 288.226902 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-12)" points="259.404212 0.308593451 288.226902 16.9493814 288.226902 50.2309573 259.404212 66.8717453 230.581522 50.2309573 230.581522 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-12)" points="201.758831 0.308593451 230.581522 16.9493814 230.581522 50.2309573 201.758831 66.8717453 172.936141 50.2309573 172.936141 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-12)" points="144.113451 0.308593451 172.936141 16.9493814 172.936141 50.2309573 144.113451 66.8717453 115.290761 50.2309573 115.290761 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-12)" points="86.4680706 0.308593451 115.290761 16.9493814 115.290761 50.2309573 86.4680706 66.8717453 57.6453804 50.2309573 57.6453804 16.9493814"></polygon>
|
||||
</g>
|
||||
<g transform="translate(27.861934, 50.883783)">
|
||||
<mask id="mask-14" fill="white">
|
||||
<use xlink:href="#path-13"></use>
|
||||
</mask>
|
||||
<g id="Duplicate-control"></g>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-14)" points="28.8226902 0.308593451 57.6453804 16.9493814 57.6453804 50.2309573 28.8226902 66.8717453 1.95399252e-13 50.2309573 1.76747506e-13 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-14)" points="951.148777 0.308593451 979.971467 16.9493814 979.971467 50.2309573 951.148777 66.8717453 922.326087 50.2309573 922.326087 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-14)" points="893.503397 0.308593451 922.326087 16.9493814 922.326087 50.2309573 893.503397 66.8717453 864.680706 50.2309573 864.680706 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-14)" points="835.858016 0.308593451 864.680706 16.9493814 864.680706 50.2309573 835.858016 66.8717453 807.035326 50.2309573 807.035326 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-14)" points="778.212636 0.308593451 807.035326 16.9493814 807.035326 50.2309573 778.212636 66.8717453 749.389945 50.2309573 749.389945 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-14)" points="720.567255 0.308593451 749.389945 16.9493814 749.389945 50.2309573 720.567255 66.8717453 691.744565 50.2309573 691.744565 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-14)" points="662.921875 0.308593451 691.744565 16.9493814 691.744565 50.2309573 662.921875 66.8717453 634.099185 50.2309573 634.099185 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-14)" points="605.276494 0.308593451 634.099185 16.9493814 634.099185 50.2309573 605.276494 66.8717453 576.453804 50.2309573 576.453804 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-14)" points="547.631114 0.308593451 576.453804 16.9493814 576.453804 50.2309573 547.631114 66.8717453 518.808424 50.2309573 518.808424 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-14)" points="489.985734 0.308593451 518.808424 16.9493814 518.808424 50.2309573 489.985734 66.8717453 461.163043 50.2309573 461.163043 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-14)" points="432.340353 0.308593451 461.163043 16.9493814 461.163043 50.2309573 432.340353 66.8717453 403.517663 50.2309573 403.517663 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-14)" points="374.694973 0.308593451 403.517663 16.9493814 403.517663 50.2309573 374.694973 66.8717453 345.872283 50.2309573 345.872283 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-14)" points="317.049592 0.308593451 345.872283 16.9493814 345.872283 50.2309573 317.049592 66.8717453 288.226902 50.2309573 288.226902 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-14)" points="259.404212 0.308593451 288.226902 16.9493814 288.226902 50.2309573 259.404212 66.8717453 230.581522 50.2309573 230.581522 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-14)" points="201.758831 0.308593451 230.581522 16.9493814 230.581522 50.2309573 201.758831 66.8717453 172.936141 50.2309573 172.936141 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-14)" points="144.113451 0.308593451 172.936141 16.9493814 172.936141 50.2309573 144.113451 66.8717453 115.290761 50.2309573 115.290761 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-14)" points="86.4680706 0.308593451 115.290761 16.9493814 115.290761 50.2309573 86.4680706 66.8717453 57.6453804 50.2309573 57.6453804 16.9493814"></polygon>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Group-2" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" mask="url(#mask-6)">
|
||||
<g transform="translate(0.000000, 801.270788)" id="Group">
|
||||
<g transform="translate(0.000000, 0.924454)">
|
||||
<mask id="mask-16" fill="white">
|
||||
<use xlink:href="#path-15"></use>
|
||||
</mask>
|
||||
<g id="Duplicate-control"></g>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-16)" points="28.8226902 0.308593451 57.6453804 16.9493814 57.6453804 50.2309573 28.8226902 66.8717453 1.95399252e-13 50.2309573 1.76747506e-13 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-16)" points="951.148777 0.308593451 979.971467 16.9493814 979.971467 50.2309573 951.148777 66.8717453 922.326087 50.2309573 922.326087 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-16)" points="893.503397 0.308593451 922.326087 16.9493814 922.326087 50.2309573 893.503397 66.8717453 864.680706 50.2309573 864.680706 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-16)" points="835.858016 0.308593451 864.680706 16.9493814 864.680706 50.2309573 835.858016 66.8717453 807.035326 50.2309573 807.035326 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-16)" points="778.212636 0.308593451 807.035326 16.9493814 807.035326 50.2309573 778.212636 66.8717453 749.389945 50.2309573 749.389945 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-16)" points="720.567255 0.308593451 749.389945 16.9493814 749.389945 50.2309573 720.567255 66.8717453 691.744565 50.2309573 691.744565 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-16)" points="662.921875 0.308593451 691.744565 16.9493814 691.744565 50.2309573 662.921875 66.8717453 634.099185 50.2309573 634.099185 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-16)" points="605.276494 0.308593451 634.099185 16.9493814 634.099185 50.2309573 605.276494 66.8717453 576.453804 50.2309573 576.453804 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-16)" points="547.631114 0.308593451 576.453804 16.9493814 576.453804 50.2309573 547.631114 66.8717453 518.808424 50.2309573 518.808424 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-16)" points="489.985734 0.308593451 518.808424 16.9493814 518.808424 50.2309573 489.985734 66.8717453 461.163043 50.2309573 461.163043 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-16)" points="432.340353 0.308593451 461.163043 16.9493814 461.163043 50.2309573 432.340353 66.8717453 403.517663 50.2309573 403.517663 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-16)" points="374.694973 0.308593451 403.517663 16.9493814 403.517663 50.2309573 374.694973 66.8717453 345.872283 50.2309573 345.872283 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-16)" points="317.049592 0.308593451 345.872283 16.9493814 345.872283 50.2309573 317.049592 66.8717453 288.226902 50.2309573 288.226902 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-16)" points="259.404212 0.308593451 288.226902 16.9493814 288.226902 50.2309573 259.404212 66.8717453 230.581522 50.2309573 230.581522 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-16)" points="201.758831 0.308593451 230.581522 16.9493814 230.581522 50.2309573 201.758831 66.8717453 172.936141 50.2309573 172.936141 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-16)" points="144.113451 0.308593451 172.936141 16.9493814 172.936141 50.2309573 144.113451 66.8717453 115.290761 50.2309573 115.290761 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-16)" points="86.4680706 0.308593451 115.290761 16.9493814 115.290761 50.2309573 86.4680706 66.8717453 57.6453804 50.2309573 57.6453804 16.9493814"></polygon>
|
||||
</g>
|
||||
<g transform="translate(27.861934, 50.883783)">
|
||||
<mask id="mask-18" fill="white">
|
||||
<use xlink:href="#path-17"></use>
|
||||
</mask>
|
||||
<g id="Duplicate-control"></g>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-18)" points="28.8226902 0.308593451 57.6453804 16.9493814 57.6453804 50.2309573 28.8226902 66.8717453 1.95399252e-13 50.2309573 1.76747506e-13 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-18)" points="951.148777 0.308593451 979.971467 16.9493814 979.971467 50.2309573 951.148777 66.8717453 922.326087 50.2309573 922.326087 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-18)" points="893.503397 0.308593451 922.326087 16.9493814 922.326087 50.2309573 893.503397 66.8717453 864.680706 50.2309573 864.680706 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-18)" points="835.858016 0.308593451 864.680706 16.9493814 864.680706 50.2309573 835.858016 66.8717453 807.035326 50.2309573 807.035326 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-18)" points="778.212636 0.308593451 807.035326 16.9493814 807.035326 50.2309573 778.212636 66.8717453 749.389945 50.2309573 749.389945 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-18)" points="720.567255 0.308593451 749.389945 16.9493814 749.389945 50.2309573 720.567255 66.8717453 691.744565 50.2309573 691.744565 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-18)" points="662.921875 0.308593451 691.744565 16.9493814 691.744565 50.2309573 662.921875 66.8717453 634.099185 50.2309573 634.099185 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-18)" points="605.276494 0.308593451 634.099185 16.9493814 634.099185 50.2309573 605.276494 66.8717453 576.453804 50.2309573 576.453804 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-18)" points="547.631114 0.308593451 576.453804 16.9493814 576.453804 50.2309573 547.631114 66.8717453 518.808424 50.2309573 518.808424 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-18)" points="489.985734 0.308593451 518.808424 16.9493814 518.808424 50.2309573 489.985734 66.8717453 461.163043 50.2309573 461.163043 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-18)" points="432.340353 0.308593451 461.163043 16.9493814 461.163043 50.2309573 432.340353 66.8717453 403.517663 50.2309573 403.517663 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-18)" points="374.694973 0.308593451 403.517663 16.9493814 403.517663 50.2309573 374.694973 66.8717453 345.872283 50.2309573 345.872283 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-18)" points="317.049592 0.308593451 345.872283 16.9493814 345.872283 50.2309573 317.049592 66.8717453 288.226902 50.2309573 288.226902 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-18)" points="259.404212 0.308593451 288.226902 16.9493814 288.226902 50.2309573 259.404212 66.8717453 230.581522 50.2309573 230.581522 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-18)" points="201.758831 0.308593451 230.581522 16.9493814 230.581522 50.2309573 201.758831 66.8717453 172.936141 50.2309573 172.936141 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-18)" points="144.113451 0.308593451 172.936141 16.9493814 172.936141 50.2309573 144.113451 66.8717453 115.290761 50.2309573 115.290761 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-18)" points="86.4680706 0.308593451 115.290761 16.9493814 115.290761 50.2309573 86.4680706 66.8717453 57.6453804 50.2309573 57.6453804 16.9493814"></polygon>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Group-2" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" mask="url(#mask-6)">
|
||||
<g transform="translate(0.000000, 700.391372)" id="Group">
|
||||
<g transform="translate(0.000000, 0.924454)">
|
||||
<mask id="mask-20" fill="white">
|
||||
<use xlink:href="#path-19"></use>
|
||||
</mask>
|
||||
<g id="Duplicate-control"></g>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-20)" points="28.8226902 0.308593451 57.6453804 16.9493814 57.6453804 50.2309573 28.8226902 66.8717453 1.95399252e-13 50.2309573 1.76747506e-13 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-20)" points="951.148777 0.308593451 979.971467 16.9493814 979.971467 50.2309573 951.148777 66.8717453 922.326087 50.2309573 922.326087 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-20)" points="893.503397 0.308593451 922.326087 16.9493814 922.326087 50.2309573 893.503397 66.8717453 864.680706 50.2309573 864.680706 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-20)" points="835.858016 0.308593451 864.680706 16.9493814 864.680706 50.2309573 835.858016 66.8717453 807.035326 50.2309573 807.035326 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-20)" points="778.212636 0.308593451 807.035326 16.9493814 807.035326 50.2309573 778.212636 66.8717453 749.389945 50.2309573 749.389945 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-20)" points="720.567255 0.308593451 749.389945 16.9493814 749.389945 50.2309573 720.567255 66.8717453 691.744565 50.2309573 691.744565 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-20)" points="662.921875 0.308593451 691.744565 16.9493814 691.744565 50.2309573 662.921875 66.8717453 634.099185 50.2309573 634.099185 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-20)" points="605.276494 0.308593451 634.099185 16.9493814 634.099185 50.2309573 605.276494 66.8717453 576.453804 50.2309573 576.453804 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-20)" points="547.631114 0.308593451 576.453804 16.9493814 576.453804 50.2309573 547.631114 66.8717453 518.808424 50.2309573 518.808424 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-20)" points="489.985734 0.308593451 518.808424 16.9493814 518.808424 50.2309573 489.985734 66.8717453 461.163043 50.2309573 461.163043 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-20)" points="432.340353 0.308593451 461.163043 16.9493814 461.163043 50.2309573 432.340353 66.8717453 403.517663 50.2309573 403.517663 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-20)" points="374.694973 0.308593451 403.517663 16.9493814 403.517663 50.2309573 374.694973 66.8717453 345.872283 50.2309573 345.872283 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-20)" points="317.049592 0.308593451 345.872283 16.9493814 345.872283 50.2309573 317.049592 66.8717453 288.226902 50.2309573 288.226902 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-20)" points="259.404212 0.308593451 288.226902 16.9493814 288.226902 50.2309573 259.404212 66.8717453 230.581522 50.2309573 230.581522 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-20)" points="201.758831 0.308593451 230.581522 16.9493814 230.581522 50.2309573 201.758831 66.8717453 172.936141 50.2309573 172.936141 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-20)" points="144.113451 0.308593451 172.936141 16.9493814 172.936141 50.2309573 144.113451 66.8717453 115.290761 50.2309573 115.290761 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-20)" points="86.4680706 0.308593451 115.290761 16.9493814 115.290761 50.2309573 86.4680706 66.8717453 57.6453804 50.2309573 57.6453804 16.9493814"></polygon>
|
||||
</g>
|
||||
<g transform="translate(27.861934, 50.883783)">
|
||||
<mask id="mask-22" fill="white">
|
||||
<use xlink:href="#path-21"></use>
|
||||
</mask>
|
||||
<g id="Duplicate-control"></g>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-22)" points="28.8226902 0.308593451 57.6453804 16.9493814 57.6453804 50.2309573 28.8226902 66.8717453 1.95399252e-13 50.2309573 1.76747506e-13 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-22)" points="951.148777 0.308593451 979.971467 16.9493814 979.971467 50.2309573 951.148777 66.8717453 922.326087 50.2309573 922.326087 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-22)" points="893.503397 0.308593451 922.326087 16.9493814 922.326087 50.2309573 893.503397 66.8717453 864.680706 50.2309573 864.680706 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-22)" points="835.858016 0.308593451 864.680706 16.9493814 864.680706 50.2309573 835.858016 66.8717453 807.035326 50.2309573 807.035326 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-22)" points="778.212636 0.308593451 807.035326 16.9493814 807.035326 50.2309573 778.212636 66.8717453 749.389945 50.2309573 749.389945 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-22)" points="720.567255 0.308593451 749.389945 16.9493814 749.389945 50.2309573 720.567255 66.8717453 691.744565 50.2309573 691.744565 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-22)" points="662.921875 0.308593451 691.744565 16.9493814 691.744565 50.2309573 662.921875 66.8717453 634.099185 50.2309573 634.099185 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-22)" points="605.276494 0.308593451 634.099185 16.9493814 634.099185 50.2309573 605.276494 66.8717453 576.453804 50.2309573 576.453804 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-22)" points="547.631114 0.308593451 576.453804 16.9493814 576.453804 50.2309573 547.631114 66.8717453 518.808424 50.2309573 518.808424 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-22)" points="489.985734 0.308593451 518.808424 16.9493814 518.808424 50.2309573 489.985734 66.8717453 461.163043 50.2309573 461.163043 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-22)" points="432.340353 0.308593451 461.163043 16.9493814 461.163043 50.2309573 432.340353 66.8717453 403.517663 50.2309573 403.517663 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-22)" points="374.694973 0.308593451 403.517663 16.9493814 403.517663 50.2309573 374.694973 66.8717453 345.872283 50.2309573 345.872283 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-22)" points="317.049592 0.308593451 345.872283 16.9493814 345.872283 50.2309573 317.049592 66.8717453 288.226902 50.2309573 288.226902 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-22)" points="259.404212 0.308593451 288.226902 16.9493814 288.226902 50.2309573 259.404212 66.8717453 230.581522 50.2309573 230.581522 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-22)" points="201.758831 0.308593451 230.581522 16.9493814 230.581522 50.2309573 201.758831 66.8717453 172.936141 50.2309573 172.936141 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-22)" points="144.113451 0.308593451 172.936141 16.9493814 172.936141 50.2309573 144.113451 66.8717453 115.290761 50.2309573 115.290761 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-22)" points="86.4680706 0.308593451 115.290761 16.9493814 115.290761 50.2309573 86.4680706 66.8717453 57.6453804 50.2309573 57.6453804 16.9493814"></polygon>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Group-2" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" mask="url(#mask-6)">
|
||||
<g transform="translate(0.000000, 600.472713)" id="Group">
|
||||
<g transform="translate(0.000000, 0.924454)">
|
||||
<mask id="mask-24" fill="white">
|
||||
<use xlink:href="#path-23"></use>
|
||||
</mask>
|
||||
<g id="Duplicate-control"></g>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-24)" points="28.8226902 0.308593451 57.6453804 16.9493814 57.6453804 50.2309573 28.8226902 66.8717453 1.95399252e-13 50.2309573 1.76747506e-13 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-24)" points="951.148777 0.308593451 979.971467 16.9493814 979.971467 50.2309573 951.148777 66.8717453 922.326087 50.2309573 922.326087 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-24)" points="893.503397 0.308593451 922.326087 16.9493814 922.326087 50.2309573 893.503397 66.8717453 864.680706 50.2309573 864.680706 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-24)" points="835.858016 0.308593451 864.680706 16.9493814 864.680706 50.2309573 835.858016 66.8717453 807.035326 50.2309573 807.035326 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-24)" points="778.212636 0.308593451 807.035326 16.9493814 807.035326 50.2309573 778.212636 66.8717453 749.389945 50.2309573 749.389945 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-24)" points="720.567255 0.308593451 749.389945 16.9493814 749.389945 50.2309573 720.567255 66.8717453 691.744565 50.2309573 691.744565 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-24)" points="662.921875 0.308593451 691.744565 16.9493814 691.744565 50.2309573 662.921875 66.8717453 634.099185 50.2309573 634.099185 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-24)" points="605.276494 0.308593451 634.099185 16.9493814 634.099185 50.2309573 605.276494 66.8717453 576.453804 50.2309573 576.453804 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-24)" points="547.631114 0.308593451 576.453804 16.9493814 576.453804 50.2309573 547.631114 66.8717453 518.808424 50.2309573 518.808424 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-24)" points="489.985734 0.308593451 518.808424 16.9493814 518.808424 50.2309573 489.985734 66.8717453 461.163043 50.2309573 461.163043 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-24)" points="432.340353 0.308593451 461.163043 16.9493814 461.163043 50.2309573 432.340353 66.8717453 403.517663 50.2309573 403.517663 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-24)" points="374.694973 0.308593451 403.517663 16.9493814 403.517663 50.2309573 374.694973 66.8717453 345.872283 50.2309573 345.872283 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-24)" points="317.049592 0.308593451 345.872283 16.9493814 345.872283 50.2309573 317.049592 66.8717453 288.226902 50.2309573 288.226902 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-24)" points="259.404212 0.308593451 288.226902 16.9493814 288.226902 50.2309573 259.404212 66.8717453 230.581522 50.2309573 230.581522 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-24)" points="201.758831 0.308593451 230.581522 16.9493814 230.581522 50.2309573 201.758831 66.8717453 172.936141 50.2309573 172.936141 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-24)" points="144.113451 0.308593451 172.936141 16.9493814 172.936141 50.2309573 144.113451 66.8717453 115.290761 50.2309573 115.290761 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-24)" points="86.4680706 0.308593451 115.290761 16.9493814 115.290761 50.2309573 86.4680706 66.8717453 57.6453804 50.2309573 57.6453804 16.9493814"></polygon>
|
||||
</g>
|
||||
<g transform="translate(27.861934, 50.883783)">
|
||||
<mask id="mask-26" fill="white">
|
||||
<use xlink:href="#path-25"></use>
|
||||
</mask>
|
||||
<g id="Duplicate-control"></g>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-26)" points="28.8226902 0.308593451 57.6453804 16.9493814 57.6453804 50.2309573 28.8226902 66.8717453 1.95399252e-13 50.2309573 1.76747506e-13 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-26)" points="951.148777 0.308593451 979.971467 16.9493814 979.971467 50.2309573 951.148777 66.8717453 922.326087 50.2309573 922.326087 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-26)" points="893.503397 0.308593451 922.326087 16.9493814 922.326087 50.2309573 893.503397 66.8717453 864.680706 50.2309573 864.680706 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-26)" points="835.858016 0.308593451 864.680706 16.9493814 864.680706 50.2309573 835.858016 66.8717453 807.035326 50.2309573 807.035326 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-26)" points="778.212636 0.308593451 807.035326 16.9493814 807.035326 50.2309573 778.212636 66.8717453 749.389945 50.2309573 749.389945 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-26)" points="720.567255 0.308593451 749.389945 16.9493814 749.389945 50.2309573 720.567255 66.8717453 691.744565 50.2309573 691.744565 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-26)" points="662.921875 0.308593451 691.744565 16.9493814 691.744565 50.2309573 662.921875 66.8717453 634.099185 50.2309573 634.099185 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-26)" points="605.276494 0.308593451 634.099185 16.9493814 634.099185 50.2309573 605.276494 66.8717453 576.453804 50.2309573 576.453804 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-26)" points="547.631114 0.308593451 576.453804 16.9493814 576.453804 50.2309573 547.631114 66.8717453 518.808424 50.2309573 518.808424 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-26)" points="489.985734 0.308593451 518.808424 16.9493814 518.808424 50.2309573 489.985734 66.8717453 461.163043 50.2309573 461.163043 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-26)" points="432.340353 0.308593451 461.163043 16.9493814 461.163043 50.2309573 432.340353 66.8717453 403.517663 50.2309573 403.517663 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-26)" points="374.694973 0.308593451 403.517663 16.9493814 403.517663 50.2309573 374.694973 66.8717453 345.872283 50.2309573 345.872283 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-26)" points="317.049592 0.308593451 345.872283 16.9493814 345.872283 50.2309573 317.049592 66.8717453 288.226902 50.2309573 288.226902 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-26)" points="259.404212 0.308593451 288.226902 16.9493814 288.226902 50.2309573 259.404212 66.8717453 230.581522 50.2309573 230.581522 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-26)" points="201.758831 0.308593451 230.581522 16.9493814 230.581522 50.2309573 201.758831 66.8717453 172.936141 50.2309573 172.936141 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-26)" points="144.113451 0.308593451 172.936141 16.9493814 172.936141 50.2309573 144.113451 66.8717453 115.290761 50.2309573 115.290761 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-26)" points="86.4680706 0.308593451 115.290761 16.9493814 115.290761 50.2309573 86.4680706 66.8717453 57.6453804 50.2309573 57.6453804 16.9493814"></polygon>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Group-2" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" mask="url(#mask-6)">
|
||||
<g transform="translate(0.000000, 500.554053)" id="Group">
|
||||
<g transform="translate(0.000000, 0.924454)">
|
||||
<mask id="mask-28" fill="white">
|
||||
<use xlink:href="#path-27"></use>
|
||||
</mask>
|
||||
<g id="Duplicate-control"></g>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-28)" points="28.8226902 0.308593451 57.6453804 16.9493814 57.6453804 50.2309573 28.8226902 66.8717453 1.95399252e-13 50.2309573 1.76747506e-13 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-28)" points="951.148777 0.308593451 979.971467 16.9493814 979.971467 50.2309573 951.148777 66.8717453 922.326087 50.2309573 922.326087 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-28)" points="893.503397 0.308593451 922.326087 16.9493814 922.326087 50.2309573 893.503397 66.8717453 864.680706 50.2309573 864.680706 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-28)" points="835.858016 0.308593451 864.680706 16.9493814 864.680706 50.2309573 835.858016 66.8717453 807.035326 50.2309573 807.035326 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-28)" points="778.212636 0.308593451 807.035326 16.9493814 807.035326 50.2309573 778.212636 66.8717453 749.389945 50.2309573 749.389945 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-28)" points="720.567255 0.308593451 749.389945 16.9493814 749.389945 50.2309573 720.567255 66.8717453 691.744565 50.2309573 691.744565 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-28)" points="662.921875 0.308593451 691.744565 16.9493814 691.744565 50.2309573 662.921875 66.8717453 634.099185 50.2309573 634.099185 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-28)" points="605.276494 0.308593451 634.099185 16.9493814 634.099185 50.2309573 605.276494 66.8717453 576.453804 50.2309573 576.453804 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-28)" points="547.631114 0.308593451 576.453804 16.9493814 576.453804 50.2309573 547.631114 66.8717453 518.808424 50.2309573 518.808424 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-28)" points="489.985734 0.308593451 518.808424 16.9493814 518.808424 50.2309573 489.985734 66.8717453 461.163043 50.2309573 461.163043 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-28)" points="432.340353 0.308593451 461.163043 16.9493814 461.163043 50.2309573 432.340353 66.8717453 403.517663 50.2309573 403.517663 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-28)" points="374.694973 0.308593451 403.517663 16.9493814 403.517663 50.2309573 374.694973 66.8717453 345.872283 50.2309573 345.872283 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-28)" points="317.049592 0.308593451 345.872283 16.9493814 345.872283 50.2309573 317.049592 66.8717453 288.226902 50.2309573 288.226902 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-28)" points="259.404212 0.308593451 288.226902 16.9493814 288.226902 50.2309573 259.404212 66.8717453 230.581522 50.2309573 230.581522 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-28)" points="201.758831 0.308593451 230.581522 16.9493814 230.581522 50.2309573 201.758831 66.8717453 172.936141 50.2309573 172.936141 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-28)" points="144.113451 0.308593451 172.936141 16.9493814 172.936141 50.2309573 144.113451 66.8717453 115.290761 50.2309573 115.290761 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-28)" points="86.4680706 0.308593451 115.290761 16.9493814 115.290761 50.2309573 86.4680706 66.8717453 57.6453804 50.2309573 57.6453804 16.9493814"></polygon>
|
||||
</g>
|
||||
<g transform="translate(27.861934, 50.883783)">
|
||||
<mask id="mask-30" fill="white">
|
||||
<use xlink:href="#path-29"></use>
|
||||
</mask>
|
||||
<g id="Duplicate-control"></g>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-30)" points="28.8226902 0.308593451 57.6453804 16.9493814 57.6453804 50.2309573 28.8226902 66.8717453 1.95399252e-13 50.2309573 1.76747506e-13 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-30)" points="951.148777 0.308593451 979.971467 16.9493814 979.971467 50.2309573 951.148777 66.8717453 922.326087 50.2309573 922.326087 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-30)" points="893.503397 0.308593451 922.326087 16.9493814 922.326087 50.2309573 893.503397 66.8717453 864.680706 50.2309573 864.680706 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-30)" points="835.858016 0.308593451 864.680706 16.9493814 864.680706 50.2309573 835.858016 66.8717453 807.035326 50.2309573 807.035326 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-30)" points="778.212636 0.308593451 807.035326 16.9493814 807.035326 50.2309573 778.212636 66.8717453 749.389945 50.2309573 749.389945 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-30)" points="720.567255 0.308593451 749.389945 16.9493814 749.389945 50.2309573 720.567255 66.8717453 691.744565 50.2309573 691.744565 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-30)" points="662.921875 0.308593451 691.744565 16.9493814 691.744565 50.2309573 662.921875 66.8717453 634.099185 50.2309573 634.099185 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-30)" points="605.276494 0.308593451 634.099185 16.9493814 634.099185 50.2309573 605.276494 66.8717453 576.453804 50.2309573 576.453804 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-30)" points="547.631114 0.308593451 576.453804 16.9493814 576.453804 50.2309573 547.631114 66.8717453 518.808424 50.2309573 518.808424 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-30)" points="489.985734 0.308593451 518.808424 16.9493814 518.808424 50.2309573 489.985734 66.8717453 461.163043 50.2309573 461.163043 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-30)" points="432.340353 0.308593451 461.163043 16.9493814 461.163043 50.2309573 432.340353 66.8717453 403.517663 50.2309573 403.517663 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-30)" points="374.694973 0.308593451 403.517663 16.9493814 403.517663 50.2309573 374.694973 66.8717453 345.872283 50.2309573 345.872283 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-30)" points="317.049592 0.308593451 345.872283 16.9493814 345.872283 50.2309573 317.049592 66.8717453 288.226902 50.2309573 288.226902 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-30)" points="259.404212 0.308593451 288.226902 16.9493814 288.226902 50.2309573 259.404212 66.8717453 230.581522 50.2309573 230.581522 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-30)" points="201.758831 0.308593451 230.581522 16.9493814 230.581522 50.2309573 201.758831 66.8717453 172.936141 50.2309573 172.936141 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-30)" points="144.113451 0.308593451 172.936141 16.9493814 172.936141 50.2309573 144.113451 66.8717453 115.290761 50.2309573 115.290761 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-30)" points="86.4680706 0.308593451 115.290761 16.9493814 115.290761 50.2309573 86.4680706 66.8717453 57.6453804 50.2309573 57.6453804 16.9493814"></polygon>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Group-2" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" mask="url(#mask-6)">
|
||||
<g transform="translate(0.000000, 400.635394)" id="Group">
|
||||
<g transform="translate(0.000000, 0.924454)">
|
||||
<mask id="mask-32" fill="white">
|
||||
<use xlink:href="#path-31"></use>
|
||||
</mask>
|
||||
<g id="Duplicate-control"></g>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-32)" points="28.8226902 0.308593451 57.6453804 16.9493814 57.6453804 50.2309573 28.8226902 66.8717453 1.95399252e-13 50.2309573 1.76747506e-13 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-32)" points="951.148777 0.308593451 979.971467 16.9493814 979.971467 50.2309573 951.148777 66.8717453 922.326087 50.2309573 922.326087 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-32)" points="893.503397 0.308593451 922.326087 16.9493814 922.326087 50.2309573 893.503397 66.8717453 864.680706 50.2309573 864.680706 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-32)" points="835.858016 0.308593451 864.680706 16.9493814 864.680706 50.2309573 835.858016 66.8717453 807.035326 50.2309573 807.035326 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-32)" points="778.212636 0.308593451 807.035326 16.9493814 807.035326 50.2309573 778.212636 66.8717453 749.389945 50.2309573 749.389945 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-32)" points="720.567255 0.308593451 749.389945 16.9493814 749.389945 50.2309573 720.567255 66.8717453 691.744565 50.2309573 691.744565 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-32)" points="662.921875 0.308593451 691.744565 16.9493814 691.744565 50.2309573 662.921875 66.8717453 634.099185 50.2309573 634.099185 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-32)" points="605.276494 0.308593451 634.099185 16.9493814 634.099185 50.2309573 605.276494 66.8717453 576.453804 50.2309573 576.453804 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-32)" points="547.631114 0.308593451 576.453804 16.9493814 576.453804 50.2309573 547.631114 66.8717453 518.808424 50.2309573 518.808424 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-32)" points="489.985734 0.308593451 518.808424 16.9493814 518.808424 50.2309573 489.985734 66.8717453 461.163043 50.2309573 461.163043 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-32)" points="432.340353 0.308593451 461.163043 16.9493814 461.163043 50.2309573 432.340353 66.8717453 403.517663 50.2309573 403.517663 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-32)" points="374.694973 0.308593451 403.517663 16.9493814 403.517663 50.2309573 374.694973 66.8717453 345.872283 50.2309573 345.872283 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-32)" points="317.049592 0.308593451 345.872283 16.9493814 345.872283 50.2309573 317.049592 66.8717453 288.226902 50.2309573 288.226902 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-32)" points="259.404212 0.308593451 288.226902 16.9493814 288.226902 50.2309573 259.404212 66.8717453 230.581522 50.2309573 230.581522 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-32)" points="201.758831 0.308593451 230.581522 16.9493814 230.581522 50.2309573 201.758831 66.8717453 172.936141 50.2309573 172.936141 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-32)" points="144.113451 0.308593451 172.936141 16.9493814 172.936141 50.2309573 144.113451 66.8717453 115.290761 50.2309573 115.290761 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-32)" points="86.4680706 0.308593451 115.290761 16.9493814 115.290761 50.2309573 86.4680706 66.8717453 57.6453804 50.2309573 57.6453804 16.9493814"></polygon>
|
||||
</g>
|
||||
<g transform="translate(27.861934, 50.883783)">
|
||||
<mask id="mask-34" fill="white">
|
||||
<use xlink:href="#path-33"></use>
|
||||
</mask>
|
||||
<g id="Duplicate-control"></g>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-34)" points="28.8226902 0.308593451 57.6453804 16.9493814 57.6453804 50.2309573 28.8226902 66.8717453 1.95399252e-13 50.2309573 1.76747506e-13 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-34)" points="951.148777 0.308593451 979.971467 16.9493814 979.971467 50.2309573 951.148777 66.8717453 922.326087 50.2309573 922.326087 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-34)" points="893.503397 0.308593451 922.326087 16.9493814 922.326087 50.2309573 893.503397 66.8717453 864.680706 50.2309573 864.680706 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-34)" points="835.858016 0.308593451 864.680706 16.9493814 864.680706 50.2309573 835.858016 66.8717453 807.035326 50.2309573 807.035326 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-34)" points="778.212636 0.308593451 807.035326 16.9493814 807.035326 50.2309573 778.212636 66.8717453 749.389945 50.2309573 749.389945 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-34)" points="720.567255 0.308593451 749.389945 16.9493814 749.389945 50.2309573 720.567255 66.8717453 691.744565 50.2309573 691.744565 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-34)" points="662.921875 0.308593451 691.744565 16.9493814 691.744565 50.2309573 662.921875 66.8717453 634.099185 50.2309573 634.099185 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-34)" points="605.276494 0.308593451 634.099185 16.9493814 634.099185 50.2309573 605.276494 66.8717453 576.453804 50.2309573 576.453804 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-34)" points="547.631114 0.308593451 576.453804 16.9493814 576.453804 50.2309573 547.631114 66.8717453 518.808424 50.2309573 518.808424 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-34)" points="489.985734 0.308593451 518.808424 16.9493814 518.808424 50.2309573 489.985734 66.8717453 461.163043 50.2309573 461.163043 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-34)" points="432.340353 0.308593451 461.163043 16.9493814 461.163043 50.2309573 432.340353 66.8717453 403.517663 50.2309573 403.517663 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-34)" points="374.694973 0.308593451 403.517663 16.9493814 403.517663 50.2309573 374.694973 66.8717453 345.872283 50.2309573 345.872283 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-34)" points="317.049592 0.308593451 345.872283 16.9493814 345.872283 50.2309573 317.049592 66.8717453 288.226902 50.2309573 288.226902 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-34)" points="259.404212 0.308593451 288.226902 16.9493814 288.226902 50.2309573 259.404212 66.8717453 230.581522 50.2309573 230.581522 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-34)" points="201.758831 0.308593451 230.581522 16.9493814 230.581522 50.2309573 201.758831 66.8717453 172.936141 50.2309573 172.936141 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-34)" points="144.113451 0.308593451 172.936141 16.9493814 172.936141 50.2309573 144.113451 66.8717453 115.290761 50.2309573 115.290761 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-34)" points="86.4680706 0.308593451 115.290761 16.9493814 115.290761 50.2309573 86.4680706 66.8717453 57.6453804 50.2309573 57.6453804 16.9493814"></polygon>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Group-2" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" mask="url(#mask-6)">
|
||||
<g transform="translate(0.000000, 299.755978)" id="Group">
|
||||
<g transform="translate(0.000000, 0.924454)">
|
||||
<mask id="mask-36" fill="white">
|
||||
<use xlink:href="#path-35"></use>
|
||||
</mask>
|
||||
<g id="Duplicate-control"></g>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-36)" points="28.8226902 0.308593451 57.6453804 16.9493814 57.6453804 50.2309573 28.8226902 66.8717453 1.95399252e-13 50.2309573 1.76747506e-13 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-36)" points="951.148777 0.308593451 979.971467 16.9493814 979.971467 50.2309573 951.148777 66.8717453 922.326087 50.2309573 922.326087 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-36)" points="893.503397 0.308593451 922.326087 16.9493814 922.326087 50.2309573 893.503397 66.8717453 864.680706 50.2309573 864.680706 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-36)" points="835.858016 0.308593451 864.680706 16.9493814 864.680706 50.2309573 835.858016 66.8717453 807.035326 50.2309573 807.035326 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-36)" points="778.212636 0.308593451 807.035326 16.9493814 807.035326 50.2309573 778.212636 66.8717453 749.389945 50.2309573 749.389945 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-36)" points="720.567255 0.308593451 749.389945 16.9493814 749.389945 50.2309573 720.567255 66.8717453 691.744565 50.2309573 691.744565 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-36)" points="662.921875 0.308593451 691.744565 16.9493814 691.744565 50.2309573 662.921875 66.8717453 634.099185 50.2309573 634.099185 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-36)" points="605.276494 0.308593451 634.099185 16.9493814 634.099185 50.2309573 605.276494 66.8717453 576.453804 50.2309573 576.453804 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-36)" points="547.631114 0.308593451 576.453804 16.9493814 576.453804 50.2309573 547.631114 66.8717453 518.808424 50.2309573 518.808424 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-36)" points="489.985734 0.308593451 518.808424 16.9493814 518.808424 50.2309573 489.985734 66.8717453 461.163043 50.2309573 461.163043 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-36)" points="432.340353 0.308593451 461.163043 16.9493814 461.163043 50.2309573 432.340353 66.8717453 403.517663 50.2309573 403.517663 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-36)" points="374.694973 0.308593451 403.517663 16.9493814 403.517663 50.2309573 374.694973 66.8717453 345.872283 50.2309573 345.872283 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-36)" points="317.049592 0.308593451 345.872283 16.9493814 345.872283 50.2309573 317.049592 66.8717453 288.226902 50.2309573 288.226902 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-36)" points="259.404212 0.308593451 288.226902 16.9493814 288.226902 50.2309573 259.404212 66.8717453 230.581522 50.2309573 230.581522 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-36)" points="201.758831 0.308593451 230.581522 16.9493814 230.581522 50.2309573 201.758831 66.8717453 172.936141 50.2309573 172.936141 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-36)" points="144.113451 0.308593451 172.936141 16.9493814 172.936141 50.2309573 144.113451 66.8717453 115.290761 50.2309573 115.290761 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-36)" points="86.4680706 0.308593451 115.290761 16.9493814 115.290761 50.2309573 86.4680706 66.8717453 57.6453804 50.2309573 57.6453804 16.9493814"></polygon>
|
||||
</g>
|
||||
<g transform="translate(27.861934, 50.883783)">
|
||||
<mask id="mask-38" fill="white">
|
||||
<use xlink:href="#path-37"></use>
|
||||
</mask>
|
||||
<g id="Duplicate-control"></g>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-38)" points="28.8226902 0.308593451 57.6453804 16.9493814 57.6453804 50.2309573 28.8226902 66.8717453 1.95399252e-13 50.2309573 1.76747506e-13 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-38)" points="951.148777 0.308593451 979.971467 16.9493814 979.971467 50.2309573 951.148777 66.8717453 922.326087 50.2309573 922.326087 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-38)" points="893.503397 0.308593451 922.326087 16.9493814 922.326087 50.2309573 893.503397 66.8717453 864.680706 50.2309573 864.680706 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-38)" points="835.858016 0.308593451 864.680706 16.9493814 864.680706 50.2309573 835.858016 66.8717453 807.035326 50.2309573 807.035326 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-38)" points="778.212636 0.308593451 807.035326 16.9493814 807.035326 50.2309573 778.212636 66.8717453 749.389945 50.2309573 749.389945 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-38)" points="720.567255 0.308593451 749.389945 16.9493814 749.389945 50.2309573 720.567255 66.8717453 691.744565 50.2309573 691.744565 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-38)" points="662.921875 0.308593451 691.744565 16.9493814 691.744565 50.2309573 662.921875 66.8717453 634.099185 50.2309573 634.099185 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-38)" points="605.276494 0.308593451 634.099185 16.9493814 634.099185 50.2309573 605.276494 66.8717453 576.453804 50.2309573 576.453804 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-38)" points="547.631114 0.308593451 576.453804 16.9493814 576.453804 50.2309573 547.631114 66.8717453 518.808424 50.2309573 518.808424 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-38)" points="489.985734 0.308593451 518.808424 16.9493814 518.808424 50.2309573 489.985734 66.8717453 461.163043 50.2309573 461.163043 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-38)" points="432.340353 0.308593451 461.163043 16.9493814 461.163043 50.2309573 432.340353 66.8717453 403.517663 50.2309573 403.517663 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-38)" points="374.694973 0.308593451 403.517663 16.9493814 403.517663 50.2309573 374.694973 66.8717453 345.872283 50.2309573 345.872283 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-38)" points="317.049592 0.308593451 345.872283 16.9493814 345.872283 50.2309573 317.049592 66.8717453 288.226902 50.2309573 288.226902 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-38)" points="259.404212 0.308593451 288.226902 16.9493814 288.226902 50.2309573 259.404212 66.8717453 230.581522 50.2309573 230.581522 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-38)" points="201.758831 0.308593451 230.581522 16.9493814 230.581522 50.2309573 201.758831 66.8717453 172.936141 50.2309573 172.936141 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-38)" points="144.113451 0.308593451 172.936141 16.9493814 172.936141 50.2309573 144.113451 66.8717453 115.290761 50.2309573 115.290761 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-38)" points="86.4680706 0.308593451 115.290761 16.9493814 115.290761 50.2309573 86.4680706 66.8717453 57.6453804 50.2309573 57.6453804 16.9493814"></polygon>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Group-2" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" mask="url(#mask-6)">
|
||||
<g transform="translate(0.000000, 199.837319)" id="Group">
|
||||
<g transform="translate(0.000000, 0.924454)">
|
||||
<mask id="mask-40" fill="white">
|
||||
<use xlink:href="#path-39"></use>
|
||||
</mask>
|
||||
<g id="Duplicate-control"></g>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-40)" points="28.8226902 0.308593451 57.6453804 16.9493814 57.6453804 50.2309573 28.8226902 66.8717453 1.91846539e-13 50.2309573 1.73194792e-13 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-40)" points="951.148777 0.308593451 979.971467 16.9493814 979.971467 50.2309573 951.148777 66.8717453 922.326087 50.2309573 922.326087 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-40)" points="893.503397 0.308593451 922.326087 16.9493814 922.326087 50.2309573 893.503397 66.8717453 864.680706 50.2309573 864.680706 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-40)" points="835.858016 0.308593451 864.680706 16.9493814 864.680706 50.2309573 835.858016 66.8717453 807.035326 50.2309573 807.035326 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-40)" points="778.212636 0.308593451 807.035326 16.9493814 807.035326 50.2309573 778.212636 66.8717453 749.389945 50.2309573 749.389945 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-40)" points="720.567255 0.308593451 749.389945 16.9493814 749.389945 50.2309573 720.567255 66.8717453 691.744565 50.2309573 691.744565 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-40)" points="662.921875 0.308593451 691.744565 16.9493814 691.744565 50.2309573 662.921875 66.8717453 634.099185 50.2309573 634.099185 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-40)" points="605.276494 0.308593451 634.099185 16.9493814 634.099185 50.2309573 605.276494 66.8717453 576.453804 50.2309573 576.453804 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-40)" points="547.631114 0.308593451 576.453804 16.9493814 576.453804 50.2309573 547.631114 66.8717453 518.808424 50.2309573 518.808424 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-40)" points="489.985734 0.308593451 518.808424 16.9493814 518.808424 50.2309573 489.985734 66.8717453 461.163043 50.2309573 461.163043 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-40)" points="432.340353 0.308593451 461.163043 16.9493814 461.163043 50.2309573 432.340353 66.8717453 403.517663 50.2309573 403.517663 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-40)" points="374.694973 0.308593451 403.517663 16.9493814 403.517663 50.2309573 374.694973 66.8717453 345.872283 50.2309573 345.872283 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-40)" points="317.049592 0.308593451 345.872283 16.9493814 345.872283 50.2309573 317.049592 66.8717453 288.226902 50.2309573 288.226902 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-40)" points="259.404212 0.308593451 288.226902 16.9493814 288.226902 50.2309573 259.404212 66.8717453 230.581522 50.2309573 230.581522 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-40)" points="201.758831 0.308593451 230.581522 16.9493814 230.581522 50.2309573 201.758831 66.8717453 172.936141 50.2309573 172.936141 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-40)" points="144.113451 0.308593451 172.936141 16.9493814 172.936141 50.2309573 144.113451 66.8717453 115.290761 50.2309573 115.290761 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-40)" points="86.4680706 0.308593451 115.290761 16.9493814 115.290761 50.2309573 86.4680706 66.8717453 57.6453804 50.2309573 57.6453804 16.9493814"></polygon>
|
||||
</g>
|
||||
<g transform="translate(27.861934, 50.883783)">
|
||||
<mask id="mask-42" fill="white">
|
||||
<use xlink:href="#path-41"></use>
|
||||
</mask>
|
||||
<g id="Duplicate-control"></g>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-42)" points="28.8226902 0.308593451 57.6453804 16.9493814 57.6453804 50.2309573 28.8226902 66.8717453 1.95399252e-13 50.2309573 1.76747506e-13 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-42)" points="951.148777 0.308593451 979.971467 16.9493814 979.971467 50.2309573 951.148777 66.8717453 922.326087 50.2309573 922.326087 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-42)" points="893.503397 0.308593451 922.326087 16.9493814 922.326087 50.2309573 893.503397 66.8717453 864.680706 50.2309573 864.680706 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-42)" points="835.858016 0.308593451 864.680706 16.9493814 864.680706 50.2309573 835.858016 66.8717453 807.035326 50.2309573 807.035326 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-42)" points="778.212636 0.308593451 807.035326 16.9493814 807.035326 50.2309573 778.212636 66.8717453 749.389945 50.2309573 749.389945 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-42)" points="720.567255 0.308593451 749.389945 16.9493814 749.389945 50.2309573 720.567255 66.8717453 691.744565 50.2309573 691.744565 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-42)" points="662.921875 0.308593451 691.744565 16.9493814 691.744565 50.2309573 662.921875 66.8717453 634.099185 50.2309573 634.099185 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-42)" points="605.276494 0.308593451 634.099185 16.9493814 634.099185 50.2309573 605.276494 66.8717453 576.453804 50.2309573 576.453804 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-42)" points="547.631114 0.308593451 576.453804 16.9493814 576.453804 50.2309573 547.631114 66.8717453 518.808424 50.2309573 518.808424 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-42)" points="489.985734 0.308593451 518.808424 16.9493814 518.808424 50.2309573 489.985734 66.8717453 461.163043 50.2309573 461.163043 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-42)" points="432.340353 0.308593451 461.163043 16.9493814 461.163043 50.2309573 432.340353 66.8717453 403.517663 50.2309573 403.517663 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-42)" points="374.694973 0.308593451 403.517663 16.9493814 403.517663 50.2309573 374.694973 66.8717453 345.872283 50.2309573 345.872283 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-42)" points="317.049592 0.308593451 345.872283 16.9493814 345.872283 50.2309573 317.049592 66.8717453 288.226902 50.2309573 288.226902 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-42)" points="259.404212 0.308593451 288.226902 16.9493814 288.226902 50.2309573 259.404212 66.8717453 230.581522 50.2309573 230.581522 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-42)" points="201.758831 0.308593451 230.581522 16.9493814 230.581522 50.2309573 201.758831 66.8717453 172.936141 50.2309573 172.936141 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-42)" points="144.113451 0.308593451 172.936141 16.9493814 172.936141 50.2309573 144.113451 66.8717453 115.290761 50.2309573 115.290761 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-42)" points="86.4680706 0.308593451 115.290761 16.9493814 115.290761 50.2309573 86.4680706 66.8717453 57.6453804 50.2309573 57.6453804 16.9493814"></polygon>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Group-2" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" mask="url(#mask-6)">
|
||||
<g transform="translate(0.000000, 99.918659)" id="Group">
|
||||
<g transform="translate(0.000000, 0.924454)">
|
||||
<mask id="mask-44" fill="white">
|
||||
<use xlink:href="#path-43"></use>
|
||||
</mask>
|
||||
<g id="Duplicate-control"></g>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-44)" points="28.8226902 0.308593451 57.6453804 16.9493814 57.6453804 50.2309573 28.8226902 66.8717453 1.95399252e-13 50.2309573 1.76747506e-13 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-44)" points="951.148777 0.308593451 979.971467 16.9493814 979.971467 50.2309573 951.148777 66.8717453 922.326087 50.2309573 922.326087 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-44)" points="893.503397 0.308593451 922.326087 16.9493814 922.326087 50.2309573 893.503397 66.8717453 864.680706 50.2309573 864.680706 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-44)" points="835.858016 0.308593451 864.680706 16.9493814 864.680706 50.2309573 835.858016 66.8717453 807.035326 50.2309573 807.035326 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-44)" points="778.212636 0.308593451 807.035326 16.9493814 807.035326 50.2309573 778.212636 66.8717453 749.389945 50.2309573 749.389945 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-44)" points="720.567255 0.308593451 749.389945 16.9493814 749.389945 50.2309573 720.567255 66.8717453 691.744565 50.2309573 691.744565 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-44)" points="662.921875 0.308593451 691.744565 16.9493814 691.744565 50.2309573 662.921875 66.8717453 634.099185 50.2309573 634.099185 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-44)" points="605.276494 0.308593451 634.099185 16.9493814 634.099185 50.2309573 605.276494 66.8717453 576.453804 50.2309573 576.453804 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-44)" points="547.631114 0.308593451 576.453804 16.9493814 576.453804 50.2309573 547.631114 66.8717453 518.808424 50.2309573 518.808424 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-44)" points="489.985734 0.308593451 518.808424 16.9493814 518.808424 50.2309573 489.985734 66.8717453 461.163043 50.2309573 461.163043 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-44)" points="432.340353 0.308593451 461.163043 16.9493814 461.163043 50.2309573 432.340353 66.8717453 403.517663 50.2309573 403.517663 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-44)" points="374.694973 0.308593451 403.517663 16.9493814 403.517663 50.2309573 374.694973 66.8717453 345.872283 50.2309573 345.872283 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-44)" points="317.049592 0.308593451 345.872283 16.9493814 345.872283 50.2309573 317.049592 66.8717453 288.226902 50.2309573 288.226902 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-44)" points="259.404212 0.308593451 288.226902 16.9493814 288.226902 50.2309573 259.404212 66.8717453 230.581522 50.2309573 230.581522 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-44)" points="201.758831 0.308593451 230.581522 16.9493814 230.581522 50.2309573 201.758831 66.8717453 172.936141 50.2309573 172.936141 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-44)" points="144.113451 0.308593451 172.936141 16.9493814 172.936141 50.2309573 144.113451 66.8717453 115.290761 50.2309573 115.290761 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-44)" points="86.4680706 0.308593451 115.290761 16.9493814 115.290761 50.2309573 86.4680706 66.8717453 57.6453804 50.2309573 57.6453804 16.9493814"></polygon>
|
||||
</g>
|
||||
<g transform="translate(27.861934, 50.883783)">
|
||||
<mask id="mask-46" fill="white">
|
||||
<use xlink:href="#path-45"></use>
|
||||
</mask>
|
||||
<g id="Duplicate-control"></g>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-46)" points="28.8226902 0.308593451 57.6453804 16.9493814 57.6453804 50.2309573 28.8226902 66.8717453 1.95399252e-13 50.2309573 1.76747506e-13 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-46)" points="951.148777 0.308593451 979.971467 16.9493814 979.971467 50.2309573 951.148777 66.8717453 922.326087 50.2309573 922.326087 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-46)" points="893.503397 0.308593451 922.326087 16.9493814 922.326087 50.2309573 893.503397 66.8717453 864.680706 50.2309573 864.680706 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-46)" points="835.858016 0.308593451 864.680706 16.9493814 864.680706 50.2309573 835.858016 66.8717453 807.035326 50.2309573 807.035326 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-46)" points="778.212636 0.308593451 807.035326 16.9493814 807.035326 50.2309573 778.212636 66.8717453 749.389945 50.2309573 749.389945 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-46)" points="720.567255 0.308593451 749.389945 16.9493814 749.389945 50.2309573 720.567255 66.8717453 691.744565 50.2309573 691.744565 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-46)" points="662.921875 0.308593451 691.744565 16.9493814 691.744565 50.2309573 662.921875 66.8717453 634.099185 50.2309573 634.099185 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-46)" points="605.276494 0.308593451 634.099185 16.9493814 634.099185 50.2309573 605.276494 66.8717453 576.453804 50.2309573 576.453804 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-46)" points="547.631114 0.308593451 576.453804 16.9493814 576.453804 50.2309573 547.631114 66.8717453 518.808424 50.2309573 518.808424 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-46)" points="489.985734 0.308593451 518.808424 16.9493814 518.808424 50.2309573 489.985734 66.8717453 461.163043 50.2309573 461.163043 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-46)" points="432.340353 0.308593451 461.163043 16.9493814 461.163043 50.2309573 432.340353 66.8717453 403.517663 50.2309573 403.517663 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-46)" points="374.694973 0.308593451 403.517663 16.9493814 403.517663 50.2309573 374.694973 66.8717453 345.872283 50.2309573 345.872283 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-46)" points="317.049592 0.308593451 345.872283 16.9493814 345.872283 50.2309573 317.049592 66.8717453 288.226902 50.2309573 288.226902 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-46)" points="259.404212 0.308593451 288.226902 16.9493814 288.226902 50.2309573 259.404212 66.8717453 230.581522 50.2309573 230.581522 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-46)" points="201.758831 0.308593451 230.581522 16.9493814 230.581522 50.2309573 201.758831 66.8717453 172.936141 50.2309573 172.936141 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-46)" points="144.113451 0.308593451 172.936141 16.9493814 172.936141 50.2309573 144.113451 66.8717453 115.290761 50.2309573 115.290761 16.9493814"></polygon>
|
||||
<polygon id="Polygon" stroke="#999999" mask="url(#mask-46)" points="86.4680706 0.308593451 115.290761 16.9493814 115.290761 50.2309573 86.4680706 66.8717453 57.6453804 50.2309573 57.6453804 16.9493814"></polygon>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<mask id="mask-48" fill="white">
|
||||
<use xlink:href="#path-47"></use>
|
||||
</mask>
|
||||
<use id="Combined-Shape" fill="#F1F1F1" xlink:href="#path-47"></use>
|
||||
<mask id="mask-50" fill="white">
|
||||
<use xlink:href="#path-49"></use>
|
||||
</mask>
|
||||
<use id="Combined-Shape" fill="#F1F1F1" transform="translate(727.481851, 509.351425) rotate(-180.000000) translate(-727.481851, -509.351425) " xlink:href="#path-49"></use>
|
||||
<circle id="Oval-2" fill="#FFC231" cx="512.387624" cy="512.387624" r="135.118088"></circle>
|
||||
<path d="M691.584224,554.79626 L741.584224,554.79626 L741.584224,848.113106 L691.584224,848.113106 L691.584224,554.79626 Z M691.584224,668.27622 L707.760695,668.27622 L707.760695,848.113106 L691.584224,848.113106 L691.584224,668.27622 Z M725.407754,668.27622 L741.584224,668.27622 L741.584224,848.113106 L725.407754,848.113106 L725.407754,668.27622 Z" id="Combined-Shape" fill="#FFC231" transform="translate(716.584224, 701.454683) rotate(133.000000) translate(-716.584224, -701.454683) "></path>
|
||||
<path d="M288.802242,169.956176 L338.802242,169.956176 L338.802242,463.273022 L288.802242,463.273022 L288.802242,169.956176 Z M288.802242,283.436136 L304.978713,283.436136 L304.978713,463.273022 L288.802242,463.273022 L288.802242,283.436136 Z M322.625772,283.436136 L338.802242,283.436136 L338.802242,463.273022 L322.625772,463.273022 L322.625772,283.436136 Z" id="Combined-Shape" fill="#FFC231" transform="translate(313.802242, 316.614599) scale(-1, -1) rotate(133.000000) translate(-313.802242, -316.614599) "></path>
|
||||
<path d="M816.093378,100.047294 C731.060203,37.1735645 625.871277,0 512,0 C398.30327,0 293.262295,37.0596891 208.297793,99.7583476 L404.58707,301.155391 C436.776006,284.750117 473.221118,275.499672 511.826788,275.499672 C550.704585,275.499672 587.391258,284.880988 619.746562,301.503373 L816.093378,100.047294 Z" id="Combined-Shape" fill="#F1F1F1"></path>
|
||||
<path d="M816.093378,823.047294 C731.060203,760.173564 625.871277,723 512,723 C398.30327,723 293.262295,760.059689 208.297793,822.758348 L404.58707,1024.15539 C436.776006,1007.75012 473.221118,998.499672 511.826788,998.499672 C550.704585,998.499672 587.391258,1007.88099 619.746562,1024.50337 L816.093378,823.047294 Z" id="Combined-Shape" fill="#F1F1F1" transform="translate(512.195585, 873.751687) scale(1, -1) translate(-512.195585, -873.751687) "></path>
|
||||
<use id="Grid-Mask" stroke="#FFC231" mask="url(#mask-52)" stroke-width="40" xlink:href="#path-51"></use>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 98 KiB |
240
Logo/Sonarr.svg
@@ -1,240 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="218px"
|
||||
height="218px" viewBox="0 0 218 218" enable-background="new 0 0 218 218" xml:space="preserve">
|
||||
<symbol id="hex_grid" viewBox="-114.25 -98.617 228.55 197.233">
|
||||
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="none" stroke="#989898" stroke-width="0.5" stroke-linecap="square" stroke-miterlimit="1" d="
|
||||
M72.15,90.3l4.7-2.7l4.65,2.7v5.4l-4.65,2.7l-4.7-2.7V90.3z M62.85,95.7l-4.65,2.7l-4.65-2.7v-5.4l4.65-2.7l4.65,2.7V95.7l4.65,2.7
|
||||
l4.65-2.7 M62.85,90.3l4.65-2.7l4.65,2.7 M62.85,79.55v-5.4l4.65-2.7l4.65,2.7v5.4L67.5,82.2L62.85,79.55L58.2,82.2l-4.65-2.65
|
||||
M72.15,74.15l4.7-2.7l4.65,2.7v5.4l-4.65,2.65l-4.7-2.65 M76.85,87.6v-5.4 M67.5,87.6v-5.4 M81.5,95.7l4.65,2.7l4.65-2.7l4.65,2.7
|
||||
l4.65-2.7l4.65,2.7l4.65-2.7v-5.4l4.65-2.7v-5.4l-4.65-2.65v-5.4l4.65-2.7v-5.4l-4.65-2.7v-5.4l4.65-2.7v-5.4l-4.65-2.65v-5.4
|
||||
l4.65-2.7v-5.4L109.4,31v-5.4l4.65-2.7v-5.4l-4.65-2.65v-5.4l4.65-2.7v-5.4l-4.65-2.7v-5.4l4.65-2.7v-5.4l-4.65-2.65v-5.4l4.65-2.7
|
||||
V-31l-4.65-2.7v-5.4l4.65-2.7v-5.4l-4.65-2.65v-5.4l4.65-2.7v-5.4l-4.65-2.7v-5.4l4.65-2.7v-5.4l-4.65-2.65v-5.4l4.65-2.7v-5.4
|
||||
l-4.65-2.7l-4.65,2.7l-4.65-2.7l-4.65,2.7l-4.65-2.7l-4.65,2.7l-4.65-2.7l-4.65,2.7l-4.7-2.7l-4.65,2.7l-4.65-2.7l-4.65,2.7
|
||||
l-4.65-2.7l-4.65,2.7l-4.65-2.7l-4.65,2.7l-4.65-2.7l-4.65,2.7l-4.7-2.7l-4.65,2.7l-4.65-2.7l-4.65,2.7L7-98.4l-4.65,2.7l-4.65-2.7
|
||||
l-4.65,2.7l-4.65-2.7l-4.65,2.7l-4.65-2.7l-4.65,2.7l-4.65-2.7l-4.65,2.7l-4.7-2.7l-4.65,2.7l-4.65-2.7l-4.65,2.7l-4.65-2.7
|
||||
l-4.65,2.7l-4.65-2.7l-4.65,2.7l-4.65-2.7l-4.65,2.7l-4.7-2.7l-4.65,2.7l-4.65-2.7l-4.65,2.7l-4.65-2.7l-4.65,2.7v5.4l-4.65,2.7
|
||||
v5.4l4.65,2.65v5.4l-4.65,2.7v5.4l4.65,2.7v5.4l-4.65,2.7v5.4l4.65,2.65v5.4l-4.65,2.7v5.4l4.65,2.7v5.4l-4.65,2.7v5.4l4.65,2.65
|
||||
v5.4l-4.65,2.7v5.4l4.65,2.7v5.4l-4.65,2.7v5.4l4.65,2.65v5.4l-4.65,2.7V31l4.65,2.7v5.4l-4.65,2.7v5.4l4.65,2.65v5.4l-4.65,2.7
|
||||
v5.4l4.65,2.7v5.4l-4.65,2.7v5.4l4.65,2.65v5.4l-4.65,2.7v5.4l4.65,2.7l4.65-2.7l4.65,2.7l4.65-2.7l4.65,2.7l4.65-2.7l4.7,2.7
|
||||
l4.65-2.7l4.65,2.7l4.65-2.7l4.65,2.7l4.65-2.7l4.65,2.7l4.65-2.7l4.65,2.7l4.65-2.7l4.7,2.7l4.65-2.7l4.65,2.7l4.65-2.7l4.65,2.7
|
||||
l4.65-2.7l4.65,2.7l4.65-2.7l4.65,2.7L7,95.7l4.65,2.7l4.65-2.7l4.65,2.7l4.65-2.7l4.7,2.7l4.65-2.7l4.65,2.7l4.65-2.7l4.65,2.7
|
||||
l4.65-2.7 M44.25,95.7v-5.4l4.65-2.7l4.65,2.7 M44.25,79.55v-5.4l4.65-2.7l4.65,2.7v5.4L48.9,82.2L44.25,79.55L39.6,82.2
|
||||
l-4.65-2.65 M58.2,87.6v-5.4 M48.9,87.6v-5.4 M53.55,63.35v-5.4l4.65-2.7l4.65,2.7v5.4l-4.65,2.7L53.55,63.35l-4.65,2.7l-4.65-2.7
|
||||
v-5.4l4.65-2.7l4.65,2.7 M62.85,74.15l-4.65-2.7v-5.4 M53.55,74.15l4.65-2.7 M48.9,71.45v-5.4 M48.9,55.25v-5.4l4.65-2.65
|
||||
l4.65,2.65v5.4 M67.5,71.45v-5.4l4.65-2.7l4.7,2.7v5.4 M67.5,66.05l-4.65-2.7 M58.2,49.85l4.65-2.65l4.65,2.65v5.4l-4.65,2.7
|
||||
M72.15,63.35v-5.4l4.7-2.7l4.65,2.7v5.4l-4.65,2.7 M76.85,55.25v-5.4l4.65-2.65l4.65,2.65v5.4l-4.65,2.7 M67.5,55.25l4.65,2.7
|
||||
M34.95,95.7v-5.4l4.65-2.7l4.65,2.7 M16.3,95.7v-5.4l4.65-2.7l4.65,2.7v5.4 M25.6,90.3l4.7-2.7l4.65,2.7 M25.6,79.55v-5.4l4.7-2.7
|
||||
l4.65,2.7v5.4L30.3,82.2L25.6,79.55l-4.65,2.65l-4.65-2.65v-5.4l4.65-2.7l4.65,2.7 M20.95,87.6v-5.4 M39.6,87.6v-5.4 M30.3,87.6
|
||||
v-5.4 M7,95.7v-5.4l4.65-2.7l4.65,2.7 M-2.3,95.7v-5.4l4.65-2.7L7,90.3 M2.35,82.2l-4.65-2.65v-5.4l4.65-2.7L7,74.15v5.4L2.35,82.2
|
||||
z M16.3,79.55l-4.65,2.65L7,79.55 M2.35,87.6v-5.4 M11.65,87.6v-5.4 M16.3,74.15l-4.65-2.7v-5.4l4.65-2.7l4.65,2.7v5.4 M2.35,71.45
|
||||
v-5.4L7,63.35l4.65,2.7 M2.35,49.85L7,47.2l4.65,2.65v5.4L7,57.95l-4.65-2.7V49.85L-2.3,47.2v-5.4l4.65-2.7L7,41.8v5.4
|
||||
M11.65,55.25l4.65,2.7v5.4 M7,74.15l4.65-2.7 M7,57.95v5.4 M30.3,71.45v-5.4l4.65-2.7l4.65,2.7v5.4l-4.65,2.7 M16.3,57.95
|
||||
l4.65-2.7l4.65,2.7v5.4l-4.65,2.7 M30.3,66.05l-4.7-2.7 M30.3,49.85l4.65-2.65l4.65,2.65v5.4l-4.65,2.7l-4.65-2.7V49.85l-4.7-2.65
|
||||
v-5.4l-4.65-2.7v-5.4L25.6,31l4.7,2.7v5.4l-4.7,2.7 M11.65,49.85l4.65-2.65l4.65,2.65v5.4 M25.6,57.95l4.7-2.7 M34.95,57.95v5.4
|
||||
M34.95,47.2v-5.4l4.65-2.7l4.65,2.7v5.4l-4.65,2.65 M25.6,31v-5.4l4.7-2.7l4.65,2.7V31l-4.65,2.7 M34.95,25.6l4.65-2.7l4.65,2.7
|
||||
V31l-4.65,2.7L34.95,31 M30.3,39.1l4.65,2.7 M39.6,39.1v-5.4 M20.95,39.1l-4.65,2.7l-4.65-2.7v-5.4L16.3,31l4.65,2.7 M16.3,41.8
|
||||
v5.4 M2.35,33.7L-2.3,31v-5.4l4.65-2.7L7,25.6V31L2.35,33.7z M7,25.6l4.65-2.7l4.65,2.7V31 M2.35,39.1v-5.4 M11.65,33.7L7,31
|
||||
M7,41.8l4.65-2.7 M11.65,17.5L7,14.85v-5.4l4.65-2.7l4.65,2.7v5.4L11.65,17.5z M11.65,22.9v-5.4 M2.35,22.9v-5.4L7,14.85 M7,9.45
|
||||
l-4.65-2.7v-5.4L7-1.35l4.65,2.7v5.4 M34.95,14.85v-5.4l4.65-2.7l4.65,2.7v5.4L39.6,17.5L34.95,14.85z M39.6,22.9v-5.4 M25.6,25.6
|
||||
l-4.65-2.7v-5.4l4.65-2.65l4.7,2.65v5.4 M16.3,9.45l4.65-2.7l4.65,2.7v5.4 M34.95,9.45l-4.65-2.7v-5.4l4.65-2.7l4.65,2.7v5.4
|
||||
M11.65,1.35l4.65-2.7l4.65,2.7v5.4 M25.6,9.45l4.7-2.7 M30.3,17.5l4.65-2.65 M16.3,25.6l4.65-2.7 M20.95,17.5l-4.65-2.65
|
||||
M76.85,49.85l-4.7-2.65v-5.4l4.7-2.7l4.65,2.7v5.4 M62.85,47.2v-5.4l4.65-2.7l4.65,2.7 M62.85,25.6l4.65-2.7l4.65,2.7V31
|
||||
l-4.65,2.7L62.85,31V25.6l-4.65-2.7v-5.4 M72.15,25.6l4.7-2.7l4.65,2.7V31l-4.65,2.7l-4.7-2.7 M76.85,39.1v-5.4 M67.5,39.1v-5.4
|
||||
M53.55,47.2v-5.4l4.65-2.7l4.65,2.7 M44.25,41.8l4.65-2.7l4.65,2.7 M44.25,25.6l4.65-2.7l4.65,2.7V31l-4.65,2.7L44.25,31
|
||||
M62.85,31l-4.65,2.7L53.55,31 M58.2,39.1v-5.4 M48.9,39.1v-5.4 M53.55,14.85v-5.4l4.65-2.7l4.65,2.7v5.4L58.2,17.5L53.55,14.85
|
||||
L48.9,17.5l-4.65-2.65 M48.9,22.9v-5.4 M53.55,9.45l-4.65-2.7v-5.4l4.65-2.7l4.65,2.7v5.4 M44.25,9.45l4.65-2.7 M76.85,22.9v-5.4
|
||||
l4.65-2.65l4.65,2.65v5.4l-4.65,2.7 M76.85,17.5l-4.7-2.65v-5.4l4.7-2.7l4.65,2.7v5.4 M67.5,22.9v-5.4l4.65-2.65 M67.5,17.5
|
||||
l-4.65-2.65 M72.15,9.45l-4.65-2.7v-5.4l4.65-2.7l4.7,2.7v5.4 M62.85,9.45l4.65-2.7 M53.55,25.6l4.65-2.7 M44.25,63.35l-4.65,2.7
|
||||
M39.6,55.25l4.65,2.7 M39.6,71.45l4.65,2.7 M67.5,49.85l4.65-2.65 M48.9,49.85l-4.65-2.65 M25.6,47.2l-4.65,2.65 M104.75,87.6
|
||||
l-4.65,2.7l-4.65-2.7v-5.4l4.65-2.65l4.65,2.65V87.6l4.65,2.7 M109.4,79.55l-4.65,2.65 M100.1,95.7v-5.4 M81.5,90.3l4.65-2.7
|
||||
l4.65,2.7v5.4 M81.5,74.15l4.65-2.7l4.65,2.7v5.4l-4.65,2.65l-4.65-2.65 M90.8,79.55l4.65,2.65 M86.15,87.6v-5.4 M90.8,90.3
|
||||
l4.65-2.7 M95.45,71.45v-5.4l4.65-2.7l4.65,2.7v5.4l-4.65,2.7L95.45,71.45l-4.65,2.7 M86.15,55.25l4.65,2.7v5.4l-4.65,2.7
|
||||
l-4.65-2.7 M86.15,71.45v-5.4 M95.45,55.25v-5.4l4.65-2.65l4.65,2.65v5.4l-4.65,2.7L95.45,55.25l-4.65,2.7 M100.1,63.35v-5.4
|
||||
M90.8,63.35l4.65,2.7 M109.4,63.35l-4.65,2.7 M104.75,71.45l4.65,2.7 M104.75,55.25l4.65,2.7 M100.1,79.55v-5.4 M100.1,47.2v-5.4
|
||||
l4.65-2.7l4.65,2.7 M100.1,41.8l-4.65-2.7v-5.4l4.65-2.7l4.65,2.7v5.4 M109.4,31l-4.65,2.7 M81.5,41.8l4.65-2.7l4.65,2.7v5.4
|
||||
l-4.65,2.65 M86.15,22.9l4.65,2.7V31l-4.65,2.7L81.5,31 M100.1,31v-5.4l4.65-2.7l4.65,2.7 M90.8,31l4.65,2.7 M86.15,39.1v-5.4
|
||||
M90.8,41.8l4.65-2.7 M86.15,17.5l4.65-2.65l4.65,2.65v5.4l-4.65,2.7 M90.8,14.85v-5.4l4.65-2.7l4.65,2.7v5.4l-4.65,2.65
|
||||
M81.5,9.45l4.65-2.7l4.65,2.7 M86.15,6.75v-5.4l4.65-2.7l4.65,2.7v5.4 M100.1,14.85l4.65,2.65v5.4 M109.4,14.85l-4.65,2.65
|
||||
M100.1,9.45l4.65-2.7l4.65,2.7 M95.45,1.35l4.65-2.7l4.65,2.7v5.4 M95.45,22.9l4.65,2.7 M109.4,47.2l-4.65,2.65 M90.8,47.2
|
||||
l4.65,2.65 M104.75-9.45l-4.65,2.7l-4.65-2.7v-5.4l4.65-2.65l4.65,2.65V-9.45l4.65,2.7 M109.4-17.5l-4.65,2.65 M100.1-1.35v-5.4
|
||||
M90.8-1.35v-5.4l4.65-2.7 M81.5-6.75l-4.65-2.7v-5.4l4.65-2.65l4.65,2.65v5.4L81.5-6.75v5.4l-4.65,2.7 M90.8-6.75l-4.65-2.7
|
||||
M95.45-14.85L90.8-17.5v-5.4l4.65-2.7l4.65,2.7v5.4 M76.85-14.85l-4.7-2.65v-5.4l4.7-2.7l4.65,2.7v5.4 M86.15-14.85l4.65-2.65
|
||||
M95.45-31l-4.65-2.7v-5.4l4.65-2.7l4.65,2.7v5.4L95.45-31z M95.45-25.6V-31 M90.8-22.9l-4.65-2.7V-31l4.65-2.7 M86.15-31
|
||||
l-4.65-2.7v-5.4l4.65-2.7l4.65,2.7 M86.15-41.8v-5.4l4.65-2.65l4.65,2.65v5.4 M100.1-33.7l4.65,2.7v5.4l-4.65,2.7 M109.4-33.7
|
||||
l-4.65,2.7 M95.45-47.2l4.65-2.65l4.65,2.65v5.4l-4.65,2.7 M104.75-41.8l4.65,2.7 M81.5-22.9l4.65-2.7 M104.75-25.6l4.65,2.7
|
||||
M100.1-49.85v-5.4l4.65-2.7l4.65,2.7 M109.4-66.05l-4.65,2.7l-4.65-2.7v-5.4l4.65-2.7l4.65,2.7 M104.75-63.35v5.4 M100.1-55.25
|
||||
l-4.65-2.7v-5.4l4.65-2.7 M86.15-47.2l-4.65-2.65v-5.4l4.65-2.7l4.65,2.7v5.4 M86.15-74.15l4.65,2.7v5.4l-4.65,2.7l-4.65-2.7v-5.4
|
||||
L86.15-74.15v-5.4l4.65-2.65l4.65,2.65 M90.8-71.45l4.65-2.7l4.65,2.7 M95.45-63.35l-4.65-2.7 M90.8-55.25l4.65-2.7 M86.15-57.95
|
||||
v-5.4 M95.45-74.15v-5.4l4.65-2.65l4.65,2.65v5.4 M81.5-71.45l-4.65-2.7v-5.4l4.65-2.65l4.65,2.65 M81.5-82.2v-5.4l4.65-2.7
|
||||
l4.65,2.7v5.4 M86.15-90.3v-5.4 M104.75-95.7v5.4l-4.65,2.7l-4.65-2.7v-5.4 M100.1-82.2v-5.4 M95.45-90.3l-4.65,2.7 M109.4-82.2
|
||||
l-4.65,2.65 M104.75-90.3l4.65,2.7 M109.4-49.85l-4.65,2.65 M72.15-1.35v-5.4l4.7-2.7 M67.5,1.35l-4.65-2.7v-5.4l4.65-2.7l4.65,2.7
|
||||
M72.15-17.5l-4.65,2.65l-4.65-2.65v-5.4l4.65-2.7l4.65,2.7 M67.5-14.85v5.4 M53.55-1.35v-5.4l4.65-2.7l4.65,2.7 M48.9,1.35
|
||||
l-4.65-2.7v-5.4l4.65-2.7l4.65,2.7 M44.25-22.9l4.65-2.7l4.65,2.7v5.4l-4.65,2.65l-4.65-2.65V-22.9l-4.65-2.7V-31 M53.55-17.5
|
||||
l4.65,2.65v5.4 M48.9-9.45v-5.4 M53.55-33.7v-5.4l4.65-2.7l4.65,2.7v5.4L58.2-31L53.55-33.7z M62.85-22.9l-4.65-2.7V-31 M48.9-25.6
|
||||
V-31l4.65-2.7 M48.9-31l-4.65-2.7v-5.4l4.65-2.7l4.65,2.7 M48.9-41.8v-5.4l4.65-2.65l4.65,2.65v5.4 M76.85-25.6V-31l4.65-2.7
|
||||
M76.85-31l-4.7-2.7v-5.4l4.7-2.7l4.65,2.7 M62.85-33.7L67.5-31v5.4 M72.15-39.1l-4.65-2.7v-5.4l4.65-2.65l4.7,2.65v5.4
|
||||
M62.85-39.1l4.65-2.7 M72.15-33.7L67.5-31 M53.55-22.9l4.65-2.7 M58.2-14.85l4.65-2.65 M30.3,1.35l-4.7-2.7v-5.4l4.7-2.7l4.65,2.7
|
||||
v5.4 M30.3-9.45v-5.4l4.65-2.65l4.65,2.65v5.4l-4.65,2.7 M16.3-1.35v-5.4l4.65-2.7l4.65,2.7 M30.3-14.85l-4.7-2.65v-5.4l4.7-2.7
|
||||
l4.65,2.7v5.4 M25.6-17.5l-4.65,2.65L16.3-17.5v-5.4l4.65-2.7l4.65,2.7 M20.95-14.85v5.4 M16.3-6.75l-4.65-2.7v-5.4l4.65-2.65
|
||||
M2.35,1.35l-4.65-2.7v-5.4l4.65-2.7L7-6.75v5.4 M7-17.5l-4.65,2.65L-2.3-17.5v-5.4l4.65-2.7L7-22.9V-17.5l4.65,2.65 M11.65-9.45
|
||||
L7-6.75 M2.35-9.45v-5.4 M11.65-31L7-33.7v-5.4l4.65-2.7l4.65,2.7v5.4L11.65-31z M16.3-22.9l-4.65-2.7V-31 M2.35-25.6V-31L7-33.7
|
||||
M7-39.1l-4.65-2.7v-5.4L7-49.85l4.65,2.65v5.4 M44.25-33.7L39.6-31l-4.65-2.7v-5.4l4.65-2.7l4.65,2.7 M20.95-25.6V-31l4.65-2.7
|
||||
l4.7,2.7v5.4 M20.95-47.2l4.65-2.65l4.7,2.65v5.4l-4.7,2.7l-4.65-2.7V-47.2l-4.65-2.65v-5.4l4.65-2.7l4.65,2.7 M30.3-47.2
|
||||
l4.65-2.65l4.65,2.65v5.4 M30.3-41.8l4.65,2.7 M25.6-33.7v-5.4 M34.95-33.7L30.3-31 M34.95-22.9l4.65-2.7 M20.95-31l-4.65-2.7
|
||||
M16.3-39.1l4.65-2.7 M7-22.9l4.65-2.7 M34.95-55.25l-4.65-2.7v-5.4l4.65-2.7l4.65,2.7v5.4L34.95-55.25v5.4 M25.6-49.85v-5.4
|
||||
l4.7-2.7 M30.3-63.35l-4.7-2.7v-5.4l4.7-2.7l4.65,2.7v5.4 M25.6-66.05l-4.65,2.7l-4.65-2.7v-5.4l4.65-2.7l4.65,2.7 M30.3-74.15
|
||||
v-5.4l4.65-2.65l4.65,2.65v5.4l-4.65,2.7 M20.95-63.35v5.4 M7-49.85v-5.4l4.65-2.7l4.65,2.7 M2.35-47.2l-4.65-2.65v-5.4l4.65-2.7
|
||||
L7-55.25 M2.35-63.35l-4.65-2.7v-5.4l4.65-2.7L7-71.45v5.4L2.35-63.35z M16.3-71.45l-4.65-2.7v-5.4l4.65-2.65l4.65,2.65v5.4
|
||||
M11.65-57.95v-5.4l4.65-2.7 M2.35-57.95v-5.4 M7-66.05l4.65,2.7 M11.65-74.15L7-71.45 M2.35-74.15v-5.4L7-82.2l4.65,2.65
|
||||
M11.65-95.7v5.4L7-87.6l-4.65-2.7v-5.4 M20.95-95.7v5.4l-4.65,2.7l-4.65-2.7 M7-87.6v5.4 M16.3-87.6v5.4 M20.95-90.3l4.65,2.7v5.4
|
||||
l-4.65,2.65 M30.3-79.55l-4.7-2.65 M30.3-95.7v5.4l-4.7,2.7 M48.9-95.7v5.4l-4.65,2.7l-4.65-2.7v-5.4 M34.95-82.2v-5.4l4.65-2.7
|
||||
M30.3-90.3l4.65,2.7 M72.15-49.85v-5.4l4.7-2.7l4.65,2.7 M67.5-47.2l-4.65-2.65v-5.4l4.65-2.7l4.65,2.7 M67.5-74.15l4.65,2.7v5.4
|
||||
l-4.65,2.7l-4.65-2.7v-5.4L67.5-74.15v-5.4l4.65-2.65l4.7,2.65 M81.5-66.05l-4.65,2.7l-4.7-2.7 M72.15-71.45l4.7-2.7 M76.85-63.35
|
||||
v5.4 M67.5-57.95v-5.4 M53.55-49.85v-5.4l4.65-2.7l4.65,2.7 M48.9-47.2l-4.65-2.65v-5.4l4.65-2.7l4.65,2.7 M44.25-66.05v-5.4
|
||||
l4.65-2.7l4.65,2.7v5.4l-4.65,2.7L44.25-66.05l-4.65,2.7 M62.85-66.05l-4.65,2.7l-4.65-2.7 M53.55-71.45l4.65-2.7l4.65,2.7
|
||||
M58.2-57.95v-5.4 M48.9-57.95v-5.4 M48.9-74.15v-5.4l4.65-2.65l4.65,2.65v5.4 M48.9-79.55l-4.65-2.65v-5.4 M58.2-95.7v5.4
|
||||
l-4.65,2.7l-4.65-2.7 M53.55-87.6v5.4 M58.2-79.55l4.65-2.65l4.65,2.65 M62.85-82.2v-5.4l4.65-2.7l4.65,2.7v5.4 M67.5-90.3v-5.4
|
||||
M76.85-95.7v5.4l-4.7,2.7 M58.2-90.3l4.65,2.7 M44.25-17.5l-4.65,2.65 M39.6-9.45l4.65,2.7 M39.6-74.15l4.65,2.7 M39.6-57.95
|
||||
l4.65,2.7 M44.25-49.85L39.6-47.2 M62.85-49.85L58.2-47.2 M16.3-49.85l-4.65,2.65 M44.25-82.2l-4.65,2.65 M76.85-90.3l4.65,2.7
|
||||
M81.5-49.85l-4.65,2.65 M86.15,1.35l-4.65-2.7 M44.25-1.35l-4.65,2.7 M62.85-1.35l-4.65,2.7 M109.4-1.35l-4.65,2.7 M25.6-1.35
|
||||
l-4.65,2.7 M-95.4,95.7v-5.4l4.65-2.7l4.65,2.7v5.4 M-86.1,90.3l4.7-2.7l4.65,2.7v5.4 M-104.7,95.7v-5.4l4.65-2.7l4.65,2.7
|
||||
M-100.05,82.2l-4.65-2.65v-5.4l4.65-2.7l4.65,2.7v5.4L-100.05,82.2z M-95.4,74.15l4.65-2.7l4.65,2.7v5.4l-4.65,2.65l-4.65-2.65
|
||||
M-86.1,74.15l4.7-2.7l4.65,2.7v5.4l-4.65,2.65l-4.7-2.65 M-100.05,87.6v-5.4 M-90.75,87.6v-5.4 M-81.4,87.6v-5.4 M-109.35,87.6
|
||||
l4.65,2.7 M-104.7,79.55l-4.65,2.65 M-109.35,55.25l4.65,2.7v5.4l-4.65,2.7 M-109.35,71.45l4.65,2.7 M-90.75,66.05l-4.65-2.7v-5.4
|
||||
l4.65-2.7l4.65,2.7v5.4L-90.75,66.05v5.4 M-86.1,57.95l4.7-2.7l4.65,2.7v5.4l-4.65,2.7l-4.7-2.7 M-81.4,71.45v-5.4 M-100.05,71.45
|
||||
v-5.4l4.65-2.7 M-95.4,57.95l-4.65-2.7v-5.4l4.65-2.65l4.65,2.65v5.4 M-81.4,55.25v-5.4l4.65-2.65l4.65,2.65v5.4l-4.65,2.7
|
||||
M-100.05,66.05l-4.65-2.7 M-104.7,57.95l4.65-2.7 M-86.1,41.8l-4.65-2.7v-5.4l4.65-2.7l4.7,2.7v5.4L-86.1,41.8z M-81.4,49.85
|
||||
l-4.7-2.65v-5.4 M-100.05,49.85l-4.65-2.65v-5.4l4.65-2.7l4.65,2.7v5.4 M-95.4,31l-4.65,2.7l-4.65-2.7v-5.4l4.65-2.7l4.65,2.7V31
|
||||
l4.65,2.7 M-86.1,31v-5.4l4.7-2.7l4.65,2.7V31l-4.65,2.7 M-100.05,39.1v-5.4 M-90.75,39.1l-4.65,2.7 M-109.35,39.1l4.65,2.7
|
||||
M-104.7,31l-4.65,2.7 M-109.35,6.75l4.65,2.7v5.4l-4.65,2.65 M-86.1,14.85v-5.4l4.7-2.7l4.65,2.7v5.4l-4.65,2.65L-86.1,14.85z
|
||||
M-81.4,22.9v-5.4 M-86.1,25.6l-4.65-2.7v-5.4l4.65-2.65 M-100.05,22.9v-5.4l4.65-2.65l4.65,2.65 M-100.05,6.75v-5.4l4.65-2.7
|
||||
l4.65,2.7v5.4l-4.65,2.7L-100.05,6.75z M-81.4,6.75v-5.4l4.65-2.7l4.65,2.7v5.4l-4.65,2.7 M-90.75,6.75l4.65,2.7 M-95.4,14.85v-5.4
|
||||
M-95.4,25.6l4.65-2.7 M-100.05,17.5l-4.65-2.65 M-104.7,9.45l4.65-2.7 M-109.35,22.9l4.65,2.7 M-86.1,47.2l-4.65,2.65
|
||||
M-104.7,47.2l-4.65,2.65 M-11.6,95.7v-5.4l4.65-2.7l4.65,2.7 M-20.9,95.7v-5.4l4.65-2.7l4.65,2.7 M-16.25,82.2l-4.65-2.65v-5.4
|
||||
l4.65-2.7l4.65,2.7v5.4L-16.25,82.2v5.4 M-2.3,79.55l-4.65,2.65l-4.65-2.65 M-6.95,82.2v5.4 M-30.2,95.7v-5.4l4.65-2.7l4.65,2.7
|
||||
M-39.55,95.7v-5.4l4.7-2.7l4.65,2.7 M-39.55,79.55v-5.4l4.7-2.7l4.65,2.7v5.4l-4.65,2.65L-39.55,79.55l-4.65,2.65l-4.65-2.65
|
||||
M-20.9,79.55l-4.65,2.65l-4.65-2.65 M-34.85,87.6v-5.4 M-25.55,87.6v-5.4 M-20.9,74.15l-4.65-2.7v-5.4l4.65-2.7l4.65,2.7v5.4
|
||||
M-30.2,74.15l4.65-2.7 M-25.55,66.05l-4.65-2.7v-5.4l4.65-2.7l4.65,2.7v5.4 M-39.55,74.15l-4.65-2.7v-5.4l4.65-2.7l4.7,2.7v5.4
|
||||
M-30.2,57.95l-4.65-2.7v-5.4l4.65-2.65l4.65,2.65v5.4 M-39.55,63.35v-5.4l4.7-2.7 M-30.2,63.35l-4.65,2.7 M-11.6,74.15l4.65-2.7
|
||||
l4.65,2.7 M-6.95,66.05l-4.65-2.7v-5.4l4.65-2.7l4.65,2.7v5.4L-6.95,66.05v5.4 M-16.25,66.05l4.65-2.7 M-11.6,57.95l-4.65-2.7v-5.4
|
||||
l4.65-2.65l4.65,2.65v5.4 M-16.25,55.25l-4.65,2.7 M-48.85,95.7v-5.4l4.65-2.7l4.65,2.7 M-58.15,95.7v-5.4l4.65-2.7l4.65,2.7
|
||||
M-58.15,79.55v-5.4l4.65-2.7l4.65,2.7v5.4l-4.65,2.65L-58.15,79.55l-4.65,2.65l-4.65-2.65 M-44.2,87.6v-5.4 M-53.5,87.6v-5.4
|
||||
M-67.45,95.7v-5.4l4.65-2.7l4.65,2.7 M-76.75,90.3l4.65-2.7l4.65,2.7 M-76.75,74.15l4.65-2.7l4.65,2.7v5.4l-4.65,2.65l-4.65-2.65
|
||||
M-62.8,87.6v-5.4 M-72.1,87.6v-5.4 M-67.45,74.15l4.65-2.7l4.65,2.7 M-62.8,71.45v-5.4l4.65-2.7l4.65,2.7v5.4 M-62.8,66.05
|
||||
l-4.65-2.7v-5.4l4.65-2.7l4.65,2.7v5.4 M-76.75,63.35l4.65,2.7v5.4 M-62.8,55.25v-5.4l4.65-2.65l4.65,2.65v5.4l-4.65,2.7
|
||||
M-67.45,63.35l-4.65,2.7 M-72.1,55.25l4.65,2.7 M-48.85,74.15l4.65-2.7 M-44.2,66.05l-4.65-2.7v-5.4l4.65-2.7l4.65,2.7
|
||||
M-53.5,49.85l4.65-2.65l4.65,2.65v5.4 M-53.5,66.05l4.65-2.7 M-53.5,55.25l4.65,2.7 M-48.85,47.2v-5.4l4.65-2.7l4.65,2.7v5.4
|
||||
l-4.65,2.65 M-58.15,47.2v-5.4l4.65-2.7l4.65,2.7 M-58.15,25.6l4.65-2.7l4.65,2.7V31l-4.65,2.7l-4.65-2.7V25.6l-4.65-2.7v-5.4
|
||||
M-48.85,25.6l4.65-2.7l4.65,2.7V31l-4.65,2.7l-4.65-2.7 M-44.2,39.1v-5.4 M-53.5,39.1v-5.4 M-62.8,49.85l-4.65-2.65v-5.4l4.65-2.7
|
||||
l4.65,2.7 M-76.75,47.2v-5.4l4.65-2.7l4.65,2.7 M-76.75,25.6l4.65-2.7l4.65,2.7V31l-4.65,2.7l-4.65-2.7 M-58.15,31l-4.65,2.7
|
||||
l-4.65-2.7 M-72.1,39.1v-5.4 M-62.8,39.1v-5.4 M-67.45,14.85v-5.4l4.65-2.7l4.65,2.7v5.4l-4.65,2.65L-67.45,14.85l-4.65,2.65
|
||||
l-4.65-2.65 M-72.1,22.9v-5.4 M-62.8,6.75v-5.4l4.65-2.7l4.65,2.7v5.4l-4.65,2.7 M-72.1,6.75l4.65,2.7 M-44.2,22.9v-5.4l4.65-2.65
|
||||
l4.7,2.65v5.4l-4.7,2.7 M-44.2,17.5l-4.65-2.65v-5.4l4.65-2.7l4.65,2.7v5.4 M-48.85,14.85l-4.65,2.65l-4.65-2.65 M-53.5,22.9v-5.4
|
||||
M-44.2,6.75v-5.4l4.65-2.7l4.7,2.7v5.4l-4.7,2.7 M-53.5,6.75l4.65,2.7 M-67.45,25.6l4.65-2.7 M-11.6,47.2v-5.4l4.65-2.7l4.65,2.7
|
||||
M-11.6,41.8l-4.65-2.7v-5.4l4.65-2.7l4.65,2.7v5.4 M-16.25,33.7L-20.9,31v-5.4l4.65-2.7l4.65,2.7V31 M-2.3,31l-4.65,2.7
|
||||
M-30.2,47.2v-5.4l4.65-2.7l4.65,2.7v5.4l-4.65,2.65 M-39.55,41.8l4.7-2.7l4.65,2.7 M-34.85,22.9l4.65,2.7V31l-4.65,2.7l-4.7-2.7
|
||||
M-20.9,31l-4.65,2.7L-30.2,31 M-34.85,39.1v-5.4 M-25.55,39.1v-5.4 M-20.9,25.6l-4.65-2.7v-5.4l4.65-2.65l4.65,2.65v5.4
|
||||
M-25.55,17.5l-4.65-2.65v-5.4l4.65-2.7l4.65,2.7v5.4 M-25.55,6.75v-5.4l4.65-2.7l4.65,2.7v5.4l-4.65,2.7 M-30.2,14.85l-4.65,2.65
|
||||
M-34.85,6.75l4.65,2.7 M-6.95,17.5l-4.65-2.65v-5.4l4.65-2.7l4.65,2.7v5.4L-6.95,17.5v5.4l-4.65,2.7 M-11.6,14.85l-4.65,2.65
|
||||
M-16.25,6.75l4.65,2.7 M-16.25,1.35l4.65-2.7l4.65,2.7v5.4 M-6.95,22.9l4.65,2.7 M-30.2,25.6l4.65-2.7 M-16.25,39.1l-4.65,2.7
|
||||
M-67.45,47.2l-4.65,2.65 M-2.3,47.2l-4.65,2.65 M-34.85,49.85l-4.7-2.65 M-16.25,49.85l-4.65-2.65 M-81.4,39.1l4.65,2.7
|
||||
M-11.6-1.35v-5.4l4.65-2.7l4.65,2.7 M-11.6-6.75l-4.65-2.7v-5.4l4.65-2.65l4.65,2.65v5.4 M-16.25-14.85l-4.65-2.65v-5.4l4.65-2.7
|
||||
l4.65,2.7v5.4 M-2.3-17.5l-4.65,2.65 M-20.9-1.35v-5.4l4.65-2.7 M-20.9-6.75l-4.65-2.7v-5.4l4.65-2.65 M-25.55-9.45l-4.65,2.7
|
||||
l-4.65-2.7v-5.4l4.65-2.65l4.65,2.65 M-30.2-6.75v5.4l-4.65,2.7 M-39.55-1.35v-5.4l4.7-2.7 M-34.85-14.85l-4.7-2.65v-5.4l4.7-2.7
|
||||
l4.65,2.7v5.4 M-30.2-33.7v-5.4l4.65-2.7l4.65,2.7v5.4l-4.65,2.7L-30.2-33.7l-4.65,2.7l-4.7-2.7v-5.4l4.7-2.7l4.65,2.7 M-20.9-22.9
|
||||
l-4.65-2.7V-31 M-34.85-25.6V-31 M-39.55-39.1l-4.65-2.7v-5.4l4.65-2.65l4.7,2.65v5.4 M-25.55-41.8v-5.4l4.65-2.65l4.65,2.65v5.4
|
||||
l-4.65,2.7 M-6.95-31l-4.65-2.7v-5.4l4.65-2.7l4.65,2.7v5.4L-6.95-31v5.4l-4.65,2.7 M-16.25-25.6V-31l4.65-2.7 M-16.25-41.8
|
||||
l4.65,2.7 M-16.25-47.2l4.65-2.65l4.65,2.65v5.4 M-30.2-22.9l4.65-2.7 M-16.25-31l-4.65-2.7 M-6.95-25.6l4.65,2.7 M-44.2,1.35
|
||||
l-4.65-2.7v-5.4l4.65-2.7l4.65,2.7 M-58.15-1.35v-5.4l4.65-2.7l4.65,2.7 M-58.15-6.75l-4.65-2.7v-5.4l4.65-2.65l4.65,2.65v5.4
|
||||
M-62.8-14.85l-4.65-2.65v-5.4l4.65-2.7l4.65,2.7v5.4 M-39.55-17.5l-4.65,2.65l-4.65-2.65v-5.4l4.65-2.7l4.65,2.7 M-44.2-9.45v-5.4
|
||||
M-53.5-14.85l4.65-2.65 M-62.8,1.35l-4.65-2.7v-5.4l4.65-2.7 M-76.75-6.75l-4.65-2.7v-5.4l4.65-2.65l4.65,2.65v5.4L-76.75-6.75
|
||||
v5.4 M-76.75-17.5v-5.4l4.65-2.7l4.65,2.7 M-67.45-17.5l-4.65,2.65 M-72.1-9.45l4.65,2.7 M-67.45-33.7v-5.4l4.65-2.7l4.65,2.7v5.4
|
||||
L-62.8-31L-67.45-33.7z M-62.8-25.6V-31 M-72.1-25.6V-31l4.65-2.7 M-72.1-31l-4.65-2.7v-5.4l4.65-2.7l4.65,2.7 M-76.75-39.1
|
||||
l-4.65-2.7v-5.4l4.65-2.65l4.65,2.65v5.4 M-62.8-41.8v-5.4l4.65-2.65l4.65,2.65v5.4l-4.65,2.7 M-44.2-25.6V-31l4.65-2.7 M-44.2-31
|
||||
l-4.65-2.7v-5.4l4.65-2.7 M-48.85-33.7L-53.5-31l-4.65-2.7 M-48.85-22.9l-4.65-2.7V-31 M-53.5-41.8l4.65,2.7 M-58.15-22.9l4.65-2.7
|
||||
M-58.15-49.85v-5.4l4.65-2.7l4.65,2.7v5.4l-4.65,2.65 M-48.85-55.25l4.65-2.7l4.65,2.7v5.4 M-58.15-71.45l4.65-2.7l4.65,2.7v5.4
|
||||
l-4.65,2.7l-4.65-2.7V-71.45z M-48.85-71.45l4.65-2.7l4.65,2.7v5.4l-4.65,2.7l-4.65-2.7 M-44.2-57.95v-5.4 M-53.5-57.95v-5.4
|
||||
M-76.75-49.85v-5.4l4.65-2.7l4.65,2.7v5.4l-4.65,2.65 M-67.45-55.25l4.65-2.7l4.65,2.7 M-76.75-55.25l-4.65-2.7v-5.4l4.65-2.7
|
||||
l4.65,2.7v5.4 M-81.4-63.35l-4.7-2.7v-5.4l4.7-2.7l4.65,2.7v5.4 M-81.4-74.15v-5.4l4.65-2.65l4.65,2.65v5.4l-4.65,2.7
|
||||
M-58.15-66.05l-4.65,2.7l-4.65-2.7v-5.4l4.65-2.7l4.65,2.7 M-62.8-57.95v-5.4 M-72.1-74.15l4.65,2.7 M-67.45-66.05l-4.65,2.7
|
||||
M-67.45-82.2v-5.4l4.65-2.7l4.65,2.7v5.4l-4.65,2.65L-67.45-82.2l-4.65,2.65 M-76.75-82.2v-5.4l4.65-2.7l4.65,2.7 M-72.1-90.3
|
||||
v-5.4 M-62.8-90.3v-5.4 M-53.5-74.15v-5.4l4.65-2.65l4.65,2.65v5.4 M-58.15-82.2l4.65,2.65 M-58.15-87.6l4.65-2.7l4.65,2.7v5.4
|
||||
M-53.5-90.3v-5.4 M-44.2-95.7v5.4l-4.65,2.7 M-62.8-74.15v-5.4 M-11.6-49.85v-5.4l4.65-2.7l4.65,2.7 M-20.9-49.85v-5.4l4.65-2.7
|
||||
l4.65,2.7 M-16.25-63.35l-4.65-2.7v-5.4l4.65-2.7l4.65,2.7v5.4L-16.25-63.35v5.4 M-2.3-66.05l-4.65,2.7l-4.65-2.7 M-11.6-71.45
|
||||
l4.65-2.7l4.65,2.7 M-6.95-63.35v5.4 M-25.55-47.2l-4.65-2.65v-5.4l4.65-2.7l4.65,2.7 M-39.55-55.25l4.7-2.7l4.65,2.7
|
||||
M-39.55-71.45l4.7-2.7l4.65,2.7v5.4l-4.65,2.7l-4.7-2.7 M-20.9-71.45l-4.65-2.7v-5.4l4.65-2.65l4.65,2.65v5.4 M-20.9-66.05
|
||||
l-4.65,2.7l-4.65-2.7 M-25.55-74.15l-4.65,2.7 M-34.85-63.35v5.4 M-25.55-57.95v-5.4 M-34.85-74.15v-5.4l4.65-2.65l4.65,2.65
|
||||
M-44.2-79.55l4.65-2.65l4.7,2.65 M-39.55-82.2v-5.4l4.7-2.7l4.65,2.7v5.4 M-34.85-90.3v-5.4 M-16.25-95.7v5.4l-4.65,2.7l-4.65-2.7
|
||||
v-5.4 M-25.55-90.3l-4.65,2.7 M-20.9-82.2v-5.4 M-6.95-79.55l-4.65-2.65v-5.4l4.65-2.7l4.65,2.7v5.4L-6.95-79.55v5.4 M-16.25-79.55
|
||||
l4.65-2.65 M-11.6-87.6l-4.65-2.7 M-6.95-95.7v5.4 M-44.2-90.3l4.65,2.7 M-62.8-47.2l-4.65-2.65 M-44.2-47.2l-4.65-2.65
|
||||
M-30.2-49.85l-4.65,2.65 M-2.3-49.85l-4.65,2.65 M-95.4-1.35v-5.4l4.65-2.7l4.65,2.7v5.4l-4.65,2.7 M-86.1-6.75l4.7-2.7
|
||||
M-100.05,1.35l-4.65-2.7v-5.4l4.65-2.7l4.65,2.7 M-95.4-17.5l-4.65,2.65l-4.65-2.65v-5.4l4.65-2.7l4.65,2.7V-17.5z M-95.4-22.9
|
||||
l4.65-2.7l4.65,2.7v5.4l-4.65,2.65l-4.65-2.65 M-81.4-14.85l-4.7-2.65 M-100.05-9.45v-5.4 M-90.75-14.85v5.4 M-109.35-9.45
|
||||
l4.65,2.7 M-104.7-17.5l-4.65,2.65 M-109.35-41.8l4.65,2.7v5.4l-4.65,2.7 M-90.75-25.6V-31l4.65-2.7l4.7,2.7v5.4l-4.7,2.7
|
||||
M-100.05-25.6V-31l4.65-2.7l4.65,2.7 M-100.05-47.2l4.65-2.65l4.65,2.65v5.4l-4.65,2.7l-4.65-2.7V-47.2l-4.65-2.65 M-90.75-41.8
|
||||
l4.65,2.7v5.4 M-86.1-39.1l4.7-2.7 M-95.4-33.7v-5.4 M-109.35-25.6l4.65,2.7 M-100.05-31l-4.65-2.7 M-104.7-39.1l4.65-2.7
|
||||
M-95.4-49.85v-5.4l4.65-2.7l4.65,2.7v5.4l-4.65,2.65 M-86.1-55.25l4.7-2.7 M-95.4-55.25l-4.65-2.7v-5.4l4.65-2.7l4.65,2.7v5.4
|
||||
M-100.05-63.35l-4.65-2.7v-5.4l4.65-2.7l4.65,2.7v5.4 M-95.4-71.45l4.65-2.7l4.65,2.7 M-86.1-66.05l-4.65,2.7 M-109.35-57.95
|
||||
l4.65,2.7v5.4l-4.65,2.65 M-109.35-74.15l4.65,2.7 M-104.7-66.05l-4.65,2.7 M-109.35-90.3l4.65,2.7v5.4l-4.65,2.65 M-81.4-79.55
|
||||
l-4.7-2.65v-5.4l4.7-2.7l4.65,2.7 M-86.1-82.2l-4.65,2.65l-4.65-2.65v-5.4l4.65-2.7l4.65,2.7 M-100.05-74.15v-5.4l4.65-2.65
|
||||
M-95.4-87.6l-4.65-2.7v-5.4 M-81.4-95.7v5.4 M-90.75-95.7v5.4 M-90.75-79.55v5.4 M-104.7-55.25l4.65-2.7 M-100.05-79.55
|
||||
l-4.65-2.65 M-104.7-87.6l4.65-2.7 M-81.4-47.2l-4.7-2.65 M-76.75-33.7L-81.4-31 M-81.4-25.6l4.65,2.7 M-67.45-1.35l-4.65,2.7
|
||||
M-104.7-1.35l-4.65,2.7 M-81.4,1.35l-4.7-2.7 M-25.55,1.35l-4.65-2.7 M-53.5,1.35l4.65-2.7 M-2.3-1.35l-4.65,2.7 M-2.3,57.95
|
||||
l4.65-2.7 M2.35,66.05l-4.65-2.7 M-2.3-39.1l4.65-2.7 M2.35-31l-4.65-2.7 M2.35-79.55L-2.3-82.2 M-2.3-87.6l4.65-2.7 M-2.3,9.45
|
||||
l4.65-2.7 M2.35,17.5l-4.65-2.65"/>
|
||||
</symbol>
|
||||
<g id="Layer_1">
|
||||
</g>
|
||||
<g id="Layer_6">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#EFEEEE" d="M217.5,108.95c0,29.833-10.533,55.399-31.6,76.7
|
||||
c-0.7,0.833-1.484,1.6-2.351,2.3c-3.466,3.399-7.134,6.483-11,9.25c-18.267,13.467-39.366,20.2-63.3,20.2
|
||||
c-23.967,0-45.033-6.733-63.2-20.2c-4.8-3.4-9.3-7.25-13.5-11.55c-16.367-16.267-26.417-35.167-30.15-56.7
|
||||
c-0.733-4.2-1.217-8.467-1.45-12.8c-0.1-2.4-0.15-4.801-0.15-7.2c0-2.534,0.05-4.95,0.15-7.25c0-0.233,0.066-0.467,0.2-0.7
|
||||
c1.567-26.6,12.033-49.583,31.4-68.95C53.85,11.017,79.417,0.5,109.25,0.5c29.934,0,55.483,10.517,76.65,31.55
|
||||
C206.967,53.483,217.5,79.117,217.5,108.95z"/>
|
||||
</g>
|
||||
<g id="Layer_5">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#010101" d="M195.45,43l-22.4,22.4c-8.833,13-13.25,27.867-13.25,44.6
|
||||
c0,17.934,5.067,33.833,15.2,47.7l19,18.95c-2.5,3.066-5.2,6.066-8.1,9c-0.7,0.833-1.484,1.6-2.351,2.3
|
||||
c-2.533,2.5-5.167,4.816-7.899,6.95L158.1,177.35c-13.934-10.733-30.133-16.1-48.6-16.1c-17.933,0-33.833,5.1-47.7,15.3
|
||||
L43.25,195.15c-3.767-2.867-7.333-6.034-10.7-9.5c-2.8-2.801-5.417-5.667-7.85-8.601l19.15-19.2
|
||||
c10.066-13.966,15.1-29.916,15.1-47.85c0-17.5-4.867-33.017-14.6-46.55l-21.05-21c2.833-3.6,5.917-7.067,9.25-10.4
|
||||
c2.934-2.867,5.934-5.55,9-8.05L61.9,44.35C75.7,54.583,91.567,59.7,109.5,59.7c18.467,0,34.666-5.367,48.6-16.1L177.4,24.35
|
||||
c2.899,2.367,5.732,4.933,8.5,7.7C189.367,35.583,192.55,39.233,195.45,43z"/>
|
||||
</g>
|
||||
<g id="Layer_4">
|
||||
<defs>
|
||||
<path id="SVGID_1_" d="M159.8,110c0-16.733,4.417-31.6,13.25-44.6l22.4-22.4c-2.9-3.767-6.083-7.417-9.55-10.95
|
||||
c-2.768-2.767-5.601-5.333-8.5-7.7L158.1,43.6c-13.934,10.733-30.133,16.1-48.6,16.1c-17.933,0-33.8-5.117-47.6-15.35L41.55,24
|
||||
c-3.066,2.5-6.066,5.183-9,8.05c-3.333,3.333-6.417,6.8-9.25,10.4l21.05,21c9.733,13.533,14.6,29.05,14.6,46.55
|
||||
c0,17.934-5.034,33.884-15.1,47.85l-19.15,19.2c2.433,2.934,5.05,5.8,7.85,8.601c3.367,3.466,6.934,6.633,10.7,9.5L61.8,176.55
|
||||
c13.867-10.2,29.767-15.3,47.7-15.3c18.467,0,34.666,5.366,48.6,16.1L175.65,194.9c2.732-2.134,5.366-4.45,7.899-6.95
|
||||
c0.866-0.7,1.65-1.467,2.351-2.3c2.899-2.934,5.6-5.934,8.1-9l-19-18.95C164.867,143.833,159.8,127.934,159.8,110z"/>
|
||||
</defs>
|
||||
<clipPath id="SVGID_2_">
|
||||
<use xlink:href="#SVGID_1_" overflow="visible"/>
|
||||
</clipPath>
|
||||
<g clip-path="url(#SVGID_2_)">
|
||||
|
||||
<use xlink:href="#hex_grid" width="228.55" height="197.233" x="-114.25" y="-98.617" transform="matrix(1.1415 0 0 -1.1415 105.5 107.75)" overflow="visible"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Layer_2">
|
||||
<g>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#35C6F4" d="M79.1,110.95c-0.033-0.667-0.05-1.333-0.05-2
|
||||
c0-0.7,0.017-1.366,0.05-2c0-0.067,0.017-0.134,0.05-0.2c0.434-7.367,3.333-13.733,8.7-19.1c5.9-5.833,12.983-8.75,21.25-8.75
|
||||
c8.301,0,15.384,2.917,21.25,8.75c5.834,5.934,8.75,13.033,8.75,21.3c0,8.267-2.916,15.35-8.75,21.25
|
||||
c-0.199,0.233-0.416,0.45-0.649,0.649c-0.967,0.934-1.983,1.784-3.05,2.551c-5.066,3.733-10.917,5.6-17.551,5.6
|
||||
c-6.633,0-12.466-1.866-17.5-5.6c-1.333-0.934-2.583-2-3.75-3.2c-4.533-4.5-7.317-9.733-8.35-15.7
|
||||
C79.3,113.334,79.167,112.15,79.1,110.95z M126.1,127.25l3.601,3.6L126.1,127.25z"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="none" stroke="#35C6F4" stroke-width="2" stroke-miterlimit="1" d="
|
||||
M158.6,60.25l-15,14.65 M31.7,33.1l40.75,40.65 M126.1,127.25l3.601,3.6 M157.05,158l27.65,28.6 M153.05,153.95l-10.75-11.2
|
||||
M186.6,33l-28,27.25 M33.15,186.25l27.35-27.4"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="none" stroke="#35C6F4" stroke-width="7" stroke-miterlimit="1" d="
|
||||
M158.6,60.25l-16.949,17.2 M59.4,61.35L76.6,78.5 M60.5,158.85l16.75-17.399 M153.05,153.95l4,4.05 M139.45,140.4l13.6,13.55"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 26 KiB |
BIN
Logo/Thumbs.db
Normal file
@@ -1,2 +0,0 @@
|
||||
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
|
||||
<s:Boolean x:Key="/Default/Environment/ExternalSources/Decompiler/DecompileMethodBodies/@EntryValue">True</s:Boolean></wpf:ResourceDictionary>
|
||||
45
appveyor.yml
Normal file
@@ -0,0 +1,45 @@
|
||||
version: '0.2.0.{build}'
|
||||
|
||||
branches:
|
||||
only:
|
||||
- develop
|
||||
|
||||
assembly_info:
|
||||
patch: true
|
||||
file: 'src\NzbDrone.Common\Properties\SharedAssemblyInfo.cs'
|
||||
assembly_version: '{version}'
|
||||
assembly_file_version: '{version}'
|
||||
assembly_informational_version: '{version}-rc1'
|
||||
|
||||
environment:
|
||||
DOTNET_CLI_TELEMETRY_OPTOUT: 1
|
||||
|
||||
install:
|
||||
- git submodule update --init --recursive
|
||||
|
||||
build_script:
|
||||
- ps: ./build-appveyor.ps1
|
||||
|
||||
test: off
|
||||
# test:
|
||||
# assemblies:
|
||||
# - '_tests\*Test.dll'
|
||||
# categories:
|
||||
# except:
|
||||
# - IntegrationTest
|
||||
# - AutomationTest
|
||||
|
||||
artifacts:
|
||||
- path: '_artifacts\*.zip'
|
||||
- path: '_artifacts\*.tar.gz'
|
||||
|
||||
cache:
|
||||
- '%USERPROFILE%\.nuget\packages'
|
||||
- node_modules
|
||||
|
||||
only_commits:
|
||||
files:
|
||||
- src/
|
||||
- osx/
|
||||
- gulp/
|
||||
- logo/
|
||||
303
build-appveyor.cake
Normal file
@@ -0,0 +1,303 @@
|
||||
#addin "Cake.Npm"
|
||||
#addin "SharpZipLib"
|
||||
#addin "Cake.Compression"
|
||||
|
||||
// Build variables
|
||||
var outputFolder = "./_output";
|
||||
var outputFolderMono = outputFolder + "_mono";
|
||||
var outputFolderOsx = outputFolder + "_osx";
|
||||
var outputFolderOsxApp = outputFolderOsx + "_app";
|
||||
var testPackageFolder = "./_tests";
|
||||
var testSearchPattern = "*.Test/bin/x86/Release";
|
||||
var sourceFolder = "./src";
|
||||
var solutionFile = sourceFolder + "/NzbDrone.sln";
|
||||
var updateFolder = outputFolder + "/NzbDrone.Update";
|
||||
var updateFolderMono = outputFolderMono + "/NzbDrone.Update";
|
||||
|
||||
// Artifact variables
|
||||
var artifactsFolder = "./_artifacts";
|
||||
var artifactsFolderWindows = artifactsFolder + "/windows";
|
||||
var artifactsFolderLinux = artifactsFolder + "/linux";
|
||||
var artifactsFolderOsx = artifactsFolder + "/osx";
|
||||
var artifactsFolderOsxApp = artifactsFolder + "/osx-app";
|
||||
|
||||
// Utility methods
|
||||
public void RemoveEmptyFolders(string startLocation) {
|
||||
foreach (var directory in System.IO.Directory.GetDirectories(startLocation))
|
||||
{
|
||||
RemoveEmptyFolders(directory);
|
||||
|
||||
if (System.IO.Directory.GetFiles(directory).Length == 0 &&
|
||||
System.IO.Directory.GetDirectories(directory).Length == 0)
|
||||
{
|
||||
DeleteDirectory(directory, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void CleanFolder(string path, bool keepConfigFiles) {
|
||||
DeleteFiles(path + "/**/*.transform");
|
||||
|
||||
if (!keepConfigFiles) {
|
||||
DeleteFiles(path + "/**/*.dll.config");
|
||||
}
|
||||
|
||||
DeleteFiles(path + "/**/FluentValidation.resources.dll");
|
||||
DeleteFiles(path + "/**/App.config");
|
||||
|
||||
DeleteFiles(path + "/**/*.less");
|
||||
|
||||
DeleteFiles(path + "/**/*.vshost.exe");
|
||||
|
||||
DeleteFiles(path + "/**/*.dylib");
|
||||
|
||||
RemoveEmptyFolders(path);
|
||||
}
|
||||
|
||||
public void CreateMdbs(string path) {
|
||||
foreach (var file in System.IO.Directory.EnumerateFiles(path, "*.pdb", System.IO.SearchOption.AllDirectories)) {
|
||||
var actualFile = file.Substring(0, file.Length - 4);
|
||||
|
||||
if (FileExists(actualFile + ".exe")) {
|
||||
StartProcess("./tools/pdb2mdb/pdb2mdb.exe", new ProcessSettings()
|
||||
.WithArguments(args => args.Append(actualFile + ".exe")));
|
||||
}
|
||||
|
||||
if (FileExists(actualFile + ".dll")) {
|
||||
StartProcess("./tools/pdb2mdb/pdb2mdb.exe", new ProcessSettings()
|
||||
.WithArguments(args => args.Append(actualFile + ".dll")));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Build Tasks
|
||||
Task("Compile").Does(() => {
|
||||
// Build
|
||||
if (DirectoryExists(outputFolder)) {
|
||||
DeleteDirectory(outputFolder, true);
|
||||
}
|
||||
|
||||
MSBuild(solutionFile, config =>
|
||||
config.UseToolVersion(MSBuildToolVersion.VS2015)
|
||||
.WithTarget("Clean")
|
||||
.SetVerbosity(Verbosity.Minimal));
|
||||
|
||||
NuGetRestore(solutionFile);
|
||||
|
||||
MSBuild(solutionFile, config =>
|
||||
config.UseToolVersion(MSBuildToolVersion.VS2015)
|
||||
.SetPlatformTarget(PlatformTarget.x86)
|
||||
.SetConfiguration("Release")
|
||||
.WithProperty("AllowedReferenceRelatedFileExtensions", new string[] { ".pdb" })
|
||||
.WithTarget("Build")
|
||||
.SetVerbosity(Verbosity.Minimal));
|
||||
|
||||
CleanFolder(outputFolder, false);
|
||||
|
||||
// Add JsonNet
|
||||
DeleteFiles(outputFolder + "/Newtonsoft.Json.*");
|
||||
CopyFiles(sourceFolder + "/packages/Newtonsoft.Json.*/lib/net35/*.dll", outputFolder);
|
||||
CopyFiles(sourceFolder + "/packages/Newtonsoft.Json.*/lib/net35/*.dll", updateFolder);
|
||||
|
||||
// Remove Mono stuff
|
||||
DeleteFile(outputFolder + "/Mono.Posix.dll");
|
||||
});
|
||||
|
||||
Task("Gulp").Does(() => {
|
||||
Npm
|
||||
.WithLogLevel(NpmLogLevel.Silent)
|
||||
.FromPath(".")
|
||||
.Install()
|
||||
.RunScript("build");
|
||||
});
|
||||
|
||||
Task("PackageMono").Does(() => {
|
||||
// Start mono package
|
||||
if (DirectoryExists(outputFolderMono)) {
|
||||
DeleteDirectory(outputFolderMono, true);
|
||||
}
|
||||
|
||||
CopyDirectory(outputFolder, outputFolderMono);
|
||||
|
||||
// Create MDBs
|
||||
CreateMdbs(outputFolderMono);
|
||||
|
||||
// Remove PDBs
|
||||
DeleteFiles(outputFolderMono + "/**/*.pdb");
|
||||
|
||||
// Remove service helpers
|
||||
DeleteFiles(outputFolderMono + "/ServiceUninstall.*");
|
||||
DeleteFiles(outputFolderMono + "/ServiceInstall.*");
|
||||
|
||||
// Remove native windows binaries
|
||||
DeleteFiles(outputFolderMono + "/sqlite3.*");
|
||||
DeleteFiles(outputFolderMono + "/MediaInfo.*");
|
||||
|
||||
// Adding NzbDrone.Core.dll.config (for dllmap)
|
||||
CopyFile(sourceFolder + "/NzbDrone.Core/NzbDrone.Core.dll.config", outputFolderMono + "/NzbDrone.Core.dll.config");
|
||||
|
||||
// Adding CurlSharp.dll.config (for dllmap)
|
||||
CopyFile(sourceFolder + "/NzbDrone.Common/CurlSharp.dll.config", outputFolderMono + "/CurlSharp.dll.config");
|
||||
|
||||
// Renaming Radarr.Console.exe to Radarr.exe
|
||||
DeleteFiles(outputFolderMono + "/Radarr.exe*");
|
||||
MoveFile(outputFolderMono + "/Radarr.Console.exe", outputFolderMono + "/Radarr.exe");
|
||||
MoveFile(outputFolderMono + "/Radarr.Console.exe.config", outputFolderMono + "/Radarr.exe.config");
|
||||
MoveFile(outputFolderMono + "/Radarr.Console.exe.mdb", outputFolderMono + "/Radarr.exe.mdb");
|
||||
|
||||
// Remove NzbDrone.Windows.*
|
||||
DeleteFiles(outputFolderMono + "/NzbDrone.Windows.*");
|
||||
|
||||
// Adding NzbDrone.Mono to updatePackage
|
||||
CopyFiles(outputFolderMono + "/NzbDrone.Mono.*", updateFolderMono);
|
||||
});
|
||||
|
||||
Task("PackageOsx").Does(() => {
|
||||
// Start osx package
|
||||
if (DirectoryExists(outputFolderOsx)) {
|
||||
DeleteDirectory(outputFolderOsx, true);
|
||||
}
|
||||
|
||||
CopyDirectory(outputFolderMono, outputFolderOsx);
|
||||
|
||||
// Adding sqlite dylibs
|
||||
CopyFiles(sourceFolder + "/Libraries/Sqlite/*.dylib", outputFolderOsx);
|
||||
|
||||
// Adding MediaInfo dylib
|
||||
CopyFiles(sourceFolder + "/Libraries/MediaInfo/*.dylib", outputFolderOsx);
|
||||
|
||||
// Adding Startup script
|
||||
CopyFile("./osx/Sonarr", outputFolderOsx + "/Sonarr");
|
||||
});
|
||||
|
||||
Task("PackageOsxApp").Does(() => {
|
||||
// Start osx app package
|
||||
if (DirectoryExists(outputFolderOsxApp)) {
|
||||
DeleteDirectory(outputFolderOsxApp, true);
|
||||
}
|
||||
|
||||
CreateDirectory(outputFolderOsxApp);
|
||||
|
||||
// Copy osx package files
|
||||
CopyDirectory("./osx/Radarr.app", outputFolderOsxApp + "/Radarr.app");
|
||||
CopyDirectory(outputFolderOsx, outputFolderOsxApp + "/Radarr.app/Contents/MacOS");
|
||||
});
|
||||
|
||||
Task("PackageTests").Does(() => {
|
||||
// Start tests package
|
||||
if (DirectoryExists(testPackageFolder)) {
|
||||
DeleteDirectory(testPackageFolder, true);
|
||||
}
|
||||
|
||||
CreateDirectory(testPackageFolder);
|
||||
|
||||
// Copy tests
|
||||
CopyFiles(sourceFolder + "/" + testSearchPattern + "/*", testPackageFolder);
|
||||
foreach (var directory in System.IO.Directory.GetDirectories(sourceFolder, "*.Test")) {
|
||||
var releaseDirectory = directory + "/bin/x86/Release";
|
||||
if (DirectoryExists(releaseDirectory)) {
|
||||
foreach (var releaseSubDirectory in System.IO.Directory.GetDirectories(releaseDirectory)) {
|
||||
Information(System.IO.Path.GetDirectoryName(releaseSubDirectory));
|
||||
CopyDirectory(releaseSubDirectory, testPackageFolder + "/" + System.IO.Path.GetFileName(releaseSubDirectory));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Install NUnit.ConsoleRunner
|
||||
NuGetInstall("NUnit.ConsoleRunner", new NuGetInstallSettings {
|
||||
Version = "3.2.0",
|
||||
OutputDirectory = testPackageFolder
|
||||
});
|
||||
|
||||
// Copy dlls
|
||||
CopyFiles(outputFolder + "/*.dll", testPackageFolder);
|
||||
|
||||
// Copy scripts
|
||||
CopyFiles("./*.sh", testPackageFolder);
|
||||
|
||||
// Create MDBs for tests
|
||||
CreateMdbs(testPackageFolder);
|
||||
|
||||
// Remove config
|
||||
DeleteFiles(testPackageFolder + "/*.log.config");
|
||||
|
||||
// Clean
|
||||
CleanFolder(testPackageFolder, true);
|
||||
|
||||
// Adding NzbDrone.Core.dll.config (for dllmap)
|
||||
CopyFile(sourceFolder + "/NzbDrone.Core/NzbDrone.Core.dll.config", testPackageFolder + "/NzbDrone.Core.dll.config");
|
||||
|
||||
// Adding CurlSharp.dll.config (for dllmap)
|
||||
CopyFile(sourceFolder + "/NzbDrone.Common/CurlSharp.dll.config", testPackageFolder + "/CurlSharp.dll.config");
|
||||
|
||||
// Adding CurlSharp libraries
|
||||
CopyFiles(sourceFolder + "/ExternalModules/CurlSharp/libs/i386/*", testPackageFolder);
|
||||
});
|
||||
|
||||
Task("CleanupWindowsPackage").Does(() => {
|
||||
// Remove mono
|
||||
DeleteFiles(outputFolder + "/NzbDrone.Mono.*");
|
||||
|
||||
// Adding NzbDrone.Windows to updatePackage
|
||||
CopyFiles(outputFolder + "/NzbDrone.Windows.*", updateFolder);
|
||||
});
|
||||
|
||||
Task("Build")
|
||||
.IsDependentOn("Compile")
|
||||
.IsDependentOn("Gulp")
|
||||
.IsDependentOn("PackageMono")
|
||||
.IsDependentOn("PackageOsx")
|
||||
.IsDependentOn("PackageOsxApp")
|
||||
.IsDependentOn("PackageTests")
|
||||
.IsDependentOn("CleanupWindowsPackage");
|
||||
|
||||
// Build Artifacts
|
||||
Task("CleanArtifacts").Does(() => {
|
||||
if (DirectoryExists(artifactsFolder)) {
|
||||
DeleteDirectory(artifactsFolder, true);
|
||||
}
|
||||
|
||||
CreateDirectory(artifactsFolder);
|
||||
});
|
||||
|
||||
Task("ArtifactsWindows").Does(() => {
|
||||
CopyDirectory(outputFolder, artifactsFolderWindows + "/Radarr");
|
||||
});
|
||||
|
||||
Task("ArtifactsLinux").Does(() => {
|
||||
CopyDirectory(outputFolderMono, artifactsFolderLinux + "/Radarr");
|
||||
});
|
||||
|
||||
Task("ArtifactsOsx").Does(() => {
|
||||
CopyDirectory(outputFolderOsx, artifactsFolderOsx + "/Radarr");
|
||||
});
|
||||
|
||||
Task("ArtifactsOsxApp").Does(() => {
|
||||
CopyDirectory(outputFolderOsxApp, artifactsFolderOsxApp);
|
||||
});
|
||||
|
||||
Task("CompressArtifacts").Does(() => {
|
||||
var prefix = "";
|
||||
|
||||
if (AppVeyor.IsRunningOnAppVeyor) {
|
||||
prefix += AppVeyor.Environment.Repository.Branch + ".";
|
||||
prefix += AppVeyor.Environment.Build.Version + ".";
|
||||
}
|
||||
|
||||
Zip(artifactsFolderWindows, artifactsFolder + "/Radarr." + prefix + "windows.zip");
|
||||
GZipCompress(artifactsFolderLinux, artifactsFolder + "/Radarr." + prefix + "linux.tar.gz");
|
||||
GZipCompress(artifactsFolderOsx, artifactsFolder + "/Radarr." + prefix + "osx.tar.gz");
|
||||
Zip(artifactsFolderOsxApp, artifactsFolder + "/Radarr." + prefix + "osx-app.zip");
|
||||
});
|
||||
|
||||
Task("Artifacts")
|
||||
.IsDependentOn("CleanArtifacts")
|
||||
.IsDependentOn("ArtifactsWindows")
|
||||
.IsDependentOn("ArtifactsLinux")
|
||||
.IsDependentOn("ArtifactsOsx")
|
||||
.IsDependentOn("ArtifactsOsxApp")
|
||||
.IsDependentOn("CompressArtifacts");
|
||||
|
||||
// Run
|
||||
RunTarget("Build");
|
||||
RunTarget("Artifacts");
|
||||
184
build-appveyor.ps1
Normal file
@@ -0,0 +1,184 @@
|
||||
##########################################################################
|
||||
# This is the Cake bootstrapper script for PowerShell.
|
||||
# This file was downloaded from https://github.com/cake-build/resources
|
||||
# Feel free to change this file to fit your needs.
|
||||
##########################################################################
|
||||
|
||||
<#
|
||||
.SYNOPSIS
|
||||
This is a Powershell script to bootstrap a Cake build.
|
||||
.DESCRIPTION
|
||||
This Powershell script will download NuGet if missing, restore NuGet tools (including Cake)
|
||||
and execute your Cake build script with the parameters you provide.
|
||||
.PARAMETER Script
|
||||
The build script to execute.
|
||||
.PARAMETER Target
|
||||
The build script target to run.
|
||||
.PARAMETER Configuration
|
||||
The build configuration to use.
|
||||
.PARAMETER Verbosity
|
||||
Specifies the amount of information to be displayed.
|
||||
.PARAMETER Experimental
|
||||
Tells Cake to use the latest Roslyn release.
|
||||
.PARAMETER WhatIf
|
||||
Performs a dry run of the build script.
|
||||
No tasks will be executed.
|
||||
.PARAMETER Mono
|
||||
Tells Cake to use the Mono scripting engine.
|
||||
.PARAMETER SkipToolPackageRestore
|
||||
Skips restoring of packages.
|
||||
.PARAMETER ScriptArgs
|
||||
Remaining arguments are added here.
|
||||
.LINK
|
||||
http://cakebuild.net
|
||||
#>
|
||||
|
||||
[CmdletBinding()]
|
||||
Param(
|
||||
[string]$Script = "build-appveyor.cake",
|
||||
[string]$Target = "Default",
|
||||
[ValidateSet("Release", "Debug")]
|
||||
[string]$Configuration = "Release",
|
||||
[ValidateSet("Quiet", "Minimal", "Normal", "Verbose", "Diagnostic")]
|
||||
[string]$Verbosity = "Verbose",
|
||||
[switch]$Experimental,
|
||||
[Alias("DryRun","Noop")]
|
||||
[switch]$WhatIf,
|
||||
[switch]$Mono,
|
||||
[switch]$SkipToolPackageRestore,
|
||||
[Parameter(Position=0,Mandatory=$false,ValueFromRemainingArguments=$true)]
|
||||
[string[]]$ScriptArgs
|
||||
)
|
||||
|
||||
[Reflection.Assembly]::LoadWithPartialName("System.Security") | Out-Null
|
||||
function MD5HashFile([string] $filePath)
|
||||
{
|
||||
if ([string]::IsNullOrEmpty($filePath) -or !(Test-Path $filePath -PathType Leaf))
|
||||
{
|
||||
return $null
|
||||
}
|
||||
|
||||
[System.IO.Stream] $file = $null;
|
||||
[System.Security.Cryptography.MD5] $md5 = $null;
|
||||
try
|
||||
{
|
||||
$md5 = [System.Security.Cryptography.MD5]::Create()
|
||||
$file = [System.IO.File]::OpenRead($filePath)
|
||||
return [System.BitConverter]::ToString($md5.ComputeHash($file))
|
||||
}
|
||||
finally
|
||||
{
|
||||
if ($file -ne $null)
|
||||
{
|
||||
$file.Dispose()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Write-Host "Preparing to run build script..."
|
||||
|
||||
if(!$PSScriptRoot){
|
||||
$PSScriptRoot = Split-Path $MyInvocation.MyCommand.Path -Parent
|
||||
}
|
||||
|
||||
$TOOLS_DIR = Join-Path $PSScriptRoot "tools-cake"
|
||||
$NUGET_EXE = Join-Path $TOOLS_DIR "nuget.exe"
|
||||
$CAKE_EXE = Join-Path $TOOLS_DIR "Cake/Cake.exe"
|
||||
$NUGET_URL = "https://dist.nuget.org/win-x86-commandline/latest/nuget.exe"
|
||||
$PACKAGES_CONFIG = Join-Path $TOOLS_DIR "packages.config"
|
||||
$PACKAGES_CONFIG_MD5 = Join-Path $TOOLS_DIR "packages.config.md5sum"
|
||||
|
||||
# Should we use mono?
|
||||
$UseMono = "";
|
||||
if($Mono.IsPresent) {
|
||||
Write-Verbose -Message "Using the Mono based scripting engine."
|
||||
$UseMono = "-mono"
|
||||
}
|
||||
|
||||
# Should we use the new Roslyn?
|
||||
$UseExperimental = "";
|
||||
if($Experimental.IsPresent -and !($Mono.IsPresent)) {
|
||||
Write-Verbose -Message "Using experimental version of Roslyn."
|
||||
$UseExperimental = "-experimental"
|
||||
}
|
||||
|
||||
# Is this a dry run?
|
||||
$UseDryRun = "";
|
||||
if($WhatIf.IsPresent) {
|
||||
$UseDryRun = "-dryrun"
|
||||
}
|
||||
|
||||
# Make sure tools folder exists
|
||||
if ((Test-Path $PSScriptRoot) -and !(Test-Path $TOOLS_DIR)) {
|
||||
Write-Verbose -Message "Creating tools directory..."
|
||||
New-Item -Path $TOOLS_DIR -Type directory | out-null
|
||||
}
|
||||
|
||||
# Make sure that packages.config exist.
|
||||
if (!(Test-Path $PACKAGES_CONFIG)) {
|
||||
Write-Verbose -Message "Downloading packages.config..."
|
||||
try { (New-Object System.Net.WebClient).DownloadFile("http://cakebuild.net/download/bootstrapper/packages", $PACKAGES_CONFIG) } catch {
|
||||
Throw "Could not download packages.config."
|
||||
}
|
||||
}
|
||||
|
||||
# Try find NuGet.exe in path if not exists
|
||||
if (!(Test-Path $NUGET_EXE)) {
|
||||
Write-Verbose -Message "Trying to find nuget.exe in PATH..."
|
||||
$existingPaths = $Env:Path -Split ';' | Where-Object { (![string]::IsNullOrEmpty($_)) -and (Test-Path $_) }
|
||||
$NUGET_EXE_IN_PATH = Get-ChildItem -Path $existingPaths -Filter "nuget.exe" | Select -First 1
|
||||
if ($NUGET_EXE_IN_PATH -ne $null -and (Test-Path $NUGET_EXE_IN_PATH.FullName)) {
|
||||
Write-Verbose -Message "Found in PATH at $($NUGET_EXE_IN_PATH.FullName)."
|
||||
$NUGET_EXE = $NUGET_EXE_IN_PATH.FullName
|
||||
}
|
||||
}
|
||||
|
||||
# Try download NuGet.exe if not exists
|
||||
if (!(Test-Path $NUGET_EXE)) {
|
||||
Write-Verbose -Message "Downloading NuGet.exe..."
|
||||
try {
|
||||
(New-Object System.Net.WebClient).DownloadFile($NUGET_URL, $NUGET_EXE)
|
||||
} catch {
|
||||
Throw "Could not download NuGet.exe."
|
||||
}
|
||||
}
|
||||
|
||||
# Save nuget.exe path to environment to be available to child processed
|
||||
$ENV:NUGET_EXE = $NUGET_EXE
|
||||
|
||||
# Restore tools from NuGet?
|
||||
if(-Not $SkipToolPackageRestore.IsPresent) {
|
||||
Push-Location
|
||||
Set-Location $TOOLS_DIR
|
||||
|
||||
# Check for changes in packages.config and remove installed tools if true.
|
||||
[string] $md5Hash = MD5HashFile($PACKAGES_CONFIG)
|
||||
if((!(Test-Path $PACKAGES_CONFIG_MD5)) -Or
|
||||
($md5Hash -ne (Get-Content $PACKAGES_CONFIG_MD5 ))) {
|
||||
Write-Verbose -Message "Missing or changed package.config hash..."
|
||||
Remove-Item * -Recurse -Exclude packages.config,nuget.exe
|
||||
}
|
||||
|
||||
Write-Verbose -Message "Restoring tools from NuGet..."
|
||||
$NuGetOutput = Invoke-Expression "&`"$NUGET_EXE`" install -ExcludeVersion -OutputDirectory `"$TOOLS_DIR`""
|
||||
|
||||
if ($LASTEXITCODE -ne 0) {
|
||||
Throw "An error occured while restoring NuGet tools."
|
||||
}
|
||||
else
|
||||
{
|
||||
$md5Hash | Out-File $PACKAGES_CONFIG_MD5 -Encoding "ASCII"
|
||||
}
|
||||
Write-Verbose -Message ($NuGetOutput | out-string)
|
||||
Pop-Location
|
||||
}
|
||||
|
||||
# Make sure that Cake has been installed.
|
||||
if (!(Test-Path $CAKE_EXE)) {
|
||||
Throw "Could not find Cake.exe at $CAKE_EXE"
|
||||
}
|
||||
|
||||
# Start Cake
|
||||
Write-Host "Running build script..."
|
||||
Invoke-Expression "& `"$CAKE_EXE`" `"$Script`" -target=`"$Target`" -configuration=`"$Configuration`" -verbosity=`"$Verbosity`" $UseMono $UseDryRun $UseExperimental $ScriptArgs"
|
||||
exit $LASTEXITCODE
|
||||
258
build.ps1
@@ -1,257 +1 @@
|
||||
$msBuild = 'C:\Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild.exe'
|
||||
$outputFolder = '.\_output'
|
||||
$outputFolderMono = '.\_output_mono'
|
||||
$outputFolderOsx = '.\_output_osx'
|
||||
$outputFolderOsxApp = '.\_output_osx_app'
|
||||
$testPackageFolder = '.\_tests\'
|
||||
$testSearchPattern = '*.Test\bin\x86\Release'
|
||||
$sourceFolder = '.\src'
|
||||
$updateFolder = $outputFolder + '\NzbDrone.Update'
|
||||
$updateFolderMono = $outputFolderMono + '\NzbDrone.Update'
|
||||
|
||||
Function Build()
|
||||
{
|
||||
Write-Host "##teamcity[progressStart 'Build']"
|
||||
|
||||
$clean = $msbuild + " src\nzbdrone.sln /t:Clean /m"
|
||||
$build = $msbuild + " src\nzbdrone.sln /p:Configuration=Release /p:Platform=x86 /t:Build /m"
|
||||
|
||||
if(Test-Path $outputFolder)
|
||||
{
|
||||
Remove-Item -Recurse -Force $outputFolder -ErrorAction Continue
|
||||
}
|
||||
|
||||
Invoke-Expression $clean
|
||||
CheckExitCode
|
||||
|
||||
Invoke-Expression $build
|
||||
CheckExitCode
|
||||
|
||||
CleanFolder $outputFolder
|
||||
|
||||
AddJsonNet
|
||||
|
||||
Write-Host "Removing Mono.Posix.dll"
|
||||
Remove-Item "$outputFolder\Mono.Posix.dll"
|
||||
|
||||
Write-Host "##teamcity[progressFinish 'Build']"
|
||||
}
|
||||
|
||||
Function CleanFolder($path, $keepConfigFiles)
|
||||
{
|
||||
Write-Host Removing XMLDoc files
|
||||
get-childitem $path -File -Filter *.xml -Recurse | foreach ($_) {
|
||||
|
||||
$filename = $_.FullName
|
||||
$exeFilename = $filename -replace "xml", "exe"
|
||||
$dllFilename = $filename -replace "xml", "dll"
|
||||
|
||||
if (Test-Path $exeFilename) {
|
||||
remove-item $_.fullname
|
||||
}
|
||||
|
||||
if (Test-Path $dllFilename) {
|
||||
remove-item $_.fullname
|
||||
}
|
||||
}
|
||||
|
||||
get-childitem $path -File -Filter *.transform -Recurse | foreach ($_) {remove-item $_.fullname}
|
||||
|
||||
if($keepConfigFiles -ne $true)
|
||||
{
|
||||
get-childitem $path -File -Filter *.dll.config -Recurse | foreach ($_) {remove-item $_.fullname}
|
||||
}
|
||||
|
||||
Write-Host Removing FluentValidation.Resources files
|
||||
get-childitem $path -File -Filter FluentValidation.resources.dll -recurse | foreach ($_) {remove-item $_.fullname}
|
||||
|
||||
get-childitem $path -File -Filter app.config -Recurse | foreach ($_) {remove-item $_.fullname}
|
||||
|
||||
Write-Host Removing .less files
|
||||
get-childitem $path -File -Filter *.less -Recurse | foreach ($_) {remove-item $_.fullname}
|
||||
|
||||
Write-Host Removing vshost files
|
||||
get-childitem $path -File -Filter *.vshost.exe -Recurse | foreach ($_) {remove-item $_.fullname}
|
||||
|
||||
if(Test-Path $$path\NuGet)
|
||||
{
|
||||
Write-Host Removing NuGet
|
||||
Remove-Item -Recurse -Force "$path\NuGet"
|
||||
}
|
||||
|
||||
Write-Host Removing Empty folders
|
||||
while (Get-ChildItem $path -recurse | where {!@(Get-ChildItem -force $_.fullname)} | Test-Path)
|
||||
{
|
||||
Get-ChildItem $path -Directory -recurse | where {!@(Get-ChildItem -force $_.fullname)} | Remove-Item
|
||||
}
|
||||
}
|
||||
|
||||
Function PackageMono()
|
||||
{
|
||||
Write-Host "##teamcity[progressStart 'Creating Mono Package']"
|
||||
|
||||
if(Test-Path $outputFolderMono)
|
||||
{
|
||||
Remove-Item -Recurse -Force $outputFolderMono -ErrorAction Continue
|
||||
}
|
||||
|
||||
Copy-Item $outputFolder $outputFolderMono -recurse
|
||||
|
||||
Write-Host Creating MDBs
|
||||
get-childitem $outputFolderMono -File -Include @("*.exe", "*.dll") -Exclude @("MediaInfo.dll", "sqlite3.dll") -Recurse | foreach ($_) {
|
||||
Write-Host "Creating .mdb for $_"
|
||||
& "tools\pdb2mdb\pdb2mdb.exe" $_.fullname
|
||||
}
|
||||
|
||||
Write-Host Removing PDBs
|
||||
get-childitem $outputFolderMono -File -Filter *.pdb -Recurse | foreach ($_) {remove-item $_.fullname}
|
||||
|
||||
Write-Host Removing Service helpers
|
||||
get-childitem $outputFolderMono -File -Filter ServiceUninstall.* -Recurse | foreach ($_) {remove-item $_.fullname}
|
||||
get-childitem $outputFolderMono -File -Filter ServiceInstall.* -Recurse | foreach ($_) {remove-item $_.fullname}
|
||||
|
||||
Write-Host Removing native windows binaries Sqlite, MediaInfo
|
||||
get-childitem $outputFolderMono -File -Filter sqlite3.* -Recurse | foreach ($_) {remove-item $_.fullname}
|
||||
get-childitem $outputFolderMono -File -Filter MediaInfo.* -Recurse | foreach ($_) {remove-item $_.fullname}
|
||||
|
||||
Write-Host "Adding MediaInfoDotNet.dll.config (for dllmap)"
|
||||
Copy-Item "$sourceFolder\MediaInfoDotNet.dll.config" $outputFolderMono
|
||||
|
||||
Write-Host Renaming NzbDrone.Console.exe to NzbDrone.exe
|
||||
Get-ChildItem $outputFolderMono -File -Filter "NzbDrone.exe*" -Recurse | foreach ($_) {remove-item $_.fullname}
|
||||
|
||||
Write-Host Removing NzbDrone.Windows
|
||||
get-childitem $outputFolderMono -File -Filter NzbDrone.Windows.* -Recurse | foreach ($_) {remove-item $_.fullname}
|
||||
|
||||
Get-ChildItem $outputFolderMono -File -Filter "NzbDrone.Console.exe*" -Recurse | foreach ($_) {
|
||||
$newName = $_.fullname -Replace ".Console",""
|
||||
|
||||
Rename-Item $_.fullname $newName
|
||||
}
|
||||
|
||||
Write-Host Adding NzbDrone.Mono to UpdatePackage
|
||||
Copy-Item $outputFolderMono\* $updateFolderMono -Filter NzbDrone.Mono.*
|
||||
|
||||
Write-Host "##teamcity[progressFinish 'Creating Mono Package']"
|
||||
}
|
||||
|
||||
Function PackageOsx()
|
||||
{
|
||||
Write-Host "##teamcity[progressStart 'Creating OS X Package']"
|
||||
|
||||
if(Test-Path $outputFolderOsx)
|
||||
{
|
||||
Remove-Item -Recurse -Force $outputFolderOsx -ErrorAction Continue
|
||||
}
|
||||
|
||||
Copy-Item $outputFolderMono $outputFolderOsx -recurse
|
||||
|
||||
Write-Host "Adding sqlite dylibs"
|
||||
Copy-Item "$sourceFolder\Libraries\sqlite\*.dylib" "$outputFolderOsx"
|
||||
|
||||
Write-Host "Adding MediaInfo dylib"
|
||||
Copy-Item "$sourceFolder\Libraries\MediaInfo\*.dylib" "$outputFolderOsx"
|
||||
|
||||
Write-Host "Adding Startup script"
|
||||
Copy-Item .\osx\Sonarr "$outputFolderOsx"
|
||||
|
||||
Write-Host "##teamcity[progressFinish 'Creating OS X Package']"
|
||||
}
|
||||
|
||||
|
||||
Function PackageOsxApp()
|
||||
{
|
||||
Write-Host "##teamcity[progressStart 'Creating OS X App Package']"
|
||||
|
||||
if(Test-Path $outputFolderOsxApp)
|
||||
{
|
||||
Remove-Item -Recurse -Force $outputFolderOsxApp -ErrorAction Continue
|
||||
}
|
||||
|
||||
Copy-Item .\osx\Sonarr.app $outputFolderOsxApp\Sonarr.app -recurse
|
||||
Copy-Item $outputFolderOsx $outputFolderOsxApp\Sonarr.app\Contents\MacOS -recurse
|
||||
|
||||
Write-Host "##teamcity[progressFinish 'Creating OS X App Package']"
|
||||
}
|
||||
|
||||
Function AddJsonNet()
|
||||
{
|
||||
get-childitem $outputFolder -File -Filter Newtonsoft.Json.* -Recurse | foreach ($_) {remove-item $_.fullname}
|
||||
Copy-Item .\src\packages\Newtonsoft.Json.*.*\lib\net35\*.dll -Destination $outputFolder
|
||||
Copy-Item .\src\packages\Newtonsoft.Json.*.*\lib\net35\*.dll -Destination $outputFolder\NzbDrone.Update
|
||||
}
|
||||
|
||||
Function PackageTests()
|
||||
{
|
||||
|
||||
Write-Host Packaging Tests
|
||||
Write-Host "##teamcity[progressStart 'Creating Test Package']"
|
||||
|
||||
if(Test-Path $testPackageFolder)
|
||||
{
|
||||
Remove-Item -Recurse -Force $testPackageFolder -ErrorAction Continue
|
||||
}
|
||||
|
||||
Get-ChildItem -Recurse -Directory | Where-Object {$_.FullName -like $testSearchPattern} | foreach($_){
|
||||
Copy-Item -Recurse ($_.FullName + "\*") $testPackageFolder -ErrorAction Ignore
|
||||
}
|
||||
|
||||
.\src\.nuget\NuGet.exe install NUnit.Runners -Version 2.6.1 -Output $testPackageFolder
|
||||
|
||||
Copy-Item $outputFolder\*.dll -Destination $testPackageFolder -Force
|
||||
Copy-Item $outputFolder\*.pdb -Destination $testPackageFolder -Force
|
||||
Copy-Item .\*.sh -Destination $testPackageFolder -Force
|
||||
|
||||
Write-Host Creating MDBs for tests
|
||||
get-childitem $testPackageFolder -File -Include @("*.exe", "*.dll") -Exclude @("MediaInfo.dll", "sqlite3.dll") -Recurse | foreach ($_) {
|
||||
Write-Host "Creating .mdb for $_"
|
||||
& "tools\pdb2mdb\pdb2mdb.exe" $_.fullname
|
||||
}
|
||||
|
||||
get-childitem $testPackageFolder -File -Filter *log.config | foreach ($_) {remove-item $_.fullname}
|
||||
|
||||
CleanFolder $testPackageFolder $true
|
||||
|
||||
Write-Host "Adding MediaInfoDotNet.dll.config (for dllmap)"
|
||||
Copy-Item "$sourceFolder\MediaInfoDotNet.dll.config" -Destination $testPackageFolder -Force
|
||||
|
||||
Write-Host "##teamcity[progressFinish 'Creating Test Package']"
|
||||
}
|
||||
|
||||
Function RunGulp()
|
||||
{
|
||||
Write-Host "##teamcity[progressStart 'Running Gulp']"
|
||||
Invoke-Expression 'npm install'
|
||||
CheckExitCode
|
||||
|
||||
Invoke-Expression 'gulp build' -ErrorAction Continue -Verbose
|
||||
CheckExitCode
|
||||
|
||||
Write-Host "##teamcity[progressFinish 'Running Gulp']"
|
||||
}
|
||||
|
||||
Function CheckExitCode()
|
||||
{
|
||||
if ($lastexitcode -ne 0)
|
||||
{
|
||||
Write-Host $errorMessage
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
|
||||
Function CleanupWindowsPackage()
|
||||
{
|
||||
Write-Host Removing NzbDrone.Mono
|
||||
get-childitem $outputFolder -File -Filter NzbDrone.Mono.* -Recurse | foreach ($_) {remove-item $_.fullname}
|
||||
|
||||
Write-Host Adding NzbDrone.Windows to UpdatePackage
|
||||
Copy-Item $outputFolder\* $updateFolder -Filter NzbDrone.Windows.*
|
||||
}
|
||||
|
||||
Build
|
||||
RunGulp
|
||||
PackageMono
|
||||
PackageOsx
|
||||
PackageOsxApp
|
||||
PackageTests
|
||||
CleanupWindowsPackage
|
||||
Write-Warning "DEPRECATED -- Please use build.sh instead."
|
||||
265
build.sh
Executable file
@@ -0,0 +1,265 @@
|
||||
#! /bin/bash
|
||||
msBuild='/c/Program Files (x86)/MSBuild/14.0/Bin'
|
||||
outputFolder='./_output'
|
||||
outputFolderMono='./_output_mono'
|
||||
outputFolderOsx='./_output_osx'
|
||||
outputFolderOsxApp='./_output_osx_app'
|
||||
testPackageFolder='./_tests/'
|
||||
testSearchPattern='*.Test/bin/x86/Release'
|
||||
sourceFolder='./src'
|
||||
slnFile=$sourceFolder/NzbDrone.sln
|
||||
updateFolder=$outputFolder/NzbDrone.Update
|
||||
updateFolderMono=$outputFolderMono/NzbDrone.Update
|
||||
|
||||
nuget='tools/nuget/nuget.exe';
|
||||
CheckExitCode()
|
||||
{
|
||||
"$@"
|
||||
local status=$?
|
||||
if [ $status -ne 0 ]; then
|
||||
echo "error with $1" >&2
|
||||
exit 1
|
||||
fi
|
||||
return $status
|
||||
}
|
||||
|
||||
CleanFolder()
|
||||
{
|
||||
local path=$1
|
||||
local keepConfigFiles=$2
|
||||
|
||||
|
||||
find $path -name "*.transform" -exec rm "{}" \;
|
||||
|
||||
if [ $keepConfigFiles != true ] ; then
|
||||
find $path -name "*.dll.config" -exec rm "{}" \;
|
||||
fi
|
||||
|
||||
echo "Removing FluentValidation.Resources files"
|
||||
find $path -name "FluentValidation.resources.dll" -exec rm "{}" \;
|
||||
find $path -name "App.config" -exec rm "{}" \;
|
||||
|
||||
echo "Removing .less files"
|
||||
find $path -name "*.less" -exec rm "{}" \;
|
||||
|
||||
echo "Removing vshost files"
|
||||
find $path -name "*.vshost.exe" -exec rm "{}" \;
|
||||
|
||||
echo "Removing dylib files"
|
||||
find $path -name "*.dylib" -exec rm "{}" \;
|
||||
|
||||
echo "Removing Empty folders"
|
||||
find $path -depth -empty -type d -exec rm -r "{}" \;
|
||||
}
|
||||
|
||||
|
||||
|
||||
AddJsonNet()
|
||||
{
|
||||
rm $outputFolder/Newtonsoft.Json.*
|
||||
cp $sourceFolder/packages/Newtonsoft.Json.*/lib/net35/*.dll $outputFolder
|
||||
cp $sourceFolder/packages/Newtonsoft.Json.*/lib/net35/*.dll $outputFolder/NzbDrone.Update
|
||||
}
|
||||
|
||||
BuildWithMSBuild()
|
||||
{
|
||||
export PATH=$msBuild:$PATH
|
||||
CheckExitCode MSBuild.exe $slnFile //t:Clean //m
|
||||
$nuget restore $slnFile
|
||||
CheckExitCode MSBuild.exe $slnFile //p:Configuration=Release //p:Platform=x86 //t:Build //m //p:AllowedReferenceRelatedFileExtensions=.pdb
|
||||
}
|
||||
|
||||
BuildWithXbuild()
|
||||
{
|
||||
export MONO_IOMAP=case
|
||||
CheckExitCode xbuild /t:Clean $slnFile
|
||||
mono $nuget restore $slnFile
|
||||
CheckExitCode xbuild /p:Configuration=Release /p:Platform=x86 /t:Build /p:AllowedReferenceRelatedFileExtensions=.pdb $slnFile
|
||||
}
|
||||
|
||||
Build()
|
||||
{
|
||||
echo "##teamcity[progressStart 'Build']"
|
||||
|
||||
rm -rf $outputFolder
|
||||
|
||||
if [ $runtime = "dotnet" ] ; then
|
||||
BuildWithMSBuild
|
||||
else
|
||||
BuildWithXbuild
|
||||
fi
|
||||
|
||||
CleanFolder $outputFolder false
|
||||
|
||||
AddJsonNet
|
||||
|
||||
echo "Removing Mono.Posix.dll"
|
||||
rm $outputFolder/Mono.Posix.dll
|
||||
|
||||
echo "##teamcity[progressFinish 'Build']"
|
||||
}
|
||||
|
||||
RunGulp()
|
||||
{
|
||||
echo "##teamcity[progressStart 'npm install']"
|
||||
npm-cache install npm || CheckExitCode npm install
|
||||
echo "##teamcity[progressFinish 'npm install']"
|
||||
|
||||
echo "##teamcity[progressStart 'Running gulp']"
|
||||
CheckExitCode npm run build
|
||||
echo "##teamcity[progressFinish 'Running gulp']"
|
||||
}
|
||||
|
||||
CreateMdbs()
|
||||
{
|
||||
local path=$1
|
||||
if [ $runtime = "dotnet" ] ; then
|
||||
local pdbFiles=( $(find $path -name "*.pdb") )
|
||||
for filename in "${pdbFiles[@]}"
|
||||
do
|
||||
if [ -e ${filename%.pdb}.dll ] ; then
|
||||
tools/pdb2mdb/pdb2mdb.exe ${filename%.pdb}.dll
|
||||
fi
|
||||
if [ -e ${filename%.pdb}.exe ] ; then
|
||||
tools/pdb2mdb/pdb2mdb.exe ${filename%.pdb}.exe
|
||||
fi
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
PackageMono()
|
||||
{
|
||||
echo "##teamcity[progressStart 'Creating Mono Package']"
|
||||
rm -rf $outputFolderMono
|
||||
cp -r $outputFolder $outputFolderMono
|
||||
|
||||
echo "Creating MDBs"
|
||||
CreateMdbs $outputFolderMono
|
||||
|
||||
echo "Removing PDBs"
|
||||
find $outputFolderMono -name "*.pdb" -exec rm "{}" \;
|
||||
|
||||
echo "Removing Service helpers"
|
||||
rm -f $outputFolderMono/ServiceUninstall.*
|
||||
rm -f $outputFolderMono/ServiceInstall.*
|
||||
|
||||
echo "Removing native windows binaries Sqlite, MediaInfo"
|
||||
rm -f $outputFolderMono/sqlite3.*
|
||||
rm -f $outputFolderMono/MediaInfo.*
|
||||
|
||||
echo "Adding NzbDrone.Core.dll.config (for dllmap)"
|
||||
cp $sourceFolder/NzbDrone.Core/NzbDrone.Core.dll.config $outputFolderMono
|
||||
|
||||
echo "Adding CurlSharp.dll.config (for dllmap)"
|
||||
cp $sourceFolder/NzbDrone.Common/CurlSharp.dll.config $outputFolderMono
|
||||
|
||||
echo "Renaming NzbDrone.Console.exe to NzbDrone.exe"
|
||||
rm $outputFolderMono/Radarr.exe*
|
||||
for file in $outputFolderMono/Radarr.Console.exe*; do
|
||||
mv "$file" "${file//.Console/}"
|
||||
done
|
||||
|
||||
echo "Removing NzbDrone.Windows"
|
||||
rm $outputFolderMono/NzbDrone.Windows.*
|
||||
|
||||
echo "Adding NzbDrone.Mono to UpdatePackage"
|
||||
cp $outputFolderMono/NzbDrone.Mono.* $updateFolderMono
|
||||
|
||||
echo "##teamcity[progressFinish 'Creating Mono Package']"
|
||||
}
|
||||
|
||||
PackageOsx()
|
||||
{
|
||||
echo "##teamcity[progressStart 'Creating OS X Package']"
|
||||
rm -rf $outputFolderOsx
|
||||
cp -r $outputFolderMono $outputFolderOsx
|
||||
|
||||
echo "Adding sqlite dylibs"
|
||||
cp $sourceFolder/Libraries/Sqlite/*.dylib $outputFolderOsx
|
||||
|
||||
echo "Adding MediaInfo dylib"
|
||||
cp $sourceFolder/Libraries/MediaInfo/*.dylib $outputFolderOsx
|
||||
|
||||
echo "Adding Startup script"
|
||||
cp ./osx/Sonarr $outputFolderOsx
|
||||
|
||||
echo "##teamcity[progressFinish 'Creating OS X Package']"
|
||||
}
|
||||
|
||||
PackageOsxApp()
|
||||
{
|
||||
echo "##teamcity[progressStart 'Creating OS X App Package']"
|
||||
rm -rf $outputFolderOsxApp
|
||||
mkdir $outputFolderOsxApp
|
||||
|
||||
cp -r ./osx/Radarr.app $outputFolderOsxApp
|
||||
cp -r $outputFolderOsx $outputFolderOsxApp/Radarr.app/Contents/MacOS
|
||||
|
||||
echo "##teamcity[progressFinish 'Creating OS X App Package']"
|
||||
}
|
||||
|
||||
PackageTests()
|
||||
{
|
||||
echo "Packaging Tests"
|
||||
echo "##teamcity[progressStart 'Creating Test Package']"
|
||||
rm -rf $testPackageFolder
|
||||
mkdir $testPackageFolder
|
||||
|
||||
find $sourceFolder -path $testSearchPattern -exec cp -r -u -T "{}" $testPackageFolder \;
|
||||
|
||||
if [ $runtime = "dotnet" ] ; then
|
||||
$nuget install NUnit.ConsoleRunner -Version 3.2.0 -Output $testPackageFolder
|
||||
else
|
||||
mono $nuget install NUnit.ConsoleRunner -Version 3.2.0 -Output $testPackageFolder
|
||||
fi
|
||||
|
||||
cp $outputFolder/*.dll $testPackageFolder
|
||||
cp ./*.sh $testPackageFolder
|
||||
|
||||
echo "Creating MDBs for tests"
|
||||
CreateMdbs $testPackageFolder
|
||||
|
||||
rm -f $testPackageFolder/*.log.config
|
||||
|
||||
CleanFolder $testPackageFolder true
|
||||
|
||||
echo "Adding NzbDrone.Core.dll.config (for dllmap)"
|
||||
cp $sourceFolder/NzbDrone.Core/NzbDrone.Core.dll.config $testPackageFolder
|
||||
|
||||
echo "Adding CurlSharp.dll.config (for dllmap)"
|
||||
cp $sourceFolder/NzbDrone.Common/CurlSharp.dll.config $testPackageFolder
|
||||
|
||||
echo "Copying CurlSharp libraries"
|
||||
cp $sourceFolder/ExternalModules/CurlSharp/libs/i386/* $testPackageFolder
|
||||
|
||||
echo "##teamcity[progressFinish 'Creating Test Package']"
|
||||
}
|
||||
|
||||
CleanupWindowsPackage()
|
||||
{
|
||||
echo "Removing NzbDrone.Mono"
|
||||
rm -f $outputFolder/NzbDrone.Mono.*
|
||||
|
||||
echo "Adding NzbDrone.Windows to UpdatePackage"
|
||||
cp $outputFolder/NzbDrone.Windows.* $updateFolder
|
||||
}
|
||||
|
||||
# Use mono or .net depending on OS
|
||||
case "$(uname -s)" in
|
||||
CYGWIN*|MINGW32*|MINGW64*|MSYS*)
|
||||
# on windows, use dotnet
|
||||
runtime="dotnet"
|
||||
;;
|
||||
*)
|
||||
# otherwise use mono
|
||||
runtime="mono"
|
||||
;;
|
||||
esac
|
||||
|
||||
Build
|
||||
RunGulp
|
||||
PackageMono
|
||||
PackageOsx
|
||||
PackageOsxApp
|
||||
PackageTests
|
||||
CleanupWindowsPackage
|
||||
@@ -1,50 +0,0 @@
|
||||
<Query Kind="Program" />
|
||||
|
||||
void Main()
|
||||
{
|
||||
var files = Directory.GetFiles("c:\\git\\sonarr\\src\\UI","*.js", SearchOption.AllDirectories);
|
||||
|
||||
var moduleRegex = new Regex(@"module.exports\s*=\s*\(function\s*\(\)\s*{\n\s*return\s*(\w|\W)*\)\.call\(this\);$");
|
||||
var functionHead = new Regex(@"\s*\(function\s*\(\)\s*{\n\s*return\s*");
|
||||
var functionTail = new Regex(@"\}\).call\(this\);$");
|
||||
var multiVar = new Regex(@"^(?<d>var\s*\w*\s*=\s*require\(.*\)),");
|
||||
var seperateDeclearatuin = new Regex(@"^((\w|\$|_)*\s=\srequire\(.*\))(,|;)", RegexOptions.Multiline);
|
||||
|
||||
foreach (var filePath in files)
|
||||
{
|
||||
var text = File.ReadAllText(filePath);
|
||||
|
||||
var newContent = text.Replace("// Generated by uRequire v0.7.0-beta.14 template: 'nodejs'","");
|
||||
|
||||
newContent = newContent.Replace("var __isAMD = !!(typeof define === 'function' && define.amd),","");
|
||||
newContent = newContent.Replace("__isNode = (typeof exports === 'object'),","");
|
||||
newContent = newContent.Replace("__isWeb = !__isNode;","");
|
||||
newContent = newContent.Replace("\"use strict\";","'use strict';");
|
||||
|
||||
newContent = newContent.Trim();
|
||||
|
||||
|
||||
|
||||
if(moduleRegex.IsMatch(newContent))
|
||||
{
|
||||
filePath.Dump();
|
||||
|
||||
newContent = functionHead.Replace(newContent," ");
|
||||
newContent = functionTail.Replace(newContent,"");
|
||||
}
|
||||
|
||||
if(multiVar.IsMatch(newContent))
|
||||
{
|
||||
newContent = multiVar.Replace(newContent,"$1;"); //first one
|
||||
|
||||
}
|
||||
|
||||
newContent = seperateDeclearatuin.Replace(newContent,"var $1;"); //ones after
|
||||
newContent.Replace("var $ = require('jquery'), var","var $ = require('jquery');");
|
||||
|
||||
File.WriteAllText(filePath,newContent.Trim());
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// Define other methods and classes here
|
||||
2
debian/copyright
vendored
@@ -3,7 +3,7 @@ Upstream-Name: nzbdrone
|
||||
Source: https://github.com/Sonarr/Sonarr
|
||||
|
||||
Files: *
|
||||
Copyright: 2010-2014 Sonarr <hello@sonarr.tv>
|
||||
Copyright: 2010-2016 Sonarr <hello@sonarr.tv>
|
||||
|
||||
License: GPL-3.0+
|
||||
|
||||
|
||||
@@ -6,7 +6,13 @@ require('./less');
|
||||
require('./handlebars');
|
||||
require('./copy');
|
||||
|
||||
gulp.task('build', function () {
|
||||
return runSequence('clean',
|
||||
['webpack', 'less', 'handlebars', 'copyHtml', 'copyContent', 'copyJs']);
|
||||
gulp.task('build', function() {
|
||||
return runSequence('clean', [
|
||||
'webpack',
|
||||
'less',
|
||||
'handlebars',
|
||||
'copyHtml',
|
||||
'copyContent',
|
||||
'copyJs'
|
||||
]);
|
||||
});
|
||||
|
||||
@@ -3,6 +3,6 @@ var del = require('del');
|
||||
|
||||
var paths = require('./paths');
|
||||
|
||||
gulp.task('clean', function (cb) {
|
||||
del([paths.dest.root], cb);
|
||||
gulp.task('clean', function(cb) {
|
||||
del([paths.dest.root], cb);
|
||||
});
|
||||
|
||||
30
gulp/copy.js
@@ -1,27 +1,31 @@
|
||||
var gulp = require('gulp');
|
||||
var print = require('gulp-print');
|
||||
var cache = require('gulp-cached');
|
||||
var livereload = require('gulp-livereload');
|
||||
|
||||
var paths = require('./paths.js');
|
||||
|
||||
gulp.task('copyJs', function () {
|
||||
return gulp.src(
|
||||
[
|
||||
paths.src.root + "polyfills.js",
|
||||
paths.src.root + "JsLibraries\\handlebars.runtime.js",
|
||||
])
|
||||
.pipe(cache('copyJs'))
|
||||
.pipe(print())
|
||||
.pipe(gulp.dest(paths.dest.root));
|
||||
return gulp.src(
|
||||
[
|
||||
paths.src.root + 'polyfills.js',
|
||||
paths.src.root + 'JsLibraries/handlebars.runtime.js'
|
||||
])
|
||||
.pipe(cache('copyJs'))
|
||||
.pipe(print())
|
||||
.pipe(gulp.dest(paths.dest.root))
|
||||
.pipe(livereload());
|
||||
});
|
||||
|
||||
gulp.task('copyHtml', function () {
|
||||
return gulp.src(paths.src.html)
|
||||
.pipe(cache('copyHtml'))
|
||||
.pipe(gulp.dest(paths.dest.root));
|
||||
return gulp.src(paths.src.html)
|
||||
.pipe(cache('copyHtml'))
|
||||
.pipe(gulp.dest(paths.dest.root))
|
||||
.pipe(livereload());
|
||||
});
|
||||
|
||||
gulp.task('copyContent', function () {
|
||||
return gulp.src([paths.src.content + '**/*.*', '!**/*.less'])
|
||||
.pipe(gulp.dest(paths.dest.content));
|
||||
return gulp.src([paths.src.content + '**/*.*', '!**/*.less'])
|
||||
.pipe(gulp.dest(paths.dest.content))
|
||||
.pipe(livereload());
|
||||
});
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
module.exports = {
|
||||
onError:function (error) {
|
||||
onError : function(error) {
|
||||
//If you want details of the error in the console
|
||||
console.log(error.toString());
|
||||
this.emit('end');
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -8,5 +8,4 @@ require('./less.js');
|
||||
require('./stripBom.js');
|
||||
require('./imageMin.js');
|
||||
require('./webpack.js');
|
||||
|
||||
|
||||
require('./start.js');
|
||||
|
||||
@@ -3,21 +3,25 @@ var handlebars = require('gulp-handlebars');
|
||||
var declare = require('gulp-declare');
|
||||
var concat = require('gulp-concat');
|
||||
var wrap = require("gulp-wrap");
|
||||
var livereload = require('gulp-livereload');
|
||||
var path = require('path');
|
||||
var streamqueue = require('streamqueue');
|
||||
var stripbom = require('gulp-stripbom');
|
||||
|
||||
var paths = require('./paths.js');
|
||||
|
||||
gulp.task('handlebars', function () {
|
||||
gulp.task('handlebars', function() {
|
||||
|
||||
var coreStream = gulp.src([paths.src.templates, '!*/**/*Partial.*'])
|
||||
.pipe(stripbom({ showLog: false }))
|
||||
var coreStream = gulp.src([
|
||||
paths.src.templates,
|
||||
'!*/**/*Partial.*'
|
||||
])
|
||||
.pipe(stripbom({ showLog : false }))
|
||||
.pipe(handlebars())
|
||||
.pipe(declare({
|
||||
namespace: 'T',
|
||||
noRedeclare: true,
|
||||
processName: function (filePath) {
|
||||
namespace : 'T',
|
||||
noRedeclare : true,
|
||||
processName : function(filePath) {
|
||||
|
||||
filePath = path.relative(paths.src.root, filePath);
|
||||
|
||||
@@ -29,12 +33,12 @@ gulp.task('handlebars', function () {
|
||||
}));
|
||||
|
||||
var partialStream = gulp.src([paths.src.partials])
|
||||
.pipe(stripbom({ showLog: false }))
|
||||
.pipe(stripbom({ showLog : false }))
|
||||
.pipe(handlebars())
|
||||
.pipe(wrap('Handlebars.template(<%= contents %>)'))
|
||||
.pipe(wrap('Handlebars.registerPartial(<%= processPartialName(file.relative) %>, <%= contents %>)', {}, {
|
||||
imports: {
|
||||
processPartialName: function (fileName) {
|
||||
imports : {
|
||||
processPartialName : function(fileName) {
|
||||
return JSON.stringify(
|
||||
path.basename(fileName, '.js')
|
||||
);
|
||||
@@ -42,11 +46,10 @@ gulp.task('handlebars', function () {
|
||||
}
|
||||
}));
|
||||
|
||||
|
||||
return streamqueue({ objectMode: true },
|
||||
return streamqueue({ objectMode : true },
|
||||
partialStream,
|
||||
coreStream
|
||||
).pipe(concat('templates.js'))
|
||||
|
||||
.pipe(gulp.dest(paths.dest.root));
|
||||
.pipe(gulp.dest(paths.dest.root))
|
||||
.pipe(livereload());
|
||||
});
|
||||
|
||||
@@ -2,14 +2,13 @@ var gulp = require('gulp');
|
||||
var print = require('gulp-print');
|
||||
var paths = require('./paths.js');
|
||||
|
||||
|
||||
gulp.task('imageMin', function () {
|
||||
gulp.task('imageMin', function() {
|
||||
var imagemin = require('gulp-imagemin');
|
||||
return gulp.src(paths.src.images)
|
||||
.pipe(imagemin({
|
||||
progressive: false,
|
||||
optimizationLevel :4,
|
||||
svgoPlugins: [{removeViewBox: false}]
|
||||
progressive : false,
|
||||
optimizationLevel : 4,
|
||||
svgoPlugins : [{ removeViewBox : false }]
|
||||
}))
|
||||
.pipe(print())
|
||||
.pipe(gulp.dest(paths.src.content + 'Images/'));
|
||||
|
||||
@@ -4,9 +4,11 @@ var stylish = require('jshint-stylish');
|
||||
var cache = require('gulp-cached');
|
||||
var paths = require('./paths.js');
|
||||
|
||||
|
||||
gulp.task('jshint', function () {
|
||||
return gulp.src([paths.src.scripts, paths.src.exclude.libs])
|
||||
gulp.task('jshint', function() {
|
||||
return gulp.src([
|
||||
paths.src.scripts,
|
||||
paths.src.exclude.libs
|
||||
])
|
||||
.pipe(cache('jshint'))
|
||||
.pipe(jshint())
|
||||
.pipe(jshint.reporter(stylish));
|
||||
|
||||
62
gulp/less.js
@@ -1,33 +1,49 @@
|
||||
var gulp = require('gulp');
|
||||
var less = require('gulp-less');
|
||||
var print = require('gulp-print');
|
||||
|
||||
var less = require('gulp-less');
|
||||
var postcss = require('gulp-postcss');
|
||||
var sourcemaps = require('gulp-sourcemaps');
|
||||
var autoprefixer = require('autoprefixer-core');
|
||||
var livereload = require('gulp-livereload');
|
||||
|
||||
var print = require('gulp-print');
|
||||
var paths = require('./paths');
|
||||
var errorHandler = require('./errorHandler');
|
||||
|
||||
gulp.task('less', function () {
|
||||
return gulp.src([
|
||||
paths.src.content + 'bootstrap.less',
|
||||
paths.src.content + 'theme.less',
|
||||
paths.src.content + 'overrides.less',
|
||||
paths.src.root + 'Series/series.less',
|
||||
paths.src.root + 'Activity/activity.less',
|
||||
paths.src.root + 'AddSeries/addSeries.less',
|
||||
paths.src.root + 'Calendar/calendar.less',
|
||||
paths.src.root + 'Cells/cells.less',
|
||||
paths.src.root + 'Settings/settings.less',
|
||||
paths.src.root + 'System/Logs/logs.less',
|
||||
paths.src.root + 'System/Update/update.less',
|
||||
paths.src.root + 'System/Info/info.less',
|
||||
])
|
||||
gulp.task('less', function() {
|
||||
|
||||
var src = [
|
||||
paths.src.content + 'bootstrap.less',
|
||||
paths.src.content + 'theme.less',
|
||||
paths.src.content + 'overrides.less',
|
||||
paths.src.root + 'Series/series.less',
|
||||
paths.src.root + 'Activity/activity.less',
|
||||
paths.src.root + 'AddSeries/addSeries.less',
|
||||
paths.src.root + 'AddMovies/addMovies.less',
|
||||
paths.src.root + 'Calendar/calendar.less',
|
||||
paths.src.root + 'Cells/cells.less',
|
||||
paths.src.root + 'ManualImport/manualimport.less',
|
||||
paths.src.root + 'Settings/settings.less',
|
||||
paths.src.root + 'System/Logs/logs.less',
|
||||
paths.src.root + 'System/Update/update.less',
|
||||
paths.src.root + 'System/Info/info.less',
|
||||
paths.src.root + 'Movies/movies.less',
|
||||
|
||||
];
|
||||
|
||||
return gulp.src(src)
|
||||
.pipe(print())
|
||||
.pipe(sourcemaps.init())
|
||||
.pipe(less({
|
||||
dumpLineNumbers: 'false',
|
||||
compress: true,
|
||||
yuicompress: true,
|
||||
ieCompat: true,
|
||||
strictImports: true
|
||||
dumpLineNumbers : 'false',
|
||||
compress : true,
|
||||
yuicompress : true,
|
||||
ieCompat : true,
|
||||
strictImports : true
|
||||
}))
|
||||
.pipe(postcss([ autoprefixer({ browsers: ['last 2 versions'] }) ]))
|
||||
.on('error', errorHandler.onError)
|
||||
.pipe(gulp.dest(paths.dest.content));
|
||||
.pipe(sourcemaps.write(paths.dest.content))
|
||||
.pipe(gulp.dest(paths.dest.content))
|
||||
.pipe(livereload());
|
||||
});
|
||||
|
||||
@@ -1,19 +1,21 @@
|
||||
module.exports = {
|
||||
src: {
|
||||
root: './src/UI/',
|
||||
templates: './src/UI/**/*.hbs',
|
||||
html: './src/UI/*.html',
|
||||
partials: './src/UI/**/*Partial.hbs',
|
||||
scripts: './src/UI/**/*.js',
|
||||
less: ['./src/UI/**/*.less'],
|
||||
content: './src/UI/Content/',
|
||||
images: './src/UI/Content/Images/**/*',
|
||||
exclude :{
|
||||
libs:'!./src/UI/JsLibraries/**'
|
||||
var paths = {
|
||||
src : {
|
||||
root : './src/UI/',
|
||||
templates : './src/UI/**/*.hbs',
|
||||
html : './src/UI/*.html',
|
||||
partials : './src/UI/**/*Partial.hbs',
|
||||
scripts : './src/UI/**/*.js',
|
||||
less : ['./src/UI/**/*.less'],
|
||||
content : './src/UI/Content/',
|
||||
images : './src/UI/Content/Images/**/*',
|
||||
exclude : {
|
||||
libs : '!./src/UI/JsLibraries/**'
|
||||
}
|
||||
},
|
||||
dest: {
|
||||
root: './_output/UI/',
|
||||
content: './_output/UI/Content/'
|
||||
dest : {
|
||||
root : './_output/UI/',
|
||||
content : './_output/UI/Content/'
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = paths;
|
||||
|
||||
112
gulp/start.js
Normal file
@@ -0,0 +1,112 @@
|
||||
// will download and run sonarr (server) in a non-windows enviroment
|
||||
// you can use this if you don't care about the server code and just want to work
|
||||
// with the web code.
|
||||
|
||||
var http = require('http');
|
||||
var gulp = require('gulp');
|
||||
var fs = require('fs');
|
||||
var targz = require('tar.gz');
|
||||
var del = require('del');
|
||||
var print = require('gulp-print');
|
||||
var spawn = require('child_process').spawn;
|
||||
|
||||
function download(url, dest, cb) {
|
||||
console.log('Downloading ' + url + ' to ' + dest);
|
||||
var file = fs.createWriteStream(dest);
|
||||
var request = http.get(url, function (response) {
|
||||
response.pipe(file);
|
||||
file.on('finish', function () {
|
||||
console.log('Download completed');
|
||||
file.close(cb);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function getLatest(cb) {
|
||||
var branch = 'develop';
|
||||
process.argv.forEach(function (val) {
|
||||
var branchMatch = /branch=([\S]*)/.exec(val);
|
||||
if (branchMatch && branchMatch.length > 1) {
|
||||
branch = branchMatch[1];
|
||||
}
|
||||
});
|
||||
|
||||
var url = 'http://services.sonarr.tv/v1/update/' + branch + '?os=osx';
|
||||
|
||||
console.log('Checking for latest version:', url);
|
||||
|
||||
http.get(url, function (res) {
|
||||
var data = '';
|
||||
|
||||
res.on('data', function (chunk) {
|
||||
data += chunk;
|
||||
});
|
||||
|
||||
res.on('end', function () {
|
||||
var updatePackage = JSON.parse(data).updatePackage;
|
||||
console.log('Latest version available: ' + updatePackage.version + ' Release Date: ' + updatePackage.releaseDate);
|
||||
cb(updatePackage);
|
||||
});
|
||||
}).on('error', function (e) {
|
||||
console.log('problem with request: ' + e.message);
|
||||
});
|
||||
}
|
||||
|
||||
function extract(source, dest, cb) {
|
||||
console.log('extracting download page to ' + dest);
|
||||
new targz().extract(source, dest, function (err) {
|
||||
if (err) {
|
||||
console.log(err);
|
||||
}
|
||||
console.log('Update package extracted.');
|
||||
cb();
|
||||
});
|
||||
}
|
||||
|
||||
gulp.task('getSonarr', function () {
|
||||
|
||||
//gulp.src('/Users/kayone/git/Sonarr/_start/2.0.0.3288/NzbDrone/*.*')
|
||||
// .pipe(print())
|
||||
// .pipe(gulp.dest('./_output
|
||||
|
||||
//return;
|
||||
try {
|
||||
fs.mkdirSync('./_start/');
|
||||
} catch (e) {
|
||||
if (e.code != 'EEXIST') {
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
getLatest(function (package) {
|
||||
var packagePath = "./_start/" + package.filename;
|
||||
var dirName = "./_start/" + package.version;
|
||||
download(package.url, packagePath, function () {
|
||||
extract(packagePath, dirName, function () {
|
||||
// clean old binaries
|
||||
console.log('Cleaning old binaries');
|
||||
del.sync(['./_output/*', '!./_output/UI/']);
|
||||
console.log('copying binaries to target');
|
||||
gulp.src(dirName + '/NzbDrone/*.*')
|
||||
.pipe(gulp.dest('./_output/'));
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
gulp.task('startSonarr', function () {
|
||||
|
||||
var ls = spawn('mono', ['--debug', './_output/NzbDrone.exe']);
|
||||
|
||||
ls.stdout.on('data', function (data) {
|
||||
process.stdout.write('' + data);
|
||||
});
|
||||
|
||||
ls.stderr.on('data', function (data) {
|
||||
process.stdout.write('' + data);
|
||||
});
|
||||
|
||||
ls.on('close', function (code) {
|
||||
console.log('child process exited with code ' + code);
|
||||
});
|
||||
});
|
||||
@@ -7,6 +7,10 @@ var stripBom = function (dest) {
|
||||
.pipe(stripbom({ showLog: false }))
|
||||
.pipe(gulp.dest(dest));
|
||||
|
||||
gulp.src(paths.src.less)
|
||||
.pipe(stripbom({ showLog: false }))
|
||||
.pipe(gulp.dest(dest));
|
||||
|
||||
gulp.src(paths.src.templates)
|
||||
.pipe(stripbom({ showLog: false }))
|
||||
.pipe(gulp.dest(dest));
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
var gulp = require('gulp');
|
||||
//var livereload = require('gulp-livereload');
|
||||
|
||||
var livereload = require('gulp-livereload');
|
||||
|
||||
var paths = require('./paths.js');
|
||||
|
||||
@@ -10,24 +9,12 @@ require('./less.js');
|
||||
require('./copy.js');
|
||||
require('./webpack.js');
|
||||
|
||||
|
||||
gulp.task('watch', ['jshint', 'handlebars', 'less','copyHtml', 'copyContent','copyJs'], function () {
|
||||
gulp.start('webpackWatch');
|
||||
gulp.watch([paths.src.scripts, paths.src.exclude.libs], ['jshint','copyJs']);
|
||||
gulp.watch(paths.src.templates, ['handlebars']);
|
||||
gulp.watch([paths.src.less, paths.src.exclude.libs], ['less']);
|
||||
gulp.watch([paths.src.html], ['copyHtml']);
|
||||
gulp.watch([paths.src.content + '**/*.*', '!**/*.less'], ['copyContent']);
|
||||
});
|
||||
|
||||
gulp.task('liveReload', ['jshint', 'handlebars', 'less', 'webPack'], function () {
|
||||
var server = livereload();
|
||||
gulp.watch([
|
||||
'app/**/*.js',
|
||||
'app/**/*.css',
|
||||
'app/index.html',
|
||||
'app/login.html'
|
||||
]).on('change', function (file) {
|
||||
server.changed(file.path);
|
||||
});
|
||||
});
|
||||
gulp.task('watch', ['jshint', 'handlebars', 'less', 'copyHtml', 'copyContent', 'copyJs'], function () {
|
||||
livereload.listen();
|
||||
gulp.start('webpackWatch');
|
||||
gulp.watch([paths.src.scripts, paths.src.exclude.libs], ['jshint', 'copyJs']);
|
||||
gulp.watch(paths.src.templates, ['handlebars']);
|
||||
gulp.watch([paths.src.less, paths.src.exclude.libs], ['less']);
|
||||
gulp.watch([paths.src.html], ['copyHtml']);
|
||||
gulp.watch([paths.src.content + '**/*.*', '!**/*.less'], ['copyContent']);
|
||||
});
|
||||
@@ -1,20 +1,13 @@
|
||||
var gulp = require('gulp');
|
||||
|
||||
var gulpWebpack = require('gulp-webpack');
|
||||
var webpack = require('webpack');
|
||||
var webpackStream = require('webpack-stream');
|
||||
var livereload = require('gulp-livereload');
|
||||
var webpackConfig = require('../webpack.config');
|
||||
|
||||
webpackConfig.devtool = "#source-map";
|
||||
|
||||
gulp.task('webpack', function() {
|
||||
return gulp.src('main.js')
|
||||
.pipe(gulpWebpack(webpackConfig, webpack))
|
||||
.pipe(gulp.dest(''));
|
||||
return gulp.src('main.js').pipe(webpackStream(webpackConfig)).pipe(gulp.dest(''));
|
||||
});
|
||||
|
||||
gulp.task('webpackWatch', function() {
|
||||
webpackConfig.watch = true;
|
||||
return gulp.src('main.js')
|
||||
.pipe(gulpWebpack(webpackConfig, webpack))
|
||||
.pipe(gulp.dest(''));
|
||||
webpackConfig.watch = true;
|
||||
return gulp.src('main.js').pipe(webpackStream(webpackConfig)).pipe(gulp.dest('')).pipe(livereload());
|
||||
});
|
||||
|
||||
@@ -1 +1 @@
|
||||
require('./gulp/gulpfile.js');
|
||||
require('./gulp/gulpFile.js');
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
EXCLUDE="-exclude:Windows -include:IntegrationTest"
|
||||
TESTDIR="."
|
||||
NUNIT="$TESTDIR/NUnit.Runners.2.6.1/tools/nunit-console-x86.exe"
|
||||
|
||||
mono --debug --runtime=v4.0 $NUNIT $EXCLUDE -xml:NzbDrone.Api.Result.xml $TESTDIR/NzbDrone.Api.Test.dll
|
||||
mono --debug --runtime=v4.0 $NUNIT $EXCLUDE -xml:NzbDrone.Core.Result.xml $TESTDIR/NzbDrone.Core.Test.dll
|
||||
mono --debug --runtime=v4.0 $NUNIT $EXCLUDE -xml:NzbDrone.Integration.Result.xml $TESTDIR/NzbDrone.Integration.Test.dll
|
||||
@@ -13,7 +13,7 @@
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>Sonarr</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>sonarr.icns</string>
|
||||
<string>radarr.icns</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.osx.sonarr.tv</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
BIN
osx/Radarr.app/Contents/Resources/radarr.icns
Normal file
45
osx/Sonarr
@@ -1,31 +1,48 @@
|
||||
#!/bin/sh
|
||||
|
||||
|
||||
#get the bundle's MacOS directory full path
|
||||
DIR=$(cd "$(dirname "$0")"; pwd)
|
||||
|
||||
|
||||
#change these values to match your app
|
||||
EXE_PATH="$DIR/nzbdrone.exe"
|
||||
EXE_PATH="$DIR/Radarr.exe"
|
||||
APPNAME="Sonarr"
|
||||
|
||||
|
||||
#set up environment
|
||||
MONO_FRAMEWORK_PATH=/Library/Frameworks/Mono.framework/Versions/Current
|
||||
export DYLD_FALLBACK_LIBRARY_PATH="$DIR:$MONO_FRAMEWORK_PATH/lib:/lib:/usr/lib"
|
||||
export PATH="$MONO_FRAMEWORK_PATH/bin:$PATH"
|
||||
|
||||
if [[ -x '/opt/local/bin/mono' ]]; then
|
||||
export PATH="/opt/local/bin:$PATH"
|
||||
fi
|
||||
|
||||
export DYLD_FALLBACK_LIBRARY_PATH="$DIR"
|
||||
|
||||
if [ -e /Library/Frameworks/Mono.framework ]; then
|
||||
MONO_FRAMEWORK_PATH=/Library/Frameworks/Mono.framework/Versions/Current
|
||||
export PATH="$MONO_FRAMEWORK_PATH/bin:$PATH"
|
||||
export DYLD_FALLBACK_LIBRARY_PATH="$DYLD_FALLBACK_LIBRARY_PATH:$MONO_FRAMEWORK_PATH/lib"
|
||||
fi
|
||||
|
||||
if [[ -f '/opt/local/lib/libsqlite3.0.dylib' ]]; then
|
||||
export DYLD_FALLBACK_LIBRARY_PATH="/opt/local/lib:$DYLD_FALLBACK_LIBRARY_PATH"
|
||||
fi
|
||||
|
||||
export DYLD_FALLBACK_LIBRARY_PATH="$DYLD_FALLBACK_LIBRARY_PATH:$HOME/lib:/usr/local/lib:/lib:/usr/lib"
|
||||
|
||||
#mono version check
|
||||
REQUIRED_MAJOR=3
|
||||
REQUIRED_MINOR=10
|
||||
|
||||
|
||||
VERSION_TITLE="Cannot launch $APPNAME"
|
||||
VERSION_MSG="$APPNAME requires Mono Runtime Environment(MRE) $REQUIRED_MAJOR.$REQUIRED_MINOR or later."
|
||||
DOWNLOAD_URL="http://www.mono-project.com/download/#download-mac"
|
||||
|
||||
|
||||
MONO_VERSION="$(mono --version | grep 'Mono JIT compiler version ' | cut -f5 -d\ )"
|
||||
# if [[ -o DEBUG ]]; then osascript -e "display dialog \"MONO_VERSION: $MONO_VERSION\""; fi
|
||||
|
||||
|
||||
MONO_VERSION_MAJOR="$(echo $MONO_VERSION | cut -f1 -d.)"
|
||||
MONO_VERSION_MINOR="$(echo $MONO_VERSION | cut -f2 -d.)"
|
||||
if [ -z "$MONO_VERSION" ] \
|
||||
|| [ $MONO_VERSION_MAJOR -lt $REQUIRED_MAJOR ] \
|
||||
|| [ $MONO_VERSION_MAJOR -eq $REQUIRED_MAJOR -a $MONO_VERSION_MINOR -lt $REQUIRED_MINOR ]
|
||||
|| [ $MONO_VERSION_MAJOR -eq $REQUIRED_MAJOR -a $MONO_VERSION_MINOR -lt $REQUIRED_MINOR ]
|
||||
then
|
||||
osascript \
|
||||
-e "set question to display dialog \"$VERSION_MSG\" with title \"$VERSION_TITLE\" buttons {\"Cancel\", \"Download...\"} default button 2" \
|
||||
@@ -34,8 +51,8 @@ then
|
||||
echo "$VERSION_MSG"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
MONO_EXEC="exec mono --debug"
|
||||
|
||||
|
||||
#run app using mono
|
||||
$MONO_EXEC "$EXE_PATH"
|
||||
$MONO_EXEC "$EXE_PATH"
|
||||
|
||||
43
package.json
@@ -4,36 +4,43 @@
|
||||
"description": "Sonarr",
|
||||
"main": "main.js",
|
||||
"scripts": {
|
||||
"preinstall": ""
|
||||
"build": "gulp build",
|
||||
"start": "gulp watch"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git://github.com/Sonarr/Sonarr.git"
|
||||
},
|
||||
"author": "",
|
||||
"license": "BSD",
|
||||
"license": "GPL-3.0",
|
||||
"gitHead": "9ff7aa1bf7fe38c4c5bdb92f56c8ad556916ed67",
|
||||
"readmeFilename": "readme.md",
|
||||
"dependencies": {
|
||||
"del": "1.1.1",
|
||||
"gulp": "3.8.10",
|
||||
"gulp-cached": "1.0.2",
|
||||
"gulp-concat": "2.4.3",
|
||||
"autoprefixer-core": "5.2.1",
|
||||
"del": "1.2.0",
|
||||
"gulp": "3.9.0",
|
||||
"gulp-cached": "1.1.0",
|
||||
"gulp-concat": "2.6.0",
|
||||
"gulp-declare": "0.3.0",
|
||||
"gulp-handlebars": "3.0.1",
|
||||
"gulp-jshint": "1.9.2",
|
||||
"gulp-less": "2.0.1",
|
||||
"gulp-jshint": "1.11.2",
|
||||
"gulp-less": "3.0.3",
|
||||
"gulp-livereload": "3.8.0",
|
||||
"gulp-postcss": "6.0.0",
|
||||
"gulp-print": "1.1.0",
|
||||
"gulp-replace": "0.5.2",
|
||||
"gulp-replace": "0.5.3",
|
||||
"gulp-run": "1.6.8",
|
||||
"gulp-sourcemaps": "1.5.2",
|
||||
"gulp-stripbom": "1.0.4",
|
||||
"gulp-run": "1.6.6",
|
||||
"gulp-webpack": "1.2.0",
|
||||
"gulp-wrap": "0.10.1",
|
||||
"handlebars": "2.0.0",
|
||||
"jshint-loader": "0.8.1",
|
||||
"jshint-stylish": "1.0.0",
|
||||
"run-sequence": "1.0.2",
|
||||
"streamqueue": "0.1.1",
|
||||
"webpack": "1.5.3"
|
||||
"gulp-webpack": "1.5.0",
|
||||
"gulp-wrap": "0.11.0",
|
||||
"handlebars": "3.0.3",
|
||||
"jshint-loader": "0.8.3",
|
||||
"jshint-stylish": "2.0.1",
|
||||
"run-sequence": "1.1.1",
|
||||
"streamqueue": "1.1.0",
|
||||
"tar.gz": "0.1.1",
|
||||
"webpack": "1.12.0",
|
||||
"webpack-stream": "2.1.0"
|
||||
}
|
||||
}
|
||||
|
||||
68
package.sh
Normal file
@@ -0,0 +1,68 @@
|
||||
if [ $# -eq 0 ]; then
|
||||
if [ "$TRAVIS_PULL_REQUEST" != false ]; then
|
||||
echo "Need to supply version argument" && exit;
|
||||
fi
|
||||
fi
|
||||
|
||||
# Use mono or .net depending on OS
|
||||
case "$(uname -s)" in
|
||||
CYGWIN*|MINGW32*|MINGW64*|MSYS*)
|
||||
# on windows, use dotnet
|
||||
runtime="dotnet"
|
||||
;;
|
||||
*)
|
||||
# otherwise use mono
|
||||
runtime="mono"
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then
|
||||
VERSION="`date +%H:%M:%S`"
|
||||
YEAR="`date +%Y`"
|
||||
MONTH="`date +%m`"
|
||||
DAY="`date +%d`"
|
||||
else
|
||||
VERSION=$1
|
||||
fi
|
||||
outputFolder='./_output'
|
||||
outputFolderMono='./_output_mono'
|
||||
outputFolderOsx='./_output_osx'
|
||||
outputFolderOsxApp='./_output_osx_app'
|
||||
|
||||
tr -d "\r" < $outputFolderOsxApp/Radarr.app/Contents/MacOS/Sonarr > $outputFolderOsxApp/Radarr.app/Contents/MacOS/Sonarr2
|
||||
rm $outputFolderOsxApp/Radarr.app/Contents/MacOS/Sonarr
|
||||
chmod +x $outputFolderOsxApp/Radarr.app/Contents/MacOS/Sonarr2
|
||||
mv $outputFolderOsxApp/Radarr.app/Contents/MacOS/Sonarr2 $outputFolderOsxApp/Radarr.app/Contents/MacOS/Sonarr >& error.log
|
||||
|
||||
cp -r $outputFolder/ Radarr_Windows_$VERSION
|
||||
cp -r $outputFolderMono/ Radarr_Mono_$VERSION
|
||||
cp -r $outputFolderOsxApp/ Radarr_OSX_$VERSION
|
||||
|
||||
if [ $runtime = "dotnet" ] ; then
|
||||
./7za.exe a Radarr_Windows_$VERSION.zip ./Radarr_Windows_$VERSION/*
|
||||
./7za.exe a -ttar -so Radarr_Mono_$VERSION.tar ./Radarr_Mono_$VERSION/* | ./7za.exe a -si Radarr_Mono_$VERSION.tar.gz
|
||||
./7za.exe a -ttar -so Radarr_OSX_$VERSION.tar ./_output_osx/* | ./7za.exe a -si Radarr_OSX_$VERSION.tar.gz
|
||||
./7za.exe a -ttar -so Radarr_OSX_App_$VERSION.tar ./_output_osx_app/* | ./7za.exe a -si Radarr_OSX_App_$VERSION.tar.gz
|
||||
else
|
||||
zip -r Radarr_Windows_$VERSION.zip Radarr_Windows_$VERSION/* >& /dev/null
|
||||
zip -r Radarr_Mono_$VERSION.zip Radarr_Mono_$VERSION/* >& /dev/null #TODO update for tar.gz
|
||||
zip -r Radarr_OSX_$VERSION_App.zip Radarr_OSX_$VERSION/* >& /dev/null
|
||||
fi
|
||||
ftp -n ftp.leonardogalli.ch << END_SCRIPT
|
||||
passive
|
||||
quote USER $FTP_USER
|
||||
quote PASS $FTP_PASS
|
||||
mkdir builds
|
||||
cd builds
|
||||
mkdir $YEAR
|
||||
cd $YEAR
|
||||
mkdir $MONTH
|
||||
cd $MONTH
|
||||
mkdir $DAY
|
||||
cd $DAY
|
||||
binary
|
||||
put Radarr_Windows_$VERSION.zip
|
||||
put Radarr_Mono_$VERSION.zip
|
||||
put Radarr_OSX_$VERSION.zip
|
||||
quit
|
||||
END_SCRIPT
|
||||
65
readme.md
@@ -1,50 +1,77 @@
|
||||
# Sonarr #
|
||||
# Radarr
|
||||
|
||||
| Service | Master | Develop |
|
||||
|----------|:---------------------------:|:----------------------------:|
|
||||
| AppVeyor | [](https://ci.appveyor.com/project/galli-leo/Radarr) | [](https://ci.appveyor.com/project/galli-leo/Radarr-usby1) |
|
||||
| Travis | [](https://travis-ci.org/galli-leo/Radarr) | [](https://travis-ci.org/galli-leo/Radarr) |
|
||||
|
||||
Sonarr is a PVR for Usenet and BitTorrent users. It can monitor multiple RSS feeds for new episodes of your favorite shows and will grab, sort and rename them. It can also be configured to automatically upgrade the quality of files already downloaded when a better quality format becomes available.
|
||||
This fork of Sonarr aims to turn it into something like Couchpotato.
|
||||
|
||||
## Currently working:
|
||||
* Adding new movies
|
||||
* Manually searching for releases of movies.
|
||||
* Automatically searching for releases.
|
||||
* Automatically importing downloaded movies.
|
||||
* Recognizing Special Editions, Director's Cut, etc.
|
||||
* Identifying releases with hardcoded subs.
|
||||
* Rarbg.to, Torznab and Newznab Indexer.
|
||||
* QBittorrent and Deluge download client (Other clients are coming)
|
||||
* New TorrentPotato Indexer (Works well with [Jackett](https://github.com/Jackett/Jackett))
|
||||
|
||||
## Planned Features:
|
||||
* Scanning PreDB to know when a new release is available.
|
||||
* Fixing the other Indexers and download clients.
|
||||
* Importing of Sonarr config.
|
||||
|
||||
## Download
|
||||
The latest precompiled binary versions can be found here: https://github.com/galli-leo/Radarr/releases.
|
||||
|
||||
Docker containers from [linuxserver.io](https://linuxserver.io) can be found here.
|
||||
* [Radarr (x64)](https://hub.docker.com/r/linuxserver/radarr/)
|
||||
* [Radarr (armhf)](https://hub.docker.com/r/lsioarmhf/radarr/)
|
||||
* [Radarr (aarch64)](https://hub.docker.com/r/lsioarmhf/radarr-aarch64/)
|
||||
|
||||
For more up to date versions (but also sometimes broken), daily builds can be found here:
|
||||
* [OSX](https://leonardogalli.ch/radarr/builds/latest.php?os=osx)
|
||||
* [Windows](https://leonardogalli.ch/radarr/builds/latest.php?os=windows)
|
||||
* [Linux](https://leonardogalli.ch/radarr/builds/latest.php?os=mono)
|
||||
|
||||
## Major Features Include: ##
|
||||
|
||||
* Support for major platforms: Windows, Linux, OSX, Raspberry Pi, etc.
|
||||
* Automatically detects new episodes
|
||||
* Can scan your existing library and download any missing episodes
|
||||
* Can watch for better quality of the episodes you already have and do an automatic upgrade. *eg. from DVD to Blu-Ray*
|
||||
* Support for major platforms: Windows, Linux, OSX, Raspberry Pi, etc.
|
||||
* Can watch for better quality of the movies you have and do an upgrade.
|
||||
* Automatic failed download handling will try another release if one fails
|
||||
* Manual search so you can pick any release or to see why a release was not downloaded automatically
|
||||
* Fully configurable episode renaming
|
||||
* Full integration with SABNzbd and NzbGet
|
||||
* Full integration with XBMC, Plex (notification, library update, metadata)
|
||||
* Full support for specials and multi-episode releases
|
||||
* Manual search so you can pick any release or to see why a release was not downloaded automatically.
|
||||
* Full integration with SABNzbd and NzbGet.
|
||||
* Full integration with XBMC, Plex (notification, library update, metadata).
|
||||
* And a beautiful UI
|
||||
|
||||
|
||||
## Configuring Development Environment: ##
|
||||
|
||||
### Requirements ###
|
||||
- Visual Studio 2013 ([Express Edition](http://www.microsoft.com/visualstudio/eng/products/visual-studio-express-for-web "Express Edition") might work but not tested.)
|
||||
- Visual Studio 2015 [Free Community Edition](https://www.visualstudio.com/en-us/products/visual-studio-community-vs.aspx) or Mono
|
||||
- [Git](http://git-scm.com/downloads)
|
||||
- [NodeJS](http://nodejs.org/download/)
|
||||
- [Gulp](http://gulpjs.com)
|
||||
|
||||
### Setup ###
|
||||
|
||||
- Make sure all the required software mentioned above are installed.
|
||||
- Clone the repository into your development machine. [*info*](https://help.github.com/articles/working-with-repositories)
|
||||
- Grab the submodules `git submodule init && git submodule update`
|
||||
- install the required Node Packages `npm install`
|
||||
- install gulp `npm install gulp -g`
|
||||
- start gulp to monitor your dev environment for any changes that need post processing using `gulp watch` command.
|
||||
- start gulp to monitor your dev environment for any changes that need post processing using `npm start` command.
|
||||
|
||||
*Please note gulp must be running at all times while you are working with NzbDrone client source files.*
|
||||
*Please note gulp must be running at all times while you are working with Sonarr client source files.*
|
||||
|
||||
|
||||
### Development ###
|
||||
- Open `NzbDrone.sln` in Visual Studio
|
||||
- Open `NzbDrone.sln` in Visual Studio or run the build.sh script, if Mono is installed.
|
||||
- Make sure `NzbDrone.Console` is set as the startup project
|
||||
|
||||
|
||||
### License ###
|
||||
* [GNU GPL v3](http://www.gnu.org/licenses/gpl.html)
|
||||
Copyright 2010-2014
|
||||
Copyright 2010-2016
|
||||
|
||||
|
||||
### Sponsors ###
|
||||
|
||||
17
rename.ps1
@@ -1,17 +0,0 @@
|
||||
Param(
|
||||
[Parameter(Mandatory=$true, Position=0, HelpMessage="A branch name is #requires required")]
|
||||
[string]$branch,
|
||||
[Parameter(Mandatory=$true, Position=1, HelpMessage="A version is required")]
|
||||
[string]$version
|
||||
)
|
||||
|
||||
if ($branch -eq "<default>")
|
||||
{
|
||||
$branch = "teamcity";
|
||||
}
|
||||
|
||||
Write-Host $branch;
|
||||
Write-Host $version;
|
||||
Write-Host "NzbDrone.$branch.$version.zip";
|
||||
|
||||
Rename-Item "nzbdrone.zip" "NzbDrone.$branch.$version.zip"
|
||||
@@ -75,6 +75,8 @@
|
||||
<xs:enumeration value="seedtype" /> <!-- TBD, which criteria must be met. was going for 'ratio,seedtime,both' but afaik it's always 'either' -->
|
||||
<xs:enumeration value="minimumratio" />
|
||||
<xs:enumeration value="minimumseedtime" />
|
||||
<xs:enumeration value="downloadvolumefactor" /> <!-- factor for the download volume, in most cases it should be set to 1, if a torrent is set to freeleech set it to 0, if only 50% is counted set it to 0.5 -->
|
||||
<xs:enumeration value="uploadvolumefactor" /> <!-- factor for the upload volume, in most cases it should be set to 1, if a torrent is set to neutral leech (upload is not counted) set it to 0, if it's set to double upload set it to 2 -->
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:element name="attr">
|
||||
|
||||
BIN
sonarr.icns
Normal file
@@ -1,6 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<solution>
|
||||
<add key="disableSourceControlIntegration" value="true" />
|
||||
</solution>
|
||||
</configuration>
|
||||
@@ -1,136 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">$(MSBuildProjectDirectory)\..\</SolutionDir>
|
||||
|
||||
<!-- Enable the restore command to run before builds -->
|
||||
<RestorePackages Condition=" '$(RestorePackages)' == '' ">false</RestorePackages>
|
||||
|
||||
<!-- Property that enables building a package from a project -->
|
||||
<BuildPackage Condition=" '$(BuildPackage)' == '' ">false</BuildPackage>
|
||||
|
||||
<!-- Determines if package restore consent is required to restore packages -->
|
||||
<RequireRestoreConsent Condition=" '$(RequireRestoreConsent)' != 'false' ">true</RequireRestoreConsent>
|
||||
|
||||
<!-- Download NuGet.exe if it does not already exist -->
|
||||
<DownloadNuGetExe Condition=" '$(DownloadNuGetExe)' == '' ">false</DownloadNuGetExe>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup Condition=" '$(PackageSources)' == '' ">
|
||||
<!-- Package sources used to restore packages. By default, registered sources under %APPDATA%\NuGet\NuGet.Config will be used -->
|
||||
<!-- The official NuGet package source (https://www.nuget.org/api/v2/) will be excluded if package sources are specified and it does not appear in the list -->
|
||||
<!--
|
||||
<PackageSource Include="https://www.nuget.org/api/v2/" />
|
||||
<PackageSource Include="https://my-nuget-source/nuget/" />
|
||||
-->
|
||||
</ItemGroup>
|
||||
|
||||
<PropertyGroup Condition=" '$(OS)' == 'Windows_NT'">
|
||||
<!-- Windows specific commands -->
|
||||
<NuGetToolsPath>$([System.IO.Path]::Combine($(SolutionDir), ".nuget"))</NuGetToolsPath>
|
||||
<PackagesConfig>$([System.IO.Path]::Combine($(ProjectDir), "packages.config"))</PackagesConfig>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition=" '$(OS)' != 'Windows_NT'">
|
||||
<!-- We need to launch nuget.exe with the mono command if we're not on windows -->
|
||||
<NuGetToolsPath>$(SolutionDir).nuget</NuGetToolsPath>
|
||||
<PackagesConfig>packages.config</PackagesConfig>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<!-- NuGet command -->
|
||||
<NuGetExePath Condition=" '$(NuGetExePath)' == '' ">$(NuGetToolsPath)\NuGet.exe</NuGetExePath>
|
||||
<PackageSources Condition=" $(PackageSources) == '' ">@(PackageSource)</PackageSources>
|
||||
|
||||
<NuGetCommand Condition=" '$(OS)' == 'Windows_NT'">"$(NuGetExePath)"</NuGetCommand>
|
||||
<NuGetCommand Condition=" '$(OS)' != 'Windows_NT' ">mono --runtime=v4.0.30319 $(NuGetExePath)</NuGetCommand>
|
||||
|
||||
<PackageOutputDir Condition="$(PackageOutputDir) == ''">$(TargetDir.Trim('\\'))</PackageOutputDir>
|
||||
|
||||
<RequireConsentSwitch Condition=" $(RequireRestoreConsent) == 'true' ">-RequireConsent</RequireConsentSwitch>
|
||||
<NonInteractiveSwitch Condition=" '$(VisualStudioVersion)' != '' AND '$(OS)' == 'Windows_NT' ">-NonInteractive</NonInteractiveSwitch>
|
||||
|
||||
<PaddedSolutionDir Condition=" '$(OS)' == 'Windows_NT'">"$(SolutionDir) "</PaddedSolutionDir>
|
||||
<PaddedSolutionDir Condition=" '$(OS)' != 'Windows_NT' ">"$(SolutionDir)"</PaddedSolutionDir>
|
||||
|
||||
<!-- Commands -->
|
||||
<RestoreCommand>$(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" $(NonInteractiveSwitch) $(RequireConsentSwitch) -solutionDir $(PaddedSolutionDir)</RestoreCommand>
|
||||
<BuildCommand>$(NuGetCommand) pack "$(ProjectPath)" -Properties "Configuration=$(Configuration);Platform=$(Platform)" $(NonInteractiveSwitch) -OutputDirectory "$(PackageOutputDir)" -symbols</BuildCommand>
|
||||
|
||||
<!-- We need to ensure packages are restored prior to assembly resolve -->
|
||||
<BuildDependsOn Condition="$(RestorePackages) == 'true'">
|
||||
RestorePackages;
|
||||
$(BuildDependsOn);
|
||||
</BuildDependsOn>
|
||||
|
||||
<!-- Make the build depend on restore packages -->
|
||||
<BuildDependsOn Condition="$(BuildPackage) == 'true'">
|
||||
$(BuildDependsOn);
|
||||
BuildPackage;
|
||||
</BuildDependsOn>
|
||||
</PropertyGroup>
|
||||
|
||||
<Target Name="CheckPrerequisites">
|
||||
<!-- Raise an error if we're unable to locate nuget.exe -->
|
||||
<Error Condition="'$(DownloadNuGetExe)' != 'true' AND !Exists('$(NuGetExePath)')" Text="Unable to locate '$(NuGetExePath)'" />
|
||||
<!--
|
||||
Take advantage of MsBuild's build dependency tracking to make sure that we only ever download nuget.exe once.
|
||||
This effectively acts as a lock that makes sure that the download operation will only happen once and all
|
||||
parallel builds will have to wait for it to complete.
|
||||
-->
|
||||
<MsBuild Targets="_DownloadNuGet" Projects="$(MSBuildThisFileFullPath)" Properties="Configuration=NOT_IMPORTANT;DownloadNuGetExe=$(DownloadNuGetExe)" />
|
||||
</Target>
|
||||
|
||||
<Target Name="_DownloadNuGet">
|
||||
<DownloadNuGet OutputFilename="$(NuGetExePath)" Condition=" '$(DownloadNuGetExe)' == 'true' AND !Exists('$(NuGetExePath)')" />
|
||||
</Target>
|
||||
|
||||
<Target Name="RestorePackages" DependsOnTargets="CheckPrerequisites">
|
||||
<Exec Command="$(RestoreCommand)"
|
||||
Condition="'$(OS)' != 'Windows_NT' And Exists('$(PackagesConfig)')" />
|
||||
|
||||
<Exec Command="$(RestoreCommand)"
|
||||
LogStandardErrorAsError="true"
|
||||
Condition="'$(OS)' == 'Windows_NT' And Exists('$(PackagesConfig)')" />
|
||||
</Target>
|
||||
|
||||
<Target Name="BuildPackage" DependsOnTargets="CheckPrerequisites">
|
||||
<Exec Command="$(BuildCommand)"
|
||||
Condition=" '$(OS)' != 'Windows_NT' " />
|
||||
|
||||
<Exec Command="$(BuildCommand)"
|
||||
LogStandardErrorAsError="true"
|
||||
Condition=" '$(OS)' == 'Windows_NT' " />
|
||||
</Target>
|
||||
|
||||
<UsingTask TaskName="DownloadNuGet" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll">
|
||||
<ParameterGroup>
|
||||
<OutputFilename ParameterType="System.String" Required="true" />
|
||||
</ParameterGroup>
|
||||
<Task>
|
||||
<Reference Include="System.Core" />
|
||||
<Using Namespace="System" />
|
||||
<Using Namespace="System.IO" />
|
||||
<Using Namespace="System.Net" />
|
||||
<Using Namespace="Microsoft.Build.Framework" />
|
||||
<Using Namespace="Microsoft.Build.Utilities" />
|
||||
<Code Type="Fragment" Language="cs">
|
||||
<![CDATA[
|
||||
try {
|
||||
OutputFilename = Path.GetFullPath(OutputFilename);
|
||||
|
||||
Log.LogMessage("Downloading latest version of NuGet.exe...");
|
||||
WebClient webClient = new WebClient();
|
||||
webClient.DownloadFile("https://www.nuget.org/nuget.exe", OutputFilename);
|
||||
|
||||
return true;
|
||||
}
|
||||
catch (Exception ex) {
|
||||
Log.LogErrorFromException(ex);
|
||||
return false;
|
||||
}
|
||||
]]>
|
||||
</Code>
|
||||
</Task>
|
||||
</UsingTask>
|
||||
</Project>
|
||||
@@ -2,4 +2,4 @@
|
||||
|
||||
using System.Reflection;
|
||||
|
||||
[assembly: AssemblyVersion("10.0.0.*")]
|
||||
[assembly: AssemblyVersion("0.1.0.*")]
|
||||
|
||||
1
src/ExternalModules/CurlSharp
Submodule
@@ -1,9 +0,0 @@
|
||||
<?xml version ="1.0"?>
|
||||
<!-- This allows mt.exe to run on machines with the CLR v4 installed but not 1.1 or 2.0 -->
|
||||
<configuration>
|
||||
<startup useLegacyV2RuntimeActivationPolicy="true">
|
||||
<supportedRuntime version="v4.0"/>
|
||||
<supportedRuntime version="v2.0.50727"/>
|
||||
<supportedRuntime version="v1.1.4322"/>
|
||||
</startup>
|
||||
</configuration>
|
||||
@@ -296,7 +296,7 @@ namespace LogentriesCore
|
||||
WriteDebugMessages("HostName parameter is not defined - trying to get it from System.Environment.MachineName");
|
||||
m_HostName = "HostName=" + System.Environment.MachineName + " ";
|
||||
}
|
||||
catch (InvalidOperationException ex)
|
||||
catch (InvalidOperationException)
|
||||
{
|
||||
// Cannot get host name automatically, so assume that HostName is not used
|
||||
// and log message is sent without it.
|
||||
|
||||
@@ -73,13 +73,6 @@
|
||||
<PostBuildEvent>
|
||||
</PostBuildEvent>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
|
||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||
<PropertyGroup>
|
||||
<ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
||||
</PropertyGroup>
|
||||
<Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
|
||||
</Target>
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
|
||||
@@ -51,8 +51,9 @@
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="NLog">
|
||||
<HintPath>..\packages\NLog.2.1.0\lib\net40\NLog.dll</HintPath>
|
||||
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\NLog.4.3.11\lib\net40\NLog.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
@@ -79,19 +80,13 @@
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="fastJSON\license.txt" />
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<PropertyGroup>
|
||||
<PostBuildEvent>
|
||||
</PostBuildEvent>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
|
||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||
<PropertyGroup>
|
||||
<ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
||||
</PropertyGroup>
|
||||
<Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
|
||||
</Target>
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
|
||||
@@ -24,6 +24,7 @@ namespace LogentriesNLog.fastJSON
|
||||
SerializeNullValues = false;
|
||||
UseOptimizedDatasetSchema = false;
|
||||
UsingGlobalTypes = false;
|
||||
UseUTCDateTime = true;
|
||||
}
|
||||
public bool UseOptimizedDatasetSchema = true;
|
||||
public bool UseFastGuid = true;
|
||||
@@ -39,7 +40,7 @@ namespace LogentriesNLog.fastJSON
|
||||
return ToJSON(obj, UseSerializerExtension, UseFastGuid, UseOptimizedDatasetSchema, SerializeNullValues);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public string ToJSON(object obj,
|
||||
bool enableSerializerExtensions,
|
||||
bool enableFastGuid,
|
||||
@@ -49,13 +50,13 @@ namespace LogentriesNLog.fastJSON
|
||||
return new JSONSerializer(enableOptimizedDatasetSchema, enableFastGuid, enableSerializerExtensions, serializeNullValues, IndentOutput).ConvertToJSON(obj);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public T ToObject<T>(string json)
|
||||
{
|
||||
return (T)ToObject(json, typeof(T));
|
||||
}
|
||||
|
||||
|
||||
|
||||
public object ToObject(string json, Type type)
|
||||
{
|
||||
var ht = new JsonParser(json).Decode() as Dictionary<string, object>;
|
||||
@@ -320,7 +321,7 @@ namespace LogentriesNLog.fastJSON
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
_getterscache.Add(type, getters);
|
||||
return getters;
|
||||
}
|
||||
@@ -448,7 +449,7 @@ namespace LogentriesNLog.fastJSON
|
||||
#if !SILVERLIGHT
|
||||
else if (pi.isDictionary || pi.isHashtable)
|
||||
oset = CreateDictionary((ArrayList)v, pi.pt, pi.GenericTypes, globaltypes);
|
||||
#else
|
||||
#else
|
||||
else if (pi.isDictionary)
|
||||
oset = CreateDictionary((List<object>)v, pi.pt, pi.GenericTypes, globaltypes);
|
||||
#endif
|
||||
@@ -817,4 +818,4 @@ namespace LogentriesNLog.fastJSON
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -170,6 +170,8 @@ namespace LogentriesNLog.fastJSON
|
||||
_output.Append(dt.Minute.ToString("00", NumberFormatInfo.InvariantInfo));
|
||||
_output.Append(":");
|
||||
_output.Append(dt.Second.ToString("00", NumberFormatInfo.InvariantInfo));
|
||||
_output.Append(".");
|
||||
_output.Append(dt.Millisecond.ToString("000", NumberFormatInfo.InvariantInfo));
|
||||
|
||||
if (JSON.Instance.UseUTCDateTime)
|
||||
_output.Append("Z");
|
||||
|
||||
4
src/LogentriesNLog/packages.config
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="NLog" version="4.3.11" targetFramework="net40" />
|
||||
</packages>
|
||||
@@ -198,7 +198,8 @@ namespace Marr.Data.Mapping
|
||||
{
|
||||
return AutoMapPropertiesWhere(m =>
|
||||
m.MemberType == MemberTypes.Property &&
|
||||
!DataHelper.IsSimpleType((m as PropertyInfo).PropertyType));
|
||||
!DataHelper.IsSimpleType((m as PropertyInfo).PropertyType) &&
|
||||
!MapRepository.Instance.TypeConverters.ContainsKey((m as PropertyInfo).PropertyType));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -144,7 +144,6 @@
|
||||
<PreBuildEvent>
|
||||
</PreBuildEvent>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(SolutionDir)\.nuget\nuget.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<dllmap os="osx" dll="MediaInfo.dll" target="libmediainfo.0.dylib"/>
|
||||
<dllmap os="linux" dll="MediaInfo.dll" target="libmediainfo.so.0" />
|
||||
<dllmap os="freebsd" dll="MediaInfo.dll" target="libmediainfo.so.0" />
|
||||
<dllmap os="solaris" dll="MediaInfo.dll" target="libmediainfo.so.0.0.0" />
|
||||
</configuration>
|
||||
@@ -1,9 +1,6 @@
|
||||
// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.md in the project root for license information.
|
||||
|
||||
using System;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Linq.Expressions;
|
||||
using System.Reflection;
|
||||
using System.Threading;
|
||||
|
||||
namespace Microsoft.AspNet.SignalR.Infrastructure
|
||||
|
||||
@@ -4,7 +4,7 @@ using System.Diagnostics;
|
||||
|
||||
namespace Microsoft.AspNet.SignalR.Infrastructure
|
||||
{
|
||||
internal class NoOpPerformanceCounter : IPerformanceCounter
|
||||
public class NoOpPerformanceCounter : IPerformanceCounter
|
||||
{
|
||||
public string CounterName
|
||||
{
|
||||
|
||||
@@ -56,7 +56,7 @@ namespace Microsoft.AspNet.SignalR.Infrastructure
|
||||
}
|
||||
catch(NotImplementedException)
|
||||
{
|
||||
// This happens on mono
|
||||
// This happens on mono
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -276,10 +276,9 @@
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
||||
|
||||
@@ -6,7 +6,6 @@ using System.Diagnostics;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNet.SignalR.Configuration;
|
||||
using Microsoft.AspNet.SignalR.Hosting;
|
||||
|
||||
@@ -1,13 +1,9 @@
|
||||
// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.md in the project root for license information.
|
||||
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNet.SignalR.Infrastructure;
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNet.SignalR.Hosting;
|
||||
using Microsoft.AspNet.SignalR.Infrastructure;
|
||||
|
||||
@@ -102,7 +102,6 @@
|
||||
</ItemGroup>
|
||||
<Import Project="..\Common\Microsoft.AspNet.SignalR.targets" />
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
@@ -110,4 +109,4 @@
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
||||
</Project>
|
||||
|
||||
@@ -7,11 +7,9 @@ using System.Security.Principal;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNet.SignalR.Owin.Infrastructure;
|
||||
using Microsoft.AspNet.SignalR.Hosting;
|
||||
|
||||
namespace Microsoft.AspNet.SignalR.Owin
|
||||
{
|
||||
using WebSocketFunc = Func<IDictionary<string, object>, Task>;
|
||||
public partial class ServerRequest :
|
||||
#if NET45
|
||||
IWebSocketRequest
|
||||
|
||||
@@ -774,7 +774,8 @@ namespace MonoTorrent
|
||||
break;
|
||||
|
||||
case ("nodes"):
|
||||
this.nodes = (BEncodedList)keypair.Value;
|
||||
if (keypair.Value.ToString().Length != 0)
|
||||
this.nodes = (BEncodedList)keypair.Value;
|
||||
break;
|
||||
|
||||
case ("comment.utf-8"):
|
||||
|
||||
@@ -1,170 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using FizzWare.NBuilder;
|
||||
using FluentAssertions;
|
||||
using Marr.Data;
|
||||
using NUnit.Framework;
|
||||
using NzbDrone.Api.Commands;
|
||||
using NzbDrone.Api.Config;
|
||||
using NzbDrone.Api.Episodes;
|
||||
using NzbDrone.Api.History;
|
||||
using NzbDrone.Api.Indexers;
|
||||
using NzbDrone.Api.Logs;
|
||||
using NzbDrone.Api.Mapping;
|
||||
using NzbDrone.Api.Profiles;
|
||||
using NzbDrone.Api.RootFolders;
|
||||
using NzbDrone.Api.Series;
|
||||
using NzbDrone.Core.DecisionEngine;
|
||||
using NzbDrone.Core.Instrumentation;
|
||||
using NzbDrone.Core.Messaging.Commands;
|
||||
using NzbDrone.Core.Organizer;
|
||||
using NzbDrone.Core.Parser.Model;
|
||||
using NzbDrone.Core.Profiles;
|
||||
using NzbDrone.Core.Qualities;
|
||||
using NzbDrone.Core.RootFolders;
|
||||
using NzbDrone.Core.Tv;
|
||||
using NzbDrone.Core.Update.Commands;
|
||||
using NzbDrone.Test.Common;
|
||||
using System.Linq;
|
||||
|
||||
namespace NzbDrone.Api.Test.MappingTests
|
||||
{
|
||||
[TestFixture]
|
||||
public class ResourceMappingFixture : TestBase
|
||||
{
|
||||
[TestCase(typeof(Core.Tv.Series), typeof(SeriesResource))]
|
||||
[TestCase(typeof(Episode), typeof(EpisodeResource))]
|
||||
[TestCase(typeof(RootFolder), typeof(RootFolderResource))]
|
||||
[TestCase(typeof(NamingConfig), typeof(NamingConfigResource))]
|
||||
// [TestCase(typeof(IndexerDefinition), typeof(IndexerResource))] //TODO: Ignoring because we don't have a good way to ignore properties with value injector
|
||||
[TestCase(typeof(ReleaseInfo), typeof(ReleaseResource))]
|
||||
[TestCase(typeof(ParsedEpisodeInfo), typeof(ReleaseResource))]
|
||||
[TestCase(typeof(DownloadDecision), typeof(ReleaseResource))]
|
||||
[TestCase(typeof(Core.History.History), typeof(HistoryResource))]
|
||||
[TestCase(typeof(Profile), typeof(ProfileResource))]
|
||||
[TestCase(typeof(ProfileQualityItem), typeof(ProfileQualityItemResource))]
|
||||
[TestCase(typeof(Log), typeof(LogResource))]
|
||||
[TestCase(typeof(Command), typeof(CommandResource))]
|
||||
public void matching_fields(Type modelType, Type resourceType)
|
||||
{
|
||||
MappingValidation.ValidateMapping(modelType, resourceType);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void should_map_lazy_loaded_values_should_not_be_inject_if_not_loaded()
|
||||
{
|
||||
var modelWithLazy = new ModelWithLazy()
|
||||
{
|
||||
Guid = new TestLazyLoaded<Guid>()
|
||||
};
|
||||
|
||||
modelWithLazy.InjectTo<ModelWithNoLazy>().Guid.Should().BeEmpty();
|
||||
|
||||
modelWithLazy.Guid.IsLoaded.Should().BeFalse();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void should_map_lay_loaded_values_should_be_inject_if_loaded()
|
||||
{
|
||||
|
||||
var guid = Guid.NewGuid();
|
||||
|
||||
var modelWithLazy = new ModelWithLazy()
|
||||
{
|
||||
Guid = new LazyLoaded<Guid>(guid)
|
||||
};
|
||||
|
||||
modelWithLazy.InjectTo<ModelWithNoLazy>().Guid.Should().Be(guid);
|
||||
|
||||
modelWithLazy.Guid.IsLoaded.Should().BeTrue();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void should_be_able_to_map_lists()
|
||||
{
|
||||
var modelList = Builder<TestModel>.CreateListOfSize(10).Build();
|
||||
|
||||
var resourceList = modelList.InjectTo<List<TestResource>>();
|
||||
|
||||
resourceList.Should().HaveSameCount(modelList);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void should_map_wrapped_models()
|
||||
{
|
||||
var modelList = Builder<TestModel>.CreateListOfSize(10).Build().ToList();
|
||||
|
||||
var wrapper = new TestModelWrapper
|
||||
{
|
||||
TestlList = modelList
|
||||
};
|
||||
|
||||
wrapper.InjectTo<TestResourceWrapper>();
|
||||
}
|
||||
|
||||
|
||||
[Test]
|
||||
public void should_map_profile()
|
||||
{
|
||||
var profileResource = new ProfileResource
|
||||
{
|
||||
Cutoff = Quality.WEBDL1080p,
|
||||
Items = new List<ProfileQualityItemResource> { new ProfileQualityItemResource { Quality = Quality.WEBDL1080p, Allowed = true } }
|
||||
};
|
||||
|
||||
|
||||
profileResource.InjectTo<Profile>();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
[Test]
|
||||
public void should_map_tracked_command()
|
||||
{
|
||||
var profileResource = new ApplicationUpdateCommand();
|
||||
profileResource.InjectTo<CommandResource>();
|
||||
}
|
||||
}
|
||||
|
||||
public class ModelWithLazy
|
||||
{
|
||||
public LazyLoaded<Guid> Guid { get; set; }
|
||||
}
|
||||
|
||||
public class ModelWithNoLazy
|
||||
{
|
||||
public Guid Guid { get; set; }
|
||||
}
|
||||
|
||||
public class TestLazyLoaded<T> : LazyLoaded<T>
|
||||
{
|
||||
public override void Prepare(Func<IDataMapper> dataMapperFactory, object parent)
|
||||
{
|
||||
throw new InvalidOperationException();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public class TestModelWrapper
|
||||
{
|
||||
public List<TestModel> TestlList { get; set; }
|
||||
}
|
||||
|
||||
public class TestResourceWrapper
|
||||
{
|
||||
public List<TestResource> TestList { get; set; }
|
||||
}
|
||||
|
||||
public class TestModel
|
||||
{
|
||||
public string Field1 { get; set; }
|
||||
public string Field2 { get; set; }
|
||||
}
|
||||
|
||||
public class TestResource
|
||||
{
|
||||
public string Field1 { get; set; }
|
||||
public string Field2 { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -38,17 +38,21 @@
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="FluentAssertions, Version=3.2.1.0, Culture=neutral, PublicKeyToken=33f2691a05b67b6a, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\packages\FluentAssertions.3.2.1\lib\net40\FluentAssertions.dll</HintPath>
|
||||
<Reference Include="FizzWare.NBuilder, Version=4.0.0.115, Culture=neutral, PublicKeyToken=5651b03e12e42c12, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\NBuilder.4.0.0\lib\net40\FizzWare.NBuilder.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="FluentAssertions.Core, Version=3.2.1.0, Culture=neutral, PublicKeyToken=33f2691a05b67b6a, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\packages\FluentAssertions.3.2.1\lib\net40\FluentAssertions.Core.dll</HintPath>
|
||||
<Reference Include="FluentAssertions, Version=4.18.0.0, Culture=neutral, PublicKeyToken=33f2691a05b67b6a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\FluentAssertions.4.18.0\lib\net40\FluentAssertions.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="nunit.framework, Version=2.6.3.13283, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\packages\NUnit.2.6.3\lib\nunit.framework.dll</HintPath>
|
||||
<Reference Include="FluentAssertions.Core, Version=4.18.0.0, Culture=neutral, PublicKeyToken=33f2691a05b67b6a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\FluentAssertions.4.18.0\lib\net40\FluentAssertions.Core.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="nunit.framework, Version=3.5.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\NUnit.3.5.0\lib\net40\nunit.framework.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
@@ -57,19 +61,12 @@
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="FizzWare.NBuilder">
|
||||
<HintPath>..\packages\NBuilder.3.0.1.1\lib\FizzWare.NBuilder.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Moq">
|
||||
<HintPath>..\packages\Moq.4.0.10827\lib\NET40\Moq.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Omu.ValueInjecter">
|
||||
<HintPath>..\packages\valueinjecter.2.3.3\lib\net35\Omu.ValueInjecter.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="ClientSchemaTests\SchemaBuilderFixture.cs" />
|
||||
<Compile Include="MappingTests\ResourceMappingFixture.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
@@ -104,7 +101,6 @@
|
||||
<Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<Import Project="$(SolutionDir)\.nuget\nuget.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
|
||||