Compare commits
3338
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0f20a020fd | ||
|
|
c4216d2272 | ||
|
|
431dad7551 | ||
|
|
7a5025d9d9 | ||
|
|
cc2959249e | ||
|
|
86a1695286 | ||
|
|
4c1cbbe8fe | ||
|
|
5081153db9 | ||
|
|
846ed05f76 | ||
|
|
3e9afea40a | ||
|
|
cfa35fb5ce | ||
|
|
9e221cabc3 | ||
|
|
23c83c0fb6 | ||
|
|
5368f25ed8 | ||
|
|
bee76289ca | ||
|
|
1fcfc2886c | ||
|
|
83c35f55a3 | ||
|
|
2f9f0108ef | ||
|
|
75a1165923 | ||
|
|
2d394b77f4 | ||
|
|
59e5727f71 | ||
|
|
f5d2e98d4f | ||
|
|
481f33c462 | ||
|
|
513bbeeaae | ||
|
|
0cade21f1d | ||
|
|
7b284b40f7 | ||
|
|
e1b6971667 | ||
|
|
ecbae62d07 | ||
|
|
8182b4b289 | ||
|
|
a644174601 | ||
|
|
cf34c13f03 | ||
|
|
126e84e4e8 | ||
|
|
5ffc83a237 | ||
|
|
3082f5c8d9 | ||
|
|
f1cde451d8 | ||
|
|
6f0e0e5172 | ||
|
|
b2d5ab5e03 | ||
|
|
c3e098e27d | ||
|
|
a930d2165a | ||
|
|
05cdfce9ce | ||
|
|
61c9d6b2d6 | ||
|
|
7545d3fd5c | ||
|
|
04e0297e86 | ||
|
|
562706b968 | ||
|
|
4195207a71 | ||
|
|
71eb89b6a1 | ||
|
|
94e4a0b725 | ||
|
|
40d1fe20e3 | ||
|
|
2ed23159ca | ||
|
|
faa8438adf | ||
|
|
0b35c2ccde | ||
|
|
98eea0ef09 | ||
|
|
4bf237aebe | ||
|
|
da927adef4 | ||
|
|
cf587e26d5 | ||
|
|
9e4354fb55 | ||
|
|
e6bb4c73a8 | ||
|
|
e43a2a4818 | ||
|
|
cde0f44b7d | ||
|
|
b07a1e2c74 | ||
|
|
8376fce5fe | ||
|
|
d9e5c846c2 | ||
|
|
65736c13ef | ||
|
|
071c28e925 | ||
|
|
8355e3e1be | ||
|
|
f9a6e0963c | ||
|
|
b2879837c6 | ||
|
|
0d03ddb009 | ||
|
|
a6dfa4ae80 | ||
|
|
e66ec82ba8 | ||
|
|
9ce5e971c6 | ||
|
|
3e7cc49ebb | ||
|
|
d07e68b6e2 | ||
|
|
619ece2313 | ||
|
|
1dda9566f3 | ||
|
|
3704d1ed16 | ||
|
|
a524ca02a5 | ||
|
|
3c97f2552b | ||
|
|
15b1d55ef1 | ||
|
|
4e42c9f01b | ||
|
|
76775f821a | ||
|
|
e7088f6b1c | ||
|
|
f2c3ff4be6 | ||
|
|
1fb42ade59 | ||
|
|
129650e9d4 | ||
|
|
170a44ac04 | ||
|
|
7e04f02327 | ||
|
|
abda2dbf97 | ||
|
|
ad1a45cf49 | ||
|
|
e9abdd0ff2 | ||
|
|
9254002318 | ||
|
|
596780b7f4 | ||
|
|
7ba061ac20 | ||
|
|
f8e6b73714 | ||
|
|
c01593d119 | ||
|
|
dd53c149c0 | ||
|
|
04b4efe1e1 | ||
|
|
81bafbe68d | ||
|
|
7ee95c55ab | ||
|
|
87d67feff4 | ||
|
|
d21ceddbb6 | ||
|
|
4434df3d09 | ||
|
|
35916881c8 | ||
|
|
5230d6bab5 | ||
|
|
68c3418c04 | ||
|
|
7bce9f8a7f | ||
|
|
a5b988738f | ||
|
|
53a4b61884 | ||
|
|
7be111dc36 | ||
|
|
0c5bd66cca | ||
|
|
b699c5a310 | ||
|
|
af8850f4c0 | ||
|
|
10e359d6b5 | ||
|
|
b360881b8b | ||
|
|
b250dc31d3 | ||
|
|
995df189ae | ||
|
|
93739e7010 | ||
|
|
bc42498d61 | ||
|
|
2b95507c49 | ||
|
|
ca8c3a18d7 | ||
|
|
e49066ffa7 | ||
|
|
e3cd910acd | ||
|
|
cb47177b8e | ||
|
|
fba00c9d51 | ||
|
|
af0b7d9146 | ||
|
|
e0a8c476f6 | ||
|
|
5acb8100de | ||
|
|
1c133e87e7 | ||
|
|
8a8419576d | ||
|
|
4a28723adb | ||
|
|
e482408f29 | ||
|
|
4dcc98ab1f | ||
|
|
ace0fc35a2 | ||
|
|
c7d1eb00dc | ||
|
|
949c8e0a32 | ||
|
|
c2419b491a | ||
|
|
786322f397 | ||
|
|
09e2a1764f | ||
|
|
a780668bce | ||
|
|
5b79aeaa14 | ||
|
|
049c006b5f | ||
|
|
6fdc344472 | ||
|
|
cb09b93553 | ||
|
|
21447d32e5 | ||
|
|
28b03e1cd2 | ||
|
|
a7acb89c15 | ||
|
|
35289710ba | ||
|
|
4677acfb39 | ||
|
|
ac05d0d69e | ||
|
|
25a9b6b433 | ||
|
|
b78713ad0d | ||
|
|
1f3d0e879c | ||
|
|
baad4dc68e | ||
|
|
ef7c0c7a30 | ||
|
|
3b3c4a2a35 | ||
|
|
ef9fc66a31 | ||
|
|
212d9c853b | ||
|
|
7815b18b6b | ||
|
|
05126074d4 | ||
|
|
3611d2c1f3 | ||
|
|
b5ad4b8104 | ||
|
|
43d7c0a2b5 | ||
|
|
12e361cec7 | ||
|
|
a4b0f026f4 | ||
|
|
59f65c32d8 | ||
|
|
ccec77f7d1 | ||
|
|
1deeb85d22 | ||
|
|
648a32147a | ||
|
|
806ddfc156 | ||
|
|
05b5f22204 | ||
|
|
4f09d2cff1 | ||
|
|
e1234fe583 | ||
|
|
aa64dacd65 | ||
|
|
10b062ebce | ||
|
|
e057057173 | ||
|
|
82cec2672a | ||
|
|
50184cd6ff | ||
|
|
e64dc49a64 | ||
|
|
010bd53723 | ||
|
|
50ae7ca7f9 | ||
|
|
995bbef878 | ||
|
|
8c325e30be | ||
|
|
6bb9b24210 | ||
|
|
df1c558c33 | ||
|
|
357d245a4c | ||
|
|
d43863ab59 | ||
|
|
89188acc7d | ||
|
|
86a9fc0c83 | ||
|
|
15579acd2a | ||
|
|
411009c996 | ||
|
|
17a4cce68b | ||
|
|
adb36795a8 | ||
|
|
691545b71a | ||
|
|
31c7fa4f2c | ||
|
|
86009c3cdb | ||
|
|
c9392dd306 | ||
|
|
ac8a6094fb | ||
|
|
6dbe497013 | ||
|
|
274aa9b17d | ||
|
|
d47e61ca57 | ||
|
|
3078b918d2 | ||
|
|
95e9a6e8aa | ||
|
|
1a3cf1dbea | ||
|
|
0d705eed1f | ||
|
|
1d28526792 | ||
|
|
3ecf3dd048 | ||
|
|
64ff79a38d | ||
|
|
aba478f3dc | ||
|
|
1025881ec8 | ||
|
|
6d95a645e3 | ||
|
|
4769f66eea | ||
|
|
82c126362d | ||
|
|
fd2ba70031 | ||
|
|
ab410c339f | ||
|
|
9093c72646 | ||
|
|
3a220b8320 | ||
|
|
ac20f7c9dd | ||
|
|
578146905e | ||
|
|
7f07f5a69b | ||
|
|
3dd7d0999e | ||
|
|
5076770d15 | ||
|
|
791446c514 | ||
|
|
66370bd541 | ||
|
|
cce8973e87 | ||
|
|
37dcd32c6b | ||
|
|
d772958272 | ||
|
|
c85e221e9f | ||
|
|
28e95df5c6 | ||
|
|
8d84355d57 | ||
|
|
5c25f9a3e5 | ||
|
|
c0980809c5 | ||
|
|
e946c6427e | ||
|
|
58ccbe2b19 | ||
|
|
7519c0b63a | ||
|
|
947c071cee | ||
|
|
54018fcce7 | ||
|
|
4b85eb33f8 | ||
|
|
592cf54e94 | ||
|
|
b8368bf9fa | ||
|
|
7d19ea84ab | ||
|
|
14651341c4 | ||
|
|
681fbc6915 | ||
|
|
37d7f51d19 | ||
|
|
48eb0a2c9b | ||
|
|
6d2cd54deb | ||
|
|
2ec956b430 | ||
|
|
4f22ae04fe | ||
|
|
7da82d8444 | ||
|
|
d8611536ee | ||
|
|
c94ffd1a56 | ||
|
|
cddf081e19 | ||
|
|
94071b4889 | ||
|
|
d7518cffe1 | ||
|
|
fa26ecaf67 | ||
|
|
c2eaf00aaa | ||
|
|
74be3ec9b9 | ||
|
|
967e3100d2 | ||
|
|
b1d1243eae | ||
|
|
72edd99cb0 | ||
|
|
a512460396 | ||
|
|
48ff593c2e | ||
|
|
d8fc99bca4 | ||
|
|
6a04759fe8 | ||
|
|
2cc07b71bd | ||
|
|
40bf117f6c | ||
|
|
20209ef429 | ||
|
|
c30a7a29fd | ||
|
|
c6ae2ea038 | ||
|
|
f95715beec | ||
|
|
0e85f4b9d5 | ||
|
|
ab78ae867a | ||
|
|
5e60f38b9b | ||
|
|
8f4b4be6db | ||
|
|
696195aefd | ||
|
|
36f0a544e9 | ||
|
|
f23242b18c | ||
|
|
75dd6d659b | ||
|
|
a23d8228b4 | ||
|
|
59f3d54597 | ||
|
|
8b3166582d | ||
|
|
fd13316b8e | ||
|
|
5991ab03ec | ||
|
|
b9bc6184d4 | ||
|
|
aab3e836c3 | ||
|
|
ed0fc60900 | ||
|
|
6764ae268e | ||
|
|
6d3d9ddacf | ||
|
|
ccd76ec284 | ||
|
|
d52ea0e997 | ||
|
|
15e23fe486 | ||
|
|
d9e5b11026 | ||
|
|
21c19c94c2 | ||
|
|
c31d9d6c72 | ||
|
|
a7e89b075b | ||
|
|
c0bb26e56f | ||
|
|
1e3e57b990 | ||
|
|
f50430e9e2 | ||
|
|
4891250959 | ||
|
|
ad1b89ff88 | ||
|
|
49053d31c2 | ||
|
|
651ebdbb41 | ||
|
|
0b50d5b5f0 | ||
|
|
9e3f16d8bc | ||
|
|
a3f194d708 | ||
|
|
d21de803f6 | ||
|
|
bb81151392 | ||
|
|
2b277b84a2 | ||
|
|
2bf4502d06 | ||
|
|
94d1b9d784 | ||
|
|
ceee66d5f2 | ||
|
|
2e9a968752 | ||
|
|
6c2989b139 | ||
|
|
6c2bfee616 | ||
|
|
30c5ea7fb2 | ||
|
|
a6831b5548 | ||
|
|
b42943fe8d | ||
|
|
06c833e96c | ||
|
|
9aff02b225 | ||
|
|
4229a523a8 | ||
|
|
82e9e6b6bf | ||
|
|
904a6db1d0 | ||
|
|
2a9f03741e | ||
|
|
fd3de056c1 | ||
|
|
978a1e8566 | ||
|
|
36e1771579 | ||
|
|
0d23fd50f5 | ||
|
|
367c9c1c7c | ||
|
|
78f5526ce7 | ||
|
|
a1d7ebd260 | ||
|
|
3fda1cb369 | ||
|
|
2c2a68022b | ||
|
|
bb321926bc | ||
|
|
45c35ba1b2 | ||
|
|
77c61d5e3f | ||
|
|
12962ed5ca | ||
|
|
f472db002c | ||
|
|
6939f32f69 | ||
|
|
0107d934e5 | ||
|
|
ce9880a9b1 | ||
|
|
317f17d7da | ||
|
|
7da128da6b | ||
|
|
f603866860 | ||
|
|
dc2d525955 | ||
|
|
e97335189a | ||
|
|
81ce58268f | ||
|
|
7dace3fc1d | ||
|
|
f4794bea33 | ||
|
|
b044ff3b2a | ||
|
|
cd7856c46e | ||
|
|
3be0ee6072 | ||
|
|
198d26fda1 | ||
|
|
8b26ac4456 | ||
|
|
d6f172e953 | ||
|
|
91ee9b739a | ||
|
|
b568128180 | ||
|
|
53a87530ee | ||
|
|
450de301a9 | ||
|
|
462b0f4eda | ||
|
|
17402ce94a | ||
|
|
b7fae8a6f5 | ||
|
|
4058a98290 | ||
|
|
06d7693ed6 | ||
|
|
2b01f3d902 | ||
|
|
d231ee50b7 | ||
|
|
815546d5ab | ||
|
|
3fda0e4427 | ||
|
|
a1eec029ac | ||
|
|
2bbe92dbab | ||
|
|
b3d0040faa | ||
|
|
c3e924be17 | ||
|
|
dc5574e660 | ||
|
|
5c19b391b1 | ||
|
|
79cb3162f2 | ||
|
|
e49254356a | ||
|
|
3192ef5561 | ||
|
|
8158bcb4f3 | ||
|
|
b03cb94d60 | ||
|
|
0f968c65b6 | ||
|
|
6b92773e87 | ||
|
|
870e1b7301 | ||
|
|
477a2f6da3 | ||
|
|
85fe84406d | ||
|
|
e8096a4db9 | ||
|
|
e68e673835 | ||
|
|
53274e865a | ||
|
|
64df20cb36 | ||
|
|
1977ad8ad4 | ||
|
|
a7e63d02e9 | ||
|
|
593be8d069 | ||
|
|
f7e173f902 | ||
|
|
7eefae4c42 | ||
|
|
7bb0951169 | ||
|
|
787fb879d2 | ||
|
|
c23dafcb89 | ||
|
|
111278b63b | ||
|
|
2008478378 | ||
|
|
d5de60bc21 | ||
|
|
76172d0a5f | ||
|
|
1893df1f5c | ||
|
|
a07fa26bfe | ||
|
|
41447067a2 | ||
|
|
1dd3d39a21 | ||
|
|
4f772a1d57 | ||
|
|
97bd49d221 | ||
|
|
b4374cec6b | ||
|
|
7e5c1218a3 | ||
|
|
475970659c | ||
|
|
e0706dde01 | ||
|
|
986ea74e63 | ||
|
|
fa0e6f7c10 | ||
|
|
ea5156122c | ||
|
|
97b974a31f | ||
|
|
ef98682620 | ||
|
|
d70eb158c4 | ||
|
|
6fc34e922a | ||
|
|
fe65554c7a | ||
|
|
78d9b678a8 | ||
|
|
88302c9470 | ||
|
|
ac6c9e5c46 | ||
|
|
b1de323151 | ||
|
|
24e57872ce | ||
|
|
ddd3f301b3 | ||
|
|
7007fc9d6b | ||
|
|
7ca407fc42 | ||
|
|
5217e8801e | ||
|
|
ddd50cd916 | ||
|
|
9ae3ababfa | ||
|
|
753cac0e7a | ||
|
|
6c3c9ebbcb | ||
|
|
3aaa25a3e8 | ||
|
|
3fc0bce1de | ||
|
|
fdb4544cb5 | ||
|
|
f5741d8095 | ||
|
|
539d1cfeae | ||
|
|
c1ed79757c | ||
|
|
c37727f482 | ||
|
|
b25cd39481 | ||
|
|
5f93bed074 | ||
|
|
bf87c46fcd | ||
|
|
222d4b266e | ||
|
|
d593eaf058 | ||
|
|
ef9502c81b | ||
|
|
4b2c2de990 | ||
|
|
79dc76c5df | ||
|
|
eaa6493ce1 | ||
|
|
9fd0df2a13 | ||
|
|
fdbc64dfc5 | ||
|
|
d272612c6c | ||
|
|
77408c8c5e | ||
|
|
09958eb333 | ||
|
|
fdb7bbdac2 | ||
|
|
a7f24e84e4 | ||
|
|
7e5c71f337 | ||
|
|
62c20c96b4 | ||
|
|
6b491ec209 | ||
|
|
d009deea0e | ||
|
|
bed6feae3f | ||
|
|
d508d34a3a | ||
|
|
5904bab03e | ||
|
|
fc9519cde3 | ||
|
|
2dc823a6ac | ||
|
|
390d901463 | ||
|
|
ae9366f44a | ||
|
|
db344656e5 | ||
|
|
ac31deed5b | ||
|
|
a0bd207d93 | ||
|
|
d62f88691c | ||
|
|
b7c018b664 | ||
|
|
55d021ccb1 | ||
|
|
60cde0712f | ||
|
|
83127523b9 | ||
|
|
86c824e28d | ||
|
|
0349ff95bf | ||
|
|
c20f017069 | ||
|
|
f62c867a20 | ||
|
|
b403cacb93 | ||
|
|
4499a3751f | ||
|
|
6d887cb72f | ||
|
|
10e13dd51d | ||
|
|
5122038d21 | ||
|
|
3039df56a0 | ||
|
|
85edf68ff0 | ||
|
|
259ac99cdd | ||
|
|
39c3a34158 | ||
|
|
dde8223052 | ||
|
|
4dc675eb9c | ||
|
|
2548f27527 | ||
|
|
ff03f092f5 | ||
|
|
53ef67869b | ||
|
|
d48f34d109 | ||
|
|
a2d9c39325 | ||
|
|
0c4f684036 | ||
|
|
e587c8dbd7 | ||
|
|
069ab45164 | ||
|
|
7b7de6f8fc | ||
|
|
9ed3b2aecb | ||
|
|
ecf3f922df | ||
|
|
1aa283fc8c | ||
|
|
bfbf640986 | ||
|
|
b6cd470ca6 | ||
|
|
d826cff9d7 | ||
|
|
ff65a5ca5b | ||
|
|
9e012a2b3a | ||
|
|
a6f1c51539 | ||
|
|
655f27543b | ||
|
|
762baca586 | ||
|
|
ec769b49f6 | ||
|
|
5153e8725c | ||
|
|
f79f2cc5b9 | ||
|
|
cdf4f341d4 | ||
|
|
f649c26304 | ||
|
|
3a8d759a26 | ||
|
|
29ca6e98fb | ||
|
|
328dd9b2d3 | ||
|
|
a1e58e5498 | ||
|
|
ef43aebc5d | ||
|
|
9a3304201e | ||
|
|
cd88710385 | ||
|
|
2b3e4a4579 | ||
|
|
05731cb9a2 | ||
|
|
01eeadaf42 | ||
|
|
b4721882ec | ||
|
|
3e894d0e27 | ||
|
|
4e42125398 | ||
|
|
664cc37a03 | ||
|
|
f4a0da3518 | ||
|
|
cc8c181728 | ||
|
|
5339d4ff93 | ||
|
|
a31368f08d | ||
|
|
136938ba1e | ||
|
|
09316b630d | ||
|
|
99a661089f | ||
|
|
f26cb80e5f | ||
|
|
dde8524ecb | ||
|
|
cda3d18838 | ||
|
|
fae0325e87 | ||
|
|
118ca7248d | ||
|
|
afa194ac54 | ||
|
|
3538712692 | ||
|
|
604c34384c | ||
|
|
c18f1baafa | ||
|
|
8e04920ab9 | ||
|
|
aa3147a4a6 | ||
|
|
f7ab968e1b | ||
|
|
5ce3d9d1a9 | ||
|
|
e2a9c91d3f | ||
|
|
78a8652e7a | ||
|
|
e9c536df96 | ||
|
|
94429a1fbc | ||
|
|
f2728dcf78 | ||
|
|
cbfd18c371 | ||
|
|
60a31eb102 | ||
|
|
7c1e95d35d | ||
|
|
90a046d539 | ||
|
|
935a6f846c | ||
|
|
b02f814c65 | ||
|
|
8c42aa93a2 | ||
|
|
357bc5ad44 | ||
|
|
07fb9e8eb7 | ||
|
|
d641eba252 | ||
|
|
9f9fc4c8ab | ||
|
|
2aef052398 | ||
|
|
1c2027506a | ||
|
|
c3274b2008 | ||
|
|
99aef9e86e | ||
|
|
77697f4312 | ||
|
|
247d8b7ee8 | ||
|
|
06bed8747f | ||
|
|
8e9233022e | ||
|
|
954dc582dc | ||
|
|
df510f0e3b | ||
|
|
ef9b3b0544 | ||
|
|
b8b3a57e8e | ||
|
|
d18020a45c | ||
|
|
e652c1cd24 | ||
|
|
8f5d6ccd51 | ||
|
|
cbe4a488b9 | ||
|
|
8ce3ef69d0 | ||
|
|
ab9fab13d9 | ||
|
|
309b0e64b2 | ||
|
|
a6324a9aa2 | ||
|
|
64417a6867 | ||
|
|
8e16dcde0d | ||
|
|
2d8f6df0e2 | ||
|
|
10199fb7ad | ||
|
|
6f6ac2866c | ||
|
|
46837facbf | ||
|
|
4916211301 | ||
|
|
1d8c4a0954 | ||
|
|
64601914b2 | ||
|
|
b3ca5f133e | ||
|
|
9c3397d367 | ||
|
|
b3dfce9f91 | ||
|
|
590d0028c2 | ||
|
|
67cf817aa9 | ||
|
|
35811512a4 | ||
|
|
c13c85ed44 | ||
|
|
5c85dabad8 | ||
|
|
c134b0f5ca | ||
|
|
d92ad7e2b6 | ||
|
|
4547d8cec1 | ||
|
|
402a1f50f2 | ||
|
|
bada16ade7 | ||
|
|
9794465d88 | ||
|
|
1f163615c5 | ||
|
|
4304d7f786 | ||
|
|
38a5d95df9 | ||
|
|
4897195629 | ||
|
|
1416f05fbd | ||
|
|
ac1f64c3f5 | ||
|
|
8fa82840be | ||
|
|
af92b8922f | ||
|
|
f3d1569cb3 | ||
|
|
da41a23c0e | ||
|
|
e79aebbc8a | ||
|
|
fcd6038d5d | ||
|
|
d1fe0a03b5 | ||
|
|
cfdca08cfe | ||
|
|
d400bf6263 | ||
|
|
fa438db001 | ||
|
|
31dd34522f | ||
|
|
f5221910c8 | ||
|
|
6e7e1980f5 | ||
|
|
11e884e166 | ||
|
|
88943f0857 | ||
|
|
a5459a3aff | ||
|
|
e8fa4f23c6 | ||
|
|
df82c0790b | ||
|
|
81f1d91f5b | ||
|
|
abf0d45784 | ||
|
|
556e2ab99e | ||
|
|
4b60fb5141 | ||
|
|
5eb9c57ba1 | ||
|
|
e08b80afee | ||
|
|
9b8e5896a2 | ||
|
|
55e8c60a0b | ||
|
|
a30b026c9d | ||
|
|
cb79cbeb45 | ||
|
|
0e101aaf8b | ||
|
|
e8244595f3 | ||
|
|
37512eb8d6 | ||
|
|
567db063f3 | ||
|
|
cc1484a81e | ||
|
|
0dc278eed5 | ||
|
|
43ba30365a | ||
|
|
02ac95404d | ||
|
|
8388bdf1ec | ||
|
|
019c3dd8db | ||
|
|
481380f883 | ||
|
|
7c66260ff1 | ||
|
|
ad465b593f | ||
|
|
00d702f998 | ||
|
|
872f55d6c3 | ||
|
|
84f4c38336 | ||
|
|
b9b907490a | ||
|
|
8c6835a919 | ||
|
|
3a6bda4e08 | ||
|
|
60f76344c2 | ||
|
|
1fff7d5bcd | ||
|
|
d77d3ab6c7 | ||
|
|
4c91538f22 | ||
|
|
2eca4f7f14 | ||
|
|
053fa461a2 | ||
|
|
aa997466f0 | ||
|
|
fdf4fce5fa | ||
|
|
5746460e8d | ||
|
|
569ac8e3e0 | ||
|
|
d9efbb879d | ||
|
|
92ff4198ef | ||
|
|
48bd3ab49a | ||
|
|
9c7fc000e5 | ||
|
|
d2454b6b85 | ||
|
|
b4cda81535 | ||
|
|
2d0fae0cbe | ||
|
|
5515404062 | ||
|
|
24c4dc1861 | ||
|
|
3b1a2357cc | ||
|
|
35371fe971 | ||
|
|
365394f28b | ||
|
|
88c70a3ea0 | ||
|
|
b0eb1175c1 | ||
|
|
e90d627125 | ||
|
|
c1190d4ef9 | ||
|
|
67487415ad | ||
|
|
dcf80d7067 | ||
|
|
99a778811a | ||
|
|
eb76f0a6c5 | ||
|
|
b8de813859 | ||
|
|
6b480afd43 | ||
|
|
40d21542ae | ||
|
|
a8af5d2523 | ||
|
|
bfd12aed63 | ||
|
|
76936ea50d | ||
|
|
6947aea35e | ||
|
|
34be51c648 | ||
|
|
56b68b9a24 | ||
|
|
84e6f010d7 | ||
|
|
b360f953db | ||
|
|
320427c9c5 | ||
|
|
5e8543902e | ||
|
|
edae3c9ab7 | ||
|
|
fd9892c6b6 | ||
|
|
51c89fb8cc | ||
|
|
45668baaf8 | ||
|
|
305cc0e01c | ||
|
|
f0f365538b | ||
|
|
f9bba0baed | ||
|
|
306c18065a | ||
|
|
ded674d87c | ||
|
|
c64c71c98c | ||
|
|
7de87c1c25 | ||
|
|
12716bb6e1 | ||
|
|
8e68d573ff | ||
|
|
dd66e94bfd | ||
|
|
d399f75648 | ||
|
|
937173dd2f | ||
|
|
f1f7a40fba | ||
|
|
5522d364d4 | ||
|
|
3a218d246e | ||
|
|
bafc28e3bc | ||
|
|
6d1eb474c4 | ||
|
|
d172f4ffab | ||
|
|
c527b6e84f | ||
|
|
b8c7abd6b3 | ||
|
|
fea8e184c1 | ||
|
|
44a7bc0de9 | ||
|
|
4bad9ef183 | ||
|
|
590835c627 | ||
|
|
997766df92 | ||
|
|
cdbf66cd6c | ||
|
|
4c90eed59e | ||
|
|
d260f8ce2c | ||
|
|
12d0afb215 | ||
|
|
a9040f5f8f | ||
|
|
6e6acb5a71 | ||
|
|
256697d5b0 | ||
|
|
be9067b22e | ||
|
|
a5874a59f0 | ||
|
|
e8405e5638 | ||
|
|
ab70c9dfb1 | ||
|
|
1e4d8584c7 | ||
|
|
29eef77099 | ||
|
|
c50e89ae78 | ||
|
|
89917713d6 | ||
|
|
1e0ac46e07 | ||
|
|
6279b8f5f5 | ||
|
|
4007c87e20 | ||
|
|
ec0f42e76c | ||
|
|
99f63c2a6f | ||
|
|
12ac20f756 | ||
|
|
9d36d74005 | ||
|
|
da2cc977a0 | ||
|
|
84e7bdb586 | ||
|
|
b062a229c8 | ||
|
|
8680b3d815 | ||
|
|
6ab0e4c5a7 | ||
|
|
867bcf97d0 | ||
|
|
360bf9b37e | ||
|
|
4d85106fbf | ||
|
|
64a253b581 | ||
|
|
5f379c1356 | ||
|
|
76c80383ce | ||
|
|
e5a6ea80f0 | ||
|
|
b921e644df | ||
|
|
1c3fb8c192 | ||
|
|
d530d86a30 | ||
|
|
9d9229ef56 | ||
|
|
6f6f3c0800 | ||
|
|
7b234044f6 | ||
|
|
d46c82f34c | ||
|
|
4d5af610f0 | ||
|
|
1e94466f24 | ||
|
|
3210c0bce4 | ||
|
|
849f4ac579 | ||
|
|
6d56f67697 | ||
|
|
c0289719e7 | ||
|
|
a32e969b39 | ||
|
|
f5899e7781 | ||
|
|
ed07c956a7 | ||
|
|
2022ee5a07 | ||
|
|
a0bc1e8691 | ||
|
|
c1951ac49a | ||
|
|
e159e0e77b | ||
|
|
6bbd4134ec | ||
|
|
8a72b2150a | ||
|
|
e4d5d1eeb2 | ||
|
|
6bf2726b63 | ||
|
|
a63af0cb46 | ||
|
|
b2a7e1d2ed | ||
|
|
32a38b3b5a | ||
|
|
8533bcf0a7 | ||
|
|
e00eae1129 | ||
|
|
95595c4cbf | ||
|
|
aad36a4972 | ||
|
|
cc03f47d70 | ||
|
|
5c5e5c23ef | ||
|
|
4b531a2a1a | ||
|
|
35530bec0b | ||
|
|
5853bb2436 | ||
|
|
bfdf45d30d | ||
|
|
a330bc5020 | ||
|
|
66f68ef3ec | ||
|
|
d6e651129b | ||
|
|
d4a59b8253 | ||
|
|
569f1460a4 | ||
|
|
2f369dbd57 | ||
|
|
444e486862 | ||
|
|
b42504d827 | ||
|
|
18ac85a454 | ||
|
|
788a1a06c5 | ||
|
|
787b485bce | ||
|
|
788df0e888 | ||
|
|
916532f7c5 | ||
|
|
3c511bb177 | ||
|
|
49f13755c6 | ||
|
|
dcb4b1ae7e | ||
|
|
2152b48fe2 | ||
|
|
b6f2f99f21 | ||
|
|
c44df8ec06 | ||
|
|
493f082d6d | ||
|
|
bbe76b2709 | ||
|
|
ce8eda24fc | ||
|
|
9f9113bf9a | ||
|
|
a199595938 | ||
|
|
83de5fac75 | ||
|
|
c688657d53 | ||
|
|
a5c62c66b1 | ||
|
|
6d595d18ee | ||
|
|
946e8f1c47 | ||
|
|
b765c3756d | ||
|
|
54dc7bf6c3 | ||
|
|
6142a08db6 | ||
|
|
ca59976e00 | ||
|
|
7f7a160916 | ||
|
|
c8eb51c303 | ||
|
|
4160233a58 | ||
|
|
c5f79f754b | ||
|
|
5f568d681a | ||
|
|
83a2147428 | ||
|
|
9dd2cee6d9 | ||
|
|
57365013bd | ||
|
|
3d55ef075b | ||
|
|
14da6461b1 | ||
|
|
e84d3df024 | ||
|
|
ed38fe0ce9 | ||
|
|
b5daee3bcf | ||
|
|
f5c8c29f5a | ||
|
|
89fa2eae50 | ||
|
|
41b8c9238c | ||
|
|
28b66306da | ||
|
|
0bdbc1897a | ||
|
|
c3d9443a89 | ||
|
|
400db13a78 | ||
|
|
1d7d5858d5 | ||
|
|
8792f24c5d | ||
|
|
76d35b16eb | ||
|
|
81f7fe72ab | ||
|
|
649ba11edb | ||
|
|
2fc6d7c262 | ||
|
|
45421eedce | ||
|
|
8ecb3118e4 | ||
|
|
3fdb10890d | ||
|
|
2a6224c88d | ||
|
|
8d6ddc8250 | ||
|
|
6cc8590a1c | ||
|
|
063d908775 | ||
|
|
93565f0ebf | ||
|
|
1d7fcf5d18 | ||
|
|
897d20f12f | ||
|
|
a928925252 | ||
|
|
4088affa15 | ||
|
|
7def6aacd2 | ||
|
|
94ae1780cd | ||
|
|
2c65c4376b | ||
|
|
68bb3dbfa1 | ||
|
|
82a73693a6 | ||
|
|
612cd4a4c8 | ||
|
|
b3828dfc53 | ||
|
|
01f26567ed | ||
|
|
90d21c9c15 | ||
|
|
6351c1340e | ||
|
|
18cdddf76d | ||
|
|
b14c8bb1ac | ||
|
|
ceff286120 | ||
|
|
59aa4677e8 | ||
|
|
996cd4c856 | ||
|
|
9287149c26 | ||
|
|
306b56a999 | ||
|
|
812cf0a43f | ||
|
|
2c539fd833 | ||
|
|
334295ed67 | ||
|
|
c157b9cdfd | ||
|
|
8280b7a815 | ||
|
|
fb7f982c65 | ||
|
|
75b50d93e8 | ||
|
|
865bdac9df | ||
|
|
ebe5f468d7 | ||
|
|
1bc8d886f4 | ||
|
|
38e352e0d3 | ||
|
|
f6079e7031 | ||
|
|
8c51488190 | ||
|
|
9aad08ada6 | ||
|
|
2d3d11ba59 | ||
|
|
6087953185 | ||
|
|
851654c8a5 | ||
|
|
57a4745e29 | ||
|
|
32cd00895e | ||
|
|
dee5f2684f | ||
|
|
f639a526cf | ||
|
|
d168d8712e | ||
|
|
78a9605383 | ||
|
|
a713b1018e | ||
|
|
9f626dd10c | ||
|
|
8ec7fdd60a | ||
|
|
ffb2245ae6 | ||
|
|
21051c9a0b | ||
|
|
1c8bd34144 | ||
|
|
f614fb7e7d | ||
|
|
b222cd3e55 | ||
|
|
4f2be64813 | ||
|
|
bfb73ffc5a | ||
|
|
9bb7025752 | ||
|
|
bbfbd0b691 | ||
|
|
5628e96a90 | ||
|
|
ef517b7554 | ||
|
|
ba06af327d | ||
|
|
b8b03172bc | ||
|
|
fb5c3c1e6e | ||
|
|
faaa7b11d4 | ||
|
|
92a0467e1e | ||
|
|
3bb2025ea2 | ||
|
|
f2730ff0d7 | ||
|
|
7fcff9e5b4 | ||
|
|
51f83f4880 | ||
|
|
88cb510aea | ||
|
|
452c642af0 | ||
|
|
3fafc5004e | ||
|
|
fd8e502140 | ||
|
|
b499a5c38b | ||
|
|
2320383b16 | ||
|
|
59b3e73330 | ||
|
|
9d9a1b86c4 | ||
|
|
21cc2cefbf | ||
|
|
904df4260d | ||
|
|
af785d5d0b | ||
|
|
1d796856ca | ||
|
|
35f0d5a53f | ||
|
|
2b2fdd2b94 | ||
|
|
9e4539a902 | ||
|
|
a76c8ffd98 | ||
|
|
d7474cb8da | ||
|
|
890a23a537 | ||
|
|
ab17eee260 | ||
|
|
acadc3bd7c | ||
|
|
8701fb7132 | ||
|
|
89fcb3092b | ||
|
|
c9856b96ae | ||
|
|
04477a4b7c | ||
|
|
99371a2ead | ||
|
|
70487a8ef7 | ||
|
|
44c419fdaf | ||
|
|
5eb151f9a0 | ||
|
|
855a939c51 | ||
|
|
7071d9b961 | ||
|
|
adf14491bc | ||
|
|
7e0e8f2801 | ||
|
|
4a37e2d6a6 | ||
|
|
12b2371a69 | ||
|
|
c19d173983 | ||
|
|
203164f372 | ||
|
|
6f69f1c2e2 | ||
|
|
ad1a585b5c | ||
|
|
f29e367ec7 | ||
|
|
18127383f0 | ||
|
|
b450c757c9 | ||
|
|
836683bcbe | ||
|
|
c271af30d8 | ||
|
|
31fab94208 | ||
|
|
a9b5067d7a | ||
|
|
7a31b025a2 | ||
|
|
31897a1b2e | ||
|
|
f93bc592cb | ||
|
|
6ca2753951 | ||
|
|
470ca0093e | ||
|
|
7e1715964f | ||
|
|
39e929a614 | ||
|
|
a9aa06f275 | ||
|
|
54510c9e59 | ||
|
|
cb56429f04 | ||
|
|
ac8147cc0f | ||
|
|
82ac189ac9 | ||
|
|
5721ff78b6 | ||
|
|
7afd2947f1 | ||
|
|
c3e3862c5f | ||
|
|
bf2dc9ecca | ||
|
|
e0e188a02c | ||
|
|
79ba1654d3 | ||
|
|
2aab0d18a5 | ||
|
|
312c8ded11 | ||
|
|
3f86779da6 | ||
|
|
716d3b8482 | ||
|
|
24f6dbc4f0 | ||
|
|
3e943fa35e | ||
|
|
457f878b41 | ||
|
|
ac2b2d042a | ||
|
|
829d2cdbf6 | ||
|
|
3cd9693b36 | ||
|
|
2b52ecf2ef | ||
|
|
faab60cbc1 | ||
|
|
b6be0d649d | ||
|
|
2a65c45d21 | ||
|
|
dc6ae2ac29 | ||
|
|
df4250c33a | ||
|
|
53504ef6f0 | ||
|
|
10afb1af06 | ||
|
|
a9149dfa87 | ||
|
|
5afa6695e7 | ||
|
|
d2a6d54090 | ||
|
|
794ac25c01 | ||
|
|
37214e9480 | ||
|
|
90ab551778 | ||
|
|
9a4ec46440 | ||
|
|
c86d283755 | ||
|
|
941956c1b5 | ||
|
|
67e3d22104 | ||
|
|
7e41c93f9a | ||
|
|
086ccbb3fa | ||
|
|
329ddc576d | ||
|
|
1faef425ab | ||
|
|
bb068cf6b2 | ||
|
|
f7cade41c6 | ||
|
|
47afd3a911 | ||
|
|
ef80d2a41d | ||
|
|
44ef080e9f | ||
|
|
fef8d2c413 | ||
|
|
201746e561 | ||
|
|
8e375a0b7f | ||
|
|
045f3dc060 | ||
|
|
6b6012236d | ||
|
|
9cee798939 | ||
|
|
c79bdb12e0 | ||
|
|
bce77d65de | ||
|
|
0db814ef2d | ||
|
|
31b5ec4bd3 | ||
|
|
e15cdfd76e | ||
|
|
eb150ba82c | ||
|
|
d763275179 | ||
|
|
2b96a8a5c4 | ||
|
|
31866c76b7 | ||
|
|
a2da946e03 | ||
|
|
528bab34e7 | ||
|
|
776b9e4f94 | ||
|
|
168d328e97 | ||
|
|
f871dbd230 | ||
|
|
1662b56ea0 | ||
|
|
f3302dbac0 | ||
|
|
181072f3e7 | ||
|
|
f654312123 | ||
|
|
c46d97646a | ||
|
|
41742359e9 | ||
|
|
024723925e | ||
|
|
76b834768e | ||
|
|
89284bea87 | ||
|
|
532154640b | ||
|
|
ab8468d498 | ||
|
|
84b0332778 | ||
|
|
20b601f290 | ||
|
|
47002cae4c | ||
|
|
eaaffe369a | ||
|
|
7292a31c00 | ||
|
|
389d762a93 | ||
|
|
9704ebf096 | ||
|
|
de320338ca | ||
|
|
668dfd9130 | ||
|
|
a2960b23a8 | ||
|
|
55744edc25 | ||
|
|
7ece5d18cb | ||
|
|
8005ac8635 | ||
|
|
c00a71fdfa | ||
|
|
197c915968 | ||
|
|
6d77a07bbe | ||
|
|
adfb560dd1 | ||
|
|
508d20e4e0 | ||
|
|
72457619f7 | ||
|
|
18d5b83a95 | ||
|
|
653362b947 | ||
|
|
b7477b8f93 | ||
|
|
105f1fceaf | ||
|
|
cb65489ab7 | ||
|
|
96772727df | ||
|
|
960a618fe1 | ||
|
|
505cd37225 | ||
|
|
a5f66b8ac6 | ||
|
|
2021f29f62 | ||
|
|
9ccf3e0f87 | ||
|
|
7cfc53eba8 | ||
|
|
f9d269c750 | ||
|
|
67d5161fd1 | ||
|
|
d6e9bbce71 | ||
|
|
76ec2c0fa2 | ||
|
|
e82a2c9402 | ||
|
|
60ce106e24 | ||
|
|
1eb4952422 | ||
|
|
3043582889 | ||
|
|
f604db6517 | ||
|
|
f95b0c19d7 | ||
|
|
655bf87e92 | ||
|
|
6d06a1920d | ||
|
|
70af51e163 | ||
|
|
2c17fe334e | ||
|
|
5eca2cd3ac | ||
|
|
4b5ff8cad4 | ||
|
|
89d5b25cc7 | ||
|
|
3e10d403b4 | ||
|
|
1ebf06d49a | ||
|
|
2be857a851 | ||
|
|
1de22a82e8 | ||
|
|
f275308cc8 | ||
|
|
79de0dd4d8 | ||
|
|
5cedf74406 | ||
|
|
e5de6b4ad7 | ||
|
|
e467195de1 | ||
|
|
913a5b4a7e | ||
|
|
feb8bd9b79 | ||
|
|
846ecfa776 | ||
|
|
d98fb399a8 | ||
|
|
4a1c1d023a | ||
|
|
43cba548f4 | ||
|
|
772910ffe5 | ||
|
|
767179caf7 | ||
|
|
ee4a9150b8 | ||
|
|
58914fa703 | ||
|
|
ba40e7044a | ||
|
|
010d0073fe | ||
|
|
40210ce42e | ||
|
|
59cdafba21 | ||
|
|
fe6226baa5 | ||
|
|
45987c7652 | ||
|
|
a18ce97fb4 | ||
|
|
13d5080bbc | ||
|
|
9f07a36d1d | ||
|
|
bc2e7f428a | ||
|
|
53bfbdd349 | ||
|
|
174eac9a59 | ||
|
|
3775b86d9e | ||
|
|
5e1c6d6209 | ||
|
|
0d0fb036ab | ||
|
|
f8668802ab | ||
|
|
c22a1382a1 | ||
|
|
941a0d91cc | ||
|
|
60456e4225 | ||
|
|
440e28489a | ||
|
|
3da0f4eedc | ||
|
|
497abfb443 | ||
|
|
7b04a7849b | ||
|
|
e14b1e0b07 | ||
|
|
2121ce2841 | ||
|
|
c22e99941e | ||
|
|
3da646dc8a | ||
|
|
fca675d43f | ||
|
|
a30523744d | ||
|
|
80f5117c34 | ||
|
|
f77f73ec36 | ||
|
|
2385cf0d1b | ||
|
|
bc778ad5bb | ||
|
|
acb9c35d3b | ||
|
|
b8473e2632 | ||
|
|
61b4696574 | ||
|
|
91a79a5d96 | ||
|
|
23927edf46 | ||
|
|
6c03e605b8 | ||
|
|
2e201159d8 | ||
|
|
5d56a8e440 | ||
|
|
7097c85555 | ||
|
|
bf4c8e252f | ||
|
|
866cf33cd4 | ||
|
|
4561560b46 | ||
|
|
bbadbf8e16 | ||
|
|
68d8659115 | ||
|
|
dd008962a7 | ||
|
|
e856e7e58f | ||
|
|
634d8e1aeb | ||
|
|
eaa9376577 | ||
|
|
3fb70fd645 | ||
|
|
b793c75aa8 | ||
|
|
cb26b9af39 | ||
|
|
f8059cc87e | ||
|
|
07fe19ecdc | ||
|
|
a292fe87e1 | ||
|
|
03d915b55c | ||
|
|
cc318535e9 | ||
|
|
9d245f3243 | ||
|
|
6d7f95ac8e | ||
|
|
9d9df76f4e | ||
|
|
a850082f44 | ||
|
|
521150a73b | ||
|
|
ed5f3fe740 | ||
|
|
fd6fdd9768 | ||
|
|
73bf104e9f | ||
|
|
24640e65b1 | ||
|
|
eadfc38a69 | ||
|
|
098ee36c3a | ||
|
|
f4ed4d38f1 | ||
|
|
2ed3eaa325 | ||
|
|
3a7a02244b | ||
|
|
79258b9404 | ||
|
|
6376802d04 | ||
|
|
2784e7652d | ||
|
|
5b3925fae0 | ||
|
|
077f6050f3 | ||
|
|
791dd62b67 | ||
|
|
2364cda362 | ||
|
|
aca4365e8d | ||
|
|
cac857a3a7 | ||
|
|
ed38ce958d | ||
|
|
ed4b9b7426 | ||
|
|
e4468f056d | ||
|
|
4b580b407e | ||
|
|
b575612b07 | ||
|
|
b506b971a4 | ||
|
|
c50f322dc1 | ||
|
|
3a61f4d81d | ||
|
|
a2b2de9783 | ||
|
|
b2a6927b4b | ||
|
|
80dec4e1e2 | ||
|
|
77c7802496 | ||
|
|
cec2687085 | ||
|
|
ac118993d5 | ||
|
|
7634ecf730 | ||
|
|
309d1fa287 | ||
|
|
9231a91fb4 | ||
|
|
f6f928a693 | ||
|
|
467216439b | ||
|
|
c63e73ab7c | ||
|
|
74fcacd800 | ||
|
|
c1c46f01ab | ||
|
|
77083a1fa6 | ||
|
|
5303f290b1 | ||
|
|
895871c94b | ||
|
|
3bff50b764 | ||
|
|
86b7802b3b | ||
|
|
4ff9aaf037 | ||
|
|
99f7827e7e | ||
|
|
b67ac5c849 | ||
|
|
0777f01607 | ||
|
|
222dbf5443 | ||
|
|
9434f61030 | ||
|
|
9199594756 | ||
|
|
fc9318a831 | ||
|
|
e3fc28f082 | ||
|
|
9cb7b84f57 | ||
|
|
2689ed806d | ||
|
|
5999e7856f | ||
|
|
96ad67b020 | ||
|
|
47d5b95e13 | ||
|
|
12108e6046 | ||
|
|
021bdb8c23 | ||
|
|
470f6c0988 | ||
|
|
c8b87b4f79 | ||
|
|
9d7e16fbf7 | ||
|
|
5a45d5e12a | ||
|
|
c793ec78a2 | ||
|
|
7b2b7c5854 | ||
|
|
327615c9ac | ||
|
|
8e5d94b5e7 | ||
|
|
bd76a1f260 | ||
|
|
1df2695f50 | ||
|
|
67d33a3315 | ||
|
|
c49cd3a06e | ||
|
|
6c0545f566 | ||
|
|
f0eee365f9 | ||
|
|
274db506a9 | ||
|
|
1e5c56f3a7 | ||
|
|
871c7a131f | ||
|
|
7642d73f39 | ||
|
|
ef69dfa646 | ||
|
|
377be5030f | ||
|
|
896af55e79 | ||
|
|
b9a4a2c148 | ||
|
|
e9f6d096cf | ||
|
|
25d4c54284 | ||
|
|
e4291e1c51 | ||
|
|
5c11708728 | ||
|
|
73a301192f | ||
|
|
d972564d34 | ||
|
|
e66a2d4663 | ||
|
|
f92e13d898 | ||
|
|
3d0698b326 | ||
|
|
1e0ab86a24 | ||
|
|
caa29b9513 | ||
|
|
c793768918 | ||
|
|
0132a0cff6 | ||
|
|
f83b6ee898 | ||
|
|
dc071dfa56 | ||
|
|
fbfd601270 | ||
|
|
9b5aea2458 | ||
|
|
904ef92ece | ||
|
|
74e950d459 | ||
|
|
e99caef2dc | ||
|
|
855e4a6ed8 | ||
|
|
311b956461 | ||
|
|
b3b308cd9d | ||
|
|
a8480a34ba | ||
|
|
3312637b8d | ||
|
|
e6f7a82fb1 | ||
|
|
5b934de69a | ||
|
|
0f78982f57 | ||
|
|
18abbfc502 | ||
|
|
c3ae4c6dc5 | ||
|
|
9b012649cd | ||
|
|
c126091155 | ||
|
|
c2fee56496 | ||
|
|
5461dc77aa | ||
|
|
1b2a1c3fe3 | ||
|
|
a83a4fdd4f | ||
|
|
4d4ee1f57c | ||
|
|
2bec4ae09f | ||
|
|
e3b91909a6 | ||
|
|
116ba3f629 | ||
|
|
0ce6f8e6a2 | ||
|
|
9447cb67d2 | ||
|
|
92dacc5c3c | ||
|
|
766dfe9dd3 | ||
|
|
84ecb54efd | ||
|
|
6ff8855dba | ||
|
|
7f349cfa71 | ||
|
|
948b23addc | ||
|
|
7031bb6fbe | ||
|
|
15a04a1870 | ||
|
|
741c6d360a | ||
|
|
c4f3ca26ef | ||
|
|
3403adc1ff | ||
|
|
410d3aaf20 | ||
|
|
34905f6053 | ||
|
|
6a16d419af | ||
|
|
cd23c1a5a1 | ||
|
|
18793f8cd9 | ||
|
|
c008147674 | ||
|
|
47323c51c3 | ||
|
|
91f58620ac | ||
|
|
91aeccb2ae | ||
|
|
82864a609d | ||
|
|
828b1ca0c2 | ||
|
|
6b740ece39 | ||
|
|
84f18288e0 | ||
|
|
cf9e5862ed | ||
|
|
4ca2b5f4d2 | ||
|
|
da2894512d | ||
|
|
55e9487203 | ||
|
|
19fb08e7ff | ||
|
|
193b1025ad | ||
|
|
8fa2a925cd | ||
|
|
526daa9647 | ||
|
|
43bcc9fe02 | ||
|
|
51d6066420 | ||
|
|
0b11b83eb5 | ||
|
|
a53dfd14b1 | ||
|
|
cc0380d8f1 | ||
|
|
0a01d22e72 | ||
|
|
e9f1c72198 | ||
|
|
14af8823ed | ||
|
|
5900ce7d12 | ||
|
|
33e0a6bb46 | ||
|
|
ca3bc5059e | ||
|
|
bd108dfe35 | ||
|
|
8a96c7441e | ||
|
|
4eea3194fd | ||
|
|
dace332ac5 | ||
|
|
af816bb905 | ||
|
|
195c24ffef | ||
|
|
92ad17aa19 | ||
|
|
eabc4bee4c | ||
|
|
0ed9142cf0 | ||
|
|
1639683b43 | ||
|
|
05afb08c5d | ||
|
|
c674e44c60 | ||
|
|
e104c78471 | ||
|
|
3d8ec63bd7 | ||
|
|
99670c9d28 | ||
|
|
56126e19a7 | ||
|
|
05e8363504 | ||
|
|
884741062b | ||
|
|
63c77966fa | ||
|
|
31745d9f0d | ||
|
|
78897ed608 | ||
|
|
5712bcdc57 | ||
|
|
8e0a027584 | ||
|
|
12f88b5303 | ||
|
|
b119cad8a9 | ||
|
|
f30210e4e1 | ||
|
|
a8d6a104c3 | ||
|
|
13df0c8638 | ||
|
|
fb70aa6514 | ||
|
|
37fd1d424e | ||
|
|
bdbbcb05dc | ||
|
|
9cd5d0890f | ||
|
|
7b1fa849ef | ||
|
|
a8b5cf81ee | ||
|
|
bc62d4b359 | ||
|
|
4413580212 | ||
|
|
8b653ef133 | ||
|
|
b1f8ac7e22 | ||
|
|
a11c23d718 | ||
|
|
9feceb9fdb | ||
|
|
bad6464fe9 | ||
|
|
a6007ca362 | ||
|
|
05348b01ae | ||
|
|
abfabe3e21 | ||
|
|
83e0da446a | ||
|
|
85a48e71d1 | ||
|
|
0671117660 | ||
|
|
654c5b3074 | ||
|
|
aee5e54c14 | ||
|
|
e5df037992 | ||
|
|
06b9586eb6 | ||
|
|
79716dfdba | ||
|
|
02b6b5d078 | ||
|
|
403e8d2947 | ||
|
|
25e9c37987 | ||
|
|
99b58cf2bf | ||
|
|
78155cfbdf | ||
|
|
1ba980d69f | ||
|
|
ef155aaedf | ||
|
|
22c4b528cb | ||
|
|
fd71c6ac7a | ||
|
|
019fa134cb | ||
|
|
4a40bd3364 | ||
|
|
68229b2474 | ||
|
|
8727ed6ccd | ||
|
|
8ee3d5b8ad | ||
|
|
98ee43aa27 | ||
|
|
92291e3f9f | ||
|
|
1abb41a0d5 | ||
|
|
0993195f03 | ||
|
|
c2a7c6f994 | ||
|
|
48900cf5a0 | ||
|
|
57fbb36808 | ||
|
|
5c45384c34 | ||
|
|
f9aa162e2a | ||
|
|
013d17c386 | ||
|
|
ad250c3883 | ||
|
|
2c9e0012e2 | ||
|
|
2516f23e37 | ||
|
|
d3a7bd48c2 | ||
|
|
4aeb7490e3 | ||
|
|
265beef715 | ||
|
|
a58bf83a9a | ||
|
|
9da1a4a2de | ||
|
|
8a98e38e73 | ||
|
|
3044f4a0b1 | ||
|
|
5104ae1742 | ||
|
|
987ec14da2 | ||
|
|
24c6e0df97 | ||
|
|
23d5d18b28 | ||
|
|
0a38c241af | ||
|
|
5b0d79ad17 | ||
|
|
833187559d | ||
|
|
527066e4c8 | ||
|
|
bad30a49bf | ||
|
|
24f40dd652 | ||
|
|
dce61183dd | ||
|
|
aeb81a9e86 | ||
|
|
81aea15988 | ||
|
|
3e393208ab | ||
|
|
0674accd05 | ||
|
|
0f0d8df572 | ||
|
|
0afd06be9c | ||
|
|
1539bfa8b1 | ||
|
|
a2336be143 | ||
|
|
7d65befc7e | ||
|
|
916b28bc16 | ||
|
|
fb3447a6b4 | ||
|
|
2fa9b2e0e5 | ||
|
|
a66d3fb28a | ||
|
|
6be017d35b | ||
|
|
ef24e5164f | ||
|
|
a7f36b2361 | ||
|
|
3d404002a0 | ||
|
|
1922a1b49c | ||
|
|
ca4ec7025c | ||
|
|
7dcfa709d5 | ||
|
|
aa254142e8 | ||
|
|
b00b12bed2 | ||
|
|
dd7168a687 | ||
|
|
97b665733a | ||
|
|
4a6d3e3042 | ||
|
|
f65cf43e21 | ||
|
|
f971d4db51 | ||
|
|
8cd79c0372 | ||
|
|
9bc346e84a | ||
|
|
88d2e1756f | ||
|
|
dc09c45330 | ||
|
|
47e5b57789 | ||
|
|
c1ad8ed4b2 | ||
|
|
3589b5c9a8 | ||
|
|
fbaf15ad34 | ||
|
|
ee1d02991c | ||
|
|
2450cb028e | ||
|
|
ec1182f059 | ||
|
|
7797d8255f | ||
|
|
a4780ecac7 | ||
|
|
32643990ee | ||
|
|
5746e6267a | ||
|
|
501ec81405 | ||
|
|
714f4fe995 | ||
|
|
ead71a5618 | ||
|
|
eaf6e4ba28 | ||
|
|
bef2c9310e | ||
|
|
7b3e0d4a59 | ||
|
|
ea0705e7e4 | ||
|
|
7b9310f595 | ||
|
|
a31f775de8 | ||
|
|
f061630789 | ||
|
|
5d442125b0 | ||
|
|
e600f444f8 | ||
|
|
a8ae4d6655 | ||
|
|
a885fa7065 | ||
|
|
65665dc384 | ||
|
|
a8992edf88 | ||
|
|
1b7dd28c2f | ||
|
|
ae692432a2 | ||
|
|
c779b31a90 | ||
|
|
cb4bf8f5f4 | ||
|
|
96cd807720 | ||
|
|
07c3150d2a | ||
|
|
c66a405e6d | ||
|
|
0558381bcb | ||
|
|
1db47684b7 | ||
|
|
e16abd2e8b | ||
|
|
f7adc84f0e | ||
|
|
3acd51b247 | ||
|
|
6caab9c017 | ||
|
|
97c61d2a4f | ||
|
|
4f6a0061fe | ||
|
|
5b201069e8 | ||
|
|
8b5d79847f | ||
|
|
2d112a86af | ||
|
|
8806a62af7 | ||
|
|
01748ee847 | ||
|
|
6f1fb24a31 | ||
|
|
c30459115e | ||
|
|
7cdfcbf6dc | ||
|
|
acf140e670 | ||
|
|
df4a18e887 | ||
|
|
dc3836065a | ||
|
|
3df7ab194c | ||
|
|
c0af8460a2 | ||
|
|
85d94a84a8 | ||
|
|
6ad6a361f9 | ||
|
|
2a5dcab60f | ||
|
|
02b97d594f | ||
|
|
5e1cac251b | ||
|
|
3639638bf2 | ||
|
|
e255e054d4 | ||
|
|
8c9d8e7089 | ||
|
|
f0e069d348 | ||
|
|
4f32c8469e | ||
|
|
b2679ecb60 | ||
|
|
e0537267a2 | ||
|
|
3440afd0d6 | ||
|
|
cab65a0aaf | ||
|
|
910908b43e | ||
|
|
cf1c1e6df1 | ||
|
|
ff9b4f5b2f | ||
|
|
01899428e3 | ||
|
|
ff75ade140 | ||
|
|
25d5f36645 | ||
|
|
5c5f042cac | ||
|
|
7da0b32838 | ||
|
|
389896be07 | ||
|
|
f55323afca | ||
|
|
0d5313d263 | ||
|
|
bc676b9731 | ||
|
|
0313a90196 | ||
|
|
fca1c62a55 | ||
|
|
2dcb0d6177 | ||
|
|
e2eea4bca7 | ||
|
|
9218184ef1 | ||
|
|
a9ec9e87be | ||
|
|
f650ff3ccf | ||
|
|
b2640d2203 | ||
|
|
c3b05d27f1 | ||
|
|
9b3a706328 | ||
|
|
290392553e | ||
|
|
07838553a6 | ||
|
|
824ce8b172 | ||
|
|
6ecccdee7f | ||
|
|
96d58942d0 | ||
|
|
9c33405383 | ||
|
|
a8a5fc3672 | ||
|
|
0178716b01 | ||
|
|
9c6327160d | ||
|
|
5975e1bfb1 | ||
|
|
5a0c70c301 | ||
|
|
b21c6f45b7 | ||
|
|
73596546bf | ||
|
|
6bf83c9e72 | ||
|
|
9385176bb5 | ||
|
|
64240c5f3b | ||
|
|
32c4d05106 | ||
|
|
65afb81f33 | ||
|
|
21a4673a1f | ||
|
|
03c13e37db | ||
|
|
e8dfbe1d01 | ||
|
|
cd576793f7 | ||
|
|
736cb21e4d | ||
|
|
d32efe90b9 | ||
|
|
f873675628 | ||
|
|
65cb5e434b | ||
|
|
272fd35699 | ||
|
|
838546b497 | ||
|
|
a17fcb50c4 | ||
|
|
70def3ce72 | ||
|
|
627d307781 | ||
|
|
b96cdafc71 | ||
|
|
f9f6fa6233 | ||
|
|
d8dd9ce4a2 | ||
|
|
07a349e0d2 | ||
|
|
65e23373cd | ||
|
|
6698188e00 | ||
|
|
0242d964b2 | ||
|
|
c1d2fc6ead | ||
|
|
74bb094582 | ||
|
|
9e14595458 | ||
|
|
fdb90a689a | ||
|
|
a1b3fbf3e9 | ||
|
|
fccaa23d1f | ||
|
|
df789fed2e | ||
|
|
c254b982a2 | ||
|
|
78adea7bcb | ||
|
|
5085874b86 | ||
|
|
8631b85e42 | ||
|
|
f9449f5fa6 | ||
|
|
0cef0ce4e5 | ||
|
|
bac62f99ea | ||
|
|
017a788933 | ||
|
|
224b518a60 | ||
|
|
f98f6380c4 | ||
|
|
9a8b156443 | ||
|
|
a269b8efe1 | ||
|
|
b609a290db | ||
|
|
ccdc033c60 | ||
|
|
ed864cae5d | ||
|
|
1dec925c73 | ||
|
|
9c5856f247 | ||
|
|
024572c35c | ||
|
|
4e6ae49f26 | ||
|
|
1aa57a2f6f | ||
|
|
33e2f4b6ff | ||
|
|
44603c0b4c | ||
|
|
f9c79d5b44 | ||
|
|
771258eeb7 | ||
|
|
d37e82d200 | ||
|
|
fb2fd21417 | ||
|
|
98362c7eb9 | ||
|
|
128bc3c391 | ||
|
|
c294406934 | ||
|
|
3825ce80eb | ||
|
|
01d6731929 | ||
|
|
dff088fe37 | ||
|
|
2c4a203109 | ||
|
|
c1b717d8de | ||
|
|
5fb5a67210 | ||
|
|
72ca24de18 | ||
|
|
dbb3cfc7cc | ||
|
|
2229abdc36 | ||
|
|
552836eafc | ||
|
|
17af19661c | ||
|
|
6bd2d9cd90 | ||
|
|
d5c3c64a18 | ||
|
|
f27fa7de8e | ||
|
|
f568691731 | ||
|
|
7506576138 | ||
|
|
60fa83273c | ||
|
|
0f6ee88075 | ||
|
|
99b1241fdb | ||
|
|
6ffc3d4cad | ||
|
|
4b2eda6a24 | ||
|
|
1a72533934 | ||
|
|
f539a533e6 | ||
|
|
1e693af08f | ||
|
|
7916417b71 | ||
|
|
46c38a0ff7 | ||
|
|
9d8f65adc0 | ||
|
|
1618784c0f | ||
|
|
6b0f87bd31 | ||
|
|
e754ce0ec4 | ||
|
|
38caa7f892 | ||
|
|
dd1d9b5df8 | ||
|
|
cb8a23c73f | ||
|
|
41a072d4d2 | ||
|
|
0905ea8c26 | ||
|
|
a0ca0e5fd0 | ||
|
|
e00015dccf | ||
|
|
865a12213c | ||
|
|
b779014c13 | ||
|
|
4c04a78c79 | ||
|
|
32b769bdaa | ||
|
|
4c507aae4e | ||
|
|
8a17adb49d | ||
|
|
09aeef03a6 | ||
|
|
e020cca9d2 | ||
|
|
f86ba4f8fd | ||
|
|
d6e724a47a | ||
|
|
a64a794a97 | ||
|
|
9d5202c49c | ||
|
|
cea0591a77 | ||
|
|
927ee4626e | ||
|
|
47a0649de3 | ||
|
|
2a50990849 | ||
|
|
03d89de6b9 | ||
|
|
884a79e13a | ||
|
|
47ce487162 | ||
|
|
957172f282 | ||
|
|
8d081e0c45 | ||
|
|
991822bede | ||
|
|
8b7b76a337 | ||
|
|
af12d5bba1 | ||
|
|
c2c80271a3 | ||
|
|
110faefc96 | ||
|
|
4cf8959b13 | ||
|
|
e3b6c9829a | ||
|
|
ffdd0fcff7 | ||
|
|
527cea74d3 | ||
|
|
1fcd19c029 | ||
|
|
6bf2c297d7 | ||
|
|
2489a2ce0c | ||
|
|
6d5e9eb94e | ||
|
|
7ff2850b2d | ||
|
|
f70c2d4653 | ||
|
|
d7a91bed10 | ||
|
|
f7178f3fa7 | ||
|
|
77060841cb | ||
|
|
701649cb9b | ||
|
|
3a598479fc | ||
|
|
4ca3f6b2f2 | ||
|
|
f30f0876a9 | ||
|
|
5c04f52be9 | ||
|
|
0c4cafcf87 | ||
|
|
d72e9ad2a6 | ||
|
|
c0f7c28bda | ||
|
|
511955c173 | ||
|
|
20c914492e | ||
|
|
1807e02416 | ||
|
|
04b1b0ce4e | ||
|
|
de2eb433b6 | ||
|
|
cb10a5e99e | ||
|
|
133034ad07 | ||
|
|
29f43464fa | ||
|
|
0b7902029a | ||
|
|
d514f9ed15 | ||
|
|
5b0a056183 | ||
|
|
7f3c7ed376 | ||
|
|
09760d29d5 | ||
|
|
d5574ad90f | ||
|
|
354984404a | ||
|
|
45b41a9ab8 | ||
|
|
fddcb58555 | ||
|
|
614552fdad | ||
|
|
552b7dda0a | ||
|
|
3da7741f24 | ||
|
|
a08dd1e22d | ||
|
|
27399b3dbe | ||
|
|
4d9e7ca6e8 | ||
|
|
2f2abe840a | ||
|
|
3506c65895 | ||
|
|
5d185c51ba | ||
|
|
b1e7865904 | ||
|
|
cc3e769afe | ||
|
|
d9cc74cc78 | ||
|
|
887a39da1a | ||
|
|
8b384849f5 | ||
|
|
1a66fcafb5 | ||
|
|
a39fba8042 | ||
|
|
9f61999ce9 | ||
|
|
1a0d2e59ab | ||
|
|
7d66d7847f | ||
|
|
b4c65bdde3 | ||
|
|
8bd003d21e | ||
|
|
11bb41bbb6 | ||
|
|
ebefc65b69 | ||
|
|
045029bfb4 | ||
|
|
f66ab59f0d | ||
|
|
4c608eec0e | ||
|
|
2d6864b191 | ||
|
|
1545458c76 | ||
|
|
d23a390bf6 | ||
|
|
9e34cb3d61 | ||
|
|
170f526617 | ||
|
|
17e0b37882 | ||
|
|
cbe3c1939e | ||
|
|
251b014604 | ||
|
|
fe416e726a | ||
|
|
4dcf296af2 | ||
|
|
0a8a3bf6f2 | ||
|
|
174a7baaf4 | ||
|
|
0e41b88bdf | ||
|
|
822dc0794a | ||
|
|
f644a3392b | ||
|
|
8634386862 | ||
|
|
e4a84d343a | ||
|
|
7b0a7f7107 | ||
|
|
11f345f3cd | ||
|
|
17f10b2450 | ||
|
|
18e26515de | ||
|
|
ee9d68c0e7 | ||
|
|
f019163b35 | ||
|
|
b86b9b474f | ||
|
|
a7372fdcf6 | ||
|
|
59c5fd1256 | ||
|
|
8fc55951eb | ||
|
|
1e60c2fc78 | ||
|
|
b6256244d3 | ||
|
|
e872106c5c | ||
|
|
fc18d58681 | ||
|
|
7845b3fdc1 | ||
|
|
4b27bbe490 | ||
|
|
3cd0c4073e | ||
|
|
a7803877e9 | ||
|
|
0c4010baab | ||
|
|
c6a1b7bc0d | ||
|
|
ee74548daa | ||
|
|
e6c5afa8b2 | ||
|
|
260d5ddbbe | ||
|
|
ec53038042 | ||
|
|
3dfbc2635a | ||
|
|
293fc233f7 | ||
|
|
a99f95853a | ||
|
|
a3378a188a | ||
|
|
7d7ccc67e0 | ||
|
|
1fa17d63a2 | ||
|
|
a743500a37 | ||
|
|
0a6f2d5adb | ||
|
|
96e6c0dfb5 | ||
|
|
775918468d | ||
|
|
05101cfcd4 | ||
|
|
2de48c0550 | ||
|
|
07004179a3 | ||
|
|
05401a4c98 | ||
|
|
ba678777b1 | ||
|
|
532c461d17 | ||
|
|
b98e1ff9dd | ||
|
|
bc7ca707c9 | ||
|
|
292b131a4c | ||
|
|
e2ca78008e | ||
|
|
85757050bf | ||
|
|
8ecbfb935d | ||
|
|
753a56ce95 | ||
|
|
39d7ab0b76 | ||
|
|
95f638175d | ||
|
|
6c6bf492b0 | ||
|
|
2fdce0280a | ||
|
|
dfa18c632e | ||
|
|
f8276adaa7 | ||
|
|
f184dd5743 | ||
|
|
21da6c813c | ||
|
|
2601519e8b | ||
|
|
97cce473e8 | ||
|
|
227a977697 | ||
|
|
c1a59eba47 | ||
|
|
1034ac8fe1 | ||
|
|
5602fc0b1b | ||
|
|
332c32893c | ||
|
|
9ee52c0827 | ||
|
|
ad0c4b25a5 | ||
|
|
14af01182c | ||
|
|
ac22ed553e | ||
|
|
310c7fa4a3 | ||
|
|
be3daae175 | ||
|
|
fdc4e59d09 | ||
|
|
8af07756ef | ||
|
|
b522b9875e | ||
|
|
8059ebfad1 | ||
|
|
5aa3de21bb | ||
|
|
230e02014c | ||
|
|
be8bc54e46 | ||
|
|
c8d37c2dfc | ||
|
|
21300a858c | ||
|
|
c97887993f | ||
|
|
198311c7c4 | ||
|
|
1db24a8b72 | ||
|
|
9ef492acdc | ||
|
|
f8a74bbcbd | ||
|
|
eade3d0ee3 | ||
|
|
c65c16f476 | ||
|
|
6fa7b3cb88 | ||
|
|
e5a8209127 | ||
|
|
aa768fabc0 | ||
|
|
0c94dbd32c | ||
|
|
89df1b5836 | ||
|
|
c8d682c0b9 | ||
|
|
088c5bc0b9 | ||
|
|
6cbe93a9bb | ||
|
|
1d6e90a429 | ||
|
|
6fb842c619 | ||
|
|
6d90b6079e | ||
|
|
084cbfcef6 | ||
|
|
45a773fc69 | ||
|
|
3c147e7079 | ||
|
|
1c4e574512 | ||
|
|
6901fe07d7 | ||
|
|
d1bf278bf2 | ||
|
|
0d0f670629 | ||
|
|
7c85a226d9 | ||
|
|
b18ae91f37 | ||
|
|
025a5f49e3 | ||
|
|
146a136cd5 | ||
|
|
8e8c532750 | ||
|
|
5b973a2462 | ||
|
|
5bcd00d499 | ||
|
|
cf9591ae83 | ||
|
|
64a5c44726 | ||
|
|
bbae90059e | ||
|
|
1d953c31eb | ||
|
|
49164aef3a | ||
|
|
2cc8810830 | ||
|
|
f8813bda36 | ||
|
|
98f3c5c433 | ||
|
|
65a6317527 | ||
|
|
925c301cbe | ||
|
|
b6ac345ee6 | ||
|
|
b3bc3ca18d | ||
|
|
568d9da42f | ||
|
|
37fef31ed6 | ||
|
|
4d1c0869f1 | ||
|
|
3ed16ff186 | ||
|
|
8a30fdd4c5 | ||
|
|
a9b4881e7b | ||
|
|
f76e3968f8 | ||
|
|
eb777fd14f | ||
|
|
fffae3b519 | ||
|
|
2aaa729ae9 | ||
|
|
c2d6046a1f | ||
|
|
7b4d5766ef | ||
|
|
17978d2306 | ||
|
|
aadbef2a99 | ||
|
|
53e9d90bf9 | ||
|
|
9df339c4a7 | ||
|
|
7c26572c0b | ||
|
|
67f26d4318 | ||
|
|
cd3d1ab2f4 | ||
|
|
9314911cc8 | ||
|
|
67dc07c4f5 | ||
|
|
331e35cd42 | ||
|
|
40890f9ad2 | ||
|
|
cb7606edca | ||
|
|
abab98cea6 | ||
|
|
d271e2a3ef | ||
|
|
579e2a7a93 | ||
|
|
0ac028c546 | ||
|
|
c6b374a934 | ||
|
|
eeddde332e | ||
|
|
9b9926502c | ||
|
|
a0e772885c | ||
|
|
a0384c6d33 | ||
|
|
d18242e0f2 | ||
|
|
2177451371 | ||
|
|
5adb85582a | ||
|
|
35a2074de4 | ||
|
|
de43f14552 | ||
|
|
d675ae17da | ||
|
|
0ae61d3e82 | ||
|
|
c6c7350dad | ||
|
|
75efd7a2d5 | ||
|
|
aaebf3b4fb | ||
|
|
76adc09b16 | ||
|
|
5b26252d25 | ||
|
|
db813a8191 | ||
|
|
4e0740d7b4 | ||
|
|
5c74814b95 | ||
|
|
504aadac16 | ||
|
|
f12e8deeab | ||
|
|
fa9ab9c033 | ||
|
|
d5dd63d528 | ||
|
|
4d2b3d4a77 | ||
|
|
5f2da9421b | ||
|
|
dcea38d038 | ||
|
|
f97538edf2 | ||
|
|
dff3cd1424 | ||
|
|
62fb9bd74d | ||
|
|
5ac5ecb55e | ||
|
|
e6d16b419b | ||
|
|
23fa1bd0bc | ||
|
|
e7350b2528 | ||
|
|
4e5bf8f3c1 | ||
|
|
1b9ac61588 | ||
|
|
616818aa52 | ||
|
|
3481a36735 | ||
|
|
ad530c242d | ||
|
|
fef2b64933 | ||
|
|
fac10e0da7 | ||
|
|
e7295ccf9a | ||
|
|
d4be0e7ef6 | ||
|
|
15beef99f9 | ||
|
|
3524ad56ee | ||
|
|
d7bfdf4397 | ||
|
|
d1edb41b9d | ||
|
|
ad5b32319c | ||
|
|
d646b4b54f | ||
|
|
7e710870ec | ||
|
|
b902fc372f | ||
|
|
e9caab16ba | ||
|
|
3c8ece1eee | ||
|
|
7d1fe3098a | ||
|
|
a8f642ebd7 | ||
|
|
cc85c658d9 | ||
|
|
fbeb65b53b | ||
|
|
66e312c2b8 | ||
|
|
b1300eb52a | ||
|
|
4c34a532ce | ||
|
|
4e3a02c31b | ||
|
|
30fa5891e9 | ||
|
|
53b6c19565 | ||
|
|
cd19cbf0b4 | ||
|
|
8958507385 | ||
|
|
730174b6ff | ||
|
|
cee79afc23 | ||
|
|
79c55793af | ||
|
|
43d614dde2 | ||
|
|
fde11dc4a3 | ||
|
|
36a84d28e2 | ||
|
|
6f7e2ab201 | ||
|
|
fe7097771b | ||
|
|
5a81c223c1 | ||
|
|
8a4e90e1be | ||
|
|
9d0cc5ef91 | ||
|
|
10bd10fbf1 | ||
|
|
21aefed58f | ||
|
|
13133053f6 | ||
|
|
b41f321723 | ||
|
|
a90f6badfd | ||
|
|
92feb60ec5 | ||
|
|
8561944900 | ||
|
|
2ca7b3bf7a | ||
|
|
032acffb03 | ||
|
|
8c7c7b6af5 | ||
|
|
3a6e55a5ea | ||
|
|
fb8ea23744 | ||
|
|
1ce44e3bd9 | ||
|
|
d329b1c88d | ||
|
|
13dbc0826d | ||
|
|
f34a41d19c | ||
|
|
6198bc2a64 | ||
|
|
1f40818dda | ||
|
|
1df7b51be9 | ||
|
|
e45f186cd9 | ||
|
|
6874c8f6b9 | ||
|
|
b03979cf65 | ||
|
|
d5d6605a41 | ||
|
|
139c0d2c51 | ||
|
|
25faf081fc | ||
|
|
cf1a5ada49 | ||
|
|
7986bff968 | ||
|
|
6b305f0593 | ||
|
|
1de81e35f9 | ||
|
|
6714e47d4c | ||
|
|
23e8294502 | ||
|
|
27079865e2 | ||
|
|
2f8e9e9859 | ||
|
|
d3c4772d59 | ||
|
|
e4c13622f0 | ||
|
|
a5ffdd5180 | ||
|
|
f0d86b92fb | ||
|
|
b67d2a45d0 | ||
|
|
6d1bad8b8c | ||
|
|
092f8fc371 | ||
|
|
15c2d416a8 | ||
|
|
c68c4ea9c9 | ||
|
|
eacfd5c8fe | ||
|
|
65304e6003 | ||
|
|
1a51a2e7a7 | ||
|
|
8ddfa65f5f | ||
|
|
15ca25bf6d | ||
|
|
bc0689b529 | ||
|
|
43a5e27e8f | ||
|
|
486e4c7113 | ||
|
|
83773d1335 | ||
|
|
f0b8d3d44f | ||
|
|
26e1d6e939 | ||
|
|
e6f5e437b7 | ||
|
|
22a3325d0c | ||
|
|
caa17b0073 | ||
|
|
e3128c11a2 | ||
|
|
f06c1a86ea | ||
|
|
fbccc80c77 | ||
|
|
73183aa007 | ||
|
|
0d49c4c0fe | ||
|
|
9f2627869b | ||
|
|
13139e6943 | ||
|
|
08e9157f17 | ||
|
|
076302a6b0 | ||
|
|
4c4c748be6 | ||
|
|
76dfd02aa8 | ||
|
|
452a3eb698 | ||
|
|
adb88708fc | ||
|
|
b399a1f9fb | ||
|
|
f2d000a91a | ||
|
|
9f28ef19ef | ||
|
|
85c0e7780f | ||
|
|
145cf2d975 | ||
|
|
9d8dba23b9 | ||
|
|
5a2c5e4c9a | ||
|
|
2480575e67 | ||
|
|
d9337e1086 | ||
|
|
4a0fe9a19b | ||
|
|
0c73900f57 | ||
|
|
f66749ee25 | ||
|
|
043a9ecb4a | ||
|
|
f240b562ff | ||
|
|
a91ce93d43 | ||
|
|
7819c1175a | ||
|
|
2ef66bc91f | ||
|
|
ea8bad4ece | ||
|
|
9ef529ab6c | ||
|
|
fdb848eecb | ||
|
|
beecbbeb61 | ||
|
|
58aa01de1b | ||
|
|
b8bcc4a5f4 | ||
|
|
1cc00a9577 | ||
|
|
5eb1db7dd7 | ||
|
|
c09b4e5ef4 | ||
|
|
d86d621d38 | ||
|
|
0ee03a0d30 | ||
|
|
533a5c8f4a | ||
|
|
521e988b3a | ||
|
|
8786b48f33 | ||
|
|
3f2d90c0ac | ||
|
|
9b563e3dcb | ||
|
|
a210e063f0 | ||
|
|
9055a6facb | ||
|
|
8f3ee23f6c | ||
|
|
29870ae7b0 | ||
|
|
7403155a88 | ||
|
|
4af73414cf | ||
|
|
6110a70b32 | ||
|
|
ed5e0a54cb | ||
|
|
082b6aa86d | ||
|
|
18fb15dec4 | ||
|
|
bf6658a265 | ||
|
|
02728ddc56 | ||
|
|
31bb4c418e | ||
|
|
c0e75c2de2 | ||
|
|
62bf1d069c | ||
|
|
9091d50690 | ||
|
|
0544e21c97 | ||
|
|
e9bb8201ed | ||
|
|
75f8963ecd | ||
|
|
e769926429 | ||
|
|
e09d4d24ba | ||
|
|
ed0924df02 | ||
|
|
cd6fcacc4f | ||
|
|
16bf52e193 | ||
|
|
df5aecd102 | ||
|
|
75c0fee5bf | ||
|
|
5c251f4126 | ||
|
|
ccff827008 | ||
|
|
160769ea60 | ||
|
|
16ecaa91b0 | ||
|
|
2614f91353 | ||
|
|
2a9a041a36 | ||
|
|
c37ce8fab9 | ||
|
|
3f38654652 | ||
|
|
d54c6fe710 | ||
|
|
1ac8ceebe1 | ||
|
|
8cc72e6c96 | ||
|
|
90ecb3c016 | ||
|
|
b3db213b1a | ||
|
|
e389770e55 | ||
|
|
4d19101d01 | ||
|
|
88d0f425d2 | ||
|
|
5a205304bb | ||
|
|
723442227c | ||
|
|
d4c867a835 | ||
|
|
fd271b992a | ||
|
|
f880399c4c | ||
|
|
b1d3acb9f7 | ||
|
|
68848a74a4 | ||
|
|
9b7ac8d6eb | ||
|
|
493262c99a | ||
|
|
d9ff44cc93 | ||
|
|
5e3530faef | ||
|
|
c5ca47396b | ||
|
|
2c21d4ddad | ||
|
|
8d5cae835f | ||
|
|
84221fe0d8 | ||
|
|
644613749d | ||
|
|
c2a783ce96 | ||
|
|
23d645473c | ||
|
|
0f43de79e1 | ||
|
|
eb86db3ef6 | ||
|
|
263c0503dc | ||
|
|
47cef95b11 | ||
|
|
5a71cb4ac6 | ||
|
|
0c3b3e9aa6 | ||
|
|
09a5343daa | ||
|
|
254dcff1f6 | ||
|
|
2891e01de1 | ||
|
|
f42568bed4 | ||
|
|
a28f667df5 | ||
|
|
ff1d561f7b | ||
|
|
94a91215fb | ||
|
|
dccb50d269 | ||
|
|
6ca7d3904d | ||
|
|
0f81af3095 | ||
|
|
1ae124f0b2 | ||
|
|
e83c466bf2 | ||
|
|
9a63cfa956 | ||
|
|
18250a98f7 | ||
|
|
d18547806e | ||
|
|
03b475add1 | ||
|
|
b35c43b55c | ||
|
|
48862f2b8d | ||
|
|
41714fe3f2 | ||
|
|
f9db93e41a | ||
|
|
6573985bea | ||
|
|
77dfe79d95 | ||
|
|
1679dc61a1 | ||
|
|
07afba0b9e | ||
|
|
c018f86671 | ||
|
|
7eb8f0d685 | ||
|
|
2e7bdbcac5 | ||
|
|
66f7474d62 | ||
|
|
1ed3008c1c | ||
|
|
b3dbc041b5 | ||
|
|
7bc5385783 | ||
|
|
02513a8779 | ||
|
|
27100e2e2d | ||
|
|
4860d0cb3d | ||
|
|
a0ce1b361f | ||
|
|
7ede27e90b | ||
|
|
0cfb27feba | ||
|
|
85c567ffc5 | ||
|
|
694309f80b | ||
|
|
0a6a4c35fa | ||
|
|
923d9ee512 | ||
|
|
f2671ea4ba | ||
|
|
0d3e27932a | ||
|
|
cc81fd3244 | ||
|
|
014effef90 | ||
|
|
903e59a814 | ||
|
|
7e2b21602a | ||
|
|
aee394a792 | ||
|
|
e5e20af1f7 | ||
|
|
2d09a1ce33 | ||
|
|
e0f9e0c48c | ||
|
|
f4f67d4289 | ||
|
|
ce68617d86 | ||
|
|
ba53334a7c | ||
|
|
91925f9ec6 | ||
|
|
6b9b8ac403 | ||
|
|
01d9af0bb2 | ||
|
|
63549fd3e2 | ||
|
|
e3cd1e9fc3 | ||
|
|
d0ceed37b5 | ||
|
|
849adc5d7c | ||
|
|
317fc93c76 | ||
|
|
3ff6c725a3 | ||
|
|
205953d928 | ||
|
|
8a01969796 | ||
|
|
38d94663cf | ||
|
|
c85ef44a1b | ||
|
|
648a30ecf8 | ||
|
|
fc7237c7b9 | ||
|
|
936a3b624b | ||
|
|
fc4fa3893c | ||
|
|
e34a2f5195 | ||
|
|
ce98e862c3 | ||
|
|
930357d11c | ||
|
|
43c3584dd2 | ||
|
|
c0def90173 | ||
|
|
0d918510fd | ||
|
|
06141850fa | ||
|
|
8eab9a3f15 | ||
|
|
a7b7c45657 | ||
|
|
15004f2762 | ||
|
|
be8242c7ac | ||
|
|
601fd98508 | ||
|
|
c8bf9b41e4 | ||
|
|
8d73cef4b2 | ||
|
|
6f4a0f7ce4 | ||
|
|
a67056fbc9 | ||
|
|
cc67c3ced1 | ||
|
|
edb2f1bac2 | ||
|
|
264ce8ddc4 | ||
|
|
17642ca84b | ||
|
|
f46d91a57e | ||
|
|
8d145c9075 | ||
|
|
78403a0baf | ||
|
|
353b2fd7e0 | ||
|
|
ec1e1fda92 | ||
|
|
da5331d8ca | ||
|
|
939f44b48c | ||
|
|
5939df9345 | ||
|
|
c366b9f4c8 | ||
|
|
d23baec6d9 | ||
|
|
835e0f50ca | ||
|
|
ff4f338898 | ||
|
|
113871a150 | ||
|
|
c31b5cf2b4 | ||
|
|
7d75a6c3a9 | ||
|
|
3995351b54 | ||
|
|
795942d8a9 | ||
|
|
f4be975fec | ||
|
|
b7a0cc5c24 | ||
|
|
8a666ae397 | ||
|
|
2cc8e519d8 | ||
|
|
48cd21aa46 | ||
|
|
531fbb63be | ||
|
|
6f3945cced | ||
|
|
9dc3c32769 | ||
|
|
3f2f19f73c | ||
|
|
9a013d783e | ||
|
|
6ea217b674 | ||
|
|
0356221066 | ||
|
|
50a0ed3823 | ||
|
|
1686d41c0c | ||
|
|
65f2efa9a0 | ||
|
|
84e9cf5261 | ||
|
|
dd256409e9 | ||
|
|
1e68c047ea | ||
|
|
56340fcc60 | ||
|
|
af639286e1 | ||
|
|
bf32b6262d | ||
|
|
f2dd283751 | ||
|
|
c27cd8ca54 | ||
|
|
75c86f7b69 | ||
|
|
2e1d65fa33 | ||
|
|
5cdd2629bf | ||
|
|
026bf6fb07 | ||
|
|
9054049ebf | ||
|
|
d7a044c894 | ||
|
|
2da8895f3e | ||
|
|
1e1a5897bc | ||
|
|
d3a635b156 | ||
|
|
f08c8a51ad | ||
|
|
2f08e92a5e | ||
|
|
336b009f24 | ||
|
|
e027454a36 | ||
|
|
af968c2c58 | ||
|
|
25a954b13c | ||
|
|
a45d8761e5 | ||
|
|
e1d9ca6325 | ||
|
|
d3853ddbf8 | ||
|
|
7efa62c994 | ||
|
|
9284bf5b14 | ||
|
|
88ebf9f86f | ||
|
|
85ab9d98de | ||
|
|
b8278bb310 | ||
|
|
00ef27bf8c | ||
|
|
d090a6d851 | ||
|
|
573b5e1c62 | ||
|
|
f6b1cf7c3a | ||
|
|
08643c8af1 | ||
|
|
b2b8c083a6 | ||
|
|
fa882d5472 | ||
|
|
8760481153 | ||
|
|
33338d2a0a | ||
|
|
5b85c20d32 | ||
|
|
bbf8decd0a | ||
|
|
d5315054a2 | ||
|
|
6e7aa3fe9a | ||
|
|
48b42bf41f | ||
|
|
e2f7c2ef20 | ||
|
|
27294822ef | ||
|
|
f0250338eb | ||
|
|
7ee3ef4737 | ||
|
|
03a1cf0395 | ||
|
|
5ad70b83d6 | ||
|
|
8eba500d1b | ||
|
|
0a3d361621 | ||
|
|
fd5f54d8c9 | ||
|
|
957daf5392 | ||
|
|
c4953590bc | ||
|
|
578d6c8518 | ||
|
|
54bcff0b8f | ||
|
|
9f74e57a05 | ||
|
|
a58298edb9 | ||
|
|
c7e2905255 | ||
|
|
799126f06a | ||
|
|
1d041357aa | ||
|
|
d53bfb70ff | ||
|
|
e4a9636583 | ||
|
|
3c744e9678 | ||
|
|
28cfa69a23 | ||
|
|
e4c8437f1f | ||
|
|
b5668d9534 | ||
|
|
e756fece66 | ||
|
|
80c2c58a5a | ||
|
|
047aa43880 | ||
|
|
e0d33e6099 | ||
|
|
f60a55815d | ||
|
|
33bde966b7 | ||
|
|
77210f7c90 | ||
|
|
058f32c941 | ||
|
|
979f06e6d0 | ||
|
|
595b77c3c6 | ||
|
|
2788ea31ff | ||
|
|
94d9601d23 | ||
|
|
51520e0e0a | ||
|
|
6bb8da9a36 | ||
|
|
cde3f7900f | ||
|
|
357d4625fa | ||
|
|
51b37abae7 | ||
|
|
cca7ded152 | ||
|
|
3d9aa58ac1 | ||
|
|
695d7e4f74 | ||
|
|
7bec8a103b | ||
|
|
3be4c57530 | ||
|
|
70d0ed54a4 | ||
|
|
36ac807635 | ||
|
|
430a9b38ef | ||
|
|
e3574e9d23 | ||
|
|
6591ed7a3c | ||
|
|
5f292ae46a | ||
|
|
bd9f5ff862 | ||
|
|
69614a158e | ||
|
|
cf8ec8bbad | ||
|
|
91c3d820fc | ||
|
|
f435203794 | ||
|
|
b4c013f4da | ||
|
|
37ecb69379 | ||
|
|
d1643e9a09 | ||
|
|
0456d837d8 | ||
|
|
b493b17602 | ||
|
|
206386b263 | ||
|
|
51d336405a | ||
|
|
e068a3807a | ||
|
|
f585f54016 | ||
|
|
cf3b87d3aa | ||
|
|
3164c0fd56 | ||
|
|
bdfed43b01 | ||
|
|
1e794aaa12 | ||
|
|
1297b97b2d | ||
|
|
ca80857607 | ||
|
|
417e331e8e | ||
|
|
8602da1753 | ||
|
|
0c9af3ffee | ||
|
|
12ba2a2724 | ||
|
|
e892b8b3e5 | ||
|
|
8d91d597fe | ||
|
|
b8f146364b | ||
|
|
3866f8709f | ||
|
|
0eeffd1984 | ||
|
|
b15973b00c | ||
|
|
ddf65972c0 | ||
|
|
c10bf44bfc | ||
|
|
4bf9be860b | ||
|
|
e0313958b3 | ||
|
|
cda4c522fd | ||
|
|
38bd2ac74c | ||
|
|
36da47f66e | ||
|
|
805efc912e | ||
|
|
3642dbcd86 | ||
|
|
d3cfe1f6e1 | ||
|
|
88acbdd8b9 | ||
|
|
214f2667f2 | ||
|
|
7b16cc9d7b | ||
|
|
9035ed453f | ||
|
|
b0affc8611 | ||
|
|
09fb35c80b | ||
|
|
6badc8099f | ||
|
|
8520add970 | ||
|
|
058b4d0020 | ||
|
|
68db9e1254 | ||
|
|
0cddda43f2 | ||
|
|
077ce786cb | ||
|
|
46de6b8d8b | ||
|
|
1aea4beffe | ||
|
|
38a5341d08 | ||
|
|
17752dcce1 | ||
|
|
1aedac39fd | ||
|
|
1cfb7ee6a4 | ||
|
|
290b5d9da2 | ||
|
|
b66241b006 | ||
|
|
cf615efcd0 | ||
|
|
c57b832305 | ||
|
|
e5c3ae1f9f | ||
|
|
e9232e3bae | ||
|
|
f4bb9544d4 | ||
|
|
28aaf22ea8 | ||
|
|
de49920af7 | ||
|
|
e05c01fc77 | ||
|
|
9f6dc5da11 | ||
|
|
84c9eb87e6 | ||
|
|
9f290b550b | ||
|
|
6e4950ec1c | ||
|
|
c727389f53 | ||
|
|
20e8ac2910 | ||
|
|
7e59145102 | ||
|
|
5e01a37b6e | ||
|
|
95d2363435 | ||
|
|
82332bf92f | ||
|
|
042c451bd6 | ||
|
|
3e66c3e5db | ||
|
|
a6f3852846 | ||
|
|
1f622b0c1e | ||
|
|
48aaf9de6c | ||
|
|
8b5e86c1ba | ||
|
|
2a975c95b2 | ||
|
|
b89555a2e2 | ||
|
|
166ab7d299 | ||
|
|
d2bf8f1b53 | ||
|
|
e363840937 | ||
|
|
d8fb275b20 | ||
|
|
13719170c9 | ||
|
|
2c4db5bf02 | ||
|
|
7e957527ac | ||
|
|
b94a1d943f | ||
|
|
3efb4da14b | ||
|
|
9c53f4b949 | ||
|
|
35d395fc35 | ||
|
|
cf19a63aac | ||
|
|
6456060a6c | ||
|
|
702547a88b | ||
|
|
2447da3c08 | ||
|
|
8df420c37c | ||
|
|
d18a345b5b | ||
|
|
1770274dd0 | ||
|
|
746dd506f8 | ||
|
|
78be0004af | ||
|
|
333a378230 | ||
|
|
5e8f776334 | ||
|
|
5470a82b94 | ||
|
|
7959c96bcd | ||
|
|
aeb4bec02d | ||
|
|
b92df15594 | ||
|
|
86089ec3b4 | ||
|
|
2cffaa9d73 | ||
|
|
94da28c5cc | ||
|
|
86b7f30e0e | ||
|
|
e5b01ad92f | ||
|
|
9d381c2848 | ||
|
|
f81c0280e4 | ||
|
|
b13ffff044 | ||
|
|
d068ac40ec | ||
|
|
db5e428709 | ||
|
|
77396111aa | ||
|
|
7af05e3f4a | ||
|
|
8665ad24c1 | ||
|
|
72e6e11238 | ||
|
|
3468201f32 | ||
|
|
fb7496aaf2 | ||
|
|
9193653773 | ||
|
|
a80641f8f4 | ||
|
|
eb7f1ba9ee | ||
|
|
39820205ce | ||
|
|
2cffcb4e25 | ||
|
|
2d2c664ce9 | ||
|
|
ca4e477f56 | ||
|
|
3ec36c4db1 | ||
|
|
d593696df2 | ||
|
|
45de55a552 | ||
|
|
17d20bac8b | ||
|
|
f42137d86c | ||
|
|
456177af30 | ||
|
|
41374d62ea | ||
|
|
25395fcac3 | ||
|
|
9b49c66136 | ||
|
|
36bfc9e770 | ||
|
|
2a04341b3b | ||
|
|
c0a7f1b3fe | ||
|
|
66e1b94d1b | ||
|
|
25e07d0a60 | ||
|
|
2731f2b287 | ||
|
|
5140cb1c2c | ||
|
|
e11566537c | ||
|
|
b884dc910e | ||
|
|
35cefe3b89 | ||
|
|
96af106a9d | ||
|
|
ac5d961a70 | ||
|
|
8f4e529766 | ||
|
|
19a7e2898e | ||
|
|
0ef29c181a | ||
|
|
81d3d5f11d | ||
|
|
c4e0518228 | ||
|
|
121b7df59e | ||
|
|
6740f6b1fb | ||
|
|
5a7a267daf | ||
|
|
fb1040fb2c | ||
|
|
ecad5518eb | ||
|
|
4361e2277a | ||
|
|
7d7e25fd25 | ||
|
|
8f0cfe2c2a | ||
|
|
c470c5f161 | ||
|
|
2302e5f37e | ||
|
|
fc1b84f966 | ||
|
|
25ad869030 | ||
|
|
a35559da30 | ||
|
|
0103abbec3 | ||
|
|
ee725747ad | ||
|
|
ef0f044e8d | ||
|
|
d42b72ea79 | ||
|
|
f177441d07 | ||
|
|
939c6442be | ||
|
|
33dad3db73 | ||
|
|
ef296d4b1c | ||
|
|
58fbb8e04f | ||
|
|
0200b53c3e | ||
|
|
cdaef11761 | ||
|
|
853d9f8ddd | ||
|
|
61aac1f1b2 | ||
|
|
48f33e7e4c | ||
|
|
216ebb2454 | ||
|
|
5c36f21f06 | ||
|
|
66360844b2 | ||
|
|
8eae549af3 | ||
|
|
721bc6d68f | ||
|
|
b7d7b3dceb | ||
|
|
d3ad5ee823 | ||
|
|
c119b4b6ef | ||
|
|
9aa5e6435d | ||
|
|
b4eced0cd3 | ||
|
|
1f159aacf0 | ||
|
|
d2ed70b6dd | ||
|
|
76be885a60 | ||
|
|
f7173cd477 | ||
|
|
b448db51f4 | ||
|
|
a413b2401b | ||
|
|
37a673d336 | ||
|
|
37cb60a777 | ||
|
|
18fc857b78 | ||
|
|
aa4912bba9 | ||
|
|
7eff7f89d1 | ||
|
|
9010003a0d | ||
|
|
9a0bc05b8b | ||
|
|
0e4327c3f9 | ||
|
|
cc9b4b874c | ||
|
|
333609d23a | ||
|
|
1f7e682900 | ||
|
|
635d4196f1 | ||
|
|
3f7ce90cef | ||
|
|
1c8859ced6 | ||
|
|
04257535e1 | ||
|
|
ae71fb9c33 | ||
|
|
8f68e5afaf | ||
|
|
23160f7843 | ||
|
|
2788e39cd6 | ||
|
|
e536cae63a | ||
|
|
e6b96b3fc3 | ||
|
|
6d357c8d22 | ||
|
|
02dcd57817 | ||
|
|
7a2c5425a1 | ||
|
|
8b667e056c | ||
|
|
125fe90aaf | ||
|
|
c7a4d08372 | ||
|
|
d2bae92e92 | ||
|
|
9ff4c81a11 | ||
|
|
bda105c550 | ||
|
|
df36b6d24f | ||
|
|
b34ef9283d | ||
|
|
7e13e8cb67 | ||
|
|
a51f96cc6f | ||
|
|
99ea103944 | ||
|
|
3b2e5e5d95 | ||
|
|
e06ce66513 | ||
|
|
738862cb22 | ||
|
|
de063e51f0 | ||
|
|
8f21a77150 | ||
|
|
a27321df2e | ||
|
|
0fb7ba5987 | ||
|
|
a0a508e64f | ||
|
|
d8a80419eb | ||
|
|
862df2efb6 | ||
|
|
9dcbab9628 | ||
|
|
ae7b25e120 | ||
|
|
bb1e7df7a9 | ||
|
|
b620d33f98 | ||
|
|
19b5004920 | ||
|
|
337fb2ae45 | ||
|
|
e87d4a796a | ||
|
|
a419ee9ed1 | ||
|
|
2fe6e3dcab | ||
|
|
262b6352a6 | ||
|
|
a18d29b66a | ||
|
|
b464b9ab88 | ||
|
|
8bf8b6b36e | ||
|
|
cbd10c7a7c | ||
|
|
a6bfa8f976 | ||
|
|
8850d7d188 | ||
|
|
9b62a70c8f | ||
|
|
950887851a | ||
|
|
6f5c41ca14 | ||
|
|
5223529af1 | ||
|
|
2632d7ea9f | ||
|
|
de60a0abd1 | ||
|
|
c4e4ff57d8 | ||
|
|
b6f108f7ea | ||
|
|
96c39e68ee | ||
|
|
a3d5e63fb6 | ||
|
|
c1be834e54 | ||
|
|
caf0914b4d | ||
|
|
0fc522f8c2 | ||
|
|
a247f7e396 | ||
|
|
03d5047798 | ||
|
|
391b8ece7a | ||
|
|
7d75654cf0 | ||
|
|
6a46ad2b0e | ||
|
|
e413ad216e | ||
|
|
d582005d64 | ||
|
|
02fa07552b | ||
|
|
b032926581 | ||
|
|
189cb66daf | ||
|
|
36f1df58f0 | ||
|
|
8489eda3a6 | ||
|
|
3e189a751d | ||
|
|
b2f6be6d10 | ||
|
|
b656632e86 | ||
|
|
22cf50282c | ||
|
|
7650e15a52 | ||
|
|
235d6ecd2f | ||
|
|
c9a0d4489b | ||
|
|
c6697b82fe | ||
|
|
e0231c7dd5 | ||
|
|
f3bcbf85dd | ||
|
|
7e04f9a5b3 | ||
|
|
1835d490a3 | ||
|
|
36bf94aad9 | ||
|
|
468df062c3 | ||
|
|
544a9212cf | ||
|
|
822f43c5a1 | ||
|
|
85106cb293 | ||
|
|
ebd0fa4809 | ||
|
|
43f4fe2011 | ||
|
|
ffcebdf94a | ||
|
|
0e7b104c76 | ||
|
|
f0b76f244c | ||
|
|
e4dc9103e1 | ||
|
|
afb88122ad | ||
|
|
18a0fa7fb9 | ||
|
|
b491b2b4cd | ||
|
|
4b1e9afe28 | ||
|
|
abb9a56761 | ||
|
|
09505b2005 | ||
|
|
e3a9adbf3f | ||
|
|
9aafed66c0 | ||
|
|
a259aa8419 | ||
|
|
4daf6e127e | ||
|
|
1ac36e932e | ||
|
|
23b038a6a7 | ||
|
|
e2069c8584 | ||
|
|
525cf4652e | ||
|
|
6eb3595294 | ||
|
|
8c421d0726 | ||
|
|
870c69b834 | ||
|
|
4f39307b9b | ||
|
|
b687e339a4 | ||
|
|
8623f2369f | ||
|
|
7eade56042 | ||
|
|
1091c983f9 | ||
|
|
533ca3e601 | ||
|
|
e4b8594d44 | ||
|
|
22e5a53e32 | ||
|
|
6c5f5116b4 | ||
|
|
b5e455ff75 | ||
|
|
03cd5c164f | ||
|
|
c4aa99636e | ||
|
|
ed0eb9be19 | ||
|
|
d155f8ed12 | ||
|
|
ffcfe3cf9c | ||
|
|
d848a15217 | ||
|
|
951f8e9442 | ||
|
|
f10f46b811 | ||
|
|
d7e80a1303 | ||
|
|
de0d6c5891 | ||
|
|
4e7c0122d7 | ||
|
|
cb75e46161 | ||
|
|
6954f5842f | ||
|
|
cbc1cc6b5b | ||
|
|
3cc2cf0783 | ||
|
|
b3e7bcf2e1 | ||
|
|
dd3c33387d | ||
|
|
84a8f11846 | ||
|
|
4d2ba5fc41 | ||
|
|
b980e39ebb | ||
|
|
0dc97dd2d9 | ||
|
|
cef6815e5c | ||
|
|
4e84b7d789 | ||
|
|
f632fa2e50 | ||
|
|
1919440a83 | ||
|
|
1a43dafb2e | ||
|
|
bd54f19bdb | ||
|
|
5f2e98beed | ||
|
|
f7ea0cd254 | ||
|
|
af1ab49219 | ||
|
|
2ac74c5e29 | ||
|
|
fb42df3117 | ||
|
|
443dacaefb | ||
|
|
0d5b3d9018 | ||
|
|
cc75c46b1a | ||
|
|
1ee60f743e | ||
|
|
dc8fd8baef | ||
|
|
67b6884200 | ||
|
|
03a81280f4 | ||
|
|
34675696f3 | ||
|
|
0e1687c853 | ||
|
|
ccf8a8e492 | ||
|
|
a0d0a30ad3 | ||
|
|
ff02801000 | ||
|
|
590ca3892d | ||
|
|
1674486dc0 | ||
|
|
dc5301f8b0 | ||
|
|
436f7eefe9 | ||
|
|
fd8bd63f55 | ||
|
|
64b42aef99 | ||
|
|
1d323ddc37 | ||
|
|
c1331df2fe | ||
|
|
cb1946a8d0 | ||
|
|
09c043b11f | ||
|
|
6df3dce95d | ||
|
|
9787f2ed8e | ||
|
|
654f79b42d | ||
|
|
1840120af8 | ||
|
|
b90ac3d629 | ||
|
|
e846420f9d | ||
|
|
87a7fca75c | ||
|
|
a9c07ec770 | ||
|
|
fc2bd8230a | ||
|
|
36c2b7b952 | ||
|
|
fb3f843309 | ||
|
|
12eef87fb0 | ||
|
|
4c066859c4 | ||
|
|
b4716db99d | ||
|
|
07f13de58e | ||
|
|
92bdb06ceb | ||
|
|
256b1aeb59 | ||
|
|
9b20c2a230 | ||
|
|
78c3617749 | ||
|
|
9a041af544 | ||
|
|
8687de6fa2 | ||
|
|
c7a4bb461a | ||
|
|
c96f142709 | ||
|
|
6367375ac6 | ||
|
|
0530e50a04 | ||
|
|
afd05f3c7c | ||
|
|
fff7faab90 | ||
|
|
e4c36c8470 | ||
|
|
11527282c8 | ||
|
|
085764b9a4 | ||
|
|
96e3c3b9ac | ||
|
|
2c9893c524 | ||
|
|
cbf444d5ed | ||
|
|
25e52df136 | ||
|
|
85afd6966c | ||
|
|
724df36bdc | ||
|
|
afb0cdfbaf | ||
|
|
2de4ec6ebe | ||
|
|
70ca670955 | ||
|
|
acea32f618 | ||
|
|
be11f93de7 | ||
|
|
067ec9b2b9 | ||
|
|
398397ca7f | ||
|
|
3599fa2b0c | ||
|
|
f650177758 | ||
|
|
56227b77d2 | ||
|
|
9deaf6bc6d | ||
|
|
0f4d5a7047 | ||
|
|
b82004cf26 | ||
|
|
59a0eba902 | ||
|
|
e979fc86b2 | ||
|
|
b28ba12146 | ||
|
|
4cfd4bec24 | ||
|
|
d9aa4eea38 | ||
|
|
fefe716d2f | ||
|
|
c6c0dc21e2 | ||
|
|
cd6bdb1576 | ||
|
|
9266e919b6 | ||
|
|
116131f0a8 | ||
|
|
7fb644ee3e | ||
|
|
321550d418 | ||
|
|
4234087c34 | ||
|
|
bdac6bc3fa | ||
|
|
524e83c595 | ||
|
|
f9b2f413d7 | ||
|
|
d2f21c4b36 | ||
|
|
95d8d8a42d | ||
|
|
63a2ba032d | ||
|
|
e8ccd265ca | ||
|
|
2c2968fe1a | ||
|
|
2df07f446b | ||
|
|
a906eb951e | ||
|
|
50f3e39b2f | ||
|
|
7c730f7b96 | ||
|
|
7bb19d446d | ||
|
|
8887962d6f | ||
|
|
2f032def09 | ||
|
|
426781a839 | ||
|
|
65b3addfdb | ||
|
|
b104326036 | ||
|
|
74267bbba9 | ||
|
|
5f454bcd6e | ||
|
|
c300bdcac9 | ||
|
|
b85604097d | ||
|
|
89d9585ad8 | ||
|
|
8e992a6979 | ||
|
|
51a4aabc09 | ||
|
|
b423872e66 | ||
|
|
a5ef9fd3cb | ||
|
|
a48686ce11 | ||
|
|
440a68cb9b | ||
|
|
480fd57ea4 | ||
|
|
f07e018fbd | ||
|
|
95a2093dc3 | ||
|
|
e3ec53c3f3 | ||
|
|
6d679f302b | ||
|
|
85fa61768f | ||
|
|
447d1a3997 | ||
|
|
a5520204f5 | ||
|
|
9b8ebe32d4 | ||
|
|
7914ed4147 | ||
|
|
a851dc6bb5 | ||
|
|
c9d9ab9a20 | ||
|
|
84e75c28e5 | ||
|
|
1e6829afc7 | ||
|
|
1d23955868 | ||
|
|
aebe59a69f | ||
|
|
0b125e3299 | ||
|
|
46b4fab4ed | ||
|
|
2d6ca5a347 | ||
|
|
145cf2b482 | ||
|
|
0a94c729e5 | ||
|
|
a31331be0c | ||
|
|
67ab58a99b | ||
|
|
3835824d36 | ||
|
|
02f98accd3 | ||
|
|
d84119ca6a | ||
|
|
c39fb79fda | ||
|
|
d6a5a4023b | ||
|
|
8b0a0269ec | ||
|
|
334493c1be | ||
|
|
71bae99c38 | ||
|
|
3d1ab364dc | ||
|
|
46820eecff | ||
|
|
4bc5f07815 | ||
|
|
c78731e033 | ||
|
|
f063d7ecbd | ||
|
|
f67071708d | ||
|
|
09d7d996cd | ||
|
|
a143d851f2 | ||
|
|
a25f089810 | ||
|
|
862d2a7ee8 | ||
|
|
408ae423c6 | ||
|
|
0e1da96e52 | ||
|
|
d0aa686693 | ||
|
|
317da795ec | ||
|
|
07887e60c5 | ||
|
|
a2a7859a04 | ||
|
|
d69aee25f9 | ||
|
|
87e855086d | ||
|
|
e918521266 | ||
|
|
969a3fd843 | ||
|
|
4adfe5708a | ||
|
|
d270f60c2c | ||
|
|
192f6ef390 | ||
|
|
df552e27d6 | ||
|
|
4850d279f6 | ||
|
|
29896b5ca4 | ||
|
|
710e05b029 | ||
|
|
f627bf9238 | ||
|
|
8a59948fe5 | ||
|
|
5de34a52bd | ||
|
|
511b9551e3 | ||
|
|
8ddaaac244 | ||
|
|
ff0d0a2592 | ||
|
|
919d5eb880 | ||
|
|
2e65f52802 | ||
|
|
048f170727 | ||
|
|
bef915fd56 | ||
|
|
4f493aaf29 | ||
|
|
6b91e28d40 | ||
|
|
895e3eebdd | ||
|
|
2fed9da9fa | ||
|
|
f6641e2ed1 | ||
|
|
e5579871b5 | ||
|
|
e7a68a2ab3 | ||
|
|
0a58d69083 | ||
|
|
ed1915582c | ||
|
|
5ea147efec | ||
|
|
f1c5ba93d3 | ||
|
|
e741b33810 | ||
|
|
044b331d27 | ||
|
|
9f3124793a | ||
|
|
f7c33b5eee | ||
|
|
d1fc809553 | ||
|
|
e305ad124e | ||
|
|
f68458a0f8 | ||
|
|
b33251fc64 | ||
|
|
695e484fd7 | ||
|
|
281c1d1919 | ||
|
|
62ad17011e | ||
|
|
52420a1256 | ||
|
|
9a2ff85669 | ||
|
|
76e0bced60 | ||
|
|
e9cdb26d46 | ||
|
|
e780ba5867 | ||
|
|
5e825b70d2 | ||
|
|
2e13820e28 | ||
|
|
24c06c5492 | ||
|
|
ad8ac601ce | ||
|
|
fc21544cf2 | ||
|
|
af6636b44b | ||
|
|
7ab55a2fe6 | ||
|
|
973cc1195a | ||
|
|
ef849f04a4 | ||
|
|
f1b91625e2 | ||
|
|
1100d8e1cd | ||
|
|
18bcd7e911 | ||
|
|
5a4e3f5acc | ||
|
|
efacf2986f | ||
|
|
1f6255f751 | ||
|
|
79d03c73d7 | ||
|
|
2905a80138 | ||
|
|
5cbab11310 | ||
|
|
51edfb5d61 | ||
|
|
7324c160f8 | ||
|
|
cb6f67f689 | ||
|
|
6cfd1cd070 | ||
|
|
d732b7d691 | ||
|
|
588319478e | ||
|
|
814b9f810b | ||
|
|
f41f2e5d55 | ||
|
|
4d592b1c3b | ||
|
|
1a1de31457 | ||
|
|
38b800981b | ||
|
|
89ef56f131 | ||
|
|
2400f5b91c | ||
|
|
85c3ba0fa3 | ||
|
|
c6822be685 | ||
|
|
cb81b0e53e | ||
|
|
180d776929 | ||
|
|
332f98b3a7 | ||
|
|
08a65a290d | ||
|
|
8bb5301fbb | ||
|
|
51d402fbd5 | ||
|
|
6e5f2f1a49 | ||
|
|
3a73b6cb9e | ||
|
|
64f35f869e | ||
|
|
67d9758ad2 | ||
|
|
bcf4a04409 | ||
|
|
3be5afc08b | ||
|
|
637a8f1efc | ||
|
|
00f9c9ec2e | ||
|
|
722750faeb | ||
|
|
74d10749b7 | ||
|
|
9dd96b05e2 | ||
|
|
e927b35586 | ||
|
|
e1fb9319a0 | ||
|
|
684b7d54b6 | ||
|
|
925997947f | ||
|
|
dcbd86c1f5 | ||
|
|
2f45ee3fe3 | ||
|
|
0d4888111d | ||
|
|
a062dbe321 | ||
|
|
6ab0824532 | ||
|
|
385de5108e | ||
|
|
c25310c491 | ||
|
|
0fb6bc72a4 | ||
|
|
88039a4c83 | ||
|
|
fd1ac28302 | ||
|
|
e8c6a2ad1c | ||
|
|
1ee21c8d3e | ||
|
|
c5388b07f9 | ||
|
|
a165d6d193 | ||
|
|
77f02d81d5 | ||
|
|
fc8620939f | ||
|
|
d319c7ddb8 | ||
|
|
24df444584 | ||
|
|
6984676e7f | ||
|
|
6356cf68f8 | ||
|
|
8ef76590a1 | ||
|
|
724eea5403 | ||
|
|
96cf8dcfac | ||
|
|
5add27a107 | ||
|
|
2683bb6c34 | ||
|
|
8bdce09aec | ||
|
|
a732e926a9 | ||
|
|
2fdec04336 | ||
|
|
3199689772 | ||
|
|
69efd022bd | ||
|
|
1604beb3f8 | ||
|
|
0ad57ef290 | ||
|
|
376c250802 | ||
|
|
cf1191bf0a | ||
|
|
e1a8870dda | ||
|
|
7991b8e8bd | ||
|
|
198d52eca1 | ||
|
|
707c8fbd41 | ||
|
|
299bf7b4da | ||
|
|
1fb1af7132 | ||
|
|
ce2a6d3b2f | ||
|
|
271e14ae5b | ||
|
|
110af7795e | ||
|
|
617b4e2bba | ||
|
|
5f9705cbdb | ||
|
|
54333ccb7b | ||
|
|
5049212af5 | ||
|
|
a5a1f87528 | ||
|
|
f83d57fc0c | ||
|
|
e2f4fc83a2 | ||
|
|
2bb246262c | ||
|
|
ed3cc43e59 | ||
|
|
4c505f58c5 | ||
|
|
47ac6c5dd3 | ||
|
|
e889d0835f | ||
|
|
01ce2211f3 | ||
|
|
ffc39be466 | ||
|
|
dcfada0b81 | ||
|
|
ee03de52b7 | ||
|
|
2fc3a797eb | ||
|
|
419dc355e3 | ||
|
|
ec994a93e7 | ||
|
|
679330ba53 | ||
|
|
87d0f93043 | ||
|
|
7e85f390b3 | ||
|
|
ef18b37fd3 | ||
|
|
ef016bfafc | ||
|
|
9824ef7686 | ||
|
|
2f21e73d8d | ||
|
|
22f4a7a324 | ||
|
|
6bf4966fb3 | ||
|
|
0e552bbcad | ||
|
|
4a6b14caa4 | ||
|
|
519d08cb78 | ||
|
|
e89b4206f9 | ||
|
|
4adbe82e1e | ||
|
|
18b7f71020 | ||
|
|
86e631ae3e | ||
|
|
87bc9b2d25 | ||
|
|
c7b65ac062 | ||
|
|
cb07fc1cb7 | ||
|
|
5f489a33f7 | ||
|
|
a22e3efb64 | ||
|
|
fc51a03a70 | ||
|
|
ad5000d835 | ||
|
|
abd1651034 | ||
|
|
8d94794cdb | ||
|
|
ab6ffebe20 | ||
|
|
0698aa90b3 | ||
|
|
00deda50ec | ||
|
|
c914d97376 | ||
|
|
b574de32ae | ||
|
|
ab6be7624e | ||
|
|
300ba5a16e | ||
|
|
9da7784b1b | ||
|
|
8b2046a4c4 | ||
|
|
a5b9e40b53 | ||
|
|
6c6dd86c02 | ||
|
|
109a12412a | ||
|
|
10edd13593 | ||
|
|
d7014ce172 | ||
|
|
899218ccf6 | ||
|
|
5fbd5b8804 | ||
|
|
8a564c38e9 | ||
|
|
5758b56296 | ||
|
|
da8c8c271a | ||
|
|
26a0508e03 | ||
|
|
80294f9f37 | ||
|
|
c408825a8d | ||
|
|
5cdc4f5a66 | ||
|
|
d5bc1a0acb | ||
|
|
0f8ae1e345 | ||
|
|
6bcd13f30c | ||
|
|
a330ecf24d | ||
|
|
8df3bf38cd | ||
|
|
9e1f72df94 | ||
|
|
b615a6105a | ||
|
|
5c9595f4a6 | ||
|
|
efa8aa297d | ||
|
|
47b45d2a53 | ||
|
|
cf3eae1311 | ||
|
|
f197077e78 | ||
|
|
0240be755a | ||
|
|
0c69024f7a | ||
|
|
15be25a382 | ||
|
|
3047cc2570 | ||
|
|
4369cb61fe | ||
|
|
04c4674582 | ||
|
|
504ef84da3 | ||
|
|
8cc564da96 | ||
|
|
2abc69fd7c | ||
|
|
87d0498c23 | ||
|
|
ecb3893370 | ||
|
|
f974d90eaa | ||
|
|
6a4e06873b | ||
|
|
3b235efd3f | ||
|
|
2f8436e131 | ||
|
|
e801951820 | ||
|
|
2b61e65bf5 | ||
|
|
f5fe552cd9 | ||
|
|
6b529d0f7e | ||
|
|
4c3ad827c5 | ||
|
|
6b09e18948 | ||
|
|
9103a00f20 | ||
|
|
7a7588f8d9 | ||
|
|
7ee0068ff0 | ||
|
|
9b586b2ae2 | ||
|
|
09f7879c83 | ||
|
|
d80e27f989 | ||
|
|
45f9e53f10 | ||
|
|
e2d11cb59b | ||
|
|
d0b923339d | ||
|
|
9deb6182d0 | ||
|
|
4c4e870c67 | ||
|
|
3f3b481654 | ||
|
|
0fa870ea40 | ||
|
|
2b3b551898 | ||
|
|
ad4d97c17e | ||
|
|
c941105502 | ||
|
|
174743cdb6 | ||
|
|
a752ad0cbc | ||
|
|
477e33eb81 | ||
|
|
052268f052 | ||
|
|
27294f125d | ||
|
|
e80c634bd1 | ||
|
|
37f33778e1 | ||
|
|
c540fdd11f | ||
|
|
e7f9e98f0a | ||
|
|
253586fc79 | ||
|
|
9d0c99a17b | ||
|
|
58992eb893 | ||
|
|
a471670a91 | ||
|
|
96e1d25ca4 | ||
|
|
d4bb88dbfe | ||
|
|
bbc2277bae | ||
|
|
d54861a9d0 | ||
|
|
a5d98a32b6 | ||
|
|
a2ea2239da | ||
|
|
5e56a66171 | ||
|
|
fa0674a657 | ||
|
|
2eb2b07f8f | ||
|
|
b7f15986ad | ||
|
|
3e0cdde714 | ||
|
|
3334f1b709 | ||
|
|
29e080da71 | ||
|
|
927cd60d41 | ||
|
|
7c5cb5b7f7 | ||
|
|
9f84f7215c | ||
|
|
14fd296aa2 | ||
|
|
470f94f6e1 | ||
|
|
9bfd33320e | ||
|
|
f7a2693952 | ||
|
|
d573447d64 | ||
|
|
ccd7d29501 | ||
|
|
291699fb9b | ||
|
|
056e0f8aa7 | ||
|
|
45ed583d46 | ||
|
|
54a2131b20 | ||
|
|
a4bbb6c88b | ||
|
|
e6c2ceb931 | ||
|
|
c43ec4a56d | ||
|
|
b871cc4e09 | ||
|
|
6aec729b6a | ||
|
|
025625e0b9 | ||
|
|
5c5bc243d2 | ||
|
|
0d0af32b85 | ||
|
|
46c2d2e916 | ||
|
|
ff6d0f0e1b | ||
|
|
86ca092f18 | ||
|
|
ec3d642cee | ||
|
|
7489d70c95 | ||
|
|
81bb5404cb | ||
|
|
a0155beb83 | ||
|
|
780b74fc56 | ||
|
|
78bc14348d | ||
|
|
52bc0f1a17 | ||
|
|
c52c24c3f2 | ||
|
|
0d9277bf6a | ||
|
|
761797dc24 | ||
|
|
39a560c394 | ||
|
|
b4f01da8d8 | ||
|
|
f7ca1efdb8 | ||
|
|
1b4ed339d6 | ||
|
|
5af89e0124 | ||
|
|
1fddbf1cca | ||
|
|
1cd1a23c80 | ||
|
|
b987ec6a8a | ||
|
|
f509026815 | ||
|
|
557b658146 | ||
|
|
e3c4960622 | ||
|
|
350b4307dc | ||
|
|
762ca47a59 | ||
|
|
79b83ba494 | ||
|
|
51f5155a1a | ||
|
|
d0b3124813 | ||
|
|
29128dd014 | ||
|
|
9e8f5809c3 | ||
|
|
7e2001744c | ||
|
|
f5b83efade | ||
|
|
aedb9d2ae1 | ||
|
|
5ccd28d84d | ||
|
|
3320888fc8 | ||
|
|
456e9bf357 | ||
|
|
275a757eb7 | ||
|
|
d51d170891 | ||
|
|
87d138740f | ||
|
|
625f165a63 | ||
|
|
8421ed0ae9 | ||
|
|
2a03eb323d | ||
|
|
cac6a9cd53 | ||
|
|
a148b8fdcb | ||
|
|
d635e8a978 | ||
|
|
7aadd38934 | ||
|
|
b63b11982b | ||
|
|
88a4d2ed80 | ||
|
|
26bdef7ddd | ||
|
|
faedb0a49e | ||
|
|
d148255917 | ||
|
|
00b1d3c51c | ||
|
|
b68c963b5e | ||
|
|
a43070f812 | ||
|
|
f6b5ab040c | ||
|
|
86ddf3078d | ||
|
|
bc4fe19bdb | ||
|
|
bb259b128a | ||
|
|
1d443531fd | ||
|
|
40956c5335 | ||
|
|
44aba08978 | ||
|
|
9ec1c8fdae | ||
|
|
0508858859 | ||
|
|
e840b9617f | ||
|
|
19ee603413 | ||
|
|
515ed5aabd | ||
|
|
12e068a3d1 | ||
|
|
8268599893 | ||
|
|
6365378947 | ||
|
|
78d238fdfb | ||
|
|
d90fa1a1e8 | ||
|
|
3e817d4fb0 | ||
|
|
aa6d453d5b | ||
|
|
112c78e50b | ||
|
|
41ec7fb668 | ||
|
|
b19bf2fd26 | ||
|
|
c5f7477521 | ||
|
|
14323e7964 | ||
|
|
39db9b1bd7 | ||
|
|
991a199d06 | ||
|
|
9d045f65d2 | ||
|
|
1c0cd176a1 | ||
|
|
1018ae387a |
No files matched your search
@@ -1 +1,11 @@
|
||||
IndentWidth: 3
|
||||
BinPackArguments: true
|
||||
BinPackParameters: false
|
||||
AlignAfterOpenBracket: AlwaysBreak
|
||||
AlwaysBreakTemplateDeclarations: true
|
||||
PenaltyReturnTypeOnItsOwnLine: 140
|
||||
ReflowComments: false
|
||||
---
|
||||
Language: Proto
|
||||
IndentWidth: 2
|
||||
AllowShortFunctionsOnASingleLine: None
|
||||
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"version": 1,
|
||||
"isRoot": true,
|
||||
"tools": {
|
||||
"dotnet-format": {
|
||||
"version": "5.1.225507",
|
||||
"commands": [
|
||||
"dotnet-format"
|
||||
]
|
||||
},
|
||||
"fable": {
|
||||
"version": "4.0.6",
|
||||
"commands": [
|
||||
"fable"
|
||||
]
|
||||
},
|
||||
"fantomas": {
|
||||
"version": "5.2.2",
|
||||
"commands": [
|
||||
"fantomas"
|
||||
]
|
||||
},
|
||||
"fake-cli": {
|
||||
"version": "6.0.0",
|
||||
"commands": [
|
||||
"fake"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
+251
@@ -0,0 +1,251 @@
|
||||
# Remove the line below if you want to inherit .editorconfig settings from higher directories
|
||||
root = true
|
||||
|
||||
# C# files
|
||||
[*.cs]
|
||||
|
||||
#### Core EditorConfig Options ####
|
||||
|
||||
# Indentation and spacing
|
||||
indent_size = 3
|
||||
indent_style = space
|
||||
tab_width = 3
|
||||
|
||||
# New line preferences
|
||||
end_of_line = crlf
|
||||
insert_final_newline = true
|
||||
|
||||
#### .NET Coding Conventions ####
|
||||
|
||||
# Organize usings
|
||||
dotnet_separate_import_directive_groups = true
|
||||
dotnet_sort_system_directives_first = false
|
||||
file_header_template = unset
|
||||
|
||||
# this. and Me. preferences
|
||||
dotnet_style_qualification_for_event = false:silent
|
||||
dotnet_style_qualification_for_field = false:silent
|
||||
dotnet_style_qualification_for_method = false:silent
|
||||
dotnet_style_qualification_for_property = false:silent
|
||||
|
||||
# Language keywords vs BCL types preferences
|
||||
dotnet_style_predefined_type_for_locals_parameters_members = true:silent
|
||||
dotnet_style_predefined_type_for_member_access = true:silent
|
||||
|
||||
# Parentheses preferences
|
||||
dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:silent
|
||||
dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:silent
|
||||
dotnet_style_parentheses_in_other_operators = never_if_unnecessary:silent
|
||||
dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:silent
|
||||
|
||||
# Modifier preferences
|
||||
dotnet_style_require_accessibility_modifiers = for_non_interface_members:silent
|
||||
|
||||
# Expression-level preferences
|
||||
dotnet_style_coalesce_expression = true:suggestion
|
||||
dotnet_style_collection_initializer = true:suggestion
|
||||
dotnet_style_explicit_tuple_names = true:suggestion
|
||||
dotnet_style_null_propagation = true:suggestion
|
||||
dotnet_style_object_initializer = true:suggestion
|
||||
dotnet_style_operator_placement_when_wrapping = beginning_of_line
|
||||
dotnet_style_prefer_auto_properties = true:silent
|
||||
dotnet_style_prefer_compound_assignment = true:suggestion
|
||||
dotnet_style_prefer_conditional_expression_over_assignment = true:silent
|
||||
dotnet_style_prefer_conditional_expression_over_return = true:silent
|
||||
dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion
|
||||
dotnet_style_prefer_inferred_tuple_names = true:suggestion
|
||||
dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion
|
||||
dotnet_style_prefer_simplified_boolean_expressions = true:suggestion
|
||||
dotnet_style_prefer_simplified_interpolation = true:suggestion
|
||||
|
||||
# Field preferences
|
||||
dotnet_style_readonly_field = true:suggestion
|
||||
|
||||
# Parameter preferences
|
||||
dotnet_code_quality_unused_parameters = all:suggestion
|
||||
|
||||
# Suppression preferences
|
||||
dotnet_remove_unnecessary_suppression_exclusions = none
|
||||
|
||||
#### C# Coding Conventions ####
|
||||
|
||||
# var preferences
|
||||
csharp_style_var_elsewhere = false:silent
|
||||
csharp_style_var_for_built_in_types = false:silent
|
||||
csharp_style_var_when_type_is_apparent = false:silent
|
||||
|
||||
# Expression-bodied members
|
||||
csharp_style_expression_bodied_accessors = true:silent
|
||||
csharp_style_expression_bodied_constructors = false:silent
|
||||
csharp_style_expression_bodied_indexers = true:silent
|
||||
csharp_style_expression_bodied_lambdas = true:silent
|
||||
csharp_style_expression_bodied_local_functions = false:silent
|
||||
csharp_style_expression_bodied_methods = false:silent
|
||||
csharp_style_expression_bodied_operators = false:silent
|
||||
csharp_style_expression_bodied_properties = true:silent
|
||||
|
||||
# Pattern matching preferences
|
||||
csharp_style_pattern_matching_over_as_with_null_check = true:suggestion
|
||||
csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion
|
||||
csharp_style_prefer_not_pattern = true:suggestion
|
||||
csharp_style_prefer_pattern_matching = true:silent
|
||||
csharp_style_prefer_switch_expression = true:suggestion
|
||||
|
||||
# Null-checking preferences
|
||||
csharp_style_conditional_delegate_call = true:suggestion
|
||||
|
||||
# Modifier preferences
|
||||
csharp_prefer_static_local_function = true:suggestion
|
||||
csharp_preferred_modifier_order = public,private,protected,internal,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,volatile,async:silent
|
||||
|
||||
# Code-block preferences
|
||||
csharp_prefer_braces = true:silent
|
||||
csharp_prefer_simple_using_statement = true:suggestion
|
||||
|
||||
# Expression-level preferences
|
||||
csharp_prefer_simple_default_expression = true:suggestion
|
||||
csharp_style_deconstructed_variable_declaration = true:suggestion
|
||||
csharp_style_inlined_variable_declaration = true:suggestion
|
||||
csharp_style_pattern_local_over_anonymous_function = true:suggestion
|
||||
csharp_style_prefer_index_operator = true:suggestion
|
||||
csharp_style_prefer_range_operator = true:suggestion
|
||||
csharp_style_throw_expression = true:suggestion
|
||||
csharp_style_unused_value_assignment_preference = discard_variable:suggestion
|
||||
csharp_style_unused_value_expression_statement_preference = discard_variable:silent
|
||||
|
||||
# 'using' directive preferences
|
||||
csharp_using_directive_placement = inside_namespace:silent
|
||||
|
||||
#### C# Formatting Rules ####
|
||||
|
||||
# New line preferences
|
||||
csharp_new_line_before_catch = false
|
||||
csharp_new_line_before_else = false
|
||||
csharp_new_line_before_finally = false
|
||||
csharp_new_line_before_members_in_anonymous_types = true
|
||||
csharp_new_line_before_members_in_object_initializers = true
|
||||
csharp_new_line_before_open_brace = none
|
||||
csharp_new_line_between_query_expression_clauses = true
|
||||
|
||||
# Indentation preferences
|
||||
csharp_indent_block_contents = true
|
||||
csharp_indent_braces = false
|
||||
csharp_indent_case_contents = true
|
||||
csharp_indent_case_contents_when_block = true
|
||||
csharp_indent_labels = one_less_than_current
|
||||
csharp_indent_switch_labels = true
|
||||
|
||||
# Space preferences
|
||||
csharp_space_after_cast = false
|
||||
csharp_space_after_colon_in_inheritance_clause = true
|
||||
csharp_space_after_comma = true
|
||||
csharp_space_after_dot = false
|
||||
csharp_space_after_keywords_in_control_flow_statements = true
|
||||
csharp_space_after_semicolon_in_for_statement = true
|
||||
csharp_space_around_binary_operators = before_and_after
|
||||
csharp_space_around_declaration_statements = false
|
||||
csharp_space_before_colon_in_inheritance_clause = true
|
||||
csharp_space_before_comma = false
|
||||
csharp_space_before_dot = false
|
||||
csharp_space_before_open_square_brackets = false
|
||||
csharp_space_before_semicolon_in_for_statement = false
|
||||
csharp_space_between_empty_square_brackets = false
|
||||
csharp_space_between_method_call_empty_parameter_list_parentheses = false
|
||||
csharp_space_between_method_call_name_and_opening_parenthesis = false
|
||||
csharp_space_between_method_call_parameter_list_parentheses = false
|
||||
csharp_space_between_method_declaration_empty_parameter_list_parentheses = false
|
||||
csharp_space_between_method_declaration_name_and_open_parenthesis = false
|
||||
csharp_space_between_method_declaration_parameter_list_parentheses = false
|
||||
csharp_space_between_parentheses = false
|
||||
csharp_space_between_square_brackets = false
|
||||
|
||||
# Wrapping preferences
|
||||
csharp_preserve_single_line_blocks = true
|
||||
csharp_preserve_single_line_statements = true
|
||||
|
||||
#### Naming styles ####
|
||||
|
||||
# Naming rules
|
||||
|
||||
dotnet_naming_rule.interface_should_be_begins_with_i.severity = suggestion
|
||||
dotnet_naming_rule.interface_should_be_begins_with_i.symbols = interface
|
||||
dotnet_naming_rule.interface_should_be_begins_with_i.style = begins_with_i
|
||||
|
||||
dotnet_naming_rule.types_should_be_pascal_case.severity = suggestion
|
||||
dotnet_naming_rule.types_should_be_pascal_case.symbols = types
|
||||
dotnet_naming_rule.types_should_be_pascal_case.style = pascal_case
|
||||
|
||||
dotnet_naming_rule.non_field_members_should_be_pascal_case.severity = suggestion
|
||||
dotnet_naming_rule.non_field_members_should_be_pascal_case.symbols = non_field_members
|
||||
dotnet_naming_rule.non_field_members_should_be_pascal_case.style = pascal_case
|
||||
|
||||
# Symbol specifications
|
||||
|
||||
dotnet_naming_symbols.interface.applicable_kinds = interface
|
||||
dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
|
||||
dotnet_naming_symbols.interface.required_modifiers =
|
||||
|
||||
# user types
|
||||
dotnet_naming_symbols.user_types.applicable_kinds = class, struct, interface, enum
|
||||
dotnet_naming_symbols.user_types.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
|
||||
dotnet_naming_symbols.user_types.required_modifiers =
|
||||
|
||||
# non_field_members
|
||||
dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method
|
||||
dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
|
||||
dotnet_naming_symbols.non_field_members.required_modifiers =
|
||||
|
||||
# public symbols
|
||||
dotnet_naming_symbols.public_symbols.applicable_kinds = property,method,field,event,delegate
|
||||
dotnet_naming_symbols.public_symbols.applicable_accessibilities = public,internal
|
||||
|
||||
# parameters
|
||||
dotnet_naming_symbols.parameters.applicable_kinds = parameter
|
||||
dotnet_naming_symbols.parameters.applicable_accessibilities = public,internal,protected,private,protected_internal,private_internal
|
||||
|
||||
# private symbols
|
||||
dotnet_naming_symbols.private_symbols.applicable_kinds = property,method,field,event,delegate
|
||||
dotnet_naming_symbols.private_symbols.applicable_accessibilities = protected,private
|
||||
|
||||
# Naming styles
|
||||
|
||||
dotnet_naming_style.snake_case.required_prefix =
|
||||
dotnet_naming_style.snake_case.required_suffix =
|
||||
dotnet_naming_style.snake_case.word_separator = _
|
||||
dotnet_naming_style.snake_case.capitalization = all_lower
|
||||
|
||||
dotnet_naming_style.private_snake_case.required_prefix = _
|
||||
dotnet_naming_style.private_snake_case.required_suffix =
|
||||
dotnet_naming_style.private_snake_case.word_separator = _
|
||||
dotnet_naming_style.private_snake_case.capitalization = all_lower
|
||||
|
||||
dotnet_naming_style.user_types.required_prefix =
|
||||
dotnet_naming_style.user_types.required_suffix =
|
||||
dotnet_naming_style.user_types.word_separator =
|
||||
dotnet_naming_style.user_types.capitalization = pascal_case
|
||||
|
||||
dotnet_naming_style.interface.required_prefix = I
|
||||
dotnet_naming_style.interface.required_suffix =
|
||||
dotnet_naming_style.interface.word_separator =
|
||||
dotnet_naming_style.interface.capitalization = pascal_case
|
||||
|
||||
# rules
|
||||
dotnet_naming_rule.user_types.symbols = user_types
|
||||
dotnet_naming_rule.user_types.style = user_types
|
||||
dotnet_naming_rule.user_types.severity = suggestion
|
||||
|
||||
dotnet_naming_rule.interfaces.symbols = interface
|
||||
dotnet_naming_rule.interfaces.style = interface_style
|
||||
dotnet_naming_rule.interfaces.severity = suggestion
|
||||
|
||||
dotnet_naming_rule.public_members_snake_case.symbols = public_symbols
|
||||
dotnet_naming_rule.public_members_snake_case.style = snake_case
|
||||
dotnet_naming_rule.public_members_snake_case.severity = suggestion
|
||||
|
||||
dotnet_naming_rule.private_members_snake_case.symbols = private_symbols
|
||||
dotnet_naming_rule.private_members_snake_case.style = private_snake_case
|
||||
dotnet_naming_rule.private_members_snake_case.severity = suggestion
|
||||
|
||||
dotnet_naming_rule.parameters.symbols = parameters
|
||||
dotnet_naming_rule.parameters.style = snake_case
|
||||
dotnet_naming_rule.parameters.severity = suggestion
|
||||
+21
-4
@@ -1,11 +1,14 @@
|
||||
nohup.out
|
||||
build/
|
||||
build/**
|
||||
install/**
|
||||
.build_proxy/
|
||||
cmake-build-debug/
|
||||
.cache/
|
||||
.ipynb_checkpoints/
|
||||
.idea/
|
||||
.dir-locals.el
|
||||
*.pyc
|
||||
.vscode/*
|
||||
!.vscode/*.json
|
||||
**.vscode
|
||||
.vs
|
||||
obj/
|
||||
*.csproj.user
|
||||
@@ -17,10 +20,13 @@ vcxproj.user
|
||||
src/client/spark/Properties/launchSettings.json
|
||||
compile_commands.json
|
||||
.cquery_cached_index/
|
||||
.cache/*
|
||||
.clangd/*
|
||||
src/client/sparkcmd/Properties/launchSettings.json
|
||||
node_modules
|
||||
paket-files
|
||||
project.lock.json
|
||||
src/.clang-format
|
||||
src/server/sparkd/orderman/perf_analysis/data
|
||||
src/server/sparkd/orderman/perf_analysis/logs/
|
||||
src/server/sparkd/orderman/perf_analysis/trace_data/
|
||||
@@ -35,6 +41,17 @@ trace_data/
|
||||
.ionide/*
|
||||
/.ignore
|
||||
*.rej
|
||||
/build
|
||||
.clangd/
|
||||
*CMakeDeps.cmake
|
||||
/sniper.ipynb
|
||||
/src/.clang-format
|
||||
/src/server/sparkd/cmds/spartan/analysis/.ipynb_checkpoints
|
||||
/src/server/sparkd/cmds/spartan/analysis/data
|
||||
*.tmp/*
|
||||
/.venv*/*
|
||||
.cache/
|
||||
/src/Spark.Admin.WebApp/tsconfig.*.g.json
|
||||
/src/Spark.Admin.WebApp/src/bin/
|
||||
**/CMakeDeps.cmake
|
||||
**/CMakeDeps_win.cmake
|
||||
**/devcontainer.json
|
||||
@@ -1,9 +1,3 @@
|
||||
[submodule "externals"]
|
||||
path = externals
|
||||
url = git@bitbucket.org:bluetradesys/externals.git
|
||||
[submodule "docker/linux"]
|
||||
path = docker/linux
|
||||
url = git@bitbucket.org:bluetradesys/linux_docker.git
|
||||
[submodule "docker/windows"]
|
||||
path = docker/windows
|
||||
url = git@bitbucket.org:bluetradesys/windows_docker.git
|
||||
+148
-57
@@ -1,66 +1,157 @@
|
||||
cmake_minimum_required(VERSION 3.5)
|
||||
cmake_minimum_required(VERSION 3.12)
|
||||
project(spark)
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
|
||||
if(WIN32)
|
||||
set(platform "windows")
|
||||
else()
|
||||
set(platform "linux")
|
||||
endif()
|
||||
|
||||
set(
|
||||
EXTERNALS_ROOT
|
||||
"${CMAKE_SOURCE_DIR}/externals/${platform}"
|
||||
CACHE
|
||||
STRING
|
||||
"External dependencies root folder (should contain folders: lib, bin, include")
|
||||
set(SPARK_BIN "${EXTERNALS_ROOT}/bin")
|
||||
set(SPARK_INCLUDE "${EXTERNALS_ROOT}/include")
|
||||
set(SPARK_LIB "${EXTERNALS_ROOT}/lib/$<CONFIG>")
|
||||
set(BUILD_API_SERVER OFF CACHE BOOL "Build the api server")
|
||||
set(BUILD_DOCS OFF CACHE BOOL "Build documentation")
|
||||
set(BUILD_SDK OFF CACHE BOOL "Build the sdk")
|
||||
if (WIN32)
|
||||
set (platform "windows")
|
||||
else ()
|
||||
set (platform "linux")
|
||||
endif ()
|
||||
set(BUILD_SPARKD OFF CACHE BOOL "Build sparkd")
|
||||
set(BUILD_ADMIN_WEB_APP OFF CACHE BOOL "Build the Admin WebApp")
|
||||
else()
|
||||
set(BUILD_SPARKD ON CACHE BOOL "Build sparkd")
|
||||
set(BUILD_ADMIN_WEB_APP ON CACHE BOOL "Build the Admin WebApp")
|
||||
endif()
|
||||
|
||||
include_directories(BEFORE SYSTEM ${SPARK_INCLUDE} ${EXTERNALS_ROOT}/include/zlib)
|
||||
link_directories(${SPARK_LIB})
|
||||
|
||||
if(BUILD_API_SERVER)
|
||||
add_compile_definitions(SPARK_ENABLE_API_SERVER)
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
add_compile_definitions(SHARED_MEMORY_PREFIX="spark")
|
||||
add_compile_definitions(APP_DATA_DIR="\$\{APPDATA\}/bts/")
|
||||
# subdirs
|
||||
add_subdirectory(src/lib)
|
||||
else()
|
||||
# make sparkd look for libspark.so in its directory
|
||||
set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
|
||||
set(CMAKE_INSTALL_RPATH ".")
|
||||
set(CMAKE_INSTALL_PREFIX "${CMAKE_SOURCE_DIR}/install")
|
||||
set(SPARK_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/$<CONFIG>")
|
||||
|
||||
if(BUILD_API_SERVER)
|
||||
add_compile_definitions(APP_DATA_DIR="\$\{HOME\}/spark_api/")
|
||||
add_compile_definitions(SHARED_MEMORY_PREFIX="spark_api")
|
||||
elseif(BUILD_SPARKD)
|
||||
add_compile_definitions(SHARED_MEMORY_PREFIX="sparkd")
|
||||
add_compile_definitions(APP_DATA_DIR="\$\{HOME\}/sparkdata/")
|
||||
|
||||
# Note: All macros that begin w/ 'CCAPI' are ccapi's macros (defined and/or
|
||||
# read by their code). We override some below.
|
||||
add_compile_definitions(SPARK_ENABLE_CCAPI)
|
||||
|
||||
# This allows us to override hardcoded exchange-urls with ones read from
|
||||
# config (i.e., resolved at runtime rather than compile-time)
|
||||
add_compile_definitions(CCAPI_EXPOSE_INTERNAL)
|
||||
|
||||
# Enable ccapi services
|
||||
add_compile_definitions(CCAPI_ENABLE_SERVICE_MARKET_DATA)
|
||||
add_compile_definitions(CCAPI_ENABLE_SERVICE_EXECUTION_MANAGEMENT)
|
||||
# Enable ccapi exchanges
|
||||
add_compile_definitions(CCAPI_ENABLE_EXCHANGE_BINANCE)
|
||||
add_compile_definitions(CCAPI_ENABLE_EXCHANGE_BINANCE_COIN_FUTURES)
|
||||
add_compile_definitions(CCAPI_ENABLE_EXCHANGE_BINANCE_US)
|
||||
add_compile_definitions(CCAPI_ENABLE_EXCHANGE_BINANCE_USDS_FUTURES)
|
||||
add_compile_definitions(CCAPI_ENABLE_EXCHANGE_COINBASE)
|
||||
add_compile_definitions(CCAPI_ENABLE_EXCHANGE_DERIBIT)
|
||||
add_compile_definitions(CCAPI_ENABLE_EXCHANGE_OKX)
|
||||
|
||||
set (EXTERNALS_ROOT "${CMAKE_SOURCE_DIR}/externals/${platform}")
|
||||
set (SPARK_PYTHON "${EXTERNALS_ROOT}/python")
|
||||
set (SPARK_BIN "${EXTERNALS_ROOT}/bin")
|
||||
set (SPARK_INCLUDE "${EXTERNALS_ROOT}/include")
|
||||
set (SPARK_LIB "${EXTERNALS_ROOT}/lib/${CMAKE_BUILD_TYPE}")
|
||||
set(CCAPI_LOG_LEVEL
|
||||
"Warn"
|
||||
CACHE STRING "<Fatal|Error|Warn|Info|Debug|Trace> Log level for ccapi")
|
||||
string(TOUPPER "${CCAPI_LOG_LEVEL}" _ccapi_log_level_upper)
|
||||
add_compile_definitions("CCAPI_ENABLE_LOG_${_ccapi_log_level_upper}")
|
||||
|
||||
include_directories (BEFORE SYSTEM ${SPARK_INCLUDE} ${EXTERNALS_ROOT}/include/zlib)
|
||||
link_directories (${SPARK_LIB})
|
||||
# ** Binance **
|
||||
add_compile_definitions(CCAPI_BINANCE_URL_REST_BASE="https://api.binance.com")
|
||||
add_compile_definitions(BINANCE_INSTRUMENTS_PATH="/api/v3/exchangeInfo")
|
||||
add_compile_definitions(BINANCE_PRICE_STATS_PATH="/api/v3/ticker/24hr")
|
||||
|
||||
if (WIN32)
|
||||
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} \
|
||||
/MP \
|
||||
/WX /wd4251 /wd4250 /wd4251 /wd4244 /wd4267 /wd4355 /wd4275 /wd4345 \
|
||||
/DCURL_STATICLIB \
|
||||
/D_WINSOCK_DEPRECATED_NO_WARNINGS \
|
||||
/D__TBB_NO_IMPLICIT_LINKAGE \
|
||||
/DBOOST_ALL_NO_LIB \
|
||||
/D_SCL_SECURE_NO_WARNINGS /D_CRT_SECURE_NO_WARNINGS /D_WIN32_WINNT=0x0600")
|
||||
|
||||
set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd")
|
||||
set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_DEBUG} /MT")
|
||||
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /DEBUG /OPT:REF /OPT:ICF /LTCG")
|
||||
# ** Binance US **
|
||||
add_compile_definitions(BINANCE_US_INSTRUMENTS_PATH="/api/v3/exchangeInfo")
|
||||
add_compile_definitions(BINANCE_US_PRICE_STATS_PATH="/api/v3/ticker/24hr")
|
||||
|
||||
# ** Binance USDS Futures **
|
||||
add_compile_definitions(CCAPI_BINANCE_USDS_FUTURES_URL_REST_BASE="https://dapi.binance.com")
|
||||
add_compile_definitions(BINANCE_USDS_FUTURES_INSTRUMENTS_PATH="/dapi/v1/exchangeInfo")
|
||||
add_compile_definitions(BINANCE_USDS_FUTURES_PRICE_STATS_PATH="/dapi/v1/ticker/24hr")
|
||||
|
||||
# ** Deribit **
|
||||
add_compile_definitions(DERIBIT_INSTRUMENT_PATH="/api/v2/public/get_instrument")
|
||||
add_compile_definitions(DERIBIT_INSTRUMENTS_PATH="/api/v2/public/get_instruments")
|
||||
add_compile_definitions(DERIBIT_COMBOS_PATH="/api/v2/public/get_combos")
|
||||
add_compile_definitions(DERIBIT_TICKER_PATH="/api/v2/public/ticker")
|
||||
add_compile_definitions(DERIBIT_CURRENCIES_METHOD="public/get_currencies")
|
||||
add_compile_definitions(DERIBIT_INSTRUMENT_METHOD="public/get_instrument")
|
||||
add_compile_definitions(DERIBIT_INSTRUMENTS_METHOD="public/get_instruments")
|
||||
add_compile_definitions(DERIBIT_COMBO_DETAILS_METHOD="public/get_combo_details")
|
||||
add_compile_definitions(DERIBIT_COMBOS_METHOD="public/get_combos")
|
||||
|
||||
# ** Okx **
|
||||
add_compile_definitions(OKX_INSTRUMENTS_PATH="/api/v5/public/instruments")
|
||||
add_compile_definitions(OKX_UNDERLYING_PATH="/api/v5/public/underlying")
|
||||
endif()
|
||||
|
||||
# subdirs
|
||||
if (BUILD_SPARKD)
|
||||
add_subdirectory(src/server/sparkd)
|
||||
add_subdirectory(src/data_files)
|
||||
endif()
|
||||
add_subdirectory(src/lib)
|
||||
else ()
|
||||
# so that sparkd looks for libspark.so in its directory
|
||||
set (CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
|
||||
set (CMAKE_INSTALL_RPATH ".")
|
||||
|
||||
set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} \
|
||||
-fPIC -Wall -pedantic -Wextra -Werror \
|
||||
-Wno-missing-braces -Wno-ignored-qualifiers \
|
||||
--std=c++17 -fdiagnostics-color")
|
||||
set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_DEBUG} -fno-omit-frame-pointer -DNDEBUG -O3")
|
||||
set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DDEBUG")
|
||||
set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wno-undef")
|
||||
add_subdirectory(src/server/sparkd)
|
||||
add_subdirectory(src/lib)
|
||||
add_subdirectory(src/web)
|
||||
add_subdirectory(doc/user)
|
||||
add_subdirectory(src/sdk)
|
||||
add_subdirectory(src/data_files)
|
||||
|
||||
add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/server
|
||||
COMMAND mkdir -p ${CMAKE_BINARY_DIR}/server
|
||||
COMMAND ln ARGS -sf ${CMAKE_BINARY_DIR}/src/server/sparkd/sparkd ${CMAKE_BINARY_DIR}/server
|
||||
COMMAND ln ARGS -sf ${CMAKE_BINARY_DIR}/web ${CMAKE_BINARY_DIR}/server
|
||||
COMMAND ln ARGS -sf ${CMAKE_BINARY_DIR}/data_files ${CMAKE_BINARY_DIR}/server
|
||||
COMMAND ln ARGS -sf ${CMAKE_BINARY_DIR}/src/lib/libspark.so ${CMAKE_BINARY_DIR}/server
|
||||
COMMAND ln ARGS -sf ${EXTERNALS_ROOT}/lib/Release/libOnixS.IceImpactMulticastPriceFeedHandlerCpp.so.3.16.0.0 ${CMAKE_BINARY_DIR}/server
|
||||
COMMAND ln ARGS -sf ${EXTERNALS_ROOT}/lib/Release/libACE-5.7.5.so ${CMAKE_BINARY_DIR}/server
|
||||
COMMAND mkdir ARGS -p ${CMAKE_BINARY_DIR}/server/plugins
|
||||
COMMENT "Creating server runtime layout"
|
||||
DEPENDS sparkd data_files_dir)
|
||||
|
||||
add_custom_target(server_layout ALL DEPENDS ${CMAKE_BINARY_DIR}/server)
|
||||
if (BUILD_ADMIN_WEB_APP)
|
||||
add_subdirectory(src/Spark.Admin.WebApp)
|
||||
endif()
|
||||
if(BUILD_DOCS)
|
||||
add_subdirectory(doc/user)
|
||||
endif()
|
||||
if(BUILD_SDK)
|
||||
add_subdirectory(src/sdk)
|
||||
endif()
|
||||
|
||||
if(BUILD_SPARKD)
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_BINARY_DIR}/server
|
||||
COMMAND mkdir -p ${CMAKE_BINARY_DIR}/server
|
||||
COMMAND ln ARGS -sf ${CMAKE_BINARY_DIR}/src/server/sparkd/sparkd ${CMAKE_BINARY_DIR}/server
|
||||
COMMAND ln ARGS -sf ${CMAKE_BINARY_DIR}/data_files ${CMAKE_BINARY_DIR}/server
|
||||
COMMAND ln ARGS -sf ${CMAKE_BINARY_DIR}/src/lib/libspark.so ${CMAKE_BINARY_DIR}/server
|
||||
COMMAND
|
||||
ln ARGS -sf
|
||||
${EXTERNALS_ROOT}/lib/Release/libOnixS.IceImpactMulticastPriceFeedHandlerCpp.so.3.16.0.0
|
||||
${CMAKE_BINARY_DIR}/server
|
||||
COMMAND ln ARGS -sf ${EXTERNALS_ROOT}/lib/Release/libACE-5.7.5.so ${CMAKE_BINARY_DIR}/server
|
||||
COMMAND mkdir ARGS -p ${CMAKE_BINARY_DIR}/server/plugins
|
||||
COMMENT "Creating server runtime layout"
|
||||
DEPENDS sparkd data_files_dir)
|
||||
|
||||
add_custom_target(server_layout ALL DEPENDS ${CMAKE_BINARY_DIR}/server)
|
||||
|
||||
install(
|
||||
DIRECTORY "${CMAKE_BINARY_DIR}/server/plugins"
|
||||
DESTINATION "${SPARK_INSTALL_PREFIX}/bin")
|
||||
install(
|
||||
FILES
|
||||
"${SPARK_LIB}/libACE-5.7.5.so"
|
||||
"${SPARK_LIB}/libOnixS.IceImpactMulticastPriceFeedHandlerCpp.so.3.16.0.0"
|
||||
"${CMAKE_SOURCE_DIR}/externals/src/emumba/sparkd.lic"
|
||||
DESTINATION "${SPARK_INSTALL_PREFIX}/bin")
|
||||
endif()
|
||||
endif()
|
||||
@@ -0,0 +1,383 @@
|
||||
{
|
||||
"version": 4,
|
||||
"cmakeMinimumRequired": {
|
||||
"major": 3,
|
||||
"minor": 23,
|
||||
"patch": 0
|
||||
},
|
||||
|
||||
"configurePresets": [
|
||||
{
|
||||
"name": "spark",
|
||||
"condition": {
|
||||
"type": "equals",
|
||||
"lhs": "${hostSystemName}",
|
||||
"rhs": "Windows"
|
||||
},
|
||||
"generator": "Visual Studio 17 2022",
|
||||
"binaryDir": "${sourceDir}/build",
|
||||
"environment": {
|
||||
"SPARK_CMAKE_CXX_FLAGS": "/MP /WX /wd4250 /wd4251 /wd4244 /wd4267 /wd4355 /wd4275 /wd4345 /bigobj /EHsc /DCURL_STATICLIB /D_WINSOCK_DEPRECATED_NO_WARNINGS /D__TBB_NO_IMPLICIT_LINKAGE /DBOOST_ALL_NO_LIB /std:c++20 /D_SCL_SECURE_NO_WARNINGS /D_CRT_SECURE_NO_WARNINGS /D_WIN32_WINNT=0x0600"
|
||||
},
|
||||
"cacheVariables": {
|
||||
"CMAKE_CXX_FLAGS": "$env{SPARK_CMAKE_CXX_FLAGS}",
|
||||
"CMAKE_CXX_FLAGS_DEBUG": "$env{SPARK_CMAKE_CXX_FLAGS} /MTd",
|
||||
"CMAKE_CXX_FLAGS_RELEASE": "$env{SPARK_CMAKE_CXX_FLAGS} /MT",
|
||||
"CMAKE_CXX_STANDARD": "20",
|
||||
"CMAKE_SHARED_LINKER_FLAGS_DEBUG": "/DEBUG",
|
||||
"CMAKE_SHARED_LINKER_FLAGS_RELEASE": "/OPT:REF /OPT:ICF /LTCG",
|
||||
"EXTERNALS_ROOT": "${sourceDir}/externals/windows",
|
||||
"CONFIG_DEFAULTS_PATH": "config/profiles/default/*.conf",
|
||||
"DOTNET_BINARY_DIR": "${sourceDir}/build/$<CONFIG>/bin/net7.0",
|
||||
"DOTNET_WINDOWS_BINARY_DIR": "${sourceDir}/build/$<CONFIG>/bin/net7.0-windows"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"name": "sparkd",
|
||||
"condition": {
|
||||
"type": "equals",
|
||||
"lhs": "${hostSystemName}",
|
||||
"rhs": "Linux"
|
||||
},
|
||||
"hidden": true,
|
||||
"generator": "Ninja",
|
||||
"binaryDir": "${sourceDir}/build/${presetName}",
|
||||
"cacheVariables": {
|
||||
"platform": "",
|
||||
"CMAKE_BUILD_WITH_INSTALL_RPATH": {
|
||||
"type": "BOOL",
|
||||
"value": "ON"
|
||||
},
|
||||
"CMAKE_CXX_STANDARD": "20",
|
||||
"CMAKE_INSTALL_RPATH": ".",
|
||||
"CMAKE_INSTALL_PREFIX": "${sourceDir}/install/${presetName}/sparkd",
|
||||
"CMAKE_EXE_LINKER_FLAGS": "-Wno-undef",
|
||||
"EXTERNALS_ROOT": "${sourceDir}/externals/linux",
|
||||
"BUILD_SDK": {
|
||||
"type": "BOOL",
|
||||
"value": "OFF"
|
||||
},
|
||||
"BUILD_ADMIN_WEB_APP": {
|
||||
"type": "BOOL",
|
||||
"value": "ON"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"name": "sparkd-debug",
|
||||
"inherits": "sparkd",
|
||||
"hidden": true,
|
||||
"cacheVariables": {
|
||||
"CMAKE_BUILD_TYPE": "Debug",
|
||||
"CMAKE_EXPORT_COMPILE_COMMANDS": {
|
||||
"type": "BOOL",
|
||||
"value": "ON"
|
||||
},
|
||||
"CCAPI_LOG_LEVEL": "Info",
|
||||
"CONFIG_DEFAULTS_PATH": "config/profiles/md_dev/*.conf;config/profiles/default/*.conf"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"name": "sparkd-release",
|
||||
"inherits": "sparkd",
|
||||
"hidden": true,
|
||||
"cacheVariables": {
|
||||
"CMAKE_BUILD_TYPE": "Release",
|
||||
"CCAPI_LOG_LEVEL": "Warn",
|
||||
"CONFIG_DEFAULTS_PATH": "config/profiles/md_prod/*.conf;config/profiles/default/*.conf"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"name": "sparkd-debug-clang",
|
||||
"inherits": "sparkd-debug",
|
||||
"displayName": "Debug (clang)",
|
||||
"description": "Debug build compiled w/ clang",
|
||||
"binaryDir": "${sourceDir}/build/clang/debug",
|
||||
"cacheVariables": {
|
||||
"CMAKE_C_COMPILER": "clang",
|
||||
"CMAKE_CXX_COMPILER": "clang++",
|
||||
"CMAKE_CXX_FLAGS_DEBUG": "-g -fPIC -Wall -pedantic -Wextra -Werror -Wno-missing-braces -Wno-ignored-qualifiers --std=c++20 -fdiagnostics-color -DDEBUG",
|
||||
"CMAKE_INSTALL_PREFIX": "${sourceDir}/install/clang/debug/sparkd"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"name": "sparkd-debug-gcc",
|
||||
"inherits": "sparkd-debug",
|
||||
"displayName": "Debug (gcc)",
|
||||
"description": "Debug build compiled w/ gcc",
|
||||
"binaryDir": "${sourceDir}/build/gcc/debug",
|
||||
"cacheVariables": {
|
||||
"CMAKE_C_COMPILER": "gcc",
|
||||
"CMAKE_CXX_COMPILER": "g++",
|
||||
"CMAKE_CXX_FLAGS_DEBUG": "-g -fPIC -Wall -pedantic -Wextra -Werror -Wno-missing-braces -Wno-ignored-qualifiers --std=c++20 -fdiagnostics-color -Wno-stringop-overread -DDEBUG",
|
||||
"CMAKE_INSTALL_PREFIX": "${sourceDir}/install/gcc/debug/sparkd"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"name": "sparkd-release-clang",
|
||||
"inherits": "sparkd-release",
|
||||
"displayName": "Release (clang)",
|
||||
"description": "Release build compiled w/ clang",
|
||||
"binaryDir": "${sourceDir}/build/clang/release",
|
||||
"cacheVariables": {
|
||||
"CMAKE_C_COMPILER": "clang",
|
||||
"CMAKE_CXX_COMPILER": "clang++",
|
||||
"CMAKE_CXX_FLAGS_RELEASE": "-fPIC -Wall -pedantic -Wextra -Werror -Wno-missing-braces -Wno-ignored-qualifiers --std=c++20 -fdiagnostics-color -fno-omit-frame-pointer -DNDEBUG -O3",
|
||||
"CMAKE_INSTALL_PREFIX": "${sourceDir}/install/clang/release/sparkd"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"name": "sparkd-release-gcc",
|
||||
"inherits": "sparkd-release",
|
||||
"displayName": "Release (gcc)",
|
||||
"description": "Release build compiled w/ gcc",
|
||||
"binaryDir": "${sourceDir}/build/gcc/release",
|
||||
"cacheVariables": {
|
||||
"CMAKE_C_COMPILER": "gcc",
|
||||
"CMAKE_CXX_COMPILER": "g++",
|
||||
"CMAKE_CXX_FLAGS_RELEASE": "-fPIC -Wall -pedantic -Wextra -Werror -Wno-missing-braces -Wno-ignored-qualifiers --std=c++20 -fdiagnostics-color -Wno-stringop-overread -Wno-maybe-uninitialized -fno-omit-frame-pointer -DNDEBUG -O3",
|
||||
"CMAKE_INSTALL_PREFIX": "${sourceDir}/install/gcc/release/sparkd"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"name": "spark-api-server-base",
|
||||
"hidden": true,
|
||||
"binaryDir": "${sourceDir}/build/${presetName}",
|
||||
"cacheVariables": {
|
||||
"BUILD_API_SERVER": {
|
||||
"type": "bool",
|
||||
"value": "ON"
|
||||
},
|
||||
"CONFIG_DEFAULTS_PATH": "config/profiles/md_dev/*.conf;config/profiles/default/*.conf"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"name": "spark-api-server-windows",
|
||||
"inherits": "spark",
|
||||
"displayName": "Spark Api Server",
|
||||
"cacheVariables": {
|
||||
"BUILD_API_SERVER": {
|
||||
"type": "bool",
|
||||
"value": "ON"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"name": "spark-api-server-linux",
|
||||
"inherits": "sparkd",
|
||||
"displayName": "Spark Api Server",
|
||||
"generator": "Ninja Multi-Config",
|
||||
"cacheVariables": {
|
||||
"BUILD_ADMIN_WEB_APP": {
|
||||
"type": "BOOL",
|
||||
"value": "OFF"
|
||||
},
|
||||
"BUILD_API_SERVER": {
|
||||
"type": "bool",
|
||||
"value": "ON"
|
||||
},
|
||||
"BUILD_SPARKD": {
|
||||
"type": "BOOL",
|
||||
"value": "OFF"
|
||||
},
|
||||
"CMAKE_C_COMPILER": "clang",
|
||||
"CMAKE_CXX_COMPILER": "clang++",
|
||||
"CMAKE_CXX_FLAGS_DEBUG": "-g -fPIC -Wall -pedantic -Wextra -Werror -Wno-missing-braces -Wno-ignored-qualifiers --std=c++20 -fdiagnostics-color -DDEBUG",
|
||||
"CMAKE_CXX_FLAGS_RELEASE": "-fPIC -Wall -pedantic -Wextra -Werror -Wno-missing-braces -Wno-ignored-qualifiers --std=c++20 -fdiagnostics-color -fno-omit-frame-pointer -DNDEBUG -O3",
|
||||
"CMAKE_INSTALL_PREFIX": "${sourceDir}/install/${presetName}",
|
||||
"CONFIG_DEFAULTS_PATH": "config/profiles/default/*.conf",
|
||||
"DOTNET_BINARY_DIR": "${sourceDir}/build/$<CONFIG>/bin/net7.0"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"name": "sparkd-publish",
|
||||
"inherits": "sparkd-release-gcc",
|
||||
"displayName": "Publish",
|
||||
"description": "Production build compiled w/ gcc and ready to ship"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "sparkd-ccapi-diag",
|
||||
"inherits": "sparkd-debug-clang",
|
||||
"displayName": "Debug (ccapi diag)",
|
||||
"description": "Debug build w/ ccapi log level 'Trace'",
|
||||
"binaryDir": "${sourceDir}/build/${presetName}",
|
||||
"cacheVariables": {
|
||||
"CCAPI_LOG_LEVEL": "Trace"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"name": "data-stream-suite",
|
||||
"inherits": "spark",
|
||||
"displayName": "Data Stream Suite",
|
||||
"description": "Data Stream utils ported over from Edge",
|
||||
"binaryDir": "${sourceDir}/build/${presetName}"
|
||||
}
|
||||
],
|
||||
|
||||
"buildPresets": [
|
||||
{
|
||||
"name": "spark",
|
||||
"condition": {
|
||||
"type": "equals",
|
||||
"lhs": "${hostSystemName}",
|
||||
"rhs": "Windows"
|
||||
},
|
||||
"hidden": true
|
||||
},
|
||||
|
||||
{
|
||||
"name": "spark-debug",
|
||||
"displayName": "Debug",
|
||||
"inherits": "spark",
|
||||
"configurePreset": "spark",
|
||||
"configuration": "Debug"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "spark-release",
|
||||
"displayName": "Release",
|
||||
"inherits": "spark",
|
||||
"configurePreset": "spark",
|
||||
"configuration": "Release"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "sparkd",
|
||||
"condition": {
|
||||
"type": "equals",
|
||||
"lhs": "${hostSystemName}",
|
||||
"rhs": "Linux"
|
||||
},
|
||||
"hidden": true,
|
||||
"targets": [
|
||||
"data_files_dir",
|
||||
"admin_web_app_bundle",
|
||||
"install",
|
||||
"libspark",
|
||||
"rapidjson_project",
|
||||
"server_layout",
|
||||
"sparkd"
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"name": "sparkd-debug-clang",
|
||||
"configurePreset": "sparkd-debug-clang",
|
||||
"displayName": "Debug (clang)",
|
||||
"inherits": "sparkd"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "sparkd-debug-gcc",
|
||||
"configurePreset": "sparkd-debug-gcc",
|
||||
"displayName": "Debug (gcc)",
|
||||
"inherits": "sparkd"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "sparkd-release-clang",
|
||||
"configurePreset": "sparkd-release-clang",
|
||||
"displayName": "Release (clang)",
|
||||
"inherits": "sparkd"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "sparkd-release-gcc",
|
||||
"configurePreset": "sparkd-release-gcc",
|
||||
"displayName": "Release (gcc)",
|
||||
"inherits": "sparkd"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "spark-api-server-windows",
|
||||
"condition": {
|
||||
"type": "equals",
|
||||
"lhs": "${hostSystemName}",
|
||||
"rhs": "Windows"
|
||||
},
|
||||
"hidden": true,
|
||||
"configurePreset": "spark-api-server-windows"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "spark-api-server-windows-debug",
|
||||
"displayName": "Spark Api Server (Debug)",
|
||||
"inherits": "spark-api-server-windows",
|
||||
"configuration": "Debug"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "spark-api-server-windows-release",
|
||||
"displayName": "Spark Api Server (Debug)",
|
||||
"inherits": "spark-api-server-windows",
|
||||
"configuration": "Release"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "spark-api-server-linux",
|
||||
"condition": {
|
||||
"type": "equals",
|
||||
"lhs": "${hostSystemName}",
|
||||
"rhs": "Linux"
|
||||
},
|
||||
"hidden": true,
|
||||
"configurePreset": "spark-api-server-linux"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "spark-api-server-linux-debug",
|
||||
"inherits": "spark-api-server-linux",
|
||||
"displayName": "Spark Api Server (Debug)",
|
||||
"configuration": "Debug"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "spark-api-server-linux-release",
|
||||
"inherits": "spark-api-server-linux",
|
||||
"displayName": "Spark Api Server (Release)",
|
||||
"configuration": "Release"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "sparkd-publish",
|
||||
"configurePreset": "sparkd-publish",
|
||||
"displayName": "Publish",
|
||||
"inherits": "sparkd",
|
||||
"targets": "install"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "sparkd-ccapi-diag",
|
||||
"configurePreset": "sparkd-ccapi-diag",
|
||||
"displayName": "Debug (ccapi diag)",
|
||||
"inherits": "sparkd"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "data-stream-suite-debug",
|
||||
"displayName": "DataStreamSuite (Debug)",
|
||||
"configurePreset": "data-stream-suite",
|
||||
"configuration": "Debug"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "data-stream-suite-release",
|
||||
"displayName": "DataStreamSuite (Release)",
|
||||
"configurePreset": "data-stream-suite",
|
||||
"configuration": "Release"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.3.32922.545
|
||||
MinimumVisualStudioVersion = 15.0.26124.0
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "spark_api", "src\client\spark_api\spark_api.csproj", "{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "spark_core", "src\client\spark_core\spark_core.csproj", "{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "spark_websocket", "src\client\spark_websocket\spark_websocket.csproj", "{3201359D-C071-4089-9EDE-B04D759F1508}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "spark_api_server", "src\client\spark_api_server\spark_api_server.csproj", "{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "spark_test", "src\client\spark_test\spark_test.csproj", "{EFC9FC4D-E92B-4C6D-9B97-26D38EAA118D}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spark.Console", "src\client\Spark.Console\Spark.Console.csproj", "{89D666E6-B500-498F-B026-4D167F68ADFC}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|x64 = Debug|x64
|
||||
MinSizeRel|x64 = MinSizeRel|x64
|
||||
Release|x64 = Release|x64
|
||||
RelWithDebInfo|x64 = RelWithDebInfo|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.Debug|x64.Build.0 = Debug|x64
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.MinSizeRel|x64.ActiveCfg = Release|x64
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.MinSizeRel|x64.Build.0 = Release|x64
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.Release|x64.ActiveCfg = Release|x64
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.Release|x64.Build.0 = Release|x64
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.RelWithDebInfo|x64.ActiveCfg = Release|x64
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.RelWithDebInfo|x64.Build.0 = Release|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.Debug|x64.Build.0 = Debug|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.MinSizeRel|x64.ActiveCfg = Release|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.MinSizeRel|x64.Build.0 = Release|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.Release|x64.ActiveCfg = Release|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.Release|x64.Build.0 = Release|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.RelWithDebInfo|x64.ActiveCfg = Release|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.RelWithDebInfo|x64.Build.0 = Release|x64
|
||||
{3201359D-C071-4089-9EDE-B04D759F1508}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{3201359D-C071-4089-9EDE-B04D759F1508}.Debug|x64.Build.0 = Debug|x64
|
||||
{3201359D-C071-4089-9EDE-B04D759F1508}.MinSizeRel|x64.ActiveCfg = Debug|x64
|
||||
{3201359D-C071-4089-9EDE-B04D759F1508}.MinSizeRel|x64.Build.0 = Debug|x64
|
||||
{3201359D-C071-4089-9EDE-B04D759F1508}.Release|x64.ActiveCfg = Release|x64
|
||||
{3201359D-C071-4089-9EDE-B04D759F1508}.Release|x64.Build.0 = Release|x64
|
||||
{3201359D-C071-4089-9EDE-B04D759F1508}.RelWithDebInfo|x64.ActiveCfg = Release|x64
|
||||
{3201359D-C071-4089-9EDE-B04D759F1508}.RelWithDebInfo|x64.Build.0 = Release|x64
|
||||
{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}.Debug|x64.Build.0 = Debug|x64
|
||||
{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}.MinSizeRel|x64.ActiveCfg = Debug|x64
|
||||
{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}.MinSizeRel|x64.Build.0 = Debug|x64
|
||||
{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}.Release|x64.ActiveCfg = Release|x64
|
||||
{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}.Release|x64.Build.0 = Release|x64
|
||||
{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}.RelWithDebInfo|x64.ActiveCfg = Release|x64
|
||||
{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}.RelWithDebInfo|x64.Build.0 = Release|x64
|
||||
{EFC9FC4D-E92B-4C6D-9B97-26D38EAA118D}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{EFC9FC4D-E92B-4C6D-9B97-26D38EAA118D}.Debug|x64.Build.0 = Debug|x64
|
||||
{EFC9FC4D-E92B-4C6D-9B97-26D38EAA118D}.MinSizeRel|x64.ActiveCfg = Debug|x64
|
||||
{EFC9FC4D-E92B-4C6D-9B97-26D38EAA118D}.MinSizeRel|x64.Build.0 = Debug|x64
|
||||
{EFC9FC4D-E92B-4C6D-9B97-26D38EAA118D}.Release|x64.ActiveCfg = Release|x64
|
||||
{EFC9FC4D-E92B-4C6D-9B97-26D38EAA118D}.Release|x64.Build.0 = Release|x64
|
||||
{EFC9FC4D-E92B-4C6D-9B97-26D38EAA118D}.RelWithDebInfo|x64.ActiveCfg = Debug|x64
|
||||
{EFC9FC4D-E92B-4C6D-9B97-26D38EAA118D}.RelWithDebInfo|x64.Build.0 = Debug|x64
|
||||
{89D666E6-B500-498F-B026-4D167F68ADFC}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{89D666E6-B500-498F-B026-4D167F68ADFC}.Debug|x64.Build.0 = Debug|x64
|
||||
{89D666E6-B500-498F-B026-4D167F68ADFC}.MinSizeRel|x64.ActiveCfg = Debug|x64
|
||||
{89D666E6-B500-498F-B026-4D167F68ADFC}.MinSizeRel|x64.Build.0 = Debug|x64
|
||||
{89D666E6-B500-498F-B026-4D167F68ADFC}.Release|x64.ActiveCfg = Release|x64
|
||||
{89D666E6-B500-498F-B026-4D167F68ADFC}.Release|x64.Build.0 = Release|x64
|
||||
{89D666E6-B500-498F-B026-4D167F68ADFC}.RelWithDebInfo|x64.ActiveCfg = Debug|x64
|
||||
{89D666E6-B500-498F-B026-4D167F68ADFC}.RelWithDebInfo|x64.Build.0 = Debug|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {422D1620-0166-4C26-9A81-CA8A2EB1AB58}
|
||||
EndGlobalSection
|
||||
GlobalSection(Performance) = preSolution
|
||||
HasPerformanceSessions = true
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
@@ -0,0 +1,12 @@
|
||||
function(print_list var)
|
||||
set(CMAKE_MESSAGE_INDENT "")
|
||||
set(_var_str "")
|
||||
foreach(item IN LISTS ${var})
|
||||
set(_var_str "${_var_str}\n ${item}")
|
||||
endforeach()
|
||||
if ("${ARGN}" STREQUAL "VERBOSE")
|
||||
message(VERBOSE "***${var}:${_var_str}")
|
||||
else()
|
||||
message("***${var}:${_var_str}")
|
||||
endif()
|
||||
endfunction()
|
||||
@@ -0,0 +1,145 @@
|
||||
set(Protobuf_PROTOC_EXECUTABLE "${SPARK_BIN}/protoc")
|
||||
set(PROTOBUF_INCLUDE_DIRS "${SPARK_INCLUDE}")
|
||||
set(PROTOBUF_STATIC_LIB "libprotobuf")
|
||||
|
||||
function(Protobuf_Generate_Cpp SRCS HDRS)
|
||||
set(${SRCS})
|
||||
set(${HDRS})
|
||||
|
||||
foreach(FIL ${ARGN})
|
||||
get_filename_component(ABS_FIL ${FIL} ABSOLUTE)
|
||||
get_filename_component(FIL_WE ${FIL} NAME_WE)
|
||||
get_filename_component(FIL_DIR ${FIL} DIRECTORY)
|
||||
if(FIL_DIR)
|
||||
set(FIL_WE "${FIL_DIR}/${FIL_WE}")
|
||||
endif()
|
||||
|
||||
list(APPEND ${SRCS} "${CMAKE_CURRENT_BINARY_DIR}/${FIL_WE}.pb.cc")
|
||||
list(APPEND ${HDRS} "${CMAKE_CURRENT_BINARY_DIR}/${FIL_WE}.pb.h")
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${FIL_WE}.pb.cc"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${FIL_WE}.pb.h"
|
||||
COMMAND
|
||||
${Protobuf_PROTOC_EXECUTABLE} ARGS --cpp_out=${CMAKE_BINARY_DIR}/src -I
|
||||
${PROTOBUF_INCLUDE_DIRS} -I ${CMAKE_SOURCE_DIR}/src ${ABS_FIL}
|
||||
DEPENDS ${ABS_FIL}
|
||||
COMMENT "Running C++ protocol buffer compiler on ${FIL}"
|
||||
VERBATIM)
|
||||
endforeach()
|
||||
|
||||
set_source_files_properties(${${SRCS}} ${${HDRS}} PROPERTIES GENERATED TRUE)
|
||||
|
||||
# remove some warnings from protobuf generated files
|
||||
if(WIN32)
|
||||
set_source_files_properties(${${SRCS}} PROPERTIES COMPILE_FLAGS
|
||||
"/wd4309 /wd4838")
|
||||
else()
|
||||
set_source_files_properties(
|
||||
${${SRCS}}
|
||||
PROPERTIES
|
||||
COMPILE_FLAGS
|
||||
"-Wno-unused-parameter -Wno-effc++ -Wno-pedantic -Wno-sign-compare -Wno-uninitialized"
|
||||
)
|
||||
endif()
|
||||
|
||||
set(${SRCS}
|
||||
${${SRCS}}
|
||||
PARENT_SCOPE)
|
||||
set(${HDRS}
|
||||
${${HDRS}}
|
||||
PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
function(Service_Compiler_Generate_Cpp SRCS HDRS)
|
||||
set(${SRCS})
|
||||
set(${HDRS})
|
||||
|
||||
foreach(FIL ${ARGN})
|
||||
get_filename_component(ABS_FIL ${FIL} ABSOLUTE)
|
||||
get_filename_component(FIL_WE ${FIL} NAME_WE)
|
||||
get_filename_component(FIL_DIR ${FIL} DIRECTORY)
|
||||
if(FIL_DIR)
|
||||
set(FIL_WE "${FIL_DIR}/${FIL_WE}")
|
||||
endif()
|
||||
|
||||
list(APPEND ${SRCS} "${CMAKE_CURRENT_BINARY_DIR}/${FIL_WE}.pb.cc")
|
||||
list(APPEND ${HDRS} "${CMAKE_CURRENT_BINARY_DIR}/${FIL_WE}.pb.h")
|
||||
|
||||
list(APPEND ${SRCS} "${CMAKE_CURRENT_BINARY_DIR}/${FIL_WE}.client.pb.cc")
|
||||
list(APPEND ${HDRS} "${CMAKE_CURRENT_BINARY_DIR}/${FIL_WE}.client.pb.h")
|
||||
|
||||
list(APPEND ${SRCS} "${CMAKE_CURRENT_BINARY_DIR}/${FIL_WE}.server.pb.cc")
|
||||
list(APPEND ${HDRS} "${CMAKE_CURRENT_BINARY_DIR}/${FIL_WE}.server.pb.h")
|
||||
|
||||
set(TEMPLATES
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/api/service_compiler/templates/cpp/client.pb.cc
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/api/service_compiler/templates/cpp/client.pb.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/api/service_compiler/templates/cpp/server.pb.cc
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/api/service_compiler/templates/cpp/server.pb.h
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
add_custom_command(
|
||||
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${FIL_WE}.pb.cc"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${FIL_WE}.pb.h"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${FIL_WE}.client.pb.cc"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${FIL_WE}.client.pb.h"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${FIL_WE}.server.pb.cc"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${FIL_WE}.server.pb.h"
|
||||
COMMAND SET PYTHONPATH=${SPARK_PYTHON}
|
||||
COMMAND ${CMAKE_SOURCE_DIR}/.venv/Scripts/activate.bat
|
||||
COMMAND
|
||||
${Protobuf_PROTOC_EXECUTABLE} ARGS --cpp_out=${CMAKE_BINARY_DIR}/src
|
||||
--plugin=protoc-gen-service=${CMAKE_SOURCE_DIR}/src/lib/api/service_compiler/plugin.cmd
|
||||
--service_out=lang=cpp:${CMAKE_BINARY_DIR}/src -I
|
||||
${PROTOBUF_INCLUDE_DIRS} -I ${CMAKE_SOURCE_DIR}/src ${ABS_FIL}
|
||||
DEPENDS ${ABS_FIL} ${TEMPLATES}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/api/service_compiler/plugin.py
|
||||
COMMENT "Running C++ service compiler on ${FIL}"
|
||||
VERBATIM)
|
||||
else()
|
||||
add_custom_command(
|
||||
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${FIL_WE}.pb.cc"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${FIL_WE}.pb.h"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${FIL_WE}.client.pb.cc"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${FIL_WE}.client.pb.h"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${FIL_WE}.server.pb.cc"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${FIL_WE}.server.pb.h"
|
||||
COMMAND ${CMAKE_SOURCE_DIR}/tools/venv_exec.sh
|
||||
ARGS
|
||||
${Protobuf_PROTOC_EXECUTABLE}
|
||||
--cpp_out=${CMAKE_BINARY_DIR}/src
|
||||
--plugin=protoc-gen-service=${CMAKE_SOURCE_DIR}/src/lib/api/service_compiler/plugin.py
|
||||
--service_out=lang=cpp,make_file_name=${ABS_FIL}:${CMAKE_BINARY_DIR}/src
|
||||
-I ${PROTOBUF_INCLUDE_DIRS} -I ${CMAKE_SOURCE_DIR}/src ${ABS_FIL}
|
||||
DEPENDS ${ABS_FIL} ${TEMPLATES}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/api/service_compiler/plugin.py
|
||||
COMMENT "Running C++ service compiler on ${FIL}"
|
||||
VERBATIM)
|
||||
endif()
|
||||
|
||||
endforeach()
|
||||
|
||||
# remove some warnings from protobuf generated files
|
||||
if(WIN32)
|
||||
set_source_files_properties(${${SRCS}} PROPERTIES COMPILE_FLAGS
|
||||
"/wd4309 /wd4838")
|
||||
else()
|
||||
set_source_files_properties(
|
||||
${${SRCS}}
|
||||
PROPERTIES
|
||||
COMPILE_FLAGS
|
||||
"-Wno-unused-parameter -Wno-effc++ -Wno-pedantic -Wno-sign-compare -Wno-uninitialized"
|
||||
)
|
||||
endif()
|
||||
|
||||
set(${SRCS}
|
||||
${${SRCS}}
|
||||
PARENT_SCOPE)
|
||||
set(${HDRS}
|
||||
${${HDRS}}
|
||||
PARENT_SCOPE)
|
||||
|
||||
endfunction()
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
# inspired by https://stackoverflow.com/questions/1027247/specify-source-files-globally-with-glob
|
||||
|
||||
# Compare the new contents with the existing file, if it exists and is the same we don't want to
|
||||
# trigger a make by changing its timestamp.
|
||||
function(update_file path content)
|
||||
set(old_content "")
|
||||
if(EXISTS "${path}")
|
||||
file(READ "${path}" old_content)
|
||||
endif()
|
||||
if(NOT old_content STREQUAL content)
|
||||
file(WRITE "${path}" "${content}")
|
||||
endif()
|
||||
endfunction(update_file)
|
||||
|
||||
# Creates a file called CMakeDeps.cmake next to your CMakeLists.txt with the list of dependencies in
|
||||
# it - this file should be treated as part of CMakeLists.txt (source controlled, etc.).
|
||||
function(update_deps_file deps)
|
||||
if(WIN32)
|
||||
set(deps_file "CMakeDeps_win.cmake")
|
||||
else()
|
||||
set(deps_file "CMakeDeps.cmake")
|
||||
endif()
|
||||
|
||||
# Normalize the list so it's the same on every machine
|
||||
list(REMOVE_DUPLICATES deps)
|
||||
list(SORT deps)
|
||||
# Update the deps file
|
||||
set(content "set(sources ${deps})")
|
||||
update_file(${deps_file} "${content}")
|
||||
# Include the file so it's tracked as a generation dependency we don't need the content.
|
||||
include(${deps_file})
|
||||
endfunction(update_deps_file)
|
||||
@@ -0,0 +1,24 @@
|
||||
cmake_minimum_required(VERSION 3.5)
|
||||
|
||||
# Explicitly set policy to convert relative paths to absolute (although this is a default policy,
|
||||
# setting it explicitly prevents a compile-warning)
|
||||
cmake_policy(SET CMP0076 NEW)
|
||||
|
||||
# add protos to the library to facilitate source_group
|
||||
target_sources(libspark PUBLIC ${Config_Protos} ${NonConfig_Protos} ${Service_Protos})
|
||||
|
||||
function(assign_source_group)
|
||||
foreach(_source IN ITEMS ${ARGN})
|
||||
if(IS_ABSOLUTE "${_source}")
|
||||
file(RELATIVE_PATH _source_rel "${CMAKE_CURRENT_SOURCE_DIR}" "${_source}")
|
||||
else()
|
||||
set(_source_rel "${_source}")
|
||||
endif()
|
||||
get_filename_component(_source_path "${_source_rel}" PATH)
|
||||
string(REPLACE "/" "\\" _source_path_msvc "${_source_path}")
|
||||
source_group("${_source_path_msvc}" FILES "${_source}")
|
||||
set(SOURCE_FILES "${_source}")
|
||||
endforeach()
|
||||
endfunction(assign_source_group)
|
||||
|
||||
assign_source_group(${SparkLib_Sources} ${Config_Protos} ${NonConfig_Protos} ${Service_Protos})
|
||||
+224
@@ -0,0 +1,224 @@
|
||||
[cmake]: https://cmake.org/
|
||||
[cmake ext]: https://marketplace.visualstudio.com/items?itemName=ms-vscode.cmake-tools
|
||||
[cmake presets]: https://cmake.org/cmake/help/latest/manual/cmake-presets.7.html
|
||||
[cpp ext]: https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools
|
||||
[clangd ext]: https://marketplace.visualstudio.com/items?itemName=llvm-vs-code-extensions.vscode-clangd
|
||||
[dotnet]: https://dotnet.microsoft.com/en-us/download/dotnet
|
||||
[ninja build]: https://ninja-build.org/
|
||||
[ninja generator]: https://cmake.org/cmake/help/latest/generator/Ninja.html
|
||||
[ninja multi-config generator]: https://cmake.org/cmake/help/latest/generator/Ninja%20Multi-Config.html
|
||||
[python]: https://www.python.org/
|
||||
[py venv]: https://docs.python.org/3/library/venv.html
|
||||
[visual studio]: https://visualstudio.microsoft.com/
|
||||
[visual studio generator]: https://cmake.org/cmake/help/latest/generator/Visual%20Studio%2017%202022.html
|
||||
|
||||
# C++ Intellisense for Spark on Windows (VS Code)
|
||||
**Steps**
|
||||
1. Install the **[C++ extension][cpp ext]**
|
||||
2. Install the **[CMake extension][cmake ext]**
|
||||
3. Copy `c_cpp_properties.json` from this folder to `$workspaceFolder/.vscode/`
|
||||
4. In the VS Code Command Palette, run **CMake: Select Configure Preset**, then
|
||||
select '**spark**' from the dropdown
|
||||
|
||||
**Notes**
|
||||
* Intellisense won't work for generated files/types until you build libspark
|
||||
|
||||
# C++ Intellisense for Sparkd on Linux (VS Code)
|
||||
1. Install the **[CMake extension][cmake ext]**
|
||||
2. Install the **[Clangd extension][clangd ext]**
|
||||
3. (Optional) Install the **[C++ extension][cpp ext]** (*needed for debugging,
|
||||
but intellisense should work without it*).
|
||||
4. If the **[C++ extension][cpp ext]** is installed, disable its intellisense in
|
||||
your workspace settings (*Clangd intellisense is better*)
|
||||
```
|
||||
"C_Cpp.intelliSenseEngine": "disabled"
|
||||
```
|
||||
5. In the VS Code Command Palette, run **CMake: Select Configure Preset**, then select the
|
||||
**[preset][cmake presets]** you wish to build from the dropdown
|
||||
* *The **Clang** presets may work best with the **Clangd** extension*
|
||||
* *Intellisense won't work for generated files/types until you build libspark*
|
||||
|
||||
# Build Spark on Windows
|
||||
### Dependencies
|
||||
* **[CMake][cmake]** (version >= 3.23)
|
||||
* **[Python][python]** (version >= 3.9)
|
||||
* **[Visual Studio][visual studio]** (2022)
|
||||
* **[Dotnet][dotnet]** (sdk version >= 7.0.0)
|
||||
|
||||
### References
|
||||
* **[CMakePresets][cmake presets]**
|
||||
* **[Visual Studio 17 2022 (CMake generator)][visual studio generator]**
|
||||
* **[Python Virtual Environment][py venv]**
|
||||
|
||||
### Notes
|
||||
* *Run commands from the repo root dir unless otherwise noted*
|
||||
|
||||
1. Set up the **[Python virtual environment][py venv]**<br>
|
||||
```
|
||||
# Create the virtual environment
|
||||
python3 -m venv .venv
|
||||
|
||||
# Activate the virtual environment
|
||||
.venv\bin\activate.bat
|
||||
|
||||
# Update pip
|
||||
python -m pip install --upgrade pip
|
||||
|
||||
# Install packages
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
2. Build
|
||||
* *Run commands in python virtual environment*
|
||||
```
|
||||
# Configure
|
||||
cmake --preset spark
|
||||
|
||||
# Build Debug
|
||||
cmake --build --preset spark-debug
|
||||
dotnet build spark_client.sln --configuration Debug
|
||||
|
||||
# Build Release
|
||||
cmake --build --preset spark-release
|
||||
dotnet build spark_client.sln --configuration Release
|
||||
```
|
||||
|
||||
# Build Sparkd on Linux
|
||||
### **Dependencies**
|
||||
* **[CMake][cmake]** (version >= 3.23)
|
||||
* **[Ninja Build][ninja build]**
|
||||
* **[Python][python]** (version >= 3.9)
|
||||
|
||||
### **References**
|
||||
* **[CMakePresets][cmake presets]**
|
||||
* **[Ninja (CMake generator)][ninja generator]**
|
||||
* **[Python Virtual Environment][py venv]**
|
||||
* **[Devcontainer](devcontainer)**
|
||||
|
||||
### Prerequisites
|
||||
* Open repository in a VS Code [Devcontainer](../docker/sparkd/dev/README.md), or
|
||||
create your own [docker container](../docker/sparkd/dev/README.md) in which to build
|
||||
|
||||
### Notes
|
||||
* *Run commands from the repo root dir unless otherwise noted*<br>
|
||||
|
||||
1. Set up the **[Python virtual environment][py venv]**
|
||||
```
|
||||
# Create the virtual environment
|
||||
python3 -m venv .venv
|
||||
|
||||
# Activate the virtual environment
|
||||
. .venv/bin/activate
|
||||
|
||||
# Update pip
|
||||
python -m pip install --upgrade pip
|
||||
|
||||
# Install packages
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
2. Build
|
||||
* *Run commands in python virtual environment*
|
||||
```
|
||||
# Configure clang debug
|
||||
cmake --preset sparkd-clang-debug
|
||||
|
||||
# Build clang debug
|
||||
cmake --build --preset spark-clang-debug
|
||||
|
||||
# Configure gcc release
|
||||
cmake --build --preset sparkd-gcc-release
|
||||
|
||||
# Build gcc release
|
||||
cmake --build --preset sparkd-gcc-release
|
||||
```
|
||||
|
||||
# Build Spark Api Server on Windows
|
||||
### **Dependencies**
|
||||
* **[CMake][cmake]** (version >= 3.23)
|
||||
* **[Python][python]** (version >= 3.9)
|
||||
* **[Visual Studio][visual studio]** (version)
|
||||
* **[Dotnet][dotnet]** (sdk version >= 7.0.0)
|
||||
|
||||
### **References**
|
||||
* **[CMakePresets][cmake presets]**
|
||||
* **[Visual Studio 17 2022 (CMake generator)][visual studio generator]**
|
||||
* **[Python Virtual Environment][py venv]**
|
||||
|
||||
### Notes
|
||||
* *Run commands from the repo root dir unless otherwise noted*
|
||||
|
||||
1. Set up the **[Python Virtual Environment][py venv]**
|
||||
```
|
||||
# Create the virtual environment
|
||||
python3 -m venv .venv
|
||||
|
||||
# Activate the virtual environment
|
||||
.venv\bin\activate.bat
|
||||
|
||||
# Update pip
|
||||
python -m pip install --upgrade pip
|
||||
|
||||
# Install packages
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
2. Build
|
||||
* *Run in python virtual environment*
|
||||
```
|
||||
# Configure
|
||||
cmake --preset spark-api-server-windows
|
||||
|
||||
# Build debug
|
||||
cmake --build --preset spark-api-server-windows-debug
|
||||
dotnet build Spark.Api.Server.sln --configuration Debug
|
||||
|
||||
# Build release
|
||||
cmake --build --preset spark-api-server-windows-release
|
||||
dotnet build Spark.Api.Server.sln --configuration Release
|
||||
```
|
||||
|
||||
# Build Spark Api Server on Linux
|
||||
### **Dependencies**
|
||||
* **[CMake][cmake]** (version >= 3.23)
|
||||
* **[Ninja Build][ninja build]**
|
||||
* **[Python][python]** (version >= 3.9)
|
||||
* **[Dotnet][dotnet]** (sdk version >= 7.0.0)
|
||||
|
||||
### **References**
|
||||
* **[CMakePresets][cmake presets]**
|
||||
* **[Ninja Multi-Config (CMake generator)][ninja multi-config generator]**
|
||||
* **[Python Virtual Environment][py venv]**
|
||||
|
||||
### Prerequisites
|
||||
* Open repository in a VS Code [Devcontainer](../docker/sparkd/dev/README.md), or
|
||||
create your own [docker container](../docker/sparkd/dev/README.md) in which to build
|
||||
|
||||
### Notes
|
||||
* *Run commands from the repo root dir unless otherwise noted*
|
||||
|
||||
1. Set up the **[Python Virtual Environment][py venv]**
|
||||
```
|
||||
# Create the virtual environment
|
||||
python3 -m venv .venv
|
||||
|
||||
# Activate the virtual environment
|
||||
. .venv/bin/activate
|
||||
|
||||
# Update pip
|
||||
python -m pip install --upgrade pip
|
||||
|
||||
# Install packages
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
2. Build
|
||||
* *Run in python virtual environment*
|
||||
```
|
||||
# Configure
|
||||
cmake --preset spark-api-server-linux
|
||||
|
||||
# Build debug
|
||||
cmake --build --preset spark-api-server-linux-debug
|
||||
dotnet build Spark.Api.Server.sln --configuration Debug
|
||||
|
||||
# Build release
|
||||
cmake --build --preset spark-api-server-linux-release
|
||||
dotnet build Spark.Api.Server.sln --configuration Release
|
||||
```
|
||||
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"version": 4,
|
||||
"configurations": [
|
||||
{
|
||||
"name": "Windows",
|
||||
"intelliSenseMode": "windows-msvc-x64",
|
||||
"includePath": [
|
||||
"${workspaceFolder}/src/",
|
||||
"${workspaceFolder}/build/src/",
|
||||
"${workspaceFolder}/externals/windows/include/"
|
||||
],
|
||||
"defines": ["_WIN32", "__x86_64__"],
|
||||
"browse": {
|
||||
"path": [
|
||||
"${workspaceRoot}/src",
|
||||
"${workspaceRoot}/build/src"
|
||||
],
|
||||
"limitSymbolsToIncludedHeaders": true
|
||||
},
|
||||
"cStandard": "c17",
|
||||
"cppStandard": "c++17",
|
||||
"configurationProvider": "ms-vscode.cmake-tools",
|
||||
"compilerPath": "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.34.31933/bin/Hostx64/x64/cl.exe",
|
||||
"mergeConfigurations": true
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
{
|
||||
"FormattingOptions": {
|
||||
"NewLine": "\n",
|
||||
"UseTabs": false,
|
||||
"TabSize": 3,
|
||||
"IndentationSize": 3,
|
||||
"SpacingAfterMethodDeclarationName": false,
|
||||
"SpaceWithinMethodDeclarationParenthesis": false,
|
||||
"SpaceBetweenEmptyMethodDeclarationParentheses": false,
|
||||
"SpaceAfterMethodCallName": false,
|
||||
"SpaceWithinMethodCallParentheses": false,
|
||||
"SpaceBetweenEmptyMethodCallParentheses": false,
|
||||
"SpaceAfterControlFlowStatementKeyword": true,
|
||||
"SpaceWithinExpressionParentheses": false,
|
||||
"SpaceWithinCastParentheses": false,
|
||||
"SpaceWithinOtherParentheses": false,
|
||||
"SpaceAfterCast": false,
|
||||
"SpacesIgnoreAroundVariableDeclaration": false,
|
||||
"SpaceBeforeOpenSquareBracket": false,
|
||||
"SpaceBetweenEmptySquareBrackets": false,
|
||||
"SpaceWithinSquareBrackets": false,
|
||||
"SpaceAfterColonInBaseTypeDeclaration": true,
|
||||
"SpaceAfterComma": true,
|
||||
"SpaceAfterDot": false,
|
||||
"SpaceAfterSemicolonsInForStatement": true,
|
||||
"SpaceBeforeColonInBaseTypeDeclaration": true,
|
||||
"SpaceBeforeComma": false,
|
||||
"SpaceBeforeDot": false,
|
||||
"SpaceBeforeSemicolonsInForStatement": false,
|
||||
"SpacingAroundBinaryOperator": "single",
|
||||
"IndentBraces": false,
|
||||
"IndentBlock": true,
|
||||
"IndentSwitchSection": true,
|
||||
"IndentSwitchCaseSection": true,
|
||||
"LabelPositioning": "oneLess",
|
||||
"WrappingPreserveSingleLine": true,
|
||||
"WrappingKeepStatementsOnSingleLine": true,
|
||||
"NewLinesForBracesInTypes": false,
|
||||
"NewLinesForBracesInMethods": false,
|
||||
"NewLinesForBracesInProperties": false,
|
||||
"NewLinesForBracesInAccessors": false,
|
||||
"NewLinesForBracesInAnonymousMethods": false,
|
||||
"NewLinesForBracesInControlBlocks": false,
|
||||
"NewLinesForBracesInAnonymousTypes": false,
|
||||
"NewLinesForBracesInObjectCollectionArrayInitializers": false,
|
||||
"NewLinesForBracesInLambdaExpressionBody": false,
|
||||
"NewLineForElse": false,
|
||||
"NewLineForCatch": false,
|
||||
"NewLineForFinally": false,
|
||||
"NewLineForMembersInObjectInit": true,
|
||||
"NewLineForMembersInAnonymousTypes": true,
|
||||
"NewLineForClausesInQuery": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,120 @@
|
||||
FROM spark-crypto_18.04
|
||||
|
||||
RUN \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& apt-get install -y \
|
||||
htop \
|
||||
locales \
|
||||
source-highlight \
|
||||
powerline \
|
||||
fonts-powerline
|
||||
|
||||
|
||||
# Hide these in the .docker directory to avoid conflicts with existing repos on
|
||||
# this computer (in case a parent dir, such as $HOME, is mounted inside a
|
||||
# container)
|
||||
ARG repo_root="/home/john/Documents/repos/.docker"
|
||||
|
||||
# Create dirs for public/private repos
|
||||
USER john
|
||||
RUN \
|
||||
mkdir -p $repo_root/public \
|
||||
&& mkdir -p $repo_root/private
|
||||
|
||||
|
||||
## Get latest fish (build from source)
|
||||
# 1) get build deps
|
||||
USER root
|
||||
RUN \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& apt-get install -y software-properties-common
|
||||
RUN \
|
||||
apt-add-repository ppa:fish-shell/release-3 \
|
||||
&& sed -i "s/^# deb/deb/g" /etc/apt/sources.list
|
||||
|
||||
RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get build-dep -y fish
|
||||
|
||||
|
||||
# 2) Clone repo
|
||||
USER john
|
||||
RUN \
|
||||
cd $repo_root/public \
|
||||
&& git clone https://github.com/fish-shell/fish-shell.git
|
||||
|
||||
RUN \
|
||||
cd $repo_root/public/fish-shell \
|
||||
&& mkdir build \
|
||||
&& cd build \
|
||||
&& cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_DOCS=0 .. \
|
||||
&& cmake --build .
|
||||
|
||||
# Switch to root, rather than running inline w/ sudo cmd, to avoid having to
|
||||
# enter a password
|
||||
USER root
|
||||
RUN \
|
||||
cd $repo_root/public/fish-shell/build \
|
||||
&& make install
|
||||
USER john
|
||||
|
||||
|
||||
## Get oh-my-fish
|
||||
RUN \
|
||||
cd $repo_root/public \
|
||||
&& git clone https://github.com/oh-my-fish/oh-my-fish.git
|
||||
|
||||
RUN \
|
||||
cd $repo_root/public/oh-my-fish \
|
||||
&& ./bin/install --noninteractive --yes
|
||||
|
||||
|
||||
## Get my fish config
|
||||
RUN \
|
||||
cd $repo_root/private \
|
||||
&& git clone https://github.com/johncolvin-og/myfishconfig
|
||||
|
||||
RUN \
|
||||
cd $repo_root/private/myfishconfig \
|
||||
&& cp src/config.fish /home/john/.config/fish/ \
|
||||
&& cp src/aliases.fish /home/john/.config/fish/ \
|
||||
&& cp -r src/functions /home/john/.config/fish/ \
|
||||
&& cp -r src/themes/johncolvin /home/john/.local/share/omf/themes/ \
|
||||
&& fish --command "omf theme johncolvin"
|
||||
|
||||
|
||||
## Get my bash config (back up existing)
|
||||
RUN \
|
||||
cd $repo_root/private \
|
||||
&& git clone https://github.com/johncolvin-og/mybashconfig \
|
||||
&& cd mybashconfig \
|
||||
&& cp src/* /home/john/
|
||||
|
||||
|
||||
# Get vim files/tools
|
||||
USER root
|
||||
RUN \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& apt-get install -y curl
|
||||
USER john
|
||||
RUN curl -fLo home/john/.vim/autoload/plug.vim --create-dirs \
|
||||
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
|
||||
|
||||
|
||||
# Some fonts look sketchy if the language isn't set to english:
|
||||
# * The powerline git glyphs in the fish prompt are all displayed as question
|
||||
# marks.
|
||||
#
|
||||
# * The shell confuses the position of the cursor, so characters are left
|
||||
# around when they should have been cleared, and the cursor's home position
|
||||
# is pushed one or two places to the right.
|
||||
#
|
||||
# * Most likely, the bad cursor position is caused by some dependencies the
|
||||
# interpretation of escape sequences have on the language setting. At this
|
||||
# point I don't even care anymore (literally took 8 hours to figure this
|
||||
# out). I just know this shit is needed to make the prompt work correctly.
|
||||
USER root
|
||||
RUN locale-gen "en_US.UTF-8"
|
||||
USER john
|
||||
ENV LANG en_US.UTF-8
|
||||
ENV LANGUAGE en_US:en
|
||||
ENV LC_ALL en_US.UTF-8
|
||||
RUN fc-cache -vf
|
||||
Executable
+16
@@ -0,0 +1,16 @@
|
||||
#!/usr/bin/env fish
|
||||
|
||||
set this_dir (realpath (dirname (status -f)))
|
||||
set image_working_dir (realpath "$this_dir/../..")
|
||||
|
||||
set image_name $argv[1]
|
||||
if test (count $argv) -eq 0
|
||||
set image_name_cmd "$this_dir/docker_image_name.fish"
|
||||
set image_name (eval $image_name_cmd)
|
||||
end
|
||||
|
||||
docker build \
|
||||
-f "$this_dir/Dockerfile" \
|
||||
-t "$image_name" \
|
||||
"$image_working_dir"
|
||||
|
||||
Executable
+11
@@ -0,0 +1,11 @@
|
||||
#!/usr/bin/env fish
|
||||
|
||||
if test (count $argv) -gt 0
|
||||
echo $argv
|
||||
exit 0
|
||||
end
|
||||
|
||||
set image_name_cmd (realpath (dirname (status -f)))"/docker_image_name.fish"
|
||||
set image_name (eval $image_name_cmd)
|
||||
echo $image_name
|
||||
|
||||
Executable
+4
@@ -0,0 +1,4 @@
|
||||
#!/usr/bin/env fish
|
||||
|
||||
echo "$USER""s_"(basename (git rev-parse --show-toplevel))"-dev"
|
||||
|
||||
Executable
+12
@@ -0,0 +1,12 @@
|
||||
#!/usr/bin/env fish
|
||||
|
||||
set inst_name $argv[1]
|
||||
if test (count $argv) -eq 0
|
||||
set script_dir (realpath (dirname (status -f)))
|
||||
set inst_name (eval $script_dir"/docker_container_name.fish")
|
||||
end
|
||||
|
||||
set working_dir (realpath (pwd))
|
||||
echo $inst_name
|
||||
docker exec -w $working_dir -it "$inst_name" bash
|
||||
|
||||
Executable
+148
@@ -0,0 +1,148 @@
|
||||
#!/usr/bin/env fish
|
||||
|
||||
function print_help_and_exit
|
||||
echo "\
|
||||
Usage: setup_builds.sh [OPTIONS] compiler build-type
|
||||
|
||||
Positionals:
|
||||
gcc Compile with gcc
|
||||
clang Compile with clang
|
||||
debug Build debug
|
||||
release Build release
|
||||
|
||||
Options:
|
||||
--compiler <clang|gcc> Specify the compiler
|
||||
--type <debug|release> Specify the type of build
|
||||
-f,--force Overwrite existing build directories
|
||||
-h,--help Print this help message and exit
|
||||
|
||||
"
|
||||
exit $argv[1]
|
||||
end
|
||||
|
||||
function assert_dir
|
||||
if test ! -d "$argv[1]"
|
||||
if test -n "$argv[2]"
|
||||
echo "Invalid variable "$argv[2]": '"$argv[1]"' is not a directory"
|
||||
else
|
||||
echo "'"$argv[1]"' is not a directory"
|
||||
end
|
||||
exit 1
|
||||
end
|
||||
end
|
||||
|
||||
# common variables
|
||||
|
||||
set tools_path (realpath (dirname (status -f)))
|
||||
set spartan_path_cmd $tools_path/spartan_path.fish
|
||||
set repo_root (eval $spartan_path_cmd "repo-root")
|
||||
set build_root "$repo_root"/"build"
|
||||
mkdir -p "$build_root"
|
||||
|
||||
# Initialize the build directory. Expected arguments: <compiler>, <build_type>
|
||||
# Note: this method assumes the variables 'repot_root' and 'build_root' have
|
||||
# already been properly initialized
|
||||
function setup_build
|
||||
assert_dir $repo_root
|
||||
assert_dir $build_root
|
||||
set compiler "$argv[1]"
|
||||
set c_compiler (which cc)
|
||||
set build_type "$argv[2]"
|
||||
|
||||
if test \( -z "$build_type" \) -o \( \( "$build_type" != debug \) -a \( "$build_type" != release \) \)
|
||||
print_help_and_exit 1
|
||||
end
|
||||
|
||||
if test "$build_type" = debug
|
||||
set build_type_arg Debug
|
||||
if test "$compiler" = gcc
|
||||
set compiler_arg "/usr/lib/ccache/g++"
|
||||
else
|
||||
# set compiler_arg "/usr/lib/ccache/clang++"
|
||||
set compiler_arg "clang++"
|
||||
set c_compiler (which clang)
|
||||
end
|
||||
else if test "$build_type" = release
|
||||
set build_type_arg Release
|
||||
if test "$compiler" = gcc
|
||||
set compiler_arg "g++"
|
||||
else
|
||||
set compiler_arg "clang++"
|
||||
end
|
||||
end
|
||||
|
||||
if test \( -z "$compiler" \) -o \( \( "$compiler" != gcc \) -a \( "$compiler" != clang \) \)
|
||||
print_help_and_exit 1
|
||||
end
|
||||
|
||||
set build_dest $build_root"/"$compiler"/"$build_type
|
||||
|
||||
echo "Set up build: "$compiler" "$build_type
|
||||
|
||||
if test \( -z "$force" \) -a \( -d $build_dest \)
|
||||
echo "The build directory '"$build_dest"' already exists (use -f to overwrite)"
|
||||
return 1
|
||||
end
|
||||
|
||||
rm -rf "$build_dest"
|
||||
mkdir -p "$build_dest"
|
||||
cd "$build_dest"
|
||||
cmake -G Ninja -DCMAKE_BUILD_TYPE=$build_type_arg -DCMAKE_EXPORT_COMPILE_COMMANDS=1 -DCMAKE_C_COMPILER=$c_compiler -DCMAKE_CXX_COMPILER=$compiler_arg $repo_root
|
||||
end
|
||||
|
||||
# The while loop below removes arguments (via shift) as it parses them.
|
||||
# Additional information that needs to be extracted from the arguments must be
|
||||
# done so before the loop is executed.
|
||||
|
||||
set i 1
|
||||
while test $i -le (count $argv)
|
||||
switch $argv[$i]
|
||||
case --compiler
|
||||
set i (math "$i + 1")
|
||||
set compiler $argv[$i]
|
||||
case clang
|
||||
set compiler clang
|
||||
case gcc
|
||||
set compiler gcc
|
||||
case --type
|
||||
set i (math "$i + 1")
|
||||
set build_type $argv[$i]
|
||||
case release
|
||||
set build_type release
|
||||
case debug
|
||||
set build_type debug
|
||||
case -f
|
||||
set force 1
|
||||
case --force
|
||||
set force 1
|
||||
case -h
|
||||
print_help_and_exit 0
|
||||
case --help
|
||||
print_help_and_exit 0
|
||||
case '*'
|
||||
print_help_and_exit 1
|
||||
end
|
||||
set i (math "$i + 1")
|
||||
end
|
||||
|
||||
echo "compiler in "$compiler
|
||||
echo "build type in "$build_type
|
||||
if test -n "$compiler"
|
||||
if test -n "$build_type"
|
||||
setup_build $compiler $build_type
|
||||
else
|
||||
# all builds for the specified compiler
|
||||
setup_build $compiler debug
|
||||
setup_build $compiler release
|
||||
end
|
||||
else if test -n "$build_type"
|
||||
# all builds for the specified build type
|
||||
setup_build gcc $build_type
|
||||
setup_build clang $build_type
|
||||
else
|
||||
# all builds
|
||||
setup_build gcc debug
|
||||
setup_build gcc release
|
||||
setup_build clang debug
|
||||
setup_build clang release
|
||||
end
|
||||
Executable
+153
@@ -0,0 +1,153 @@
|
||||
#!/usr/bin/env fish
|
||||
|
||||
function print_help_and_exit
|
||||
echo "\
|
||||
Usage: setup_builds.sh [OPTIONS] compiler build-type
|
||||
|
||||
Positionals:
|
||||
gcc Compile with gcc
|
||||
clang Compile with clang
|
||||
debug Build debug
|
||||
release Build release
|
||||
|
||||
Options:
|
||||
--compiler <clang|gcc> Specify the compiler
|
||||
--type <debug|release> Specify the type of build
|
||||
-f,--force Overwrite existing build directories
|
||||
-h,--help Print this help message and exit
|
||||
|
||||
"
|
||||
exit $argv[1]
|
||||
end
|
||||
|
||||
function assert_dir
|
||||
if test ! -d "$argv[1]"
|
||||
if test -n "$argv[2]"
|
||||
echo "Invalid variable "$argv[2]": '"$argv[1]"' is not a directory"
|
||||
else
|
||||
echo "'"$argv[1]"' is not a directory"
|
||||
end
|
||||
exit 1
|
||||
end
|
||||
end
|
||||
|
||||
# common variables
|
||||
|
||||
#set tools_path (readlink -f (pwd))
|
||||
#set tools_path (cd (dirname (status --current-filename)); and pwd)
|
||||
set tools_path (realpath (dirname (status -f)))
|
||||
set spartan_path_cmd $tools_path/spartan_path.fish
|
||||
set repo_root (eval $spartan_path_cmd "repo-root")
|
||||
# Don't call 'spartan_path_cmd "build"' bc it returns specific build path
|
||||
# (i.e., for a particular compiler/build type), not the root build path
|
||||
# set build_root (eval $spartan_path_cmd "build")
|
||||
set build_root "$repo_root"/"build"
|
||||
mkdir -p "$build_root"
|
||||
|
||||
# Initialize the build directory. Expected arguments: <compiler>, <build_type>
|
||||
# Note: this method assumes the variables 'repot_root' and 'build_root' have
|
||||
# already been properly initialized
|
||||
function setup_build
|
||||
assert_dir $repo_root
|
||||
assert_dir $build_root
|
||||
set compiler "$argv[1]"
|
||||
set build_type "$argv[2]"
|
||||
|
||||
if test \( -z "$build_type" \) -o \( \( "$build_type" != "debug" \) -a \( "$build_type" != "release" \) \)
|
||||
print_help_and_exit 1
|
||||
end
|
||||
|
||||
if test "$build_type" = "debug"
|
||||
set build_type_arg "Debug"
|
||||
if test "$compiler" = "gcc"
|
||||
set compiler_arg "/usr/lib/ccache/g++"
|
||||
else
|
||||
set compiler_arg "/usr/lib/ccache/clang++"
|
||||
end
|
||||
else if test "$build_type" = "release"
|
||||
set build_type_arg "Release"
|
||||
if test "$compiler" = "gcc"
|
||||
set compiler_arg "g++"
|
||||
else
|
||||
set compiler_arg "clang++"
|
||||
end
|
||||
end
|
||||
|
||||
if test \( -z "$compiler" \) -o \( \( "$compiler" != "gcc" \) -a \( "$compiler" != "clang" \) \)
|
||||
print_help_and_exit 1
|
||||
end
|
||||
|
||||
set build_dest $build_root"/"$compiler"/"$build_type
|
||||
set conan_dest $repo_root"/conan/"$compiler"_"$build_type
|
||||
|
||||
echo "Set up build: "$compiler" "$build_type
|
||||
|
||||
if test \( -z "$force" \) -a \( -d $build_dest \)
|
||||
echo "The build directory '"$build_dest"' already exists (use -f to overwrite)"
|
||||
return 1
|
||||
end
|
||||
|
||||
rm -rf "$build_dest"
|
||||
mkdir -p "$build_dest"
|
||||
mkdir -p "$conan_dest"
|
||||
cd "$build_dest"
|
||||
conan install --build missing --profile $conan_dest $repo_root
|
||||
cmake -G Ninja -DCMAKE_BUILD_TYPE=$build_type_arg -DCMAKE_EXPORT_COMPILE_COMMANDS=1 -DCMAKE_CXX_COMPILER=$compiler_arg $repo_root
|
||||
end
|
||||
|
||||
# The while loop below removes arguments (via shift) as it parses them.
|
||||
# Additional information that needs to be extracted from the arguments must be
|
||||
# done so before the loop is executed.
|
||||
|
||||
set i 1
|
||||
while test $i -le (count $argv)
|
||||
switch $argv[$i]
|
||||
case '--compiler'
|
||||
set i (math "$i + 1")
|
||||
set compiler $argv[$i]
|
||||
case 'clang'
|
||||
set compiler 'clang'
|
||||
case 'gcc'
|
||||
set compiler 'gcc'
|
||||
case '--type'
|
||||
set i (math "$i + 1")
|
||||
set build_type $argv[$i]
|
||||
case 'release'
|
||||
set build_type 'release'
|
||||
case 'debug'
|
||||
set build_type 'debug'
|
||||
case '-f'
|
||||
set force 1
|
||||
case '--force'
|
||||
set force 1
|
||||
case '-h'
|
||||
print_help_and_exit 0
|
||||
case '--help'
|
||||
print_help_and_exit 0
|
||||
case '*'
|
||||
print_help_and_exit 1
|
||||
end
|
||||
set i (math "$i + 1")
|
||||
end
|
||||
|
||||
echo "compiler in "$compiler
|
||||
echo "build type in "$build_type
|
||||
if test -n "$compiler"
|
||||
if test -n "$build_type"
|
||||
setup_build $compiler $build_type
|
||||
else
|
||||
# all builds for the specified compiler
|
||||
setup_build $compiler "debug"
|
||||
setup_build $compiler "release"
|
||||
end
|
||||
else if test -n "$build_type"
|
||||
# all builds for the specified build type
|
||||
setup_build "gcc" $build_type
|
||||
setup_build "clang" $build_type
|
||||
else
|
||||
# all builds
|
||||
setup_build "gcc" "debug"
|
||||
setup_build "gcc" "release"
|
||||
setup_build "clang" "debug"
|
||||
setup_build "clang" "release"
|
||||
end
|
||||
Executable
+92
@@ -0,0 +1,92 @@
|
||||
#!/usr/bin/env fish
|
||||
|
||||
#basename (git rev-parse --show-toplevel)
|
||||
|
||||
function print_help_and_exit
|
||||
echo "\
|
||||
Print paths to core parts of the repository
|
||||
Usage: sparkd_path.sh SUBCOMMAND
|
||||
|
||||
Subcommands:
|
||||
build Print build path
|
||||
repo-root Print repo root path
|
||||
|
||||
"
|
||||
exit $argv[1]
|
||||
end
|
||||
|
||||
function print_build_help_and_exit
|
||||
echo "\
|
||||
Print build path
|
||||
Usage: sparkd_path.sh build [OPTIONS] compiler build-type
|
||||
|
||||
Positionals:
|
||||
gcc Print gcc build path
|
||||
clang Print clang build path
|
||||
debug Print debug build path
|
||||
release Print release build path
|
||||
|
||||
Options:
|
||||
--compiler <clang|gcc> Specify the compiler
|
||||
--type <debug|release> Specify the type of build
|
||||
-h,--help Print this help message and exit
|
||||
|
||||
"
|
||||
exit $argv[1]
|
||||
end
|
||||
|
||||
function print_repo_root
|
||||
git rev-parse --show-toplevel
|
||||
end
|
||||
|
||||
function run_repo_root
|
||||
print_repo_root
|
||||
end
|
||||
|
||||
function run_build
|
||||
set compiler "gcc"
|
||||
set build_type "release"
|
||||
set i 1
|
||||
while test $i -lt (count $argv)
|
||||
switch $argv[$i]
|
||||
case '--compiler'
|
||||
set i (math "$i + 1")
|
||||
set compiler $argv[$i]
|
||||
case 'clang'
|
||||
set compiler 'clang'
|
||||
case 'gcc'
|
||||
set compiler 'gcc'
|
||||
case '--type'
|
||||
set i (math "$i + 1")
|
||||
set build_type $argv[$i]
|
||||
case 'release'
|
||||
set build_type 'release'
|
||||
case 'debug'
|
||||
set build_type 'debug'
|
||||
'-h'
|
||||
print_build_help_and_exit 0
|
||||
'--help'
|
||||
print_build_help_and_exit 0
|
||||
'*'
|
||||
print_build_help_and_exit 1
|
||||
end
|
||||
set i (math "$i + 1")
|
||||
end
|
||||
if test \( $compiler = "clang" \) -o \( $compiler = "gcc" \)
|
||||
set comp_path $compiler
|
||||
else
|
||||
print_build_help_and_exit 1
|
||||
end
|
||||
set src_root (print_repo_root)
|
||||
set build_root (readlink -f "$src_root""/build")
|
||||
set build_dest $build_root"/"$compiler"/"$build_type
|
||||
echo $build_dest
|
||||
end
|
||||
|
||||
if test "$argv[1]" = "repo-root"
|
||||
print_repo_root $argv[2..-1]
|
||||
else if test "$argv[1]" = "build"
|
||||
run_build $argv[2..-1]
|
||||
else
|
||||
print_help_and_exit 1
|
||||
end
|
||||
Executable
+43
@@ -0,0 +1,43 @@
|
||||
#!/usr/bin/env fish
|
||||
|
||||
set image_name $argv[1]
|
||||
set cont_name $argv[2]
|
||||
|
||||
if test (count $argv) -lt 2
|
||||
if test (count $argv) -lt 1
|
||||
set image_name_cmd (realpath (dirname (status -f)))"/docker_image_name.fish"
|
||||
set image_name (eval $image_name_cmd)
|
||||
end
|
||||
set cont_name_cmd (realpath (dirname (status -f)))"/docker_container_name.fish "$image_name
|
||||
set cont_name (eval $cont_name_cmd)
|
||||
end
|
||||
|
||||
set working_dir (realpath (pwd))
|
||||
|
||||
set home_path /home/john
|
||||
set repo_path (git rev-parse --show-toplevel)
|
||||
set repo_path_out /home/john/Documents/repos/bts/(basename $repo_path)
|
||||
set working_dir $repo_path_out
|
||||
|
||||
echo "starting docker instance '"$cont_name"' (image '"$image_name"')"
|
||||
echo "working dir "$working_dir
|
||||
|
||||
docker run \
|
||||
--rm \
|
||||
--net host \
|
||||
-h (hostname) \
|
||||
-e "TZ=America/New_York" \
|
||||
--cap-add=SYS_PTRACE \
|
||||
--security-opt seccomp=unconfined \
|
||||
--name $cont_name \
|
||||
-v $repo_path:$repo_path_out \
|
||||
-u (id -u $USER) \
|
||||
-w $working_dir \
|
||||
--shm-size=4024m \
|
||||
-t \
|
||||
-i \
|
||||
-d \
|
||||
-e DISPLAY="$DISPLAY" \
|
||||
"$image_name" \
|
||||
bash
|
||||
|
||||
File renamed without changes.
@@ -0,0 +1,513 @@
|
||||
{
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"name": "Spark Local",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "${workspaceRoot}/build/gcc/debug/server/sparkd",
|
||||
"args": [
|
||||
"run",
|
||||
"test",
|
||||
"-a",
|
||||
"OutrightVanillaOrder"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "${workspaceRoot}/build/gcc/debug/server/",
|
||||
"environment": [
|
||||
{
|
||||
"name": "TZ",
|
||||
"value": "America/Chicago"
|
||||
}
|
||||
],
|
||||
"externalConsole": false,
|
||||
"MIMode": "gdb",
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "-enable-pretty-printing",
|
||||
"ignoreFailures": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "SparkVM Launch",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "/home/bts/spark/build/gcc/debug/server/sparkd",
|
||||
"args": [
|
||||
"test",
|
||||
"-a",
|
||||
"[ilink3]"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "/home/bts/spark/build/gcc/debug/server/",
|
||||
"environment": [],
|
||||
"externalConsole": true,
|
||||
"MIMode": "gdb",
|
||||
"preLaunchTask": "",
|
||||
"logging": {
|
||||
"engineLogging": false
|
||||
},
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "enable pretty-printer",
|
||||
"ignoreFailures": true
|
||||
},
|
||||
{
|
||||
"description": "Skip STL",
|
||||
"text": "skip -gfi /usr/include/c++/7/bits/*.h",
|
||||
"ignoreFailures": true
|
||||
},
|
||||
{
|
||||
"description": "LD LIBRARY",
|
||||
"text": "set env LD_LIBRARY_PATH=.",
|
||||
"ignoreFailures": false
|
||||
}
|
||||
],
|
||||
"pipeTransport": {
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/usr/bin/gdb"
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "(gdb) Launch",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "${workspaceRoot}/build/gcc/debug/server/sparkd/sparkd",
|
||||
"args": [
|
||||
"run"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "${workspaceRoot}/build/gcc/debug/src/server/sparkd",
|
||||
"environment": [],
|
||||
"externalConsole": true,
|
||||
"MIMode": "gdb",
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "-enable-pretty-printing",
|
||||
"ignoreFailures": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Client Launch",
|
||||
"type": "clr",
|
||||
"request": "launch",
|
||||
"program": "${workspaceRoot}/build/Debug/bin/net471/spark.exe",
|
||||
"args": [],
|
||||
"cwd": "${workspaceRoot}",
|
||||
"stopAtEntry": false,
|
||||
"externalConsole": true,
|
||||
"requireExactSource": false
|
||||
},
|
||||
{
|
||||
"name": "SDK Launch",
|
||||
"type": "clr",
|
||||
"request": "launch",
|
||||
"program": "${workspaceRoot}/build/Debug/bin/net471/spark_sdk.exe",
|
||||
"args": [
|
||||
"md",
|
||||
"GLBX",
|
||||
"Future",
|
||||
"CL",
|
||||
"CLZ9",
|
||||
"--user=bts",
|
||||
"--pass="
|
||||
],
|
||||
"cwd": "${workspaceRoot}",
|
||||
"stopAtEntry": false,
|
||||
"externalConsole": true,
|
||||
"requireExactSource": false
|
||||
},
|
||||
{
|
||||
"name": "Excel Launch",
|
||||
"type": "clr",
|
||||
"request": "launch",
|
||||
"program": "C:/Program Files/Microsoft Office/Office14/EXCEL.EXE",
|
||||
"args": [
|
||||
"${workspaceRoot}/build/Debug/bin/net471/spark_excel-addin64-packed.xll"
|
||||
],
|
||||
"cwd": "${workspaceRoot}",
|
||||
"stopAtEntry": false,
|
||||
"externalConsole": true,
|
||||
"requireExactSource": false
|
||||
},
|
||||
{
|
||||
"name": "Client Tests",
|
||||
"type": "clr",
|
||||
"request": "launch",
|
||||
"program": "${workspaceRoot}/build/Debug/bin/net471/sparkcmd.exe",
|
||||
"args": [
|
||||
"test",
|
||||
"ApiUpdateTests"
|
||||
],
|
||||
"cwd": "${workspaceRoot}",
|
||||
"stopAtEntry": false,
|
||||
"externalConsole": true,
|
||||
"requireExactSource": false
|
||||
},
|
||||
{
|
||||
"name": "Client Attach",
|
||||
"type": "clr",
|
||||
"request": "attach",
|
||||
"processId": "${command:pickProcess}"
|
||||
},
|
||||
{
|
||||
"name": "Spreader Tests",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "/home/bts/spark/build/gcc/debug/server/sparkd",
|
||||
"args": [
|
||||
"test",
|
||||
"[spreader]"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "/home/bts/spark/build/gcc/debug/server/",
|
||||
"environment": [],
|
||||
"externalConsole": true,
|
||||
"MIMode": "gdb",
|
||||
"preLaunchTask": "",
|
||||
"logging": {
|
||||
"engineLogging": false
|
||||
},
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "enable pretty-printer",
|
||||
"ignoreFailures": true
|
||||
}
|
||||
],
|
||||
"pipeTransport": {
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/usr/bin/gdb"
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "MD Synthetic Tests",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "/home/bts/spark/build/gcc/debug/server/sparkd",
|
||||
"args": [
|
||||
"test",
|
||||
"[md][synthetic]"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "/home/bts/spark/build/gcc/debug/server/",
|
||||
"environment": [],
|
||||
"externalConsole": true,
|
||||
"MIMode": "gdb",
|
||||
"preLaunchTask": "",
|
||||
"logging": {
|
||||
"engineLogging": false
|
||||
},
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "enable pretty-printer",
|
||||
"ignoreFailures": true
|
||||
}
|
||||
],
|
||||
"pipeTransport": {
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/usr/bin/gdb"
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Spartan Tests",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "/home/bts/spark/build/gcc/debug/server/sparkd",
|
||||
"args": [
|
||||
"test",
|
||||
"[spartan_md]"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "/home/bts/spark/build/gcc/debug/server/",
|
||||
"environment": [],
|
||||
"externalConsole": true,
|
||||
"MIMode": "gdb",
|
||||
"preLaunchTask": "",
|
||||
"logging": {
|
||||
"engineLogging": false
|
||||
},
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "enable pretty-printer",
|
||||
"ignoreFailures": true
|
||||
}
|
||||
],
|
||||
"pipeTransport": {
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/usr/bin/gdb"
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Matcher Tests",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "/home/bts/spark/build/gcc/debug/server/sparkd",
|
||||
"args": [
|
||||
"test",
|
||||
"[matcher]"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "/home/bts/spark/build/gcc/debug/server/",
|
||||
"environment": [],
|
||||
"externalConsole": true,
|
||||
"MIMode": "gdb",
|
||||
"preLaunchTask": "",
|
||||
"logging": {
|
||||
"engineLogging": false
|
||||
},
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "enable pretty-printer",
|
||||
"ignoreFailures": true
|
||||
}
|
||||
],
|
||||
"pipeTransport": {
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/usr/bin/gdb"
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Admin Service Tests",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "/home/bts/spark/build/gcc/debug/src/server/sparkd/sparkd",
|
||||
"args": [
|
||||
"test",
|
||||
"[admin_service]"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "/home/bts/spark/build/gcc/debug/src/server/sparkd/",
|
||||
"environment": [],
|
||||
"externalConsole": true,
|
||||
"MIMode": "gdb",
|
||||
"preLaunchTask": "",
|
||||
"logging": {
|
||||
"engineLogging": false
|
||||
},
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "enable pretty-printer",
|
||||
"ignoreFailures": true
|
||||
}
|
||||
],
|
||||
"pipeTransport": {
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/usr/bin/gdb"
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Limiter Tests",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "/home/bts/spark/build/gcc/debug/src/server/sparkd/sparkd",
|
||||
"args": [
|
||||
"test",
|
||||
"[limiter]"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "/home/bts/spark/build/gcc/debug/src/server/sparkd/",
|
||||
"environment": [],
|
||||
"externalConsole": true,
|
||||
"MIMode": "gdb",
|
||||
"preLaunchTask": "",
|
||||
"logging": {
|
||||
"engineLogging": false
|
||||
},
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "enable pretty-printer",
|
||||
"ignoreFailures": true
|
||||
}
|
||||
],
|
||||
"pipeTransport": {
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/usr/bin/gdb"
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "MD Tests",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "/home/bts/spark/build/gcc/debug/server/sparkd",
|
||||
"args": [
|
||||
"test",
|
||||
"[algo]"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "/home/bts/spark/build/gcc/debug/server/",
|
||||
"environment": [],
|
||||
"externalConsole": true,
|
||||
"MIMode": "gdb",
|
||||
"preLaunchTask": "",
|
||||
"logging": {
|
||||
"engineLogging": false
|
||||
},
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "-enable-pretty-printing",
|
||||
"ignoreFailures": true
|
||||
},
|
||||
{
|
||||
"description": "Skip STL",
|
||||
"text": "skip -gfi /usr/include/c++/7/bits/*.h",
|
||||
"ignoreFailures": true
|
||||
}
|
||||
],
|
||||
"pipeTransport": {
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/usr/bin/gdb"
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "SparkVM attach",
|
||||
"type": "cppdbg",
|
||||
"request": "attach",
|
||||
"program": "/home/bts/spark/build/gcc/debug/src/server/sparkd/sparkd",
|
||||
"processId": "${command:pickRemoteProcess}",
|
||||
"MIMode": "gdb",
|
||||
"pipeTransport": {
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/usr/bin/gdb"
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Python",
|
||||
"type": "python",
|
||||
"request": "launch",
|
||||
"stopOnEntry": false,
|
||||
"python": "${command:python.interpreterPath}",
|
||||
"program": "${file}",
|
||||
"cwd": "${workspaceRoot}",
|
||||
"env": {},
|
||||
"envFile": "${workspaceRoot}/.env",
|
||||
"args": [
|
||||
"DEBUG"
|
||||
],
|
||||
"debugOptions": [
|
||||
"WaitOnAbnormalExit",
|
||||
"WaitOnNormalExit",
|
||||
"RedirectOutput"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": ".NET Core Remote Attach",
|
||||
"type": "coreclr",
|
||||
"request": "attach",
|
||||
"processId": "${command:pickRemoteProcess}",
|
||||
"pipeTransport": {
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/home/bts/vsdbg/vsdbg",
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"quoteArgs": true
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
},
|
||||
"justMyCode": true
|
||||
},
|
||||
{
|
||||
"name": ".NET Core Remote Launch",
|
||||
"type": "coreclr",
|
||||
"request": "launch",
|
||||
"program": "/usr/bin/dotnet",
|
||||
"args": [
|
||||
"sparkcmd.dll",
|
||||
"test",
|
||||
"test_join_create_and_takeout_market"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "/home/bts/spark/build/gcc/debug/server",
|
||||
"pipeTransport": {
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/home/bts/vsdbg/vsdbg",
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"quoteArgs": true
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
},
|
||||
"justMyCode": false
|
||||
},
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,941 @@
|
||||
{
|
||||
"$schema": "vscode://schemas/color-theme",
|
||||
"type": "dark",
|
||||
"colors": {
|
||||
"activityBar.background": "#111111",
|
||||
"activityBar.border": "#111111",
|
||||
"activityBar.foreground": "#888888",
|
||||
"activityBarBadge.background": "#88cc44",
|
||||
"activityBarBadge.foreground": "#222222",
|
||||
"badge.background": "#88cc44",
|
||||
"badge.foreground": "#222222",
|
||||
"button.background": "#333333",
|
||||
"button.foreground": "#888888",
|
||||
"button.hoverBackground": "#222222",
|
||||
"debugExceptionWidget.background": "#333333",
|
||||
"debugExceptionWidget.border": "#222222",
|
||||
"debugToolBar.background": "#111111",
|
||||
"diffEditor.insertedTextBackground": "#ffdd440c",
|
||||
"diffEditor.insertedTextBorder": "#ffdd44",
|
||||
"diffEditor.removedTextBackground": "#88bbff0c",
|
||||
"diffEditor.removedTextBorder": "#88bbff",
|
||||
"dropdown.background": "#222222",
|
||||
"dropdown.border": "#222222",
|
||||
"dropdown.foreground": "#888888",
|
||||
"editor.background": "#222222",
|
||||
"editor.findMatchBackground": "#44446655",
|
||||
"editor.findMatchHighlightBackground": "#444466aa",
|
||||
"editor.foreground": "#ffffff",
|
||||
"editor.hoverHighlightBackground": "#44446655",
|
||||
"editor.inactiveSelectionBackground": "#44446655",
|
||||
"editor.lineHighlightBackground": "#00000066",
|
||||
"editor.lineHighlightBorder": "#00000000",
|
||||
"editor.rangeHighlightBackground": "#333333",
|
||||
"editor.selectionBackground": "#444466",
|
||||
"editor.selectionHighlightBackground": "#44446655",
|
||||
"editor.wordHighlightBackground": "#44446655",
|
||||
"editor.wordHighlightStrongBackground": "#44446655",
|
||||
"editorBracketMatch.background": "#222222",
|
||||
"editorBracketMatch.border": "#666666",
|
||||
"editorCodeLens.foreground": "#666666",
|
||||
"editorCursor.foreground": "#ffffff",
|
||||
"editorError.foreground": "#ee5500",
|
||||
"editorGroup.border": "#111111",
|
||||
"editorGroup.dropBackground": "#111111bb",
|
||||
"editorGroupHeader.noTabsBackground": "#111111",
|
||||
"editorGroupHeader.tabsBackground": "#111111",
|
||||
"editorGroupHeader.tabsBorder": "#222222",
|
||||
"editorGutter.addedBackground": "#ffdd44",
|
||||
"editorGutter.background": "#222222",
|
||||
"editorGutter.deletedBackground": "#88bbff",
|
||||
"editorGutter.modifiedBackground": "#88bbff",
|
||||
"editorHoverWidget.background": "#333333",
|
||||
"editorHoverWidget.border": "#222222",
|
||||
"editorIndentGuide.background": "#333333",
|
||||
"editorLineNumber.foreground": "#555555",
|
||||
"editorLink.activeForeground": "#bba0ff",
|
||||
"editorMarkerNavigation.background": "#333333",
|
||||
"editorMarkerNavigationError.background": "#88bbff",
|
||||
"editorMarkerNavigationWarning.background": "#88bbff",
|
||||
"editorOverviewRuler.addedForeground": "#ffdd44",
|
||||
"editorOverviewRuler.border": "#222222",
|
||||
"editorOverviewRuler.currentContentForeground": "#333333",
|
||||
"editorOverviewRuler.deletedForeground": "#88bbff",
|
||||
"editorOverviewRuler.errorForeground": "#88bbff",
|
||||
"editorOverviewRuler.findMatchForeground": "#555555",
|
||||
"editorOverviewRuler.incomingContentForeground": "#333333",
|
||||
"editorOverviewRuler.infoForeground": "#bba0ff",
|
||||
"editorOverviewRuler.modifiedForeground": "#88bbff",
|
||||
"editorOverviewRuler.rangeHighlightForeground": "#333333",
|
||||
"editorOverviewRuler.selectionHighlightForeground": "#555555",
|
||||
"editorOverviewRuler.warningForeground": "#88bbff",
|
||||
"editorOverviewRuler.wordHighlightForeground": "#333333",
|
||||
"editorOverviewRuler.wordHighlightStrongForeground": "#555555",
|
||||
"editorRuler.foreground": "#ffffff",
|
||||
"editorSuggestWidget.background": "#333333",
|
||||
"editorSuggestWidget.border": "#333333",
|
||||
"editorSuggestWidget.foreground": "#888888",
|
||||
"editorSuggestWidget.highlightForeground": "#ffffff",
|
||||
"editorSuggestWidget.selectedBackground": "#666666",
|
||||
"editorWarning.border": "#00000000",
|
||||
"editorWarning.foreground": "#88bbff",
|
||||
"editorWhitespace.foreground": "#333333",
|
||||
"editorWidget.background": "#333333",
|
||||
"editorWidget.border": "#333333",
|
||||
"errorForeground": "#88bbff",
|
||||
"extensionButton.prominentBackground": "#333333",
|
||||
"extensionButton.prominentForeground": "#ffffff",
|
||||
"extensionButton.prominentHoverBackground": "#555555",
|
||||
"focusBorder": "#666666",
|
||||
"foreground": "#ffffff",
|
||||
"gitDecoration.modifiedResourceForeground": "#cccccc",
|
||||
"gitDecoration.untrackedResourceForeground": "#cccccc",
|
||||
"input.background": "#333333",
|
||||
"input.border": "#333333",
|
||||
"input.foreground": "#ffffff",
|
||||
"input.placeholderForeground": "#555555",
|
||||
"inputOption.activeBorder": "#555555",
|
||||
"inputValidation.errorBackground": "#333333",
|
||||
"inputValidation.errorBorder": "#88bbff",
|
||||
"inputValidation.infoBackground": "#333333",
|
||||
"inputValidation.infoBorder": "#bba0ff",
|
||||
"inputValidation.warningBackground": "#333333",
|
||||
"inputValidation.warningBorder": "#88bbff",
|
||||
"list.activeSelectionBackground": "#111111",
|
||||
"list.activeSelectionForeground": "#ffffff",
|
||||
"list.dropBackground": "#111111bf",
|
||||
"list.focusBackground": "#222222",
|
||||
"list.focusForeground": "#ffffff",
|
||||
"list.highlightForeground": "#ffffff",
|
||||
"list.hoverBackground": "#333333",
|
||||
"list.hoverForeground": "#ffffff",
|
||||
"list.inactiveSelectionBackground": "#000000",
|
||||
"list.inactiveSelectionForeground": "#ffffff",
|
||||
"menu.background": "#333333",
|
||||
"menu.foreground": "#ffffff",
|
||||
"merge.border": "#222222",
|
||||
"merge.currentContentBackground": "#333333",
|
||||
"merge.currentHeaderBackground": "#555555",
|
||||
"merge.incomingContentBackground": "#555555",
|
||||
"merge.incomingHeaderBackground": "#666666",
|
||||
"panel.background": "#111111",
|
||||
"panel.border": "#111111",
|
||||
"panelTitle.activeBorder": "#ffffff",
|
||||
"panelTitle.activeForeground": "#ffffff",
|
||||
"panelTitle.inactiveForeground": "#888888",
|
||||
"peekView.border": "#222222",
|
||||
"peekViewEditor.background": "#333333",
|
||||
"peekViewEditor.matchHighlightBackground": "#555555",
|
||||
"peekViewEditorGutter.background": "#333333",
|
||||
"peekViewResult.background": "#333333",
|
||||
"peekViewResult.fileForeground": "#888888",
|
||||
"peekViewResult.lineForeground": "#888888",
|
||||
"peekViewResult.matchHighlightBackground": "#555555",
|
||||
"peekViewResult.selectionBackground": "#333333",
|
||||
"peekViewResult.selectionForeground": "#ffffff",
|
||||
"peekViewTitle.background": "#333333",
|
||||
"peekViewTitleDescription.foreground": "#888888",
|
||||
"peekViewTitleLabel.foreground": "#ffffff",
|
||||
"pickerGroup.border": "#222222",
|
||||
"pickerGroup.foreground": "#555555",
|
||||
"progressBar.background": "#333333",
|
||||
"scrollbar.shadow": "#191919",
|
||||
"scrollbarSlider.activeBackground": "#ffffff12",
|
||||
"scrollbarSlider.background": "#ffffff12",
|
||||
"scrollbarSlider.hoverBackground": "#ffffff12",
|
||||
"selection.background": "#2255aa",
|
||||
"sideBar.background": "#111111",
|
||||
"sideBar.border": "#111111",
|
||||
"sideBar.foreground": "#888888",
|
||||
"sideBarSectionHeader.background": "#111111",
|
||||
"sideBarSectionHeader.foreground": "#666666",
|
||||
"sideBarTitle.foreground": "#555555",
|
||||
"statusBar.background": "#111111",
|
||||
"statusBar.border": "#111111",
|
||||
"statusBar.debuggingBackground": "#666666",
|
||||
"statusBar.debuggingForeground": "#ffffff",
|
||||
"statusBar.foreground": "#666666",
|
||||
"statusBar.noFolderBackground": "#111111",
|
||||
"statusBar.noFolderForeground": "#666666",
|
||||
"statusBarItem.activeBackground": "#222222",
|
||||
"statusBarItem.hoverBackground": "#222222",
|
||||
"statusBarItem.prominentBackground": "#333333",
|
||||
"statusBarItem.prominentHoverBackground": "#444444",
|
||||
"tab.activeBackground": "#222222",
|
||||
"tab.border": "#111111",
|
||||
"tab.inactiveBackground": "#111111",
|
||||
"tab.inactiveForeground": "#888888",
|
||||
"tab.unfocusedActiveBorder": "#888888",
|
||||
"tab.unfocusedActiveForeground": "#888888",
|
||||
"tab.unfocusedInactiveForeground": "#888888",
|
||||
"terminal.ansiBlack": "#333333",
|
||||
"terminal.ansiBlue": "#88bbff",
|
||||
"terminal.ansiBrightBlack": "#666666",
|
||||
"terminal.ansiBrightBlue": "#88bbff",
|
||||
"terminal.ansiBrightCyan": "#bba0ff",
|
||||
"terminal.ansiBrightGreen": "#ffdd44",
|
||||
"terminal.ansiBrightMagenta": "#88bbff",
|
||||
"terminal.ansiBrightRed": "#88bbff",
|
||||
"terminal.ansiBrightWhite": "#ffffff",
|
||||
"terminal.ansiBrightYellow": "#88cc44",
|
||||
"terminal.ansiCyan": "#bba0ff",
|
||||
"terminal.ansiGreen": "#ffdd44",
|
||||
"terminal.ansiMagenta": "#88bbff",
|
||||
"terminal.ansiRed": "#88bbff",
|
||||
"terminal.ansiWhite": "#ffffff",
|
||||
"terminal.ansiYellow": "#88cc44",
|
||||
"terminal.background": "#151515",
|
||||
"terminal.foreground": "#ffffff",
|
||||
"titleBar.activeBackground": "#111111",
|
||||
"titleBar.activeForeground": "#888888",
|
||||
"titleBar.inactiveBackground": "#111111",
|
||||
"titleBar.inactiveForeground": "#555555",
|
||||
"walkThrough.embeddedEditorBackground": "#111111",
|
||||
"widget.shadow": "#111111",
|
||||
//"activityBar.activeBorder": "#888888",
|
||||
//"activityBar.dropBorder": "#888888",
|
||||
//"activityBar.inactiveForeground": "#88888866",
|
||||
//"banner.background": "#111111",
|
||||
//"banner.foreground": "#ffffff",
|
||||
//"banner.iconForeground": "#3794ff",
|
||||
//"bookmarks.lineBackground": "#00000000",
|
||||
//"bookmarks.lineBorder": "#00000000",
|
||||
//"bookmarks.overviewRuler": "#157efb88",
|
||||
//"breadcrumb.activeSelectionForeground": "#ffffff",
|
||||
//"breadcrumb.background": "#222222",
|
||||
//"breadcrumb.focusForeground": "#ffffff",
|
||||
//"breadcrumb.foreground": "#ffffffcc",
|
||||
//"breadcrumbPicker.background": "#333333",
|
||||
//"button.secondaryBackground": "#3a3d41",
|
||||
//"button.secondaryForeground": "#ffffff",
|
||||
//"button.secondaryHoverBackground": "#45494e",
|
||||
//"charts.blue": "#3794ff",
|
||||
//"charts.foreground": "#ffffff",
|
||||
//"charts.green": "#89d185",
|
||||
//"charts.lines": "#ffffff80",
|
||||
//"charts.orange": "#d18616",
|
||||
//"charts.purple": "#b180d7",
|
||||
//"charts.red": "#ee5500",
|
||||
//"charts.yellow": "#88bbff",
|
||||
//"checkbox.background": "#222222",
|
||||
//"checkbox.border": "#222222",
|
||||
//"checkbox.foreground": "#888888",
|
||||
//"debugConsole.errorForeground": "#88bbff",
|
||||
//"debugConsole.infoForeground": "#3794ff",
|
||||
//"debugConsole.sourceForeground": "#ffffff",
|
||||
//"debugConsole.warningForeground": "#88bbff",
|
||||
//"debugConsoleInputIcon.foreground": "#ffffff",
|
||||
//"debugIcon.breakpointCurrentStackframeForeground": "#ffcc00",
|
||||
//"debugIcon.breakpointDisabledForeground": "#848484",
|
||||
//"debugIcon.breakpointForeground": "#e51400",
|
||||
//"debugIcon.breakpointStackframeForeground": "#89d185",
|
||||
//"debugIcon.breakpointUnverifiedForeground": "#848484",
|
||||
//"debugIcon.continueForeground": "#75beff",
|
||||
//"debugIcon.disconnectForeground": "#f48771",
|
||||
//"debugIcon.pauseForeground": "#75beff",
|
||||
//"debugIcon.restartForeground": "#89d185",
|
||||
//"debugIcon.startForeground": "#89d185",
|
||||
//"debugIcon.stepBackForeground": "#75beff",
|
||||
//"debugIcon.stepIntoForeground": "#75beff",
|
||||
//"debugIcon.stepOutForeground": "#75beff",
|
||||
//"debugIcon.stepOverForeground": "#75beff",
|
||||
//"debugIcon.stopForeground": "#f48771",
|
||||
//"debugTokenExpression.boolean": "#4e94ce",
|
||||
//"debugTokenExpression.error": "#f48771",
|
||||
//"debugTokenExpression.name": "#c586c0",
|
||||
//"debugTokenExpression.number": "#b5cea8",
|
||||
//"debugTokenExpression.string": "#ce9178",
|
||||
//"debugTokenExpression.value": "#cccccc99",
|
||||
//"debugView.exceptionLabelBackground": "#6c2022",
|
||||
//"debugView.exceptionLabelForeground": "#ffffff",
|
||||
//"debugView.stateLabelBackground": "#88888844",
|
||||
//"debugView.stateLabelForeground": "#ffffff",
|
||||
//"debugView.valueChangedHighlight": "#569cd6",
|
||||
//"descriptionForeground": "#ffffffb3",
|
||||
//"diffEditor.diagonalFill": "#cccccc33",
|
||||
//"editor.findRangeHighlightBackground": "#3a3d4166",
|
||||
//"editor.focusedStackFrameHighlightBackground": "#7abd7a4d",
|
||||
//"editor.foldBackground": "#4444664d",
|
||||
//"editor.inlineValuesBackground": "#ffc80033",
|
||||
//"editor.inlineValuesForeground": "#ffffff80",
|
||||
//"editor.linkedEditingBackground": "#ff00004d",
|
||||
//"editor.snippetFinalTabstopHighlightBorder": "#525252",
|
||||
//"editor.snippetTabstopHighlightBackground": "#7c7c7c4d",
|
||||
//"editor.stackFrameHighlightBackground": "#ffff0033",
|
||||
//"editor.symbolHighlightBackground": "#444466aa",
|
||||
//"editorActiveLineNumber.foreground": "#c6c6c6",
|
||||
//"editorBracketHighlight.foreground1": "#ffd700",
|
||||
//"editorBracketHighlight.foreground2": "#da70d6",
|
||||
//"editorBracketHighlight.foreground3": "#179fff",
|
||||
//"editorBracketHighlight.foreground4": "#00000000",
|
||||
//"editorBracketHighlight.foreground5": "#00000000",
|
||||
//"editorBracketHighlight.foreground6": "#00000000",
|
||||
//"editorBracketHighlight.unexpectedBracket.foreground": "#ff1212cc",
|
||||
//"editorBracketPairGuide.activeBackground1": "#00000000",
|
||||
//"editorBracketPairGuide.activeBackground2": "#00000000",
|
||||
//"editorBracketPairGuide.activeBackground3": "#00000000",
|
||||
//"editorBracketPairGuide.activeBackground4": "#00000000",
|
||||
//"editorBracketPairGuide.activeBackground5": "#00000000",
|
||||
//"editorBracketPairGuide.activeBackground6": "#00000000",
|
||||
//"editorBracketPairGuide.background1": "#00000000",
|
||||
//"editorBracketPairGuide.background2": "#00000000",
|
||||
//"editorBracketPairGuide.background3": "#00000000",
|
||||
//"editorBracketPairGuide.background4": "#00000000",
|
||||
//"editorBracketPairGuide.background5": "#00000000",
|
||||
//"editorBracketPairGuide.background6": "#00000000",
|
||||
//"editorGhostText.foreground": "#ffffff56",
|
||||
//"editorGutter.commentRangeForeground": "#c5c5c5",
|
||||
//"editorGutter.foldingControlForeground": "#c5c5c5",
|
||||
//"editorHint.foreground": "#eeeeeeb3",
|
||||
//"editorHoverWidget.foreground": "#ffffff",
|
||||
//"editorHoverWidget.highlightForeground": "#ffffff",
|
||||
//"editorHoverWidget.statusBarBackground": "#3d3d3d",
|
||||
//"editorIndentGuide.activeBackground": "#333333",
|
||||
//"editorInfo.foreground": "#3794ff",
|
||||
//"editorInlayHint.background": "#88cc4499",
|
||||
//"editorInlayHint.foreground": "#222222cc",
|
||||
//"editorInlayHint.parameterBackground": "#88cc4499",
|
||||
//"editorInlayHint.parameterForeground": "#222222cc",
|
||||
//"editorInlayHint.typeBackground": "#88cc4499",
|
||||
//"editorInlayHint.typeForeground": "#222222cc",
|
||||
//"editorLightBulb.foreground": "#ffcc00",
|
||||
//"editorLightBulbAutoFix.foreground": "#75beff",
|
||||
//"editorLineNumber.activeForeground": "#c6c6c6",
|
||||
//"editorMarkerNavigationError.headerBackground": "#88bbff1a",
|
||||
//"editorMarkerNavigationInfo.background": "#3794ff",
|
||||
//"editorMarkerNavigationInfo.headerBackground": "#3794ff1a",
|
||||
//"editorMarkerNavigationWarning.headerBackground": "#88bbff1a",
|
||||
//"editorOverviewRuler.bracketMatchForeground": "#a0a0a0",
|
||||
//"editorOverviewRuler.commonContentForeground": "#60606066",
|
||||
//"editorOverviewRuler.unicodeForeground": "#d186167e",
|
||||
//"editorPane.background": "#222222",
|
||||
//"editorSuggestWidget.focusHighlightForeground": "#ffffff",
|
||||
//"editorSuggestWidget.selectedForeground": "#ffffff",
|
||||
//"editorSuggestWidgetStatus.foreground": "#88888880",
|
||||
//"editorUnicodeHighlight.border": "#bd9b03",
|
||||
//"editorUnnecessaryCode.opacity": "#000000aa",
|
||||
//"editorWidget.foreground": "#ffffff",
|
||||
//"extensionBadge.remoteBackground": "#88cc44",
|
||||
//"extensionBadge.remoteForeground": "#222222",
|
||||
//"extensionIcon.preReleaseForeground": "#1d9271",
|
||||
//"extensionIcon.starForeground": "#ff8e00",
|
||||
//"extensionIcon.verifiedForeground": "#3794ff",
|
||||
//"gitDecoration.addedResourceForeground": "#81b88b",
|
||||
//"gitDecoration.conflictingResourceForeground": "#e4676b",
|
||||
//"gitDecoration.deletedResourceForeground": "#c74e39",
|
||||
//"gitDecoration.ignoredResourceForeground": "#8c8c8c",
|
||||
//"gitDecoration.renamedResourceForeground": "#73c991",
|
||||
//"gitDecoration.stageDeletedResourceForeground": "#c74e39",
|
||||
//"gitDecoration.stageModifiedResourceForeground": "#e2c08d",
|
||||
//"gitDecoration.submoduleResourceForeground": "#8db9e2",
|
||||
//"gitlens.closedAutolinkedIssueIconColor": "#a371f7",
|
||||
//"gitlens.closedPullRequestIconColor": "#f85149",
|
||||
//"gitlens.decorations.addedForegroundColor": "#81b88b",
|
||||
//"gitlens.decorations.branchAheadForegroundColor": "#35b15e",
|
||||
//"gitlens.decorations.branchBehindForegroundColor": "#b15e35",
|
||||
//"gitlens.decorations.branchDivergedForegroundColor": "#d8af1b",
|
||||
//"gitlens.decorations.branchMissingUpstreamForegroundColor": "#c74e39",
|
||||
//"gitlens.decorations.branchUnpublishedForegroundColor": "#35b15e",
|
||||
//"gitlens.decorations.branchUpToDateForegroundColor": "#888888",
|
||||
//"gitlens.decorations.copiedForegroundColor": "#73c991",
|
||||
//"gitlens.decorations.deletedForegroundColor": "#c74e39",
|
||||
//"gitlens.decorations.ignoredForegroundColor": "#8c8c8c",
|
||||
//"gitlens.decorations.modifiedForegroundColor": "#cccccc",
|
||||
//"gitlens.decorations.renamedForegroundColor": "#73c991",
|
||||
//"gitlens.decorations.untrackedForegroundColor": "#cccccc",
|
||||
//"gitlens.gutterBackgroundColor": "#ffffff13",
|
||||
//"gitlens.gutterForegroundColor": "#bebebe",
|
||||
//"gitlens.gutterUncommittedForegroundColor": "#00bcf299",
|
||||
//"gitlens.lineHighlightBackgroundColor": "#00bcf233",
|
||||
//"gitlens.lineHighlightOverviewRulerColor": "#00bcf299",
|
||||
//"gitlens.mergedPullRequestIconColor": "#a371f7",
|
||||
//"gitlens.openAutolinkedIssueIconColor": "#3fb950",
|
||||
//"gitlens.openPullRequestIconColor": "#3fb950",
|
||||
//"gitlens.trailingLineBackgroundColor": "#00000000",
|
||||
//"gitlens.trailingLineForegroundColor": "#99999959",
|
||||
//"gitlens.unpublishedCommitIconColor": "#35b15e",
|
||||
//"gitlens.unpulledChangesIconColor": "#b15e35",
|
||||
//"gitlens.unpushlishedChangesIconColor": "#35b15e",
|
||||
//"icon.foreground": "#c5c5c5",
|
||||
//"inputOption.activeBackground": "#66666666",
|
||||
//"inputOption.activeForeground": "#ffffff",
|
||||
//"inputOption.hoverBackground": "#5a5d5e80",
|
||||
//"interactive.activeCodeBorder": "#222222",
|
||||
//"interactive.inactiveCodeBorder": "#000000",
|
||||
//"keybindingLabel.background": "#8080802b",
|
||||
//"keybindingLabel.border": "#33333399",
|
||||
//"keybindingLabel.bottomBorder": "#44444499",
|
||||
//"keybindingLabel.foreground": "#cccccc",
|
||||
//"keybindingTable.headerBackground": "#ffffff0a",
|
||||
//"keybindingTable.rowsBackground": "#ffffff0a",
|
||||
//"list.deemphasizedForeground": "#8c8c8c",
|
||||
//"list.errorForeground": "#f88070",
|
||||
//"list.filterMatchBackground": "#444466aa",
|
||||
//"list.focusHighlightForeground": "#ffffff",
|
||||
//"list.focusOutline": "#666666",
|
||||
//"list.invalidItemForeground": "#b89500",
|
||||
//"list.warningForeground": "#cca700",
|
||||
//"listFilterWidget.background": "#653723",
|
||||
//"listFilterWidget.noMatchesOutline": "#be1100",
|
||||
//"listFilterWidget.outline": "#00000000",
|
||||
//"menu.selectionBackground": "#111111",
|
||||
//"menu.selectionForeground": "#ffffff",
|
||||
//"menu.separatorBackground": "#bbbbbb",
|
||||
//"menubar.selectionBackground": "#ffffff1a",
|
||||
//"menubar.selectionForeground": "#888888",
|
||||
//"merge.commonContentBackground": "#60606029",
|
||||
//"merge.commonHeaderBackground": "#60606066",
|
||||
//"minimap.errorHighlight": "#ff1212b3",
|
||||
//"minimap.findMatchHighlight": "#d18616",
|
||||
//"minimap.foregroundOpacity": "#000000",
|
||||
//"minimap.selectionHighlight": "#264f78",
|
||||
//"minimap.selectionOccurrenceHighlight": "#676767",
|
||||
//"minimap.unicodeHighlight": "#d18616",
|
||||
//"minimap.warningHighlight": "#88bbff",
|
||||
//"minimapGutter.addedBackground": "#587c0c",
|
||||
//"minimapGutter.deletedBackground": "#94151b",
|
||||
//"minimapGutter.modifiedBackground": "#0c7d9d",
|
||||
//"minimapSlider.activeBackground": "#ffffff09",
|
||||
//"minimapSlider.background": "#ffffff09",
|
||||
//"minimapSlider.hoverBackground": "#ffffff09",
|
||||
//"notebook.cellBorderColor": "#000000",
|
||||
//"notebook.cellEditorBackground": "#111111",
|
||||
//"notebook.cellInsertionIndicator": "#666666",
|
||||
//"notebook.cellStatusBarItemHoverBackground": "#ffffff26",
|
||||
//"notebook.cellToolbarSeparator": "#80808059",
|
||||
//"notebook.focusedCellBorder": "#666666",
|
||||
//"notebook.focusedEditorBorder": "#666666",
|
||||
//"notebook.inactiveFocusedCellBorder": "#000000",
|
||||
//"notebook.selectedCellBackground": "#000000",
|
||||
//"notebook.selectedCellBorder": "#000000",
|
||||
//"notebook.symbolHighlightBackground": "#ffffff0b",
|
||||
//"notebookScrollbarSlider.activeBackground": "#ffffff12",
|
||||
//"notebookScrollbarSlider.background": "#ffffff12",
|
||||
//"notebookScrollbarSlider.hoverBackground": "#ffffff12",
|
||||
//"notebookStatusErrorIcon.foreground": "#88bbff",
|
||||
//"notebookStatusRunningIcon.foreground": "#ffffff",
|
||||
//"notebookStatusSuccessIcon.foreground": "#89d185",
|
||||
//"notificationCenterHeader.background": "#424242",
|
||||
//"notificationLink.foreground": "#3794ff",
|
||||
//"notifications.background": "#333333",
|
||||
//"notifications.border": "#424242",
|
||||
//"notifications.foreground": "#ffffff",
|
||||
//"notificationsErrorIcon.foreground": "#ee5500",
|
||||
//"notificationsInfoIcon.foreground": "#3794ff",
|
||||
//"notificationsWarningIcon.foreground": "#88bbff",
|
||||
//"panel.dropBorder": "#ffffff",
|
||||
//"panelSection.border": "#111111",
|
||||
//"panelSection.dropBackground": "#111111bb",
|
||||
//"panelSectionHeader.background": "#80808033",
|
||||
//"ports.iconRunningProcessForeground": "#88cc44",
|
||||
//"problemsErrorIcon.foreground": "#ee5500",
|
||||
//"problemsInfoIcon.foreground": "#3794ff",
|
||||
//"problemsWarningIcon.foreground": "#88bbff",
|
||||
//"quickInput.background": "#333333",
|
||||
//"quickInput.foreground": "#ffffff",
|
||||
//"quickInputList.focusBackground": "#111111",
|
||||
//"quickInputList.focusForeground": "#ffffff",
|
||||
//"quickInputTitle.background": "#ffffff1b",
|
||||
//"sash.hoverBorder": "#666666",
|
||||
//"scm.providerBorder": "#454545",
|
||||
//"searchEditor.findMatchBackground": "#44446670",
|
||||
//"searchEditor.textInputBorder": "#333333",
|
||||
//"settings.checkboxBackground": "#222222",
|
||||
//"settings.checkboxBorder": "#222222",
|
||||
//"settings.checkboxForeground": "#888888",
|
||||
//"settings.dropdownBackground": "#222222",
|
||||
//"settings.dropdownBorder": "#222222",
|
||||
//"settings.dropdownForeground": "#888888",
|
||||
//"settings.dropdownListBorder": "#333333",
|
||||
//"settings.focusedRowBackground": "#80808024",
|
||||
//"settings.focusedRowBorder": "#ffffff1f",
|
||||
//"settings.headerForeground": "#e7e7e7",
|
||||
//"settings.modifiedItemIndicator": "#0c7d9d",
|
||||
//"settings.numberInputBackground": "#333333",
|
||||
//"settings.numberInputBorder": "#333333",
|
||||
//"settings.numberInputForeground": "#ffffff",
|
||||
//"settings.rowHoverBackground": "#80808012",
|
||||
//"settings.textInputBackground": "#333333",
|
||||
//"settings.textInputBorder": "#333333",
|
||||
//"settings.textInputForeground": "#ffffff",
|
||||
//"sideBar.dropBackground": "#111111bb",
|
||||
//"sideBySideEditor.horizontalBorder": "#111111",
|
||||
//"sideBySideEditor.verticalBorder": "#111111",
|
||||
//"statusBar.debuggingBorder": "#111111",
|
||||
//"statusBar.noFolderBorder": "#111111",
|
||||
//"statusBarItem.compactHoverBackground": "#ffffff33",
|
||||
//"statusBarItem.errorBackground": "#0066eb",
|
||||
//"statusBarItem.errorForeground": "#ffffff",
|
||||
//"statusBarItem.prominentForeground": "#666666",
|
||||
//"statusBarItem.remoteBackground": "#88cc44",
|
||||
//"statusBarItem.remoteForeground": "#222222",
|
||||
//"statusBarItem.warningBackground": "#0066eb",
|
||||
//"statusBarItem.warningForeground": "#ffffff",
|
||||
//"symbolIcon.arrayForeground": "#ffffff",
|
||||
//"symbolIcon.booleanForeground": "#ffffff",
|
||||
//"symbolIcon.classForeground": "#ee9d28",
|
||||
//"symbolIcon.colorForeground": "#ffffff",
|
||||
//"symbolIcon.constantForeground": "#ffffff",
|
||||
//"symbolIcon.constructorForeground": "#b180d7",
|
||||
//"symbolIcon.enumeratorForeground": "#ee9d28",
|
||||
//"symbolIcon.enumeratorMemberForeground": "#75beff",
|
||||
//"symbolIcon.eventForeground": "#ee9d28",
|
||||
//"symbolIcon.fieldForeground": "#75beff",
|
||||
//"symbolIcon.fileForeground": "#ffffff",
|
||||
//"symbolIcon.folderForeground": "#ffffff",
|
||||
//"symbolIcon.functionForeground": "#b180d7",
|
||||
//"symbolIcon.interfaceForeground": "#75beff",
|
||||
//"symbolIcon.keyForeground": "#ffffff",
|
||||
//"symbolIcon.keywordForeground": "#ffffff",
|
||||
//"symbolIcon.methodForeground": "#b180d7",
|
||||
//"symbolIcon.moduleForeground": "#ffffff",
|
||||
//"symbolIcon.namespaceForeground": "#ffffff",
|
||||
//"symbolIcon.nullForeground": "#ffffff",
|
||||
//"symbolIcon.numberForeground": "#ffffff",
|
||||
//"symbolIcon.objectForeground": "#ffffff",
|
||||
//"symbolIcon.operatorForeground": "#ffffff",
|
||||
//"symbolIcon.packageForeground": "#ffffff",
|
||||
//"symbolIcon.propertyForeground": "#ffffff",
|
||||
//"symbolIcon.referenceForeground": "#ffffff",
|
||||
//"symbolIcon.snippetForeground": "#ffffff",
|
||||
//"symbolIcon.stringForeground": "#ffffff",
|
||||
//"symbolIcon.structForeground": "#ffffff",
|
||||
//"symbolIcon.textForeground": "#ffffff",
|
||||
//"symbolIcon.typeParameterForeground": "#ffffff",
|
||||
//"symbolIcon.unitForeground": "#ffffff",
|
||||
//"symbolIcon.variableForeground": "#75beff",
|
||||
//"tab.activeForeground": "#ffffff",
|
||||
//"tab.activeModifiedBorder": "#3399cc",
|
||||
//"tab.inactiveModifiedBorder": "#3399cc80",
|
||||
//"tab.lastPinnedBorder": "#585858",
|
||||
//"tab.unfocusedActiveBackground": "#222222",
|
||||
//"tab.unfocusedActiveModifiedBorder": "#3399cc80",
|
||||
//"tab.unfocusedInactiveBackground": "#111111",
|
||||
//"tab.unfocusedInactiveModifiedBorder": "#3399cc40",
|
||||
//"terminal.border": "#111111",
|
||||
//"terminal.dropBackground": "#111111bb",
|
||||
//"terminal.selectionBackground": "#ffffff40",
|
||||
//"testing.iconErrored": "#f14c4c",
|
||||
//"testing.iconFailed": "#f14c4c",
|
||||
//"testing.iconPassed": "#73c991",
|
||||
//"testing.iconQueued": "#cca700",
|
||||
//"testing.iconSkipped": "#848484",
|
||||
//"testing.iconUnset": "#848484",
|
||||
//"testing.message.error.decorationForeground": "#ee5500",
|
||||
//"testing.message.error.lineBackground": "#ff000033",
|
||||
//"testing.message.info.decorationForeground": "#ffffff80",
|
||||
//"testing.peekBorder": "#ee5500",
|
||||
//"testing.peekHeaderBackground": "#ee55001a",
|
||||
//"testing.runAction": "#73c991",
|
||||
//"textBlockQuote.background": "#7f7f7f1a",
|
||||
//"textBlockQuote.border": "#007acc80",
|
||||
//"textCodeBlock.background": "#0a0a0a66",
|
||||
//"textLink.activeForeground": "#3794ff",
|
||||
//"textLink.foreground": "#3794ff",
|
||||
//"textPreformat.foreground": "#d7ba7d",
|
||||
//"textSeparator.foreground": "#ffffff2e",
|
||||
//"toolbar.activeBackground": "#63666750",
|
||||
//"toolbar.hoverBackground": "#5a5d5e50",
|
||||
//"tree.indentGuidesStroke": "#585858",
|
||||
//"tree.tableColumnsBorder": "#cccccc20",
|
||||
//"tree.tableOddRowsBackground": "#ffffff0a",
|
||||
//"welcomePage.progress.background": "#333333",
|
||||
//"welcomePage.progress.foreground": "#3794ff",
|
||||
//"welcomePage.tileBackground": "#333333",
|
||||
//"welcomePage.tileHoverBackground": "#3d3d3d",
|
||||
//"welcomePage.tileShadow": "#111111",
|
||||
//"activityBar.activeBackground": null,
|
||||
//"activityBar.activeFocusBorder": null,
|
||||
//"button.border": null,
|
||||
//"contrastActiveBorder": null,
|
||||
//"contrastBorder": null,
|
||||
//"debugToolBar.border": null,
|
||||
//"diffEditor.border": null,
|
||||
//"dropdown.listBackground": null,
|
||||
//"editor.findMatchBorder": null,
|
||||
//"editor.findMatchHighlightBorder": null,
|
||||
//"editor.findRangeHighlightBorder": null,
|
||||
//"editor.rangeHighlightBorder": null,
|
||||
//"editor.selectionForeground": null,
|
||||
//"editor.selectionHighlightBorder": null,
|
||||
//"editor.snippetFinalTabstopHighlightBackground": null,
|
||||
//"editor.snippetTabstopHighlightBorder": null,
|
||||
//"editor.symbolHighlightBorder": null,
|
||||
//"editor.wordHighlightBorder": null,
|
||||
//"editor.wordHighlightStrongBorder": null,
|
||||
//"editorCursor.background": null,
|
||||
//"editorError.background": null,
|
||||
//"editorError.border": null,
|
||||
//"editorGhostText.background": null,
|
||||
//"editorGhostText.border": null,
|
||||
//"editorGroup.emptyBackground": null,
|
||||
//"editorGroup.focusedEmptyBorder": null,
|
||||
//"editorGroupHeader.border": null,
|
||||
//"editorHint.border": null,
|
||||
//"editorInfo.background": null,
|
||||
//"editorInfo.border": null,
|
||||
//"editorOverviewRuler.background": null,
|
||||
//"editorSuggestWidget.selectedIconForeground": null,
|
||||
//"editorUnnecessaryCode.border": null,
|
||||
//"editorWarning.background": null,
|
||||
//"editorWidget.resizeBorder": null,
|
||||
//"inputValidation.errorForeground": null,
|
||||
//"inputValidation.infoForeground": null,
|
||||
//"inputValidation.warningForeground": null,
|
||||
//"list.activeSelectionIconForeground": null,
|
||||
//"list.filterMatchBorder": null,
|
||||
//"list.inactiveFocusBackground": null,
|
||||
//"list.inactiveFocusOutline": null,
|
||||
//"list.inactiveSelectionIconForeground": null,
|
||||
//"menu.border": null,
|
||||
//"menu.selectionBorder": null,
|
||||
//"menubar.selectionBorder": null,
|
||||
//"minimap.background": null,
|
||||
//"notebook.cellHoverBackground": null,
|
||||
//"notebook.focusedCellBackground": null,
|
||||
//"notebook.inactiveSelectedCellBorder": null,
|
||||
//"notebook.outputContainerBackgroundColor": null,
|
||||
//"notebook.outputContainerBorderColor": null,
|
||||
//"notificationCenter.border": null,
|
||||
//"notificationCenterHeader.foreground": null,
|
||||
//"notificationToast.border": null,
|
||||
//"panelInput.border": null,
|
||||
//"panelSectionHeader.border": null,
|
||||
//"panelSectionHeader.foreground": null,
|
||||
//"peekViewEditor.matchHighlightBorder": null,
|
||||
//"quickInput.list.focusBackground": null,
|
||||
//"quickInputList.focusIconForeground": null,
|
||||
//"searchEditor.findMatchBorder": null,
|
||||
//"sideBarSectionHeader.border": null,
|
||||
//"tab.activeBorder": null,
|
||||
//"tab.activeBorderTop": null,
|
||||
//"tab.hoverBackground": null,
|
||||
//"tab.hoverBorder": null,
|
||||
//"tab.hoverForeground": null,
|
||||
//"tab.unfocusedActiveBorderTop": null,
|
||||
//"tab.unfocusedHoverBackground": null,
|
||||
//"tab.unfocusedHoverBorder": null,
|
||||
//"tab.unfocusedHoverForeground": null,
|
||||
//"terminal.tab.activeBorder": null,
|
||||
//"terminalCursor.background": null,
|
||||
//"terminalCursor.foreground": null,
|
||||
//"testing.message.info.lineBackground": null,
|
||||
//"titleBar.border": null,
|
||||
//"toolbar.hoverOutline": null,
|
||||
//"welcomePage.background": null,
|
||||
//"window.activeBorder": null,
|
||||
//"window.inactiveBorder": null
|
||||
},
|
||||
"tokenColors": [
|
||||
{
|
||||
"scope": [
|
||||
"variable.language.this"
|
||||
],
|
||||
"settings": {
|
||||
"fontStyle": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "markup.bold",
|
||||
"settings": {
|
||||
"fontStyle": "bold"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"invalid",
|
||||
"markup.italic",
|
||||
"markup.quote"
|
||||
],
|
||||
"settings": {
|
||||
"fontStyle": "italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "markup.underline",
|
||||
"settings": {
|
||||
"fontStyle": "underline"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"source.js.jsx punctuation.section.embedded",
|
||||
"entity.name.tag",
|
||||
"string.other.link.description.title",
|
||||
"support.constant",
|
||||
"support.variable",
|
||||
"support.type",
|
||||
"variable.other.class",
|
||||
"support.class.builtin.js",
|
||||
"support.class.console.js",
|
||||
"meta.property-value",
|
||||
"variable.parameter.keyframe-list",
|
||||
"meta.at-rule.keyframes entity.name.function",
|
||||
"expression.embedded.vue punctuation.definition"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#BBA0FF",
|
||||
"fontStyle": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"entity.other.attribute-name.pseudo-class.css",
|
||||
"entity.name.type.object.console",
|
||||
"variable.language",
|
||||
"variable.parameter.function.language.special.self.python",
|
||||
"storage.type",
|
||||
"entity.other.attribute-name.pseudo-element.css"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#BBA0FF",
|
||||
"fontStyle": "italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"punctuation.definition.string.template"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#BBA0FF",
|
||||
"fontStyle": "bold"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"entity.other.attribute-name.class.css",
|
||||
"entity.other.attribute-name.parent-selector-suffix.css",
|
||||
"entity.other.attribute-name.parent-selector-suffix.css punctuation.definition.entity.css",
|
||||
"meta.definition.function",
|
||||
"markup.underline.link",
|
||||
"markup.inserted",
|
||||
"meta.function-call",
|
||||
"meta.instance.constructor",
|
||||
"meta.attribute-with-value.class string",
|
||||
"string.other.ref",
|
||||
"string.other.restructuredtext.ref",
|
||||
"variable.function",
|
||||
"entity.name.type",
|
||||
"entity.name.function",
|
||||
"variable.other.object.property",
|
||||
"punctuation.separator.key-value",
|
||||
"meta.definition.function.js",
|
||||
"support.class.component.js",
|
||||
"entity.other.inherited-class",
|
||||
"support.class",
|
||||
"support.function.misc",
|
||||
"support.function",
|
||||
"entity.other.attribute-name.id.css",
|
||||
"entity.other.attribute-name.id.css punctuation",
|
||||
"entity.other.attribute-name.class.css punctuation",
|
||||
"meta.function-call support.function.construct",
|
||||
"entity.other.attribute-name"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#FFDD44"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "storage.type.function.arrow",
|
||||
"settings": {
|
||||
"foreground": "#FFDD44",
|
||||
"fontStyle": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"entity.name.section",
|
||||
"constant.numeric.line-number.match.find-in-files",
|
||||
"markup.heading",
|
||||
"markup.changed",
|
||||
"meta.attribute-with-value.id string",
|
||||
"string",
|
||||
"punctuation.definition.string.begin",
|
||||
"punctuation.definition.string.end",
|
||||
"meta.attribute-selector"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#88CC44"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"keyword",
|
||||
"keyword.control",
|
||||
"constant",
|
||||
"constant.numeric",
|
||||
"constant.language",
|
||||
"constant.other.property",
|
||||
"constant.character.escape",
|
||||
"comment keyword.codetag.notation",
|
||||
"keyword.other.template.begin",
|
||||
"keyword.other.template.end",
|
||||
"markup.raw",
|
||||
"markup.deleted",
|
||||
"meta.property-list.css variable.other",
|
||||
"entity.name.constant.preprocessor",
|
||||
"meta.preprocessor",
|
||||
"punctuation.section.embedded",
|
||||
"punctuation.template-string.element.begin",
|
||||
"punctuation.template-string.element.end",
|
||||
"string.quoted.template punctuation.definition.string.begin",
|
||||
"string.quoted.template punctuation.definition.string.end",
|
||||
"meta.paragraph.markdown meta.dummy.line-break",
|
||||
"meta.paragraph.markdown meta.hard-line-break.markdown",
|
||||
"storage",
|
||||
"storage.class.restructuredtext.ref",
|
||||
"string.other.link.title",
|
||||
"string.other.link.description",
|
||||
"string.regexp punctuation.definition.string.begin",
|
||||
"string.regexp punctuation.definition.string.end",
|
||||
"variable.language.arguments",
|
||||
"storage.modifier",
|
||||
"keyword.operator.new",
|
||||
"keyword.operator",
|
||||
"keyword.operator.spread",
|
||||
"punctuation.section.embedded.end.php source.php",
|
||||
"support.function.construct",
|
||||
"meta.at-rule.keyframes",
|
||||
"meta.at-rule.keyframes entity.other.attribute-name"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#88BBFF"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"variable.other.substitution"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#88BBFF",
|
||||
"fontStyle": "bold"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"meta.function-call meta.function-call.arguments",
|
||||
"meta.function-call meta.arguments",
|
||||
"meta.function-call meta.group",
|
||||
"source.json meta.structure.dictionary",
|
||||
"meta.object.member",
|
||||
"punctuation.definition.group",
|
||||
"string.unquoted.label",
|
||||
"variable.other.member",
|
||||
"entity.name.class",
|
||||
"entity.name.namespace",
|
||||
"constant.other",
|
||||
"variable",
|
||||
"variable.other",
|
||||
"variable.other.constant.js",
|
||||
"text.find-in-files",
|
||||
"source",
|
||||
"entity.name.type.module",
|
||||
"source.sql support.function",
|
||||
"support.other.namespace.php"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#FFFFFF",
|
||||
"fontStyle": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"variable.parameter",
|
||||
"parameters variable.function"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#FFFFFF",
|
||||
"fontStyle": "italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"variable.other.property",
|
||||
"support.variable.property",
|
||||
"punctuation.separator.key-value",
|
||||
"meta.object-literal.key",
|
||||
"variable.other.object.property",
|
||||
"variable.object.property",
|
||||
"text.html.basic",
|
||||
"text.html.vue-html",
|
||||
"text.html.php",
|
||||
"text.html.derivative",
|
||||
"punctuation.definition.variable",
|
||||
"punctuation.definition.keyword.scss",
|
||||
"meta.jsx.children.js",
|
||||
"meta.tag.attributes keyword.operator.assignment",
|
||||
"support.type.vendored.property-name.css",
|
||||
"support.type.property-name.json",
|
||||
"variable.other.constant.property"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#BBBBCC"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "meta.property-name support.type",
|
||||
"settings": {
|
||||
"foreground": "#BBBBCC",
|
||||
"fontStyle": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"keyword.other.substitution",
|
||||
"keyword.operator.heading.restructuredtext",
|
||||
"keyword.operator.table.row.restructuredtext",
|
||||
"keyword.operator.table.data.restructuredtext",
|
||||
"punctuation",
|
||||
"markup.ignored",
|
||||
"markup.untracked",
|
||||
"meta.brace.round",
|
||||
"meta.brace.square",
|
||||
"meta.brace.curly",
|
||||
"meta.delimiter.comma.js",
|
||||
"meta.function-call.without-arguments.js",
|
||||
"meta.function-call.method.without-arguments.js",
|
||||
"source.scss",
|
||||
"string source punctuation.section.embedded",
|
||||
"punctuation.definition.tag.begin source",
|
||||
"source.php"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#9999AA"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"comment",
|
||||
"comment punctuation"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#888899",
|
||||
"fontStyle": "italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "token.info-token",
|
||||
"settings": {
|
||||
"foreground": "#6796E6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "token.warn-token",
|
||||
"settings": {
|
||||
"foreground": "#CD9731"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "token.error-token",
|
||||
"settings": {
|
||||
"foreground": "#F44747"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "token.debug-token",
|
||||
"settings": {
|
||||
"foreground": "#B267E6"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"files.associations": {
|
||||
"utility": "cpp",
|
||||
"initializer_list": "cpp",
|
||||
"list": "cpp",
|
||||
"type_traits": "cpp",
|
||||
"vector": "cpp",
|
||||
"xhash": "cpp",
|
||||
"xstring": "cpp",
|
||||
"system_error": "cpp",
|
||||
"array": "cpp",
|
||||
"string_view": "cpp",
|
||||
"xutility": "cpp",
|
||||
"*.ipp": "cpp"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
{
|
||||
// See https://go.microsoft.com/fwlink/?LinkId=733558
|
||||
// for the documentation about the tasks.json format
|
||||
"version": "2.0.0",
|
||||
"tasks": [
|
||||
{
|
||||
"label": "Touch CMakeLists.txt",
|
||||
"type": "process",
|
||||
"promptOnClose": false,
|
||||
"isBackground": true,
|
||||
"command": "touch",
|
||||
"args": ["${workspaceRoot}/CMakeLists.txt"],
|
||||
"problemMatcher": [],
|
||||
"presentation": {
|
||||
"echo": false,
|
||||
"revealProblems": "onProblem",
|
||||
"reveal": "silent",
|
||||
"focus": false,
|
||||
"panel": "shared",
|
||||
"showReuseMessage": false,
|
||||
"clear": true
|
||||
}
|
||||
}
|
||||
],
|
||||
"inputs": [
|
||||
{
|
||||
"id": "build_configuration",
|
||||
"type": "pickString",
|
||||
"default": "debug",
|
||||
"description": "Configuration:",
|
||||
"options": ["debug", "release"]
|
||||
},
|
||||
{
|
||||
"id": "compiler",
|
||||
"type": "pickString",
|
||||
"default": "gcc",
|
||||
"description": "Compiler",
|
||||
"options": ["clang", "gcc"]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
{
|
||||
// Use IntelliSense to learn about possible attributes.
|
||||
// Hover to view descriptions of existing attributes.
|
||||
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"name": "Spark Client",
|
||||
"type": "coreclr",
|
||||
"request": "launch",
|
||||
"program": "${workspaceFolder}/build/Debug/bin/net6.0-windows/Spark.exe",
|
||||
"cwd": "${workspaceFolder}/build/Debug/bin/net6.0-windows",
|
||||
"enableStepFiltering": false,
|
||||
"console": "internalConsole",
|
||||
"stopAtEntry": false
|
||||
},
|
||||
{
|
||||
"name": "Spark Test",
|
||||
"type": "coreclr",
|
||||
"request": "launch",
|
||||
"program": "${workspaceFolder}/build/Debug/bin/net6.0/sparkcmd.exe",
|
||||
"args": ["test", "${input:test}"],
|
||||
"cwd": "${workspaceFolder}/build/Debug/bin/net6.0-windows",
|
||||
"enableStepFiltering": false,
|
||||
"console": "internalConsole",
|
||||
"stopAtEntry": false
|
||||
},
|
||||
{
|
||||
"name": "Attach (.NET Core)",
|
||||
"type": "coreclr",
|
||||
"request": "attach"
|
||||
}
|
||||
],
|
||||
"inputs": [
|
||||
{
|
||||
"id": "test",
|
||||
"description": "The test(s) to run",
|
||||
"type": "promptString"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"cmake.configureOnOpen": false,
|
||||
"workbench.colorTheme": "Default Dark+",
|
||||
"C_Cpp.intelliSenseEngine": "Disabled",
|
||||
"files.associations": {
|
||||
"*.js": "javascript",
|
||||
"*.conf": "jsonc",
|
||||
"array": "cpp",
|
||||
"xtree": "cpp",
|
||||
"chrono": "cpp",
|
||||
"*.ipp": "cpp",
|
||||
"optional": "cpp",
|
||||
"regex": "cpp",
|
||||
"system_error": "cpp",
|
||||
"format": "cpp",
|
||||
"future": "cpp",
|
||||
"istream": "cpp",
|
||||
"memory": "cpp",
|
||||
"tuple": "cpp",
|
||||
"type_traits": "cpp",
|
||||
"utility": "cpp",
|
||||
"variant": "cpp",
|
||||
"xlocmes": "cpp",
|
||||
"xlocmon": "cpp",
|
||||
"xlocnum": "cpp",
|
||||
"xloctime": "cpp",
|
||||
"xutility": "cpp",
|
||||
"xstring": "cpp",
|
||||
"string": "cpp",
|
||||
"cstdint": "cpp"
|
||||
},
|
||||
|
||||
"files.exclude": {
|
||||
"**/.g.cs": true,
|
||||
"**/.g.i.cs": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"version": "2.0.0",
|
||||
"tasks": [
|
||||
{
|
||||
"label": "Build Spark Client",
|
||||
"type": "process",
|
||||
"command": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\Tools\\VsDevCmd.bat",
|
||||
"args": [
|
||||
"-arch=x64",
|
||||
"-host_arch=x64",
|
||||
"&&",
|
||||
"${workspaceRoot}\\tools\\buildspark.cmd"
|
||||
],
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
},
|
||||
"presentation": {
|
||||
"echo": true,
|
||||
"reveal": "always",
|
||||
"focus": false,
|
||||
"panel": "new",
|
||||
"showReuseMessage": false,
|
||||
"clear": false,
|
||||
"close": false
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"label": "Run Spark Client",
|
||||
"type": "process",
|
||||
"command": "${workspaceRoot}\\build\\Debug\\bin\\net6.0-windows\\Spark.exe",
|
||||
"presentation": {
|
||||
"echo": true,
|
||||
"reveal": "always",
|
||||
"focus": false,
|
||||
"panel": "shared",
|
||||
"showReuseMessage": true,
|
||||
"clear": false
|
||||
},
|
||||
"problemMatcher": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,107 @@
|
||||
{
|
||||
"configurations": [
|
||||
{
|
||||
"name": "Linux",
|
||||
"includePath": [
|
||||
"/usr/include",
|
||||
"/usr/local/include",
|
||||
"${workspaceRoot}",
|
||||
"${workspaceFolder}/src",
|
||||
"${workspaceRoot}/externals/linux/include"
|
||||
],
|
||||
"defines": [],
|
||||
"intelliSenseMode": "clang-x64",
|
||||
"browse": {
|
||||
"path": [
|
||||
"/usr/include",
|
||||
"/usr/local/include",
|
||||
"${workspaceRoot}",
|
||||
"${workspaceFolder}/src",
|
||||
"${workspaceRoot}/externals/linux/include"
|
||||
],
|
||||
"limitSymbolsToIncludedHeaders": true,
|
||||
"databaseFilename": ""
|
||||
},
|
||||
"cStandard": "c11",
|
||||
"cppStandard": "c++17",
|
||||
"compileCommands": "${workspaceFolder}/build/ninja_debug/compile_commands.json"
|
||||
},
|
||||
{
|
||||
"name": "Windows",
|
||||
"intelliSenseMode": "clang-x64",
|
||||
"includePath": [
|
||||
"${workspaceRoot}/src",
|
||||
"${workspaceRoot}/build/src",
|
||||
"${workspaceRoot}/build/ninja_debug/src",
|
||||
"${workspaceRoot}/externals/windows/include",
|
||||
"${workspaceRoot}/externals/linux/include",
|
||||
"${workspaceRoot}/externals/windows/vscode/usr/include/c++/6",
|
||||
"${workspaceRoot}/externals/windows/vscode/usr/include/x86_64-linux-gnu/c++/6",
|
||||
"${workspaceRoot}/externals/windows/vscode/usr/include/c++/6/backward",
|
||||
"${workspaceRoot}/externals/windows/vscode/usr/lib/gcc/x86_64-linux-gnu/6/include",
|
||||
"${workspaceRoot}/externals/windows/vscode/usr/local/include",
|
||||
"${workspaceRoot}/externals/windows/vscode/usr/lib/gcc/x86_64-linux-gnu/6/include-fixed",
|
||||
"${workspaceRoot}/externals/windows/vscode/usr/include/x86_64-linux-gnu",
|
||||
"${workspaceRoot}/externals/windows/vscode/usr/include"
|
||||
],
|
||||
"defines": [
|
||||
"__linux__",
|
||||
"__x86_64__"
|
||||
],
|
||||
"browse": {
|
||||
"path": [
|
||||
"${workspaceRoot}/src",
|
||||
"${workspaceRoot}/build/src",
|
||||
"${workspaceRoot}/build/ninja_debug/src",
|
||||
"${workspaceRoot}/externals/windows/include",
|
||||
"${workspaceRoot}/externals/linux/include",
|
||||
"${workspaceRoot}/externals/windows/vscode/usr/include/c++/6",
|
||||
"${workspaceRoot}/externals/windows/vscode/usr/include/x86_64-linux-gnu/c++/6",
|
||||
"${workspaceRoot}/externals/windows/vscode/usr/include/c++/6/backward",
|
||||
"${workspaceRoot}/externals/windows/vscode/usr/lib/gcc/x86_64-linux-gnu/6/include",
|
||||
"${workspaceRoot}/externals/windows/vscode/usr/local/include",
|
||||
"${workspaceRoot}/externals/windows/vscode/usr/lib/gcc/x86_64-linux-gnu/6/include-fixed",
|
||||
"${workspaceRoot}/externals/windows/vscode/usr/include/x86_64-linux-gnu",
|
||||
"${workspaceRoot}/externals/windows/vscode/usr/include/*"
|
||||
],
|
||||
"limitSymbolsToIncludedHeaders": true,
|
||||
"databaseFilename": ""
|
||||
},
|
||||
"cStandard": "c11",
|
||||
"cppStandard": "c++17"
|
||||
},
|
||||
{
|
||||
"name": "WindowsQuick",
|
||||
"intelliSenseMode": "clang-x64",
|
||||
"includePath": [
|
||||
"${workspaceRoot}/src",
|
||||
"${workspaceRoot}/build/src",
|
||||
"${workspaceRoot}/build/ninja_debug/src",
|
||||
"${workspaceRoot}/externals/windows/include",
|
||||
"${workspaceRoot}/externals/linux/include",
|
||||
"${workspaceRoot}/externals/windows/vscode/usr/include/c++/6",
|
||||
"${workspaceRoot}/externals/windows/vscode/usr/include/x86_64-linux-gnu/c++/6",
|
||||
"${workspaceRoot}/externals/windows/vscode/usr/include/c++/6/backward",
|
||||
"${workspaceRoot}/externals/windows/vscode/usr/lib/gcc/x86_64-linux-gnu/6/include",
|
||||
"${workspaceRoot}/externals/windows/vscode/usr/local/include",
|
||||
"${workspaceRoot}/externals/windows/vscode/usr/lib/gcc/x86_64-linux-gnu/6/include-fixed",
|
||||
"${workspaceRoot}/externals/windows/vscode/usr/include/x86_64-linux-gnu",
|
||||
"${workspaceRoot}/externals/windows/vscode/usr/include"
|
||||
],
|
||||
"defines": [
|
||||
"__linux__",
|
||||
"__x86_64__"
|
||||
],
|
||||
"browse": {
|
||||
"path": [
|
||||
"${workspaceRoot}/src"
|
||||
],
|
||||
"limitSymbolsToIncludedHeaders": true,
|
||||
"databaseFilename": "${workspaceRoot}/.vscode/browse.vc.db"
|
||||
},
|
||||
"cStandard": "c11",
|
||||
"cppStandard": "c++17"
|
||||
}
|
||||
],
|
||||
"version": 4
|
||||
}
|
||||
@@ -1,399 +1,402 @@
|
||||
{
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"name": "Spark Local",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "${workspaceRoot}/build/ninja_debug/server/sparkd",
|
||||
"args": [
|
||||
"run",
|
||||
"test",
|
||||
"-a",
|
||||
"OutrightVanillaOrder"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "${workspaceRoot}/build/ninja_debug/server/",
|
||||
"environment": [
|
||||
{ "name": "TZ", "value": "America/Chicago" }
|
||||
],
|
||||
"externalConsole": false,
|
||||
"MIMode": "gdb",
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "-enable-pretty-printing",
|
||||
"ignoreFailures": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "SparkVM Launch",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "/home/bts/spark/build/ninja_debug/server/sparkd",
|
||||
"args": [
|
||||
"test",
|
||||
"-a",
|
||||
"[ilink3]"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "/home/bts/spark/build/ninja_debug/server/",
|
||||
"environment": [],
|
||||
"externalConsole": true,
|
||||
"MIMode": "gdb",
|
||||
"preLaunchTask": "",
|
||||
"logging": {
|
||||
"engineLogging": false
|
||||
},
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "enable pretty-printer",
|
||||
"ignoreFailures": true
|
||||
},
|
||||
{
|
||||
"description": "Skip STL",
|
||||
"text": "skip -gfi /usr/include/c++/7/bits/*.h",
|
||||
"ignoreFailures": true
|
||||
},
|
||||
{
|
||||
"description": "LD LIBRARY",
|
||||
"text": "set env LD_LIBRARY_PATH=.",
|
||||
"ignoreFailures": false
|
||||
}
|
||||
],
|
||||
"pipeTransport": {
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/usr/bin/gdb"
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "(gdb) Launch",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "${workspaceRoot}/build/ninja_debug/server/sparkd/sparkd",
|
||||
"args": [
|
||||
"run"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "${workspaceRoot}/build/ninja_debug/src/server/sparkd",
|
||||
"environment": [],
|
||||
"externalConsole": true,
|
||||
"MIMode": "gdb",
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "-enable-pretty-printing",
|
||||
"ignoreFailures": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Client Launch",
|
||||
"type": "clr",
|
||||
"request": "launch",
|
||||
"program": "${workspaceRoot}/build/Debug/bin/net471/spark.exe",
|
||||
"args": [],
|
||||
"cwd": "${workspaceRoot}",
|
||||
"stopAtEntry": false,
|
||||
"externalConsole": true,
|
||||
"requireExactSource": false
|
||||
},
|
||||
{
|
||||
"name": "SDK Launch",
|
||||
"type": "clr",
|
||||
"request": "launch",
|
||||
"program": "${workspaceRoot}/build/Debug/bin/net471/spark_sdk.exe",
|
||||
"args": [
|
||||
"md",
|
||||
"GLBX",
|
||||
"Future",
|
||||
"CL",
|
||||
"CLZ9",
|
||||
"--user=bts",
|
||||
"--pass="
|
||||
],
|
||||
"cwd": "${workspaceRoot}",
|
||||
"stopAtEntry": false,
|
||||
"externalConsole": true,
|
||||
"requireExactSource": false
|
||||
},
|
||||
{
|
||||
"name": "Excel Launch",
|
||||
"type": "clr",
|
||||
"request": "launch",
|
||||
"program": "C:/Program Files/Microsoft Office/Office14/EXCEL.EXE",
|
||||
"args": [
|
||||
"${workspaceRoot}/build/Debug/bin/net471/spark_excel-addin64-packed.xll"
|
||||
],
|
||||
"cwd": "${workspaceRoot}",
|
||||
"stopAtEntry": false,
|
||||
"externalConsole": true,
|
||||
"requireExactSource": false
|
||||
},
|
||||
{
|
||||
"name": "Client Tests",
|
||||
"type": "clr",
|
||||
"request": "launch",
|
||||
"program": "${workspaceRoot}/build/Debug/bin/net471/sparkcmd.exe",
|
||||
"args": [
|
||||
"test",
|
||||
"ApiUpdateTests"
|
||||
],
|
||||
"cwd": "${workspaceRoot}",
|
||||
"stopAtEntry": false,
|
||||
"externalConsole": true,
|
||||
"requireExactSource": false
|
||||
},
|
||||
{
|
||||
"name": "Client Attach",
|
||||
"type": "clr",
|
||||
"request": "attach",
|
||||
"processId": "${command:pickProcess}"
|
||||
},
|
||||
{
|
||||
"name": "Spreader Tests",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "/home/bts/spark/build/ninja_debug/server/sparkd",
|
||||
"args": [
|
||||
"test",
|
||||
"[spreader]"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "/home/bts/spark/build/ninja_debug/server/",
|
||||
"environment": [],
|
||||
"externalConsole": true,
|
||||
"MIMode": "gdb",
|
||||
"preLaunchTask": "",
|
||||
"logging": {
|
||||
"engineLogging": false
|
||||
},
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "enable pretty-printer",
|
||||
"ignoreFailures": true
|
||||
}
|
||||
],
|
||||
"pipeTransport": {
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/usr/bin/gdb"
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Admin Service Tests",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "/home/bts/spark/build/ninja_debug/src/server/sparkd/sparkd",
|
||||
"args": [
|
||||
"test",
|
||||
"[admin_service]"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "/home/bts/spark/build/ninja_debug/src/server/sparkd/",
|
||||
"environment": [],
|
||||
"externalConsole": true,
|
||||
"MIMode": "gdb",
|
||||
"preLaunchTask": "",
|
||||
"logging": {
|
||||
"engineLogging": false
|
||||
},
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "enable pretty-printer",
|
||||
"ignoreFailures": true
|
||||
}
|
||||
],
|
||||
"pipeTransport": {
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/usr/bin/gdb"
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Limiter Tests",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "/home/bts/spark/build/ninja_debug/src/server/sparkd/sparkd",
|
||||
"args": [
|
||||
"test",
|
||||
"[limiter]"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "/home/bts/spark/build/ninja_debug/src/server/sparkd/",
|
||||
"environment": [],
|
||||
"externalConsole": true,
|
||||
"MIMode": "gdb",
|
||||
"preLaunchTask": "",
|
||||
"logging": {
|
||||
"engineLogging": false
|
||||
},
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "enable pretty-printer",
|
||||
"ignoreFailures": true
|
||||
}
|
||||
],
|
||||
"pipeTransport": {
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/usr/bin/gdb"
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "MD Tests",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "/home/bts/spark/build/ninja_debug/server/sparkd",
|
||||
"args": [
|
||||
"test",
|
||||
"[algo]"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "/home/bts/spark/build/ninja_debug/server/",
|
||||
"environment": [],
|
||||
"externalConsole": true,
|
||||
"MIMode": "gdb",
|
||||
"preLaunchTask": "",
|
||||
"logging": {
|
||||
"engineLogging": false
|
||||
},
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "-enable-pretty-printing",
|
||||
"ignoreFailures": true
|
||||
},
|
||||
{
|
||||
"description": "Skip STL",
|
||||
"text": "skip -gfi /usr/include/c++/7/bits/*.h",
|
||||
"ignoreFailures": true
|
||||
}
|
||||
],
|
||||
"pipeTransport": {
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/usr/bin/gdb"
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "SparkVM attach",
|
||||
"type": "cppdbg",
|
||||
"request": "attach",
|
||||
"program": "/home/bts/spark/build/ninja_debug/src/server/sparkd/sparkd",
|
||||
"processId": "${command:pickRemoteProcess}",
|
||||
"MIMode": "gdb",
|
||||
"pipeTransport": {
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/usr/bin/gdb"
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Python",
|
||||
"type": "python",
|
||||
"request": "launch",
|
||||
"stopOnEntry": false,
|
||||
"pythonPath": "${config:python.pythonPath}",
|
||||
"program": "${file}",
|
||||
"cwd": "${workspaceRoot}",
|
||||
"env": {},
|
||||
"envFile": "${workspaceRoot}/.env",
|
||||
"args": [
|
||||
"DEBUG"
|
||||
],
|
||||
"debugOptions": [
|
||||
"WaitOnAbnormalExit",
|
||||
"WaitOnNormalExit",
|
||||
"RedirectOutput"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": ".NET Core Remote Attach",
|
||||
"type": "coreclr",
|
||||
"request": "attach",
|
||||
"processId": "${command:pickRemoteProcess}",
|
||||
"pipeTransport": {
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/home/bts/vsdbg/vsdbg",
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"quoteArgs": true
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
},
|
||||
"justMyCode": true
|
||||
},
|
||||
{
|
||||
"name": ".NET Core Remote Launch",
|
||||
"type": "coreclr",
|
||||
"request": "launch",
|
||||
"program": "/usr/bin/dotnet",
|
||||
"args": [
|
||||
"sparkcmd.dll",
|
||||
"test",
|
||||
"test_join_create_and_takeout_market"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "/home/bts/spark/build/ninja_debug/server",
|
||||
"pipeTransport": {
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/home/bts/vsdbg/vsdbg",
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"quoteArgs": true
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
},
|
||||
"justMyCode": false
|
||||
},
|
||||
]
|
||||
{
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"name": "Spark Local",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "${workspaceRoot}/build/gcc/debug/server/sparkd",
|
||||
"args": [
|
||||
"run",
|
||||
"test",
|
||||
"-a",
|
||||
"OutrightVanillaOrder"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "${workspaceRoot}/build/gcc/debug/server/",
|
||||
"environment": [
|
||||
{
|
||||
"name": "TZ",
|
||||
"value": "America/Chicago"
|
||||
}
|
||||
],
|
||||
"externalConsole": false,
|
||||
"MIMode": "gdb",
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "-enable-pretty-printing",
|
||||
"ignoreFailures": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "SparkVM Launch",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "/home/bts/spark/build/gcc/debug/server/sparkd",
|
||||
"args": [
|
||||
"test",
|
||||
"-a",
|
||||
"[ilink3]"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "/home/bts/spark/build/gcc/debug/server/",
|
||||
"environment": [],
|
||||
"externalConsole": true,
|
||||
"MIMode": "gdb",
|
||||
"preLaunchTask": "",
|
||||
"logging": {
|
||||
"engineLogging": false
|
||||
},
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "enable pretty-printer",
|
||||
"ignoreFailures": true
|
||||
},
|
||||
{
|
||||
"description": "Skip STL",
|
||||
"text": "skip -gfi /usr/include/c++/7/bits/*.h",
|
||||
"ignoreFailures": true
|
||||
},
|
||||
{
|
||||
"description": "LD LIBRARY",
|
||||
"text": "set env LD_LIBRARY_PATH=.",
|
||||
"ignoreFailures": false
|
||||
}
|
||||
],
|
||||
"pipeTransport": {
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/usr/bin/gdb"
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "(gdb) Launch",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "${workspaceRoot}/build/gcc/debug/server/sparkd/sparkd",
|
||||
"args": [
|
||||
"run"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "${workspaceRoot}/build/ninja_debug/src/server/sparkd",
|
||||
"environment": [],
|
||||
"externalConsole": true,
|
||||
"MIMode": "gdb",
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "-enable-pretty-printing",
|
||||
"ignoreFailures": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Client Launch",
|
||||
"type": "clr",
|
||||
"request": "launch",
|
||||
"program": "${workspaceRoot}/build/Debug/bin/net471/spark.exe",
|
||||
"args": [],
|
||||
"cwd": "${workspaceRoot}",
|
||||
"stopAtEntry": false,
|
||||
"externalConsole": true,
|
||||
"requireExactSource": false
|
||||
},
|
||||
{
|
||||
"name": "SDK Launch",
|
||||
"type": "clr",
|
||||
"request": "launch",
|
||||
"program": "${workspaceRoot}/build/Debug/bin/net471/spark_sdk.exe",
|
||||
"args": [
|
||||
"md",
|
||||
"GLBX",
|
||||
"Future",
|
||||
"CL",
|
||||
"CLZ9",
|
||||
"--user=bts",
|
||||
"--pass="
|
||||
],
|
||||
"cwd": "${workspaceRoot}",
|
||||
"stopAtEntry": false,
|
||||
"externalConsole": true,
|
||||
"requireExactSource": false
|
||||
},
|
||||
{
|
||||
"name": "Excel Launch",
|
||||
"type": "clr",
|
||||
"request": "launch",
|
||||
"program": "C:/Program Files/Microsoft Office/Office14/EXCEL.EXE",
|
||||
"args": [
|
||||
"${workspaceRoot}/build/Debug/bin/net471/spark_excel-addin64-packed.xll"
|
||||
],
|
||||
"cwd": "${workspaceRoot}",
|
||||
"stopAtEntry": false,
|
||||
"externalConsole": true,
|
||||
"requireExactSource": false
|
||||
},
|
||||
{
|
||||
"name": "Client Tests",
|
||||
"type": "clr",
|
||||
"request": "launch",
|
||||
"program": "${workspaceRoot}/build/Debug/bin/net471/sparkcmd.exe",
|
||||
"args": [
|
||||
"test",
|
||||
"ApiUpdateTests"
|
||||
],
|
||||
"cwd": "${workspaceRoot}",
|
||||
"stopAtEntry": false,
|
||||
"externalConsole": true,
|
||||
"requireExactSource": false
|
||||
},
|
||||
{
|
||||
"name": "Client Attach",
|
||||
"type": "clr",
|
||||
"request": "attach",
|
||||
"processId": "${command:pickProcess}"
|
||||
},
|
||||
{
|
||||
"name": "Spreader Tests",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "/home/bts/spark/build/gcc/debug/server/sparkd",
|
||||
"args": [
|
||||
"test",
|
||||
"[spreader]"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "/home/bts/spark/build/gcc/debug/server/",
|
||||
"environment": [],
|
||||
"externalConsole": true,
|
||||
"MIMode": "gdb",
|
||||
"preLaunchTask": "",
|
||||
"logging": {
|
||||
"engineLogging": false
|
||||
},
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "enable pretty-printer",
|
||||
"ignoreFailures": true
|
||||
}
|
||||
],
|
||||
"pipeTransport": {
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/usr/bin/gdb"
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Admin Service Tests",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "/home/bts/spark/build/ninja_debug/src/server/sparkd/sparkd",
|
||||
"args": [
|
||||
"test",
|
||||
"[admin_service]"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "/home/bts/spark/build/ninja_debug/src/server/sparkd/",
|
||||
"environment": [],
|
||||
"externalConsole": true,
|
||||
"MIMode": "gdb",
|
||||
"preLaunchTask": "",
|
||||
"logging": {
|
||||
"engineLogging": false
|
||||
},
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "enable pretty-printer",
|
||||
"ignoreFailures": true
|
||||
}
|
||||
],
|
||||
"pipeTransport": {
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/usr/bin/gdb"
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Limiter Tests",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "/home/bts/spark/build/ninja_debug/src/server/sparkd/sparkd",
|
||||
"args": [
|
||||
"test",
|
||||
"[limiter]"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "/home/bts/spark/build/ninja_debug/src/server/sparkd/",
|
||||
"environment": [],
|
||||
"externalConsole": true,
|
||||
"MIMode": "gdb",
|
||||
"preLaunchTask": "",
|
||||
"logging": {
|
||||
"engineLogging": false
|
||||
},
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "enable pretty-printer",
|
||||
"ignoreFailures": true
|
||||
}
|
||||
],
|
||||
"pipeTransport": {
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/usr/bin/gdb"
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "MD Tests",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "/home/bts/spark/build/gcc/debug/server/sparkd",
|
||||
"args": [
|
||||
"test",
|
||||
"[algo]"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "/home/bts/spark/build/gcc/debug/server/",
|
||||
"environment": [],
|
||||
"externalConsole": true,
|
||||
"MIMode": "gdb",
|
||||
"preLaunchTask": "",
|
||||
"logging": {
|
||||
"engineLogging": false
|
||||
},
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "-enable-pretty-printing",
|
||||
"ignoreFailures": true
|
||||
},
|
||||
{
|
||||
"description": "Skip STL",
|
||||
"text": "skip -gfi /usr/include/c++/7/bits/*.h",
|
||||
"ignoreFailures": true
|
||||
}
|
||||
],
|
||||
"pipeTransport": {
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/usr/bin/gdb"
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "SparkVM attach",
|
||||
"type": "cppdbg",
|
||||
"request": "attach",
|
||||
"program": "/home/bts/spark/build/ninja_debug/src/server/sparkd/sparkd",
|
||||
"processId": "${command:pickRemoteProcess}",
|
||||
"MIMode": "gdb",
|
||||
"pipeTransport": {
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/usr/bin/gdb"
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Python",
|
||||
"type": "python",
|
||||
"request": "launch",
|
||||
"stopOnEntry": false,
|
||||
"pythonPath": "${config:python.pythonPath}",
|
||||
"program": "${file}",
|
||||
"cwd": "${workspaceRoot}",
|
||||
"env": {},
|
||||
"envFile": "${workspaceRoot}/.env",
|
||||
"args": [
|
||||
"DEBUG"
|
||||
],
|
||||
"debugOptions": [
|
||||
"WaitOnAbnormalExit",
|
||||
"WaitOnNormalExit",
|
||||
"RedirectOutput"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": ".NET Core Remote Attach",
|
||||
"type": "coreclr",
|
||||
"request": "attach",
|
||||
"processId": "${command:pickRemoteProcess}",
|
||||
"pipeTransport": {
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/home/bts/vsdbg/vsdbg",
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"quoteArgs": true
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
},
|
||||
"justMyCode": true
|
||||
},
|
||||
{
|
||||
"name": ".NET Core Remote Launch",
|
||||
"type": "coreclr",
|
||||
"request": "launch",
|
||||
"program": "/usr/bin/dotnet",
|
||||
"args": [
|
||||
"sparkcmd.dll",
|
||||
"test",
|
||||
"test_join_create_and_takeout_market"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "/home/bts/spark/build/gcc/debug/server",
|
||||
"pipeTransport": {
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/home/bts/vsdbg/vsdbg",
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"quoteArgs": true
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
},
|
||||
"justMyCode": false
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -7,9 +7,9 @@
|
||||
"vector": "cpp",
|
||||
"xhash": "cpp",
|
||||
"xstring": "cpp",
|
||||
"system_error": "cpp",
|
||||
"array": "cpp",
|
||||
"string_view": "cpp"
|
||||
"system_error": "cpp",
|
||||
"array": "cpp",
|
||||
"string_view": "cpp"
|
||||
"xutility": "cpp",
|
||||
"*.ipp": "cpp"
|
||||
}
|
||||
File renamed without changes.
@@ -1 +0,0 @@
|
||||
set(sources /home/pfisher/bts/spark/doc/user/build.sh;content/_index.md;content/bts_spark/Glossary/_index.md;content/bts_spark/Help/_index.md;content/bts_spark/Help/about_spark.png;content/bts_spark/Help/image39.png;content/bts_spark/Help/image58.png;content/bts_spark/Launcher/_index.md;content/bts_spark/Launcher/image38.png;content/bts_spark/Launcher/image68.png;content/bts_spark/Logging-In-to-the-System/_index.md;content/bts_spark/Logging-In-to-the-System/image3.png;content/bts_spark/Logging-In-to-the-System/image64.png;content/bts_spark/Market/_index.md;content/bts_spark/Market/change_securities.png;content/bts_spark/Market/image11.png;content/bts_spark/Market/image14.png;content/bts_spark/Market/image20.png;content/bts_spark/Market/image21.png;content/bts_spark/Market/image23.png;content/bts_spark/Market/image24.png;content/bts_spark/Market/image34.png;content/bts_spark/Market/image49.png;content/bts_spark/Market/image53.png;content/bts_spark/Market/image66.png;content/bts_spark/Market/image69.png;content/bts_spark/Market/market_view.png;content/bts_spark/Market/settings_icon.png;content/bts_spark/Market/time_and_sales.png;content/bts_spark/My-Windows/_index.md;content/bts_spark/My-Windows/image15.png;content/bts_spark/My-Windows/image16.png;content/bts_spark/My-Windows/image37.png;content/bts_spark/Settings/_index.md;content/bts_spark/Settings/image51.png;content/bts_spark/Settings/image9.png;content/bts_spark/Spreader/_index.md;content/bts_spark/Spreader/image10.png;content/bts_spark/Spreader/image13.png;content/bts_spark/Spreader/image18.png;content/bts_spark/Spreader/image19.png;content/bts_spark/Spreader/image28.png;content/bts_spark/Spreader/image29.png;content/bts_spark/Spreader/image31.png;content/bts_spark/Spreader/image35.png;content/bts_spark/Spreader/image40.png;content/bts_spark/Spreader/image43.png;content/bts_spark/Spreader/image54.png;content/bts_spark/Spreader/image55.png;content/bts_spark/Spreader/image56.png;content/bts_spark/Spreader/image6.png;content/bts_spark/Spreader/image7.png;content/bts_spark/Spreader/image70.png;content/bts_spark/Spreader/image72.png;content/bts_spark/Spreader/image8.png;content/bts_spark/Trading/OrderTypes/index.md;content/bts_spark/Trading/_index.md;content/bts_spark/Trading/algo_studio.png;content/bts_spark/Trading/collapse_all_icon.png;content/bts_spark/Trading/cover_algo_control.png;content/bts_spark/Trading/expand_all_icon.png;content/bts_spark/Trading/image1.png;content/bts_spark/Trading/image17.png;content/bts_spark/Trading/image2.png;content/bts_spark/Trading/image25.png;content/bts_spark/Trading/image27.png;content/bts_spark/Trading/image33.png;content/bts_spark/Trading/image42.png;content/bts_spark/Trading/image44.png;content/bts_spark/Trading/image47.png;content/bts_spark/Trading/image48.png;content/bts_spark/Trading/image5.png;content/bts_spark/Trading/image50.png;content/bts_spark/Trading/image52.png;content/bts_spark/Trading/image57.png;content/bts_spark/Trading/image59.png;content/bts_spark/Trading/image60.png;content/bts_spark/Trading/image61.png;content/bts_spark/Trading/image62.png;content/bts_spark/Trading/image73.png;content/bts_spark/Trading/image74.png;content/bts_spark/Trading/join_algo_control.png;content/bts_spark/Trading/ladder.png;content/bts_spark/Trading/ladder_badges.png;content/bts_spark/Trading/ladder_main_part.png;content/bts_spark/Trading/lean_algo_control.png;content/bts_spark/Trading/mini_orderbook.png;content/bts_spark/Trading/oco_algo_control.png;content/bts_spark/Trading/offset_algo_control.png;content/bts_spark/Trading/pnl_calculation.png;content/bts_spark/Trading/pnl_window.png;content/bts_spark/Trading/recreate_icon.png;content/bts_spark/Trading/settings_icon.png;content/bts_spark/Trading/spark_menu_order_book.png;content/bts_spark/Trading/top_algo_control.png;content/bts_spark/Trading/trigger_algo_control.png;content/bts_spark/_index.md;content/release_notes/_index.md;content/system_requirements/_index.md;static/book.js;static/favicon.ico;static/image.js;templates/index.html;templates/page.html;templates/section.html;templates/shortcodes/back_button.html)
|
||||
@@ -1,8 +1,8 @@
|
||||
cmake_minimum_required(VERSION 3.5)
|
||||
project(doc)
|
||||
|
||||
include(${CMAKE_SOURCE_DIR}/tools/safe_dep_glob.cmake)
|
||||
include(${CMAKE_SOURCE_DIR}/tools/Protobuf.cmake)
|
||||
include(${CMAKE_SOURCE_DIR}/cmake/safe_dep_glob.cmake)
|
||||
include(${CMAKE_SOURCE_DIR}/cmake/Protobuf.cmake)
|
||||
|
||||
# DEPENDENCIES
|
||||
set(DOC_GLOBS
|
||||
|
||||
-1
Submodule docker/linux deleted from 6f0dd9324b.
@@ -0,0 +1,103 @@
|
||||
FROM ubuntu:22.10
|
||||
|
||||
RUN \
|
||||
apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y \
|
||||
clang-13 \
|
||||
clang-format-13 \
|
||||
clangd-13 \
|
||||
clang-15 \
|
||||
clang-format-15 \
|
||||
clangd-15 \
|
||||
cmake \
|
||||
curl \
|
||||
dotnet7 \
|
||||
fish \
|
||||
g++-11 \
|
||||
g++-12 \
|
||||
gnupg \
|
||||
liblttng-ust-dev \
|
||||
libssh2-1-dev \
|
||||
libpcap0.8-dev \
|
||||
locales \
|
||||
ninja-build \
|
||||
nodejs \
|
||||
npm \
|
||||
openssh-server \
|
||||
python3-pip \
|
||||
python3-venv \
|
||||
rapidjson-dev \
|
||||
software-properties-common \
|
||||
sqlite3 \
|
||||
sudo \
|
||||
tar \
|
||||
vim \
|
||||
wget
|
||||
|
||||
# this is done here so that ccache sees clang++ installed, not clang-10
|
||||
RUN \
|
||||
apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y ccache
|
||||
|
||||
# emumba deps
|
||||
RUN \
|
||||
apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y \
|
||||
tzdata \
|
||||
build-essential \
|
||||
cmake-curses-gui \
|
||||
git-all \
|
||||
doxygen \
|
||||
python3-sphinx \
|
||||
graphviz \
|
||||
libgtest-dev \
|
||||
libssl-dev \
|
||||
libboost-filesystem-dev \
|
||||
libboost-program-options-dev \
|
||||
libboost-test-dev \
|
||||
libboost-date-time-dev \
|
||||
zlib1g-dev \
|
||||
netcat-traditional \
|
||||
net-tools \
|
||||
gdb gdbserver \
|
||||
pkg-config
|
||||
|
||||
# set up default executables (update-alternatives)
|
||||
RUN \
|
||||
update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-13 100; \
|
||||
update-alternatives --install /usr/bin/clang clang /usr/bin/clang-13 100; \
|
||||
update-alternatives --install /usr/bin/clang-format clang-format /usr/bin/clang-format-13 100; \
|
||||
update-alternatives --install /usr/bin/clangd clangd /usr/bin/clangd-13 100; \
|
||||
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 100; \
|
||||
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 100
|
||||
|
||||
# Add compiler symlinks for ccache
|
||||
RUN \
|
||||
ln -s /usr/bin/ccache /usr/local/bin/clang; \
|
||||
ln -s /usr/bin/ccache /usr/local/bin/clang++; \
|
||||
ln -s /usr/bin/ccache /usr/local/bin/clang-13; \
|
||||
ln -s /usr/bin/ccache /usr/local/bin/clang++-13; \
|
||||
ln -s /usr/bin/ccache /usr/local/bin/clang-15; \
|
||||
ln -s /usr/bin/ccache /usr/local/bin/clang++-15; \
|
||||
ln -s /usr/bin/ccache /usr/local/bin/gcc; \
|
||||
ln -s /usr/bin/ccache /usr/local/bin/g++; \
|
||||
ln -s /usr/bin/ccache /usr/local/bin/gcc-11; \
|
||||
ln -s /usr/bin/ccache /usr/local/bin/g++-11; \
|
||||
ln -s /usr/bin/ccache /usr/local/bin/gcc-12; \
|
||||
ln -s /usr/bin/ccache /usr/local/bin/g++-12
|
||||
|
||||
RUN locale-gen en_US.UTF-8
|
||||
|
||||
ARG docker_user="bts"
|
||||
ARG docker_uid="1000"
|
||||
ARG docker_pass="bts"
|
||||
|
||||
RUN \
|
||||
groupadd -g "$docker_uid" "$docker_user" \
|
||||
&& useradd \
|
||||
-m \
|
||||
-u "$docker_uid" \
|
||||
-g "$docker_uid" \
|
||||
-G sudo \
|
||||
--password "$(openssl passwd -1 "$docker_pass")" \
|
||||
"$docker_user"
|
||||
@@ -0,0 +1,64 @@
|
||||
[dev containers]: https://code.visualstudio.com/docs/devcontainers/containers
|
||||
[dev containers ext]: https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers
|
||||
[docker repo sparkd-dev]: https://hub.docker.com/repository/docker/bluetradingsystems/sparkd-dev/general
|
||||
# Sparkd Dev Container
|
||||
## How to create a VS Code [Dev Container][dev containers]
|
||||
|
||||
1. Make sure the **[Dev Containers][dev containers ext]** extension is installed
|
||||
1. Make sure your Docker image is up to date
|
||||
```
|
||||
docker pull bluetradingsystems/sparkd-dev:latest
|
||||
```
|
||||
1. Copy **devcontainer.json** from this folder to **$workspaceFolder/.devcontainer/**.
|
||||
|
||||
1. In the VS Code Command Palette, run **Dev Containers: Reopen in Container**
|
||||
|
||||
---
|
||||
## How to create a Sparkd Container in the terminal (without VS Code)
|
||||
|
||||
1. Make sure your Docker image is up to date
|
||||
```
|
||||
docker pull bluetradingsystems/sparkd-dev:latest
|
||||
```
|
||||
2. Start the container
|
||||
```
|
||||
# Replace <cont_name> with a name for the container. The container's
|
||||
# "$HOME" dir will be mounted to "$HOME/.sparkd-dev/mounts/<cont_name> on
|
||||
# the host
|
||||
|
||||
./start_docker.sh --container <cont_name> --mount-existing
|
||||
```
|
||||
* *Replace <cont_name> with a name for the container*
|
||||
* *The container's `$HOME` dir will be mounted to
|
||||
`$HOME/.sparkd-dev/mounts<cont_name>` on the host*<br>
|
||||
* *Run: `./start_docker.sh --help` to see additional options*
|
||||
3. *(Optional) Attach VS Code to the running container.*<br>
|
||||
Run **Dev Containers: Attach to Running Container** from the command palette,
|
||||
then select your container in the dropdown
|
||||
|
||||
---
|
||||
## How to update the Docker image
|
||||
|
||||
1. Change the image by modifying the Dockerfile (don't tag arbitrary
|
||||
images on your machine and push them to our repo on Docker Hub)
|
||||
|
||||
1. After modifying the Dockerfile, (re)build the image
|
||||
```
|
||||
# Run in this dir
|
||||
docker build -t bluetradingsystems/sparkd-dev:latest .
|
||||
```
|
||||
***Note:** Your docker login must have write permissions to push to the
|
||||
[sparkd-dev][docker repo sparkd-dev] repository*
|
||||
|
||||
2. Commit the changes to Dockerfile in git
|
||||
|
||||
3. Push the new image to Docker Hub
|
||||
|
||||
```
|
||||
docker push johncolvin/bluetradingsystems:sparkd-dev
|
||||
```
|
||||
***Note:** The image doesn't have to be on Docker Hub, we can simply build
|
||||
it from scratch on our local machines (with the Dockerfile). However, this
|
||||
takes time. It is significantly quicker to download a prebuilt image, so we
|
||||
store it on a remote repository to save time when setting up a new dev
|
||||
machine.*
|
||||
@@ -0,0 +1,123 @@
|
||||
# ~/.bashrc: executed by bash(1) for non-login shells.
|
||||
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
|
||||
# for examples
|
||||
|
||||
# If not running interactively, don't do anything
|
||||
case $- in
|
||||
*i*) ;;
|
||||
*) return;;
|
||||
esac
|
||||
|
||||
# don't put duplicate lines or lines starting with space in the history.
|
||||
# See bash(1) for more options
|
||||
HISTCONTROL=ignoreboth
|
||||
|
||||
# append to the history file, don't overwrite it
|
||||
shopt -s histappend
|
||||
|
||||
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
|
||||
HISTSIZE=1000
|
||||
HISTFILESIZE=2000
|
||||
|
||||
# check the window size after each command and, if necessary,
|
||||
# update the values of LINES and COLUMNS.
|
||||
shopt -s checkwinsize
|
||||
|
||||
# If set, the pattern "**" used in a pathname expansion context will
|
||||
# match all files and zero or more directories and subdirectories.
|
||||
#shopt -s globstar
|
||||
|
||||
# make less more friendly for non-text input files, see lesspipe(1)
|
||||
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
|
||||
|
||||
# set variable identifying the chroot you work in (used in the prompt below)
|
||||
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
|
||||
debian_chroot=$(cat /etc/debian_chroot)
|
||||
fi
|
||||
|
||||
# set a fancy prompt (non-color, unless we know we "want" color)
|
||||
case "$TERM" in
|
||||
xterm-color|*-256color) color_prompt=yes;;
|
||||
esac
|
||||
|
||||
# uncomment for a colored prompt, if the terminal has the capability; turned
|
||||
# off by default to not distract the user: the focus in a terminal window
|
||||
# should be on the output of commands, not on the prompt
|
||||
#force_color_prompt=yes
|
||||
|
||||
if [ -n "$force_color_prompt" ]; then
|
||||
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
|
||||
# We have color support; assume it's compliant with Ecma-48
|
||||
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
|
||||
# a case would tend to support setf rather than setaf.)
|
||||
color_prompt=yes
|
||||
else
|
||||
color_prompt=
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$color_prompt" = yes ]; then
|
||||
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
|
||||
else
|
||||
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
|
||||
fi
|
||||
unset color_prompt force_color_prompt
|
||||
|
||||
# If this is an xterm set the title to user@host:dir
|
||||
case "$TERM" in
|
||||
xterm*|rxvt*)
|
||||
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
|
||||
# enable color support of ls and also add handy aliases
|
||||
if [ -x /usr/bin/dircolors ]; then
|
||||
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
|
||||
alias ls='ls --color=auto'
|
||||
#alias dir='dir --color=auto'
|
||||
#alias vdir='vdir --color=auto'
|
||||
|
||||
alias grep='grep --color=auto'
|
||||
alias fgrep='fgrep --color=auto'
|
||||
alias egrep='egrep --color=auto'
|
||||
fi
|
||||
|
||||
# colored GCC warnings and errors
|
||||
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
|
||||
|
||||
# some more ls aliases
|
||||
alias ll='ls -alF'
|
||||
alias la='ls -A'
|
||||
alias l='ls -CF'
|
||||
|
||||
# Add an "alert" alias for long running commands. Use like so:
|
||||
# sleep 10; alert
|
||||
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
|
||||
|
||||
# Alias definitions.
|
||||
# You may want to put all your additions into a separate file like
|
||||
# ~/.bash_aliases, instead of adding them here directly.
|
||||
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
|
||||
|
||||
if [ -f ~/.bash_aliases ]; then
|
||||
. ~/.bash_aliases
|
||||
fi
|
||||
|
||||
# enable programmable completion features (you don't need to enable
|
||||
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
|
||||
# sources /etc/bash.bashrc).
|
||||
if ! shopt -oq posix; then
|
||||
if [ -f /usr/share/bash-completion/bash_completion ]; then
|
||||
. /usr/share/bash-completion/bash_completion
|
||||
elif [ -f /etc/bash_completion ]; then
|
||||
. /etc/bash_completion
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ ! -v XDG_CONFIG_HOME ]]; then
|
||||
export XDG_CONFIG_HOME="$HOME/.config"
|
||||
fi
|
||||
|
||||
export PATH="$HOME/.local/bin:$PATH"
|
||||
@@ -0,0 +1,25 @@
|
||||
if ! set -q XDG_CONFIG_HOME
|
||||
set -g XDG_CONFIG_HOME "$HOME/.config"
|
||||
end
|
||||
set fish_config_home $XDG_CONFIG_HOME/fish
|
||||
if test -f "$fish_config_home/aliases.fish"
|
||||
source "$fish_config_home/aliases.fish"
|
||||
end
|
||||
# enable general colors and case insensitive search in 'less'
|
||||
set -x LESS "$LESS -R -Q -I"
|
||||
set -x LC_ALL en_US.UTF-8
|
||||
# enable syntax highlighting in 'less'
|
||||
# set highlight color scheme in 'less' (fg)(bg)
|
||||
set -g LESS_TERMCAP_md (tput bold)(tput setaf 36)
|
||||
set -g LESS_TERMCAP_me (tput sgr0)
|
||||
set -g LESS_TERMCAP_so (tput setaf 232)(tput setab 49)
|
||||
|
||||
set -q TERM
|
||||
if test $status != 0; or test $TERM = 'xterm'
|
||||
set -g TERM 'xterm-256color'
|
||||
end
|
||||
|
||||
# Fix impossible-to-see navy blue command text color
|
||||
set fish_color_command F8F8F2
|
||||
|
||||
set -g PATH "$HOME/.local/bin" "$PATH"
|
||||
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"image": "bluetradingsystems/sparkd-dev:latest",
|
||||
"initializeCommand": "${localWorkspaceFolder}/docker/sparkd/dev/devcontainer_initialize.sh",
|
||||
"hostRequirements": {
|
||||
"memory": "4gb",
|
||||
"storage": "6gb"
|
||||
},
|
||||
"postCreateCommand": "/home/bts/spark/docker/sparkd/dev/devcontainer_post_create.sh",
|
||||
"containerUser": "bts",
|
||||
"workspaceMount": "source=${localWorkspaceFolder},target=/home/bts/spark,type=bind",
|
||||
"workspaceFolder": "/home/bts/spark",
|
||||
"updateRemoteUserUID": true,
|
||||
"shutdownAction": "none",
|
||||
// Note: If running multiple containers on the same host, each must use a
|
||||
// unique set of ports. Usually we just add 1000 to each port as needed. For
|
||||
// example, if 8000-8003 is taken, go with 9000-9003, then 10000-10003, etc.
|
||||
"runArgs": [
|
||||
"--shm-size",
|
||||
"2gb",
|
||||
"-p",
|
||||
"8000:8000",
|
||||
"-p",
|
||||
"8001:8001",
|
||||
"-p",
|
||||
"8002:8002",
|
||||
"-p",
|
||||
"8003:8003"
|
||||
],
|
||||
"mounts": [
|
||||
"source=${localEnv:HOME}/.sparkd-dev/mounts/sparkd-dev,target=/home/bts,type=bind"
|
||||
]
|
||||
}
|
||||
Executable
+3
@@ -0,0 +1,3 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
mkdir -p "$HOME/.sparkd-dev/mounts/sparkd-dev"
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
this_dir="$(realpath "$(dirname "${BASH_SOURCE[0]}")")"
|
||||
repo_dir="$(cd "$this_dir" && git rev-parse --show-toplevel)"
|
||||
tools_dir="$repo_dir/tools"
|
||||
gen_tag="GENERATED BY $(basename "${BASH_SOURCE[0]}")"
|
||||
|
||||
function copy_if_not_exist() {
|
||||
src="$1"
|
||||
dest="$2"
|
||||
if [[ ! -e "$src" ]]; then
|
||||
echo "Unable to copy $src to $dest. Source file doesn't exist"
|
||||
exit 1
|
||||
fi
|
||||
if [[ ! -e "$dest" ]]; then
|
||||
cp "$src" "$dest"
|
||||
fi
|
||||
}
|
||||
|
||||
# Init bashrc
|
||||
echo "Initializing bashrc"
|
||||
copy_if_not_exist "$this_dir/bashrc" "$HOME/.bashrc"
|
||||
|
||||
# Init fish config
|
||||
echo "Initializing fish config"
|
||||
fish_cfg_dir="$HOME/.config/fish/"
|
||||
mkdir -p "$fish_cfg_dir"
|
||||
exec "$tools_dir/write_tag_block.sh" \
|
||||
--tag "$gen_tag" \
|
||||
--replace \
|
||||
--in-place \
|
||||
--file "$fish_cfg_dir/config.fish" \
|
||||
--text "$(cat "$this_dir/config.fish")"
|
||||
Executable
+250
@@ -0,0 +1,250 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
function _exit() {
|
||||
if [[ "$#" -gt 1 ]]; then
|
||||
# When there are multiple args, the last arg is the exit code.
|
||||
echo "${@:1:($# - 1)}"
|
||||
exit "${@: -1}"
|
||||
fi
|
||||
echo "$1"
|
||||
exit 0
|
||||
}
|
||||
|
||||
help_text="\
|
||||
Add or update a user's uid
|
||||
|
||||
This script is intended to be run in a Docker container as a means to obtain
|
||||
file permissions in mounted directories owned by the specified UID.
|
||||
|
||||
Usage: set_user.sh [OPTIONS] USER UID
|
||||
|
||||
Positionals:
|
||||
USER The name of the user
|
||||
|
||||
Options:
|
||||
--user USER The name of the user (defaults to 'bts')
|
||||
--uid UID The new uid to give USER (defaults to '1000')
|
||||
--group GROUP The primary group to give USER (defaults to USER)
|
||||
--gid GID The primary gid to give USER (defaults to UID)
|
||||
--pass PASSWORD The password to give USER (defaults to USER, only applies
|
||||
if USER hasn't been created yet)
|
||||
--modify-existing Update UID/GID even if USER already exists
|
||||
-h,--help Print this help message and exit
|
||||
|
||||
"
|
||||
|
||||
function _add_group() {
|
||||
if [[ "$#" -ne 2 ]]; then
|
||||
_exit "'_add_group' requires exactly 2 args (group, gid). Received $#." 1
|
||||
fi
|
||||
local group="$1"
|
||||
local gid="$2"
|
||||
# Check if gid already exists
|
||||
local existing_group=""
|
||||
existing_group="$(getent group "$gid" | cut -d : -f 1)"
|
||||
if [[ -n "$existing_group" ]]; then
|
||||
if [[ "$existing_group" != "$group" ]]; then
|
||||
echo "\
|
||||
The gid '$gid' is already in use by group '$existing_group' (will not rename \
|
||||
the group)"
|
||||
fi
|
||||
return
|
||||
fi
|
||||
|
||||
# Check if group with same name already exists
|
||||
local existing_gid=""
|
||||
existing_gid="$(getent group "$group" | cut -d : -f 3)"
|
||||
if [[ -n "$existing_gid" ]]; then
|
||||
# The group already exists. Only modify if --modify-existing was specified.
|
||||
if [[ "$modify_existing" -eq 0 ]]; then
|
||||
_exit "\
|
||||
The group '$group' already exists with gid '$existing_gid'.
|
||||
Specify --modify-existing to change the gid anyways." 1
|
||||
fi
|
||||
echo "Changing gid for group '$group' from '$existing_gid' to '$gid'"
|
||||
groupmod -g "$gid" "$group"
|
||||
else
|
||||
# The group doesn't exist. Add it
|
||||
echo "Adding group '$group:$gid'"
|
||||
groupadd -g "$gid" "$group"
|
||||
fi
|
||||
}
|
||||
|
||||
function _add_user() {
|
||||
local user="$1"
|
||||
local uid="$2"
|
||||
local group="$3"
|
||||
local gid="$4"
|
||||
local pass="$5"
|
||||
if [[ "$#" -ne 5 ]]; then
|
||||
_exit "'_add_user' requires exactly 5 args (user, uid, group, gid, pass). \
|
||||
Received $#." 1
|
||||
fi
|
||||
|
||||
# Check if uid is being used by another user
|
||||
local existing_user=""
|
||||
existing_user="$(getent passwd "$uid" | cut -d : -f 1)"
|
||||
if [[ -n "$existing_user" ]]; then
|
||||
if [[ "$existing_user" != "$user" ]]; then
|
||||
_exit "The uid '$uid' is already in use by user '$existing_user'." 1
|
||||
fi
|
||||
|
||||
echo "The user '$user' already has the specified uid '$uid'."
|
||||
# Modify gid if necessary
|
||||
local existing_gid=""
|
||||
existing_gid="$(id -g "$user" 2> /dev/null)"
|
||||
if [[ "$existing_gid" = "$gid" ]]; then
|
||||
echo "The user '$user' already has the specified gid '$gid'."
|
||||
return
|
||||
fi
|
||||
|
||||
if [[ "$modify_existing" -eq 0 ]]; then
|
||||
_exit "\
|
||||
The user '$user' is associated with the primary group '$existing_gid'.
|
||||
Specify --modify-existing to change the gid anyways." 1
|
||||
fi
|
||||
|
||||
echo "Changing primary group for '$user' from '$existing_gid' to '$gid'."
|
||||
usermod -g "$gid" "$user"
|
||||
return
|
||||
fi
|
||||
|
||||
# Check if user with same name already exists
|
||||
local existing_uid=""
|
||||
existing_uid="$(id -u "$user" 2> /dev/null)"
|
||||
if [[ -n "$existing_uid" ]]; then
|
||||
if [[ "$existing_uid" = "$uid" ]]; then
|
||||
_exit "The user '$user' already has the specified uid '$uid'" 0
|
||||
fi
|
||||
|
||||
if [[ "$modify_existing" -eq 0 ]]; then
|
||||
_exit "\
|
||||
User '$user' already exists with uid '$existing_uid'.
|
||||
Specify --modify-existing to change the uid anyways." 1
|
||||
fi
|
||||
|
||||
echo "Changing uid for user '$user' from '$existing_uid' to '$uid'"
|
||||
if ! usermod -u "$uid" -g "$gid" "$user"; then
|
||||
_exit "usermod exited with code $?" 1
|
||||
fi
|
||||
return
|
||||
fi
|
||||
|
||||
# The user doesn't exist. Add it
|
||||
echo "Adding user '$user:$uid' (group='$group:$gid', password='$pass')"
|
||||
useradd -m -u "$uid" -g "$gid" -G sudo --password "$(openssl passwd -1 "$pass")" "$user"
|
||||
}
|
||||
|
||||
function _update_fish_dir_perms() {
|
||||
local user="$1"
|
||||
local uid="$2"
|
||||
local gid="$3"
|
||||
# When a fish shell session starts, a temp dir named '/tmp/fish.<user>' is
|
||||
# created with the user's current uid/gid. If such a dir exists for the
|
||||
# specified USER, make sure the uid/gid match the new values.
|
||||
fish_dir="/tmp/fish.$user"
|
||||
if [[ -d "$fish_dir" ]]; then
|
||||
perms="$uid:$gid"
|
||||
existing_perms="$(stat -c %u:%g "$fish_dir")"
|
||||
if [[ "$existing_perms" != "$perms" ]]; then
|
||||
echo "Changing uid:gid for dir '$fish_dir' from '$existing_perms' to '$perms'"
|
||||
chown -R "$perms" "$fish_dir"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
user=""
|
||||
group=""
|
||||
pass=""
|
||||
declare -i uid=0
|
||||
declare -i gid=0
|
||||
declare -i modify_existing=0
|
||||
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case "$1" in
|
||||
--user)
|
||||
if [[ -z "$2" ]]; then
|
||||
_exit "USER (--user) must be non-empty" 1
|
||||
elif [[ "$2" = "root" ]]; then
|
||||
_exit "USER (--user) cannot be 'root'" 1
|
||||
fi
|
||||
user="$2"
|
||||
shift 2
|
||||
;;
|
||||
--group)
|
||||
if [[ -z "$2" ]]; then
|
||||
_exit "GROUP (--group) must be non-empty" 1
|
||||
elif [[ "$2" = "root" ]]; then
|
||||
_exit "GROUP (--group) cannot be 'root'" 1
|
||||
fi
|
||||
group="$2"
|
||||
shift 2
|
||||
;;
|
||||
--uid)
|
||||
if [[ -z "$2" ]]; then
|
||||
_exit "UID (--uid) must be non-empty" 1
|
||||
fi
|
||||
uid="$2"
|
||||
shift 2
|
||||
;;
|
||||
--gid)
|
||||
if [[ -z "$2" ]]; then
|
||||
_exit "GID (--gid) must be non-empty" 1
|
||||
fi
|
||||
gid="$2"
|
||||
shift 2
|
||||
;;
|
||||
--pass)
|
||||
if [[ -z "$2" ]]; then
|
||||
_exit "PASS (--pass) must be non-empty" 1
|
||||
fi
|
||||
pass="$2"
|
||||
shift 2
|
||||
;;
|
||||
--modify-existing)
|
||||
modify_existing=1
|
||||
shift 1
|
||||
;;
|
||||
-h)
|
||||
;&
|
||||
--help)
|
||||
_exit "$help_text" 0
|
||||
;;
|
||||
*)
|
||||
if [[ -z "$1" ]]; then
|
||||
_exit "Invalid positional argument '$1'" 1
|
||||
elif [[ -z "$user" ]]; then
|
||||
user="$1"
|
||||
elif [[ -z "$uid" ]]; then
|
||||
uid="$1"
|
||||
else
|
||||
_exit "Unexpected argument '$1'" 1
|
||||
fi
|
||||
shift 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [[ -z "$user" ]]; then
|
||||
user="bts"
|
||||
fi
|
||||
|
||||
if [[ $uid -eq 0 ]]; then
|
||||
uid=1000
|
||||
fi
|
||||
|
||||
# In general, a user's primary group/gid matches the user's name/uid.
|
||||
# If group/gid args weren't specified, set them to name/uid.
|
||||
if [[ -z "$group" ]]; then
|
||||
group="$user"
|
||||
fi
|
||||
if [[ $gid -eq 0 ]]; then
|
||||
gid=$uid
|
||||
fi
|
||||
if [[ -z "$pass" ]]; then
|
||||
pass="$user"
|
||||
fi
|
||||
|
||||
_add_group "$group" "$gid"
|
||||
_add_user "$user" "$uid" "$group" "$gid" "$pass"
|
||||
_update_fish_dir_perms "$user" "$uid" "$gid"
|
||||
Executable
+230
@@ -0,0 +1,230 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
function _exit() {
|
||||
if [[ "$#" -gt 1 ]]; then
|
||||
# When there are multiple args, the last arg is the exit code.
|
||||
echo "${@:1:($# - 1)}"
|
||||
exit "${@: -1}"
|
||||
fi
|
||||
echo "$1"
|
||||
exit 0
|
||||
}
|
||||
|
||||
help_text="\
|
||||
Start a docker dev container
|
||||
Usage: start_docker.sh [OPTIONS] image container
|
||||
|
||||
Positionals:
|
||||
image The image to instantiate
|
||||
container The name for the container
|
||||
|
||||
Options:
|
||||
-u,--user USER The user to add in the container (defaults to 'bts')
|
||||
-p,--pass PASS The password for USER in the container (defaults to USER)
|
||||
-i,--image IMAGE The image to instantiate (defaults to 'bluetradingsystems/sparkd-dev:latest')
|
||||
-c,--container CONT The name for the container
|
||||
-m,--mount MOUNT The name for the folder (outside the container) to create/mount to the home
|
||||
directory in the container. Mount folders are added here: $mount_prefix
|
||||
--mount-existing Mount the specified dir even if it already exists
|
||||
--port <cont_port>:<host_port> OR [<cont_port>:<host_port>,...] Port mapping(s). May be
|
||||
specified multiple times.
|
||||
-h,--help Print this help message and exit
|
||||
|
||||
"
|
||||
|
||||
mount_prefix="$HOME/.sparkd-dev/mounts"
|
||||
declare docker_user=""
|
||||
declare docker_pass=""
|
||||
declare image_name=""
|
||||
declare cont_name=""
|
||||
declare mount_name=""
|
||||
declare -i mount_existing=0
|
||||
declare -a port_mappings=()
|
||||
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case "$1" in
|
||||
-u)
|
||||
;&
|
||||
--user)
|
||||
if [[ -z "$2" ]]; then
|
||||
_exit "User (-u,--user) must be non-empty" 1
|
||||
fi
|
||||
docker_user="$2"
|
||||
shift 2
|
||||
;;
|
||||
-p)
|
||||
;&
|
||||
--pass)
|
||||
if [[ -z "$2" ]]; then
|
||||
_exit "Password (-p,--pass) must be non-empty" 1
|
||||
fi
|
||||
docker_pass="$2"
|
||||
shift 2
|
||||
;;
|
||||
-i)
|
||||
;&
|
||||
--image)
|
||||
if [[ -n "$image_name" ]]; then
|
||||
_exit "Unexpected argument '$1'" 1
|
||||
elif [[ -z "$2" ]]; then
|
||||
_exit "Image (-i,--image) must be non-empty" 1
|
||||
fi
|
||||
image_name="$2"
|
||||
shift 2
|
||||
;;
|
||||
-c)
|
||||
;&
|
||||
--container)
|
||||
if [[ -n "$cont_name" ]]; then
|
||||
_exit "Unexpected argument '$1'" 1
|
||||
elif [[ -z "$2" ]]; then
|
||||
_exit "Container (-c,--container) must be non-empty" 1
|
||||
fi
|
||||
cont_name="$2"
|
||||
shift 2
|
||||
;;
|
||||
--port)
|
||||
# Parse port(s) arg, and append the result to 'port_mappings'
|
||||
# Note: port(s) may be specified in bracketed notation:
|
||||
# [a:b,c:d,...,y:z]
|
||||
next_ports="$(echo "$2" | sed -e 's/\[//g' -e 's/\]//g' -e 's/,/ /g')"
|
||||
if [[ "${#port_mappings[@]}" -gt 0 ]]; then
|
||||
next_ports=" $next_ports"
|
||||
fi
|
||||
port_mappings+=("$next_ports")
|
||||
shift 2
|
||||
;;
|
||||
-m)
|
||||
;&
|
||||
--mount)
|
||||
if [[ -z "$2" ]]; then
|
||||
echo "Mount (-m,--mount) must be non-empty"
|
||||
fi
|
||||
mount_name="$2"
|
||||
shift 2
|
||||
;;
|
||||
--mount-existing)
|
||||
mount_existing=1
|
||||
shift 1
|
||||
;;
|
||||
-h)
|
||||
;&
|
||||
--help)
|
||||
_exit "$help_text" 0
|
||||
;;
|
||||
*)
|
||||
if [[ -z "$1" ]]; then
|
||||
_exit "Invalid positional argument '$1'" "$help_text" 1
|
||||
elif [[ -z "$image_name" ]]; then
|
||||
image_name="$1"
|
||||
elif [[ -z "$cont_name" ]]; then
|
||||
cont_name="$1"
|
||||
else
|
||||
_exit "Unexpected argument '$1'" "$help_text" 1
|
||||
fi
|
||||
shift 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
|
||||
if [[ -z "$image_name" ]]; then
|
||||
image_name="bluetradingsystems/sparkd-dev:latest"
|
||||
fi
|
||||
|
||||
host_name="$(hostname)"
|
||||
if [[ -n "$cont_name" ]]; then
|
||||
host_name="$host_name.$cont_name"
|
||||
fi
|
||||
|
||||
if [[ -z "$mount_name" ]]; then
|
||||
mount_name="$cont_name"
|
||||
fi
|
||||
|
||||
if [[ -z "$mount_name" && -z "$cont_name" ]]; then
|
||||
_exit "Please specify mount (-m,--mount) and/or container (-c,--container)" 1
|
||||
fi
|
||||
|
||||
if [[ -z "$docker_user" ]]; then
|
||||
docker_user="bts"
|
||||
fi
|
||||
|
||||
if [[ "$docker_user" = "root" ]]; then
|
||||
_exit "USER (--user) cannot be 'root'" 1
|
||||
fi
|
||||
|
||||
cont_home="/home/$docker_user"
|
||||
home_src="$mount_prefix/$mount_name"
|
||||
home_tgt="$cont_home"
|
||||
this_dir="$(dirname "$(realpath "${BASH_SOURCE[0]}")")"
|
||||
repo_src="$(cd "$this_dir" && git rev-parse --show-toplevel)"
|
||||
repo_tgt="$cont_home/spark"
|
||||
working_dir="$cont_home"
|
||||
|
||||
if [[ $mount_existing -eq 0 && -e "$home_src" ]]; then
|
||||
# Don't overwrite existing dir (might be mounted in another container)
|
||||
_exit "Mount dir '$home_src' already exists (use --mount-existing to mount \
|
||||
an existing directory)" 1
|
||||
fi
|
||||
|
||||
mkdir -p "$home_src"
|
||||
|
||||
if [[ "${#port_mappings[@]}" -eq 0 ]]; then
|
||||
port_mappings=("8000:8000" "8001:8001" "8002:8002" "8003:8003")
|
||||
fi
|
||||
|
||||
# Adapt port_mappings into args for `docker run` by prepending "-p " to each
|
||||
# item
|
||||
declare -a docker_port_args=()
|
||||
for port_mapping in "${port_mappings[@]}"; do
|
||||
docker_port_args+=("-p $port_mapping")
|
||||
done
|
||||
|
||||
echo "Starting container '$cont_name'
|
||||
image_name : $image_name
|
||||
cont_name : $cont_name
|
||||
home_src : $home_src
|
||||
home_tgt : $home_tgt
|
||||
repo_src : $repo_src
|
||||
repo_tgt : $repo_tgt
|
||||
working dir : $working_dir
|
||||
ports : ${port_mappings[*]}
|
||||
"
|
||||
|
||||
# DON'T wrap $docker_port_args in quotes. We want bash to split args by
|
||||
# whitespace
|
||||
docker run \
|
||||
--net bridge \
|
||||
-h "$host_name" \
|
||||
-e "TZ=America/New_York" \
|
||||
--cap-add=SYS_PTRACE \
|
||||
--security-opt seccomp=unconfined \
|
||||
--name "$cont_name" \
|
||||
-v "$home_src:$home_tgt" \
|
||||
-v "$repo_src:$repo_tgt" \
|
||||
-w "$working_dir" \
|
||||
${docker_port_args[*]} \
|
||||
--shm-size=4024m \
|
||||
-t \
|
||||
-i \
|
||||
-d \
|
||||
-e DISPLAY="$DISPLAY" \
|
||||
"$image_name"
|
||||
|
||||
# Add user w/ same uid and gid as the current user outside of docker, so the
|
||||
# user inside the docker has file permissions in the mounted dir.
|
||||
docker_group="$docker_user"
|
||||
docker_uid="$(id -u "$USER")"
|
||||
docker_gid="$(id -g "$USER")"
|
||||
if [[ -z "$docker_pass" ]]; then
|
||||
docker_pass="$docker_user"
|
||||
fi
|
||||
docker exec -u root -it "$cont_name" "$repo_tgt/docker/sparkd/dev/set_user.sh" \
|
||||
--user "$docker_user" \
|
||||
--uid "$docker_uid" \
|
||||
--group "$docker_group" \
|
||||
--gid "$docker_gid" \
|
||||
--pass "$docker_pass"
|
||||
|
||||
# Run same script VS Code runs to initialize the container
|
||||
docker exec -u "$docker_user" -it "$cont_name" "$repo_tgt/docker/sparkd/dev/devcontainer_post_create.sh"
|
||||
Executable
+64
@@ -0,0 +1,64 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
function print_help_and_exit() {
|
||||
cat <<EOF
|
||||
Open a shell inside the docker container
|
||||
Usage: docker_shell.sh [OPTIONS] [CONTAINER]
|
||||
|
||||
Options:
|
||||
-u,--user The user to login with in the container (defaults to the current user)
|
||||
-c,--container The container name (may also be specified as positional arg)
|
||||
-h,--help Print this help message and exit
|
||||
|
||||
EOF
|
||||
exit "$1"
|
||||
}
|
||||
|
||||
|
||||
declare docker_user=""
|
||||
declare cont_name=""
|
||||
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case "$1" in
|
||||
-u)
|
||||
;&
|
||||
--user)
|
||||
if [[ -z "$2" ]]; then
|
||||
echo "User (-u,--user) must be non-empty"
|
||||
print_help_and_exit 1
|
||||
fi
|
||||
docker_user="$2"
|
||||
shift 2
|
||||
;;
|
||||
-h)
|
||||
;&
|
||||
--help)
|
||||
print_help_and_exit 0
|
||||
;;
|
||||
-c)
|
||||
;&
|
||||
--container)
|
||||
shift 1
|
||||
;&
|
||||
*)
|
||||
if [[ ! -z "$cont_name" ]]; then
|
||||
echo "Unexpected argument '$1'"
|
||||
print_help_and_exit 1
|
||||
fi
|
||||
cont_name="$1"
|
||||
shift 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
|
||||
if [[ -z "$cont_name" ]]; then
|
||||
echo "Please specify the container ([-c,--container])"
|
||||
print_help_and_exit 1
|
||||
fi
|
||||
|
||||
if [[ -z "$docker_user" ]]; then
|
||||
docker_user="$USER"
|
||||
fi
|
||||
|
||||
docker exec -u "$docker_user" -it "$cont_name" bash
|
||||
Executable
+233
@@ -0,0 +1,233 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
mount_prefix="$HOME/.spark-dev/mounts"
|
||||
|
||||
function print_help_and_exit() {
|
||||
cat <<EOF
|
||||
Start a docker dev container
|
||||
Usage: start_docker.sh [OPTIONS] image container
|
||||
|
||||
Positionals:
|
||||
image The image to instantiate
|
||||
container The name for the container
|
||||
|
||||
Options:
|
||||
-u,--user USER The user to add in the container (defaults to the current user)
|
||||
-p,--pass PASS The password for USER in the container (defaults to USER)
|
||||
-i,--image IMAGE The image to instantiate
|
||||
-c,--container CONT The name for the container
|
||||
-m,--mount MOUNT The name for the folder (outside the container) to create/mount to the home
|
||||
directory in the container. Mount folders are added here: $mount_prefix
|
||||
--mount-existing Mount the specified dir even if it already exists
|
||||
--port <cont_port>:<host_port> OR [<cont_port>:<host_port>,...] Port mapping(s). May be
|
||||
specified multiple times.
|
||||
-h,--help Print this help message and exit
|
||||
|
||||
EOF
|
||||
exit "$1"
|
||||
}
|
||||
|
||||
|
||||
declare docker_user=""
|
||||
declare docker_pass=""
|
||||
declare image_name=""
|
||||
declare cont_name=""
|
||||
declare mount_name=""
|
||||
declare -i mount_existing=0
|
||||
declare -a port_mappings=()
|
||||
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case "$1" in
|
||||
-u)
|
||||
;&
|
||||
--user)
|
||||
if [[ -z "$2" ]]; then
|
||||
echo "User (-u,--user) must be non-empty"
|
||||
print_help_and_exit 1
|
||||
fi
|
||||
docker_user="$2"
|
||||
shift 2
|
||||
;;
|
||||
-p)
|
||||
;&
|
||||
--pass)
|
||||
if [[ -z "$2" ]]; then
|
||||
echo "Password (-p,--pass) must be non-empty"
|
||||
print_help_and_exit 1
|
||||
fi
|
||||
docker_pass="$2"
|
||||
shift 2
|
||||
;;
|
||||
-i)
|
||||
;&
|
||||
--image)
|
||||
if [[ -n "$image_name" ]]; then
|
||||
echo "Unexpected argument '$1'"
|
||||
print_help_and_exit 1
|
||||
elif [[ -z "$2" ]]; then
|
||||
echo "Image (-i,--image) must be non-empty"
|
||||
print_help_and_exit 1
|
||||
fi
|
||||
image_name="$2"
|
||||
shift 2
|
||||
;;
|
||||
-c)
|
||||
;&
|
||||
--container)
|
||||
if [[ -n "$cont_name" ]]; then
|
||||
echo "Unexpected argument '$1'"
|
||||
print_help_and_exit 1
|
||||
elif [[ -z "$2" ]]; then
|
||||
echo "Container (-c,--container) must be non-empty"
|
||||
print_help_and_exit 1
|
||||
fi
|
||||
cont_name="$2"
|
||||
shift 2
|
||||
;;
|
||||
--port)
|
||||
# Parse port(s) arg, and append the result to 'port_mappings'
|
||||
# Note: port(s) may be specified in bracketed notation:
|
||||
# [a:b,c:d,...,y:z]
|
||||
next_ports="$(echo "$2" | sed -e 's/\[//g' -e 's/\]//g' -e 's/,/ /g')"
|
||||
if [[ "${#port_mappings[@]}" -gt 0 ]]; then
|
||||
next_ports=" $next_ports"
|
||||
fi
|
||||
port_mappings+=("$next_ports")
|
||||
shift 2
|
||||
;;
|
||||
-m)
|
||||
;&
|
||||
--mount)
|
||||
if [[ -z "$2" ]]; then
|
||||
echo "Mount (-m,--mount) must be non-empty"
|
||||
fi
|
||||
mount_name="$2"
|
||||
shift 2
|
||||
;;
|
||||
--mount-existing)
|
||||
mount_existing=1
|
||||
shift 1
|
||||
;;
|
||||
-h)
|
||||
;&
|
||||
--help)
|
||||
print_help_and_exit 0
|
||||
;;
|
||||
*)
|
||||
if [[ -z "$1" ]]; then
|
||||
echo "Invalid positional argument '$1'"
|
||||
print_help_and_exit 1
|
||||
elif [[ -z "$image_name" ]]; then
|
||||
image_name="$1"
|
||||
elif [[ -z "$cont_name" ]]; then
|
||||
cont_name="$1"
|
||||
else
|
||||
echo "Unexpected argument '$1'"
|
||||
print_help_and_exit 1
|
||||
fi
|
||||
shift 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
|
||||
if [[ -z "$image_name" ]]; then
|
||||
image_name="bluetradingsystems/spark-crypto-dev"
|
||||
fi
|
||||
|
||||
host_name="$(hostname)"
|
||||
if [[ -n "$cont_name" ]]; then
|
||||
host_name="$host_name.$cont_name"
|
||||
fi
|
||||
|
||||
if [[ -z "$mount_name" ]]; then
|
||||
mount_name="$cont_name"
|
||||
fi
|
||||
|
||||
if [[ -z "$mount_name" && -z "$cont_name" ]]; then
|
||||
echo "Please specify mount (-m,--mount) and/or container (-c,--container)"
|
||||
print_help_and_exit 1
|
||||
fi
|
||||
|
||||
if [[ -z "$docker_user" ]]; then
|
||||
docker_user="$USER"
|
||||
fi
|
||||
|
||||
home_src=$mount_prefix/$mount_name
|
||||
home_tgt=$HOME
|
||||
repo_src=$(git rev-parse --show-superproject-working-tree)
|
||||
repo_tgt=$HOME/$(basename "$repo_src")
|
||||
working_dir=$HOME
|
||||
|
||||
if [[ $mount_existing -eq 0 && -e "$home_src" ]]; then
|
||||
# Don't overwrite existing dir (might be mounted in another container)
|
||||
echo "Mount dir '$home_src' already exists (use --mount-existing to mount an existing directory)"
|
||||
print_help_and_exit 1
|
||||
fi
|
||||
|
||||
mkdir -p "$home_src"
|
||||
|
||||
if [[ "${#port_mappings[@]}" -eq 0 ]]; then
|
||||
port_mappings=("8000:8000" "8001:8001" "8002:8002" "8003:8003")
|
||||
fi
|
||||
|
||||
# Adapt port_mappings into args for `docker run` by prepending "-p " to each
|
||||
# item
|
||||
declare -a docker_port_args=()
|
||||
for port_mapping in "${port_mappings[@]}"; do
|
||||
docker_port_args+=("-p $port_mapping")
|
||||
done
|
||||
|
||||
echo "Starting container '$cont_name'
|
||||
image_name : $image_name
|
||||
cont_name : $cont_name
|
||||
home_src : $home_src
|
||||
home_tgt : $home_tgt
|
||||
repo_src : $repo_src
|
||||
repo_tgt : $repo_tgt
|
||||
working dir : $working_dir
|
||||
ports : ${port_mappings[*]}
|
||||
"
|
||||
|
||||
# DON'T wrap $docker_port_args in quotes. We want bash to split args by
|
||||
# whitespace
|
||||
docker run \
|
||||
--net bridge \
|
||||
-h "$host_name" \
|
||||
-e "TZ=America/New_York" \
|
||||
--cap-add=SYS_PTRACE \
|
||||
--security-opt seccomp=unconfined \
|
||||
--name "$cont_name" \
|
||||
-v "$home_src:$home_tgt" \
|
||||
-v "$repo_src:$repo_tgt" \
|
||||
-w "$working_dir" \
|
||||
${docker_port_args[*]} \
|
||||
--shm-size=4024m \
|
||||
-t \
|
||||
-i \
|
||||
-d \
|
||||
-e DISPLAY="$DISPLAY" \
|
||||
"$image_name" \
|
||||
bash
|
||||
|
||||
# Add user w/ same uid and gid as the current user outside of docker, so the
|
||||
# user inside the docker has file permissions in the mounted dir.
|
||||
docker_group="$docker_user"
|
||||
docker_user_uid="$(id -u "$USER")"
|
||||
docker_user_gid="$(id -g "$USER")"
|
||||
|
||||
echo "Adding user in container '$cont_name'
|
||||
name : $docker_user
|
||||
uid : $docker_user_uid
|
||||
gid : $docker_user_gid"
|
||||
|
||||
if [[ -z "$docker_pass" ]]; then
|
||||
docker_pass="$docker_user"
|
||||
echo "Giving user '$docker_user' a secure password: $docker_pass"
|
||||
fi
|
||||
|
||||
docker exec -u root -it "$cont_name" groupadd -g "$docker_user_gid" "$docker_group"
|
||||
docker exec -u root -it "$cont_name" useradd -u "$docker_user_uid" -g "$docker_user_gid" "$docker_user"
|
||||
docker exec -u root -it "$cont_name" usermod --password "$(openssl passwd -1 "$docker_pass")" "$docker_user"
|
||||
docker exec -u root -it "$cont_name" usermod -aG sudo "$docker_user"
|
||||
docker exec -u root -it "$cont_name" "$repo_tgt/externals/src/emumba/install_emumba-deribit-connector.sh"
|
||||
Submodule docker/windows deleted from de7d40c09d.
+1
-1
Submodule externals updated: 2ea5e355a6...de4b394a29.
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"sdk": {
|
||||
"version": "2.1.508",
|
||||
"version": "6.0.200",
|
||||
"rollForward": "latestMajor"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"FormattingOptions": {
|
||||
"NewLineForCatch": false,
|
||||
"NewLineForClausesInQuery": true,
|
||||
"NewLineForElse": false,
|
||||
"NewLineForFinally": false,
|
||||
"NewLineForMembersInAnonymousTypes": true,
|
||||
"NewLineForMembersInObjectInit": true,
|
||||
"NewLinesForBracesInAccessors": false,
|
||||
"NewLinesForBracesInAnonymousMethods": false,
|
||||
"NewLinesForBracesInAnonymousTypes": false,
|
||||
"NewLinesForBracesInControlBlocks": false,
|
||||
"NewLinesForBracesInLambdaExpressionBody": false,
|
||||
"NewLinesForBracesInMethods": false,
|
||||
"NewLinesForBracesInObjectCollectionArrayInitializers": false,
|
||||
"NewLinesForBracesInProperties": false,
|
||||
"NewLinesForBracesInTypes": false,
|
||||
"TabSize": 3
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
astroid==2.7.3
|
||||
autopep8==1.5.7
|
||||
certifi==2023.5.7
|
||||
charset-normalizer==3.1.0
|
||||
colorama==0.4.4
|
||||
idna==3.4
|
||||
isort==5.9.3
|
||||
lazy-object-proxy==1.6.0
|
||||
mccabe==0.6.1
|
||||
platformdirs==2.3.0
|
||||
protobuf==4.21.12
|
||||
pybars3==0.9.7
|
||||
pycodestyle==2.7.0
|
||||
pycparser==2.20
|
||||
pylint==2.10.2
|
||||
PyMeta3==0.5.1
|
||||
requests==2.31.0
|
||||
termcolor==1.1.0
|
||||
toml==0.10.2
|
||||
urllib3==2.0.3
|
||||
wrapt==1.12.1
|
||||
yapf==0.31.0
|
||||
+39
-168
@@ -1,224 +1,95 @@
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 15
|
||||
VisualStudioVersion = 15.0.27130.2024
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.3.32922.545
|
||||
MinimumVisualStudioVersion = 15.0.26124.0
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "spark_api", "src\client\spark_api\spark_api.csproj", "{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libspark", "build\src\lib\libspark.vcxproj", "{3335AAF0-489D-359D-8305-9B7A44E2C760}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Spark", "src\client\spark\Spark.csproj", "{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "sparkcmd", "src\client\sparkcmd\sparkcmd.csproj", "{387566C6-C6F6-412C-A30C-9855BBCB4816}"
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Spark.Console", "src\client\Spark.Console\Spark.Console.csproj", "{387566C6-C6F6-412C-A30C-9855BBCB4816}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "spark_core", "src\client\spark_core\spark_core.csproj", "{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ZERO_CHECK", "build\ZERO_CHECK.vcxproj", "{2256015B-E7D5-3614-8F39-814CA68A4444}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "spark_sdk", "src\client\spark_sdk\spark_sdk.csproj", "{6963C314-83C4-4667-B0D0-C2F7AE208C29}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{3335AAF0-489D-359D-8305-9B7A44E2C760} = {3335AAF0-489D-359D-8305-9B7A44E2C760}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "spark_test", "src\client\spark_test\spark_test.csproj", "{ECD78CC5-138F-4809-A764-2358C2AC2E82}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "spark_excel", "src\client\spark_excel\spark_excel.csproj", "{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}"
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "spark_websocket", "src\client\spark_websocket\spark_websocket.csproj", "{3201359D-C071-4089-9EDE-B04D759F1508}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "spark_api_server", "src\client\spark_api_server\spark_api_server.csproj", "{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Debug|x64 = Debug|x64
|
||||
Debug|x86 = Debug|x86
|
||||
MinSizeRel|Any CPU = MinSizeRel|Any CPU
|
||||
MinSizeRel|x64 = MinSizeRel|x64
|
||||
MinSizeRel|x86 = MinSizeRel|x86
|
||||
Release|Any CPU = Release|Any CPU
|
||||
Release|x64 = Release|x64
|
||||
Release|x86 = Release|x86
|
||||
RelWithDebInfo|Any CPU = RelWithDebInfo|Any CPU
|
||||
RelWithDebInfo|x64 = RelWithDebInfo|x64
|
||||
RelWithDebInfo|x86 = RelWithDebInfo|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.Debug|Any CPU.ActiveCfg = Debug|x64
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.Debug|x64.Build.0 = Debug|x64
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.Debug|x86.ActiveCfg = Debug|x64
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.MinSizeRel|Any CPU.ActiveCfg = Release|x64
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.MinSizeRel|Any CPU.Build.0 = Release|x64
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.MinSizeRel|x64.ActiveCfg = Release|x64
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.MinSizeRel|x64.Build.0 = Release|x64
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.MinSizeRel|x86.ActiveCfg = Release|x64
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.MinSizeRel|x86.Build.0 = Release|x64
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.Release|Any CPU.ActiveCfg = Release|x64
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.Release|x64.ActiveCfg = Release|x64
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.Release|x64.Build.0 = Release|x64
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.Release|x86.ActiveCfg = Release|x64
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.RelWithDebInfo|Any CPU.ActiveCfg = Release|x64
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.RelWithDebInfo|Any CPU.Build.0 = Release|x64
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.RelWithDebInfo|x64.ActiveCfg = Release|x64
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.RelWithDebInfo|x64.Build.0 = Release|x64
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.RelWithDebInfo|x86.ActiveCfg = Release|x64
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.RelWithDebInfo|x86.Build.0 = Release|x64
|
||||
{3335AAF0-489D-359D-8305-9B7A44E2C760}.Debug|Any CPU.ActiveCfg = Debug|x64
|
||||
{3335AAF0-489D-359D-8305-9B7A44E2C760}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{3335AAF0-489D-359D-8305-9B7A44E2C760}.Debug|x64.Build.0 = Debug|x64
|
||||
{3335AAF0-489D-359D-8305-9B7A44E2C760}.Debug|x86.ActiveCfg = Debug|x64
|
||||
{3335AAF0-489D-359D-8305-9B7A44E2C760}.MinSizeRel|Any CPU.ActiveCfg = MinSizeRel|x64
|
||||
{3335AAF0-489D-359D-8305-9B7A44E2C760}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
|
||||
{3335AAF0-489D-359D-8305-9B7A44E2C760}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
|
||||
{3335AAF0-489D-359D-8305-9B7A44E2C760}.MinSizeRel|x86.ActiveCfg = MinSizeRel|x64
|
||||
{3335AAF0-489D-359D-8305-9B7A44E2C760}.Release|Any CPU.ActiveCfg = Release|x64
|
||||
{3335AAF0-489D-359D-8305-9B7A44E2C760}.Release|x64.ActiveCfg = Release|x64
|
||||
{3335AAF0-489D-359D-8305-9B7A44E2C760}.Release|x64.Build.0 = Release|x64
|
||||
{3335AAF0-489D-359D-8305-9B7A44E2C760}.Release|x86.ActiveCfg = Release|x64
|
||||
{3335AAF0-489D-359D-8305-9B7A44E2C760}.RelWithDebInfo|Any CPU.ActiveCfg = RelWithDebInfo|x64
|
||||
{3335AAF0-489D-359D-8305-9B7A44E2C760}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
|
||||
{3335AAF0-489D-359D-8305-9B7A44E2C760}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
|
||||
{3335AAF0-489D-359D-8305-9B7A44E2C760}.RelWithDebInfo|x86.ActiveCfg = RelWithDebInfo|x64
|
||||
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.Debug|Any CPU.ActiveCfg = Debug|x64
|
||||
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.Debug|x64.Build.0 = Debug|x64
|
||||
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.Debug|x86.ActiveCfg = Debug|x64
|
||||
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.MinSizeRel|Any CPU.ActiveCfg = Release|x64
|
||||
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.MinSizeRel|Any CPU.Build.0 = Release|x64
|
||||
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.MinSizeRel|x64.ActiveCfg = Release|x64
|
||||
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.MinSizeRel|x64.Build.0 = Release|x64
|
||||
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.MinSizeRel|x86.ActiveCfg = Release|x64
|
||||
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.MinSizeRel|x86.Build.0 = Release|x64
|
||||
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.Release|Any CPU.ActiveCfg = Release|x64
|
||||
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.Release|x64.ActiveCfg = Release|x64
|
||||
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.Release|x64.Build.0 = Release|x64
|
||||
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.Release|x86.ActiveCfg = Release|x64
|
||||
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.RelWithDebInfo|Any CPU.ActiveCfg = Release|x64
|
||||
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.RelWithDebInfo|Any CPU.Build.0 = Release|x64
|
||||
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.RelWithDebInfo|x64.ActiveCfg = Release|x64
|
||||
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.RelWithDebInfo|x64.Build.0 = Release|x64
|
||||
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.RelWithDebInfo|x86.ActiveCfg = Release|x64
|
||||
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.RelWithDebInfo|x86.Build.0 = Release|x64
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.MinSizeRel|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.MinSizeRel|Any CPU.Build.0 = Debug|Any CPU
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.MinSizeRel|x64.Build.0 = Debug|Any CPU
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.MinSizeRel|x86.ActiveCfg = Debug|Any CPU
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.MinSizeRel|x86.Build.0 = Debug|Any CPU
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.Release|x64.Build.0 = Release|Any CPU
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.Release|x86.Build.0 = Release|Any CPU
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.RelWithDebInfo|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.RelWithDebInfo|x86.ActiveCfg = Release|Any CPU
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.RelWithDebInfo|x86.Build.0 = Release|Any CPU
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.Debug|Any CPU.ActiveCfg = Debug|x64
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.Debug|x64.Build.0 = Debug|x64
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.MinSizeRel|x64.ActiveCfg = Debug|x64
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.MinSizeRel|x64.Build.0 = Debug|x64
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.Release|x64.ActiveCfg = Release|x64
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.Release|x64.Build.0 = Release|x64
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.RelWithDebInfo|x64.ActiveCfg = Release|x64
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.RelWithDebInfo|x64.Build.0 = Release|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.Debug|x64.Build.0 = Debug|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.Debug|x86.ActiveCfg = Debug|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.MinSizeRel|Any CPU.ActiveCfg = Release|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.MinSizeRel|Any CPU.Build.0 = Release|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.MinSizeRel|x64.ActiveCfg = Release|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.MinSizeRel|x64.Build.0 = Release|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.MinSizeRel|x86.ActiveCfg = Release|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.MinSizeRel|x86.Build.0 = Release|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.Release|Any CPU.ActiveCfg = Release|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.Release|x64.ActiveCfg = Release|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.Release|x64.Build.0 = Release|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.Release|x86.ActiveCfg = Release|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.RelWithDebInfo|Any CPU.ActiveCfg = Release|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.RelWithDebInfo|Any CPU.Build.0 = Release|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.RelWithDebInfo|x64.ActiveCfg = Release|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.RelWithDebInfo|x64.Build.0 = Release|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.RelWithDebInfo|x86.ActiveCfg = Release|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.RelWithDebInfo|x86.Build.0 = Release|x64
|
||||
{2256015B-E7D5-3614-8F39-814CA68A4444}.Debug|Any CPU.ActiveCfg = Debug|x64
|
||||
{2256015B-E7D5-3614-8F39-814CA68A4444}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{2256015B-E7D5-3614-8F39-814CA68A4444}.Debug|x64.Build.0 = Debug|x64
|
||||
{2256015B-E7D5-3614-8F39-814CA68A4444}.Debug|x86.ActiveCfg = Debug|x64
|
||||
{2256015B-E7D5-3614-8F39-814CA68A4444}.MinSizeRel|Any CPU.ActiveCfg = MinSizeRel|x64
|
||||
{2256015B-E7D5-3614-8F39-814CA68A4444}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
|
||||
{2256015B-E7D5-3614-8F39-814CA68A4444}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
|
||||
{2256015B-E7D5-3614-8F39-814CA68A4444}.MinSizeRel|x86.ActiveCfg = MinSizeRel|x64
|
||||
{2256015B-E7D5-3614-8F39-814CA68A4444}.Release|Any CPU.ActiveCfg = Release|x64
|
||||
{2256015B-E7D5-3614-8F39-814CA68A4444}.Release|x64.ActiveCfg = Release|x64
|
||||
{2256015B-E7D5-3614-8F39-814CA68A4444}.Release|x64.Build.0 = Release|x64
|
||||
{2256015B-E7D5-3614-8F39-814CA68A4444}.Release|x86.ActiveCfg = Release|x64
|
||||
{2256015B-E7D5-3614-8F39-814CA68A4444}.RelWithDebInfo|Any CPU.ActiveCfg = RelWithDebInfo|x64
|
||||
{2256015B-E7D5-3614-8F39-814CA68A4444}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
|
||||
{2256015B-E7D5-3614-8F39-814CA68A4444}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
|
||||
{2256015B-E7D5-3614-8F39-814CA68A4444}.RelWithDebInfo|x86.ActiveCfg = RelWithDebInfo|x64
|
||||
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.Debug|Any CPU.ActiveCfg = Debug|x64
|
||||
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.Debug|x64.Build.0 = Debug|x64
|
||||
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.Debug|x86.ActiveCfg = Debug|x64
|
||||
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.MinSizeRel|Any CPU.ActiveCfg = Release|x64
|
||||
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.MinSizeRel|Any CPU.Build.0 = Release|x64
|
||||
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.MinSizeRel|x64.ActiveCfg = Release|x64
|
||||
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.MinSizeRel|x64.Build.0 = Release|x64
|
||||
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.MinSizeRel|x86.ActiveCfg = Release|x64
|
||||
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.MinSizeRel|x86.Build.0 = Release|x64
|
||||
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.Release|Any CPU.ActiveCfg = Release|x64
|
||||
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.Release|x64.ActiveCfg = Release|x64
|
||||
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.Release|x64.Build.0 = Release|x64
|
||||
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.Release|x86.ActiveCfg = Release|x64
|
||||
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.RelWithDebInfo|Any CPU.ActiveCfg = Release|x64
|
||||
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.RelWithDebInfo|Any CPU.Build.0 = Release|x64
|
||||
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.RelWithDebInfo|x64.ActiveCfg = Release|x64
|
||||
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.RelWithDebInfo|x64.Build.0 = Release|x64
|
||||
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.RelWithDebInfo|x86.ActiveCfg = Release|x64
|
||||
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.RelWithDebInfo|x86.Build.0 = Release|x64
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.MinSizeRel|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.MinSizeRel|Any CPU.Build.0 = Debug|Any CPU
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.MinSizeRel|x64.Build.0 = Debug|Any CPU
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.MinSizeRel|x86.ActiveCfg = Debug|Any CPU
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.MinSizeRel|x86.Build.0 = Debug|Any CPU
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.Release|x64.Build.0 = Release|Any CPU
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.Release|x86.Build.0 = Release|Any CPU
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.RelWithDebInfo|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.RelWithDebInfo|x86.ActiveCfg = Release|Any CPU
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.RelWithDebInfo|x86.Build.0 = Release|Any CPU
|
||||
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.Debug|Any CPU.ActiveCfg = Debug|x64
|
||||
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.Debug|x64.Build.0 = Debug|x64
|
||||
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.Debug|x86.ActiveCfg = Debug|x64
|
||||
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.MinSizeRel|Any CPU.ActiveCfg = Release|x64
|
||||
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.MinSizeRel|Any CPU.Build.0 = Release|x64
|
||||
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.MinSizeRel|x64.ActiveCfg = Release|x64
|
||||
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.MinSizeRel|x64.Build.0 = Release|x64
|
||||
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.MinSizeRel|x86.ActiveCfg = Release|x64
|
||||
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.MinSizeRel|x86.Build.0 = Release|x64
|
||||
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.Release|Any CPU.ActiveCfg = Release|x64
|
||||
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.Release|x64.ActiveCfg = Release|x64
|
||||
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.Release|x64.Build.0 = Release|x64
|
||||
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.Release|x86.ActiveCfg = Release|x64
|
||||
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.RelWithDebInfo|Any CPU.ActiveCfg = Release|x64
|
||||
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.RelWithDebInfo|Any CPU.Build.0 = Release|x64
|
||||
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.RelWithDebInfo|x64.ActiveCfg = Release|x64
|
||||
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.RelWithDebInfo|x64.Build.0 = Release|x64
|
||||
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.RelWithDebInfo|x86.ActiveCfg = Release|x64
|
||||
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.RelWithDebInfo|x86.Build.0 = Release|x64
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.Debug|x64.Build.0 = Debug|x64
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.MinSizeRel|x64.ActiveCfg = Debug|x64
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.MinSizeRel|x64.Build.0 = Debug|x64
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.Release|x64.ActiveCfg = Release|x64
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.Release|x64.Build.0 = Release|x64
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.RelWithDebInfo|x64.ActiveCfg = Release|x64
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.RelWithDebInfo|x64.Build.0 = Release|x64
|
||||
{3201359D-C071-4089-9EDE-B04D759F1508}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{3201359D-C071-4089-9EDE-B04D759F1508}.Debug|x64.Build.0 = Debug|x64
|
||||
{3201359D-C071-4089-9EDE-B04D759F1508}.MinSizeRel|x64.ActiveCfg = Debug|x64
|
||||
{3201359D-C071-4089-9EDE-B04D759F1508}.MinSizeRel|x64.Build.0 = Debug|x64
|
||||
{3201359D-C071-4089-9EDE-B04D759F1508}.Release|x64.ActiveCfg = Release|x64
|
||||
{3201359D-C071-4089-9EDE-B04D759F1508}.Release|x64.Build.0 = Release|x64
|
||||
{3201359D-C071-4089-9EDE-B04D759F1508}.RelWithDebInfo|x64.ActiveCfg = Release|x64
|
||||
{3201359D-C071-4089-9EDE-B04D759F1508}.RelWithDebInfo|x64.Build.0 = Release|x64
|
||||
{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}.Debug|x64.Build.0 = Debug|x64
|
||||
{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}.MinSizeRel|x64.ActiveCfg = Debug|x64
|
||||
{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}.MinSizeRel|x64.Build.0 = Debug|x64
|
||||
{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}.Release|x64.ActiveCfg = Release|x64
|
||||
{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}.Release|x64.Build.0 = Release|x64
|
||||
{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}.RelWithDebInfo|x64.ActiveCfg = Release|x64
|
||||
{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}.RelWithDebInfo|x64.Build.0 = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
||||
@@ -1,41 +0,0 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 15
|
||||
VisualStudioVersion = 15.0.26730.10
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sparkd", "src\server\sparkd\sparkd.vcxproj", "{BBBAFD38-312D-4A8D-9AF0-F2BDEE72CE6F}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libspark", "build\src\lib\libspark.vcxproj", "{502FD050-679A-3B50-B438-098500700919}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|x64 = Debug|x64
|
||||
MinSizeRel|x64 = MinSizeRel|x64
|
||||
Release|x64 = Release|x64
|
||||
RelWithDebInfo|x64 = RelWithDebInfo|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{BBBAFD38-312D-4A8D-9AF0-F2BDEE72CE6F}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{BBBAFD38-312D-4A8D-9AF0-F2BDEE72CE6F}.Debug|x64.Build.0 = Debug|x64
|
||||
{BBBAFD38-312D-4A8D-9AF0-F2BDEE72CE6F}.MinSizeRel|x64.ActiveCfg = Release|x64
|
||||
{BBBAFD38-312D-4A8D-9AF0-F2BDEE72CE6F}.MinSizeRel|x64.Build.0 = Release|x64
|
||||
{BBBAFD38-312D-4A8D-9AF0-F2BDEE72CE6F}.Release|x64.ActiveCfg = Release|x64
|
||||
{BBBAFD38-312D-4A8D-9AF0-F2BDEE72CE6F}.Release|x64.Build.0 = Release|x64
|
||||
{BBBAFD38-312D-4A8D-9AF0-F2BDEE72CE6F}.RelWithDebInfo|x64.ActiveCfg = Release|x64
|
||||
{BBBAFD38-312D-4A8D-9AF0-F2BDEE72CE6F}.RelWithDebInfo|x64.Build.0 = Release|x64
|
||||
{502FD050-679A-3B50-B438-098500700919}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{502FD050-679A-3B50-B438-098500700919}.Debug|x64.Build.0 = Debug|x64
|
||||
{502FD050-679A-3B50-B438-098500700919}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
|
||||
{502FD050-679A-3B50-B438-098500700919}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
|
||||
{502FD050-679A-3B50-B438-098500700919}.Release|x64.ActiveCfg = Release|x64
|
||||
{502FD050-679A-3B50-B438-098500700919}.Release|x64.Build.0 = Release|x64
|
||||
{502FD050-679A-3B50-B438-098500700919}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
|
||||
{502FD050-679A-3B50-B438-098500700919}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {6A7249D7-B40C-4656-9347-60072D0B8FDB}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
Vendored
-17
@@ -1,17 +0,0 @@
|
||||
{
|
||||
"files.associations": {
|
||||
"chrono": "cpp",
|
||||
"future": "cpp",
|
||||
"system_error": "cpp",
|
||||
"ios": "cpp",
|
||||
"utility": "cpp",
|
||||
"iosfwd": "cpp",
|
||||
"xhash": "cpp",
|
||||
"xstring": "cpp",
|
||||
"xtree": "cpp",
|
||||
"xutility": "cpp",
|
||||
"exception": "cpp",
|
||||
"bitset": "cpp",
|
||||
"xlocale": "cpp"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="NUnit" Version="3.13.3" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Reference Include="Tools">
|
||||
<HintPath>$(Externals)\bin\cstools\Tools.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Include="$(DataStreamGrammarDir)\BooleanExpressionTokens.lexer.cs" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Include="$(DataStreamGrammarDir)\BooleanExpressionSyntax.parser.cs" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,289 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
namespace BCG
|
||||
{
|
||||
public delegate bool BooleanEval(object arg1,
|
||||
object arg2,
|
||||
IDictionary bindings);
|
||||
|
||||
public class BooleanExpressionException : Exception
|
||||
{
|
||||
public BooleanExpressionException(string format, params object[] args)
|
||||
: base(String.Format(format, args))
|
||||
{ }
|
||||
}
|
||||
|
||||
public abstract class BooleanExpressionValue
|
||||
{
|
||||
public abstract object getValue(IDictionary bindings);
|
||||
}
|
||||
|
||||
public class BooleanExpressionConstant : BooleanExpressionValue
|
||||
{
|
||||
public BooleanExpressionConstant(object o)
|
||||
{ myObj = o; }
|
||||
public override object getValue(IDictionary bindings)
|
||||
{ return myObj; }
|
||||
private object myObj;
|
||||
}
|
||||
|
||||
public class BooleanExpressionVariable : BooleanExpressionValue
|
||||
{
|
||||
public BooleanExpressionVariable(string id)
|
||||
{ myId = id; }
|
||||
|
||||
public string getId()
|
||||
{ return myId; }
|
||||
|
||||
public override object getValue(IDictionary bindings)
|
||||
{ return bindings[myId]; }
|
||||
private string myId;
|
||||
}
|
||||
|
||||
public delegate object BEFunction(List<object> args);
|
||||
|
||||
public class BooleanExpressionFunction : BooleanExpressionValue
|
||||
{
|
||||
public BooleanExpressionFunction(string fn, ArrayList args)
|
||||
{
|
||||
myFunction = fn;
|
||||
myArgs = args;
|
||||
}
|
||||
|
||||
public string getId()
|
||||
{ return myFunction; }
|
||||
|
||||
public override object getValue(IDictionary bindings)
|
||||
{
|
||||
List<object> argValues = new List<object>();
|
||||
if (myArgs != null)
|
||||
foreach (object o in myArgs)
|
||||
if (o is BooleanExpressionValue)
|
||||
argValues.Add(((BooleanExpressionValue)o).getValue(bindings));
|
||||
else
|
||||
throw new Exception("Unknown arg value type: " + o.ToString());
|
||||
|
||||
string k = BooleanExpressionEvaluator.functionPrefix + myFunction;
|
||||
if (bindings.Contains(k))
|
||||
return ((BEFunction)(bindings[k]))(argValues);
|
||||
else
|
||||
throw new BooleanExpressionException("function {0} is not defined", myFunction);
|
||||
}
|
||||
|
||||
private string myFunction;
|
||||
private ArrayList myArgs;
|
||||
}
|
||||
|
||||
public class BooleanExpressionEvaluator
|
||||
{
|
||||
public const string functionPrefix = "function:";
|
||||
|
||||
public BooleanExpressionEvaluator (object arg1,
|
||||
BooleanEval f)
|
||||
: this (arg1, null, f)
|
||||
{}
|
||||
|
||||
public BooleanExpressionEvaluator (object arg1,
|
||||
object arg2,
|
||||
BooleanEval f)
|
||||
{
|
||||
myArg1 = arg1;
|
||||
myArg2 = arg2;
|
||||
myF = f;
|
||||
|
||||
}
|
||||
|
||||
static BooleanExpressionEvaluator()
|
||||
{
|
||||
myNumberTypes = new Hashtable();
|
||||
|
||||
myNumberTypes[typeof(byte)] = true;
|
||||
myNumberTypes[typeof(sbyte)] = true;
|
||||
|
||||
myNumberTypes[typeof(short)] = true;
|
||||
myNumberTypes[typeof(ushort)] = true;
|
||||
|
||||
myNumberTypes[typeof(int)] = true;
|
||||
myNumberTypes[typeof(uint)] = true;
|
||||
|
||||
myNumberTypes[typeof(long)] = true;
|
||||
myNumberTypes[typeof(ulong)] = true;
|
||||
|
||||
myNumberTypes[typeof(double)] = true;
|
||||
myNumberTypes[typeof(float)] = true;
|
||||
}
|
||||
|
||||
public bool eval (IDictionary bindings)
|
||||
{
|
||||
return
|
||||
myF (myArg1, myArg2,bindings);
|
||||
}
|
||||
|
||||
|
||||
public static bool and (object arg1, object arg2, IDictionary bindings)
|
||||
{
|
||||
return
|
||||
(arg1 as BooleanExpressionEvaluator).eval (bindings)
|
||||
&&
|
||||
(arg2 as BooleanExpressionEvaluator).eval (bindings);
|
||||
|
||||
}
|
||||
|
||||
public static bool or (object arg1, object arg2, IDictionary bindings)
|
||||
{
|
||||
return
|
||||
(arg1 as BooleanExpressionEvaluator).eval (bindings)
|
||||
||
|
||||
(arg2 as BooleanExpressionEvaluator).eval (bindings);
|
||||
|
||||
}
|
||||
|
||||
public static bool xor (object arg1, object arg2, IDictionary bindings)
|
||||
{
|
||||
return
|
||||
(arg1 as BooleanExpressionEvaluator).eval (bindings)
|
||||
!=
|
||||
(arg2 as BooleanExpressionEvaluator).eval (bindings);
|
||||
|
||||
}
|
||||
|
||||
public static bool not (object arg1, object arg2, IDictionary bindings)
|
||||
{
|
||||
return
|
||||
!(arg1 as BooleanExpressionEvaluator).eval (bindings);
|
||||
}
|
||||
|
||||
public static bool booleanValue(object arg1, object arg2, IDictionary bindings)
|
||||
{
|
||||
return (bool)(arg1 as BooleanExpressionValue).getValue(bindings);
|
||||
}
|
||||
|
||||
public static bool myIsConversionLegal(Type t1, Type t2)
|
||||
{
|
||||
return
|
||||
myNumberTypes.Contains(t1) &&
|
||||
myNumberTypes.Contains(t2);
|
||||
}
|
||||
|
||||
public static bool smaller (object arg1, object arg2, IDictionary bindings)
|
||||
{
|
||||
object lobj = (arg1 as BooleanExpressionValue).getValue(bindings);
|
||||
object robj = (arg2 as BooleanExpressionValue).getValue(bindings);
|
||||
|
||||
try
|
||||
{
|
||||
if (lobj is DBNull && robj is DBNull)
|
||||
return false;
|
||||
|
||||
// anything is bigger than DBNull
|
||||
if (lobj is DBNull)
|
||||
return true;
|
||||
|
||||
if (robj is DBNull)
|
||||
return false;
|
||||
|
||||
if (lobj is string)
|
||||
lobj = ((string)lobj).Trim();
|
||||
|
||||
if (robj is string)
|
||||
robj = ((string)robj).Trim();
|
||||
|
||||
|
||||
|
||||
if (!lobj.GetType().Equals(robj.GetType()))
|
||||
{
|
||||
if (myIsConversionLegal(lobj.GetType(), robj.GetType()))
|
||||
lobj =
|
||||
Convert.ChangeType(lobj,robj.GetType());
|
||||
else if (myIsConversionLegal(robj.GetType(), lobj.GetType()))
|
||||
robj =
|
||||
Convert.ChangeType(robj,lobj.GetType());
|
||||
}
|
||||
|
||||
IComparable ic = lobj as IComparable;
|
||||
return ic.CompareTo(robj) < 0;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
//BlueEventLog.logEvent(String.Format("Comparison between {0} and {1} failed",
|
||||
// lobj == null? "null" : lobj, robj == null? null : robj),BlueEventLevel.Warning);
|
||||
//BlueEventLog.logEvent(e);
|
||||
throw (e);
|
||||
}
|
||||
}
|
||||
|
||||
public static bool equal (object arg1, object arg2, IDictionary bindings)
|
||||
{
|
||||
return
|
||||
!(smaller (arg1, arg2, bindings) )
|
||||
&&
|
||||
!(smaller (arg2, arg1, bindings));
|
||||
}
|
||||
|
||||
public static bool greater (object arg1, object arg2, IDictionary bindings)
|
||||
{
|
||||
return
|
||||
smaller (arg2,arg1, bindings);
|
||||
}
|
||||
|
||||
public static bool smallerEqual (object arg1, object arg2, IDictionary bindings)
|
||||
{
|
||||
return
|
||||
!greater(arg1, arg2, bindings);
|
||||
}
|
||||
|
||||
public static bool greaterEqual (object arg1, object arg2, IDictionary bindings)
|
||||
{
|
||||
return
|
||||
!smaller (arg1, arg2, bindings);
|
||||
}
|
||||
|
||||
public static bool different (object arg1, object arg2, IDictionary bindings)
|
||||
{
|
||||
return
|
||||
!equal (arg1, arg2, bindings);
|
||||
}
|
||||
|
||||
public static bool matches (object arg1, object arg2, IDictionary bindings)
|
||||
{
|
||||
try
|
||||
{
|
||||
object lobj = (arg1 as BooleanExpressionValue).getValue(bindings);
|
||||
object robj = (arg2 as BooleanExpressionValue).getValue(bindings);
|
||||
|
||||
if (DBNull.Value.Equals(lobj) && (robj is string))
|
||||
return false;
|
||||
else if (lobj is string && robj is string)
|
||||
return Regex.IsMatch((string) lobj, (string) robj);
|
||||
else
|
||||
throw new Exception(String.Format("Type mismatch, cannot string match {0} with {1}",
|
||||
lobj.GetType().Name,
|
||||
robj.GetType().Name));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
//BlueEventLog.logEvent(string.Format ("Comparison between {0} and {1} failed",
|
||||
// arg1 == null? "null" : arg1, arg2 == null? null : arg2));
|
||||
//BlueEventLog.logEvent(e);
|
||||
throw (e);
|
||||
}
|
||||
}
|
||||
|
||||
public object getOperand1()
|
||||
{return myArg1;}
|
||||
|
||||
public object getOperand2()
|
||||
{return myArg2;}
|
||||
|
||||
|
||||
private object myArg1;
|
||||
private object myArg2;
|
||||
private BooleanEval myF;
|
||||
|
||||
private static Hashtable myNumberTypes ;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,191 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.IO;
|
||||
using NUnit.Framework;
|
||||
using System.Diagnostics;
|
||||
using BCG.Evaluator.BooleanExpression;
|
||||
|
||||
namespace BCG
|
||||
{
|
||||
[TestFixture]
|
||||
public class BooleanExpressionsTests
|
||||
{
|
||||
[Test]
|
||||
public void testBooleanExpressions()
|
||||
{
|
||||
BCG.Evaluator.BooleanExpression.syntax parser =
|
||||
new BCG.Evaluator.BooleanExpression.syntax();
|
||||
|
||||
BooleanProgram exp = (BooleanProgram)parser.Parse("a=12/12/1912 and 2 = null or b=2 and not c=1 and b > a");
|
||||
|
||||
Hashtable h = new Hashtable();
|
||||
h["a"] = new DateTime(1912, 12, 12, 0, 0, 1);
|
||||
h["b"] = 2;
|
||||
h["c"] = 2;
|
||||
h["d"] = new DateTime(1912, 12, 12, 0, 0, 2);
|
||||
|
||||
Assert.That(exp.eval.eval(h));
|
||||
|
||||
parser =
|
||||
new BCG.Evaluator.BooleanExpression.syntax();
|
||||
|
||||
exp = (BooleanProgram)parser.Parse("a=1 and (b=2 or b=3)");
|
||||
|
||||
h = new Hashtable();
|
||||
h["a"] = 1;
|
||||
h["b"] = 5;
|
||||
|
||||
Assert.That(!exp.eval.eval(h));
|
||||
|
||||
// comparisons
|
||||
|
||||
// >
|
||||
exp = (BooleanProgram)parser.Parse("a>b");
|
||||
h = new Hashtable();
|
||||
h["a"] = 1;
|
||||
h["b"] = 5;
|
||||
|
||||
Assert.That(!exp.eval.eval(h));
|
||||
|
||||
h["a"] = 5;
|
||||
h["b"] = 1;
|
||||
|
||||
Assert.That(exp.eval.eval(h));
|
||||
|
||||
h["a"] = 1;
|
||||
h["b"] = 1;
|
||||
|
||||
Assert.That(!exp.eval.eval(h));
|
||||
|
||||
// <
|
||||
exp = (BooleanProgram)parser.Parse("a<b");
|
||||
h = new Hashtable();
|
||||
h["a"] = 1;
|
||||
h["b"] = 5;
|
||||
|
||||
Assert.That(exp.eval.eval(h));
|
||||
|
||||
h["a"] = 5;
|
||||
h["b"] = 1;
|
||||
|
||||
Assert.That(!exp.eval.eval(h));
|
||||
|
||||
h["a"] = 1;
|
||||
h["b"] = 1;
|
||||
|
||||
Assert.That(!exp.eval.eval(h));
|
||||
|
||||
|
||||
// =
|
||||
exp = (BooleanProgram)parser.Parse("a=b");
|
||||
h = new Hashtable();
|
||||
h["a"] = 1;
|
||||
h["b"] = 5;
|
||||
|
||||
Assert.That(!exp.eval.eval(h));
|
||||
|
||||
h["a"] = 1;
|
||||
h["b"] = 1;
|
||||
|
||||
Assert.That(exp.eval.eval(h));
|
||||
|
||||
|
||||
// <=
|
||||
exp = (BooleanProgram)parser.Parse("a<=b");
|
||||
h = new Hashtable();
|
||||
h["a"] = 1;
|
||||
h["b"] = 5;
|
||||
|
||||
Assert.That(exp.eval.eval(h));
|
||||
|
||||
h["a"] = 5;
|
||||
h["b"] = 1;
|
||||
|
||||
Assert.That(!exp.eval.eval(h));
|
||||
|
||||
h["a"] = 1;
|
||||
h["b"] = 1;
|
||||
|
||||
Assert.That(exp.eval.eval(h));
|
||||
|
||||
// >=
|
||||
exp = (BooleanProgram)parser.Parse("a>=b");
|
||||
h = new Hashtable();
|
||||
h["a"] = 1;
|
||||
h["b"] = 5;
|
||||
|
||||
Assert.That(!exp.eval.eval(h));
|
||||
|
||||
h["a"] = 5;
|
||||
h["b"] = 1;
|
||||
|
||||
Assert.That(exp.eval.eval(h));
|
||||
|
||||
h["a"] = 1;
|
||||
h["b"] = 1;
|
||||
|
||||
Assert.That(exp.eval.eval(h));
|
||||
|
||||
// <>
|
||||
exp = (BooleanProgram)parser.Parse("a<>b");
|
||||
h = new Hashtable();
|
||||
h["a"] = 1;
|
||||
h["b"] = 5;
|
||||
|
||||
Assert.That(exp.eval.eval(h));
|
||||
|
||||
h["a"] = 1;
|
||||
h["b"] = 1;
|
||||
|
||||
Assert.That(!exp.eval.eval(h));
|
||||
|
||||
// ~= (matches)
|
||||
exp = (BooleanProgram)parser.Parse("a~=b");
|
||||
h = new Hashtable();
|
||||
h["a"] = "test";
|
||||
h["b"] = "test";
|
||||
|
||||
Assert.That(exp.eval.eval(h));
|
||||
|
||||
h = new Hashtable();
|
||||
h["a"] = "test";
|
||||
h["b"] = "te.*";
|
||||
|
||||
Assert.That(exp.eval.eval(h));
|
||||
|
||||
h = new Hashtable();
|
||||
h["a"] = "test";
|
||||
h["b"] = "ti.*";
|
||||
|
||||
Assert.That(!exp.eval.eval(h));
|
||||
|
||||
h["a"] = DBNull.Value;
|
||||
h["b"] = "1";
|
||||
|
||||
Assert.That(!exp.eval.eval(h));
|
||||
|
||||
|
||||
// mixing ints and doubles
|
||||
exp = (BooleanProgram)parser.Parse("a=b");
|
||||
h = new Hashtable();
|
||||
h["a"] = 1.0;
|
||||
h["b"] = 5;
|
||||
|
||||
Assert.That(!exp.eval.eval(h));
|
||||
|
||||
exp = (BooleanProgram)parser.Parse("a=b");
|
||||
h = new Hashtable();
|
||||
h["a"] = 1;
|
||||
h["b"] = 1.0;
|
||||
|
||||
exp = (BooleanProgram)parser.Parse("a=b");
|
||||
h = new Hashtable();
|
||||
h["a"] = 1.1;
|
||||
h["b"] = 1;
|
||||
|
||||
Assert.That(!exp.eval.eval(h));
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,128 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Collections;
|
||||
|
||||
using BCG.Evaluator.BooleanExpression;
|
||||
|
||||
namespace BCG
|
||||
{
|
||||
public class BooleanExpressionsInterpreter
|
||||
{
|
||||
public class ParseTree
|
||||
{
|
||||
public BooleanProgram prog;
|
||||
}
|
||||
|
||||
BooleanExpressionEvaluator myEval;
|
||||
Dictionary<string, FunctionDefinition> myBindings = new Dictionary<string, FunctionDefinition>();
|
||||
|
||||
private string _exp;
|
||||
public BooleanExpressionsInterpreter(string exp, out ParseTree prog)
|
||||
{
|
||||
_exp = exp;
|
||||
myInit(exp, out prog);
|
||||
}
|
||||
|
||||
public BooleanExpressionsInterpreter(string exp)
|
||||
{
|
||||
ParseTree pt;
|
||||
myInit(exp, out pt);
|
||||
}
|
||||
|
||||
private void myInit(string exp, out ParseTree pt)
|
||||
{
|
||||
syntax parser = new syntax();
|
||||
try
|
||||
{
|
||||
pt = new ParseTree();
|
||||
BooleanProgram bp;
|
||||
pt.prog = (BooleanProgram)parser.Parse(exp);
|
||||
if (pt.prog == null)
|
||||
throw new BooleanExpressionsInterpreterException("{0} is not a valid boolean expression", exp);
|
||||
myExtractDefinitions(pt.prog.definitions, myBindings);
|
||||
myEval = pt.prog.eval;
|
||||
}
|
||||
catch (Tools.CSToolsFatalException)
|
||||
{
|
||||
throw new BooleanExpressionsInterpreterException("{0} is not a valid boolean expression", exp);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void myVisitNode(object node, Action<object> a)
|
||||
{
|
||||
a(node);
|
||||
if (node is BooleanExpression)
|
||||
{
|
||||
BooleanExpression be = (BooleanExpression)node;
|
||||
foreach (object child in be.kids)
|
||||
myVisitNode(child, a);
|
||||
}
|
||||
}
|
||||
public void walkParseStree(Action<object> a, ParseTree pt)
|
||||
{
|
||||
foreach (object node in pt.prog.kids)
|
||||
myVisitNode(node, a);
|
||||
}
|
||||
|
||||
public Dictionary<string, bool> getAllIdentifiers(ParseTree pt)
|
||||
{
|
||||
Dictionary<string, bool> bindings = new Dictionary<string, bool>();
|
||||
Action<object> a = (o) =>
|
||||
{
|
||||
if (o is IdentifierValue)
|
||||
{
|
||||
BooleanExpressionValue bev = ((IdentifierValue)o).eval;
|
||||
BooleanExpressionVariable bvar = (BooleanExpressionVariable)bev;
|
||||
bindings[bvar.getId()] = true;
|
||||
}
|
||||
else if (o is FunctionValue)
|
||||
{
|
||||
BooleanExpressionValue bev = ((FunctionValue)o).eval;
|
||||
BooleanExpressionFunction func = (BooleanExpressionFunction)bev;
|
||||
bindings[func.getId()] = false;
|
||||
}
|
||||
};
|
||||
walkParseStree(a, pt);
|
||||
return bindings;
|
||||
}
|
||||
private void myExtractDefinitions(Definitions definitions,
|
||||
Dictionary<string, FunctionDefinition> bindings)
|
||||
{
|
||||
if (definitions != null)
|
||||
{
|
||||
SingleDef d = definitions.def;
|
||||
List<string> args = new List<string>();
|
||||
myExtractArg(d.args, args);
|
||||
|
||||
bindings[functionPrefix + d.id] = new FunctionDefinition
|
||||
{ name = d.id, args = args, evaluator = d.eval };
|
||||
myExtractDefinitions(definitions.next, bindings);
|
||||
}
|
||||
}
|
||||
|
||||
public int nDefinitions()
|
||||
{ return myBindings.Count; }
|
||||
|
||||
private void myExtractArg(DefArgList args, List<string> argList)
|
||||
{
|
||||
if (args != null && args.arg != null)
|
||||
{
|
||||
argList.Add(args.arg);
|
||||
myExtractArg(args.rest, argList);
|
||||
}
|
||||
}
|
||||
|
||||
// there are repeated here so clients do not have to know about BooleanExpressionEvaluator
|
||||
public static string functionPrefix = BooleanExpressionEvaluator.functionPrefix;
|
||||
public delegate object Function(List<object> args);
|
||||
public object makeCBWrapper(Function f)
|
||||
{ return new BEFunction((lst) => { return f(lst); }); }
|
||||
|
||||
|
||||
public bool eval(IDictionary bindings)
|
||||
{ return myEval.eval(new EvaluationEnvironment(bindings, myBindings)); }
|
||||
}
|
||||
}
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="NUnit" Version="3.13.3" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\BooleanExpressions\BooleanExpressions.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Reference Include="Tools">
|
||||
<HintPath>$(Externals)\bin\cstools\Tools.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace BCG
|
||||
{
|
||||
public class BooleanExpressionsInterpreterException : System.Exception
|
||||
{
|
||||
public BooleanExpressionsInterpreterException(string fmt, params object[] args)
|
||||
: base(String.Format(fmt, args))
|
||||
{ }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,232 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace BCG
|
||||
{
|
||||
class EvaluationEnvironment : IDictionary
|
||||
{
|
||||
IDictionary myUserBindings;
|
||||
Dictionary<string, FunctionDefinition> myDefinitions;
|
||||
public EvaluationEnvironment(IDictionary userBindings, Dictionary<string, FunctionDefinition> definitions)
|
||||
{
|
||||
this.myUserBindings = userBindings;
|
||||
this.myDefinitions = definitions;
|
||||
}
|
||||
|
||||
|
||||
class Override : IDictionary
|
||||
{
|
||||
public Override(IDictionary d1, IDictionary d2)
|
||||
{
|
||||
myPrimary = d1;
|
||||
mySecondary = d2;
|
||||
}
|
||||
public bool Contains(object key)
|
||||
{
|
||||
return
|
||||
myPrimary.Contains(key)||
|
||||
mySecondary.Contains(key);
|
||||
}
|
||||
|
||||
public object this[object key]
|
||||
{
|
||||
get
|
||||
{
|
||||
if (myPrimary.Contains(key))
|
||||
return myPrimary[key];
|
||||
else
|
||||
return mySecondary[key];
|
||||
}
|
||||
set
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
|
||||
IDictionary myPrimary;
|
||||
IDictionary mySecondary;
|
||||
|
||||
#region Useless IDictionary Members
|
||||
public void Add(object key, object value)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public void Clear()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public IDictionaryEnumerator GetEnumerator()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public bool IsFixedSize
|
||||
{
|
||||
get { throw new NotImplementedException(); }
|
||||
}
|
||||
|
||||
public bool IsReadOnly
|
||||
{
|
||||
get { throw new NotImplementedException(); }
|
||||
}
|
||||
|
||||
public ICollection Keys
|
||||
{
|
||||
get { throw new NotImplementedException(); }
|
||||
}
|
||||
|
||||
public void Remove(object key)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public ICollection Values
|
||||
{
|
||||
get { throw new NotImplementedException(); }
|
||||
}
|
||||
|
||||
public void CopyTo(Array array, int index)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public int Count
|
||||
{
|
||||
get { throw new NotImplementedException(); }
|
||||
}
|
||||
|
||||
public bool IsSynchronized
|
||||
{
|
||||
get { throw new NotImplementedException(); }
|
||||
}
|
||||
|
||||
public object SyncRoot
|
||||
{
|
||||
get { throw new NotImplementedException(); }
|
||||
}
|
||||
|
||||
|
||||
|
||||
IEnumerator IEnumerable.GetEnumerator()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
|
||||
public bool Contains(object key)
|
||||
{
|
||||
if (myDefinitions.ContainsKey(key.ToString()))
|
||||
return true;
|
||||
else
|
||||
return myUserBindings.Contains(key);
|
||||
}
|
||||
public object this[object key]
|
||||
{
|
||||
get
|
||||
{
|
||||
if (myDefinitions.ContainsKey(key.ToString()))
|
||||
{
|
||||
FunctionDefinition fd = myDefinitions[key.ToString()];
|
||||
return new BEFunction((args) =>
|
||||
{
|
||||
if (args.Count != fd.args.Count)
|
||||
throw new BooleanExpressionsInterpreterException("Parameter count mismatch for {0}. Expected: {1} Got: {2}",
|
||||
fd.name, fd.args.Count, args.Count);
|
||||
else
|
||||
{
|
||||
Hashtable newBindings = new Hashtable();
|
||||
for (int i = 0; i < args.Count; i++)
|
||||
newBindings[fd.args[i]] = args[i];
|
||||
return fd.evaluator.eval(new EvaluationEnvironment(new Override(newBindings, myUserBindings), myDefinitions));
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
else
|
||||
return myUserBindings[key];
|
||||
}
|
||||
set
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
|
||||
#region Useless IDictionary Members
|
||||
public void Add(object key, object value)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public void Clear()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public IDictionaryEnumerator GetEnumerator()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public bool IsFixedSize
|
||||
{
|
||||
get { throw new NotImplementedException(); }
|
||||
}
|
||||
|
||||
public bool IsReadOnly
|
||||
{
|
||||
get { throw new NotImplementedException(); }
|
||||
}
|
||||
|
||||
public ICollection Keys
|
||||
{
|
||||
get { throw new NotImplementedException(); }
|
||||
}
|
||||
|
||||
public void Remove(object key)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public ICollection Values
|
||||
{
|
||||
get { throw new NotImplementedException(); }
|
||||
}
|
||||
|
||||
public void CopyTo(Array array, int index)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public int Count
|
||||
{
|
||||
get { throw new NotImplementedException(); }
|
||||
}
|
||||
|
||||
public bool IsSynchronized
|
||||
{
|
||||
get { throw new NotImplementedException(); }
|
||||
}
|
||||
|
||||
public object SyncRoot
|
||||
{
|
||||
get { throw new NotImplementedException(); }
|
||||
}
|
||||
|
||||
|
||||
|
||||
IEnumerator IEnumerable.GetEnumerator()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace BCG
|
||||
{
|
||||
class FunctionDefinition
|
||||
{
|
||||
public string name;
|
||||
public List<string> args;
|
||||
public BooleanExpressionEvaluator evaluator;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using NUnit.Framework;
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace BCG
|
||||
{
|
||||
[TestFixture]
|
||||
public class BooleaExpressionTests
|
||||
{
|
||||
[Test]
|
||||
public void baseTest()
|
||||
{
|
||||
var interp =
|
||||
new BooleanExpressionsInterpreter("1=1");
|
||||
Assert.IsTrue(interp.eval(new Dictionary<string, object>()));
|
||||
|
||||
interp = new BooleanExpressionsInterpreter(@"define a() { true }
|
||||
define f() { a and b and c}
|
||||
define g(a,b,c) { a and b and c}
|
||||
true");
|
||||
Assert.IsTrue(interp.eval(new Dictionary<string, object>()));
|
||||
|
||||
interp = new BooleanExpressionsInterpreter("id>0");
|
||||
Assert.IsTrue(interp.eval(new Dictionary<string, object> { { "id", 1 } }));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void getAllIdentifiersWorks()
|
||||
{
|
||||
BooleanExpressionsInterpreter.ParseTree pt;
|
||||
var interp =
|
||||
new BooleanExpressionsInterpreter("a=12/12/1912 and 2 = null or b=2 and not c=1 and b > a and f(1,2) > y(2,3)",out pt);
|
||||
Dictionary<string, bool> ids = interp.getAllIdentifiers(pt);
|
||||
Assert.AreEqual(ids.Count, 5);
|
||||
Assert.IsTrue(ids["a"]);
|
||||
Assert.IsTrue(ids["b"]);
|
||||
Assert.IsTrue(ids["c"]);
|
||||
Assert.IsFalse(ids["f"]);
|
||||
Assert.IsFalse(ids["y"]);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void parameterPassingWorks()
|
||||
{
|
||||
var interp = new BooleanExpressionsInterpreter(@"define inOrder(a,b,c) { a >= b and b >= c}
|
||||
inOrder(x,y,z)");
|
||||
|
||||
Assert.IsTrue(interp.eval(new Dictionary<string, object>{{"x",3},{"y",2},{"z",1}}));
|
||||
Assert.IsFalse(interp.eval(new Dictionary<string, object> { { "x", 1 }, {"y", 2 }, {"z", 3} }));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void parametersHaveCorretScope()
|
||||
{
|
||||
var interp = new BooleanExpressionsInterpreter(@"define inOrder(z,y,x) { z >= y and y >= x}
|
||||
inOrder(x,y,z)");
|
||||
|
||||
Assert.IsTrue(interp.eval(new Dictionary<string, object> { { "x", 3 }, { "y", 2 }, { "z", 1 } }));
|
||||
Assert.IsFalse(interp.eval(new Dictionary<string, object> { { "x", 1 }, { "y", 2 }, { "z", 3 } }));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void functionsCanCallOtherFunctions()
|
||||
{
|
||||
var interp = new BooleanExpressionsInterpreter(
|
||||
@"define ascending(x,y,z) { x <= y and y <= z}
|
||||
define descending(x,y,z) { ascending(z,y,x)}
|
||||
descending(x,y,z)");
|
||||
|
||||
Assert.IsTrue(interp.eval(new Dictionary<string, object> { { "x", 3 }, { "y", 2 }, { "z", 1 } }));
|
||||
Assert.IsFalse(interp.eval(new Dictionary<string, object> { { "x", 1 }, { "y", 2 }, { "z", 3 } }));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void evaluationHasDynamicScope()
|
||||
{
|
||||
var interp = new BooleanExpressionsInterpreter(
|
||||
@"define isEquity(){ group='Equity'}
|
||||
isEquity()");
|
||||
|
||||
Assert.IsTrue(interp.eval(new Dictionary<string, object> { { "group", "Equity" } }));
|
||||
Assert.IsFalse(interp.eval(new Dictionary<string, object> { { "group", "NotEquity" } }));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\BooleanExpressionsInterpreter\BooleanExpressionsInterpreter.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Reference Include="Tools">
|
||||
<HintPath>$(Externals)\bin\cstools\Tools.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Include="$(DataStreamGrammarDir)\ArithmeticTokens.lexer.cs" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Include="$(DataStreamGrammarDir)\ArithmeticSyntax.parser.cs" />
|
||||
<Compile Include="$(DataStreamGrammarDir)\ColumnMapExpressionSyntax.parser.cs" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,14 @@
|
||||
namespace BCG {
|
||||
using System;
|
||||
using System.Collections;
|
||||
|
||||
public class PrimitiveManager {
|
||||
public static PrimitiveManager instance => throw new NotImplementedException();
|
||||
|
||||
public ViewStream build(string friendlyName, ICollection args) =>
|
||||
throw new NotImplementedException();
|
||||
|
||||
public string find(string friendlyName) =>
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
namespace BCG {
|
||||
public class TableStream : ViewStream {
|
||||
public TableStream(string name) {}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
namespace BCG {
|
||||
public class ViewStream {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,15 @@
|
||||
%parser ArithmeticTokens.lexer
|
||||
%namespace BCG.ArithmeticExpression
|
||||
|
||||
%left Plus Minus
|
||||
%left Times Div
|
||||
%before Minus
|
||||
%nonassoc Equals
|
||||
|
||||
BindingExpression: BindingExpression Assignment | Assignment;
|
||||
Assignment: Identifier Equals Expression;
|
||||
Expression : Expression Plus Term | Expression Minus Term | Term;
|
||||
Term : Term Times Factor | Term Div Factor | Factor;
|
||||
Factor : Application | Identifier | IntegerConstant | RealConstant | Minus Factor | OpenP Expression CloseP;
|
||||
Application : Identifier OpenP ExpressionList CloseP;
|
||||
ExpressionList : | ExpressionList Comma Expression | Expression;
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,43 @@
|
||||
%lexer
|
||||
%namespace BCG.ArithmeticExpression
|
||||
|
||||
// -------------------------------------------------------------------------------
|
||||
// Literal constants
|
||||
//--------------------------------------------------------------------------------
|
||||
%define TimeConstant [012]?{Digit}:[0-5]{Digit}:[0-5]{Digit}[ ]('AM'|'PM')
|
||||
%define DateConstant ([1-9]|'10'|'11'|'12')\/([1-9]|([1-2][0-9])|'30'|'31')\/{Digit}{Digit}{Digit}*
|
||||
|
||||
%token NumberConstant {
|
||||
public object value;
|
||||
}
|
||||
%token IntegerConstant : NumberConstant {}
|
||||
%token RealConstant : NumberConstant {}
|
||||
|
||||
|
||||
-?{Digit}+ %IntegerConstant {value = Int32.Parse(yytext);}
|
||||
-?{Digit}+\.{Digit}+ %RealConstant {value = Double.Parse(yytext);}
|
||||
|
||||
|
||||
// --------------------------------------------------------------------------------
|
||||
// Identifiers
|
||||
// --------------------------------------------------------------------------------
|
||||
|
||||
{Letter}({Letter}*{Digit}*_*)* %Identifier
|
||||
|
||||
// --------------------------------------------------------------------------------
|
||||
// Utility tokens
|
||||
// --------------------------------------------------------------------------------
|
||||
|
||||
"(" %OpenP
|
||||
")" %CloseP
|
||||
"-" %Minus
|
||||
"*" %Times
|
||||
"/" %Div
|
||||
"," %Comma
|
||||
"+" %Plus
|
||||
"=" %Equals
|
||||
'\/\/'[^\n\r]* ;
|
||||
[ \t\r\n] ;
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,948 @@
|
||||
using System;using Tools;
|
||||
namespace BCG.ArithmeticExpression {
|
||||
//%+NumberConstant
|
||||
[Serializable] public class NumberConstant : TOKEN{
|
||||
public object value ;
|
||||
|
||||
public override string yyname() { return "NumberConstant"; }
|
||||
public NumberConstant(Lexer yyl):base(yyl){}}
|
||||
//%+IntegerConstant
|
||||
[Serializable] public class IntegerConstant : NumberConstant{
|
||||
|
||||
public override string yyname() { return "IntegerConstant"; }
|
||||
public IntegerConstant(Lexer yyl):base(yyl){}}
|
||||
//%+RealConstant
|
||||
[Serializable] public class RealConstant : NumberConstant{
|
||||
|
||||
public override string yyname() { return "RealConstant"; }
|
||||
public RealConstant(Lexer yyl):base(yyl){}}
|
||||
[Serializable] public class IntegerConstant_1 : IntegerConstant {
|
||||
public IntegerConstant_1(Lexer yym):base(yym) {value = Int32.Parse(yytext);}}
|
||||
[Serializable] public class RealConstant_1 : RealConstant {
|
||||
public RealConstant_1(Lexer yym):base(yym) {value = Double.Parse(yytext);}}
|
||||
//%Identifier
|
||||
[Serializable] public class Identifier : TOKEN{ public override string yyname() { return "Identifier";}
|
||||
public Identifier(Lexer yyl):base(yyl) {}}
|
||||
//%OpenP
|
||||
[Serializable] public class OpenP : TOKEN{ public override string yyname() { return "OpenP";}
|
||||
public OpenP(Lexer yyl):base(yyl) {}}
|
||||
//%CloseP
|
||||
[Serializable] public class CloseP : TOKEN{ public override string yyname() { return "CloseP";}
|
||||
public CloseP(Lexer yyl):base(yyl) {}}
|
||||
//%Minus
|
||||
[Serializable] public class Minus : TOKEN{ public override string yyname() { return "Minus";}
|
||||
public Minus(Lexer yyl):base(yyl) {}}
|
||||
//%Times
|
||||
[Serializable] public class Times : TOKEN{ public override string yyname() { return "Times";}
|
||||
public Times(Lexer yyl):base(yyl) {}}
|
||||
//%Div
|
||||
[Serializable] public class Div : TOKEN{ public override string yyname() { return "Div";}
|
||||
public Div(Lexer yyl):base(yyl) {}}
|
||||
//%Comma
|
||||
[Serializable] public class Comma : TOKEN{ public override string yyname() { return "Comma";}
|
||||
public Comma(Lexer yyl):base(yyl) {}}
|
||||
//%Plus
|
||||
[Serializable] public class Plus : TOKEN{ public override string yyname() { return "Plus";}
|
||||
public Plus(Lexer yyl):base(yyl) {}}
|
||||
//%Equals
|
||||
[Serializable] public class Equals : TOKEN{ public override string yyname() { return "Equals";}
|
||||
public Equals(Lexer yyl):base(yyl) {}}
|
||||
//%|tokens
|
||||
public class yytokens : Tokens {
|
||||
public yytokens(ErrorHandler eh):base(eh) { arr = new byte[] {
|
||||
0,1,0,0,0,255,255,255,255,1,
|
||||
0,0,0,0,0,0,0,4,1,0,0,
|
||||
0,25,83,121,115,116,101,109,46,84,101,
|
||||
120,116,46,65,83,67,73,73,69,110,99,
|
||||
111,100,105,110,103,9,0,0,0,10,109,
|
||||
95,99,111,100,101,80,97,103,101,8,100,
|
||||
97,116,97,73,116,101,109,15,101,110,99,
|
||||
111,100,101,114,70,97,108,108,98,97,99,
|
||||
107,15,100,101,99,111,100,101,114,70,97,
|
||||
108,108,98,97,99,107,19,69,110,99,111,
|
||||
100,105,110,103,43,109,95,99,111,100,101,
|
||||
80,97,103,101,17,69,110,99,111,100,105,
|
||||
110,103,43,100,97,116,97,73,116,101,109,
|
||||
21,69,110,99,111,100,105,110,103,43,109,
|
||||
95,105,115,82,101,97,100,79,110,108,121,
|
||||
24,69,110,99,111,100,105,110,103,43,101,
|
||||
110,99,111,100,101,114,70,97,108,108,98,
|
||||
97,99,107,24,69,110,99,111,100,105,110,
|
||||
103,43,100,101,99,111,100,101,114,70,97,
|
||||
108,108,98,97,99,107,0,3,3,3,0,
|
||||
3,0,3,3,8,37,83,121,115,116,101,
|
||||
109,46,71,108,111,98,97,108,105,122,97,
|
||||
116,105,111,110,46,67,111,100,101,80,97,
|
||||
103,101,68,97,116,97,73,116,101,109,38,
|
||||
83,121,115,116,101,109,46,84,101,120,116,
|
||||
46,69,110,99,111,100,101,114,82,101,112,
|
||||
108,97,99,101,109,101,110,116,70,97,108,
|
||||
108,98,97,99,107,38,83,121,115,116,101,
|
||||
109,46,84,101,120,116,46,68,101,99,111,
|
||||
100,101,114,82,101,112,108,97,99,101,109,
|
||||
101,110,116,70,97,108,108,98,97,99,107,
|
||||
8,37,83,121,115,116,101,109,46,71,108,
|
||||
111,98,97,108,105,122,97,116,105,111,110,
|
||||
46,67,111,100,101,80,97,103,101,68,97,
|
||||
116,97,73,116,101,109,1,38,83,121,115,
|
||||
116,101,109,46,84,101,120,116,46,69,110,
|
||||
99,111,100,101,114,82,101,112,108,97,99,
|
||||
101,109,101,110,116,70,97,108,108,98,97,
|
||||
99,107,38,83,121,115,116,101,109,46,84,
|
||||
101,120,116,46,68,101,99,111,100,101,114,
|
||||
82,101,112,108,97,99,101,109,101,110,116,
|
||||
70,97,108,108,98,97,99,107,159,78,0,
|
||||
0,10,9,2,0,0,0,9,3,0,0,
|
||||
0,159,78,0,0,10,1,9,2,0,0,
|
||||
0,9,3,0,0,0,4,2,0,0,0,
|
||||
38,83,121,115,116,101,109,46,84,101,120,
|
||||
116,46,69,110,99,111,100,101,114,82,101,
|
||||
112,108,97,99,101,109,101,110,116,70,97,
|
||||
108,108,98,97,99,107,3,0,0,0,10,
|
||||
115,116,114,68,101,102,97,117,108,116,27,
|
||||
98,73,115,77,105,99,114,111,115,111,102,
|
||||
116,66,101,115,116,70,105,116,70,97,108,
|
||||
108,98,97,99,107,43,69,110,99,111,100,
|
||||
101,114,70,97,108,108,98,97,99,107,43,
|
||||
98,73,115,77,105,99,114,111,115,111,102,
|
||||
116,66,101,115,116,70,105,116,70,97,108,
|
||||
108,98,97,99,107,1,0,0,1,1,6,
|
||||
6,0,0,0,1,63,0,0,4,3,0,
|
||||
0,0,38,83,121,115,116,101,109,46,84,
|
||||
101,120,116,46,68,101,99,111,100,101,114,
|
||||
82,101,112,108,97,99,101,109,101,110,116,
|
||||
70,97,108,108,98,97,99,107,3,0,0,
|
||||
0,10,115,116,114,68,101,102,97,117,108,
|
||||
116,27,98,73,115,77,105,99,114,111,115,
|
||||
111,102,116,66,101,115,116,70,105,116,70,
|
||||
97,108,108,98,97,99,107,43,68,101,99,
|
||||
111,100,101,114,70,97,108,108,98,97,99,
|
||||
107,43,98,73,115,77,105,99,114,111,115,
|
||||
111,102,116,66,101,115,116,70,105,116,70,
|
||||
97,108,108,98,97,99,107,1,0,0,1,
|
||||
1,9,6,0,0,0,0,0,11,0,1,
|
||||
0,0,0,255,255,255,255,1,0,0,0,
|
||||
0,0,0,0,4,1,0,0,0,14,83,
|
||||
121,115,116,101,109,46,66,111,111,108,101,
|
||||
97,110,1,0,0,0,7,109,95,118,97,
|
||||
108,117,101,0,1,0,11,0,1,0,0,
|
||||
0,255,255,255,255,1,0,0,0,0,0,
|
||||
0,0,4,1,0,0,0,28,83,121,115,
|
||||
116,101,109,46,67,111,108,108,101,99,116,
|
||||
105,111,110,115,46,72,97,115,104,116,97,
|
||||
98,108,101,7,0,0,0,10,76,111,97,
|
||||
100,70,97,99,116,111,114,7,86,101,114,
|
||||
115,105,111,110,8,67,111,109,112,97,114,
|
||||
101,114,16,72,97,115,104,67,111,100,101,
|
||||
80,114,111,118,105,100,101,114,8,72,97,
|
||||
115,104,83,105,122,101,4,75,101,121,115,
|
||||
6,86,97,108,117,101,115,0,0,3,3,
|
||||
0,5,5,11,8,28,83,121,115,116,101,
|
||||
109,46,67,111,108,108,101,99,116,105,111,
|
||||
110,115,46,73,67,111,109,112,97,114,101,
|
||||
114,36,83,121,115,116,101,109,46,67,111,
|
||||
108,108,101,99,116,105,111,110,115,46,73,
|
||||
72,97,115,104,67,111,100,101,80,114,111,
|
||||
118,105,100,101,114,8,236,81,56,63,31,
|
||||
0,0,0,10,10,47,0,0,0,9,2,
|
||||
0,0,0,9,3,0,0,0,16,2,0,
|
||||
0,0,29,0,0,0,9,4,0,0,0,
|
||||
9,5,0,0,0,9,6,0,0,0,9,
|
||||
7,0,0,0,9,8,0,0,0,9,9,
|
||||
0,0,0,9,10,0,0,0,9,11,0,
|
||||
0,0,9,12,0,0,0,9,13,0,0,
|
||||
0,9,14,0,0,0,9,15,0,0,0,
|
||||
9,16,0,0,0,9,17,0,0,0,9,
|
||||
18,0,0,0,9,19,0,0,0,9,20,
|
||||
0,0,0,9,21,0,0,0,9,22,0,
|
||||
0,0,9,23,0,0,0,9,24,0,0,
|
||||
0,9,25,0,0,0,9,26,0,0,0,
|
||||
9,27,0,0,0,9,28,0,0,0,9,
|
||||
29,0,0,0,9,30,0,0,0,9,31,
|
||||
0,0,0,9,32,0,0,0,16,3,0,
|
||||
0,0,29,0,0,0,9,33,0,0,0,
|
||||
9,34,0,0,0,9,35,0,0,0,9,
|
||||
36,0,0,0,9,37,0,0,0,9,38,
|
||||
0,0,0,9,39,0,0,0,9,40,0,
|
||||
0,0,9,41,0,0,0,9,42,0,0,
|
||||
0,9,43,0,0,0,9,44,0,0,0,
|
||||
9,45,0,0,0,9,46,0,0,0,9,
|
||||
47,0,0,0,9,48,0,0,0,9,49,
|
||||
0,0,0,9,50,0,0,0,9,51,0,
|
||||
0,0,9,52,0,0,0,9,53,0,0,
|
||||
0,9,54,0,0,0,9,55,0,0,0,
|
||||
9,56,0,0,0,9,57,0,0,0,9,
|
||||
58,0,0,0,9,59,0,0,0,9,60,
|
||||
0,0,0,9,61,0,0,0,4,4,0,
|
||||
0,0,36,83,121,115,116,101,109,46,71,
|
||||
108,111,98,97,108,105,122,97,116,105,111,
|
||||
110,46,85,110,105,99,111,100,101,67,97,
|
||||
116,101,103,111,114,121,1,0,0,0,7,
|
||||
118,97,108,117,101,95,95,0,8,29,0,
|
||||
0,0,1,5,0,0,0,4,0,0,0,
|
||||
28,0,0,0,1,6,0,0,0,4,0,
|
||||
0,0,27,0,0,0,1,7,0,0,0,
|
||||
4,0,0,0,26,0,0,0,1,8,0,
|
||||
0,0,4,0,0,0,25,0,0,0,1,
|
||||
9,0,0,0,4,0,0,0,24,0,0,
|
||||
0,1,10,0,0,0,4,0,0,0,23,
|
||||
0,0,0,1,11,0,0,0,4,0,0,
|
||||
0,22,0,0,0,1,12,0,0,0,4,
|
||||
0,0,0,21,0,0,0,1,13,0,0,
|
||||
0,4,0,0,0,20,0,0,0,1,14,
|
||||
0,0,0,4,0,0,0,19,0,0,0,
|
||||
1,15,0,0,0,4,0,0,0,18,0,
|
||||
0,0,1,16,0,0,0,4,0,0,0,
|
||||
17,0,0,0,1,17,0,0,0,4,0,
|
||||
0,0,15,0,0,0,1,18,0,0,0,
|
||||
4,0,0,0,14,0,0,0,1,19,0,
|
||||
0,0,4,0,0,0,13,0,0,0,1,
|
||||
20,0,0,0,4,0,0,0,12,0,0,
|
||||
0,1,21,0,0,0,4,0,0,0,11,
|
||||
0,0,0,1,22,0,0,0,4,0,0,
|
||||
0,10,0,0,0,1,23,0,0,0,4,
|
||||
0,0,0,9,0,0,0,1,24,0,0,
|
||||
0,4,0,0,0,8,0,0,0,1,25,
|
||||
0,0,0,4,0,0,0,7,0,0,0,
|
||||
1,26,0,0,0,4,0,0,0,6,0,
|
||||
0,0,1,27,0,0,0,4,0,0,0,
|
||||
5,0,0,0,1,28,0,0,0,4,0,
|
||||
0,0,4,0,0,0,1,29,0,0,0,
|
||||
4,0,0,0,3,0,0,0,1,30,0,
|
||||
0,0,4,0,0,0,2,0,0,0,1,
|
||||
31,0,0,0,4,0,0,0,1,0,0,
|
||||
0,1,32,0,0,0,4,0,0,0,0,
|
||||
0,0,0,12,62,0,0,0,60,84,111,
|
||||
111,108,115,44,32,86,101,114,115,105,111,
|
||||
110,61,48,46,48,46,48,46,48,44,32,
|
||||
67,117,108,116,117,114,101,61,110,101,117,
|
||||
116,114,97,108,44,32,80,117,98,108,105,
|
||||
99,75,101,121,84,111,107,101,110,61,110,
|
||||
117,108,108,5,33,0,0,0,13,84,111,
|
||||
111,108,115,46,67,104,97,114,115,101,116,
|
||||
3,0,0,0,5,109,95,99,97,116,9,
|
||||
109,95,103,101,110,101,114,105,99,7,109,
|
||||
95,99,104,97,114,115,3,0,3,36,83,
|
||||
121,115,116,101,109,46,71,108,111,98,97,
|
||||
108,105,122,97,116,105,111,110,46,85,110,
|
||||
105,99,111,100,101,67,97,116,101,103,111,
|
||||
114,121,3,28,83,121,115,116,101,109,46,
|
||||
67,111,108,108,101,99,116,105,111,110,115,
|
||||
46,72,97,115,104,116,97,98,108,101,62,
|
||||
0,0,0,1,193,255,255,255,4,0,0,
|
||||
0,29,0,0,0,205,176,9,64,0,0,
|
||||
0,1,34,0,0,0,33,0,0,0,1,
|
||||
191,255,255,255,4,0,0,0,28,0,0,
|
||||
0,194,166,9,66,0,0,0,1,35,0,
|
||||
0,0,33,0,0,0,1,189,255,255,255,
|
||||
4,0,0,0,27,0,0,0,94,9,68,
|
||||
0,0,0,1,36,0,0,0,33,0,0,
|
||||
0,1,187,255,255,255,4,0,0,0,26,
|
||||
0,0,0,36,9,70,0,0,0,1,37,
|
||||
0,0,0,33,0,0,0,1,185,255,255,
|
||||
255,4,0,0,0,25,0,0,0,60,9,
|
||||
72,0,0,0,1,38,0,0,0,33,0,
|
||||
0,0,1,183,255,255,255,4,0,0,0,
|
||||
24,0,0,0,33,9,74,0,0,0,1,
|
||||
39,0,0,0,33,0,0,0,1,181,255,
|
||||
255,255,4,0,0,0,23,0,0,0,194,
|
||||
187,9,76,0,0,0,1,40,0,0,0,
|
||||
33,0,0,0,1,179,255,255,255,4,0,
|
||||
0,0,22,0,0,0,194,171,9,78,0,
|
||||
0,0,1,41,0,0,0,33,0,0,0,
|
||||
1,177,255,255,255,4,0,0,0,21,0,
|
||||
0,0,93,9,80,0,0,0,1,42,0,
|
||||
0,0,33,0,0,0,1,175,255,255,255,
|
||||
4,0,0,0,20,0,0,0,91,9,82,
|
||||
0,0,0,1,43,0,0,0,33,0,0,
|
||||
0,1,173,255,255,255,4,0,0,0,19,
|
||||
0,0,0,194,173,9,84,0,0,0,1,
|
||||
44,0,0,0,33,0,0,0,1,171,255,
|
||||
255,255,4,0,0,0,18,0,0,0,226,
|
||||
128,191,9,86,0,0,0,1,45,0,0,
|
||||
0,33,0,0,0,1,169,255,255,255,4,
|
||||
0,0,0,17,0,0,0,238,128,128,9,
|
||||
88,0,0,0,1,46,0,0,0,33,0,
|
||||
0,0,1,167,255,255,255,4,0,0,0,
|
||||
15,0,0,0,216,128,9,90,0,0,0,
|
||||
1,47,0,0,0,33,0,0,0,1,165,
|
||||
255,255,255,4,0,0,0,14,0,0,0,
|
||||
1,9,92,0,0,0,1,48,0,0,0,
|
||||
33,0,0,0,1,163,255,255,255,4,0,
|
||||
0,0,13,0,0,0,226,128,169,9,94,
|
||||
0,0,0,1,49,0,0,0,33,0,0,
|
||||
0,1,161,255,255,255,4,0,0,0,12,
|
||||
0,0,0,226,128,168,9,96,0,0,0,
|
||||
1,50,0,0,0,33,0,0,0,1,159,
|
||||
255,255,255,4,0,0,0,11,0,0,0,
|
||||
194,160,9,98,0,0,0,1,51,0,0,
|
||||
0,33,0,0,0,1,157,255,255,255,4,
|
||||
0,0,0,10,0,0,0,194,178,9,100,
|
||||
0,0,0,1,52,0,0,0,33,0,0,
|
||||
0,1,155,255,255,255,4,0,0,0,9,
|
||||
0,0,0,225,155,174,9,102,0,0,0,
|
||||
1,53,0,0,0,33,0,0,0,1,153,
|
||||
255,255,255,4,0,0,0,8,0,0,0,
|
||||
48,9,104,0,0,0,1,54,0,0,0,
|
||||
33,0,0,0,1,151,255,255,255,4,0,
|
||||
0,0,7,0,0,0,210,136,9,106,0,
|
||||
0,0,1,55,0,0,0,33,0,0,0,
|
||||
1,149,255,255,255,4,0,0,0,6,0,
|
||||
0,0,224,164,131,9,108,0,0,0,1,
|
||||
56,0,0,0,33,0,0,0,1,147,255,
|
||||
255,255,4,0,0,0,5,0,0,0,204,
|
||||
128,9,110,0,0,0,1,57,0,0,0,
|
||||
33,0,0,0,1,145,255,255,255,4,0,
|
||||
0,0,4,0,0,0,198,187,9,112,0,
|
||||
0,0,1,58,0,0,0,33,0,0,0,
|
||||
1,143,255,255,255,4,0,0,0,3,0,
|
||||
0,0,202,176,9,114,0,0,0,1,59,
|
||||
0,0,0,33,0,0,0,1,141,255,255,
|
||||
255,4,0,0,0,2,0,0,0,199,133,
|
||||
9,116,0,0,0,1,60,0,0,0,33,
|
||||
0,0,0,1,139,255,255,255,4,0,0,
|
||||
0,1,0,0,0,97,9,118,0,0,0,
|
||||
1,61,0,0,0,33,0,0,0,1,137,
|
||||
255,255,255,4,0,0,0,0,0,0,0,
|
||||
65,9,120,0,0,0,1,64,0,0,0,
|
||||
1,0,0,0,236,81,56,63,1,0,0,
|
||||
0,10,10,11,0,0,0,9,121,0,0,
|
||||
0,9,122,0,0,0,1,66,0,0,0,
|
||||
1,0,0,0,236,81,56,63,1,0,0,
|
||||
0,10,10,11,0,0,0,9,123,0,0,
|
||||
0,9,124,0,0,0,1,68,0,0,0,
|
||||
1,0,0,0,236,81,56,63,1,0,0,
|
||||
0,10,10,11,0,0,0,9,125,0,0,
|
||||
0,9,126,0,0,0,1,70,0,0,0,
|
||||
1,0,0,0,236,81,56,63,1,0,0,
|
||||
0,10,10,11,0,0,0,9,127,0,0,
|
||||
0,9,128,0,0,0,1,72,0,0,0,
|
||||
1,0,0,0,236,81,56,63,3,0,0,
|
||||
0,10,10,11,0,0,0,9,129,0,0,
|
||||
0,9,130,0,0,0,1,74,0,0,0,
|
||||
1,0,0,0,236,81,56,63,7,0,0,
|
||||
0,10,10,11,0,0,0,9,131,0,0,
|
||||
0,9,132,0,0,0,1,76,0,0,0,
|
||||
1,0,0,0,236,81,56,63,1,0,0,
|
||||
0,10,10,11,0,0,0,9,133,0,0,
|
||||
0,9,134,0,0,0,1,78,0,0,0,
|
||||
1,0,0,0,236,81,56,63,1,0,0,
|
||||
0,10,10,11,0,0,0,9,135,0,0,
|
||||
0,9,136,0,0,0,1,80,0,0,0,
|
||||
1,0,0,0,236,81,56,63,2,0,0,
|
||||
0,10,10,11,0,0,0,9,137,0,0,
|
||||
0,9,138,0,0,0,1,82,0,0,0,
|
||||
1,0,0,0,236,81,56,63,2,0,0,
|
||||
0,10,10,11,0,0,0,9,139,0,0,
|
||||
0,9,140,0,0,0,1,84,0,0,0,
|
||||
1,0,0,0,236,81,56,63,4,0,0,
|
||||
0,10,10,11,0,0,0,9,141,0,0,
|
||||
0,9,142,0,0,0,1,86,0,0,0,
|
||||
1,0,0,0,236,81,56,63,2,0,0,
|
||||
0,10,10,11,0,0,0,9,143,0,0,
|
||||
0,9,144,0,0,0,1,88,0,0,0,
|
||||
1,0,0,0,236,81,56,63,1,0,0,
|
||||
0,10,10,11,0,0,0,9,145,0,0,
|
||||
0,9,146,0,0,0,1,90,0,0,0,
|
||||
1,0,0,0,236,81,56,63,1,0,0,
|
||||
0,10,10,11,0,0,0,9,147,0,0,
|
||||
0,9,148,0,0,0,1,92,0,0,0,
|
||||
1,0,0,0,236,81,56,63,7,0,0,
|
||||
0,10,10,11,0,0,0,9,149,0,0,
|
||||
0,9,150,0,0,0,1,94,0,0,0,
|
||||
1,0,0,0,236,81,56,63,1,0,0,
|
||||
0,10,10,11,0,0,0,9,151,0,0,
|
||||
0,9,152,0,0,0,1,96,0,0,0,
|
||||
1,0,0,0,236,81,56,63,1,0,0,
|
||||
0,10,10,11,0,0,0,9,153,0,0,
|
||||
0,9,154,0,0,0,1,98,0,0,0,
|
||||
1,0,0,0,236,81,56,63,2,0,0,
|
||||
0,10,10,11,0,0,0,9,155,0,0,
|
||||
0,9,156,0,0,0,1,100,0,0,0,
|
||||
1,0,0,0,236,81,56,63,1,0,0,
|
||||
0,10,10,11,0,0,0,9,157,0,0,
|
||||
0,9,158,0,0,0,1,102,0,0,0,
|
||||
1,0,0,0,236,81,56,63,1,0,0,
|
||||
0,10,10,11,0,0,0,9,159,0,0,
|
||||
0,9,160,0,0,0,1,104,0,0,0,
|
||||
1,0,0,0,236,81,56,63,1,0,0,
|
||||
0,10,10,11,0,0,0,9,161,0,0,
|
||||
0,9,162,0,0,0,1,106,0,0,0,
|
||||
1,0,0,0,236,81,56,63,1,0,0,
|
||||
0,10,10,11,0,0,0,9,163,0,0,
|
||||
0,9,164,0,0,0,1,108,0,0,0,
|
||||
1,0,0,0,236,81,56,63,1,0,0,
|
||||
0,10,10,11,0,0,0,9,165,0,0,
|
||||
0,9,166,0,0,0,1,110,0,0,0,
|
||||
1,0,0,0,236,81,56,63,1,0,0,
|
||||
0,10,10,11,0,0,0,9,167,0,0,
|
||||
0,9,168,0,0,0,1,112,0,0,0,
|
||||
1,0,0,0,236,81,56,63,1,0,0,
|
||||
0,10,10,11,0,0,0,9,169,0,0,
|
||||
0,9,170,0,0,0,1,114,0,0,0,
|
||||
1,0,0,0,236,81,56,63,1,0,0,
|
||||
0,10,10,11,0,0,0,9,171,0,0,
|
||||
0,9,172,0,0,0,1,116,0,0,0,
|
||||
1,0,0,0,236,81,56,63,1,0,0,
|
||||
0,10,10,11,0,0,0,9,173,0,0,
|
||||
0,9,174,0,0,0,1,118,0,0,0,
|
||||
1,0,0,0,236,81,56,63,1,0,0,
|
||||
0,10,10,11,0,0,0,9,175,0,0,
|
||||
0,9,176,0,0,0,1,120,0,0,0,
|
||||
1,0,0,0,236,81,56,63,1,0,0,
|
||||
0,10,10,11,0,0,0,9,177,0,0,
|
||||
0,9,178,0,0,0,16,121,0,0,0,
|
||||
1,0,0,0,8,3,205,176,16,122,0,
|
||||
0,0,1,0,0,0,8,1,1,16,123,
|
||||
0,0,0,1,0,0,0,8,3,194,166,
|
||||
16,124,0,0,0,1,0,0,0,8,1,
|
||||
1,16,125,0,0,0,1,0,0,0,8,
|
||||
3,94,16,126,0,0,0,1,0,0,0,
|
||||
8,1,1,16,127,0,0,0,1,0,0,
|
||||
0,8,3,36,16,128,0,0,0,1,0,
|
||||
0,0,8,1,1,16,129,0,0,0,3,
|
||||
0,0,0,8,3,60,8,3,61,8,3,
|
||||
43,16,130,0,0,0,3,0,0,0,8,
|
||||
1,1,8,1,1,8,1,1,16,131,0,
|
||||
0,0,5,0,0,0,8,3,46,8,3,
|
||||
47,8,3,44,8,3,42,8,3,33,16,
|
||||
132,0,0,0,5,0,0,0,8,1,1,
|
||||
8,1,1,8,1,1,8,1,1,8,1,
|
||||
1,16,133,0,0,0,1,0,0,0,8,
|
||||
3,194,187,16,134,0,0,0,1,0,0,
|
||||
0,8,1,1,16,135,0,0,0,1,0,
|
||||
0,0,8,3,194,171,16,136,0,0,0,
|
||||
1,0,0,0,8,1,1,16,137,0,0,
|
||||
0,2,0,0,0,8,3,93,8,3,41,
|
||||
16,138,0,0,0,2,0,0,0,8,1,
|
||||
1,8,1,1,16,139,0,0,0,2,0,
|
||||
0,0,8,3,91,8,3,40,16,140,0,
|
||||
0,0,2,0,0,0,8,1,1,8,1,
|
||||
1,16,141,0,0,0,2,0,0,0,8,
|
||||
3,45,8,3,194,173,16,142,0,0,0,
|
||||
2,0,0,0,8,1,1,8,1,1,16,
|
||||
143,0,0,0,2,0,0,0,8,3,226,
|
||||
128,191,8,3,95,16,144,0,0,0,2,
|
||||
0,0,0,8,1,1,8,1,1,16,145,
|
||||
0,0,0,1,0,0,0,8,3,238,128,
|
||||
128,16,146,0,0,0,1,0,0,0,8,
|
||||
1,1,16,147,0,0,0,1,0,0,0,
|
||||
8,3,216,128,16,148,0,0,0,1,0,
|
||||
0,0,8,1,1,16,149,0,0,0,5,
|
||||
0,0,0,8,3,1,8,3,13,8,3,
|
||||
9,8,3,10,8,3,0,16,150,0,0,
|
||||
0,5,0,0,0,8,1,1,8,1,1,
|
||||
8,1,1,8,1,1,8,1,1,16,151,
|
||||
0,0,0,1,0,0,0,8,3,226,128,
|
||||
169,16,152,0,0,0,1,0,0,0,8,
|
||||
1,1,16,153,0,0,0,1,0,0,0,
|
||||
8,3,226,128,168,16,154,0,0,0,1,
|
||||
0,0,0,8,1,1,16,155,0,0,0,
|
||||
2,0,0,0,8,3,194,160,8,3,32,
|
||||
16,156,0,0,0,2,0,0,0,8,1,
|
||||
1,8,1,1,16,157,0,0,0,1,0,
|
||||
0,0,8,3,194,178,16,158,0,0,0,
|
||||
1,0,0,0,8,1,1,16,159,0,0,
|
||||
0,1,0,0,0,8,3,225,155,174,16,
|
||||
160,0,0,0,1,0,0,0,8,1,1,
|
||||
16,161,0,0,0,1,0,0,0,8,3,
|
||||
48,16,162,0,0,0,1,0,0,0,8,
|
||||
1,1,16,163,0,0,0,1,0,0,0,
|
||||
8,3,210,136,16,164,0,0,0,1,0,
|
||||
0,0,8,1,1,16,165,0,0,0,1,
|
||||
0,0,0,8,3,224,164,131,16,166,0,
|
||||
0,0,1,0,0,0,8,1,1,16,167,
|
||||
0,0,0,1,0,0,0,8,3,204,128,
|
||||
16,168,0,0,0,1,0,0,0,8,1,
|
||||
1,16,169,0,0,0,1,0,0,0,8,
|
||||
3,198,187,16,170,0,0,0,1,0,0,
|
||||
0,8,1,1,16,171,0,0,0,1,0,
|
||||
0,0,8,3,202,176,16,172,0,0,0,
|
||||
1,0,0,0,8,1,1,16,173,0,0,
|
||||
0,1,0,0,0,8,3,199,133,16,174,
|
||||
0,0,0,1,0,0,0,8,1,1,16,
|
||||
175,0,0,0,1,0,0,0,8,3,97,
|
||||
16,176,0,0,0,1,0,0,0,8,1,
|
||||
1,16,177,0,0,0,1,0,0,0,8,
|
||||
3,65,16,178,0,0,0,1,0,0,0,
|
||||
8,1,1,11,0,1,0,0,0,255,255,
|
||||
255,255,1,0,0,0,0,0,0,0,4,
|
||||
1,0,0,0,36,83,121,115,116,101,109,
|
||||
46,71,108,111,98,97,108,105,122,97,116,
|
||||
105,111,110,46,85,110,105,99,111,100,101,
|
||||
67,97,116,101,103,111,114,121,1,0,0,
|
||||
0,7,118,97,108,117,101,95,95,0,8,
|
||||
29,0,0,0,11,0,1,0,0,0,255,
|
||||
255,255,255,1,0,0,0,0,0,0,0,
|
||||
4,1,0,0,0,14,83,121,115,116,101,
|
||||
109,46,66,111,111,108,101,97,110,1,0,
|
||||
0,0,7,109,95,118,97,108,117,101,0,
|
||||
1,0,11,0,1,0,0,0,255,255,255,
|
||||
255,1,0,0,0,0,0,0,0,4,1,
|
||||
0,0,0,28,83,121,115,116,101,109,46,
|
||||
67,111,108,108,101,99,116,105,111,110,115,
|
||||
46,72,97,115,104,116,97,98,108,101,7,
|
||||
0,0,0,10,76,111,97,100,70,97,99,
|
||||
116,111,114,7,86,101,114,115,105,111,110,
|
||||
8,67,111,109,112,97,114,101,114,16,72,
|
||||
97,115,104,67,111,100,101,80,114,111,118,
|
||||
105,100,101,114,8,72,97,115,104,83,105,
|
||||
122,101,4,75,101,121,115,6,86,97,108,
|
||||
117,101,115,0,0,3,3,0,5,5,11,
|
||||
8,28,83,121,115,116,101,109,46,67,111,
|
||||
108,108,101,99,116,105,111,110,115,46,73,
|
||||
67,111,109,112,97,114,101,114,36,83,121,
|
||||
115,116,101,109,46,67,111,108,108,101,99,
|
||||
116,105,111,110,115,46,73,72,97,115,104,
|
||||
67,111,100,101,80,114,111,118,105,100,101,
|
||||
114,8,236,81,56,63,1,0,0,0,10,
|
||||
10,11,0,0,0,9,2,0,0,0,9,
|
||||
3,0,0,0,16,2,0,0,0,1,0,
|
||||
0,0,6,4,0,0,0,9,89,89,73,
|
||||
78,73,84,73,65,76,16,3,0,0,0,
|
||||
1,0,0,0,9,5,0,0,0,12,6,
|
||||
0,0,0,60,84,111,111,108,115,44,32,
|
||||
86,101,114,115,105,111,110,61,48,46,48,
|
||||
46,48,46,48,44,32,67,117,108,116,117,
|
||||
114,101,61,110,101,117,116,114,97,108,44,
|
||||
32,80,117,98,108,105,99,75,101,121,84,
|
||||
111,107,101,110,61,110,117,108,108,5,5,
|
||||
0,0,0,9,84,111,111,108,115,46,68,
|
||||
102,97,4,0,0,0,5,109,95,109,97,
|
||||
112,9,109,95,97,99,116,105,111,110,115,
|
||||
10,109,95,116,111,107,67,108,97,115,115,
|
||||
7,109,95,115,116,97,116,101,3,4,1,
|
||||
0,28,83,121,115,116,101,109,46,67,111,
|
||||
108,108,101,99,116,105,111,110,115,46,72,
|
||||
97,115,104,116,97,98,108,101,16,84,111,
|
||||
111,108,115,46,68,102,97,43,65,99,116,
|
||||
105,111,110,6,0,0,0,8,6,0,0,
|
||||
0,9,7,0,0,0,10,6,8,0,0,
|
||||
0,0,139,0,0,0,1,7,0,0,0,
|
||||
1,0,0,0,236,81,56,63,20,0,0,
|
||||
0,10,10,47,0,0,0,9,9,0,0,
|
||||
0,9,10,0,0,0,16,9,0,0,0,
|
||||
18,0,0,0,8,3,42,8,3,32,8,
|
||||
3,199,133,8,3,44,8,3,61,8,3,
|
||||
9,8,3,41,8,3,48,8,3,43,8,
|
||||
3,65,8,3,13,8,3,97,8,3,45,
|
||||
8,3,40,8,3,202,176,8,3,198,187,
|
||||
8,3,10,8,3,47,16,10,0,0,0,
|
||||
18,0,0,0,9,11,0,0,0,9,12,
|
||||
0,0,0,9,13,0,0,0,9,14,0,
|
||||
0,0,9,15,0,0,0,9,12,0,0,
|
||||
0,9,17,0,0,0,9,18,0,0,0,
|
||||
9,19,0,0,0,9,13,0,0,0,9,
|
||||
12,0,0,0,9,13,0,0,0,9,23,
|
||||
0,0,0,9,24,0,0,0,9,13,0,
|
||||
0,0,9,13,0,0,0,9,12,0,0,
|
||||
0,9,27,0,0,0,1,11,0,0,0,
|
||||
5,0,0,0,9,28,0,0,0,9,29,
|
||||
0,0,0,6,30,0,0,0,5,84,105,
|
||||
109,101,115,158,1,0,0,1,12,0,0,
|
||||
0,5,0,0,0,9,31,0,0,0,9,
|
||||
32,0,0,0,9,8,0,0,0,225,2,
|
||||
0,0,1,13,0,0,0,5,0,0,0,
|
||||
9,34,0,0,0,9,35,0,0,0,6,
|
||||
36,0,0,0,10,73,100,101,110,116,105,
|
||||
102,105,101,114,27,3,0,0,1,14,0,
|
||||
0,0,5,0,0,0,9,37,0,0,0,
|
||||
9,38,0,0,0,6,39,0,0,0,5,
|
||||
67,111,109,109,97,113,1,0,0,1,15,
|
||||
0,0,0,5,0,0,0,9,40,0,0,
|
||||
0,9,41,0,0,0,6,42,0,0,0,
|
||||
6,69,113,117,97,108,115,145,0,0,0,
|
||||
1,17,0,0,0,5,0,0,0,9,43,
|
||||
0,0,0,9,44,0,0,0,6,45,0,
|
||||
0,0,6,67,108,111,115,101,80,207,1,
|
||||
0,0,1,18,0,0,0,5,0,0,0,
|
||||
9,46,0,0,0,9,47,0,0,0,6,
|
||||
48,0,0,0,17,73,110,116,101,103,101,
|
||||
114,67,111,110,115,116,97,110,116,95,49,
|
||||
78,2,0,0,1,19,0,0,0,5,0,
|
||||
0,0,9,49,0,0,0,9,50,0,0,
|
||||
0,6,51,0,0,0,4,80,108,117,115,
|
||||
190,0,0,0,1,23,0,0,0,5,0,
|
||||
0,0,9,52,0,0,0,9,53,0,0,
|
||||
0,6,54,0,0,0,5,77,105,110,117,
|
||||
115,42,2,0,0,1,24,0,0,0,5,
|
||||
0,0,0,9,55,0,0,0,9,56,0,
|
||||
0,0,6,57,0,0,0,5,79,112,101,
|
||||
110,80,253,1,0,0,1,27,0,0,0,
|
||||
5,0,0,0,9,58,0,0,0,9,59,
|
||||
0,0,0,6,60,0,0,0,3,68,105,
|
||||
118,236,0,0,0,1,28,0,0,0,1,
|
||||
0,0,0,236,81,56,63,0,0,0,0,
|
||||
10,10,11,0,0,0,9,61,0,0,0,
|
||||
9,62,0,0,0,5,29,0,0,0,16,
|
||||
84,111,111,108,115,46,68,102,97,43,65,
|
||||
99,116,105,111,110,2,0,0,0,5,97,
|
||||
95,97,99,116,6,97,95,110,101,120,116,
|
||||
0,4,8,16,84,111,111,108,115,46,68,
|
||||
102,97,43,65,99,116,105,111,110,6,0,
|
||||
0,0,6,0,0,0,97,0,0,0,10,
|
||||
1,31,0,0,0,1,0,0,0,236,81,
|
||||
56,63,0,0,0,0,10,10,11,0,0,
|
||||
0,9,63,0,0,0,9,64,0,0,0,
|
||||
1,32,0,0,0,29,0,0,0,136,0,
|
||||
0,0,10,1,34,0,0,0,1,0,0,
|
||||
0,236,81,56,63,7,0,0,0,10,10,
|
||||
11,0,0,0,9,65,0,0,0,9,66,
|
||||
0,0,0,1,35,0,0,0,29,0,0,
|
||||
0,49,0,0,0,10,1,37,0,0,0,
|
||||
1,0,0,0,236,81,56,63,0,0,0,
|
||||
0,10,10,11,0,0,0,9,67,0,0,
|
||||
0,9,68,0,0,0,1,38,0,0,0,
|
||||
29,0,0,0,107,0,0,0,10,1,40,
|
||||
0,0,0,1,0,0,0,236,81,56,63,
|
||||
0,0,0,0,10,10,11,0,0,0,9,
|
||||
69,0,0,0,9,70,0,0,0,1,41,
|
||||
0,0,0,29,0,0,0,117,0,0,0,
|
||||
10,1,43,0,0,0,1,0,0,0,236,
|
||||
81,56,63,0,0,0,0,10,10,11,0,
|
||||
0,0,9,71,0,0,0,9,72,0,0,
|
||||
0,1,44,0,0,0,29,0,0,0,87,
|
||||
0,0,0,10,1,46,0,0,0,1,0,
|
||||
0,0,236,81,56,63,2,0,0,0,10,
|
||||
10,11,0,0,0,9,73,0,0,0,9,
|
||||
74,0,0,0,1,47,0,0,0,29,0,
|
||||
0,0,2,0,0,0,10,1,49,0,0,
|
||||
0,1,0,0,0,236,81,56,63,0,0,
|
||||
0,0,10,10,11,0,0,0,9,75,0,
|
||||
0,0,9,76,0,0,0,1,50,0,0,
|
||||
0,29,0,0,0,112,0,0,0,10,1,
|
||||
52,0,0,0,1,0,0,0,236,81,56,
|
||||
63,1,0,0,0,10,10,11,0,0,0,
|
||||
9,77,0,0,0,9,78,0,0,0,1,
|
||||
53,0,0,0,29,0,0,0,92,0,0,
|
||||
0,10,1,55,0,0,0,1,0,0,0,
|
||||
236,81,56,63,0,0,0,0,10,10,11,
|
||||
0,0,0,9,79,0,0,0,9,80,0,
|
||||
0,0,1,56,0,0,0,29,0,0,0,
|
||||
82,0,0,0,10,1,58,0,0,0,1,
|
||||
0,0,0,236,81,56,63,1,0,0,0,
|
||||
10,10,11,0,0,0,9,81,0,0,0,
|
||||
9,82,0,0,0,1,59,0,0,0,29,
|
||||
0,0,0,102,0,0,0,10,16,61,0,
|
||||
0,0,0,0,0,0,16,62,0,0,0,
|
||||
0,0,0,0,16,63,0,0,0,0,0,
|
||||
0,0,16,64,0,0,0,0,0,0,0,
|
||||
16,65,0,0,0,7,0,0,0,8,3,
|
||||
199,133,8,3,198,187,8,3,48,8,3,
|
||||
202,176,8,3,95,8,3,97,8,3,65,
|
||||
16,66,0,0,0,7,0,0,0,9,83,
|
||||
0,0,0,9,83,0,0,0,9,84,0,
|
||||
0,0,9,83,0,0,0,9,86,0,0,
|
||||
0,9,83,0,0,0,9,83,0,0,0,
|
||||
16,67,0,0,0,0,0,0,0,16,68,
|
||||
0,0,0,0,0,0,0,16,69,0,0,
|
||||
0,0,0,0,0,16,70,0,0,0,0,
|
||||
0,0,0,16,71,0,0,0,0,0,0,
|
||||
0,16,72,0,0,0,0,0,0,0,16,
|
||||
73,0,0,0,2,0,0,0,8,3,46,
|
||||
8,3,48,16,74,0,0,0,2,0,0,
|
||||
0,9,88,0,0,0,9,18,0,0,0,
|
||||
16,75,0,0,0,0,0,0,0,16,76,
|
||||
0,0,0,0,0,0,0,16,77,0,0,
|
||||
0,1,0,0,0,8,3,48,16,78,0,
|
||||
0,0,1,0,0,0,9,18,0,0,0,
|
||||
16,79,0,0,0,0,0,0,0,16,80,
|
||||
0,0,0,0,0,0,0,16,81,0,0,
|
||||
0,1,0,0,0,8,3,47,16,82,0,
|
||||
0,0,1,0,0,0,9,90,0,0,0,
|
||||
1,83,0,0,0,5,0,0,0,9,91,
|
||||
0,0,0,9,92,0,0,0,6,93,0,
|
||||
0,0,10,73,100,101,110,116,105,102,105,
|
||||
101,114,125,3,0,0,1,84,0,0,0,
|
||||
5,0,0,0,9,94,0,0,0,9,95,
|
||||
0,0,0,6,96,0,0,0,10,73,100,
|
||||
101,110,116,105,102,105,101,114,85,3,0,
|
||||
0,1,86,0,0,0,5,0,0,0,9,
|
||||
97,0,0,0,9,98,0,0,0,6,99,
|
||||
0,0,0,10,73,100,101,110,116,105,102,
|
||||
105,101,114,49,3,0,0,1,88,0,0,
|
||||
0,5,0,0,0,9,100,0,0,0,10,
|
||||
9,8,0,0,0,86,2,0,0,1,90,
|
||||
0,0,0,5,0,0,0,9,102,0,0,
|
||||
0,9,103,0,0,0,9,8,0,0,0,
|
||||
245,0,0,0,1,91,0,0,0,1,0,
|
||||
0,0,236,81,56,63,7,0,0,0,10,
|
||||
10,11,0,0,0,9,105,0,0,0,9,
|
||||
106,0,0,0,1,92,0,0,0,29,0,
|
||||
0,0,49,0,0,0,10,1,94,0,0,
|
||||
0,1,0,0,0,236,81,56,63,7,0,
|
||||
0,0,10,10,11,0,0,0,9,107,0,
|
||||
0,0,9,108,0,0,0,1,95,0,0,
|
||||
0,29,0,0,0,49,0,0,0,10,1,
|
||||
97,0,0,0,1,0,0,0,236,81,56,
|
||||
63,7,0,0,0,10,10,11,0,0,0,
|
||||
9,109,0,0,0,9,110,0,0,0,1,
|
||||
98,0,0,0,29,0,0,0,49,0,0,
|
||||
0,10,1,100,0,0,0,1,0,0,0,
|
||||
236,81,56,63,1,0,0,0,10,10,11,
|
||||
0,0,0,9,111,0,0,0,9,112,0,
|
||||
0,0,1,102,0,0,0,1,0,0,0,
|
||||
236,81,56,63,44,0,0,0,10,10,107,
|
||||
0,0,0,9,113,0,0,0,9,114,0,
|
||||
0,0,1,103,0,0,0,29,0,0,0,
|
||||
122,0,0,0,10,16,105,0,0,0,7,
|
||||
0,0,0,8,3,199,133,8,3,198,187,
|
||||
8,3,48,8,3,202,176,8,3,95,8,
|
||||
3,97,8,3,65,16,106,0,0,0,7,
|
||||
0,0,0,9,83,0,0,0,9,83,0,
|
||||
0,0,9,84,0,0,0,9,83,0,0,
|
||||
0,9,86,0,0,0,9,83,0,0,0,
|
||||
9,83,0,0,0,16,107,0,0,0,7,
|
||||
0,0,0,8,3,199,133,8,3,198,187,
|
||||
8,3,48,8,3,202,176,8,3,95,8,
|
||||
3,97,8,3,65,16,108,0,0,0,7,
|
||||
0,0,0,9,83,0,0,0,9,83,0,
|
||||
0,0,9,84,0,0,0,9,83,0,0,
|
||||
0,9,86,0,0,0,9,83,0,0,0,
|
||||
9,83,0,0,0,16,109,0,0,0,7,
|
||||
0,0,0,8,3,199,133,8,3,198,187,
|
||||
8,3,48,8,3,202,176,8,3,95,8,
|
||||
3,97,8,3,65,16,110,0,0,0,7,
|
||||
0,0,0,9,83,0,0,0,9,83,0,
|
||||
0,0,9,84,0,0,0,9,83,0,0,
|
||||
0,9,86,0,0,0,9,83,0,0,0,
|
||||
9,83,0,0,0,16,111,0,0,0,1,
|
||||
0,0,0,8,3,48,16,112,0,0,0,
|
||||
1,0,0,0,9,128,0,0,0,16,113,
|
||||
0,0,0,41,0,0,0,8,3,226,128,
|
||||
191,8,3,205,176,8,3,32,8,3,36,
|
||||
8,3,216,128,8,3,40,8,3,42,8,
|
||||
3,44,8,3,46,8,3,48,8,3,60,
|
||||
8,3,194,171,8,3,194,173,8,3,202,
|
||||
176,8,3,194,187,8,3,210,136,8,3,
|
||||
225,155,174,8,3,94,8,3,226,128,168,
|
||||
8,3,1,8,3,9,8,3,198,187,8,
|
||||
3,204,128,8,3,238,128,128,8,3,224,
|
||||
164,131,8,3,199,133,8,3,33,8,3,
|
||||
41,8,3,43,8,3,45,8,3,47,8,
|
||||
3,194,160,8,3,194,166,8,3,61,8,
|
||||
3,65,8,3,194,178,8,3,91,8,3,
|
||||
93,8,3,95,8,3,97,8,3,226,128,
|
||||
169,16,114,0,0,0,41,0,0,0,9,
|
||||
129,0,0,0,9,129,0,0,0,9,129,
|
||||
0,0,0,9,129,0,0,0,9,129,0,
|
||||
0,0,9,129,0,0,0,9,129,0,0,
|
||||
0,9,129,0,0,0,9,129,0,0,0,
|
||||
9,129,0,0,0,9,129,0,0,0,9,
|
||||
129,0,0,0,9,129,0,0,0,9,129,
|
||||
0,0,0,9,129,0,0,0,9,129,0,
|
||||
0,0,9,129,0,0,0,9,129,0,0,
|
||||
0,9,129,0,0,0,9,129,0,0,0,
|
||||
9,129,0,0,0,9,129,0,0,0,9,
|
||||
129,0,0,0,9,129,0,0,0,9,129,
|
||||
0,0,0,9,129,0,0,0,9,129,0,
|
||||
0,0,9,129,0,0,0,9,129,0,0,
|
||||
0,9,129,0,0,0,9,129,0,0,0,
|
||||
9,129,0,0,0,9,129,0,0,0,9,
|
||||
129,0,0,0,9,129,0,0,0,9,129,
|
||||
0,0,0,9,129,0,0,0,9,129,0,
|
||||
0,0,9,129,0,0,0,9,129,0,0,
|
||||
0,9,129,0,0,0,1,128,0,0,0,
|
||||
5,0,0,0,9,130,0,0,0,9,131,
|
||||
0,0,0,6,132,0,0,0,14,82,101,
|
||||
97,108,67,111,110,115,116,97,110,116,95,
|
||||
49,122,2,0,0,1,129,0,0,0,5,
|
||||
0,0,0,9,133,0,0,0,9,134,0,
|
||||
0,0,9,8,0,0,0,246,0,0,0,
|
||||
1,130,0,0,0,1,0,0,0,236,81,
|
||||
56,63,1,0,0,0,10,10,11,0,0,
|
||||
0,9,136,0,0,0,9,137,0,0,0,
|
||||
1,131,0,0,0,29,0,0,0,19,0,
|
||||
0,0,10,1,133,0,0,0,1,0,0,
|
||||
0,236,81,56,63,44,0,0,0,10,10,
|
||||
107,0,0,0,9,138,0,0,0,9,139,
|
||||
0,0,0,1,134,0,0,0,29,0,0,
|
||||
0,122,0,0,0,10,16,136,0,0,0,
|
||||
1,0,0,0,8,3,48,16,137,0,0,
|
||||
0,1,0,0,0,9,128,0,0,0,16,
|
||||
138,0,0,0,41,0,0,0,8,3,226,
|
||||
128,191,8,3,205,176,8,3,32,8,3,
|
||||
36,8,3,216,128,8,3,40,8,3,42,
|
||||
8,3,44,8,3,46,8,3,48,8,3,
|
||||
60,8,3,194,171,8,3,194,173,8,3,
|
||||
202,176,8,3,194,187,8,3,210,136,8,
|
||||
3,225,155,174,8,3,94,8,3,226,128,
|
||||
168,8,3,1,8,3,9,8,3,198,187,
|
||||
8,3,204,128,8,3,238,128,128,8,3,
|
||||
224,164,131,8,3,199,133,8,3,33,8,
|
||||
3,41,8,3,43,8,3,45,8,3,47,
|
||||
8,3,194,160,8,3,194,166,8,3,61,
|
||||
8,3,65,8,3,194,178,8,3,91,8,
|
||||
3,93,8,3,95,8,3,97,8,3,226,
|
||||
128,169,16,139,0,0,0,41,0,0,0,
|
||||
9,129,0,0,0,9,129,0,0,0,9,
|
||||
129,0,0,0,9,129,0,0,0,9,129,
|
||||
0,0,0,9,129,0,0,0,9,129,0,
|
||||
0,0,9,129,0,0,0,9,129,0,0,
|
||||
0,9,129,0,0,0,9,129,0,0,0,
|
||||
9,129,0,0,0,9,129,0,0,0,9,
|
||||
129,0,0,0,9,129,0,0,0,9,129,
|
||||
0,0,0,9,129,0,0,0,9,129,0,
|
||||
0,0,9,129,0,0,0,9,129,0,0,
|
||||
0,9,129,0,0,0,9,129,0,0,0,
|
||||
9,129,0,0,0,9,129,0,0,0,9,
|
||||
129,0,0,0,9,129,0,0,0,9,129,
|
||||
0,0,0,9,129,0,0,0,9,129,0,
|
||||
0,0,9,129,0,0,0,9,129,0,0,
|
||||
0,9,129,0,0,0,9,129,0,0,0,
|
||||
9,129,0,0,0,9,129,0,0,0,9,
|
||||
129,0,0,0,9,129,0,0,0,9,129,
|
||||
0,0,0,9,129,0,0,0,9,129,0,
|
||||
0,0,9,129,0,0,0,11,0,1,0,
|
||||
0,0,255,255,255,255,1,0,0,0,0,
|
||||
0,0,0,4,1,0,0,0,28,83,121,
|
||||
115,116,101,109,46,67,111,108,108,101,99,
|
||||
116,105,111,110,115,46,72,97,115,104,116,
|
||||
97,98,108,101,7,0,0,0,10,76,111,
|
||||
97,100,70,97,99,116,111,114,7,86,101,
|
||||
114,115,105,111,110,8,67,111,109,112,97,
|
||||
114,101,114,16,72,97,115,104,67,111,100,
|
||||
101,80,114,111,118,105,100,101,114,8,72,
|
||||
97,115,104,83,105,122,101,4,75,101,121,
|
||||
115,6,86,97,108,117,101,115,0,0,3,
|
||||
3,0,5,5,11,8,28,83,121,115,116,
|
||||
101,109,46,67,111,108,108,101,99,116,105,
|
||||
111,110,115,46,73,67,111,109,112,97,114,
|
||||
101,114,36,83,121,115,116,101,109,46,67,
|
||||
111,108,108,101,99,116,105,111,110,115,46,
|
||||
73,72,97,115,104,67,111,100,101,80,114,
|
||||
111,118,105,100,101,114,8,236,81,56,63,
|
||||
15,0,0,0,10,10,23,0,0,0,9,
|
||||
2,0,0,0,9,3,0,0,0,16,2,
|
||||
0,0,0,14,0,0,0,6,4,0,0,
|
||||
0,6,67,108,111,115,101,80,6,5,0,
|
||||
0,0,14,78,117,109,98,101,114,67,111,
|
||||
110,115,116,97,110,116,6,6,0,0,0,
|
||||
5,79,112,101,110,80,6,7,0,0,0,
|
||||
6,69,113,117,97,108,115,6,8,0,0,
|
||||
0,12,82,101,97,108,67,111,110,115,116,
|
||||
97,110,116,6,9,0,0,0,5,67,111,
|
||||
109,109,97,6,10,0,0,0,5,77,105,
|
||||
110,117,115,6,11,0,0,0,3,68,105,
|
||||
118,6,12,0,0,0,10,73,100,101,110,
|
||||
116,105,102,105,101,114,6,13,0,0,0,
|
||||
17,73,110,116,101,103,101,114,67,111,110,
|
||||
115,116,97,110,116,95,49,6,14,0,0,
|
||||
0,15,73,110,116,101,103,101,114,67,111,
|
||||
110,115,116,97,110,116,6,15,0,0,0,
|
||||
14,82,101,97,108,67,111,110,115,116,97,
|
||||
110,116,95,49,6,16,0,0,0,5,84,
|
||||
105,109,101,115,6,17,0,0,0,4,80,
|
||||
108,117,115,16,3,0,0,0,14,0,0,
|
||||
0,9,18,0,0,0,9,19,0,0,0,
|
||||
9,20,0,0,0,9,21,0,0,0,9,
|
||||
22,0,0,0,9,23,0,0,0,9,24,
|
||||
0,0,0,9,25,0,0,0,9,26,0,
|
||||
0,0,9,27,0,0,0,9,28,0,0,
|
||||
0,9,29,0,0,0,9,30,0,0,0,
|
||||
9,31,0,0,0,12,32,0,0,0,60,
|
||||
84,111,111,108,115,44,32,86,101,114,115,
|
||||
105,111,110,61,48,46,48,46,48,46,48,
|
||||
44,32,67,117,108,116,117,114,101,61,110,
|
||||
101,117,116,114,97,108,44,32,80,117,98,
|
||||
108,105,99,75,101,121,84,111,107,101,110,
|
||||
61,110,117,108,108,5,18,0,0,0,17,
|
||||
84,111,111,108,115,46,84,111,107,67,108,
|
||||
97,115,115,68,101,102,4,0,0,0,6,
|
||||
109,95,110,97,109,101,10,109,95,114,101,
|
||||
102,84,111,107,101,110,16,109,95,105,110,
|
||||
105,116,105,97,108,105,115,97,116,105,111,
|
||||
110,11,109,95,105,109,112,108,101,109,101,
|
||||
110,116,1,1,1,1,32,0,0,0,9,
|
||||
4,0,0,0,6,34,0,0,0,5,84,
|
||||
79,75,69,78,6,35,0,0,0,0,9,
|
||||
35,0,0,0,1,19,0,0,0,18,0,
|
||||
0,0,9,5,0,0,0,9,34,0,0,
|
||||
0,9,35,0,0,0,9,35,0,0,0,
|
||||
1,20,0,0,0,18,0,0,0,9,6,
|
||||
0,0,0,9,34,0,0,0,9,35,0,
|
||||
0,0,9,35,0,0,0,1,21,0,0,
|
||||
0,18,0,0,0,9,7,0,0,0,9,
|
||||
34,0,0,0,9,35,0,0,0,9,35,
|
||||
0,0,0,1,22,0,0,0,18,0,0,
|
||||
0,9,8,0,0,0,6,46,0,0,0,
|
||||
14,78,117,109,98,101,114,67,111,110,115,
|
||||
116,97,110,116,9,35,0,0,0,9,35,
|
||||
0,0,0,1,23,0,0,0,18,0,0,
|
||||
0,9,9,0,0,0,9,34,0,0,0,
|
||||
9,35,0,0,0,9,35,0,0,0,1,
|
||||
24,0,0,0,18,0,0,0,9,10,0,
|
||||
0,0,9,34,0,0,0,9,35,0,0,
|
||||
0,9,35,0,0,0,1,25,0,0,0,
|
||||
18,0,0,0,9,11,0,0,0,9,34,
|
||||
0,0,0,9,35,0,0,0,9,35,0,
|
||||
0,0,1,26,0,0,0,18,0,0,0,
|
||||
9,12,0,0,0,9,34,0,0,0,9,
|
||||
35,0,0,0,9,35,0,0,0,1,27,
|
||||
0,0,0,18,0,0,0,9,13,0,0,
|
||||
0,9,14,0,0,0,6,62,0,0,0,
|
||||
32,32,32,123,118,97,108,117,101,32,61,
|
||||
32,73,110,116,51,50,46,80,97,114,115,
|
||||
101,40,121,121,116,101,120,116,41,59,125,
|
||||
9,35,0,0,0,1,28,0,0,0,18,
|
||||
0,0,0,9,14,0,0,0,6,65,0,
|
||||
0,0,14,78,117,109,98,101,114,67,111,
|
||||
110,115,116,97,110,116,9,35,0,0,0,
|
||||
9,35,0,0,0,1,29,0,0,0,18,
|
||||
0,0,0,9,15,0,0,0,9,8,0,
|
||||
0,0,6,69,0,0,0,34,9,32,32,
|
||||
123,118,97,108,117,101,32,61,32,68,111,
|
||||
117,98,108,101,46,80,97,114,115,101,40,
|
||||
121,121,116,101,120,116,41,59,125,9,35,
|
||||
0,0,0,1,30,0,0,0,18,0,0,
|
||||
0,9,16,0,0,0,9,34,0,0,0,
|
||||
9,35,0,0,0,9,35,0,0,0,1,
|
||||
31,0,0,0,18,0,0,0,9,17,0,
|
||||
0,0,9,34,0,0,0,9,35,0,0,
|
||||
0,9,35,0,0,0,11,0};
|
||||
new Tfactory(this,"CloseP",new TCreator(CloseP_factory));
|
||||
new Tfactory(this,"NumberConstant",new TCreator(NumberConstant_factory));
|
||||
new Tfactory(this,"OpenP",new TCreator(OpenP_factory));
|
||||
new Tfactory(this,"Equals",new TCreator(Equals_factory));
|
||||
new Tfactory(this,"RealConstant",new TCreator(RealConstant_factory));
|
||||
new Tfactory(this,"Comma",new TCreator(Comma_factory));
|
||||
new Tfactory(this,"Minus",new TCreator(Minus_factory));
|
||||
new Tfactory(this,"Div",new TCreator(Div_factory));
|
||||
new Tfactory(this,"Identifier",new TCreator(Identifier_factory));
|
||||
new Tfactory(this,"IntegerConstant_1",new TCreator(IntegerConstant_1_factory));
|
||||
new Tfactory(this,"IntegerConstant",new TCreator(IntegerConstant_factory));
|
||||
new Tfactory(this,"RealConstant_1",new TCreator(RealConstant_1_factory));
|
||||
new Tfactory(this,"Times",new TCreator(Times_factory));
|
||||
new Tfactory(this,"Plus",new TCreator(Plus_factory));
|
||||
}
|
||||
public static object CloseP_factory(Lexer yyl) { return new CloseP(yyl);}
|
||||
public static object NumberConstant_factory(Lexer yyl) { return new NumberConstant(yyl);}
|
||||
public static object OpenP_factory(Lexer yyl) { return new OpenP(yyl);}
|
||||
public static object Equals_factory(Lexer yyl) { return new Equals(yyl);}
|
||||
public static object RealConstant_factory(Lexer yyl) { return new RealConstant(yyl);}
|
||||
public static object Comma_factory(Lexer yyl) { return new Comma(yyl);}
|
||||
public static object Minus_factory(Lexer yyl) { return new Minus(yyl);}
|
||||
public static object Div_factory(Lexer yyl) { return new Div(yyl);}
|
||||
public static object Identifier_factory(Lexer yyl) { return new Identifier(yyl);}
|
||||
public static object IntegerConstant_1_factory(Lexer yyl) { return new IntegerConstant_1(yyl);}
|
||||
public static object IntegerConstant_factory(Lexer yyl) { return new IntegerConstant(yyl);}
|
||||
public static object RealConstant_1_factory(Lexer yyl) { return new RealConstant_1(yyl);}
|
||||
public static object Times_factory(Lexer yyl) { return new Times(yyl);}
|
||||
public static object Plus_factory(Lexer yyl) { return new Plus(yyl);}
|
||||
public override TOKEN OldAction(Lexer yym,string yytext, int action, ref bool reject) {
|
||||
switch(action) {
|
||||
case -1: break;
|
||||
case 136: ;
|
||||
break;
|
||||
case 122: ;
|
||||
break;
|
||||
}
|
||||
return null;
|
||||
}}
|
||||
public class tokens:Lexer {
|
||||
public tokens():base(new yytokens(new ErrorHandler(false))) {}
|
||||
public tokens(ErrorHandler eh):base(new yytokens(eh)) {}
|
||||
public tokens(Tokens tks):base(tks){}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,229 @@
|
||||
%parser BooleanExpressionTokens.lexer
|
||||
%namespace BCG.Evaluator.BooleanExpression
|
||||
|
||||
%left OrOp AndOp XorOp
|
||||
%right NotOp
|
||||
|
||||
%symbol BooleanProgram {
|
||||
public Definitions definitions;
|
||||
public BooleanExpressionEvaluator eval;
|
||||
|
||||
public BooleanProgram(BooleanExpression expressions) =>
|
||||
eval = expressions.eval;
|
||||
|
||||
public BooleanProgram(Definitions definitions, BooleanExpression expressions) {
|
||||
this.eval = expressions.eval;
|
||||
this.definitions = definitions;
|
||||
}
|
||||
}
|
||||
|
||||
%symbol BooleanExpression {
|
||||
public BooleanExpressionEvaluator eval;
|
||||
}
|
||||
|
||||
%symbol SingleDef {
|
||||
public string id;
|
||||
public DefArgList args;
|
||||
public BooleanExpressionEvaluator eval;
|
||||
|
||||
public SingleDef(string id, DefArgList args, BooleanExpression exp) {
|
||||
this.id = id;
|
||||
this.args = args;
|
||||
this.eval = exp.eval;
|
||||
}
|
||||
}
|
||||
|
||||
%symbol Definitions {
|
||||
public SingleDef def;
|
||||
public Definitions next;
|
||||
|
||||
public Definitions(SingleDef def) =>
|
||||
this.def = def;
|
||||
|
||||
public Definitions(SingleDef def, Definitions next) {
|
||||
this.def = def;
|
||||
this.next = next;
|
||||
}
|
||||
}
|
||||
|
||||
%symbol DefArgList {
|
||||
public string arg;
|
||||
public DefArgList rest;
|
||||
|
||||
public DefArgList(string arg) =>
|
||||
this.arg = arg;
|
||||
|
||||
public DefArgList(string arg, DefArgList rest) {
|
||||
this.arg = arg;
|
||||
this.rest = rest;
|
||||
}
|
||||
}
|
||||
|
||||
%node SubExpression : BooleanExpression {
|
||||
public SubExpression (BooleanExpression e) =>
|
||||
eval = e.eval;
|
||||
}
|
||||
|
||||
%node AndNode : BooleanExpression {
|
||||
public AndNode (BooleanExpression left, BooleanExpression right) =>
|
||||
eval = new BooleanExpressionEvaluator(
|
||||
left.eval, right.eval, new BCG.BooleanEval(BooleanExpressionEvaluator.and));
|
||||
}
|
||||
|
||||
%node OrNode : BooleanExpression {
|
||||
public OrNode (BooleanExpression left, BooleanExpression right) =>
|
||||
eval = new BooleanExpressionEvaluator(
|
||||
left.eval, right.eval, new BCG.BooleanEval(BooleanExpressionEvaluator.or));
|
||||
}
|
||||
|
||||
%node XorNode : BooleanExpression {
|
||||
public XorNode (BooleanExpression left, BooleanExpression right) =>
|
||||
eval = new BooleanExpressionEvaluator(
|
||||
left.eval, right.eval, new BCG.BooleanEval(BooleanExpressionEvaluator.xor));
|
||||
}
|
||||
|
||||
%node NotNode : BooleanExpression {
|
||||
public NotNode (BooleanExpression toperand) =>
|
||||
eval = new BooleanExpressionEvaluator(
|
||||
toperand.eval, new BCG.BooleanEval(BooleanExpressionEvaluator.not));
|
||||
}
|
||||
|
||||
%node EqualPredicate : BooleanExpression {
|
||||
public EqualPredicate(Value left, Value right) =>
|
||||
eval = new BooleanExpressionEvaluator(
|
||||
left.eval, right.eval, new BCG.BooleanEval(BooleanExpressionEvaluator.equal));
|
||||
}
|
||||
|
||||
%node SmallerEqualPredicate : BooleanExpression {
|
||||
public SmallerEqualPredicate(Value left, Value right) =>
|
||||
eval = new BooleanExpressionEvaluator(
|
||||
left.eval, right.eval, new BCG.BooleanEval(BooleanExpressionEvaluator.smallerEqual));
|
||||
}
|
||||
|
||||
%node GreaterEqualPredicate : BooleanExpression {
|
||||
public GreaterEqualPredicate (Value left, Value right) =>
|
||||
eval = new BooleanExpressionEvaluator(
|
||||
left.eval, right.eval, new BCG.BooleanEval(BooleanExpressionEvaluator.greaterEqual));
|
||||
}
|
||||
|
||||
%node SmallerPredicate : BooleanExpression {
|
||||
public SmallerPredicate (Value left, Value right) =>
|
||||
eval = new BooleanExpressionEvaluator(
|
||||
left.eval, right.eval, new BCG.BooleanEval(BooleanExpressionEvaluator.smaller));
|
||||
}
|
||||
|
||||
%node GreaterPredicate : BooleanExpression {
|
||||
public GreaterPredicate (Value left, Value right) =>
|
||||
eval = new BooleanExpressionEvaluator(
|
||||
left.eval, right.eval, new BCG.BooleanEval(BooleanExpressionEvaluator.greater));
|
||||
}
|
||||
|
||||
%node DifferentPredicate : BooleanExpression {
|
||||
public DifferentPredicate (Value left, Value right) =>
|
||||
eval = new BooleanExpressionEvaluator(
|
||||
left.eval, right.eval, new BCG.BooleanEval(BooleanExpressionEvaluator.different));
|
||||
}
|
||||
|
||||
%node MatchesPredicate : BooleanExpression {
|
||||
public MatchesPredicate (Value left, Value right) =>
|
||||
eval = new BooleanExpressionEvaluator(
|
||||
left.eval, right.eval, new BCG.BooleanEval(BooleanExpressionEvaluator.matches));
|
||||
|
||||
}
|
||||
|
||||
%node ValuePredicate : BooleanExpression {
|
||||
public ValuePredicate(Value v) =>
|
||||
eval = new BooleanExpressionEvaluator(
|
||||
v.eval, new BCG.BooleanEval(BooleanExpressionEvaluator.booleanValue));
|
||||
}
|
||||
|
||||
|
||||
%symbol Value {
|
||||
public BooleanExpressionValue eval;
|
||||
}
|
||||
|
||||
%node ConstantValue : Value {
|
||||
public ConstantValue (object tvalue) =>
|
||||
eval = new BooleanExpressionConstant(tvalue);
|
||||
}
|
||||
|
||||
%node IdentifierValue : Value {
|
||||
public IdentifierValue (string tidentifier) =>
|
||||
eval = new BooleanExpressionVariable(tidentifier);
|
||||
}
|
||||
|
||||
%node FunctionValue: Value {
|
||||
public FunctionValue (string tidentifier, ArgumentList args) =>
|
||||
eval = new BooleanExpressionFunction(tidentifier,args == null ? null : args.args);
|
||||
}
|
||||
|
||||
%symbol ArgumentList {
|
||||
public System.Collections.ArrayList args = new System.Collections.ArrayList();
|
||||
|
||||
public ArgumentList(SingleArgument s) =>
|
||||
args.Add(((Value) s.kids[0]).eval);
|
||||
|
||||
public ArgumentList(ArgumentList a1,SingleArgument s) {
|
||||
if (a1 != null) {
|
||||
args.AddRange(a1.args);
|
||||
}
|
||||
args.AddRange(new ArgumentList(s).args);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
BooleanProgram : Definitions BooleanExpression %BooleanProgram($1,$2)
|
||||
| BooleanExpression %BooleanProgram($1) ;
|
||||
|
||||
Definitions : SingleDef %Definitions($1)
|
||||
| SingleDef Definitions %Definitions($1,$2) ;
|
||||
|
||||
SingleDef : Define Identifier OpenParenthesis DefArgList CloseParenthesis BeginDef BooleanExpression EndDef %SingleDef($2.yytext,$4,$7);
|
||||
|
||||
DefArgList: %DefArgList(null)
|
||||
| Identifier %DefArgList($1.yytext)
|
||||
| Identifier Comma DefArgList %DefArgList($1.yytext, $3 )
|
||||
;
|
||||
|
||||
|
||||
BooleanExpression : BooleanExpression OrOp BooleanExpression %OrNode($1,$3)
|
||||
| BooleanExpression AndOp BooleanExpression %AndNode($1,$3)
|
||||
| BooleanExpression XorOp BooleanExpression %XorNode($1,$3)
|
||||
| NotOp BooleanExpression %NotNode($2)
|
||||
| OpenParenthesis BooleanExpression CloseParenthesis %SubExpression ($2)
|
||||
| Predicate
|
||||
;
|
||||
|
||||
|
||||
Predicate : Value EqualsOp Value %EqualPredicate ($1,$3)
|
||||
| Value SmallerEqualOp Value %SmallerEqualPredicate ($1,$3)
|
||||
| Value GreaterEqualOp Value %GreaterEqualPredicate ($1,$3)
|
||||
| Value SmallerOp Value %SmallerPredicate ($1,$3)
|
||||
| Value GreaterOp Value %GreaterPredicate ($1,$3)
|
||||
| Value DifferentOp Value %DifferentPredicate ($1,$3)
|
||||
| Value DifferentOp2 Value %DifferentPredicate ($1,$3)
|
||||
| Value MatchesOp Value %MatchesPredicate ($1,$3)
|
||||
| Value %ValuePredicate($1)
|
||||
;
|
||||
|
||||
Value : Identifier %IdentifierValue($1.yytext)
|
||||
| BooleanConstant %ConstantValue($1.value)
|
||||
| NullConstant %ConstantValue($1.value)
|
||||
| RealConstant %ConstantValue($1.value)
|
||||
| StringConstant %ConstantValue($1.value)
|
||||
| IntegerConstant %ConstantValue($1.value)
|
||||
| DateTimeConstant %ConstantValue($1.value)
|
||||
| FunctionCall
|
||||
;
|
||||
|
||||
FunctionCall: Identifier:n OpenParenthesis ArgumentList:al CloseParenthesis %FunctionValue(n.yytext,al) ;
|
||||
|
||||
ArgumentList: %null
|
||||
| SingleArgument %ArgumentList($1)
|
||||
| ArgumentList Comma SingleArgument %ArgumentList($1,$3)
|
||||
;
|
||||
|
||||
SingleArgument: Value
|
||||
;
|
||||
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,107 @@
|
||||
%lexer
|
||||
%namespace BCG.Evaluator
|
||||
|
||||
// --------------------------------------------------------------------------------
|
||||
// .CLR types
|
||||
// --------------------------------------------------------------------------------
|
||||
'Boolean' %TypeId
|
||||
'Byte' %TypeId
|
||||
'DateTime' %TypeId
|
||||
'SByte' %TypeId
|
||||
'Char' %TypeId
|
||||
'Decimal' %TypeId
|
||||
'Double' %TypeId
|
||||
'Single' %TypeId
|
||||
'Int32' %TypeId
|
||||
'UInt32' %TypeId
|
||||
'Int64' %TypeId
|
||||
'UInt64' %TypeId
|
||||
'Object' %TypeId
|
||||
'Int16' %TypeId
|
||||
'UInt16' %TypeId
|
||||
'String' %TypeId
|
||||
|
||||
// -------------------------------------------------------------------------------
|
||||
// Literal constants
|
||||
//--------------------------------------------------------------------------------
|
||||
%define TimeConstant [012]?{Digit}:[0-5]{Digit}:[0-5]{Digit}[ ]('AM'|'PM')
|
||||
%define DateConstant ([1-9]|'10'|'11'|'12')\/([1-9]|([1-2][0-9])|'30'|'31')\/{Digit}{Digit}{Digit}*
|
||||
|
||||
%token Constant {
|
||||
public object value;
|
||||
}
|
||||
|
||||
%token BooleanConstant : Constant {}
|
||||
%token NullConstant : Constant {}
|
||||
%token IntegerConstant : Constant {}
|
||||
%token RealConstant : Constant {}
|
||||
%token StringConstant : Constant {
|
||||
public void cleanUpString(object st) {
|
||||
var s = (string)st;
|
||||
s = s.Substring(1,s.Length-2);
|
||||
s = s.Replace(@"\'","'");
|
||||
value = s;
|
||||
}
|
||||
}
|
||||
%token CSStringConstant : Constant {}
|
||||
%token DateTimeConstant : Constant {}
|
||||
|
||||
\"([^\"\\]*|\\.)*\" %CSStringConstant {string s = yytext; value = s.Substring(1,s.Length-2);}
|
||||
\'([^\'\\]*|\\.)*\' %StringConstant {cleanUpString(yytext);}
|
||||
'true'|'false' %BooleanConstant {value = Boolean.Parse(yytext);}
|
||||
'null' %NullConstant {value = DBNull.Value;}
|
||||
-?{Digit}+ %IntegerConstant {value = Int32.Parse(yytext);}
|
||||
-?{Digit}+\.{Digit}+ %RealConstant {value = Double.Parse(yytext);}
|
||||
({DateConstant}([ ]{TimeConstant})?)|(({DateConstant}[ ])?{TimeConstant}) %DateTimeConstant {value = DateTime.Parse(yytext);}
|
||||
|
||||
// --------------------------------------------------------------------------------
|
||||
// Relational Operators
|
||||
// --------------------------------------------------------------------------------
|
||||
'=' %EqualsOp
|
||||
'<=' %SmallerEqualOp
|
||||
'>=' %GreaterEqualOp
|
||||
'<' %SmallerOp
|
||||
'>' %GreaterOp
|
||||
'<>' %DifferentOp
|
||||
'!=' %DifferentOp2
|
||||
'~=' %MatchesOp
|
||||
|
||||
// --------------------------------------------------------------------------------
|
||||
// Logical operators
|
||||
// --------------------------------------------------------------------------------
|
||||
|
||||
'or' %OrOp
|
||||
'and' %AndOp
|
||||
'not' %NotOp
|
||||
'xor' %XorOp
|
||||
|
||||
|
||||
// --------------------------------------------------------------------------------
|
||||
// Definitions
|
||||
// --------------------------------------------------------------------------------
|
||||
'define' %Define
|
||||
'{' %BeginDef
|
||||
'}' %EndDef
|
||||
|
||||
// --------------------------------------------------------------------------------
|
||||
// Identifiers
|
||||
// --------------------------------------------------------------------------------
|
||||
|
||||
{Letter}({Letter}*{Digit}*_*\.*)* %Identifier
|
||||
|
||||
// --------------------------------------------------------------------------------
|
||||
// Utility tokens
|
||||
// --------------------------------------------------------------------------------
|
||||
|
||||
\( %OpenParenthesis
|
||||
\) %CloseParenthesis
|
||||
',' %Comma
|
||||
'!' %Not
|
||||
':' %MapsTo
|
||||
'+' %Ascending
|
||||
'-' %Descending
|
||||
'/' %IsOfType
|
||||
'[' %QuoteOpen
|
||||
']' %QuoteClose
|
||||
'\/\/'[^\n\r]* ;
|
||||
[ \t\r\n] ;
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,54 @@
|
||||
%parser BooleanExpressionTokens.lexer
|
||||
%namespace BCG.Evaluator.ColumnMapExpression
|
||||
|
||||
%symbol ColumnMapExpression {
|
||||
public ColumnMapExpression (System.Collections.IDictionary tcolumns, bool tisInclusive)
|
||||
{
|
||||
columns = tcolumns;
|
||||
isInclusive = tisInclusive;
|
||||
}
|
||||
public ColumnMapExpression (bool tisInclusive)
|
||||
{
|
||||
columns = new System.Collections.Hashtable();
|
||||
isInclusive = tisInclusive;
|
||||
}
|
||||
public System.Collections.IDictionary columns;
|
||||
public bool isInclusive;
|
||||
}
|
||||
|
||||
%symbol AliasList {
|
||||
public AliasList (string name, string newName, AliasList oldList)
|
||||
{
|
||||
columns = oldList.columns;
|
||||
columns [name] = newName;
|
||||
}
|
||||
public AliasList (string name, string newName)
|
||||
{
|
||||
columns = new System.Collections.Hashtable();
|
||||
columns [name] = newName;
|
||||
}
|
||||
public AliasList (string name)
|
||||
{
|
||||
columns = new System.Collections.Hashtable();
|
||||
columns [name] = name;
|
||||
}
|
||||
public AliasList (string name, AliasList oldList)
|
||||
{
|
||||
columns = oldList.columns;
|
||||
columns [name] = name;
|
||||
}
|
||||
|
||||
public System.Collections.IDictionary columns;
|
||||
}
|
||||
|
||||
ColumnMapExpression : Not AliasList:al %ColumnMapExpression(al.columns,false)
|
||||
| Not %ColumnMapExpression(false)
|
||||
| AliasList:al %ColumnMapExpression(al.columns,true)
|
||||
;
|
||||
|
||||
AliasList : Identifier:old MapsTo Identifier:new %AliasList (old.yytext,new.yytext)
|
||||
| Identifier:old MapsTo Identifier:new AliasList:rest %AliasList (old.yytext,new.yytext, rest)
|
||||
| Identifier:c %AliasList (c.yytext)
|
||||
| Identifier:c AliasList:rest %AliasList (c.yytext,rest)
|
||||
;
|
||||
|
||||
@@ -0,0 +1,603 @@
|
||||
using System;using Tools;
|
||||
namespace BCG.Evaluator.ColumnMapExpression {
|
||||
//%+ColumnMapExpression
|
||||
[Serializable] public class ColumnMapExpression : SYMBOL{
|
||||
public ColumnMapExpression (Parser yyp, System . Collections . IDictionary tcolumns , bool tisInclusive ):base(((syntax)yyp)){ columns = tcolumns ;
|
||||
isInclusive = tisInclusive ;
|
||||
}
|
||||
public ColumnMapExpression (Parser yyp, bool tisInclusive ):base(((syntax)yyp)){ columns = new System . Collections . Hashtable ();
|
||||
isInclusive = tisInclusive ;
|
||||
}
|
||||
public System . Collections . IDictionary columns ;
|
||||
public bool isInclusive ;
|
||||
|
||||
public override string yyname() { return "ColumnMapExpression"; }
|
||||
public ColumnMapExpression(Parser yyp):base(yyp){}}
|
||||
//%+AliasList
|
||||
[Serializable] public class AliasList : SYMBOL{
|
||||
public AliasList (Parser yyp, string name , string newName , AliasList oldList ):base(((syntax)yyp)){ columns = oldList . columns ;
|
||||
columns[ name ]= newName ;
|
||||
}
|
||||
public AliasList (Parser yyp, string name , string newName ):base(((syntax)yyp)){ columns = new System . Collections . Hashtable ();
|
||||
columns[ name ]= newName ;
|
||||
}
|
||||
public AliasList (Parser yyp, string name ):base(((syntax)yyp)){ columns = new System . Collections . Hashtable ();
|
||||
columns[ name ]= name ;
|
||||
}
|
||||
public AliasList (Parser yyp, string name , AliasList oldList ):base(((syntax)yyp)){ columns = oldList . columns ;
|
||||
columns[ name ]= name ;
|
||||
}
|
||||
public System . Collections . IDictionary columns ;
|
||||
|
||||
public override string yyname() { return "AliasList"; }
|
||||
public AliasList(Parser yyp):base(yyp){}}
|
||||
|
||||
[Serializable] public class ColumnMapExpression_1 : ColumnMapExpression {
|
||||
public ColumnMapExpression_1(Parser yyq):base(yyq,
|
||||
((AliasList)(yyq.StackAt(0).m_value))
|
||||
.columns,false){}}
|
||||
|
||||
[Serializable] public class ColumnMapExpression_2 : ColumnMapExpression {
|
||||
public ColumnMapExpression_2(Parser yyq):base(yyq,false){}}
|
||||
|
||||
[Serializable] public class ColumnMapExpression_3 : ColumnMapExpression {
|
||||
public ColumnMapExpression_3(Parser yyq):base(yyq,
|
||||
((AliasList)(yyq.StackAt(0).m_value))
|
||||
.columns,true){}}
|
||||
|
||||
[Serializable] public class AliasList_1 : AliasList {
|
||||
public AliasList_1(Parser yyq):base(yyq,
|
||||
((Identifier)(yyq.StackAt(2).m_value))
|
||||
.yytext,
|
||||
((Identifier)(yyq.StackAt(0).m_value))
|
||||
.yytext){}}
|
||||
|
||||
[Serializable] public class AliasList_2 : AliasList {
|
||||
public AliasList_2(Parser yyq):base(yyq,
|
||||
((Identifier)(yyq.StackAt(3).m_value))
|
||||
.yytext,
|
||||
((Identifier)(yyq.StackAt(1).m_value))
|
||||
.yytext,
|
||||
((AliasList)(yyq.StackAt(0).m_value))
|
||||
){}}
|
||||
|
||||
[Serializable] public class AliasList_3 : AliasList {
|
||||
public AliasList_3(Parser yyq):base(yyq,
|
||||
((Identifier)(yyq.StackAt(0).m_value))
|
||||
.yytext){}}
|
||||
|
||||
[Serializable] public class AliasList_4 : AliasList {
|
||||
public AliasList_4(Parser yyq):base(yyq,
|
||||
((Identifier)(yyq.StackAt(1).m_value))
|
||||
.yytext,
|
||||
((AliasList)(yyq.StackAt(0).m_value))
|
||||
){}}
|
||||
[Serializable] public class yysyntax: Symbols {
|
||||
public override object Action(Parser yyq,SYMBOL yysym, int yyact) {
|
||||
switch(yyact) {
|
||||
case -1: break; //// keep compiler happy
|
||||
} return null; }
|
||||
public yysyntax():base() { arr = new byte[] {
|
||||
0,1,0,0,0,255,255,255,255,1,
|
||||
0,0,0,0,0,0,0,12,2,0,0,
|
||||
0,60,84,111,111,108,115,44,32,86,101,
|
||||
114,115,105,111,110,61,48,46,48,46,48,
|
||||
46,48,44,32,67,117,108,116,117,114,101,
|
||||
61,110,101,117,116,114,97,108,44,32,80,
|
||||
117,98,108,105,99,75,101,121,84,111,107,
|
||||
101,110,61,110,117,108,108,5,1,0,0,
|
||||
0,13,84,111,111,108,115,46,67,83,121,
|
||||
109,98,111,108,4,0,0,0,9,109,95,
|
||||
115,121,109,116,121,112,101,8,109,95,100,
|
||||
111,108,108,97,114,3,112,111,115,11,84,
|
||||
79,75,69,78,43,109,95,115,116,114,4,
|
||||
2,0,1,21,84,111,111,108,115,46,67,
|
||||
83,121,109,98,111,108,43,83,121,109,84,
|
||||
121,112,101,2,0,0,0,8,2,0,0,
|
||||
0,5,253,255,255,255,21,84,111,111,108,
|
||||
115,46,67,83,121,109,98,111,108,43,83,
|
||||
121,109,84,121,112,101,1,0,0,0,7,
|
||||
118,97,108,117,101,95,95,0,8,2,0,
|
||||
0,0,2,0,0,0,10,0,0,0,0,
|
||||
6,4,0,0,0,19,67,111,108,117,109,
|
||||
110,77,97,112,69,120,112,114,101,115,115,
|
||||
105,111,110,11,0,1,0,0,0,255,255,
|
||||
255,255,1,0,0,0,0,0,0,0,12,
|
||||
2,0,0,0,60,84,111,111,108,115,44,
|
||||
32,86,101,114,115,105,111,110,61,48,46,
|
||||
48,46,48,46,48,44,32,67,117,108,116,
|
||||
117,114,101,61,110,101,117,116,114,97,108,
|
||||
44,32,80,117,98,108,105,99,75,101,121,
|
||||
84,111,107,101,110,61,110,117,108,108,5,
|
||||
1,0,0,0,16,84,111,111,108,115,46,
|
||||
80,97,114,115,101,83,116,97,116,101,3,
|
||||
0,0,0,7,109,95,115,116,97,116,101,
|
||||
17,109,95,97,99,99,101,115,115,105,110,
|
||||
103,83,121,109,98,111,108,9,109,95,99,
|
||||
104,97,110,103,101,100,0,4,0,8,13,
|
||||
84,111,111,108,115,46,67,83,121,109,98,
|
||||
111,108,2,0,0,0,1,2,0,0,0,
|
||||
12,0,0,0,9,3,0,0,0,0,5,
|
||||
3,0,0,0,13,84,111,111,108,115,46,
|
||||
67,83,121,109,98,111,108,4,0,0,0,
|
||||
9,109,95,115,121,109,116,121,112,101,8,
|
||||
109,95,100,111,108,108,97,114,3,112,111,
|
||||
115,11,84,79,75,69,78,43,109,95,115,
|
||||
116,114,4,2,0,1,21,84,111,111,108,
|
||||
115,46,67,83,121,109,98,111,108,43,83,
|
||||
121,109,84,121,112,101,2,0,0,0,8,
|
||||
2,0,0,0,5,252,255,255,255,21,84,
|
||||
111,111,108,115,46,67,83,121,109,98,111,
|
||||
108,43,83,121,109,84,121,112,101,1,0,
|
||||
0,0,7,118,97,108,117,101,95,95,0,
|
||||
8,2,0,0,0,2,0,0,0,10,0,
|
||||
0,0,0,6,5,0,0,0,19,67,111,
|
||||
108,117,109,110,77,97,112,69,120,112,114,
|
||||
101,115,115,105,111,110,11,0,1,0,0,
|
||||
0,255,255,255,255,1,0,0,0,0,0,
|
||||
0,0,4,1,0,0,0,28,83,121,115,
|
||||
116,101,109,46,67,111,108,108,101,99,116,
|
||||
105,111,110,115,46,72,97,115,104,116,97,
|
||||
98,108,101,7,0,0,0,10,76,111,97,
|
||||
100,70,97,99,116,111,114,7,86,101,114,
|
||||
115,105,111,110,8,67,111,109,112,97,114,
|
||||
101,114,16,72,97,115,104,67,111,100,101,
|
||||
80,114,111,118,105,100,101,114,8,72,97,
|
||||
115,104,83,105,122,101,4,75,101,121,115,
|
||||
6,86,97,108,117,101,115,0,0,3,3,
|
||||
0,5,5,11,8,28,83,121,115,116,101,
|
||||
109,46,67,111,108,108,101,99,116,105,111,
|
||||
110,115,46,73,67,111,109,112,97,114,101,
|
||||
114,36,83,121,115,116,101,109,46,67,111,
|
||||
108,108,101,99,116,105,111,110,115,46,73,
|
||||
72,97,115,104,67,111,100,101,80,114,111,
|
||||
118,105,100,101,114,8,236,81,56,63,12,
|
||||
0,0,0,10,10,23,0,0,0,9,2,
|
||||
0,0,0,9,3,0,0,0,16,2,0,
|
||||
0,0,11,0,0,0,8,8,13,0,0,
|
||||
0,8,8,12,0,0,0,8,8,11,0,
|
||||
0,0,8,8,9,0,0,0,8,8,8,
|
||||
0,0,0,8,8,7,0,0,0,8,8,
|
||||
5,0,0,0,8,8,4,0,0,0,8,
|
||||
8,2,0,0,0,8,8,1,0,0,0,
|
||||
8,8,0,0,0,0,16,3,0,0,0,
|
||||
11,0,0,0,9,4,0,0,0,9,5,
|
||||
0,0,0,9,6,0,0,0,9,7,0,
|
||||
0,0,9,8,0,0,0,9,9,0,0,
|
||||
0,9,10,0,0,0,9,11,0,0,0,
|
||||
9,12,0,0,0,9,13,0,0,0,9,
|
||||
14,0,0,0,12,15,0,0,0,60,84,
|
||||
111,111,108,115,44,32,86,101,114,115,105,
|
||||
111,110,61,48,46,48,46,48,46,48,44,
|
||||
32,67,117,108,116,117,114,101,61,110,101,
|
||||
117,116,114,97,108,44,32,80,117,98,108,
|
||||
105,99,75,101,121,84,111,107,101,110,61,
|
||||
110,117,108,108,5,4,0,0,0,16,84,
|
||||
111,111,108,115,46,80,97,114,115,101,83,
|
||||
116,97,116,101,3,0,0,0,7,109,95,
|
||||
115,116,97,116,101,17,109,95,97,99,99,
|
||||
101,115,115,105,110,103,83,121,109,98,111,
|
||||
108,9,109,95,99,104,97,110,103,101,100,
|
||||
0,4,0,8,9,84,111,111,108,115,46,
|
||||
69,79,70,15,0,0,0,1,15,0,0,
|
||||
0,13,0,0,0,9,16,0,0,0,0,
|
||||
1,5,0,0,0,4,0,0,0,12,0,
|
||||
0,0,9,17,0,0,0,0,1,6,0,
|
||||
0,0,4,0,0,0,11,0,0,0,9,
|
||||
18,0,0,0,0,1,7,0,0,0,4,
|
||||
0,0,0,9,0,0,0,9,19,0,0,
|
||||
0,0,1,8,0,0,0,4,0,0,0,
|
||||
8,0,0,0,9,18,0,0,0,0,1,
|
||||
9,0,0,0,4,0,0,0,7,0,0,
|
||||
0,9,18,0,0,0,0,1,10,0,0,
|
||||
0,4,0,0,0,5,0,0,0,9,21,
|
||||
0,0,0,0,1,11,0,0,0,4,0,
|
||||
0,0,4,0,0,0,9,22,0,0,0,
|
||||
0,1,12,0,0,0,4,0,0,0,2,
|
||||
0,0,0,9,18,0,0,0,0,1,13,
|
||||
0,0,0,4,0,0,0,1,0,0,0,
|
||||
9,21,0,0,0,0,1,14,0,0,0,
|
||||
4,0,0,0,0,0,0,0,10,0,5,
|
||||
16,0,0,0,9,84,111,111,108,115,46,
|
||||
69,79,70,4,0,0,0,9,109,95,115,
|
||||
121,109,116,121,112,101,8,109,95,100,111,
|
||||
108,108,97,114,3,112,111,115,11,84,79,
|
||||
75,69,78,43,109,95,115,116,114,4,2,
|
||||
0,1,21,84,111,111,108,115,46,67,83,
|
||||
121,109,98,111,108,43,83,121,109,84,121,
|
||||
112,101,15,0,0,0,8,15,0,0,0,
|
||||
5,231,255,255,255,21,84,111,111,108,115,
|
||||
46,67,83,121,109,98,111,108,43,83,121,
|
||||
109,84,121,112,101,1,0,0,0,7,118,
|
||||
97,108,117,101,95,95,0,8,15,0,0,
|
||||
0,6,0,0,0,10,0,0,0,0,6,
|
||||
26,0,0,0,3,69,79,70,5,17,0,
|
||||
0,0,13,84,111,111,108,115,46,67,83,
|
||||
121,109,98,111,108,4,0,0,0,9,109,
|
||||
95,115,121,109,116,121,112,101,8,109,95,
|
||||
100,111,108,108,97,114,3,112,111,115,11,
|
||||
84,79,75,69,78,43,109,95,115,116,114,
|
||||
4,2,0,1,21,84,111,111,108,115,46,
|
||||
67,83,121,109,98,111,108,43,83,121,109,
|
||||
84,121,112,101,15,0,0,0,8,15,0,
|
||||
0,0,1,229,255,255,255,231,255,255,255,
|
||||
2,0,0,0,10,0,0,0,0,6,28,
|
||||
0,0,0,19,67,111,108,117,109,110,77,
|
||||
97,112,69,120,112,114,101,115,115,105,111,
|
||||
110,1,18,0,0,0,17,0,0,0,1,
|
||||
227,255,255,255,231,255,255,255,2,0,0,
|
||||
0,10,0,0,0,0,6,30,0,0,0,
|
||||
9,65,108,105,97,115,76,105,115,116,1,
|
||||
19,0,0,0,17,0,0,0,1,225,255,
|
||||
255,255,231,255,255,255,1,0,0,0,10,
|
||||
0,0,0,0,6,32,0,0,0,3,78,
|
||||
111,116,1,21,0,0,0,17,0,0,0,
|
||||
1,223,255,255,255,231,255,255,255,1,0,
|
||||
0,0,10,0,0,0,0,6,34,0,0,
|
||||
0,10,73,100,101,110,116,105,102,105,101,
|
||||
114,1,22,0,0,0,17,0,0,0,1,
|
||||
221,255,255,255,231,255,255,255,1,0,0,
|
||||
0,10,0,0,0,0,6,36,0,0,0,
|
||||
6,77,97,112,115,84,111,11,0,1,0,
|
||||
0,0,255,255,255,255,1,0,0,0,0,
|
||||
0,0,0,4,1,0,0,0,28,83,121,
|
||||
115,116,101,109,46,67,111,108,108,101,99,
|
||||
116,105,111,110,115,46,72,97,115,104,116,
|
||||
97,98,108,101,7,0,0,0,10,76,111,
|
||||
97,100,70,97,99,116,111,114,7,86,101,
|
||||
114,115,105,111,110,8,67,111,109,112,97,
|
||||
114,101,114,16,72,97,115,104,67,111,100,
|
||||
101,80,114,111,118,105,100,101,114,8,72,
|
||||
97,115,104,83,105,122,101,4,75,101,121,
|
||||
115,6,86,97,108,117,101,115,0,0,3,
|
||||
3,0,5,5,11,8,28,83,121,115,116,
|
||||
101,109,46,67,111,108,108,101,99,116,105,
|
||||
111,110,115,46,73,67,111,109,112,97,114,
|
||||
101,114,36,83,121,115,116,101,109,46,67,
|
||||
111,108,108,101,99,116,105,111,110,115,46,
|
||||
73,72,97,115,104,67,111,100,101,80,114,
|
||||
111,118,105,100,101,114,8,236,81,56,63,
|
||||
14,0,0,0,10,10,23,0,0,0,9,
|
||||
2,0,0,0,9,3,0,0,0,16,2,
|
||||
0,0,0,13,0,0,0,6,4,0,0,
|
||||
0,6,77,97,112,115,84,111,6,5,0,
|
||||
0,0,21,67,111,108,117,109,110,77,97,
|
||||
112,69,120,112,114,101,115,115,105,111,110,
|
||||
95,51,6,6,0,0,0,21,67,111,108,
|
||||
117,109,110,77,97,112,69,120,112,114,101,
|
||||
115,115,105,111,110,95,50,6,7,0,0,
|
||||
0,3,69,79,70,6,8,0,0,0,11,
|
||||
65,108,105,97,115,76,105,115,116,95,52,
|
||||
6,9,0,0,0,11,65,108,105,97,115,
|
||||
76,105,115,116,95,51,6,10,0,0,0,
|
||||
10,73,100,101,110,116,105,102,105,101,114,
|
||||
6,11,0,0,0,11,65,108,105,97,115,
|
||||
76,105,115,116,95,50,6,12,0,0,0,
|
||||
11,65,108,105,97,115,76,105,115,116,95,
|
||||
49,6,13,0,0,0,9,65,108,105,97,
|
||||
115,76,105,115,116,6,14,0,0,0,19,
|
||||
67,111,108,117,109,110,77,97,112,69,120,
|
||||
112,114,101,115,115,105,111,110,6,15,0,
|
||||
0,0,3,78,111,116,6,16,0,0,0,
|
||||
21,67,111,108,117,109,110,77,97,112,69,
|
||||
120,112,114,101,115,115,105,111,110,95,49,
|
||||
16,3,0,0,0,13,0,0,0,9,17,
|
||||
0,0,0,9,18,0,0,0,9,19,0,
|
||||
0,0,9,20,0,0,0,9,21,0,0,
|
||||
0,9,22,0,0,0,9,23,0,0,0,
|
||||
9,24,0,0,0,9,25,0,0,0,9,
|
||||
26,0,0,0,9,27,0,0,0,9,28,
|
||||
0,0,0,9,29,0,0,0,12,30,0,
|
||||
0,0,60,84,111,111,108,115,44,32,86,
|
||||
101,114,115,105,111,110,61,48,46,48,46,
|
||||
48,46,48,44,32,67,117,108,116,117,114,
|
||||
101,61,110,101,117,116,114,97,108,44,32,
|
||||
80,117,98,108,105,99,75,101,121,84,111,
|
||||
107,101,110,61,110,117,108,108,5,17,0,
|
||||
0,0,17,84,111,111,108,115,46,80,97,
|
||||
114,115,105,110,103,73,110,102,111,2,0,
|
||||
0,0,9,109,95,115,121,109,78,97,109,
|
||||
101,12,109,95,112,97,114,115,101,116,97,
|
||||
98,108,101,1,3,28,83,121,115,116,101,
|
||||
109,46,67,111,108,108,101,99,116,105,111,
|
||||
110,115,46,72,97,115,104,116,97,98,108,
|
||||
101,30,0,0,0,9,4,0,0,0,9,
|
||||
32,0,0,0,1,18,0,0,0,17,0,
|
||||
0,0,9,5,0,0,0,9,34,0,0,
|
||||
0,1,19,0,0,0,17,0,0,0,9,
|
||||
6,0,0,0,9,34,0,0,0,1,20,
|
||||
0,0,0,17,0,0,0,9,7,0,0,
|
||||
0,9,38,0,0,0,1,21,0,0,0,
|
||||
17,0,0,0,9,8,0,0,0,9,40,
|
||||
0,0,0,1,22,0,0,0,17,0,0,
|
||||
0,9,9,0,0,0,9,40,0,0,0,
|
||||
1,23,0,0,0,17,0,0,0,9,10,
|
||||
0,0,0,9,44,0,0,0,1,24,0,
|
||||
0,0,17,0,0,0,9,11,0,0,0,
|
||||
9,40,0,0,0,1,25,0,0,0,17,
|
||||
0,0,0,9,12,0,0,0,9,40,0,
|
||||
0,0,1,26,0,0,0,17,0,0,0,
|
||||
9,13,0,0,0,9,40,0,0,0,1,
|
||||
27,0,0,0,17,0,0,0,9,14,0,
|
||||
0,0,9,34,0,0,0,1,28,0,0,
|
||||
0,17,0,0,0,9,15,0,0,0,9,
|
||||
54,0,0,0,1,29,0,0,0,17,0,
|
||||
0,0,9,16,0,0,0,9,34,0,0,
|
||||
0,1,32,0,0,0,1,0,0,0,236,
|
||||
81,56,63,1,0,0,0,10,10,11,0,
|
||||
0,0,9,57,0,0,0,9,58,0,0,
|
||||
0,1,34,0,0,0,1,0,0,0,236,
|
||||
81,56,63,1,0,0,0,10,10,11,0,
|
||||
0,0,9,59,0,0,0,9,60,0,0,
|
||||
0,1,38,0,0,0,1,0,0,0,236,
|
||||
81,56,63,7,0,0,0,10,10,11,0,
|
||||
0,0,9,61,0,0,0,9,62,0,0,
|
||||
0,1,40,0,0,0,1,0,0,0,236,
|
||||
81,56,63,4,0,0,0,10,10,11,0,
|
||||
0,0,9,63,0,0,0,9,64,0,0,
|
||||
0,1,44,0,0,0,1,0,0,0,236,
|
||||
81,56,63,5,0,0,0,10,10,11,0,
|
||||
0,0,9,65,0,0,0,9,66,0,0,
|
||||
0,1,54,0,0,0,1,0,0,0,236,
|
||||
81,56,63,1,0,0,0,10,10,11,0,
|
||||
0,0,9,67,0,0,0,9,68,0,0,
|
||||
0,16,57,0,0,0,1,0,0,0,8,
|
||||
8,1,0,0,0,16,58,0,0,0,1,
|
||||
0,0,0,9,69,0,0,0,16,59,0,
|
||||
0,0,1,0,0,0,8,8,0,0,0,
|
||||
0,16,60,0,0,0,1,0,0,0,9,
|
||||
70,0,0,0,16,61,0,0,0,7,0,
|
||||
0,0,8,8,9,0,0,0,8,8,8,
|
||||
0,0,0,8,8,7,0,0,0,8,8,
|
||||
5,0,0,0,8,8,2,0,0,0,8,
|
||||
8,1,0,0,0,8,8,11,0,0,0,
|
||||
16,62,0,0,0,7,0,0,0,9,71,
|
||||
0,0,0,9,72,0,0,0,9,73,0,
|
||||
0,0,9,74,0,0,0,9,75,0,0,
|
||||
0,9,76,0,0,0,9,77,0,0,0,
|
||||
16,63,0,0,0,4,0,0,0,8,8,
|
||||
9,0,0,0,8,8,5,0,0,0,8,
|
||||
8,1,0,0,0,8,8,0,0,0,0,
|
||||
16,64,0,0,0,4,0,0,0,9,78,
|
||||
0,0,0,9,79,0,0,0,9,80,0,
|
||||
0,0,9,81,0,0,0,16,65,0,0,
|
||||
0,5,0,0,0,8,8,9,0,0,0,
|
||||
8,8,5,0,0,0,8,8,4,0,0,
|
||||
0,8,8,1,0,0,0,8,8,0,0,
|
||||
0,0,16,66,0,0,0,5,0,0,0,
|
||||
9,82,0,0,0,9,83,0,0,0,9,
|
||||
84,0,0,0,9,85,0,0,0,9,86,
|
||||
0,0,0,16,67,0,0,0,1,0,0,
|
||||
0,8,8,0,0,0,0,16,68,0,0,
|
||||
0,1,0,0,0,9,87,0,0,0,5,
|
||||
69,0,0,0,17,84,111,111,108,115,46,
|
||||
80,97,114,115,101,114,83,104,105,102,116,
|
||||
2,0,0,0,6,109,95,110,101,120,116,
|
||||
8,109,95,97,99,116,105,111,110,4,4,
|
||||
16,84,111,111,108,115,46,80,97,114,115,
|
||||
101,83,116,97,116,101,30,0,0,0,18,
|
||||
84,111,111,108,115,46,80,97,114,115,101,
|
||||
114,65,99,116,105,111,110,30,0,0,0,
|
||||
30,0,0,0,9,88,0,0,0,10,1,
|
||||
70,0,0,0,69,0,0,0,9,89,0,
|
||||
0,0,10,5,71,0,0,0,18,84,111,
|
||||
111,108,115,46,80,97,114,115,101,114,82,
|
||||
101,100,117,99,101,3,0,0,0,7,109,
|
||||
95,100,101,112,116,104,6,109,95,112,114,
|
||||
111,100,8,109,95,97,99,116,105,111,110,
|
||||
0,4,4,8,16,84,111,111,108,115,46,
|
||||
80,114,111,100,117,99,116,105,111,110,30,
|
||||
0,0,0,24,84,111,111,108,115,46,80,
|
||||
97,114,115,101,114,83,105,109,112,108,101,
|
||||
65,99,116,105,111,110,30,0,0,0,30,
|
||||
0,0,0,1,0,0,0,9,90,0,0,
|
||||
0,9,91,0,0,0,1,72,0,0,0,
|
||||
71,0,0,0,1,0,0,0,9,92,0,
|
||||
0,0,9,93,0,0,0,1,73,0,0,
|
||||
0,71,0,0,0,4,0,0,0,9,94,
|
||||
0,0,0,9,95,0,0,0,1,74,0,
|
||||
0,0,71,0,0,0,3,0,0,0,9,
|
||||
96,0,0,0,9,97,0,0,0,1,75,
|
||||
0,0,0,71,0,0,0,2,0,0,0,
|
||||
9,98,0,0,0,9,99,0,0,0,1,
|
||||
76,0,0,0,71,0,0,0,1,0,0,
|
||||
0,9,100,0,0,0,9,101,0,0,0,
|
||||
1,77,0,0,0,71,0,0,0,2,0,
|
||||
0,0,9,102,0,0,0,9,103,0,0,
|
||||
0,1,78,0,0,0,69,0,0,0,9,
|
||||
104,0,0,0,10,1,79,0,0,0,69,
|
||||
0,0,0,9,105,0,0,0,10,1,80,
|
||||
0,0,0,69,0,0,0,9,106,0,0,
|
||||
0,10,1,81,0,0,0,69,0,0,0,
|
||||
9,107,0,0,0,10,1,82,0,0,0,
|
||||
69,0,0,0,9,108,0,0,0,10,1,
|
||||
83,0,0,0,69,0,0,0,9,108,0,
|
||||
0,0,10,1,84,0,0,0,69,0,0,
|
||||
0,9,109,0,0,0,10,1,85,0,0,
|
||||
0,69,0,0,0,9,108,0,0,0,10,
|
||||
1,86,0,0,0,69,0,0,0,9,108,
|
||||
0,0,0,10,1,87,0,0,0,69,0,
|
||||
0,0,9,111,0,0,0,10,5,88,0,
|
||||
0,0,16,84,111,111,108,115,46,80,97,
|
||||
114,115,101,83,116,97,116,101,3,0,0,
|
||||
0,7,109,95,115,116,97,116,101,17,109,
|
||||
95,97,99,99,101,115,115,105,110,103,83,
|
||||
121,109,98,111,108,9,109,95,99,104,97,
|
||||
110,103,101,100,0,4,0,8,13,84,111,
|
||||
111,108,115,46,67,83,121,109,98,111,108,
|
||||
30,0,0,0,1,30,0,0,0,4,0,
|
||||
0,0,9,112,0,0,0,0,1,89,0,
|
||||
0,0,88,0,0,0,12,0,0,0,9,
|
||||
113,0,0,0,0,5,90,0,0,0,16,
|
||||
84,111,111,108,115,46,80,114,111,100,117,
|
||||
99,116,105,111,110,1,0,0,0,5,109,
|
||||
95,112,110,111,0,8,30,0,0,0,2,
|
||||
0,0,0,5,91,0,0,0,24,84,111,
|
||||
111,108,115,46,80,97,114,115,101,114,83,
|
||||
105,109,112,108,101,65,99,116,105,111,110,
|
||||
6,0,0,0,5,109,95,115,121,109,5,
|
||||
109,95,108,101,110,9,109,95,115,121,109,
|
||||
116,121,112,101,8,109,95,100,111,108,108,
|
||||
97,114,3,112,111,115,11,84,79,75,69,
|
||||
78,43,109,95,115,116,114,4,0,4,2,
|
||||
0,1,13,84,111,111,108,115,46,67,83,
|
||||
121,109,98,111,108,30,0,0,0,8,21,
|
||||
84,111,111,108,115,46,67,83,121,109,98,
|
||||
111,108,43,83,121,109,84,121,112,101,30,
|
||||
0,0,0,8,30,0,0,0,9,114,0,
|
||||
0,0,2,0,0,0,5,141,255,255,255,
|
||||
21,84,111,111,108,115,46,67,83,121,109,
|
||||
98,111,108,43,83,121,109,84,121,112,101,
|
||||
1,0,0,0,7,118,97,108,117,101,95,
|
||||
95,0,8,30,0,0,0,5,0,0,0,
|
||||
10,235,4,0,0,6,116,0,0,0,20,
|
||||
37,67,111,108,117,109,110,77,97,112,69,
|
||||
120,112,114,101,115,115,105,111,110,1,92,
|
||||
0,0,0,90,0,0,0,3,0,0,0,
|
||||
1,93,0,0,0,91,0,0,0,9,117,
|
||||
0,0,0,2,0,0,0,1,138,255,255,
|
||||
255,141,255,255,255,5,0,0,0,10,52,
|
||||
5,0,0,6,119,0,0,0,20,37,67,
|
||||
111,108,117,109,110,77,97,112,69,120,112,
|
||||
114,101,115,115,105,111,110,1,94,0,0,
|
||||
0,90,0,0,0,5,0,0,0,1,95,
|
||||
0,0,0,91,0,0,0,9,120,0,0,
|
||||
0,5,0,0,0,1,135,255,255,255,141,
|
||||
255,255,255,5,0,0,0,10,47,6,0,
|
||||
0,6,122,0,0,0,10,37,65,108,105,
|
||||
97,115,76,105,115,116,1,96,0,0,0,
|
||||
90,0,0,0,4,0,0,0,1,97,0,
|
||||
0,0,91,0,0,0,9,123,0,0,0,
|
||||
4,0,0,0,1,132,255,255,255,141,255,
|
||||
255,255,5,0,0,0,10,196,5,0,0,
|
||||
6,125,0,0,0,10,37,65,108,105,97,
|
||||
115,76,105,115,116,1,98,0,0,0,90,
|
||||
0,0,0,7,0,0,0,1,99,0,0,
|
||||
0,91,0,0,0,9,126,0,0,0,3,
|
||||
0,0,0,1,129,255,255,255,141,255,255,
|
||||
255,5,0,0,0,10,228,6,0,0,6,
|
||||
128,0,0,0,10,37,65,108,105,97,115,
|
||||
76,105,115,116,1,100,0,0,0,90,0,
|
||||
0,0,6,0,0,0,1,101,0,0,0,
|
||||
91,0,0,0,9,129,0,0,0,2,0,
|
||||
0,0,1,126,255,255,255,141,255,255,255,
|
||||
5,0,0,0,10,135,6,0,0,6,131,
|
||||
0,0,0,10,37,65,108,105,97,115,76,
|
||||
105,115,116,1,102,0,0,0,90,0,0,
|
||||
0,1,0,0,0,1,103,0,0,0,91,
|
||||
0,0,0,9,132,0,0,0,3,0,0,
|
||||
0,1,123,255,255,255,141,255,255,255,5,
|
||||
0,0,0,10,168,4,0,0,6,134,0,
|
||||
0,0,20,37,67,111,108,117,109,110,77,
|
||||
97,112,69,120,112,114,101,115,115,105,111,
|
||||
110,1,104,0,0,0,88,0,0,0,11,
|
||||
0,0,0,9,135,0,0,0,0,1,105,
|
||||
0,0,0,88,0,0,0,7,0,0,0,
|
||||
9,135,0,0,0,0,1,106,0,0,0,
|
||||
88,0,0,0,2,0,0,0,9,135,0,
|
||||
0,0,0,1,107,0,0,0,88,0,0,
|
||||
0,8,0,0,0,9,135,0,0,0,0,
|
||||
1,108,0,0,0,88,0,0,0,1,0,
|
||||
0,0,9,136,0,0,0,0,1,109,0,
|
||||
0,0,88,0,0,0,5,0,0,0,9,
|
||||
136,0,0,0,0,1,111,0,0,0,88,
|
||||
0,0,0,9,0,0,0,9,137,0,0,
|
||||
0,0,5,112,0,0,0,13,84,111,111,
|
||||
108,115,46,67,83,121,109,98,111,108,4,
|
||||
0,0,0,9,109,95,115,121,109,116,121,
|
||||
112,101,8,109,95,100,111,108,108,97,114,
|
||||
3,112,111,115,11,84,79,75,69,78,43,
|
||||
109,95,115,116,114,4,2,0,1,21,84,
|
||||
111,111,108,115,46,67,83,121,109,98,111,
|
||||
108,43,83,121,109,84,121,112,101,30,0,
|
||||
0,0,8,30,0,0,0,1,118,255,255,
|
||||
255,141,255,255,255,1,0,0,0,10,0,
|
||||
0,0,0,9,4,0,0,0,1,113,0,
|
||||
0,0,112,0,0,0,1,116,255,255,255,
|
||||
141,255,255,255,2,0,0,0,10,0,0,
|
||||
0,0,9,14,0,0,0,1,114,0,0,
|
||||
0,112,0,0,0,1,114,255,255,255,141,
|
||||
255,255,255,3,0,0,0,10,0,0,0,
|
||||
0,9,6,0,0,0,1,117,0,0,0,
|
||||
112,0,0,0,1,112,255,255,255,141,255,
|
||||
255,255,3,0,0,0,10,0,0,0,0,
|
||||
9,5,0,0,0,1,120,0,0,0,112,
|
||||
0,0,0,1,110,255,255,255,141,255,255,
|
||||
255,3,0,0,0,10,0,0,0,0,9,
|
||||
11,0,0,0,1,123,0,0,0,112,0,
|
||||
0,0,1,108,255,255,255,141,255,255,255,
|
||||
3,0,0,0,10,0,0,0,0,9,12,
|
||||
0,0,0,1,126,0,0,0,112,0,0,
|
||||
0,1,106,255,255,255,141,255,255,255,3,
|
||||
0,0,0,10,0,0,0,0,9,8,0,
|
||||
0,0,1,129,0,0,0,112,0,0,0,
|
||||
1,104,255,255,255,141,255,255,255,3,0,
|
||||
0,0,10,0,0,0,0,9,9,0,0,
|
||||
0,1,132,0,0,0,112,0,0,0,1,
|
||||
102,255,255,255,141,255,255,255,3,0,0,
|
||||
0,10,0,0,0,0,9,16,0,0,0,
|
||||
1,135,0,0,0,112,0,0,0,1,100,
|
||||
255,255,255,141,255,255,255,2,0,0,0,
|
||||
10,0,0,0,0,9,13,0,0,0,1,
|
||||
136,0,0,0,112,0,0,0,1,98,255,
|
||||
255,255,141,255,255,255,1,0,0,0,10,
|
||||
0,0,0,0,9,10,0,0,0,1,137,
|
||||
0,0,0,112,0,0,0,1,96,255,255,
|
||||
255,141,255,255,255,1,0,0,0,10,0,
|
||||
0,0,0,9,15,0,0,0,11,0,1,
|
||||
0,0,0,255,255,255,255,1,0,0,0,
|
||||
0,0,0,0,4,1,0,0,0,28,83,
|
||||
121,115,116,101,109,46,67,111,108,108,101,
|
||||
99,116,105,111,110,115,46,72,97,115,104,
|
||||
116,97,98,108,101,7,0,0,0,10,76,
|
||||
111,97,100,70,97,99,116,111,114,7,86,
|
||||
101,114,115,105,111,110,8,67,111,109,112,
|
||||
97,114,101,114,16,72,97,115,104,67,111,
|
||||
100,101,80,114,111,118,105,100,101,114,8,
|
||||
72,97,115,104,83,105,122,101,4,75,101,
|
||||
121,115,6,86,97,108,117,101,115,0,0,
|
||||
3,3,0,5,5,11,8,28,83,121,115,
|
||||
116,101,109,46,67,111,108,108,101,99,116,
|
||||
105,111,110,115,46,73,67,111,109,112,97,
|
||||
114,101,114,36,83,121,115,116,101,109,46,
|
||||
67,111,108,108,101,99,116,105,111,110,115,
|
||||
46,73,72,97,115,104,67,111,100,101,80,
|
||||
114,111,118,105,100,101,114,8,236,81,56,
|
||||
63,0,0,0,0,10,10,11,0,0,0,
|
||||
9,2,0,0,0,9,3,0,0,0,16,
|
||||
2,0,0,0,0,0,0,0,16,3,0,
|
||||
0,0,0,0,0,0,11,0,1,0,0,
|
||||
0,255,255,255,255,1,0,0,0,0,0,
|
||||
0,0,4,1,0,0,0,14,83,121,115,
|
||||
116,101,109,46,66,111,111,108,101,97,110,
|
||||
1,0,0,0,7,109,95,118,97,108,117,
|
||||
101,0,1,1,11,0};
|
||||
new Sfactory(this,"ColumnMapExpression",new SCreator(ColumnMapExpression_factory));
|
||||
new Sfactory(this,"ColumnMapExpression_1",new SCreator(ColumnMapExpression_1_factory));
|
||||
new Sfactory(this,"ColumnMapExpression_3",new SCreator(ColumnMapExpression_3_factory));
|
||||
new Sfactory(this,"ColumnMapExpression_2",new SCreator(ColumnMapExpression_2_factory));
|
||||
new Sfactory(this,"AliasList_3",new SCreator(AliasList_3_factory));
|
||||
new Sfactory(this,"AliasList_4",new SCreator(AliasList_4_factory));
|
||||
new Sfactory(this,"AliasList_1",new SCreator(AliasList_1_factory));
|
||||
new Sfactory(this,"AliasList_2",new SCreator(AliasList_2_factory));
|
||||
new Sfactory(this,"AliasList",new SCreator(AliasList_factory));
|
||||
new Sfactory(this,"error",new SCreator(error_factory));
|
||||
}
|
||||
public static object ColumnMapExpression_factory(Parser yyp) { return new ColumnMapExpression(yyp); }
|
||||
public static object ColumnMapExpression_1_factory(Parser yyp) { return new ColumnMapExpression_1(yyp); }
|
||||
public static object ColumnMapExpression_3_factory(Parser yyp) { return new ColumnMapExpression_3(yyp); }
|
||||
public static object ColumnMapExpression_2_factory(Parser yyp) { return new ColumnMapExpression_2(yyp); }
|
||||
public static object AliasList_3_factory(Parser yyp) { return new AliasList_3(yyp); }
|
||||
public static object AliasList_4_factory(Parser yyp) { return new AliasList_4(yyp); }
|
||||
public static object AliasList_1_factory(Parser yyp) { return new AliasList_1(yyp); }
|
||||
public static object AliasList_2_factory(Parser yyp) { return new AliasList_2(yyp); }
|
||||
public static object AliasList_factory(Parser yyp) { return new AliasList(yyp); }
|
||||
public static object error_factory(Parser yyp) { return new error(yyp); }
|
||||
}
|
||||
public class syntax: Parser {
|
||||
public syntax():base(new yysyntax(),new tokens()) {}
|
||||
public syntax(Symbols syms):base(syms,new tokens()) {}
|
||||
public syntax(Symbols syms,ErrorHandler erh):base(syms,new tokens(erh)) {}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
# Generate CSharp lexers and parsers
|
||||
```
|
||||
# Run on Windows. Be sure to commit changes in generated files.
|
||||
python tools\py\gen_cs_grammar.py --sources src\DataStreamSuite\DataStreamGrammar
|
||||
```
|
||||
@@ -0,0 +1,15 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\client\spark_api\spark_api.csproj" />
|
||||
<ProjectReference Include="..\..\client\spark_core\spark_core.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,11 @@
|
||||
using bts.utils;
|
||||
|
||||
using mbts.config;
|
||||
|
||||
using System;
|
||||
|
||||
BTSNativeMethods.provide_command_line(args, args.Length);
|
||||
// Must initialize config before using log system
|
||||
Console.WriteLine("Initializing config...");
|
||||
Configuration.initialize();
|
||||
bts.Log.Gen.info("Starting DataStreamPublisher...");
|
||||
@@ -0,0 +1,10 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net7.0-windows</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
<UseWindowsForms>true</UseWindowsForms>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,3 @@
|
||||
using System;
|
||||
|
||||
Console.WriteLine("Starting DataStreamQueryAnalyzer...");
|
||||
@@ -0,0 +1,76 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.0.31903.59
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DataStream", "DataStream\DataStream.csproj", "{049E6723-E859-4829-B9D9-4B47CEA3054D}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DataStreamCore", "DataStreamCore\DataStreamCore.csproj", "{CF444FFC-2A15-44AE-9DEA-9E0E412AB281}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DataStreamPublisher", "DataStreamPublisher\DataStreamPublisher.csproj", "{4B5C4B20-6B37-48BD-A774-08932FA57E23}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DataStreamQueryAnalyzer", "DataStreamQueryAnalyzer\DataStreamQueryAnalyzer.csproj", "{A3F8AA9E-6AAA-40EC-9E1C-D4FA400F5147}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PubSub", "PubSub\PubSub.csproj", "{9C45C299-14C5-4F8B-903F-49849D89D1DC}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PubSubServer", "PubSubServer\PubSubServer.csproj", "{0DBD814A-E17F-4836-8EEE-6E91B00C578F}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BooleanExpressions", "BooleanExpressions\BooleanExpressions.csproj", "{EE53687E-BB62-45C6-A1B0-9B8F16B4E2C1}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BooleanExpressionsInterpreter", "BooleanExpressionsInterpreter\BooleanExpressionsInterpreter.csproj", "{60269417-583C-43A1-8AD6-AE82B82A00D3}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "spark_core", "..\client\spark_core\spark_core.csproj", "{88E70136-91AE-4F56-B243-8F4642B46D6A}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "spark_api", "..\client\spark_api\spark_api.csproj", "{52DD33DB-00F5-44BF-AE0F-5FC58FB2277E}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{049E6723-E859-4829-B9D9-4B47CEA3054D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{049E6723-E859-4829-B9D9-4B47CEA3054D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{049E6723-E859-4829-B9D9-4B47CEA3054D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{049E6723-E859-4829-B9D9-4B47CEA3054D}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{CF444FFC-2A15-44AE-9DEA-9E0E412AB281}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{CF444FFC-2A15-44AE-9DEA-9E0E412AB281}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{CF444FFC-2A15-44AE-9DEA-9E0E412AB281}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{CF444FFC-2A15-44AE-9DEA-9E0E412AB281}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{4B5C4B20-6B37-48BD-A774-08932FA57E23}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{4B5C4B20-6B37-48BD-A774-08932FA57E23}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{4B5C4B20-6B37-48BD-A774-08932FA57E23}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{4B5C4B20-6B37-48BD-A774-08932FA57E23}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{A3F8AA9E-6AAA-40EC-9E1C-D4FA400F5147}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{A3F8AA9E-6AAA-40EC-9E1C-D4FA400F5147}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{A3F8AA9E-6AAA-40EC-9E1C-D4FA400F5147}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{A3F8AA9E-6AAA-40EC-9E1C-D4FA400F5147}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{9C45C299-14C5-4F8B-903F-49849D89D1DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{9C45C299-14C5-4F8B-903F-49849D89D1DC}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{9C45C299-14C5-4F8B-903F-49849D89D1DC}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{9C45C299-14C5-4F8B-903F-49849D89D1DC}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{0DBD814A-E17F-4836-8EEE-6E91B00C578F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{0DBD814A-E17F-4836-8EEE-6E91B00C578F}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{0DBD814A-E17F-4836-8EEE-6E91B00C578F}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{0DBD814A-E17F-4836-8EEE-6E91B00C578F}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{EE53687E-BB62-45C6-A1B0-9B8F16B4E2C1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{EE53687E-BB62-45C6-A1B0-9B8F16B4E2C1}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{EE53687E-BB62-45C6-A1B0-9B8F16B4E2C1}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{EE53687E-BB62-45C6-A1B0-9B8F16B4E2C1}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{60269417-583C-43A1-8AD6-AE82B82A00D3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{60269417-583C-43A1-8AD6-AE82B82A00D3}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{60269417-583C-43A1-8AD6-AE82B82A00D3}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{60269417-583C-43A1-8AD6-AE82B82A00D3}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{88E70136-91AE-4F56-B243-8F4642B46D6A}.Debug|Any CPU.ActiveCfg = Debug|x64
|
||||
{88E70136-91AE-4F56-B243-8F4642B46D6A}.Debug|Any CPU.Build.0 = Debug|x64
|
||||
{88E70136-91AE-4F56-B243-8F4642B46D6A}.Release|Any CPU.ActiveCfg = Release|x64
|
||||
{88E70136-91AE-4F56-B243-8F4642B46D6A}.Release|Any CPU.Build.0 = Release|x64
|
||||
{52DD33DB-00F5-44BF-AE0F-5FC58FB2277E}.Debug|Any CPU.ActiveCfg = Debug|x64
|
||||
{52DD33DB-00F5-44BF-AE0F-5FC58FB2277E}.Debug|Any CPU.Build.0 = Debug|x64
|
||||
{52DD33DB-00F5-44BF-AE0F-5FC58FB2277E}.Release|Any CPU.ActiveCfg = Release|x64
|
||||
{52DD33DB-00F5-44BF-AE0F-5FC58FB2277E}.Release|Any CPU.Build.0 = Release|x64
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
@@ -0,0 +1,9 @@
|
||||
<Project>
|
||||
|
||||
<Import Project="..\Directory.Build.props" />
|
||||
|
||||
<PropertyGroup>
|
||||
<DataStreamGrammarDir>$(SparkRoot)\src\DataStreamSuite\DataStreamGrammar</DataStreamGrammarDir>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,8 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,3 @@
|
||||
using System;
|
||||
|
||||
Console.WriteLine("Starting PubSubServer...");
|
||||
@@ -0,0 +1,9 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,89 @@
|
||||
<Project>
|
||||
|
||||
<PropertyGroup>
|
||||
<ComputerSpecificConfig>..\tools\override\$(computername).props</ComputerSpecificConfig>
|
||||
<SparkRoot>$([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)\..))</SparkRoot>
|
||||
<SourceRoot>$([System.IO.Path]::GetFullPath($(SparkRoot)\src))</SourceRoot>
|
||||
<DepotName>$([System.IO.Path]::GetFileName($([System.IO.Path]::GetFullPath($(SparkRoot)))))</DepotName>
|
||||
<ErrorReport>None</ErrorReport>
|
||||
<Prefer32Bit>False</Prefer32Bit>
|
||||
<Deterministic>true</Deterministic>
|
||||
<EnableDefaultContentItems>False</EnableDefaultContentItems>
|
||||
<ShowMissingItemTypes>false</ShowMissingItemTypes>
|
||||
<Configuration Condition="'$(configuration)'==''">Debug</Configuration>
|
||||
<EnablePreviewFeatures>true</EnablePreviewFeatures>
|
||||
<LangVersion>11</LangVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<Choose>
|
||||
<When Condition="'$(OS)' == 'Windows_NT'">
|
||||
<PropertyGroup>
|
||||
<Externals>$(SparkRoot)/externals/windows</Externals>
|
||||
</PropertyGroup>
|
||||
</When>
|
||||
<Otherwise>
|
||||
<PropertyGroup>
|
||||
<Externals>$(SparkRoot)/externals/linux</Externals>
|
||||
</PropertyGroup>
|
||||
</Otherwise>
|
||||
</Choose>
|
||||
|
||||
<PropertyGroup Label="Output">
|
||||
<BaseOutputPath>$(SparkRoot)\build\$(Configuration)</BaseOutputPath>
|
||||
<OutputPath>$(BaseOutputPath)\bin</OutputPath>
|
||||
<BaseIntermediateOutputPath>$(BaseOutputPath)\obj\$(MSBuildProjectName)</BaseIntermediateOutputPath>
|
||||
<IntermediateOutputPath>$(BaseOutputPath)\obj\$(MSBuildProjectName)</IntermediateOutputPath>
|
||||
<ProtoOutputPath>$(BaseOutputPath)\obj\$(MSBuildProjectName)</ProtoOutputPath>
|
||||
</PropertyGroup>
|
||||
|
||||
<Import
|
||||
Project="$(ComputerSpecificConfig)"
|
||||
Condition="Exists($(ComputerSpecificConfig))" />
|
||||
|
||||
<PropertyGroup Label="ProtoBuf">
|
||||
<ProtocPluginBase>$(SparkRoot)\src\lib\api\service_compiler</ProtocPluginBase>
|
||||
</PropertyGroup>
|
||||
<Choose>
|
||||
<When Condition="'$(OS)' == 'Windows_NT'">
|
||||
<PropertyGroup Label="ProtoBuf">
|
||||
<protoc>$(Externals)/bin/protoc.exe</protoc>
|
||||
<ProtocPlugin>$(ProtocPluginBase)/plugin.cmd</ProtocPlugin>
|
||||
</PropertyGroup>
|
||||
</When>
|
||||
<Otherwise>
|
||||
<PropertyGroup Label="ProtoBuf">
|
||||
<protoc>$(Externals)/bin/protoc</protoc>
|
||||
<ProtocPlugin>$(ProtocPluginBase)/plugin.sh</ProtocPlugin>
|
||||
</PropertyGroup>
|
||||
</Otherwise>
|
||||
</Choose>
|
||||
|
||||
<ItemDefinitionGroup>
|
||||
<!--
|
||||
Google automatically converts .proto filenames to TitleCase when
|
||||
generating .cs files. Unless the .proto file is already in TitleCase
|
||||
(against Google's recommended practice to use snake_case .proto files),
|
||||
the 'CSName' must be overridden with the TitleCase formatting.
|
||||
For example:
|
||||
<ProtoService Include="foo_bar.proto" CSName="FooBar" />
|
||||
-->
|
||||
<Proto>
|
||||
<OutDir>$(ProtoOutputPath)/</OutDir>
|
||||
<CSName>%(FileName)</CSName>
|
||||
</Proto>
|
||||
|
||||
<!--
|
||||
Each .proto (service) input file produces 4 output files. For example,
|
||||
'foo_bar.proto' produces:
|
||||
* FooBar.cs
|
||||
* foo_bar.client.pb.cs
|
||||
* foo_bar.server.pb.cs
|
||||
* foo_bar.immutable.pb.cs
|
||||
-->
|
||||
<ProtoService>
|
||||
<OutDir>$(ProtoOutputPath)/</OutDir>
|
||||
<CSName>%(FileName)</CSName>
|
||||
</ProtoService>
|
||||
</ItemDefinitionGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,110 @@
|
||||
<Project>
|
||||
|
||||
<!--
|
||||
Run this after GetAssemblyVersion because it happens after the Xaml compiler
|
||||
and exists in both xaml and non-xaml projects. One of the (many) xaml compile
|
||||
passes wipes out the additional compile includes that we add.
|
||||
-->
|
||||
<Target
|
||||
Name="CompileProtos"
|
||||
AfterTargets="GetAssemblyVersion"
|
||||
Condition="'@(Proto)'!=''"
|
||||
Inputs="$(protoc);
|
||||
%(Proto.Identity);$(ProtocPluginBase)/plugin.py;
|
||||
$(ProtocPluginBase)/templates/c#/immutable.pb.cs;"
|
||||
Outputs="
|
||||
%(Proto.OutDir)/%(Proto.CSName).cs;
|
||||
%(Proto.OutDir)/%(Proto.FileName).immutable.pb.cs">
|
||||
<MakeDir Directories="%(Proto.OutDir)" />
|
||||
|
||||
<Message
|
||||
Importance="High"
|
||||
Text="Generating Proto %(Proto.FileName)" />
|
||||
|
||||
<PropertyGroup>
|
||||
<GenProtosCmd>$(protoc) %(Proto.FullPath)</GenProtosCmd>
|
||||
<GenProtosCmd>$(GenProtosCmd) --error_format=msvs</GenProtosCmd>
|
||||
<GenProtosCmd>$(GenProtosCmd) --proto_path=$(SourceRoot)</GenProtosCmd>
|
||||
<GenProtosCmd>$(GenProtosCmd) --plugin="protoc-gen-spark-csharp=$(ProtocPlugin)"</GenProtosCmd>
|
||||
<GenProtosCmd>$(GenProtosCmd) --spark-csharp_out=lang=c#,templates=immutable.pb.cs,strip_out_path=1:%(Proto.OutDir)</GenProtosCmd>
|
||||
<GenProtosCmd>$(GenProtosCmd) --csharp_out=%(Proto.OutDir)</GenProtosCmd>
|
||||
</PropertyGroup>
|
||||
<Exec Command="$(GenProtosCmd)" WorkingDirectory="%(Proto.RelativeDir)" />
|
||||
<ItemGroup>
|
||||
<Compile Include="%(Proto.OutDir)/%(Proto.CSName).cs" />
|
||||
<Compile Include="%(Proto.OutDir)/%(Proto.FileName).immutable.pb.cs" />
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
|
||||
|
||||
<!--
|
||||
Run this after GetAssemblyVersion because it happens after the Xaml compiler
|
||||
and exists in both xaml and non-xaml projects. One of the (many) xaml compile
|
||||
passes wipes out the additional compile includes that we add.
|
||||
-->
|
||||
<Target
|
||||
Name="CompileProtoServices"
|
||||
AfterTargets="GetAssemblyVersion"
|
||||
Condition="'@(ProtoService)'!=''"
|
||||
Inputs="$(protoc);
|
||||
%(ProtoService.Identity);$(ProtocPluginBase)/plugin.py;
|
||||
$(ProtocPluginBase)/templates/c#/client.pb.cs;
|
||||
$(ProtocPluginBase)/templates/c#/server.pb.cs;
|
||||
$(ProtocPluginBase)/templates/c#/immutable.pb.cs;"
|
||||
Outputs="
|
||||
%(ProtoService.OutDir)/%(ProtoService.CSName).cs;
|
||||
%(ProtoService.OutDir)/%(ProtoService.FileName).client.pb.cs;
|
||||
%(ProtoService.OutDir)/%(ProtoService.FileName).server.pb.cs;
|
||||
%(ProtoService.OutDir)/%(ProtoService.FileName).immutable.pb.cs">
|
||||
<MakeDir Directories="%(ProtoService.OutDir)" />
|
||||
|
||||
<Message
|
||||
Importance="High"
|
||||
Text="Generating ProtoService %(ProtoService.FileName)" />
|
||||
|
||||
<PropertyGroup>
|
||||
<GenProtosCmd>$(protoc) %(ProtoService.FullPath)</GenProtosCmd>
|
||||
<GenProtosCmd>$(GenProtosCmd) --error_format=msvs</GenProtosCmd>
|
||||
<GenProtosCmd>$(GenProtosCmd) --proto_path=$(SourceRoot)</GenProtosCmd>
|
||||
<GenProtosCmd>$(GenProtosCmd) --plugin="protoc-gen-service=$(ProtocPlugin)"</GenProtosCmd>
|
||||
<GenProtosCmd>$(GenProtosCmd) --service_out=lang=c#,strip_out_path=1:%(ProtoService.OutDir)</GenProtosCmd>
|
||||
<GenProtosCmd>$(GenProtosCmd) --csharp_out=%(ProtoService.OutDir)</GenProtosCmd>
|
||||
</PropertyGroup>
|
||||
<Exec Command="$(GenProtosCmd)" WorkingDirectory="%(ProtoService.RelativeDir)" />
|
||||
<ItemGroup>
|
||||
<Compile Include="%(ProtoService.OutDir)/%(ProtoService.CSName).cs" />
|
||||
<Compile Include="%(ProtoService.OutDir)/%(ProtoService.FileName).client.pb.cs" />
|
||||
<Compile Include="%(ProtoService.OutDir)/%(ProtoService.FileName).server.pb.cs" />
|
||||
<Compile Include="%(ProtoService.OutDir)/%(ProtoService.FileName).immutable.pb.cs" />
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
|
||||
<Target Name="RemoveSystemRuntimeFromRefPack"
|
||||
BeforeTargets="_HandlePackageFileConflicts"
|
||||
Condition="'@(Reference -> WithMetadataValue('NugetPackageId', 'System.Runtime.Experimental'))' != ''">
|
||||
<ItemGroup>
|
||||
<Reference Remove="@(Reference)"
|
||||
Condition="$([System.String]::Copy(%(Reference.Identity)).Contains('System.Runtime.dll')) and
|
||||
'%(Reference.NuGetPackageId)' == 'Microsoft.NETCore.App.Ref'" />
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
|
||||
<Target
|
||||
Name="CleanProtos"
|
||||
AfterTargets="Clean">
|
||||
<Delete Files="%(Proto.OutDir)/%(Proto.CSName).cs" />
|
||||
<Delete Files="%(Proto.OutDir)/%(Proto.FileName).client.pb.cs" />
|
||||
<Delete Files="%(Proto.OutDir)/%(Proto.FileName).server.pb.cs" />
|
||||
<Delete Files="%(Proto.OutDir)/%(Proto.FileName).immutable.pb.cs" />
|
||||
|
||||
<Delete Files="%(ProtoService.OutDir)/%(ProtoService.CSName).cs" />
|
||||
<Delete Files="%(ProtoService.OutDir)/%(ProtoService.FileName).client.pb.cs" />
|
||||
<Delete Files="%(ProtoService.OutDir)/%(ProtoService.FileName).server.pb.cs" />
|
||||
<Delete Files="%(ProtoService.OutDir)/%(ProtoService.FileName).immutable.pb.cs" />
|
||||
</Target>
|
||||
|
||||
<Target
|
||||
Name="Test"
|
||||
DependsOnTargets="Build"></Target>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,108 @@
|
||||
cmake_minimum_required(VERSION 3.5)
|
||||
project(Spark.Admin.WebApp)
|
||||
|
||||
include(${CMAKE_SOURCE_DIR}/cmake/safe_dep_glob.cmake)
|
||||
include(${CMAKE_SOURCE_DIR}/cmake/Protobuf.cmake)
|
||||
|
||||
# dependencies
|
||||
set(PROTO_GLOBS
|
||||
../lib/api/*.proto
|
||||
../lib/api/services/*.proto
|
||||
../lib/domain_model/*.proto
|
||||
../lib/sparkproto/*.proto
|
||||
../lib/md/protos/*.proto
|
||||
../../externals/linux/include/google/protobuf/descriptor.proto
|
||||
../../externals/linux/include/google/protobuf/timestamp.proto)
|
||||
|
||||
file(
|
||||
GLOB_RECURSE _proto_rel_SOURCES
|
||||
RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
${PROTO_GLOBS})
|
||||
|
||||
file(
|
||||
GLOB_RECURSE _proto_abs_SOURCES
|
||||
${PROTO_GLOBS})
|
||||
|
||||
file(
|
||||
GLOB_RECURSE _ts_SOURCES
|
||||
RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
src/*.ts)
|
||||
|
||||
file(
|
||||
GLOB_RECURSE _fs_SOURCES
|
||||
RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
src/*.fs)
|
||||
|
||||
set(_tools ${CMAKE_SOURCE_DIR}/tools)
|
||||
set(_quiet_exec ${_tools}/quiet_exec.sh)
|
||||
set(_venv_exec ${_tools}/venv_exec.sh)
|
||||
set(_tools_py ${CMAKE_SOURCE_DIR}/tools/py)
|
||||
|
||||
# The tsconfig file is generated as a function of the cmake build type, and
|
||||
# binary dir. Depending on the build type, it extends either
|
||||
# 'tsconfig.debug.json' or 'tsconfig.release.json'.
|
||||
set(_tsconfig_base "${CMAKE_CURRENT_SOURCE_DIR}/tsconfig.$<IF:$<CONFIG:Debug>,debug,release>.json")
|
||||
set(WEBPACK_MODE $<IF:$<CONFIG:Debug>,"development","production">)
|
||||
set(_tsconfig "${CMAKE_CURRENT_BINARY_DIR}/tsconfig.json")
|
||||
|
||||
set(_venv_python ${CMAKE_SOURCE_DIR}/.venv/bin/python)
|
||||
set(_gen_tsconfig_py ${_tools_py}/gen_tsconfig.py)
|
||||
set(_build_admin_web_app_py ${_tools_py}/build_admin_web_app.py)
|
||||
|
||||
set(_gen_tsconfig_deps ${_venv_exec} ${_venv_python} ${_gen_tsconfig_py} ${_tsconfig_base})
|
||||
|
||||
set(_build_admin_web_app_deps
|
||||
${_quiet_exec}
|
||||
${_venv_exec}
|
||||
${_venv_python}
|
||||
${_build_admin_web_app_py}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/Spark.Admin.WebApp.fsproj
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/webpack.config.js
|
||||
${CMAKE_SOURCE_DIR}/src/lib/api/service_compiler/templates/fs/fable.fs
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/package-lock.json
|
||||
${_proto_rel_SOURCES}
|
||||
${_api_ts_SOURCES}
|
||||
${_ui_fs_SOURCES}
|
||||
${_tsconfig})
|
||||
|
||||
update_deps_file("${_build_admin_web_app_deps}")
|
||||
|
||||
function(npm_install path)
|
||||
add_custom_command(
|
||||
OUTPUT ${path}/package-lock.json
|
||||
COMMAND "npm" ARGS "install"
|
||||
DEPENDS ${path}/package.json
|
||||
WORKING_DIRECTORY ${path}
|
||||
COMMENT "Run 'npm install' in ${path}")
|
||||
endfunction()
|
||||
|
||||
npm_install(${CMAKE_CURRENT_SOURCE_DIR})
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${_tsconfig}
|
||||
COMMAND ${_venv_exec}
|
||||
ARGS
|
||||
${_venv_python}
|
||||
${_gen_tsconfig_py}
|
||||
--config-base ${_tsconfig_base}
|
||||
--config-out ${_tsconfig}
|
||||
--build-out ${CMAKE_CURRENT_BINARY_DIR}
|
||||
DEPENDS ${_gen_tsconfig_deps})
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/bundle.js
|
||||
COMMAND ${_quiet_exec}
|
||||
ARGS
|
||||
${_venv_exec}
|
||||
${_venv_python}
|
||||
${_build_admin_web_app_py}
|
||||
--protos ${_proto_abs_SOURCES}
|
||||
--tsconfig ${_tsconfig}
|
||||
--mode ${WEBPACK_MODE}
|
||||
--output-dir ${CMAKE_CURRENT_BINARY_DIR}
|
||||
COMMENT "Building Spark.Admin.WebApp"
|
||||
DEPENDS ${_build_admin_web_app_deps})
|
||||
|
||||
add_custom_target(admin_web_app_bundle ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/bundle.js)
|
||||
|
||||
install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" DESTINATION "${SPARK_INSTALL_PREFIX}/bin")
|
||||
File renamed without changes.
@@ -0,0 +1,21 @@
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.0.31903.59
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Spark.Admin.WebApp", "src\Spark.Admin.WebApp.fsproj", "{C3143A6F-8D32-4F9E-84EE-B34AF3F3A862}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{C3143A6F-8D32-4F9E-84EE-B34AF3F3A862}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{C3143A6F-8D32-4F9E-84EE-B34AF3F3A862}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{C3143A6F-8D32-4F9E-84EE-B34AF3F3A862}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{C3143A6F-8D32-4F9E-84EE-B34AF3F3A862}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
+5
-3
@@ -5,11 +5,13 @@ import { DynamicService } from "../src/DynamicService"
|
||||
|
||||
test('log in and say hi', async () => {
|
||||
let ctx = await connect("bts", "");
|
||||
expect(ctx instanceof ServiceContext).toBe(true)
|
||||
const admin = new DynamicService(<ServiceContext>ctx, "AdminService", "", [
|
||||
let methods = new Array<[string,number,string,string]>(
|
||||
["get_admin_data", 16, "bts.api.VoidMessage", "bts.api.admin.AdminData"],
|
||||
["update_account", 1, "bts.api.admin.AccountUpdateAPIArgument", "bts.api.admin.AdminServiceOperationResult"]
|
||||
]);
|
||||
)
|
||||
expect(ctx instanceof ServiceContext).toBe(true)
|
||||
const admin = new DynamicService(
|
||||
<ServiceContext>ctx, "AdminService", "", methods, [])
|
||||
const adminData = await admin.get_admin_data({})
|
||||
const account1 = adminData.accounts[2]
|
||||
const dat = account1.exchangeAccountData
|
||||
File renamed without changes.
Generated
+30278
File diff suppressed because it is too large.
Load diff
Loaded 100 of 4187 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user