Compare commits
6257 Commits
unlabeled-
...
llgen-1-0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5cb054f106 | ||
|
|
e864bf235e | ||
|
|
953a565a10 | ||
|
|
dd57d79b1b | ||
|
|
71a92846dd | ||
|
|
c39e85da63 | ||
|
|
4c0b3bb40f | ||
|
|
4fdd9b83fc | ||
|
|
26889d3762 | ||
|
|
e0846f63be | ||
|
|
35bd1df1aa | ||
|
|
4ed4d8423f | ||
|
|
cf1a80ecb6 | ||
|
|
e8b47b4745 | ||
|
|
5c8a5ed523 | ||
|
|
754267f0bd | ||
|
|
adb3cc5523 | ||
|
|
dd400ca720 | ||
|
|
f2046954e6 | ||
|
|
779fe568fc | ||
|
|
9bc8c07deb | ||
|
|
70ef6fe52e | ||
|
|
9bd955e4f6 | ||
|
|
a56d81ea51 | ||
|
|
b1632b8060 | ||
|
|
8f69a0ca44 | ||
|
|
e8fdf4fcda | ||
|
|
1e32788ad1 | ||
|
|
053ba2d164 | ||
|
|
daa34d0fe6 | ||
|
|
ee2c7069e4 | ||
|
|
4556d261d8 | ||
|
|
df46c5e165 | ||
|
|
910316cfde | ||
|
|
55dbc99000 | ||
|
|
6ca98e7102 | ||
|
|
f0a7a313fc | ||
|
|
384c4bc698 | ||
|
|
91cb060d10 | ||
|
|
d6e0e461f7 | ||
|
|
1840829928 | ||
|
|
298f8c8b0f | ||
|
|
495dce5d6c | ||
|
|
8a2a3fd74b | ||
|
|
4ec7d8bf7f | ||
|
|
f8fd2aa273 | ||
|
|
e38b178317 | ||
|
|
cebde164bb | ||
|
|
6db931eee6 | ||
|
|
2c66222509 | ||
|
|
2382ef1a27 | ||
|
|
99ac23b4b4 | ||
|
|
8ea5d257c4 | ||
|
|
664d3fc8d3 | ||
|
|
13fea7102b | ||
|
|
c2607fdf0f | ||
|
|
a44875cf00 | ||
|
|
ae0cde301d | ||
|
|
9f61a33c9f | ||
|
|
3b3ec3a2af | ||
|
|
63e0b36b41 | ||
|
|
56033dc0c1 | ||
|
|
ea09125e30 | ||
|
|
a44bbb3977 | ||
|
|
322c1c1b4c | ||
|
|
d0587ef3ab | ||
|
|
150db958da | ||
|
|
efacd02ffd | ||
|
|
1592c3638c | ||
|
|
7f7f5f187f | ||
|
|
740f1d5f75 | ||
|
|
6ec3dd7ebd | ||
|
|
73b54a2326 | ||
|
|
3895a59e03 | ||
|
|
67cb729554 | ||
|
|
d0288b673b | ||
|
|
7442852cad | ||
|
|
4baa1312a8 | ||
|
|
cdb362b628 | ||
|
|
e5894e0f5a | ||
|
|
6576498776 | ||
|
|
d224889b8d | ||
|
|
a6ea80436b | ||
|
|
0ea8200a57 | ||
|
|
4a5e3f42d3 | ||
|
|
2358a2f5e2 | ||
|
|
6e2fe89c61 | ||
|
|
583130b79b | ||
|
|
550095a5d0 | ||
|
|
f7157ca24c | ||
|
|
ddc1751296 | ||
|
|
0a643bb9d0 | ||
|
|
812b6f2158 | ||
|
|
6d39052c12 | ||
|
|
d4abf57904 | ||
|
|
a9df108116 | ||
|
|
39011a99c5 | ||
|
|
c97f79454d | ||
|
|
2985469116 | ||
|
|
c1738933d7 | ||
|
|
4565576021 | ||
|
|
0bf45ac757 | ||
|
|
a8b1f8e347 | ||
|
|
29e457c381 | ||
|
|
71da2cdda9 | ||
|
|
8b3437dd24 | ||
|
|
b766e2beab | ||
|
|
71913a9d1d | ||
|
|
3ad37ef26b | ||
|
|
b9a67e72ca | ||
|
|
1aa9149ff9 | ||
|
|
4c73887050 | ||
|
|
7b207deeb7 | ||
|
|
53eb117563 | ||
|
|
0dc2d5a625 | ||
|
|
b7396a7cd4 | ||
|
|
0509996f7f | ||
|
|
c3855160fb | ||
|
|
acdb874527 | ||
|
|
a96a9107c8 | ||
|
|
e41c75c1bc | ||
|
|
32bcf11ab9 | ||
|
|
f8cbcf1b4f | ||
|
|
65cd309c08 | ||
|
|
f8d6337862 | ||
|
|
f34bf4b487 | ||
|
|
7c086b1710 | ||
|
|
c587ca287e | ||
|
|
525eb1f1a4 | ||
|
|
7b6d8fbe56 | ||
|
|
bf6f4f8a6e | ||
|
|
5a6d5d877f | ||
|
|
2624e5d05c | ||
|
|
ef30bb3398 | ||
|
|
41d0c898e5 | ||
|
|
1bcd59df35 | ||
|
|
c9153e6b9b | ||
|
|
4978d19bff | ||
|
|
34b3d1fb52 | ||
|
|
5e03b1bebb | ||
|
|
3883860106 | ||
|
|
c833d93d2d | ||
|
|
a0bd098f98 | ||
|
|
15d2949b88 | ||
|
|
5edfb9eccf | ||
|
|
fdc0e2efdb | ||
|
|
34f7036b87 | ||
|
|
06b0d3775f | ||
|
|
f069cba449 | ||
|
|
86cb2d66d7 | ||
|
|
d801356f1e | ||
|
|
bcb4a75630 | ||
|
|
e4fd4fce8e | ||
|
|
b71c0ca9a3 | ||
|
|
32c692d93b | ||
|
|
87d67255d9 | ||
|
|
404d86d544 | ||
|
|
911b0a43d8 | ||
|
|
d5505f2f02 | ||
|
|
d1435f4fc6 | ||
|
|
65353b1417 | ||
|
|
0ae5288ab7 | ||
|
|
68cebfb733 | ||
|
|
2b0a61d143 | ||
|
|
dc2a339e09 | ||
|
|
7393f8923c | ||
|
|
ef0ecb31b2 | ||
|
|
63d0700af1 | ||
|
|
33da68f7e2 | ||
|
|
e10145ba2e | ||
|
|
e441b2f658 | ||
|
|
c7b707c266 | ||
|
|
8061bab6a9 | ||
|
|
4c26480d25 | ||
|
|
d992ed4935 | ||
|
|
a1a816ddc2 | ||
|
|
7b996be765 | ||
|
|
4851c0c9f3 | ||
|
|
cfbdef35e7 | ||
|
|
29a640446a | ||
|
|
d1e4c3d930 | ||
|
|
c3ad2ccc5e | ||
|
|
3662861589 | ||
|
|
f54d79e41a | ||
|
|
e2894d7a6e | ||
|
|
8636e9d10a | ||
|
|
1db6a3029b | ||
|
|
5c83e7dbb5 | ||
|
|
6cec9aca97 | ||
|
|
910f827fe2 | ||
|
|
273fb42833 | ||
|
|
11f3094b51 | ||
|
|
2b54fa3a19 | ||
|
|
77c44b0f04 | ||
|
|
96172158e5 | ||
|
|
f06b39f112 | ||
|
|
dd67502468 | ||
|
|
656fb00e9b | ||
|
|
958aced01b | ||
|
|
8a670148e4 | ||
|
|
b8b3054bba | ||
|
|
b03e2f6a8b | ||
|
|
805a0a4b66 | ||
|
|
af0e9371e9 | ||
|
|
11682328eb | ||
|
|
3cd7046ec4 | ||
|
|
5a99c436b6 | ||
|
|
6f23614b06 | ||
|
|
6561b6287f | ||
|
|
fe99903321 | ||
|
|
b7a5c1acc0 | ||
|
|
48ab6fa908 | ||
|
|
ac6b7e7cf5 | ||
|
|
acd80a39f2 | ||
|
|
1d6775dfa5 | ||
|
|
c791a62031 | ||
|
|
a3de95550e | ||
|
|
67c750a70c | ||
|
|
0b7ae7a629 | ||
|
|
e30d27c418 | ||
|
|
12bc7ed391 | ||
|
|
0e6e7bc913 | ||
|
|
75afbd450b | ||
|
|
618041f3ff | ||
|
|
6b1a0c486f | ||
|
|
60192399dc | ||
|
|
862f5da86d | ||
|
|
e3e19a7a0d | ||
|
|
1ac5aa547d | ||
|
|
cf151967a5 | ||
|
|
82f89c97a6 | ||
|
|
2309d12210 | ||
|
|
90134a3bea | ||
|
|
5dfe51c5d4 | ||
|
|
875797a7d8 | ||
|
|
121cb0c285 | ||
|
|
0dde39aa63 | ||
|
|
cc61337a9f | ||
|
|
5bbe789504 | ||
|
|
f5df1934b9 | ||
|
|
65592bae41 | ||
|
|
70b035d559 | ||
|
|
0c60f4c22f | ||
|
|
8abba8b1a1 | ||
|
|
9fbd4783a7 | ||
|
|
8998e56069 | ||
|
|
49f8a5a61b | ||
|
|
a4a2ae8f96 | ||
|
|
03405742a3 | ||
|
|
dbdf63595a | ||
|
|
b6ba1452f8 | ||
|
|
e37939e8c8 | ||
|
|
57f0474d91 | ||
|
|
332b6cb337 | ||
|
|
501da70526 | ||
|
|
990bf1ac74 | ||
|
|
560f5139eb | ||
|
|
4b3878c046 | ||
|
|
0de33667bf | ||
|
|
a9e731d090 | ||
|
|
aa0cd8e9a1 | ||
|
|
b71451bfd8 | ||
|
|
5b5323894e | ||
|
|
b95ae2fa70 | ||
|
|
4539174f47 | ||
|
|
9dae71ae08 | ||
|
|
854597cd2d | ||
|
|
7c473ca0ed | ||
|
|
528112d9bd | ||
|
|
4f3e07061e | ||
|
|
8c849f20f7 | ||
|
|
f33df43f9a | ||
|
|
91d270eb90 | ||
|
|
964bf270ab | ||
|
|
c89c0d2c01 | ||
|
|
37ab68909b | ||
|
|
2662c3984d | ||
|
|
4deafdc9de | ||
|
|
d7b6b9a5ce | ||
|
|
103cbb4319 | ||
|
|
62f978c40f | ||
|
|
73adc0f645 | ||
|
|
d848beec72 | ||
|
|
11d4fdf6e0 | ||
|
|
abf052244b | ||
|
|
31752a4617 | ||
|
|
f1681124d1 | ||
|
|
134da2750b | ||
|
|
1da6506ba7 | ||
|
|
66e29d8bd9 | ||
|
|
cee6ab37e7 | ||
|
|
067ad0cc22 | ||
|
|
a71ae473ac | ||
|
|
c689e34fa7 | ||
|
|
0fc413c78a | ||
|
|
c9ec055176 | ||
|
|
2006278a52 | ||
|
|
32760d492a | ||
|
|
4ec65def3f | ||
|
|
799f0600ef | ||
|
|
ab8dcfa134 | ||
|
|
d8bcd5d06c | ||
|
|
d9af0f2851 | ||
|
|
af42c1f960 | ||
|
|
4f2c705501 | ||
|
|
549dfcc99d | ||
|
|
38a269fc37 | ||
|
|
29f543b603 | ||
|
|
861f4afc0c | ||
|
|
df61cc8c4b | ||
|
|
a6d6f5943d | ||
|
|
dd4903cc3a | ||
|
|
fa7069780d | ||
|
|
b73eb4057e | ||
|
|
513c3df1d2 | ||
|
|
9e7c8d2c9f | ||
|
|
980faf36f0 | ||
|
|
a430cb7d8e | ||
|
|
76d1b91311 | ||
|
|
6dc51ef6eb | ||
|
|
4775779d8e | ||
|
|
3e43a9ac61 | ||
|
|
2233b6973b | ||
|
|
4092904071 | ||
|
|
c118bca2c2 | ||
|
|
b06a419f71 | ||
|
|
f8e6131e61 | ||
|
|
43280fdd5a | ||
|
|
eaea6c1c59 | ||
|
|
668b3fc2d8 | ||
|
|
a37e49b619 | ||
|
|
983e1bf095 | ||
|
|
b3863b7247 | ||
|
|
18967fad9a | ||
|
|
7a26259981 | ||
|
|
1a4c319f7e | ||
|
|
10e6db39c6 | ||
|
|
de8fefd02c | ||
|
|
bf84a52bc3 | ||
|
|
eaa9dab166 | ||
|
|
042d7b2275 | ||
|
|
298fd07712 | ||
|
|
5e31863838 | ||
|
|
4ff171c1a5 | ||
|
|
1ad085cfb8 | ||
|
|
40569c479e | ||
|
|
5092c4ece3 | ||
|
|
4d1b0d3486 | ||
|
|
b4aef1eb5e | ||
|
|
d7a3b68635 | ||
|
|
7e30c7d648 | ||
|
|
8c66b84305 | ||
|
|
e30c4b9337 | ||
|
|
9cbc7a4b97 | ||
|
|
4edcd8222d | ||
|
|
758e04a4eb | ||
|
|
404d067606 | ||
|
|
42d7930c11 | ||
|
|
132f2234fa | ||
|
|
6b8fbeb016 | ||
|
|
5117853b1b | ||
|
|
e9a4337ccf | ||
|
|
b371972acf | ||
|
|
6fc94eb375 | ||
|
|
eb375db4d6 | ||
|
|
5e702c5527 | ||
|
|
14e756ba87 | ||
|
|
dfc4956d59 | ||
|
|
6da226ab2b | ||
|
|
468d98750c | ||
|
|
04d3c7152c | ||
|
|
a0d74876b8 | ||
|
|
7352c25e9c | ||
|
|
256151c7e4 | ||
|
|
6f8002f540 | ||
|
|
de58173e36 | ||
|
|
ebf5153f35 | ||
|
|
cf7095f8cc | ||
|
|
9c64294186 | ||
|
|
9eec0812a1 | ||
|
|
f2cfe32e03 | ||
|
|
3b80847a9d | ||
|
|
bcff9862e7 | ||
|
|
439ec389a0 | ||
|
|
ba62ce0edc | ||
|
|
7eb7218667 | ||
|
|
fd0bc5d531 | ||
|
|
5f7f7bf194 | ||
|
|
dc108fd084 | ||
|
|
be2c36fbe5 | ||
|
|
005f32298f | ||
|
|
55131b091f | ||
|
|
d2fb022441 | ||
|
|
ed2ba2e1d5 | ||
|
|
5fbaff533c | ||
|
|
4d068e8e04 | ||
|
|
b1be3e3487 | ||
|
|
e09aac1b4a | ||
|
|
bc2744ca5c | ||
|
|
2361e37811 | ||
|
|
cb32d73c61 | ||
|
|
f8232e51a3 | ||
|
|
7d34ba62a7 | ||
|
|
e43e6b8100 | ||
|
|
ca4461dc4c | ||
|
|
dfeffe5e95 | ||
|
|
17efc329f8 | ||
|
|
9f305dcfe1 | ||
|
|
0de7277790 | ||
|
|
b6319e4d49 | ||
|
|
a829777e65 | ||
|
|
851efa7ffe | ||
|
|
dc73ec5cbf | ||
|
|
d9bd02fda6 | ||
|
|
b3233bcaa0 | ||
|
|
94638235bc | ||
|
|
67d5d2d6c4 | ||
|
|
50db0a3643 | ||
|
|
537cbd3d89 | ||
|
|
248ca45fc0 | ||
|
|
be227c5f88 | ||
|
|
94ec8e495e | ||
|
|
0299ae9ad0 | ||
|
|
cf32c08fd9 | ||
|
|
a708a52667 | ||
|
|
6896679afd | ||
|
|
af5ad235c9 | ||
|
|
ee6d91a1d4 | ||
|
|
ac7dc5e21f | ||
|
|
d18493b0ac | ||
|
|
6f03cff48f | ||
|
|
6b5abe7ab3 | ||
|
|
da17ca5a9f | ||
|
|
28341f4478 | ||
|
|
8cbf1bae34 | ||
|
|
3f54a9f044 | ||
|
|
3699fe387e | ||
|
|
52620e5829 | ||
|
|
0eb2e0dc80 | ||
|
|
15dce0c943 | ||
|
|
a56e1f25ff | ||
|
|
016273ba99 | ||
|
|
4adaf3165f | ||
|
|
87cf9446fe | ||
|
|
7c7475bb3a | ||
|
|
938bbb9ce8 | ||
|
|
be1d645adf | ||
|
|
83c2714982 | ||
|
|
8ab530baef | ||
|
|
d58d691472 | ||
|
|
80f5ecf637 | ||
|
|
0b063462ef | ||
|
|
d390121280 | ||
|
|
2dde78c197 | ||
|
|
8474be6e52 | ||
|
|
5c5812e853 | ||
|
|
e860fa1974 | ||
|
|
8e4ee3ec1a | ||
|
|
ea624f82de | ||
|
|
50f571bf2b | ||
|
|
f86c403a53 | ||
|
|
d1b1defbb7 | ||
|
|
d0e54a11e5 | ||
|
|
d2ee282845 | ||
|
|
8b26f24e21 | ||
|
|
6f7d2bc2ee | ||
|
|
9aceb849ad | ||
|
|
0350c1898b | ||
|
|
8c8d1a7d9b | ||
|
|
9da8f28a47 | ||
|
|
4ef108f93e | ||
|
|
3f3af2e01f | ||
|
|
ab38665421 | ||
|
|
72b89fc1ad | ||
|
|
d278d61a10 | ||
|
|
f6157ea21e | ||
|
|
cee4d5de8b | ||
|
|
6823ce7c96 | ||
|
|
2ae29707d2 | ||
|
|
bf2d5263cb | ||
|
|
0e46e6bc75 | ||
|
|
45d0d9f68f | ||
|
|
44a1c5620c | ||
|
|
50e8baa624 | ||
|
|
06e487359b | ||
|
|
3ac24b282b | ||
|
|
ebdbabcedd | ||
|
|
2f2b6ccadf | ||
|
|
aba0ed2f52 | ||
|
|
92a6e5c426 | ||
|
|
ad4b0435bc | ||
|
|
c76b5f436a | ||
|
|
46f084d660 | ||
|
|
09a80e9e13 | ||
|
|
b7b797674f | ||
|
|
1de983200b | ||
|
|
2cb19d3a30 | ||
|
|
6def6e1bea | ||
|
|
b8c96f32bd | ||
|
|
fd6e25e50f | ||
|
|
2fbea53939 | ||
|
|
3d52b0d475 | ||
|
|
5362ef6f20 | ||
|
|
4f11d0433d | ||
|
|
60edf5b3ea | ||
|
|
f252e26ab4 | ||
|
|
763c607bd8 | ||
|
|
2da0d6f886 | ||
|
|
f4cc095863 | ||
|
|
bc42e31518 | ||
|
|
6640944a51 | ||
|
|
377cd17425 | ||
|
|
1e7ffe6a0f | ||
|
|
8c9f885817 | ||
|
|
fe0a904894 | ||
|
|
47c7e6a43d | ||
|
|
5d9c7f4d9b | ||
|
|
b4f6c3fa00 | ||
|
|
276c2ec750 | ||
|
|
60c44af82b | ||
|
|
0571a16bcb | ||
|
|
b2cca56e16 | ||
|
|
ea2e95a627 | ||
|
|
8005ef1672 | ||
|
|
a0aa85fa4e | ||
|
|
d233bcfa50 | ||
|
|
0d2c7a318b | ||
|
|
661597162d | ||
|
|
a8b2fae0da | ||
|
|
a0acff4f4c | ||
|
|
c2157b66ef | ||
|
|
46540c17c8 | ||
|
|
0a0cdb75a4 | ||
|
|
629a5dcde9 | ||
|
|
ffe7d743a4 | ||
|
|
090cbe8ddd | ||
|
|
a6a1b1d3d0 | ||
|
|
8e99b149fc | ||
|
|
1263ef9731 | ||
|
|
baf10676a3 | ||
|
|
0bfa4970c5 | ||
|
|
81ec28ccb9 | ||
|
|
f3e5c3032f | ||
|
|
646bd0e51f | ||
|
|
813ca898a7 | ||
|
|
f2e1579f36 | ||
|
|
6e48c50a6c | ||
|
|
697dc9b1de | ||
|
|
56ab70f21f | ||
|
|
d0179d6790 | ||
|
|
5ccd830347 | ||
|
|
952bd37627 | ||
|
|
e35f11f208 | ||
|
|
7f4c0bea38 | ||
|
|
03022ad7dd | ||
|
|
47a6b4b526 | ||
|
|
12149f5858 | ||
|
|
70b535c368 | ||
|
|
b23ed92d7e | ||
|
|
e00c0aa591 | ||
|
|
38608cfa32 | ||
|
|
eb3ce1f70f | ||
|
|
3c338b9a3f | ||
|
|
de758867f8 | ||
|
|
168634cd0b | ||
|
|
df1ed9426d | ||
|
|
53c4951b29 | ||
|
|
fa0bee0b26 | ||
|
|
8482d2c110 | ||
|
|
929a0025ca | ||
|
|
a38be6605e | ||
|
|
abb411daac | ||
|
|
c0ba3fbe2d | ||
|
|
f442ba9141 | ||
|
|
30de1bcf3f | ||
|
|
a2a177de54 | ||
|
|
f30ffd415c | ||
|
|
c6f6df87ae | ||
|
|
0c59e2e12d | ||
|
|
80b250950e | ||
|
|
019590a290 | ||
|
|
950e26815e | ||
|
|
dc44eba062 | ||
|
|
d20534521e | ||
|
|
8394d5a4e1 | ||
|
|
b53facde73 | ||
|
|
8e82c748ad | ||
|
|
b0e631d402 | ||
|
|
fc1b4d3ddc | ||
|
|
2c076a2a26 | ||
|
|
16b930089a | ||
|
|
a93813c1f6 | ||
|
|
9e2361fc8f | ||
|
|
4bb6c5c4e8 | ||
|
|
40e580cae6 | ||
|
|
d46703ea4d | ||
|
|
5109b16ab2 | ||
|
|
0deaae479b | ||
|
|
b5ab00c143 | ||
|
|
16e6b51cba | ||
|
|
70ff99e4d0 | ||
|
|
68bee1244d | ||
|
|
d162f3edb0 | ||
|
|
c36ae7020f | ||
|
|
83ba395e03 | ||
|
|
f61ddc4926 | ||
|
|
3388e4deb6 | ||
|
|
9248d14195 | ||
|
|
a01a4a9fd2 | ||
|
|
7ec968fb03 | ||
|
|
ed4afc99f6 | ||
|
|
649b7d94f0 | ||
|
|
45751d25ed | ||
|
|
ec47c06ad7 | ||
|
|
244c1e5a01 | ||
|
|
670b7264ad | ||
|
|
bf0caa6f32 | ||
|
|
505494c560 | ||
|
|
35260bae58 | ||
|
|
f4ecd50601 | ||
|
|
89887ef6b0 | ||
|
|
58251a16dc | ||
|
|
5fdefde095 | ||
|
|
c6931b04e7 | ||
|
|
5a2df3d011 | ||
|
|
0d6ddc094b | ||
|
|
ca89734a36 | ||
|
|
e0956f63db | ||
|
|
967b13fac5 | ||
|
|
047648846a | ||
|
|
698130c4e2 | ||
|
|
3a2211512d | ||
|
|
aa702fa855 | ||
|
|
6fa0e5bfb0 | ||
|
|
61fad3018a | ||
|
|
3db2add75c | ||
|
|
2b6f5b9b8d | ||
|
|
fad1c30409 | ||
|
|
2291dff954 | ||
|
|
4b167ab2ba | ||
|
|
17352b8b8d | ||
|
|
aa0b70d921 | ||
|
|
ca72abbf26 | ||
|
|
8f0ef636ab | ||
|
|
78ca80f4d5 | ||
|
|
7aa5a39735 | ||
|
|
24cab5420a | ||
|
|
92d80c915b | ||
|
|
a0f00e0b2b | ||
|
|
be802650ca | ||
|
|
e9a6af1a42 | ||
|
|
839165633b | ||
|
|
9c507cc10a | ||
|
|
1af5c80b1b | ||
|
|
64ce6b0ef4 | ||
|
|
c3de1a9bea | ||
|
|
9cfb64d5c2 | ||
|
|
13a0dec2f6 | ||
|
|
36de35bcd2 | ||
|
|
099fe7a4c2 | ||
|
|
ef9b3098de | ||
|
|
7da9d47e5a | ||
|
|
b491906775 | ||
|
|
ac51febc8b | ||
|
|
de620e1fd5 | ||
|
|
881240fb3c | ||
|
|
fe7a55d227 | ||
|
|
e19f33f3de | ||
|
|
46ecc71373 | ||
|
|
91fec7991e | ||
|
|
510c0ce854 | ||
|
|
76ab08f62c | ||
|
|
afcbb62724 | ||
|
|
7a57ef4419 | ||
|
|
d8190353cc | ||
|
|
7d0a89d420 | ||
|
|
3015fc2542 | ||
|
|
97a7fcbca3 | ||
|
|
b9c3a99783 | ||
|
|
eac501941f | ||
|
|
650a132457 | ||
|
|
17014578be | ||
|
|
791246001f | ||
|
|
2e58c2438f | ||
|
|
4e99d889ff | ||
|
|
b3f07ce236 | ||
|
|
4affc39a20 | ||
|
|
7cff0f9d8a | ||
|
|
3da953fa85 | ||
|
|
e4168af8fb | ||
|
|
03e1bea097 | ||
|
|
7c479cf325 | ||
|
|
ab6d563a7b | ||
|
|
44cc075183 | ||
|
|
0633c900a8 | ||
|
|
0b32f6d32f | ||
|
|
46b0f8ea19 | ||
|
|
1558096356 | ||
|
|
bd65353ab5 | ||
|
|
c28c395af8 | ||
|
|
4417f0ea8f | ||
|
|
35dc8e74d0 | ||
|
|
d747702ae9 | ||
|
|
60b9ebe0d3 | ||
|
|
cfe45c4e2a | ||
|
|
dd99f952d5 | ||
|
|
45afd0804b | ||
|
|
035d9f7624 | ||
|
|
13da34032e | ||
|
|
7213f2527b | ||
|
|
584584a5ba | ||
|
|
69026d6c17 | ||
|
|
aab21f875e | ||
|
|
96565df518 | ||
|
|
d03d8da282 | ||
|
|
49a64df069 | ||
|
|
bdebaa5059 | ||
|
|
6333faba3c | ||
|
|
84e6e1a10b | ||
|
|
ae063bd74f | ||
|
|
208b9b54e7 | ||
|
|
31381203bd | ||
|
|
6cc9665025 | ||
|
|
4daf59e3d2 | ||
|
|
b117ac89c2 | ||
|
|
20c2bb2b79 | ||
|
|
031393529f | ||
|
|
e72aafb165 | ||
|
|
0c8514a9ed | ||
|
|
825941de76 | ||
|
|
4d82a1b67e | ||
|
|
76fb50807b | ||
|
|
1bde03203a | ||
|
|
615e30bdd4 | ||
|
|
51f8a3b798 | ||
|
|
e8d165a4a6 | ||
|
|
a7760a99bb | ||
|
|
b4ba1a6aca | ||
|
|
f58f97e731 | ||
|
|
80293fbc82 | ||
|
|
b61f465b1f | ||
|
|
96893d0092 | ||
|
|
948711ae6f | ||
|
|
e7c3112124 | ||
|
|
94b62ac792 | ||
|
|
82bad86ee6 | ||
|
|
237fb752e5 | ||
|
|
19a47cfa52 | ||
|
|
7d2b151fde | ||
|
|
5dd19fa6e7 | ||
|
|
bf01ff880d | ||
|
|
dc61380dc0 | ||
|
|
7987f04e22 | ||
|
|
147bb196b2 | ||
|
|
5073c18d95 | ||
|
|
68b728a4e3 | ||
|
|
e98e8717be | ||
|
|
425ddb3ff2 | ||
|
|
dbcbe25b51 | ||
|
|
4991f0027a | ||
|
|
6debaf0e5c | ||
|
|
d7964e75d7 | ||
|
|
7c167d29d2 | ||
|
|
43248fb244 | ||
|
|
33ec8e07ed | ||
|
|
da6ac05990 | ||
|
|
20a7f7b188 | ||
|
|
13327f2aec | ||
|
|
704bdf8e14 | ||
|
|
1423d694f8 | ||
|
|
57d44ec4bb | ||
|
|
2997281247 | ||
|
|
0b5810d83a | ||
|
|
bade2375b5 | ||
|
|
66e3a001cc | ||
|
|
64eacb4c9f | ||
|
|
18897487a9 | ||
|
|
6286b4b1a9 | ||
|
|
c407a7c642 | ||
|
|
df3ae6c2fb | ||
|
|
c5d1752d7f | ||
|
|
023b747e63 | ||
|
|
8a44c33e9f | ||
|
|
9cb2aa3286 | ||
|
|
0f16a0f6f8 | ||
|
|
98b019c735 | ||
|
|
8e9b398e9f | ||
|
|
69ead2f15f | ||
|
|
54d326e1ba | ||
|
|
9ede34412c | ||
|
|
f9b38448fd | ||
|
|
7e091602a7 | ||
|
|
0d055f2272 | ||
|
|
edf43fdf81 | ||
|
|
bbe1e3ffdc | ||
|
|
e07baf28c1 | ||
|
|
4e0a99ef38 | ||
|
|
b4c5125c32 | ||
|
|
182c7ebd70 | ||
|
|
24a353f3e1 | ||
|
|
2b7aae3b44 | ||
|
|
ed1a07a874 | ||
|
|
9381b34dfa | ||
|
|
a28c551213 | ||
|
|
46964d9dfd | ||
|
|
0784732f3d | ||
|
|
94ba66caa8 | ||
|
|
fe6cddde09 | ||
|
|
6632781f95 | ||
|
|
9b68f0e322 | ||
|
|
3777699ed4 | ||
|
|
7551b8e83a | ||
|
|
a329780d73 | ||
|
|
daa7aef683 | ||
|
|
7cab2ba9d9 | ||
|
|
c5275f3786 | ||
|
|
eba26ad2e6 | ||
|
|
b0f64baa8b | ||
|
|
7092d8138e | ||
|
|
d202b80bcf | ||
|
|
ffa0f837a1 | ||
|
|
25cf41d9b7 | ||
|
|
e7b4e265d4 | ||
|
|
8e572d417b | ||
|
|
8d25f69e77 | ||
|
|
3e17bc4188 | ||
|
|
b3780be39c | ||
|
|
a9bcc007ad | ||
|
|
fb51183da2 | ||
|
|
63c9fea5c2 | ||
|
|
6a02543de2 | ||
|
|
3a0c4d8704 | ||
|
|
3048dc72a7 | ||
|
|
39f7f119d7 | ||
|
|
7520aec9d4 | ||
|
|
90279a0a36 | ||
|
|
5e3c1e94b0 | ||
|
|
52a38e47ca | ||
|
|
157236bdb0 | ||
|
|
8487ae3d76 | ||
|
|
ce1dba9cac | ||
|
|
aa24841c87 | ||
|
|
b40fd1c8d9 | ||
|
|
c17ce93d9e | ||
|
|
8661cdb40b | ||
|
|
bc0d2e7d69 | ||
|
|
cb4e69cba9 | ||
|
|
7a725ce340 | ||
|
|
8baee004e8 | ||
|
|
3eed94de5b | ||
|
|
a78a8b6038 | ||
|
|
cae8164263 | ||
|
|
567a619003 | ||
|
|
1acd31de45 | ||
|
|
9225ee6a80 | ||
|
|
9ec49cb6d9 | ||
|
|
4ecf088423 | ||
|
|
0b83bf33e8 | ||
|
|
f03c37528e | ||
|
|
ae0dbd5050 | ||
|
|
dee2d11596 | ||
|
|
571ad3216b | ||
|
|
be3c10d635 | ||
|
|
b281e4c6b5 | ||
|
|
1df45b5beb | ||
|
|
4bd8dcde59 | ||
|
|
6e485ef169 | ||
|
|
80e3ee2e79 | ||
|
|
529cb1a5e2 | ||
|
|
bb17a417dc | ||
|
|
0557944381 | ||
|
|
e5cd7399e5 | ||
|
|
3a848279d5 | ||
|
|
8ed14ba4d5 | ||
|
|
717cfbd921 | ||
|
|
a1fc266ca5 | ||
|
|
14b9b9c79f | ||
|
|
f7fbe11132 | ||
|
|
2962e93407 | ||
|
|
90370cbc29 | ||
|
|
f84b365280 | ||
|
|
8db721b6aa | ||
|
|
998d11379c | ||
|
|
d8b3985528 | ||
|
|
b0b814befd | ||
|
|
369776173a | ||
|
|
934e140c98 | ||
|
|
a0858c04e4 | ||
|
|
16b2c7c173 | ||
|
|
df7fa49125 | ||
|
|
3a0c239091 | ||
|
|
abb71310d2 | ||
|
|
dfcbc661ca | ||
|
|
2ad0051a24 | ||
|
|
fbf6efa8fd | ||
|
|
d3b2458f24 | ||
|
|
1d6a5c84b6 | ||
|
|
8c82c2e5ef | ||
|
|
6a970eac86 | ||
|
|
3863f0d1a2 | ||
|
|
d04a7af13c | ||
|
|
fe74ad115d | ||
|
|
03da2719ec | ||
|
|
132d7ddd95 | ||
|
|
443aae6f7a | ||
|
|
5bfd012ea3 | ||
|
|
c2bcab0685 | ||
|
|
728dc323cd | ||
|
|
24c41e0d4d | ||
|
|
9e2e9cc6f7 | ||
|
|
f59466eab7 | ||
|
|
d3254e4bb7 | ||
|
|
884e02e822 | ||
|
|
bdf6bc6f87 | ||
|
|
65454de06c | ||
|
|
712ae25e0d | ||
|
|
767c52b241 | ||
|
|
4d7339bb60 | ||
|
|
cd8141b705 | ||
|
|
0182322630 | ||
|
|
a8cb5cbe86 | ||
|
|
7d5231279f | ||
|
|
c9c46c1ec1 | ||
|
|
e5052d73e4 | ||
|
|
e73d9b09a4 | ||
|
|
b10eadb10e | ||
|
|
86e38c87fb | ||
|
|
0ae5c1e43e | ||
|
|
90e969b5ba | ||
|
|
a82fde69c3 | ||
|
|
5c64a8d1ea | ||
|
|
e54a3afdfd | ||
|
|
0339ee31bd | ||
|
|
c5b304bc51 | ||
|
|
55d1808387 | ||
|
|
8b6a2e2cd7 | ||
|
|
5167121b6e | ||
|
|
3bbf316395 | ||
|
|
ad1ff9d44c | ||
|
|
8caa154b25 | ||
|
|
528ce00522 | ||
|
|
65bc2b62a1 | ||
|
|
f0c03173ef | ||
|
|
699edcc81e | ||
|
|
ad5b31be99 | ||
|
|
ea750dd18b | ||
|
|
f1c3c765c5 | ||
|
|
1dfcfd17fb | ||
|
|
a073089e73 | ||
|
|
607a2393a0 | ||
|
|
f67ed5e458 | ||
|
|
d206ef7ce1 | ||
|
|
1ceac3b8e9 | ||
|
|
50abc3f33b | ||
|
|
edaf2a01f4 | ||
|
|
4ceac64530 | ||
|
|
db67ceebc9 | ||
|
|
bb82ab2c09 | ||
|
|
3e9c44cef7 | ||
|
|
52d1b0e8aa | ||
|
|
53664c2d1f | ||
|
|
3bdfdfc1cf | ||
|
|
a2fc0c859c | ||
|
|
d93bc01d2d | ||
|
|
5eb2a9f2fe | ||
|
|
e7a1e1cc9c | ||
|
|
324b09070d | ||
|
|
9eea2a726e | ||
|
|
fc443716c8 | ||
|
|
6c517ebb35 | ||
|
|
9592708fe2 | ||
|
|
c8f9014a7e | ||
|
|
4b7d675f55 | ||
|
|
7559fbb966 | ||
|
|
9853ac8a4b | ||
|
|
dc715866bb | ||
|
|
5a0bf7639a | ||
|
|
70ee3dc406 | ||
|
|
b6590ab8d1 | ||
|
|
0caa529e0a | ||
|
|
df039a267d | ||
|
|
4fd7747338 | ||
|
|
620f7e3d49 | ||
|
|
a2fd894103 | ||
|
|
3003fa5594 | ||
|
|
284290f41a | ||
|
|
707e62a998 | ||
|
|
ca86ccf220 | ||
|
|
38fdd40cb7 | ||
|
|
206afe317c | ||
|
|
5d5fa0b453 | ||
|
|
7dd59bfdb0 | ||
|
|
b21d0acbdd | ||
|
|
1e4b58858e | ||
|
|
1100c95c47 | ||
|
|
564cbc6eba | ||
|
|
89b73247c7 | ||
|
|
129dbd29cf | ||
|
|
634eb45db6 | ||
|
|
6872464b8d | ||
|
|
c3b36c748b | ||
|
|
3b00811300 | ||
|
|
4b27a0d2f3 | ||
|
|
7d6eed155c | ||
|
|
43efeff393 | ||
|
|
01d8753db4 | ||
|
|
53bfe9cfa0 | ||
|
|
4274cb903c | ||
|
|
e262730554 | ||
|
|
019074c732 | ||
|
|
8818aec10e | ||
|
|
fc1615334c | ||
|
|
cdd5e62a71 | ||
|
|
9883fa2379 | ||
|
|
c55a542ba4 | ||
|
|
7512bdd33b | ||
|
|
c44e30af8b | ||
|
|
096b4683d4 | ||
|
|
bae41e2d34 | ||
|
|
51c2e125ce | ||
|
|
88885db964 | ||
|
|
084f565c9f | ||
|
|
b67d1a36f3 | ||
|
|
b520bc40a5 | ||
|
|
ce87955d7b | ||
|
|
5d9dc323e9 | ||
|
|
a70ce8404c | ||
|
|
954d74eff8 | ||
|
|
6960652579 | ||
|
|
1d5fae2b24 | ||
|
|
32b924a76a | ||
|
|
85a8a71149 | ||
|
|
0cc2f6e317 | ||
|
|
dc2ab49b32 | ||
|
|
d4045b68d4 | ||
|
|
6d9cd78c4e | ||
|
|
5730364a30 | ||
|
|
e572fa981d | ||
|
|
8c40aefc8b | ||
|
|
3a7f7f5eb9 | ||
|
|
1be5f51868 | ||
|
|
54fe5425e1 | ||
|
|
bab09a13c2 | ||
|
|
33c0dd8496 | ||
|
|
c9627bf4e6 | ||
|
|
8a9e71256f | ||
|
|
49b3949315 | ||
|
|
239535a02a | ||
|
|
8b3009d6e3 | ||
|
|
1d620a2e3b | ||
|
|
dab686f5e0 | ||
|
|
bbb4d40669 | ||
|
|
1d990f7f9c | ||
|
|
4c0b0fd096 | ||
|
|
9ab452c974 | ||
|
|
896bd6de39 | ||
|
|
b5e28c964f | ||
|
|
3168ce61ae | ||
|
|
b53634fa73 | ||
|
|
12c14c0396 | ||
|
|
70d13f9a80 | ||
|
|
c7edcc34d6 | ||
|
|
d9f98bc411 | ||
|
|
5f652d1e85 | ||
|
|
112b0cf407 | ||
|
|
2b23822015 | ||
|
|
492be74d94 | ||
|
|
2c400f6a44 | ||
|
|
e7856a2204 | ||
|
|
53b7af7a80 | ||
|
|
31714c8bf3 | ||
|
|
edd602fcdb | ||
|
|
5d4aa41db7 | ||
|
|
3936acad08 | ||
|
|
da188bbb4d | ||
|
|
73177ad913 | ||
|
|
dd478032e6 | ||
|
|
e469cc5ac6 | ||
|
|
8981100964 | ||
|
|
f17db32411 | ||
|
|
0fb930b473 | ||
|
|
942b24329f | ||
|
|
2526e11a03 | ||
|
|
57e6cad135 | ||
|
|
8e89c04900 | ||
|
|
78104e7d8a | ||
|
|
8fcbfada69 | ||
|
|
216b8e5d98 | ||
|
|
5abbc66878 | ||
|
|
b1fdacb99c | ||
|
|
3c221691b3 | ||
|
|
2b3ea5faab | ||
|
|
5ca5519c75 | ||
|
|
42afe4e24e | ||
|
|
6d86200992 | ||
|
|
f0d26d1935 | ||
|
|
35b0718027 | ||
|
|
790d540f91 | ||
|
|
b503d85d23 | ||
|
|
5d00c41800 | ||
|
|
2a6c8390fa | ||
|
|
c34fcda208 | ||
|
|
da84cc69bc | ||
|
|
dbe4911b65 | ||
|
|
003382e13f | ||
|
|
4d682ab1e2 | ||
|
|
240dd55fd9 | ||
|
|
ca104453ca | ||
|
|
a0460b8bfc | ||
|
|
34d6b23ba6 | ||
|
|
c3c1b918f0 | ||
|
|
9bbcb70320 | ||
|
|
bdad94b18c | ||
|
|
e036de0d90 | ||
|
|
8afda7422e | ||
|
|
c77a7e6d32 | ||
|
|
dac25d9dd8 | ||
|
|
e505a02ad7 | ||
|
|
47dccc3c67 | ||
|
|
9f565afcc2 | ||
|
|
8583ee73f3 | ||
|
|
ea9332362d | ||
|
|
f3d21dc6cc | ||
|
|
8cf9b73fbc | ||
|
|
55d8020292 | ||
|
|
42584ddcdb | ||
|
|
1be579a6e7 | ||
|
|
aec33f4d0f | ||
|
|
9461e91a9b | ||
|
|
7a1d1ce1c1 | ||
|
|
9f43986877 | ||
|
|
3a074a6f99 | ||
|
|
384d4c7647 | ||
|
|
9e9e7db6b4 | ||
|
|
e6a017827e | ||
|
|
44fda8e7d0 | ||
|
|
3e9b9b3cbe | ||
|
|
659d310e37 | ||
|
|
2838d446ef | ||
|
|
3891c03e0e | ||
|
|
2d79ecd203 | ||
|
|
094b1d0742 | ||
|
|
f4757c8370 | ||
|
|
d8d30b403b | ||
|
|
1da2103504 | ||
|
|
c955dc1374 | ||
|
|
7853446daf | ||
|
|
0c137374ae | ||
|
|
02d253d810 | ||
|
|
e4136ac8e5 | ||
|
|
e001541608 | ||
|
|
e8ff85905f | ||
|
|
d6a224ea5f | ||
|
|
ab8022ccbd | ||
|
|
a3f4cdefa3 | ||
|
|
80c49a6ea7 | ||
|
|
7258ccc596 | ||
|
|
2fef7f7389 | ||
|
|
de12536c94 | ||
|
|
2552813eaa | ||
|
|
49c5c36362 | ||
|
|
b2b79edc42 | ||
|
|
c0d92bbc76 | ||
|
|
aa35bf7f02 | ||
|
|
e096bc3fb3 | ||
|
|
e5b52ce56f | ||
|
|
8e8f0b4079 | ||
|
|
7c2c7f23e3 | ||
|
|
86151519db | ||
|
|
71dfb50135 | ||
|
|
5b2b02ae1e | ||
|
|
ba2043808d | ||
|
|
cafd4a0497 | ||
|
|
8a25f4e66b | ||
|
|
52287793fb | ||
|
|
0f809c61dc | ||
|
|
f9f8f93115 | ||
|
|
dcb6a17cf3 | ||
|
|
9565b3bd24 | ||
|
|
3e16cf5116 | ||
|
|
ca06e574ca | ||
|
|
8b67c1f800 | ||
|
|
043ad764b8 | ||
|
|
6f4da1d70a | ||
|
|
eecdf96b0b | ||
|
|
1dff113351 | ||
|
|
3686d24064 | ||
|
|
62bad715c2 | ||
|
|
319fb7cbff | ||
|
|
7a0002427d | ||
|
|
74ff22b506 | ||
|
|
6bdd99ee7b | ||
|
|
a9aa131d8c | ||
|
|
5c3b708636 | ||
|
|
d32109c18d | ||
|
|
7e8422d810 | ||
|
|
e27071de78 | ||
|
|
2684a45cc5 | ||
|
|
3e0eb5d58a | ||
|
|
5a53ba3f50 | ||
|
|
22378eaff8 | ||
|
|
95967a04e4 | ||
|
|
a61ee10532 | ||
|
|
9155b8a68a | ||
|
|
f4691c73c4 | ||
|
|
adab058c34 | ||
|
|
d8771e87f9 | ||
|
|
852601d0b5 | ||
|
|
5ebc2017a0 | ||
|
|
86bc055fa1 | ||
|
|
f7504dbd4b | ||
|
|
f48f0efe60 | ||
|
|
52842cd09a | ||
|
|
17266fb373 | ||
|
|
0a517b9256 | ||
|
|
20b17c3eb2 | ||
|
|
3e18caaab0 | ||
|
|
977e1ac25e | ||
|
|
52d4c7ff70 | ||
|
|
67a2cc281f | ||
|
|
30867cf631 | ||
|
|
b4aaa8824e | ||
|
|
fffa7617b1 | ||
|
|
b893ec7013 | ||
|
|
76d79cf17a | ||
|
|
24fd4e190e | ||
|
|
82b3ae254c | ||
|
|
3a715f5479 | ||
|
|
ac83fe3815 | ||
|
|
27d53b0d33 | ||
|
|
e264b45120 | ||
|
|
d8ff0feed3 | ||
|
|
81cc04f9a3 | ||
|
|
e929b5839f | ||
|
|
e340cea7be | ||
|
|
55bbaa1bf2 | ||
|
|
5a8012b084 | ||
|
|
8f339de43b | ||
|
|
e1b6ddca2c | ||
|
|
bd1da2f86c | ||
|
|
9d3696befe | ||
|
|
1903555355 | ||
|
|
e61d1b425d | ||
|
|
cb7438cb99 | ||
|
|
d50d1f6c5e | ||
|
|
1d73a4f04e | ||
|
|
ee02bfcd82 | ||
|
|
9c0b85db41 | ||
|
|
1118da779b | ||
|
|
cf10cabb6f | ||
|
|
9340345509 | ||
|
|
5c5cb8e5c8 | ||
|
|
782d0f48bf | ||
|
|
579b3b29bd | ||
|
|
dab38becd4 | ||
|
|
12f4a430b0 | ||
|
|
a8c0b82421 | ||
|
|
6765041a10 | ||
|
|
c9ece34fc5 | ||
|
|
1fec35a71e | ||
|
|
87385c49e4 | ||
|
|
bb31795d33 | ||
|
|
1c694d98d0 | ||
|
|
0d65b92220 | ||
|
|
3f922854b3 | ||
|
|
2c31a9b1ac | ||
|
|
79cb35ec4f | ||
|
|
e0be1dfe3a | ||
|
|
8de1b855ab | ||
|
|
c863c96023 | ||
|
|
c59e581ef2 | ||
|
|
9a294d4821 | ||
|
|
b5c5f09b16 | ||
|
|
07092a19ca | ||
|
|
d16c25fc80 | ||
|
|
c40ca6ebbd | ||
|
|
b4f4a87846 | ||
|
|
24dd6b4cb5 | ||
|
|
797441009d | ||
|
|
59fe948f83 | ||
|
|
3660ea15c5 | ||
|
|
cf0cd51810 | ||
|
|
af7686cd66 | ||
|
|
720d775582 | ||
|
|
612217f906 | ||
|
|
9595dda6b5 | ||
|
|
3e0c73690c | ||
|
|
1ed0f8180f | ||
|
|
ac966f41eb | ||
|
|
14ce396d6f | ||
|
|
0f4e675b50 | ||
|
|
e64fb88a5d | ||
|
|
4a03769a47 | ||
|
|
977d93dc67 | ||
|
|
0539581d5d | ||
|
|
2c3dcb0547 | ||
|
|
ae5dded36f | ||
|
|
2a852dcff1 | ||
|
|
0cd1cfd249 | ||
|
|
e48822da7b | ||
|
|
48e0d9825a | ||
|
|
ff766530eb | ||
|
|
2094dcecfe | ||
|
|
c70195a81e | ||
|
|
8eff53f8ea | ||
|
|
530ce78c37 | ||
|
|
1bdb0a8d96 | ||
|
|
3e4a2c3dbc | ||
|
|
8322e2d5d3 | ||
|
|
36e47ad79b | ||
|
|
81e80b2cd8 | ||
|
|
57f2827832 | ||
|
|
bda14dbba1 | ||
|
|
29b2e6e3d4 | ||
|
|
e7b7aa3944 | ||
|
|
0267340564 | ||
|
|
3ddb8e24b7 | ||
|
|
9e970befed | ||
|
|
abb28f949a | ||
|
|
4b40bae467 | ||
|
|
6acdb3e358 | ||
|
|
818d2f10cf | ||
|
|
efa476b5b3 | ||
|
|
0b26bdf5fb | ||
|
|
d9815cadcd | ||
|
|
224ac1b8ff | ||
|
|
f572b1fb35 | ||
|
|
32eddf7846 | ||
|
|
5aa72b23cf | ||
|
|
c26441aa64 | ||
|
|
4a7ef15df2 | ||
|
|
55bf2e9bc1 | ||
|
|
27459757db | ||
|
|
38d1831dd7 | ||
|
|
ac8168088c | ||
|
|
c4c7787acc | ||
|
|
589f3a3e35 | ||
|
|
72fcc53c49 | ||
|
|
d7b6541a62 | ||
|
|
4ac18c8ab4 | ||
|
|
3ae67d0d67 | ||
|
|
974463cbd4 | ||
|
|
3764bf860b | ||
|
|
9ddcfc5b96 | ||
|
|
5926babe03 | ||
|
|
6cc07a7651 | ||
|
|
c747f1c1c0 | ||
|
|
f72cc607a1 | ||
|
|
631f40cb1a | ||
|
|
335377da7a | ||
|
|
41ca723d96 | ||
|
|
8b397ebf05 | ||
|
|
5dee3d1b26 | ||
|
|
1139272435 | ||
|
|
e37c249248 | ||
|
|
ab62dda2fc | ||
|
|
4e4d3290d4 | ||
|
|
a836599f53 | ||
|
|
b3ff76d859 | ||
|
|
8b63334d30 | ||
|
|
2fbdc5447a | ||
|
|
5e0ec19a91 | ||
|
|
50c8fe71c3 | ||
|
|
ccc5f10fca | ||
|
|
79444acd83 | ||
|
|
4fbd256d14 | ||
|
|
41dc11e497 | ||
|
|
0ad960a9b0 | ||
|
|
0cc8f53eec | ||
|
|
6390348994 | ||
|
|
916b9e94e9 | ||
|
|
73231e630b | ||
|
|
530e1a3b6d | ||
|
|
cb6ca0cf40 | ||
|
|
51ad0941cb | ||
|
|
64f8785d20 | ||
|
|
f997bd0be8 | ||
|
|
b3287b2b0f | ||
|
|
159d8ec57d | ||
|
|
007151ef1d | ||
|
|
495a037714 | ||
|
|
d9be4de96a | ||
|
|
65bf3591a7 | ||
|
|
c5c6267b1d | ||
|
|
24a8b613ae | ||
|
|
df975bc075 | ||
|
|
2dbe465c0d | ||
|
|
8468609eda | ||
|
|
0b35c31e5b | ||
|
|
456ba2b03c | ||
|
|
17af2902eb | ||
|
|
4c99b235ed | ||
|
|
8a81dbe6fb | ||
|
|
36861e70ac | ||
|
|
b3deddfaf3 | ||
|
|
2661a6085a | ||
|
|
cfd0a9b894 | ||
|
|
b76ff7451c | ||
|
|
70dafd79e9 | ||
|
|
83b663388c | ||
|
|
df77506e1f | ||
|
|
8f661ca8a9 | ||
|
|
ff60fa58c3 | ||
|
|
45b18b4fc9 | ||
|
|
91ee73faa3 | ||
|
|
ae8ca35563 | ||
|
|
2a6b538c9b | ||
|
|
04480b1db9 | ||
|
|
713521e0f5 | ||
|
|
46f1738ad4 | ||
|
|
aaa75da7da | ||
|
|
b9e242674e | ||
|
|
da39a8e59f | ||
|
|
6dbb3945ff | ||
|
|
32598a47a2 | ||
|
|
2299e83685 | ||
|
|
6545b68874 | ||
|
|
b2bee3043a | ||
|
|
d99b166621 | ||
|
|
d4c2c7ca2c | ||
|
|
d443d61b09 | ||
|
|
fb143bcdb5 | ||
|
|
449a757841 | ||
|
|
99bfba6a45 | ||
|
|
8ffaf72dfa | ||
|
|
715dd4ef0f | ||
|
|
a06482bb41 | ||
|
|
2f82d25400 | ||
|
|
b1cb54a2b9 | ||
|
|
9ef7e00974 | ||
|
|
994b1319ca | ||
|
|
da44a4c705 | ||
|
|
ca5df8b32b | ||
|
|
a618b9a759 | ||
|
|
ba69e4279d | ||
|
|
7536a1f510 | ||
|
|
c7fc857c2d | ||
|
|
dc345354ee | ||
|
|
c9b9a9b2c0 | ||
|
|
0444eaa77c | ||
|
|
52cbbb11e0 | ||
|
|
0a2ee14396 | ||
|
|
b7a61761f3 | ||
|
|
321a62a192 | ||
|
|
c5b98176f6 | ||
|
|
f950727c44 | ||
|
|
c3d7275ae8 | ||
|
|
ff117d9f0b | ||
|
|
03a25ece8a | ||
|
|
0c8acbf834 | ||
|
|
be2264283f | ||
|
|
cc04440b5c | ||
|
|
ad800075eb | ||
|
|
0a1b11973a | ||
|
|
064258aa8b | ||
|
|
1f7c2d1f39 | ||
|
|
33dc73d4c4 | ||
|
|
8a00e32bc8 | ||
|
|
96d5009bef | ||
|
|
b089e0d7f8 | ||
|
|
57b1d9824a | ||
|
|
899df7bc78 | ||
|
|
8357c43aee | ||
|
|
354b624cb4 | ||
|
|
e6fd25052a | ||
|
|
f0fe57f807 | ||
|
|
7cea685c0e | ||
|
|
f192338596 | ||
|
|
87a8061e1c | ||
|
|
b28f5a1824 | ||
|
|
925b8a76ed | ||
|
|
1136d63929 | ||
|
|
d7c15759ee | ||
|
|
7de2babe56 | ||
|
|
9f01f909f6 | ||
|
|
2873c58731 | ||
|
|
ab1b54b56d | ||
|
|
b314975f0f | ||
|
|
1bab6dbcaf | ||
|
|
1aef1c5921 | ||
|
|
8265d3f731 | ||
|
|
fd0c8ca52d | ||
|
|
9aee9cb62f | ||
|
|
162c1c81e9 | ||
|
|
9df58e86ec | ||
|
|
05ddeafbfd | ||
|
|
f78e573b69 | ||
|
|
68f19d7335 | ||
|
|
9da96274ae | ||
|
|
32f21c2bfa | ||
|
|
54cc752a9e | ||
|
|
aef60fdda1 | ||
|
|
17abf1a78a | ||
|
|
16e89fea1f | ||
|
|
da36c2b13f | ||
|
|
e701e2e2ec | ||
|
|
a94e7b877a | ||
|
|
32da1c8c1e | ||
|
|
ba0cc3a57d | ||
|
|
b4f97588b7 | ||
|
|
c3f305bea1 | ||
|
|
7e58923415 | ||
|
|
c33f7cbe76 | ||
|
|
7be2815cbc | ||
|
|
9bdf648402 | ||
|
|
1105a33fe3 | ||
|
|
3672f835fe | ||
|
|
7f8a099a15 | ||
|
|
06e6c8638f | ||
|
|
5ba9685e76 | ||
|
|
4483f237f6 | ||
|
|
67ef9905e6 | ||
|
|
6f6dff3461 | ||
|
|
8de3973836 | ||
|
|
41e3cf403b | ||
|
|
eb1326e3ec | ||
|
|
14133b5e2f | ||
|
|
7fbfa4360c | ||
|
|
e91e983728 | ||
|
|
30922a239d | ||
|
|
fc6247ca5e | ||
|
|
63e1c0e44a | ||
|
|
4001fbb580 | ||
|
|
bb85ecc4f0 | ||
|
|
74edeea849 | ||
|
|
cd8e8e5aef | ||
|
|
a50ec18466 | ||
|
|
ce71090da3 | ||
|
|
928c2dacc5 | ||
|
|
282d93dde0 | ||
|
|
03a65131fc | ||
|
|
c937359a4e | ||
|
|
e1a20fe944 | ||
|
|
d7a034bc02 | ||
|
|
4581d9f266 | ||
|
|
851b82ee09 | ||
|
|
7dff46d44e | ||
|
|
d296eed0c3 | ||
|
|
56502994f4 | ||
|
|
81ce150a96 | ||
|
|
a6d0f40fc8 | ||
|
|
bc6df29be8 | ||
|
|
1f408a38c2 | ||
|
|
1ade1b814d | ||
|
|
5efd4280ee | ||
|
|
4c8596ee05 | ||
|
|
5eb4a8d88f | ||
|
|
7b00154c54 | ||
|
|
1011f9679e | ||
|
|
f8de19a427 | ||
|
|
096e8368c5 | ||
|
|
e3bb56818b | ||
|
|
7488a2fbba | ||
|
|
a480e8fa81 | ||
|
|
fbcee49b7e | ||
|
|
e3a247ad23 | ||
|
|
d800aaf11a | ||
|
|
094c19f350 | ||
|
|
65f74f5c72 | ||
|
|
1feeb94dbf | ||
|
|
641a446f01 | ||
|
|
6f1d9fbf70 | ||
|
|
d1050c2382 | ||
|
|
a0f46ee7a6 | ||
|
|
5571e06719 | ||
|
|
0e90ae224a | ||
|
|
a246152240 | ||
|
|
9eefd96eb1 | ||
|
|
5f592dd6bd | ||
|
|
4900ad0743 | ||
|
|
bd4bc1cad0 | ||
|
|
707d811586 | ||
|
|
5ed44e3432 | ||
|
|
49fd9f9377 | ||
|
|
11d8919d76 | ||
|
|
e144c7cc4c | ||
|
|
bd18f6c521 | ||
|
|
74f3d91777 | ||
|
|
1dd88ae8da | ||
|
|
0d8a8bae5f | ||
|
|
f0581f7706 | ||
|
|
24920dfa75 | ||
|
|
2c9fbebe4e | ||
|
|
33c9811ba9 | ||
|
|
2f0275ba3c | ||
|
|
9915ed4bc2 | ||
|
|
4a4153bb8b | ||
|
|
6dc5c01551 | ||
|
|
5c85d84228 | ||
|
|
5badcb4296 | ||
|
|
ee652e6908 | ||
|
|
dace3435ec | ||
|
|
58355b7041 | ||
|
|
3ea64975af | ||
|
|
b2efe2299f | ||
|
|
02ea4988d1 | ||
|
|
2f83a7e3d9 | ||
|
|
67f0419dc3 | ||
|
|
b2ca3783c4 | ||
|
|
dbf9a060c2 | ||
|
|
f614fc6dc3 | ||
|
|
1cb247fa39 | ||
|
|
bee5d97eac | ||
|
|
5fcee85f88 | ||
|
|
391874ecb2 | ||
|
|
4ab420fb0f | ||
|
|
bc83231874 | ||
|
|
a41c51783a | ||
|
|
cd1f6c38a4 | ||
|
|
bc137646df | ||
|
|
dc500c3463 | ||
|
|
8401d7b9ec | ||
|
|
97d1275cfe | ||
|
|
0bf7d60080 | ||
|
|
2a26b4d335 | ||
|
|
ba475d78a2 | ||
|
|
797f90a022 | ||
|
|
3fb20f5201 | ||
|
|
e2ce4995e6 | ||
|
|
78681448e4 | ||
|
|
b4a2b975a0 | ||
|
|
0f2f6da38f | ||
|
|
36b11dc296 | ||
|
|
c7a5b07da7 | ||
|
|
535e64328a | ||
|
|
fd921229f2 | ||
|
|
7bee903886 | ||
|
|
4a34358b6a | ||
|
|
17158641e0 | ||
|
|
257c868cc7 | ||
|
|
116b6a00bc | ||
|
|
b32921d7ed | ||
|
|
0c56d078ec | ||
|
|
05c205181b | ||
|
|
79ce5a13a0 | ||
|
|
5ca5b63151 | ||
|
|
eb50492a1f | ||
|
|
f936a3f35a | ||
|
|
e3120d2b5f | ||
|
|
e0ff37aa6e | ||
|
|
f4e1a15dfb | ||
|
|
76fd4c3d7b | ||
|
|
8eecdff85a | ||
|
|
8206965ae9 | ||
|
|
6d675af42c | ||
|
|
05db577e01 | ||
|
|
09d156b96a | ||
|
|
3c10a60011 | ||
|
|
8cd417eeab | ||
|
|
aae0eeca94 | ||
|
|
f3209123e0 | ||
|
|
1f0d138f31 | ||
|
|
5a0ad2a8bc | ||
|
|
1168708cd0 | ||
|
|
5c0938d05b | ||
|
|
f321062250 | ||
|
|
cef36d185e | ||
|
|
27b1d561b5 | ||
|
|
313376cd36 | ||
|
|
c615803fa6 | ||
|
|
2807862aba | ||
|
|
7ef2d1bc37 | ||
|
|
47249aaad3 | ||
|
|
cf28f45a59 | ||
|
|
b23125354b | ||
|
|
43b01a70a0 | ||
|
|
eab3243973 | ||
|
|
aca2c5f4b1 | ||
|
|
4ef2c70ed3 | ||
|
|
adfec1c0ef | ||
|
|
3e27993361 | ||
|
|
379511e232 | ||
|
|
30824d6133 | ||
|
|
e2bc68a46b | ||
|
|
109a357e95 | ||
|
|
7f5abdd670 | ||
|
|
63fe4e0a18 | ||
|
|
21f1ef5a6c | ||
|
|
fbe4a79045 | ||
|
|
c6a11d1f62 | ||
|
|
5512f14697 | ||
|
|
cabefb9d9e | ||
|
|
266d247470 | ||
|
|
56858bb480 | ||
|
|
3ae582dfd7 | ||
|
|
29b8ec04c5 | ||
|
|
736108572f | ||
|
|
b972fea237 | ||
|
|
0105d98302 | ||
|
|
f218a430f6 | ||
|
|
4355b05597 | ||
|
|
c7c79e9b42 | ||
|
|
472ee0cea4 | ||
|
|
6c5c8c980e | ||
|
|
8444bc32fb | ||
|
|
bd82622a2e | ||
|
|
39730420a2 | ||
|
|
97e131bc81 | ||
|
|
9de0c3d920 | ||
|
|
101a129256 | ||
|
|
bb1964e1d3 | ||
|
|
d7b4e48972 | ||
|
|
a8f5884144 | ||
|
|
ddd97f9328 | ||
|
|
45783a1e73 | ||
|
|
3bcec93972 | ||
|
|
a8d2505ba5 | ||
|
|
a28eb23f82 | ||
|
|
39fee04619 | ||
|
|
f234f061a1 | ||
|
|
05d0caaaea | ||
|
|
020e6311fb | ||
|
|
dd3d0777c7 | ||
|
|
aff5b89ac9 | ||
|
|
27c1b37c21 | ||
|
|
280d7a79be | ||
|
|
4d7ba75469 | ||
|
|
bf66a6ade1 | ||
|
|
8d1bb88fc9 | ||
|
|
bea95a4443 | ||
|
|
6df0ecdf8f | ||
|
|
3de1e669b2 | ||
|
|
e2b59f6517 | ||
|
|
9eaa440fab | ||
|
|
82b0ef795d | ||
|
|
ab0d3bf876 | ||
|
|
adb704aad4 | ||
|
|
59dd7cdfeb | ||
|
|
ef69de1614 | ||
|
|
24c9be9777 | ||
|
|
da8f9124ff | ||
|
|
c336bc86b1 | ||
|
|
a4e5e4eeaa | ||
|
|
c4dabcd9a4 | ||
|
|
74147d2b4a | ||
|
|
9dacc57b3a | ||
|
|
afae382803 | ||
|
|
aa20369a56 | ||
|
|
0c6f2f490f | ||
|
|
9570000674 | ||
|
|
27718f5d6d | ||
|
|
e9d214e977 | ||
|
|
c64733ae6f | ||
|
|
b04388a326 | ||
|
|
a1e2a583b5 | ||
|
|
51467658c6 | ||
|
|
7987a1fed8 | ||
|
|
dc12b2fa3d | ||
|
|
f2b4713c24 | ||
|
|
8fe53f501f | ||
|
|
536b12010f | ||
|
|
470bb82342 | ||
|
|
6ab26e5cdc | ||
|
|
da806afa6b | ||
|
|
dbd1744edc | ||
|
|
ed81d83f4c | ||
|
|
f95fae24fc | ||
|
|
2b488e1021 | ||
|
|
81b7f67cb4 | ||
|
|
86188fb772 | ||
|
|
fb25b628d6 | ||
|
|
564bb0b81c | ||
|
|
64e9d11570 | ||
|
|
52f08181a6 | ||
|
|
b44938412e | ||
|
|
e625c3bdb8 | ||
|
|
010ada1c23 | ||
|
|
90963fd585 | ||
|
|
f1351720e5 | ||
|
|
031b9dfee2 | ||
|
|
a3f1aaa41f | ||
|
|
dd5ef3905f | ||
|
|
8c9149b058 | ||
|
|
a3bd2c6734 | ||
|
|
09a4136272 | ||
|
|
d2516d4eaf | ||
|
|
aa4de95f26 | ||
|
|
6e685b9fcc | ||
|
|
d87444a7fb | ||
|
|
ad7e46a324 | ||
|
|
f0c0b894f2 | ||
|
|
16ef0467a8 | ||
|
|
ededd15b74 | ||
|
|
644cfbf61f | ||
|
|
84b8c8a6ca | ||
|
|
2782412b59 | ||
|
|
99e74b2341 | ||
|
|
ed2516a57a | ||
|
|
fd80d596df | ||
|
|
34d54a20b1 | ||
|
|
f27e9ca63e | ||
|
|
c8c4c6e7a9 | ||
|
|
0bb4c0167c | ||
|
|
3553a28b78 | ||
|
|
863824de01 | ||
|
|
a932246479 | ||
|
|
28d6834ae7 | ||
|
|
0296dc2371 | ||
|
|
df33f1eeff | ||
|
|
57790a926f | ||
|
|
f99d67e76e | ||
|
|
353d22ea90 | ||
|
|
71156a48ae | ||
|
|
0b95807664 | ||
|
|
d3208e42ca | ||
|
|
3bcec5fe6c | ||
|
|
11b54f5d47 | ||
|
|
1a18efbe49 | ||
|
|
d04a8595f3 | ||
|
|
2c7496a525 | ||
|
|
9a5ac60946 | ||
|
|
59edf55051 | ||
|
|
34eff754f5 | ||
|
|
6e0c2ad593 | ||
|
|
a082cf03dc | ||
|
|
5d01fbf6b8 | ||
|
|
8e6fe7258c | ||
|
|
a771c9aa30 | ||
|
|
f99437138d | ||
|
|
11c9808d7e | ||
|
|
61b718d716 | ||
|
|
2dd3439f90 | ||
|
|
44d9a8b42d | ||
|
|
63e64680bd | ||
|
|
2236ff6d6a | ||
|
|
8ec051b83e | ||
|
|
b0c09c2a94 | ||
|
|
ccd728edbc | ||
|
|
239d634ab1 | ||
|
|
9d4e978a1e | ||
|
|
f17b176ddd | ||
|
|
d35a781049 | ||
|
|
073c81c9aa | ||
|
|
29152cbf74 | ||
|
|
8d04be4a13 | ||
|
|
95632b0fef | ||
|
|
0c95aa4b86 | ||
|
|
551b10f3a6 | ||
|
|
0ec452930f | ||
|
|
64e1fa33d3 | ||
|
|
1228fe1baf | ||
|
|
972d39139d | ||
|
|
8bfbe723db | ||
|
|
cba0bbac02 | ||
|
|
e4d7651f02 | ||
|
|
c6d14bb079 | ||
|
|
2293458101 | ||
|
|
7c4af80c0f | ||
|
|
abeebac3c1 | ||
|
|
7761eecc34 | ||
|
|
63d6fe28e7 | ||
|
|
3f950c9f17 | ||
|
|
069d94c39b | ||
|
|
8d7a5dba0a | ||
|
|
dedf1d945c | ||
|
|
eaf856c7a0 | ||
|
|
541279bd1e | ||
|
|
626e7b5b06 | ||
|
|
67819cfd6c | ||
|
|
8a8bb6cf10 | ||
|
|
d7d56d2cbb | ||
|
|
ba6c223113 | ||
|
|
e361a5777b | ||
|
|
77577f45fa | ||
|
|
db54c35c24 | ||
|
|
b40425786c | ||
|
|
5625842582 | ||
|
|
197379a33a | ||
|
|
0c5cce9a96 | ||
|
|
546d8f3d16 | ||
|
|
945c0dc404 | ||
|
|
01829a4203 | ||
|
|
f994b0bf84 | ||
|
|
b3d5eaef01 | ||
|
|
6c588b0ae8 | ||
|
|
5929f3dd0e | ||
|
|
114048df57 | ||
|
|
5dec33abaa | ||
|
|
2d0493ac92 | ||
|
|
8c6dc46124 | ||
|
|
da48891d6e | ||
|
|
218b982231 | ||
|
|
9288115a4d | ||
|
|
0c4835caf3 | ||
|
|
343dbb810f | ||
|
|
4de10af212 | ||
|
|
c4c1e6191b | ||
|
|
933b1de514 | ||
|
|
721005b4d7 | ||
|
|
f4dcfc3c64 | ||
|
|
ebbda9ae11 | ||
|
|
b48f529177 | ||
|
|
f5b29d9ccc | ||
|
|
343c5872eb | ||
|
|
c2717419d4 | ||
|
|
444d0bb4da | ||
|
|
9b1f6614f6 | ||
|
|
ae3e9716f5 | ||
|
|
94b3467079 | ||
|
|
76cd1e34ca | ||
|
|
ccfd50c6b7 | ||
|
|
7cb9955f82 | ||
|
|
0710269e32 | ||
|
|
b2cbaa46d5 | ||
|
|
a42999afab | ||
|
|
86501edf9e | ||
|
|
36dbf24131 | ||
|
|
4c7f63ee6c | ||
|
|
2782e386f9 | ||
|
|
8850b696ab | ||
|
|
7e34a42088 | ||
|
|
ea891cfb3c | ||
|
|
9ecf2ad8f8 | ||
|
|
13ce9b12ac | ||
|
|
f815a342e7 | ||
|
|
9f0c356194 | ||
|
|
5241920b3c | ||
|
|
786665c582 | ||
|
|
ee026dd2ab | ||
|
|
73bfa1d1ab | ||
|
|
bf95ea8fd9 | ||
|
|
8fd07efa80 | ||
|
|
777fb8a624 | ||
|
|
1fdf2d2e19 | ||
|
|
37c64c6e36 | ||
|
|
0ab62357ce | ||
|
|
a816b64b86 | ||
|
|
13c2ffcc5b | ||
|
|
a940c44ae5 | ||
|
|
dbe88218e4 | ||
|
|
c1b2a43ef5 | ||
|
|
c6d87355db | ||
|
|
68e198f375 | ||
|
|
90819543f6 | ||
|
|
67f0c95888 | ||
|
|
69e2ddcb49 | ||
|
|
0614d593dd | ||
|
|
aee0dc7377 | ||
|
|
666c527a43 | ||
|
|
55fab905c1 | ||
|
|
9ee0876c2b | ||
|
|
66327ddda6 | ||
|
|
9eff28dac8 | ||
|
|
8c0b75b068 | ||
|
|
b2ce4472b5 | ||
|
|
5c228063bc | ||
|
|
b6038dab22 | ||
|
|
89b736ba83 | ||
|
|
0939a12a70 | ||
|
|
86b0d0bc80 | ||
|
|
f21378d696 | ||
|
|
35023ba945 | ||
|
|
fc5c0ddc52 | ||
|
|
b8d6eae391 | ||
|
|
01535f998d | ||
|
|
b2f85981ad | ||
|
|
531f9b1f77 | ||
|
|
bcf2aa511c | ||
|
|
7913b6800a | ||
|
|
a72bbc0ce2 | ||
|
|
c19026af9e | ||
|
|
c4e0fddf5b | ||
|
|
2b6d2c8407 | ||
|
|
b254b73745 | ||
|
|
6bbcb68a79 | ||
|
|
f48df3b6fe | ||
|
|
b5135607b4 | ||
|
|
018558cb9e | ||
|
|
2138609918 | ||
|
|
dd22ea4caf | ||
|
|
53096cbf0c | ||
|
|
54cb64aef2 | ||
|
|
0ce4d37e54 | ||
|
|
7babff444a | ||
|
|
027b33d313 | ||
|
|
57dfc84ee7 | ||
|
|
0004fd81ed | ||
|
|
cb25b013fb | ||
|
|
558a632821 | ||
|
|
e2732629bf | ||
|
|
6dac59f2d4 | ||
|
|
c9312a41da | ||
|
|
5521ebb35a | ||
|
|
7fed954836 | ||
|
|
15d1e95d31 | ||
|
|
de564c09b2 | ||
|
|
2eacdccc5d | ||
|
|
00876cd9df | ||
|
|
776f85238f | ||
|
|
abcaa3e669 | ||
|
|
369a99fe3a | ||
|
|
7157ec19b6 | ||
|
|
670ca5a83a | ||
|
|
e109e76069 | ||
|
|
a8f0aa6016 | ||
|
|
4bb598c9ad | ||
|
|
f0dccf3ca0 | ||
|
|
e59812782e | ||
|
|
02d396c33a | ||
|
|
68a72d2ceb | ||
|
|
33e47b1a51 | ||
|
|
80b04b4440 | ||
|
|
513b878285 | ||
|
|
b60e8cead1 | ||
|
|
49834ac5c8 | ||
|
|
f4e1d47704 | ||
|
|
caf06d3a7b | ||
|
|
bff577eed4 | ||
|
|
a1f5834052 | ||
|
|
7fab59ec17 | ||
|
|
c02f977487 | ||
|
|
c3b3faf7a4 | ||
|
|
4b42dcf97f | ||
|
|
662c87a579 | ||
|
|
328b5011af | ||
|
|
dc87f207cd | ||
|
|
25291680b0 | ||
|
|
2a15fcf645 | ||
|
|
dc2dd991c6 | ||
|
|
8a409311da | ||
|
|
d43142d811 | ||
|
|
6e2b44962f | ||
|
|
e00f89ea6f | ||
|
|
2f92b46a9d | ||
|
|
bb48507f58 | ||
|
|
94db19641a | ||
|
|
d8486967aa | ||
|
|
0c6ba1fd58 | ||
|
|
09a352c151 | ||
|
|
c98a786cc4 | ||
|
|
2b8e44b860 | ||
|
|
d6f0d3b65f | ||
|
|
a0187208a5 | ||
|
|
e891b36895 | ||
|
|
8790a879c9 | ||
|
|
a5f05e8ba0 | ||
|
|
bdb0b550f7 | ||
|
|
b3a142e244 | ||
|
|
24a1c0d390 | ||
|
|
9bab5d363c | ||
|
|
a8033da29e | ||
|
|
2f5b25269e | ||
|
|
0950240cfa | ||
|
|
3bed868bb9 | ||
|
|
f2996068f8 | ||
|
|
58eaf6df5b | ||
|
|
5e2915d143 | ||
|
|
ac489d50a3 | ||
|
|
fec7208f70 | ||
|
|
30208cda9a | ||
|
|
a022b9490c | ||
|
|
7c723a8e48 | ||
|
|
75cab1f389 | ||
|
|
bf9730d10e | ||
|
|
cd64ce0424 | ||
|
|
79b0bb3347 | ||
|
|
0e2861d8b0 | ||
|
|
5f3e4693e6 | ||
|
|
2465ad8ed8 | ||
|
|
a49ffb7945 | ||
|
|
55a133aa3c | ||
|
|
86b6eab206 | ||
|
|
862f83571f | ||
|
|
b91af798bc | ||
|
|
1758da9285 | ||
|
|
61c646a496 | ||
|
|
c6d60cb24f | ||
|
|
671556cfc4 | ||
|
|
5d81b090b9 | ||
|
|
4734150614 | ||
|
|
d50600e263 | ||
|
|
96da16ce33 | ||
|
|
3107e638f8 | ||
|
|
f9fadbf045 | ||
|
|
5ffd738802 | ||
|
|
6a19ee76cc | ||
|
|
43e04499d0 | ||
|
|
295c8d2515 | ||
|
|
f6c7b7bbcd | ||
|
|
cf4c99a093 | ||
|
|
01b937d82e | ||
|
|
c6134a1f59 | ||
|
|
6709f6e340 | ||
|
|
99c20a6a08 | ||
|
|
a46596cbba | ||
|
|
07cb257465 | ||
|
|
e9d477fd6e | ||
|
|
99cae8d6df | ||
|
|
c4ca7db14f | ||
|
|
9ad5d4b5e0 | ||
|
|
5300633c2b | ||
|
|
ff90971199 | ||
|
|
c023409091 | ||
|
|
cde3638bc9 | ||
|
|
b6c29b5541 | ||
|
|
a43e504fb1 | ||
|
|
676fee0a3e | ||
|
|
d57dfac961 | ||
|
|
d4bcec7ec2 | ||
|
|
42a7f3d8e7 | ||
|
|
e93e256512 | ||
|
|
72f667fbf9 | ||
|
|
f9d19e9302 | ||
|
|
edf2f575a2 | ||
|
|
3868470366 | ||
|
|
776233c718 | ||
|
|
c30769327b | ||
|
|
12669d882f | ||
|
|
b93cdd9aac | ||
|
|
c5ee3b6735 | ||
|
|
38880093e8 | ||
|
|
0ce3cd0c76 | ||
|
|
95fc55f840 | ||
|
|
013a6f9cd6 | ||
|
|
cfc1d926bf | ||
|
|
d9d6cc127f | ||
|
|
3e80ca51fc | ||
|
|
339f9dd942 | ||
|
|
67f9f2a74f | ||
|
|
636c151d51 | ||
|
|
410a62e2de | ||
|
|
45c90324fd | ||
|
|
1ece6f9107 | ||
|
|
9dcaf4ecdc | ||
|
|
f3250e5db5 | ||
|
|
d4e3a9d9f6 | ||
|
|
9b2bc42d92 | ||
|
|
ba7100a4c2 | ||
|
|
3dc49877a5 | ||
|
|
1546ac1235 | ||
|
|
6d39055193 | ||
|
|
1158018fdf | ||
|
|
f83c2ba230 | ||
|
|
0928518b8d | ||
|
|
a951391408 | ||
|
|
6e551adf21 | ||
|
|
bc565a13f1 | ||
|
|
787904f82c | ||
|
|
287f8d5d70 | ||
|
|
2db075ab69 | ||
|
|
d72e4424cd | ||
|
|
c33ae16bce | ||
|
|
9c03f2c8bd | ||
|
|
ce1285d2eb | ||
|
|
142a703f77 | ||
|
|
c2a260ba68 | ||
|
|
da85a0fa2f | ||
|
|
7a18c01a7c | ||
|
|
bdbbf32404 | ||
|
|
cccb0dd197 | ||
|
|
4b445d4860 | ||
|
|
046d5b38a9 | ||
|
|
a817264e90 | ||
|
|
2fb6605800 | ||
|
|
8cb76d3ed8 | ||
|
|
67e5a8e7a5 | ||
|
|
64c2ad3838 | ||
|
|
c2f70c4857 | ||
|
|
480de7cafb | ||
|
|
f04baf2201 | ||
|
|
0f8516f861 | ||
|
|
cd1bb106ec | ||
|
|
9196107b79 | ||
|
|
74546bd985 | ||
|
|
adc8fc6e9e | ||
|
|
acfb0f2eed | ||
|
|
69d8dc3b44 | ||
|
|
a751b2ef42 | ||
|
|
7f4a6b31a7 | ||
|
|
cf855ea282 | ||
|
|
ed479cbb76 | ||
|
|
851a0c4501 | ||
|
|
3a8a4fc1df | ||
|
|
3899b18911 | ||
|
|
d4d3e6b484 | ||
|
|
a5b0790d96 | ||
|
|
13ea4896b0 | ||
|
|
07f019213d | ||
|
|
44ff24f085 | ||
|
|
35586d769a | ||
|
|
68a2852f57 | ||
|
|
4360ab1cee | ||
|
|
e4309374be | ||
|
|
80cb794116 | ||
|
|
88a316478d | ||
|
|
a413fa8b90 | ||
|
|
b4e38b8fcd | ||
|
|
b5a1f8a3b3 | ||
|
|
d186cb605f | ||
|
|
9286928275 | ||
|
|
8740dcc72e | ||
|
|
c5dcddd4fd | ||
|
|
c246adf1c4 | ||
|
|
95cfd33824 | ||
|
|
1ce56a4e78 | ||
|
|
44b74a6c84 | ||
|
|
42940634dd | ||
|
|
1e3b6137d4 | ||
|
|
dfb4d0c576 | ||
|
|
4a5a463e44 | ||
|
|
788788edc0 | ||
|
|
741b43044d | ||
|
|
49d31eaeff | ||
|
|
8af6b69b44 | ||
|
|
d5dc0b7342 | ||
|
|
ead414d725 | ||
|
|
e5117bbf30 | ||
|
|
1d37165575 | ||
|
|
ba8482c5ab | ||
|
|
10dd78edbf | ||
|
|
cf3bcb5e63 | ||
|
|
352c5c581b | ||
|
|
64b7d49c0a | ||
|
|
b6a7d4fa0f | ||
|
|
01f77a03af | ||
|
|
d6fa6357f2 | ||
|
|
78d3e500fb | ||
|
|
46e45d1c2d | ||
|
|
3d5569183e | ||
|
|
e4857c2446 | ||
|
|
35c612b99b | ||
|
|
1ae683e3b3 | ||
|
|
8ff400fd0f | ||
|
|
84297d3460 | ||
|
|
b4504c0f73 | ||
|
|
9c403e7299 | ||
|
|
95563ae3bc | ||
|
|
cf65fbe6a1 | ||
|
|
46fb868503 | ||
|
|
744fcc3442 | ||
|
|
82c3158ada | ||
|
|
b821194cbd | ||
|
|
85da3bcac1 | ||
|
|
7b969cc623 | ||
|
|
1fefd074f9 | ||
|
|
aa2bfa7738 | ||
|
|
4c4b47a902 | ||
|
|
81a2d12ae5 | ||
|
|
7f6b39f155 | ||
|
|
d7e23d9466 | ||
|
|
0b44329a4b | ||
|
|
284bd607fd | ||
|
|
b6b4cee71f | ||
|
|
8c84139dc8 | ||
|
|
fd259c398c | ||
|
|
257b4847bf | ||
|
|
654715cf8a | ||
|
|
155d41c3e0 | ||
|
|
b759fb2438 | ||
|
|
9ef6cf575b | ||
|
|
159bdec3f5 | ||
|
|
17c1915104 | ||
|
|
0faaec8e3d | ||
|
|
10b58a8520 | ||
|
|
9d08fc6678 | ||
|
|
7255b1aa61 | ||
|
|
b9bb251d60 | ||
|
|
998de8d264 | ||
|
|
3aa0ecdb5c | ||
|
|
0e2a3baa5d | ||
|
|
f63613844b | ||
|
|
19df56bc23 | ||
|
|
ebcd62f7d2 | ||
|
|
c7d0d1d447 | ||
|
|
de6b8d9108 | ||
|
|
c4d23274c9 | ||
|
|
b719750e75 | ||
|
|
bec816346d | ||
|
|
9feb3f9254 | ||
|
|
48252cc673 | ||
|
|
010bade227 | ||
|
|
2364f3f6b0 | ||
|
|
9715c40c3f | ||
|
|
a96f33ef34 | ||
|
|
e713e6f8fe | ||
|
|
d25472bbfb | ||
|
|
8f74dd7ae6 | ||
|
|
1525e12aee | ||
|
|
7e0c59d59a | ||
|
|
8c9c04b549 | ||
|
|
9197c959dc | ||
|
|
eb2a76270f | ||
|
|
6ea0fa77db | ||
|
|
d75369dd40 | ||
|
|
53fe78afae | ||
|
|
0a9017bae1 | ||
|
|
0364de3a9c | ||
|
|
f3a7c72ddb | ||
|
|
10a379dc8a | ||
|
|
5d8db9045e | ||
|
|
96562f964d | ||
|
|
42e84d8dd2 | ||
|
|
9a92f57752 | ||
|
|
463a0e7f40 | ||
|
|
008a907894 | ||
|
|
4bde31f78a | ||
|
|
26cc87efe6 | ||
|
|
77259cd2f9 | ||
|
|
00027d3893 | ||
|
|
fa4e6eecb4 | ||
|
|
18439ffa3f | ||
|
|
73246f3824 | ||
|
|
360caa08bb | ||
|
|
4c0ea89fe0 | ||
|
|
8ee1e318a3 | ||
|
|
84b9957b17 | ||
|
|
319d9bcfe0 | ||
|
|
e52091ea7c | ||
|
|
a5f950bac7 | ||
|
|
3c03d3f68c | ||
|
|
9407523510 | ||
|
|
04dcaf5685 | ||
|
|
650c178631 | ||
|
|
92bccdd4fa | ||
|
|
048099535a | ||
|
|
8a096ffacb | ||
|
|
5b23cab8e9 | ||
|
|
f755d6683d | ||
|
|
8279a37642 | ||
|
|
be3597ddbe | ||
|
|
5785bb133b | ||
|
|
98f011552e | ||
|
|
d277946286 | ||
|
|
b1347283b9 | ||
|
|
a1a78e3b70 | ||
|
|
47955d174e | ||
|
|
c302ed167c | ||
|
|
94a4bbb268 | ||
|
|
2b2698c44c | ||
|
|
3ed9932864 | ||
|
|
37379d70ba | ||
|
|
338fb5fb30 | ||
|
|
d12053873a | ||
|
|
ed19a3d568 | ||
|
|
6572fa2def | ||
|
|
066c005493 | ||
|
|
0ad83c648e | ||
|
|
1280176fb0 | ||
|
|
022b40d40c | ||
|
|
fc9e01c8d8 | ||
|
|
0ef99949bc | ||
|
|
3e194345cf | ||
|
|
990e7a67da | ||
|
|
ef8450fce9 | ||
|
|
4759f1c9f9 | ||
|
|
53ce9da827 | ||
|
|
3d644d25cb | ||
|
|
5f35d0c644 | ||
|
|
90101c0dec | ||
|
|
6f9afbf0d5 | ||
|
|
f7360f0fec | ||
|
|
c7be2d1a44 | ||
|
|
52a8f7d1f1 | ||
|
|
c09e4ced7e | ||
|
|
36fb149236 | ||
|
|
a0eb2f398d | ||
|
|
c6cbc82178 | ||
|
|
3e357f311f | ||
|
|
228fe4b4d0 | ||
|
|
b1ee8fe36b | ||
|
|
09a52b8cf2 | ||
|
|
b07825aee3 | ||
|
|
cee897ecfa | ||
|
|
02c5bf9140 | ||
|
|
f62db3f3c6 | ||
|
|
c8ca61ba6e | ||
|
|
7455c23f0f | ||
|
|
347197573b | ||
|
|
1b08effa77 | ||
|
|
c483664bb1 | ||
|
|
96916a7ab4 | ||
|
|
1e9c82d6e5 | ||
|
|
a7b5504034 | ||
|
|
c820d77690 | ||
|
|
1c848c8db3 | ||
|
|
c20a2155fa | ||
|
|
811612634a | ||
|
|
00c4a00675 | ||
|
|
b32fb46dfe | ||
|
|
01a95e3b08 | ||
|
|
46b57440a0 | ||
|
|
7d131a2cd5 | ||
|
|
55da4da081 | ||
|
|
3aec06a088 | ||
|
|
7fadcacc26 | ||
|
|
cd8f86a7e4 | ||
|
|
58f837cd33 | ||
|
|
b005d26d3f | ||
|
|
1ae39bf15b | ||
|
|
f781103cb4 | ||
|
|
27d7d5ed68 | ||
|
|
11349c78cd | ||
|
|
6d78cd6710 | ||
|
|
9e151cf706 | ||
|
|
761312d0dd | ||
|
|
8b702734cf | ||
|
|
d4389da709 | ||
|
|
197f5bc796 | ||
|
|
869ba1ec9e | ||
|
|
0374c089c3 | ||
|
|
eabc223bf0 | ||
|
|
9953b58092 | ||
|
|
1205b95090 | ||
|
|
a9102764e6 | ||
|
|
c48f281b39 | ||
|
|
e2b5163869 | ||
|
|
f99f25cc5f | ||
|
|
b11e382851 | ||
|
|
3824cfd66d | ||
|
|
96a52f7a6f | ||
|
|
f3249a04a1 | ||
|
|
53b430aed6 | ||
|
|
eee6d61c7b | ||
|
|
676aee2213 | ||
|
|
b1c3d1bc53 | ||
|
|
56e985729d | ||
|
|
4dfa2310fc | ||
|
|
cd367c7940 | ||
|
|
8c9800d8fe | ||
|
|
06c441dab7 | ||
|
|
5406895717 | ||
|
|
341aaf8dc1 | ||
|
|
8b21acdbb3 | ||
|
|
e8aadf4409 | ||
|
|
43fb961091 | ||
|
|
74bc0442bd | ||
|
|
133ecee90d | ||
|
|
2b8ee048c8 | ||
|
|
3b4a813a6c | ||
|
|
018cf665d8 | ||
|
|
2cd40f68e6 | ||
|
|
64a35f954d | ||
|
|
cc3459e5a8 | ||
|
|
ced856c234 | ||
|
|
e6fb294aac | ||
|
|
69f02d8abc | ||
|
|
8f2fe1c003 | ||
|
|
6266743c4c | ||
|
|
7c26c21b87 | ||
|
|
2f81a59738 | ||
|
|
3d7da616bf | ||
|
|
013ccf9149 | ||
|
|
ce81b47935 | ||
|
|
aa0e321971 | ||
|
|
aaea752423 | ||
|
|
4a1f9bbc22 | ||
|
|
c1075bd08c | ||
|
|
fd4e81f64e | ||
|
|
fdcad08fdf | ||
|
|
efe2c8d032 | ||
|
|
e431cec90a | ||
|
|
9f7ee118f7 | ||
|
|
03d44703a2 | ||
|
|
f45eda8c23 | ||
|
|
57106471dc | ||
|
|
4220dc1479 | ||
|
|
d818da36f0 | ||
|
|
13bc7e128d | ||
|
|
7531131416 | ||
|
|
ee50a1d717 | ||
|
|
3c8a8f0349 | ||
|
|
5a9d09a854 | ||
|
|
b7c7d50513 | ||
|
|
c5b0e1bd4f | ||
|
|
749c364816 | ||
|
|
0a7c058d01 | ||
|
|
d2f7f252b2 | ||
|
|
f0cec58cf9 | ||
|
|
85c9115d5b | ||
|
|
fdf26a7f06 | ||
|
|
d20988a1cb | ||
|
|
c1ff4f2725 | ||
|
|
b3e42570bb | ||
|
|
ff4f0602ff | ||
|
|
d62d0c68ee | ||
|
|
0a60d5f585 | ||
|
|
600d569269 | ||
|
|
a94dec52d8 | ||
|
|
19638876a1 | ||
|
|
948aa06740 | ||
|
|
bc1ab42895 | ||
|
|
dfc5d7318c | ||
|
|
eb6c2af313 | ||
|
|
e967e920be | ||
|
|
b7a6b75155 | ||
|
|
9c24d8f3fe | ||
|
|
0afe372ebb | ||
|
|
6d9d69aebf | ||
|
|
ec3d8bb5aa | ||
|
|
6e75af9cef | ||
|
|
944c818096 | ||
|
|
6f8702a65e | ||
|
|
4d5f61ce45 | ||
|
|
50114318e2 | ||
|
|
ff853d748c | ||
|
|
0995f7a809 | ||
|
|
6877184666 | ||
|
|
3030b5edd1 | ||
|
|
1b6fe5b9ed | ||
|
|
c847bfb6c8 | ||
|
|
7a7d0e413b | ||
|
|
d650e927a7 | ||
|
|
87c1bc774b | ||
|
|
f1c6de0f1f | ||
|
|
96840e712d | ||
|
|
6ac4bb17aa | ||
|
|
4797a7d4ce | ||
|
|
c5345bf6ac | ||
|
|
61f0a89372 | ||
|
|
b296ddc4a0 | ||
|
|
96c4943ef7 | ||
|
|
d763d3ddeb | ||
|
|
52d3ee55e2 | ||
|
|
eef9b6237b | ||
|
|
4e21aced73 | ||
|
|
3a3b5db45d | ||
|
|
f9b6acf1dc | ||
|
|
346bc839a3 | ||
|
|
9379157da7 | ||
|
|
a432f84eb0 | ||
|
|
88ebd891b1 | ||
|
|
3ecaa0b634 | ||
|
|
11cb7edde4 | ||
|
|
1e3877b595 | ||
|
|
7ed597eefc | ||
|
|
c69004d5df | ||
|
|
c1fc03b7e2 | ||
|
|
bfe38b6f40 | ||
|
|
bb83c44309 | ||
|
|
6218df1293 | ||
|
|
21a8f93bc7 | ||
|
|
fb0051c85a | ||
|
|
101e93205b | ||
|
|
5980b1e5ec | ||
|
|
944898dd40 | ||
|
|
c81a6a0c7a | ||
|
|
0975784c8d | ||
|
|
183942e70c | ||
|
|
162b824030 | ||
|
|
18d134bda7 | ||
|
|
33992b426d | ||
|
|
f740dcf176 | ||
|
|
24f3f2f10e | ||
|
|
15beade4d2 | ||
|
|
ae34da5376 | ||
|
|
3370f962a4 | ||
|
|
ab1b682800 | ||
|
|
23f2646704 | ||
|
|
15449606d1 | ||
|
|
b708373ff8 | ||
|
|
3a3db29339 | ||
|
|
d97abb0763 | ||
|
|
bf62834959 | ||
|
|
7e2d5f6065 | ||
|
|
1d0b3910b2 | ||
|
|
bb7b8d6490 | ||
|
|
6030127779 | ||
|
|
018d91b6a1 | ||
|
|
a1b4e28760 | ||
|
|
e8aab09b4b | ||
|
|
62729ad0b2 | ||
|
|
0fe88af93e | ||
|
|
0e3f85e837 | ||
|
|
26e5032b9c | ||
|
|
ac2b7f8d44 | ||
|
|
3ab954e38c | ||
|
|
bc1eb3116e | ||
|
|
847c27663b | ||
|
|
992dc3eb65 | ||
|
|
da2ba8e093 | ||
|
|
a22bbe847f | ||
|
|
5c7325e0de | ||
|
|
ef6efdee12 | ||
|
|
4c755666b8 | ||
|
|
587a8e8274 | ||
|
|
80d87777f0 | ||
|
|
c3408302c1 | ||
|
|
c6a806ac4d | ||
|
|
b4e24c5bdd | ||
|
|
6f4bdccf04 | ||
|
|
19c225f75f | ||
|
|
f2c241fe3a | ||
|
|
13c2a9a2a5 | ||
|
|
5187e46404 | ||
|
|
b1626ca895 | ||
|
|
4fd066bb54 | ||
|
|
b37c8b0b24 | ||
|
|
6beb10355e | ||
|
|
3b61d605c1 | ||
|
|
75c18ef56c | ||
|
|
432cf9054d | ||
|
|
d5b2601b8f | ||
|
|
30959cd73f | ||
|
|
8aee01de95 | ||
|
|
c096cc6522 | ||
|
|
a4178ca843 | ||
|
|
9751e398e3 | ||
|
|
f7790b0e8e | ||
|
|
1e19db9d3a | ||
|
|
00ac6f88a7 | ||
|
|
188b1df96d | ||
|
|
9baa112ea1 | ||
|
|
59ea3478ac | ||
|
|
4da1930ff4 | ||
|
|
0c19cc22e0 | ||
|
|
fcc033df20 | ||
|
|
01626b2c32 | ||
|
|
eb3dcf275e | ||
|
|
4629647d78 | ||
|
|
ebce0b4a18 | ||
|
|
7b2e749b0d | ||
|
|
429d527a64 | ||
|
|
5a4933ff7f | ||
|
|
7161d59956 | ||
|
|
76cb7a0b33 | ||
|
|
760ee8362e | ||
|
|
d7ce393510 | ||
|
|
b005246ad5 | ||
|
|
3b922f1292 | ||
|
|
62d8930080 | ||
|
|
dbe4e49936 | ||
|
|
683c162cff | ||
|
|
b11b5996c1 | ||
|
|
d79ad333bf | ||
|
|
86ace8a020 | ||
|
|
dfca9ea600 | ||
|
|
6fc4ca1ae0 | ||
|
|
dcde07e7a7 | ||
|
|
cd70a74d25 | ||
|
|
e91749bbce | ||
|
|
143abc2420 | ||
|
|
f682c264a8 | ||
|
|
fb88f5dbdd | ||
|
|
7c22618cb8 | ||
|
|
81f2477282 | ||
|
|
be89699a1a | ||
|
|
04e2dac8e7 | ||
|
|
6fec436051 | ||
|
|
a13ea6d098 | ||
|
|
0bc88b77b2 | ||
|
|
9dcae8fcd0 | ||
|
|
fa6900fbbc | ||
|
|
c64da88289 | ||
|
|
f3584b3d52 | ||
|
|
1e9d815c92 | ||
|
|
926da49d39 | ||
|
|
e2fe3fec2c | ||
|
|
c3f7993b1a | ||
|
|
37fd03b14b | ||
|
|
687d428026 | ||
|
|
929716a621 | ||
|
|
e0c7813927 | ||
|
|
732d0eac5c | ||
|
|
0ec10de716 | ||
|
|
eca0cde913 | ||
|
|
76684055eb | ||
|
|
9ea59fd48a | ||
|
|
920ba0eebe | ||
|
|
3b76fbc284 | ||
|
|
821e1e624b | ||
|
|
55705b22ca | ||
|
|
8127265043 | ||
|
|
c52b10c115 | ||
|
|
91853768f7 | ||
|
|
42b647d9a9 | ||
|
|
f70dfe4d00 | ||
|
|
f7df668450 | ||
|
|
1daac3c5d1 | ||
|
|
0291c897be | ||
|
|
bf6a1eb0ba | ||
|
|
542eb9a7d8 | ||
|
|
45a94c9858 | ||
|
|
f3c29355f6 | ||
|
|
9359e081db | ||
|
|
2930ebb406 | ||
|
|
3adeb611df | ||
|
|
df69d70608 | ||
|
|
8811a2af14 | ||
|
|
d87e8f72a9 | ||
|
|
7bcd261f8e | ||
|
|
039552a46c | ||
|
|
c9df20878f | ||
|
|
b0fdc82616 | ||
|
|
766d76e712 | ||
|
|
e72a36bbb2 | ||
|
|
8ae2077591 | ||
|
|
945cceccb5 | ||
|
|
7f0b775587 | ||
|
|
6ee3538d91 | ||
|
|
f58722ab46 | ||
|
|
817facac14 | ||
|
|
e6fb2468c8 | ||
|
|
709cf50fbd | ||
|
|
811321b190 | ||
|
|
5a18c3748d | ||
|
|
e92f8ac398 | ||
|
|
3373e11923 | ||
|
|
2ec4640e7e | ||
|
|
3a546eb8dd | ||
|
|
5e14dddb6c | ||
|
|
cc55ab947d | ||
|
|
11843b44a1 | ||
|
|
1c570328f0 | ||
|
|
b1b4ba9677 | ||
|
|
fa9d7ce5ce | ||
|
|
c951295521 | ||
|
|
b45706ce7a | ||
|
|
57dfee488a | ||
|
|
6833adfb50 | ||
|
|
4c76583aba | ||
|
|
d55d4bb69f | ||
|
|
b83fca4445 | ||
|
|
6420525753 | ||
|
|
7c39967dc5 | ||
|
|
406d024e9f | ||
|
|
ed34e06d2d | ||
|
|
9c5f0e8159 | ||
|
|
b800af87af | ||
|
|
56c0f3bc5b | ||
|
|
6ba5c0b850 | ||
|
|
ac86c49d85 | ||
|
|
46f633870d | ||
|
|
b9417a3a55 | ||
|
|
f4caec88e8 | ||
|
|
8e09304da7 | ||
|
|
10157af05f | ||
|
|
66ae1083a8 | ||
|
|
8e15d114ac | ||
|
|
87d0349814 | ||
|
|
18b719de80 | ||
|
|
5252b760d9 | ||
|
|
73ac23824b | ||
|
|
da11deeece | ||
|
|
9eb1f7a67b | ||
|
|
15377abec5 | ||
|
|
6a8360b335 | ||
|
|
3d6ab89bc1 | ||
|
|
982138b8da | ||
|
|
b86a455efa | ||
|
|
d7bb7c9cf3 | ||
|
|
35b3050d88 | ||
|
|
e43a0746a8 | ||
|
|
fec83f1be3 | ||
|
|
712ba56ce8 | ||
|
|
4757be8bf6 | ||
|
|
582ed4da02 | ||
|
|
a804cc2e15 | ||
|
|
7d8e3b8fcd | ||
|
|
f452bfc1e1 | ||
|
|
f2d5f15e51 | ||
|
|
430dad523d | ||
|
|
4b5e5a9764 | ||
|
|
6ac798b50c | ||
|
|
b8cc947bc3 | ||
|
|
a08e71a16f | ||
|
|
4bacebab18 | ||
|
|
345873dae2 | ||
|
|
fda83cb06d | ||
|
|
f1245e2e00 | ||
|
|
090f27251e | ||
|
|
7f77ee091c | ||
|
|
28c8abd52b | ||
|
|
5c4164927d | ||
|
|
33b7bac870 | ||
|
|
66430b1900 | ||
|
|
8bdd4c2a79 | ||
|
|
0bb9c9b5a5 | ||
|
|
09cc81f5b5 | ||
|
|
19dad4482b | ||
|
|
d6dfd5d1ad | ||
|
|
f210ef4f8e | ||
|
|
11dee74e80 | ||
|
|
246554a0b1 | ||
|
|
ef6f9168c4 | ||
|
|
15e885ac8d | ||
|
|
af5ed82bff | ||
|
|
b90690ba5d | ||
|
|
d418617de6 | ||
|
|
f8a3f67ddb | ||
|
|
93cee9d434 | ||
|
|
5e766a0f20 | ||
|
|
4ed20925c6 | ||
|
|
7267917050 | ||
|
|
190ea14bbf | ||
|
|
0e895422bc | ||
|
|
cfa5eafd3d | ||
|
|
8cd2051b2e | ||
|
|
8fab3192b6 | ||
|
|
7851ff900f | ||
|
|
63f793aff3 | ||
|
|
0011c49d1e | ||
|
|
3bb19b6e7d | ||
|
|
b5083a9ccf | ||
|
|
4f11f3c3fd | ||
|
|
900421f411 | ||
|
|
63c0ca38f9 | ||
|
|
7a6913dea1 | ||
|
|
78237f3ef8 | ||
|
|
01252cb592 | ||
|
|
a7a80689bf | ||
|
|
cfd6bca270 | ||
|
|
e71c873fc1 | ||
|
|
0d9daaa18d | ||
|
|
416020b5bd | ||
|
|
ba1c1a82d7 | ||
|
|
dc5a744d8d | ||
|
|
e0fc646222 | ||
|
|
b61011fba9 | ||
|
|
163bbc5845 | ||
|
|
f69a7e3e5d | ||
|
|
a281cc38a4 | ||
|
|
666367e328 | ||
|
|
497792f739 | ||
|
|
153a94aad4 | ||
|
|
ed651bbd04 | ||
|
|
0ba4588be1 | ||
|
|
10e2f5cb36 | ||
|
|
8b6ba39da4 | ||
|
|
0f8489fe28 | ||
|
|
d096f1882a | ||
|
|
ce0ec1c143 | ||
|
|
c08c3e5cf6 | ||
|
|
e66f3adc06 | ||
|
|
ac21f8d98a | ||
|
|
bcb3b108a5 | ||
|
|
f397d35b6a | ||
|
|
ac3bf2cc95 | ||
|
|
1169f99c92 | ||
|
|
79295ca3ea | ||
|
|
c488a4d491 | ||
|
|
b909bb629b | ||
|
|
8e7e1320ac | ||
|
|
366b492174 | ||
|
|
a54c470fef | ||
|
|
e1b871a6ea | ||
|
|
a66faf4100 | ||
|
|
7bac6eb164 | ||
|
|
23a7e7b427 | ||
|
|
17e980aa15 | ||
|
|
5578d004bc | ||
|
|
668b4ca6e7 | ||
|
|
6b7a135b2b | ||
|
|
4cecb6bffb | ||
|
|
ff682c0cfc | ||
|
|
b0c8f9748a | ||
|
|
1fb9c249b3 | ||
|
|
63d95a5f0e | ||
|
|
9c8e5b9217 | ||
|
|
19698499d6 | ||
|
|
a831fab61d | ||
|
|
4f8b2e9926 | ||
|
|
6ae90c8f34 | ||
|
|
391d115b4d | ||
|
|
751854f36a | ||
|
|
8a8d0d9151 | ||
|
|
2df4da50da | ||
|
|
acf34e54ec | ||
|
|
3d549e7932 | ||
|
|
fb854c82ff | ||
|
|
b533b53690 | ||
|
|
9435c895bf | ||
|
|
b52e0e8ff1 | ||
|
|
6839d8afb1 | ||
|
|
7e502b0937 | ||
|
|
f8fb06210d | ||
|
|
6d3e9fb7af | ||
|
|
1f7115fa8d | ||
|
|
a5f48d6493 | ||
|
|
091f3dbebf | ||
|
|
eaaa335e50 | ||
|
|
b725b0af8b | ||
|
|
5fd21b16a9 | ||
|
|
a9c8b67b65 | ||
|
|
2f479b6078 | ||
|
|
115e92a7dc | ||
|
|
f2ea210122 | ||
|
|
4c8442f1f0 | ||
|
|
41d0500d81 | ||
|
|
5b50914bea | ||
|
|
2d98c32cb2 | ||
|
|
ec5cff92d8 | ||
|
|
291b607f4e | ||
|
|
5c126dd968 | ||
|
|
b5f657aba6 | ||
|
|
93c04d3389 | ||
|
|
3a183b7b44 | ||
|
|
a01ea4d930 | ||
|
|
02fec008a2 | ||
|
|
d66b646e58 | ||
|
|
42560d86ef | ||
|
|
64aae9d435 | ||
|
|
74fba213bc | ||
|
|
f78b282fb4 | ||
|
|
612ddc8a4e | ||
|
|
575d4f5223 | ||
|
|
a0d2a1ea74 | ||
|
|
dca9ed9bb2 | ||
|
|
79ac11bd40 | ||
|
|
83b92a8af2 | ||
|
|
feb6e7505c | ||
|
|
2b47b43390 | ||
|
|
a206f17205 | ||
|
|
2dfd74fe14 | ||
|
|
615b67952f | ||
|
|
a40768b6f9 | ||
|
|
ac92c0b9c3 | ||
|
|
d24592ee76 | ||
|
|
ddc46385f3 | ||
|
|
2540279185 | ||
|
|
e102a3f5cb | ||
|
|
32e5679d6c | ||
|
|
62d1432035 | ||
|
|
8d68d0b1ee | ||
|
|
9a7a7f7f4b | ||
|
|
5e34ca7d2b | ||
|
|
2fba044900 | ||
|
|
2ffad4edb4 | ||
|
|
2deb5cafce | ||
|
|
f8a9f58006 | ||
|
|
9d6a005bb2 | ||
|
|
61b8c3e9ec | ||
|
|
cc52343fbf | ||
|
|
95b4d20b5d | ||
|
|
7f5dfa7bb2 | ||
|
|
f3a780ecec | ||
|
|
6246c6fc9e | ||
|
|
f75ed26b04 | ||
|
|
859468b767 | ||
|
|
98359a035e | ||
|
|
1a6665e21d | ||
|
|
e8730266e5 | ||
|
|
b1712321e2 | ||
|
|
7ee4487924 | ||
|
|
282064375d | ||
|
|
3a075a7c67 | ||
|
|
8134a42ee8 | ||
|
|
01c8cd6d15 | ||
|
|
61a911c631 | ||
|
|
a1684f6d0b | ||
|
|
367e4ac01c | ||
|
|
08bd32f88d | ||
|
|
e7683658b7 | ||
|
|
057ee4e5cb | ||
|
|
bb01ac81fd | ||
|
|
0f83947e33 | ||
|
|
7172fe9816 | ||
|
|
7e6fe16448 | ||
|
|
775bda9da0 | ||
|
|
e496b6ee02 | ||
|
|
119bc227de | ||
|
|
e0ad269d4c | ||
|
|
143531822a | ||
|
|
371821c6a3 | ||
|
|
a9a2e027c8 | ||
|
|
5aa128ea62 | ||
|
|
ebfc4a15a4 | ||
|
|
2cb7fcf861 | ||
|
|
8f9ed86162 | ||
|
|
d308f4a3c2 | ||
|
|
e9094d3f03 | ||
|
|
094d427268 | ||
|
|
7e8d7af500 | ||
|
|
d7d16cbede | ||
|
|
03610bb643 | ||
|
|
a1032b168c | ||
|
|
bb46f5218c | ||
|
|
e47418efff | ||
|
|
d388145dce | ||
|
|
e6d132830a | ||
|
|
2c413b9455 | ||
|
|
56fff3d6cd | ||
|
|
5581bdad15 | ||
|
|
901e1b7565 | ||
|
|
05bac6c619 | ||
|
|
905c5a349f | ||
|
|
dc72163d44 | ||
|
|
cdb038ed6f | ||
|
|
96fc9c9ab7 | ||
|
|
28d39e927b | ||
|
|
1726d23a44 | ||
|
|
b26e580a74 | ||
|
|
2a9fe2a774 | ||
|
|
56a070ad99 | ||
|
|
38e7921a9d | ||
|
|
3e66a45a0d | ||
|
|
caf948e80e | ||
|
|
0406776361 | ||
|
|
0d45d9da11 | ||
|
|
905907f304 | ||
|
|
0768c4d4f1 | ||
|
|
87c8b648fc | ||
|
|
5d247a2055 | ||
|
|
f5db63a96d | ||
|
|
334293bc04 | ||
|
|
a28e8440b7 | ||
|
|
fb53750ee3 | ||
|
|
e1f4d01509 | ||
|
|
fa564bb67c | ||
|
|
29e5a20d23 | ||
|
|
c56a92b18b | ||
|
|
a5578bc229 | ||
|
|
bbe7ae21e8 | ||
|
|
75d52f0a3e | ||
|
|
e4424a38c5 | ||
|
|
8d6587a95e | ||
|
|
4f709d86ea | ||
|
|
3ad68743ca | ||
|
|
c0123c0e32 | ||
|
|
761d355bf7 | ||
|
|
e70f6d3276 | ||
|
|
620f17db1b | ||
|
|
0c0ff5f64b | ||
|
|
84acaa1163 | ||
|
|
9aedda4643 | ||
|
|
24d5e841d1 | ||
|
|
fc1d04e192 | ||
|
|
e0fd12fd05 | ||
|
|
d814f96e9d | ||
|
|
fabf37e889 | ||
|
|
5a6849b006 | ||
|
|
52d5e473c4 | ||
|
|
b1dc8c8f52 | ||
|
|
dbbff76f4c | ||
|
|
e98a670850 | ||
|
|
e5c19866eb | ||
|
|
7b1eae1d37 | ||
|
|
c9f8962fc8 | ||
|
|
50d857e9f3 | ||
|
|
324c95ae62 | ||
|
|
d443f370d2 | ||
|
|
bcec2e84b5 | ||
|
|
b09805786d | ||
|
|
24c59f9f68 | ||
|
|
44ce140103 | ||
|
|
a0a265736c | ||
|
|
7515b51d64 | ||
|
|
6777bbfaca | ||
|
|
cb51abaacd | ||
|
|
0beaad89d3 | ||
|
|
ffb6eb9ff4 | ||
|
|
696f0b1c31 | ||
|
|
c34fbb3831 | ||
|
|
a18fcb9048 | ||
|
|
8524608cf3 | ||
|
|
215e55282d | ||
|
|
4d66061c82 | ||
|
|
60e958a312 | ||
|
|
0695089005 | ||
|
|
9d48a61694 | ||
|
|
0dc643686e | ||
|
|
becd33d3a9 | ||
|
|
ca51618fe9 | ||
|
|
5c508b566f | ||
|
|
bfaff9d0ee | ||
|
|
d363386a38 | ||
|
|
b9aa04dbb3 | ||
|
|
68d3126f16 | ||
|
|
f0d3a648af | ||
|
|
7aca78dc21 | ||
|
|
e8931fe5de | ||
|
|
4be6b2ae55 | ||
|
|
351429c19c | ||
|
|
02154c02b2 | ||
|
|
1cf834f731 | ||
|
|
c29ac899da | ||
|
|
cdb8531b9a | ||
|
|
1838e7143f | ||
|
|
d67c9ce97f | ||
|
|
f8cf94da98 | ||
|
|
eec2ea8ffe | ||
|
|
2197952a70 | ||
|
|
105c7e6009 | ||
|
|
87e020db8a | ||
|
|
be1e3440b7 | ||
|
|
db95ccff91 | ||
|
|
ea7209f246 | ||
|
|
722bf6de1e | ||
|
|
25f7fe9b77 | ||
|
|
b3efe7e46c | ||
|
|
df4c1c8174 | ||
|
|
9178cb9851 | ||
|
|
2a3a417a29 | ||
|
|
ccbf4f0cf6 | ||
|
|
53bda08502 | ||
|
|
20e2452350 | ||
|
|
0987aa0077 | ||
|
|
45bb3b1413 | ||
|
|
6d7522ba44 | ||
|
|
778baeb2c0 | ||
|
|
cd54a85aec | ||
|
|
3aabba530d | ||
|
|
9dd080ae4b | ||
|
|
0505a65a74 | ||
|
|
32c3955be1 | ||
|
|
87901b15ba | ||
|
|
290cb0660d | ||
|
|
c5d04fbd6a | ||
|
|
9ab5e19576 | ||
|
|
378b233c33 | ||
|
|
892e6cf6f6 | ||
|
|
1c6ab039f4 | ||
|
|
d1a390924f | ||
|
|
b8b355a0a2 | ||
|
|
a2fde712c3 | ||
|
|
007483d1ed | ||
|
|
4d9a144aa7 | ||
|
|
8fc459e811 | ||
|
|
5ff8baabfa | ||
|
|
beb142ed98 | ||
|
|
3048d94603 | ||
|
|
b4265c5407 | ||
|
|
b365c53262 | ||
|
|
c624447dfc | ||
|
|
9cff92f3e1 | ||
|
|
b1ed49aea4 | ||
|
|
4c0222fb1c | ||
|
|
2ea025fdb4 | ||
|
|
afc4d5211b | ||
|
|
44014704a0 | ||
|
|
e1cb398e02 | ||
|
|
938b7e3d9d | ||
|
|
901d12332d | ||
|
|
5faf0b599f | ||
|
|
5d9471f186 | ||
|
|
530344e2cc | ||
|
|
93c8b46781 | ||
|
|
e35b40b793 | ||
|
|
7f6d1911e2 | ||
|
|
849eeb9f61 | ||
|
|
bb3dc913a2 | ||
|
|
a2905da259 | ||
|
|
bbf9b03ef4 | ||
|
|
ced82adfae | ||
|
|
632b1b2c4b | ||
|
|
c10adfa7cf | ||
|
|
117cb7fd55 | ||
|
|
db0c67dd10 | ||
|
|
84578cbd91 | ||
|
|
0cf8ad9930 | ||
|
|
93bdacae44 | ||
|
|
c39c666834 | ||
|
|
bd5583311e | ||
|
|
5157a5a186 | ||
|
|
c2af3d7faa | ||
|
|
6ade1e3215 | ||
|
|
74c779b81e | ||
|
|
fa9e4c5ea3 | ||
|
|
5391cf8b17 | ||
|
|
78f0107cb8 | ||
|
|
1f07fc05a4 | ||
|
|
3ed0f85ba7 | ||
|
|
77830f353c | ||
|
|
e64951e1d3 | ||
|
|
2f7e414d42 | ||
|
|
3be40e8f15 | ||
|
|
bd975e3041 | ||
|
|
724d5ba148 | ||
|
|
c03e25dc0d | ||
|
|
d702321c37 | ||
|
|
2d16f61cdf | ||
|
|
fb4ff4cab0 | ||
|
|
4c7c1867c3 | ||
|
|
4fbb44f790 | ||
|
|
911eb2ebf9 | ||
|
|
406d72db67 | ||
|
|
c3255c0a42 | ||
|
|
ac925ef2d5 | ||
|
|
3b32a79997 | ||
|
|
15cf912949 | ||
|
|
c69f99b644 | ||
|
|
fe74b9f8de | ||
|
|
a578d2eda8 | ||
|
|
9f795adbc4 | ||
|
|
d32e121832 | ||
|
|
5ffe3a4280 | ||
|
|
0e847669e8 | ||
|
|
198c8525f2 | ||
|
|
e67a70cbea | ||
|
|
1c801f86eb | ||
|
|
123b73506d | ||
|
|
71834855e8 | ||
|
|
7b93233386 | ||
|
|
d3723b3d38 | ||
|
|
e1f7d20251 | ||
|
|
8bdf3af20c | ||
|
|
d20bfe4f68 | ||
|
|
a27fac26db | ||
|
|
6214be89c8 | ||
|
|
b72f2848dd | ||
|
|
da943cec51 | ||
|
|
416944b293 | ||
|
|
a717832bfb | ||
|
|
4934f830fc | ||
|
|
c146e278fc | ||
|
|
d49fb42d47 | ||
|
|
ec40d28c25 | ||
|
|
83a22b318c | ||
|
|
dd690a1065 | ||
|
|
627d2060cd | ||
|
|
f892470f88 | ||
|
|
d25a84511c | ||
|
|
e8f4e47da5 | ||
|
|
7f5c3ac4f6 | ||
|
|
46c8b743f2 | ||
|
|
860230a837 | ||
|
|
e4e7671ab6 | ||
|
|
5ac6f79a47 | ||
|
|
db62807b9b | ||
|
|
9bbab79c2a | ||
|
|
275966674b | ||
|
|
f15a6e827a | ||
|
|
701172d318 | ||
|
|
765add698d | ||
|
|
fcafcb1700 | ||
|
|
e0a4fd1989 | ||
|
|
59dbc95e0d | ||
|
|
a0934dc7e0 | ||
|
|
184984d472 | ||
|
|
922eba369d | ||
|
|
3dd878594f | ||
|
|
8f1cac51c8 | ||
|
|
dea600f9bf | ||
|
|
ec551e2f36 | ||
|
|
35d8ec11fa | ||
|
|
c68c06d0c3 | ||
|
|
16e657858a | ||
|
|
889cf28571 | ||
|
|
9c6ef73ba3 | ||
|
|
14233a4c03 | ||
|
|
adadb10b17 | ||
|
|
be8815e2b7 | ||
|
|
ed5868aa06 | ||
|
|
2722d45fdd | ||
|
|
192de9bf32 | ||
|
|
cc9c3ae870 | ||
|
|
2563acb019 | ||
|
|
969b5221f5 | ||
|
|
8f9818c385 | ||
|
|
de0048e96b | ||
|
|
0c386e3032 | ||
|
|
f2b485740b | ||
|
|
3d044db749 | ||
|
|
3fec1232da | ||
|
|
1347076988 | ||
|
|
9fb5d02aa9 | ||
|
|
40ef304bcf | ||
|
|
9f9681bf39 | ||
|
|
f5d3ab845d | ||
|
|
8a368a9ed1 | ||
|
|
e75308763c | ||
|
|
02297c82ff | ||
|
|
cd893a6ff8 | ||
|
|
8036ca8aec | ||
|
|
a22b21016e | ||
|
|
5ce46ce603 | ||
|
|
60af526ac5 | ||
|
|
e568d54af9 | ||
|
|
6a08adb962 | ||
|
|
f68b18f639 | ||
|
|
7cc193c460 | ||
|
|
83b11ebd82 | ||
|
|
f466e4b0e7 | ||
|
|
4e62421f45 | ||
|
|
12db9cf64e | ||
|
|
60de25db56 | ||
|
|
885d03a020 | ||
|
|
8ba1ce6f1a | ||
|
|
95b5bdcdc5 | ||
|
|
953ac2b514 | ||
|
|
a5b6ef2a18 | ||
|
|
2edf3315d6 | ||
|
|
c7beb3208f | ||
|
|
6d56874b8f | ||
|
|
7f580b3029 | ||
|
|
28e86b7f15 | ||
|
|
abc9006b8e | ||
|
|
cd73332f77 | ||
|
|
8998c4165d | ||
|
|
a3ad389064 | ||
|
|
1099f24bbf | ||
|
|
ebd4ca5662 | ||
|
|
b52eecb904 | ||
|
|
2565b29679 | ||
|
|
0be2e884b1 | ||
|
|
d33fa59a9f | ||
|
|
066439ec19 | ||
|
|
7f7078c9f0 | ||
|
|
f63363cfb8 | ||
|
|
b536454c5b | ||
|
|
d19d409038 | ||
|
|
b9943e0ca2 | ||
|
|
438572359f | ||
|
|
2a1191bfc1 | ||
|
|
58724710d1 | ||
|
|
b5f619dadd | ||
|
|
723e024d25 | ||
|
|
bc28af9d7c | ||
|
|
3afe1ff2e4 | ||
|
|
e40b7407d5 | ||
|
|
781a1218a5 | ||
|
|
eb3dd52dd8 | ||
|
|
94bb3d3e04 | ||
|
|
7dcfb2b4ad | ||
|
|
8b655cb67e | ||
|
|
e533bb9bbf | ||
|
|
2468ee6d34 | ||
|
|
d5f6dfeb2a | ||
|
|
132e8d0baa | ||
|
|
1408daf070 | ||
|
|
f6f8a5e858 | ||
|
|
7af7f27042 | ||
|
|
e04d01106a | ||
|
|
e34c870d02 | ||
|
|
e030fdc548 | ||
|
|
aadfe97a58 | ||
|
|
4d528bbc24 | ||
|
|
f7efb51155 | ||
|
|
82c952bdeb | ||
|
|
2cd29242ae | ||
|
|
23aca9118e | ||
|
|
69b293d86b | ||
|
|
578b8fd103 | ||
|
|
a3e39fe309 | ||
|
|
e8d1bdb192 | ||
|
|
43de234b53 | ||
|
|
0e501983f4 | ||
|
|
9388fb69f8 | ||
|
|
6fa999d162 | ||
|
|
88acb4c4d9 | ||
|
|
c4d0a4f449 | ||
|
|
2a11727622 | ||
|
|
81e724d4f6 | ||
|
|
673679e5eb | ||
|
|
5891ec12a0 | ||
|
|
2e009ecfff | ||
|
|
420ca09aee | ||
|
|
20f4177c29 | ||
|
|
ccdfd76de2 | ||
|
|
7fbb57dea4 | ||
|
|
39d3496f4b | ||
|
|
8acf1542f6 | ||
|
|
5a7fa39fc9 | ||
|
|
8781ada304 | ||
|
|
a0799c99ec | ||
|
|
be39f6c6a0 | ||
|
|
143387e11d | ||
|
|
db786790ee | ||
|
|
bfd4554758 | ||
|
|
6722c28d81 | ||
|
|
7943327f7d | ||
|
|
76a93fcbc3 | ||
|
|
6c825b7892 | ||
|
|
e925036f8d | ||
|
|
2bbecf2416 | ||
|
|
b3ce56e32a | ||
|
|
d9638fca0e | ||
|
|
264773ee06 | ||
|
|
d260937564 | ||
|
|
71dd29ae30 | ||
|
|
6607dc999e | ||
|
|
093a970d7f | ||
|
|
131d4d9454 | ||
|
|
e4838a6225 | ||
|
|
9bd075e3a0 | ||
|
|
816c7e6416 | ||
|
|
cf00c1ffa0 | ||
|
|
d6f2d2f25c | ||
|
|
01faecb6ed | ||
|
|
3f3b3d04e6 | ||
|
|
3edf9486c9 | ||
|
|
3228f4f21b | ||
|
|
856f58468e | ||
|
|
d1a444d6d1 | ||
|
|
4410cc5cdf | ||
|
|
48f7be1f8e | ||
|
|
d3da6b76dc | ||
|
|
b68e30f6ff | ||
|
|
b948e4b59d | ||
|
|
adaa19c807 | ||
|
|
fd4bda4865 | ||
|
|
e0d31020c8 | ||
|
|
0aa6d4ed5d | ||
|
|
5db0db5959 | ||
|
|
5f4707b280 | ||
|
|
e41fd6d8a9 | ||
|
|
1cd66f2952 | ||
|
|
211f5d2ad8 | ||
|
|
79e3ac1a26 | ||
|
|
379101461e | ||
|
|
536716ba84 | ||
|
|
cd782a1488 | ||
|
|
ae50580eff | ||
|
|
083d520d38 | ||
|
|
09eb4f9325 | ||
|
|
b82c0d9bdd | ||
|
|
fee10c4735 | ||
|
|
06c28ad222 | ||
|
|
865e5b607a | ||
|
|
750aad12f6 | ||
|
|
62c9bd14ce | ||
|
|
b651e4cfbe | ||
|
|
540fb5605b | ||
|
|
347a183428 | ||
|
|
0768c14544 | ||
|
|
39ee09e442 | ||
|
|
832e4c3e8d | ||
|
|
bbe4d39ddd | ||
|
|
9d3f9ea496 | ||
|
|
fef0bf1075 | ||
|
|
7fc73c9cf3 | ||
|
|
805354f806 | ||
|
|
37a3f20b85 | ||
|
|
eb1ddcb2a3 | ||
|
|
3f28711419 | ||
|
|
a4d9ed6ac8 | ||
|
|
5b4ae84255 | ||
|
|
8c20160cb6 | ||
|
|
e9f4f7498c | ||
|
|
d5b7752fdb | ||
|
|
709fee14c6 | ||
|
|
cac49c513c | ||
|
|
da872ef789 | ||
|
|
9d3ae1c4d0 | ||
|
|
a61b1a19bb | ||
|
|
5140441585 | ||
|
|
1519576e82 | ||
|
|
647b192b1f | ||
|
|
449ea0d073 | ||
|
|
2a7411dd91 | ||
|
|
65f67f48a3 | ||
|
|
580b1c081f | ||
|
|
eb6ed2df62 | ||
|
|
f0dee053ca | ||
|
|
88d11eaf44 | ||
|
|
defbe00b6a | ||
|
|
003eed2758 | ||
|
|
71efb88a36 | ||
|
|
a9ad34c8db | ||
|
|
ba88529f50 | ||
|
|
c06568406c | ||
|
|
35e749a72f | ||
|
|
132548a987 | ||
|
|
b7a100b1f5 | ||
|
|
26b57eab2f | ||
|
|
0de242d9bb | ||
|
|
d1c9c94493 | ||
|
|
9dbd7bdcf5 | ||
|
|
09ed33d12d | ||
|
|
a93bf46382 | ||
|
|
f5be4dafc6 | ||
|
|
2549099d3b | ||
|
|
32e125b3f9 | ||
|
|
d1fee09721 | ||
|
|
648d745177 | ||
|
|
143fe678d4 | ||
|
|
d7b7427431 | ||
|
|
ecaea97a99 | ||
|
|
16e2e6f346 | ||
|
|
cc85226c3d | ||
|
|
1c7c9c60cf | ||
|
|
f92dad2d9d | ||
|
|
7971761628 | ||
|
|
355177a22c | ||
|
|
1da83e161b | ||
|
|
9f4469d798 | ||
|
|
e53d23a925 | ||
|
|
24d7026a7a | ||
|
|
cdda84eaab | ||
|
|
75345fa915 | ||
|
|
1f041497ec | ||
|
|
ca94deb2c2 | ||
|
|
37e21bc6a5 | ||
|
|
39c5ab2997 | ||
|
|
54bfaff625 | ||
|
|
287ff14a1f | ||
|
|
52085d5555 | ||
|
|
eeb2f2ba80 | ||
|
|
eddb43c08e | ||
|
|
3df72f4136 | ||
|
|
b371c91584 | ||
|
|
54d444c5c5 | ||
|
|
39ac6fb719 | ||
|
|
155a1ba5c8 | ||
|
|
9d7f47c37a | ||
|
|
8dfcff6911 | ||
|
|
0c45ef1b5a | ||
|
|
6eb15567ae | ||
|
|
6bfdc85d8f | ||
|
|
01919da550 | ||
|
|
61bfe50a66 | ||
|
|
d7030591f9 | ||
|
|
48d2fa770e | ||
|
|
b2275303a2 | ||
|
|
b190c55526 | ||
|
|
252d0e0667 | ||
|
|
b05198c6bf | ||
|
|
474a3b4584 | ||
|
|
b0715c481b | ||
|
|
7c4afedd26 | ||
|
|
9abbd9eb10 | ||
|
|
8a51ae7b94 | ||
|
|
6535d32447 | ||
|
|
131efe9348 | ||
|
|
5250c1571f | ||
|
|
f109b70f3e | ||
|
|
857fbcc0c7 | ||
|
|
32d38f3eb8 | ||
|
|
b671136060 | ||
|
|
ec612942a1 | ||
|
|
0760483bee | ||
|
|
cc4c9e85c8 | ||
|
|
e2f1bc59a0 | ||
|
|
0582d4d83e | ||
|
|
d664b9fb0b | ||
|
|
92255b2a25 | ||
|
|
9a7b199a5c | ||
|
|
41bf233413 | ||
|
|
4e2aea5cb0 | ||
|
|
a614f3be7a | ||
|
|
87a5000e57 | ||
|
|
10b3d3d862 | ||
|
|
8ee3542787 | ||
|
|
8a96f95c59 | ||
|
|
cb4e02f02e | ||
|
|
b64a224b99 | ||
|
|
14cdead342 | ||
|
|
f80afde044 | ||
|
|
935ae44985 | ||
|
|
c8a728969d | ||
|
|
c255ffeaaa | ||
|
|
8e394c3c08 | ||
|
|
93c6adda3c | ||
|
|
4beb60683f | ||
|
|
56b03adad0 | ||
|
|
da052fb6ee | ||
|
|
e25004012b | ||
|
|
288c4c9a13 | ||
|
|
d48f810ef6 | ||
|
|
04cabf258d | ||
|
|
50cf97a378 | ||
|
|
0320f9c7ba | ||
|
|
f635588643 | ||
|
|
f687134a38 | ||
|
|
4afb2f0b23 | ||
|
|
dc24ab8b57 | ||
|
|
dc547a271a | ||
|
|
6211edb4c6 | ||
|
|
ffff65a8d7 | ||
|
|
6507aa0a73 | ||
|
|
f47d49b1c0 | ||
|
|
e566fc551d | ||
|
|
2be8437d73 | ||
|
|
702a73b734 | ||
|
|
92f28ae164 | ||
|
|
14d7db7499 | ||
|
|
4e419a19cd | ||
|
|
092292683c | ||
|
|
35cb47328a | ||
|
|
21f4403fdb | ||
|
|
021619910e | ||
|
|
9dccd59665 | ||
|
|
36e934583a | ||
|
|
7f9fd963fd | ||
|
|
9dce6c6b88 | ||
|
|
934568dcf4 | ||
|
|
e71df15045 | ||
|
|
fba9192bbc | ||
|
|
cc64f88964 | ||
|
|
cb52407188 | ||
|
|
dea657a673 | ||
|
|
795a078d08 | ||
|
|
0976dfa3b9 | ||
|
|
bb51d7b0e2 | ||
|
|
759f4738ca | ||
|
|
6a51fac1e4 | ||
|
|
134869ad1a | ||
|
|
33f80c6eef | ||
|
|
fd467fd63d | ||
|
|
2c01d45a49 | ||
|
|
0030ddd97f | ||
|
|
2f11dce5ef | ||
|
|
987683cf99 | ||
|
|
750c838141 | ||
|
|
ba7cc5f6fb | ||
|
|
29b2b389fd | ||
|
|
bda28533c5 | ||
|
|
628b9699e8 | ||
|
|
a739c9a0ff | ||
|
|
f62a5c7157 | ||
|
|
f79f368c72 | ||
|
|
0b8a55c0cf | ||
|
|
539e01b5bc | ||
|
|
63a89b7080 | ||
|
|
ea9e90d785 | ||
|
|
e8f4ce0886 | ||
|
|
517b1cae36 | ||
|
|
bf3cfae610 | ||
|
|
23be652f11 | ||
|
|
eb6a4a95cd | ||
|
|
f846c1648b | ||
|
|
a24c41e9cf | ||
|
|
9258a2a3e9 | ||
|
|
1d98b5fd02 | ||
|
|
304f03a836 | ||
|
|
41007486bf | ||
|
|
4b79636b8f | ||
|
|
1a259744af | ||
|
|
ea21b16846 | ||
|
|
78926a5a84 | ||
|
|
5cf3fc1017 | ||
|
|
75aba83724 | ||
|
|
653cd869ba | ||
|
|
14997fe479 | ||
|
|
75986f7ac5 | ||
|
|
d949e3e8c5 | ||
|
|
dead814781 | ||
|
|
31ddd5ca12 | ||
|
|
96fc577b15 | ||
|
|
17921c4b5a | ||
|
|
835c373123 | ||
|
|
41077644d1 | ||
|
|
fd08220e2b | ||
|
|
a298b55b95 | ||
|
|
0058f45243 | ||
|
|
25e21494f1 | ||
|
|
3ccbd9cdc7 | ||
|
|
083404fc90 | ||
|
|
bab801171f | ||
|
|
07a378fffe | ||
|
|
02db417d31 | ||
|
|
642acd5cbe | ||
|
|
ccf7ef96b5 | ||
|
|
4e0c9a780a | ||
|
|
31ed7f7e30 | ||
|
|
e9271376dc | ||
|
|
83d7633503 | ||
|
|
d04dce377a | ||
|
|
d034f5145c | ||
|
|
7bc8ed1270 | ||
|
|
b54a58e93c | ||
|
|
3e01918c57 | ||
|
|
5d861a3399 | ||
|
|
d6c52e0fef | ||
|
|
d7d501d43a | ||
|
|
78de25b639 | ||
|
|
6217293e23 | ||
|
|
8fc22f0db7 | ||
|
|
f2dc30c912 | ||
|
|
60278f1c52 | ||
|
|
b3f21c47fc | ||
|
|
990080cc04 | ||
|
|
4ec4554fa5 | ||
|
|
474b2eb453 | ||
|
|
e8f2566542 | ||
|
|
eb2ce1f30b | ||
|
|
64b4812664 | ||
|
|
0ea2930de7 | ||
|
|
a0802dce05 | ||
|
|
d70a20ae4c | ||
|
|
e130b1991f | ||
|
|
da3c00aeac | ||
|
|
9d83605ccd | ||
|
|
a22ab5c7b7 | ||
|
|
99611d287b | ||
|
|
355fa2c764 | ||
|
|
16e381031b | ||
|
|
72e13f3a5a | ||
|
|
7bb1897e98 | ||
|
|
e67e59e56a | ||
|
|
e5b9c564af | ||
|
|
b19a178e2e | ||
|
|
a7cdd16125 | ||
|
|
9dfa2f6979 | ||
|
|
ad2d61154b | ||
|
|
bab6cd29ce | ||
|
|
31efd16916 | ||
|
|
ea4b32d326 | ||
|
|
b5d320392c | ||
|
|
e873fd637d | ||
|
|
fb65cda40f | ||
|
|
1f3ad61fd5 | ||
|
|
bf37d48ac5 | ||
|
|
1ee5101ba7 | ||
|
|
629fc3f824 | ||
|
|
d5c423adaf | ||
|
|
a726f7d49e | ||
|
|
b90cc5ceb9 | ||
|
|
31757c1935 | ||
|
|
bdc37d879e | ||
|
|
d4e2dcfb67 | ||
|
|
a58740c4ee | ||
|
|
538896f0a3 | ||
|
|
897b86cba2 | ||
|
|
85348f653d | ||
|
|
055635d63d | ||
|
|
a92a93bc54 | ||
|
|
dcf14f338b | ||
|
|
41d9465e89 | ||
|
|
ed4cfa01c5 | ||
|
|
544f59b0ea | ||
|
|
dc88d56345 | ||
|
|
31ba9c1471 | ||
|
|
79718501d6 | ||
|
|
9b1533a69b | ||
|
|
d69f0ef861 | ||
|
|
69040a2ae0 | ||
|
|
572f8ec9c4 | ||
|
|
ecabf96c86 | ||
|
|
9f510b9172 | ||
|
|
a6de718152 | ||
|
|
d98394f0cf | ||
|
|
a8703841b2 | ||
|
|
3f2a4d9c7c | ||
|
|
f8ede83073 | ||
|
|
a61d36ff49 | ||
|
|
9cc60526b7 | ||
|
|
3627b9a16c | ||
|
|
3e51d4f62f | ||
|
|
db572116e1 | ||
|
|
896fec3fc5 | ||
|
|
900e979035 | ||
|
|
4b540c6d7e | ||
|
|
8202444413 | ||
|
|
79457dabd1 | ||
|
|
c27082938b | ||
|
|
e3501a00dc | ||
|
|
048eac2d67 | ||
|
|
f1a897cec0 | ||
|
|
5ef24f6923 | ||
|
|
dcc3eb63c4 | ||
|
|
1240849cda | ||
|
|
5865536463 | ||
|
|
152faf2b36 | ||
|
|
7af2561a91 | ||
|
|
67ab00564f | ||
|
|
a057f8e72c | ||
|
|
f1aba7c217 | ||
|
|
b2824fe796 | ||
|
|
ea2c86ef0c | ||
|
|
067eace890 | ||
|
|
70403f62d9 | ||
|
|
2e932ba803 | ||
|
|
c41f63a4c8 | ||
|
|
ee3e8ed07e | ||
|
|
02b72945f1 | ||
|
|
58b70cc7dd | ||
|
|
75e0c5f7ed | ||
|
|
9947059dcc | ||
|
|
bffdad9cdc | ||
|
|
619f6bb893 | ||
|
|
f00951f788 | ||
|
|
046dc3d5a9 | ||
|
|
7bbfcac62b | ||
|
|
808e5d8c7d | ||
|
|
57b1a2757e | ||
|
|
4359c699dc | ||
|
|
0baf75f779 | ||
|
|
f9281be252 | ||
|
|
603c65950c | ||
|
|
b434cd85a0 | ||
|
|
c998623932 | ||
|
|
2f37e8d600 | ||
|
|
ae6e2acb87 | ||
|
|
4489526a11 | ||
|
|
7b317f79e2 | ||
|
|
b6d6c4ee57 | ||
|
|
785e174cbb | ||
|
|
e1a3a1c136 | ||
|
|
028beaf5e6 | ||
|
|
7d0a77821c | ||
|
|
734d549473 | ||
|
|
cf0852c846 | ||
|
|
9dd87881e1 | ||
|
|
50b73dc023 | ||
|
|
f05d6fb70e | ||
|
|
77bcd64f03 | ||
|
|
4d67ee1150 | ||
|
|
bad6246b59 | ||
|
|
9e9a6d4575 | ||
|
|
086a086d12 | ||
|
|
4b265a4f0a | ||
|
|
80af6ce214 | ||
|
|
b236a708e2 | ||
|
|
2682c42a9e | ||
|
|
2b3f059c55 | ||
|
|
e2037c2e4b | ||
|
|
ad65ffcf9b | ||
|
|
1387926fdd | ||
|
|
2837aa68a7 | ||
|
|
9ae4e7924a | ||
|
|
72ab7b68b8 | ||
|
|
6e5f3632c6 | ||
|
|
867232a244 | ||
|
|
ab5a0efd48 | ||
|
|
017871b025 | ||
|
|
b24e6763c3 | ||
|
|
c41fae1f8a | ||
|
|
bc6a9fbf66 | ||
|
|
e61d8f6356 | ||
|
|
a93d4a1e29 | ||
|
|
f7c479d40b | ||
|
|
e0c73d5195 | ||
|
|
5cd95d47b2 | ||
|
|
032e9ebda5 | ||
|
|
3c63f1b656 | ||
|
|
b668810351 | ||
|
|
d80b501829 | ||
|
|
98e6c244da | ||
|
|
7de7b0c7ec | ||
|
|
4974cd17eb | ||
|
|
04f0550f1d | ||
|
|
3ea6d40b4c | ||
|
|
7df117128c | ||
|
|
cf330f732c | ||
|
|
b75744f0d4 | ||
|
|
245397491a | ||
|
|
16a335ab42 | ||
|
|
015e1b776e | ||
|
|
71df6e6cb8 | ||
|
|
0ad68bdb66 | ||
|
|
688567a532 | ||
|
|
a24c90f5a9 | ||
|
|
e2c9a1a96f | ||
|
|
503edee161 | ||
|
|
211d2bcfff | ||
|
|
67cf9c4933 | ||
|
|
bf0ee1f16c | ||
|
|
f25570dd4e | ||
|
|
5c7379738b | ||
|
|
93e08cb946 | ||
|
|
5f35f2b26b | ||
|
|
772ead2f9e | ||
|
|
8d35578ad2 | ||
|
|
4695d966ee | ||
|
|
fc6a8c5aa8 | ||
|
|
11e1b3ce15 | ||
|
|
2401ca127e | ||
|
|
f19ffa5328 | ||
|
|
4043036e27 | ||
|
|
e61b887e31 | ||
|
|
38f70a3a06 | ||
|
|
5d5e497d22 | ||
|
|
4c7dc7eb20 | ||
|
|
efcb9468f4 | ||
|
|
8fb2664584 | ||
|
|
158d0505ea | ||
|
|
d4a31af34d | ||
|
|
31b2f7d9e0 | ||
|
|
102a2b1061 | ||
|
|
1ac5d9c95a | ||
|
|
d2006b19af | ||
|
|
c0dd8055c2 | ||
|
|
7f400e5073 | ||
|
|
149a2abd07 | ||
|
|
7114bf47ec | ||
|
|
876026bedf | ||
|
|
9d2bfee634 | ||
|
|
8c6981f642 | ||
|
|
a4c02d15c6 | ||
|
|
c5674041bf | ||
|
|
e30234fce8 | ||
|
|
a830d68fae | ||
|
|
fd817d4dbc | ||
|
|
1eda133f01 | ||
|
|
1655b2521f | ||
|
|
45c7ab1938 | ||
|
|
6db64e924c | ||
|
|
8d2afe1103 | ||
|
|
74c758e503 | ||
|
|
617f210cf8 | ||
|
|
286acd933c | ||
|
|
1ce6abf3de | ||
|
|
8120857c5b | ||
|
|
4059840c43 | ||
|
|
3ea0fc0fe6 | ||
|
|
c9e52b65d4 | ||
|
|
18996b9698 | ||
|
|
93eba2874d | ||
|
|
c93f6d9fb1 | ||
|
|
a1ae336247 | ||
|
|
f00c143b28 | ||
|
|
cb16212a09 | ||
|
|
dd320002c2 | ||
|
|
7e2c3130b0 | ||
|
|
adce53f009 | ||
|
|
c5d9d997b0 | ||
|
|
8d7ceb6d6c | ||
|
|
f4336d6f9d | ||
|
|
dfbbf1e5d8 | ||
|
|
12d731dfcf | ||
|
|
c1ffb28416 | ||
|
|
7de2968629 | ||
|
|
99f8e49e93 | ||
|
|
6fdd5b6a6d | ||
|
|
f0fc857cb4 | ||
|
|
469b3cc1e1 | ||
|
|
18b7250736 | ||
|
|
754f9ce45d | ||
|
|
831cdc7580 | ||
|
|
c8afae83c9 | ||
|
|
fd4f548d6e | ||
|
|
86b6fe60ea | ||
|
|
cbcde9a311 | ||
|
|
d8370d797b | ||
|
|
0983b7700f | ||
|
|
19b0c2a0b0 | ||
|
|
9bcd5473ad | ||
|
|
7dc04a3207 | ||
|
|
cc524c3d9a | ||
|
|
d747651237 | ||
|
|
d35035fab8 | ||
|
|
d7b2998ebe | ||
|
|
1c85c44fad | ||
|
|
b53309f9f6 | ||
|
|
939cc2432e | ||
|
|
b3e649e463 | ||
|
|
ddecd62870 | ||
|
|
b3a30acb30 | ||
|
|
46589d5798 | ||
|
|
c7990b3d31 | ||
|
|
76d34a00e6 | ||
|
|
b8fb8a57fa | ||
|
|
a2d921040d | ||
|
|
07a8c48171 | ||
|
|
538f21b781 | ||
|
|
a0e4cd23cc | ||
|
|
e571911b1b | ||
|
|
3d90e41a7f | ||
|
|
4769a76ca0 | ||
|
|
a0f89188b9 | ||
|
|
ab341e1c93 | ||
|
|
a6bf3e8892 | ||
|
|
0ba64871f6 | ||
|
|
9338e4e97d | ||
|
|
887f6d16c9 | ||
|
|
33d6860d36 | ||
|
|
123bcfc5e2 | ||
|
|
c3fec1f112 | ||
|
|
0300bbf5cb | ||
|
|
a7b7fa4162 | ||
|
|
d0b452373b | ||
|
|
51169956dc | ||
|
|
3de7f959d3 | ||
|
|
abf9c71fa9 | ||
|
|
e5af61151e | ||
|
|
b630da3424 | ||
|
|
7d2f8e4d3e | ||
|
|
16082b9056 | ||
|
|
4623ed60b0 | ||
|
|
3ea06a4a2a | ||
|
|
fec5feef77 | ||
|
|
34bcf4786b | ||
|
|
a5e33acf51 | ||
|
|
a9392483b1 | ||
|
|
60b336dd34 | ||
|
|
45264c9c25 | ||
|
|
fe67243700 | ||
|
|
6cdc7b47cf | ||
|
|
12fe5ce838 | ||
|
|
88eaeed762 | ||
|
|
5f6b6651e1 | ||
|
|
912e362f11 | ||
|
|
bfd6e2061f | ||
|
|
c24f960d82 | ||
|
|
16c73e6654 | ||
|
|
6d85667761 | ||
|
|
e516b1e321 | ||
|
|
b80ad3f9b3 | ||
|
|
832066b81f | ||
|
|
7f7f9b36cd | ||
|
|
ce6a1b9cfc | ||
|
|
759026de6a | ||
|
|
0b8262a167 | ||
|
|
285654f044 | ||
|
|
c9f7d845a2 | ||
|
|
6439f09220 | ||
|
|
040495ff56 | ||
|
|
3c6a9b2b96 | ||
|
|
bcb04a1a76 | ||
|
|
159b84ef68 | ||
|
|
d34064d660 | ||
|
|
956fa21b89 | ||
|
|
3883f47fd0 | ||
|
|
3ce2cee0a5 | ||
|
|
af3e759da2 | ||
|
|
1640b8cad8 | ||
|
|
116a0f81f5 | ||
|
|
c37193b667 | ||
|
|
d10dd029b5 | ||
|
|
a203a029cb | ||
|
|
9c014b9e64 | ||
|
|
3b038786ad | ||
|
|
84bce837a0 | ||
|
|
064f2b6a8b | ||
|
|
0e397f09f3 | ||
|
|
48a4d04b61 | ||
|
|
aa5ab51147 | ||
|
|
0e9f072917 | ||
|
|
580bb15076 | ||
|
|
bf63b12a93 | ||
|
|
3b0057625d | ||
|
|
3cd5074594 | ||
|
|
300623ac88 | ||
|
|
9e55f02c3b | ||
|
|
ac20a570cd | ||
|
|
545bed355d | ||
|
|
ead2873ab5 | ||
|
|
05831b3438 | ||
|
|
1d7814737d | ||
|
|
690a4cfbc6 | ||
|
|
3af275f8d6 | ||
|
|
a1772be47d | ||
|
|
d502a17312 | ||
|
|
c550150071 | ||
|
|
4600a65f07 | ||
|
|
0aea30473c | ||
|
|
85053cf283 | ||
|
|
0bffe65c24 | ||
|
|
03c5092815 | ||
|
|
19e580bdc9 | ||
|
|
f5681a4234 | ||
|
|
6614384f3c | ||
|
|
1c1eed4fd8 | ||
|
|
3929b47776 | ||
|
|
36a5618dc8 | ||
|
|
96957f398a | ||
|
|
5331d4d232 | ||
|
|
de55f34bbd | ||
|
|
e0f737c293 | ||
|
|
e04230a126 | ||
|
|
4804ab14b8 | ||
|
|
0619d27b8d | ||
|
|
2381b2e136 | ||
|
|
d843ec9f7a | ||
|
|
287a122d85 | ||
|
|
59e3fd6c2c | ||
|
|
ea247567ba | ||
|
|
40b9920f8f | ||
|
|
b93dc94cdb | ||
|
|
6a8547cca0 | ||
|
|
a1b08c5ee3 | ||
|
|
8dfafeb4e3 | ||
|
|
c66066a91f | ||
|
|
dc8d6ce37b | ||
|
|
c8aaa59e1c | ||
|
|
a8e086dbc3 | ||
|
|
1b28d14dcb | ||
|
|
fbf67d7a29 | ||
|
|
f12358bfb0 | ||
|
|
d61fe61b66 | ||
|
|
c7d4d35200 | ||
|
|
e5dd1249b2 | ||
|
|
65aab404ba | ||
|
|
64578a3afd | ||
|
|
74ea5e0bd7 | ||
|
|
9d66bc3258 | ||
|
|
466637933a | ||
|
|
85421efb19 | ||
|
|
69843cf9ce | ||
|
|
8c10914e78 | ||
|
|
d120b2b73a | ||
|
|
d6593abd5e | ||
|
|
5ca1be74b8 | ||
|
|
5838d4899d | ||
|
|
54a85f705b | ||
|
|
10caf5c785 | ||
|
|
1310910b23 | ||
|
|
83bc77ad51 | ||
|
|
19897803d4 | ||
|
|
1487265556 | ||
|
|
6161b898cd | ||
|
|
0e4defe032 | ||
|
|
db6c8a8b79 | ||
|
|
d41028a664 | ||
|
|
d473c8b1df | ||
|
|
87c67b8c5f | ||
|
|
480e58cc9f | ||
|
|
a7cb540ae3 | ||
|
|
dce90d9491 | ||
|
|
19ffd2c1f2 | ||
|
|
329cc47ca6 | ||
|
|
d3031b22b7 | ||
|
|
53d5e42603 | ||
|
|
0c5b54219e | ||
|
|
f6a828b183 | ||
|
|
9179494c16 | ||
|
|
7d26d60bd4 | ||
|
|
7bb843eb0f | ||
|
|
efafb68f00 | ||
|
|
b93c1cb093 | ||
|
|
ea69982a26 | ||
|
|
8e013368b3 | ||
|
|
1ae2bd256e | ||
|
|
43a6aed45c | ||
|
|
746f94368d | ||
|
|
ef7fd61029 | ||
|
|
ea590431d8 | ||
|
|
befe7be9de | ||
|
|
c839c01680 | ||
|
|
9c01340900 | ||
|
|
02044d1d3f | ||
|
|
1e5688a10e | ||
|
|
ee3a80c6e5 | ||
|
|
a33bd07a3d | ||
|
|
278eca6c56 | ||
|
|
91bdfb9a12 | ||
|
|
130abb7e3b | ||
|
|
e43a1b00f6 | ||
|
|
85023f4c14 | ||
|
|
7698c135be | ||
|
|
7f64ff28c0 | ||
|
|
33bd1f17af | ||
|
|
f751192942 | ||
|
|
798261d992 | ||
|
|
470dcc3d11 | ||
|
|
3997e07366 | ||
|
|
25dd5857c2 | ||
|
|
1fb8da7a02 | ||
|
|
ed7105e2cf | ||
|
|
e3ce64b2a2 | ||
|
|
bb9b16ab50 | ||
|
|
86c5c56a38 | ||
|
|
791ec39e57 | ||
|
|
ac3c871ff8 | ||
|
|
312fe96bbd | ||
|
|
5696478540 | ||
|
|
981e5b206b | ||
|
|
9294fb9b8c | ||
|
|
61a5c8ce08 | ||
|
|
02ae5e4d7c | ||
|
|
6ac092bf38 | ||
|
|
4caf71f5b5 | ||
|
|
ed2d6ab75b | ||
|
|
dd2cf6bbaa | ||
|
|
1d213e28c4 | ||
|
|
1b47f26e4b | ||
|
|
a8db0ab298 | ||
|
|
479d45d2d9 | ||
|
|
e0694e88a2 | ||
|
|
0fff5cc80f | ||
|
|
72e27e7dab | ||
|
|
231841bcfe | ||
|
|
10e1c10bcf | ||
|
|
9eaf539e98 | ||
|
|
643dee0ab6 | ||
|
|
6731de5286 | ||
|
|
946006fb08 | ||
|
|
e0c3807b29 | ||
|
|
45f384c870 | ||
|
|
66bcbd7d66 | ||
|
|
6a52ce38f9 | ||
|
|
e938380cb8 | ||
|
|
869e3bdc9a | ||
|
|
b14dd671b5 | ||
|
|
32a436bab4 | ||
|
|
cdf0fa6d6b | ||
|
|
ff505d48ed | ||
|
|
46a07e1da5 | ||
|
|
d2c6f22e32 | ||
|
|
9e72c25a0f | ||
|
|
decfd1ce9c | ||
|
|
0679596d4d | ||
|
|
98da0bbffb | ||
|
|
3077cb6610 | ||
|
|
4888f39b05 | ||
|
|
212a9e04ce | ||
|
|
04dc83c149 | ||
|
|
7abf78f452 | ||
|
|
680e0c347c | ||
|
|
5053f2a183 | ||
|
|
235871bf4b | ||
|
|
731edd0940 | ||
|
|
d1e9f4e811 | ||
|
|
d85e43545b | ||
|
|
de8aceeeb4 | ||
|
|
55e82ef0dc | ||
|
|
b8b798706f | ||
|
|
2f729a1c05 | ||
|
|
c20940b631 | ||
|
|
43c8fb156b | ||
|
|
5f67f1ad64 | ||
|
|
b630dc458f | ||
|
|
b98c031192 | ||
|
|
bbb0f99495 | ||
|
|
0cc5442188 | ||
|
|
28bbb40835 | ||
|
|
6fc7d0f866 | ||
|
|
e4cc45b56f | ||
|
|
985a52b415 | ||
|
|
debba57b43 | ||
|
|
e91a85cbec | ||
|
|
48acbe27bb | ||
|
|
46ad9ff041 | ||
|
|
927a5636bd | ||
|
|
b3d24d4ec2 | ||
|
|
aab8234e55 | ||
|
|
b6e994767c | ||
|
|
7df184a5ec | ||
|
|
63ebea7540 | ||
|
|
35fa794781 | ||
|
|
85f491555f | ||
|
|
1dba69eb38 | ||
|
|
ed582b0752 | ||
|
|
fbc0415761 | ||
|
|
8482d6776b | ||
|
|
d08b6d58ef | ||
|
|
2d8e5089f4 | ||
|
|
be4da756bc | ||
|
|
5f533a35ce | ||
|
|
bd90b8aba9 | ||
|
|
3fbe8fa7c1 | ||
|
|
08ad853ac5 | ||
|
|
913a1f0b8f | ||
|
|
2b9292bc38 | ||
|
|
90c699f418 | ||
|
|
41da733a19 | ||
|
|
4cbff1975f | ||
|
|
a142d31a56 | ||
|
|
22961f13af | ||
|
|
23a4c5d7d6 | ||
|
|
f206110cd2 | ||
|
|
25d8e847a7 | ||
|
|
52f733988e | ||
|
|
856935a3f6 | ||
|
|
2ab263265b | ||
|
|
24aeb4ac0d | ||
|
|
8123ac83f5 | ||
|
|
cbb10e3b1b | ||
|
|
8f1fba2b7b | ||
|
|
161c523488 | ||
|
|
7158b3a1f6 | ||
|
|
4805d67ca1 | ||
|
|
218c1c46c4 | ||
|
|
3433445bbb | ||
|
|
81b1d21c35 | ||
|
|
5fde79eab8 | ||
|
|
d94970b0ed | ||
|
|
ecf8a9b28f | ||
|
|
5fbe427853 | ||
|
|
9ff877dce5 | ||
|
|
0177bf59ff | ||
|
|
53a6ded473 | ||
|
|
651e3d05e4 | ||
|
|
bfa97d2311 | ||
|
|
7a8485f425 | ||
|
|
924d580670 | ||
|
|
e98dffbb1d | ||
|
|
8ebc170ec0 | ||
|
|
a71813b911 | ||
|
|
a30cbae14d | ||
|
|
6f1166bcce | ||
|
|
e04b39f7a2 | ||
|
|
7af2ecb17f | ||
|
|
a85ecb6719 | ||
|
|
aad62add90 | ||
|
|
80ff3e60c4 | ||
|
|
4fd846804a | ||
|
|
e8bc890c10 | ||
|
|
f31c9f2a67 | ||
|
|
e4758a2c48 | ||
|
|
86b0bd5df3 | ||
|
|
96d15a6c05 | ||
|
|
4b30a95d7a | ||
|
|
e0c5bb9ffe | ||
|
|
924f463126 | ||
|
|
5f0802bd2c | ||
|
|
c42541c99b | ||
|
|
8675bc2b01 | ||
|
|
75a8a6cc64 | ||
|
|
1fdfb2b738 | ||
|
|
c73f576314 | ||
|
|
d2734bbdd9 | ||
|
|
5889533297 | ||
|
|
410bfa3cb2 | ||
|
|
af7b083fd8 | ||
|
|
ab6816c074 | ||
|
|
22c23521a3 | ||
|
|
f76127e364 | ||
|
|
75cd05c50e | ||
|
|
11db9b8fdc | ||
|
|
d9f3663dcc | ||
|
|
395b1bc424 | ||
|
|
6eee593f31 | ||
|
|
dec576c89d | ||
|
|
1da25fb7a5 | ||
|
|
82f042ba98 | ||
|
|
e97f144bf4 | ||
|
|
8b90e3480a | ||
|
|
e80b36ded2 | ||
|
|
b46981f4ce | ||
|
|
5d32d4987e | ||
|
|
94f87e3557 | ||
|
|
400c036c67 | ||
|
|
9dbda2e573 | ||
|
|
2fba4e5e99 | ||
|
|
bc6486d7b0 | ||
|
|
526d769271 | ||
|
|
f67bfc485c | ||
|
|
b53a5e2540 | ||
|
|
23aff10b83 | ||
|
|
f18ec81394 | ||
|
|
0bf8f8ce34 | ||
|
|
ceb3fb4ed3 | ||
|
|
8e4718c760 | ||
|
|
b578202876 | ||
|
|
7a583a86ef | ||
|
|
838e83c1f3 | ||
|
|
49e292676e | ||
|
|
2e3f2a4a62 | ||
|
|
2e948de48c | ||
|
|
8d209d8e01 | ||
|
|
2cc1d41f57 | ||
|
|
8d5be706a8 | ||
|
|
18e5f78f21 | ||
|
|
e07da4cad3 | ||
|
|
3233aaf5a5 | ||
|
|
3f4f469489 | ||
|
|
0036c7bd8a | ||
|
|
db437cbda8 | ||
|
|
6c84dcbf80 | ||
|
|
44089a20ab | ||
|
|
8e8b8c27d7 | ||
|
|
70c76be920 | ||
|
|
0170bb504b | ||
|
|
0adc61842f | ||
|
|
a0542acab4 | ||
|
|
9c0aa5e7a3 | ||
|
|
4f41981cd8 | ||
|
|
a7c65b091b | ||
|
|
c6cf0725d0 | ||
|
|
de8fb5d489 | ||
|
|
5458134efb | ||
|
|
e3043b7dcb | ||
|
|
19d29e4018 | ||
|
|
1d443b6b4b | ||
|
|
ecc1b3b971 | ||
|
|
dc44540ee8 | ||
|
|
fa4dfdf813 | ||
|
|
46a405c131 | ||
|
|
129343dc94 | ||
|
|
0cc30a7e49 | ||
|
|
2aa64be3a6 | ||
|
|
13c208de3b | ||
|
|
ac395ba4a6 | ||
|
|
3177072e2f | ||
|
|
2febff1a79 | ||
|
|
f4fb73386e | ||
|
|
cf8d769c73 | ||
|
|
9c8b34c47d | ||
|
|
ea63596eb3 | ||
|
|
db5b8614f3 | ||
|
|
e190db8128 | ||
|
|
da28bdd2f0 | ||
|
|
21e0bd5996 | ||
|
|
4e19ece566 | ||
|
|
bac2a42c82 | ||
|
|
044587ec57 | ||
|
|
32d12a9c7a | ||
|
|
f37189ba9b | ||
|
|
1cfa4a7bec | ||
|
|
4eb84b928b | ||
|
|
2f74f819d4 | ||
|
|
09125cce6b | ||
|
|
db666da35a | ||
|
|
8c20d513fd | ||
|
|
c65803b306 | ||
|
|
0cd2bbdc09 | ||
|
|
8a5f7d09c9 | ||
|
|
528ec8869b | ||
|
|
e5116f86dc | ||
|
|
3e694c1b9d | ||
|
|
eeb5148f29 | ||
|
|
7f60f6f8c1 | ||
|
|
032929c22c | ||
|
|
9748f946ce | ||
|
|
a0897e2ed3 | ||
|
|
f408948925 | ||
|
|
1dd241938c | ||
|
|
34f41d7bf1 | ||
|
|
43c55159d6 | ||
|
|
e67b672727 | ||
|
|
91b39c7df7 | ||
|
|
1694c10f39 | ||
|
|
391f6cc9ea | ||
|
|
375b5e9182 | ||
|
|
4e03fc78dd | ||
|
|
73818f1a53 | ||
|
|
bcd037018f | ||
|
|
878cbab737 | ||
|
|
b86dc9f84d | ||
|
|
8829d77144 | ||
|
|
88db8b43da | ||
|
|
fd1682052d | ||
|
|
74a1a176c5 | ||
|
|
dcf7aa2723 | ||
|
|
80fd06aa6a | ||
|
|
bede819e42 | ||
|
|
5fe6bf0fcd | ||
|
|
8e9f1f781c | ||
|
|
50a71251a1 | ||
|
|
717af548d5 | ||
|
|
451c0d6679 | ||
|
|
78303cdc07 | ||
|
|
10080ca0f2 | ||
|
|
f95c97b38c | ||
|
|
bbce3bd894 | ||
|
|
15382edbd6 | ||
|
|
b7cd38ab12 | ||
|
|
2d9f4d8c03 | ||
|
|
ee4d170525 | ||
|
|
a6b6375985 | ||
|
|
e203ddb7b6 | ||
|
|
321fa30a5f | ||
|
|
d676a5df2a | ||
|
|
58923cbcc0 | ||
|
|
2e7ca940c2 | ||
|
|
49714af3e6 | ||
|
|
c5b11f6ad3 | ||
|
|
89c7440c0d | ||
|
|
c41f370421 | ||
|
|
52cc95b957 | ||
|
|
9a07fc841f | ||
|
|
d52e25949a | ||
|
|
e140a87a6b | ||
|
|
617303659c | ||
|
|
2135ccd420 | ||
|
|
909a82d2d7 | ||
|
|
dbfe40a080 | ||
|
|
3f75d2b08f | ||
|
|
21b427d4df | ||
|
|
4549b5129d | ||
|
|
60f9d1b6c6 | ||
|
|
9ab7bf2408 | ||
|
|
755ea27d46 | ||
|
|
3f566164c2 | ||
|
|
dbac04eb47 | ||
|
|
991c568ee4 | ||
|
|
9d744c31c3 | ||
|
|
7ae0622730 | ||
|
|
e0aa93de4c | ||
|
|
d8463c9bc4 | ||
|
|
4bbe1cfa65 | ||
|
|
9a3d983659 | ||
|
|
1452a26361 | ||
|
|
bdebe50836 | ||
|
|
edcea8f6db | ||
|
|
50b2140d46 | ||
|
|
e2eeea5162 | ||
|
|
35f5f8e187 | ||
|
|
f8e02e5d4c | ||
|
|
32fa870855 | ||
|
|
b99a714497 | ||
|
|
778948b661 | ||
|
|
f6083608f9 | ||
|
|
f694435063 | ||
|
|
e86b8463ea | ||
|
|
9d24b2a46b | ||
|
|
9e0913d6e4 | ||
|
|
e03d11afa2 | ||
|
|
7aa7619c4e | ||
|
|
9db939f74e | ||
|
|
96fd613e89 | ||
|
|
8a9b2379dc | ||
|
|
07f5d3cce4 | ||
|
|
94ff96cf1f | ||
|
|
fb775d4ead | ||
|
|
12f56d6501 | ||
|
|
b234851f00 | ||
|
|
6338348877 | ||
|
|
c6dee66c71 | ||
|
|
4cf6acb1e2 | ||
|
|
8fb04a83bc | ||
|
|
587c766673 | ||
|
|
76fea1fbca | ||
|
|
6852a8ef39 | ||
|
|
517baed1b1 | ||
|
|
2e4cf6fe8c | ||
|
|
85d5cf1407 | ||
|
|
053564d9e9 | ||
|
|
6eaf182cee | ||
|
|
16687889e3 | ||
|
|
32ca133da5 | ||
|
|
a18b0fbcff | ||
|
|
4f0cb4abe1 | ||
|
|
6c812387fd | ||
|
|
5537abbdfb | ||
|
|
7649bba8f5 | ||
|
|
0772a09303 | ||
|
|
b43fed4fbc | ||
|
|
7270bbb7f0 | ||
|
|
a0eea34497 | ||
|
|
49ac6c4e07 | ||
|
|
462cb0421f | ||
|
|
d6e4d5a18c | ||
|
|
815166e421 | ||
|
|
7880748ecd | ||
|
|
aae2cebccd | ||
|
|
f43b2cb2bd | ||
|
|
4e5611ac7b | ||
|
|
b8835cee3f | ||
|
|
c428b33acc | ||
|
|
262490efaa | ||
|
|
11af9f9716 | ||
|
|
bb787ae7cb | ||
|
|
2fba9c579e | ||
|
|
1583b4191a | ||
|
|
1fdc5a5fe6 | ||
|
|
717baa8bd8 | ||
|
|
0bec865e32 | ||
|
|
29a4a0266b | ||
|
|
40424d5864 | ||
|
|
ead0c95f43 | ||
|
|
839be66f85 | ||
|
|
8fc79aa735 | ||
|
|
c094aebd80 | ||
|
|
dea6cc76e3 | ||
|
|
236c6c40f0 | ||
|
|
49fc462ee5 | ||
|
|
fa0f6cd0c6 | ||
|
|
539c95237e | ||
|
|
eef81c09bb | ||
|
|
742a4d91d4 | ||
|
|
1be18e9a48 | ||
|
|
3c9b5ad0bd | ||
|
|
5f15b0bce0 | ||
|
|
f1f98288e0 | ||
|
|
4539fd3e09 | ||
|
|
a39c668bab | ||
|
|
1a5d5ddec2 | ||
|
|
f36ee6de55 | ||
|
|
7559525e48 | ||
|
|
a1c73c0335 | ||
|
|
1ac5d646cf | ||
|
|
6ac8c31b76 | ||
|
|
8fbd81a884 | ||
|
|
11ef9eed01 | ||
|
|
66c5ebf42f | ||
|
|
3e68ea031b | ||
|
|
bb51b8f4c0 | ||
|
|
f87e83c697 | ||
|
|
a3426ca0e2 | ||
|
|
8c3fc983bc | ||
|
|
5380ae4768 | ||
|
|
0b92bc0cd7 | ||
|
|
48296556f5 | ||
|
|
55b3557f22 | ||
|
|
25dfa91caa | ||
|
|
bb6058feaa | ||
|
|
a2da7ad5f8 | ||
|
|
b7ee0bf85e | ||
|
|
652354e59d | ||
|
|
48cc05ccf2 | ||
|
|
004f017550 | ||
|
|
4d4c8b45fb | ||
|
|
295380491f | ||
|
|
2d362c2274 | ||
|
|
fcaf807aed | ||
|
|
2f9ab80205 | ||
|
|
c32da75ccd | ||
|
|
1194f5f28c | ||
|
|
c4a8f2371d | ||
|
|
c5f0e41be9 | ||
|
|
154bb5df06 | ||
|
|
30d1a948c8 | ||
|
|
5097663cb8 | ||
|
|
04618dbe64 | ||
|
|
721de974ee | ||
|
|
70a459a112 | ||
|
|
cc70e683c7 | ||
|
|
eb5d7ef3fe | ||
|
|
b457c3dc09 | ||
|
|
27a779e535 | ||
|
|
e41a9f5b9c | ||
|
|
f9b1523794 | ||
|
|
033000c4e1 | ||
|
|
a08ef0e369 | ||
|
|
bc1fb58cd6 | ||
|
|
a584a04f03 | ||
|
|
b0d2a7c913 | ||
|
|
e4af749931 | ||
|
|
611c948140 | ||
|
|
f1fc51c85c | ||
|
|
1e10c0cf98 | ||
|
|
b10452c2dc | ||
|
|
8ed274e96e | ||
|
|
3115fb5402 | ||
|
|
a40c4a87ba | ||
|
|
2f204ff2ca | ||
|
|
d0103bd7d9 | ||
|
|
a3d34a0e63 | ||
|
|
13a3574979 | ||
|
|
f5099e7d9a | ||
|
|
f8204dc8a9 | ||
|
|
7932234ed8 | ||
|
|
59de9303c5 | ||
|
|
e10e56542d | ||
|
|
474d2fb2c6 | ||
|
|
45bae5569b | ||
|
|
eee1d86fc3 | ||
|
|
d35866d832 | ||
|
|
5939ce9331 | ||
|
|
a7329c38e3 | ||
|
|
0e0071d790 | ||
|
|
8c0d727dc1 | ||
|
|
509439d906 | ||
|
|
63f1aea871 | ||
|
|
c4e1e516ee | ||
|
|
690cd32023 | ||
|
|
00b8ca7b58 | ||
|
|
f06b2707b9 | ||
|
|
51eff14456 | ||
|
|
84e04a4859 | ||
|
|
cfd7ba8bbb | ||
|
|
4922093f24 | ||
|
|
897d312a1d | ||
|
|
457e3f6033 | ||
|
|
59e9948aac | ||
|
|
3ab2228a8b | ||
|
|
992a6a39c5 | ||
|
|
b66b1b1965 | ||
|
|
3b2e80225a | ||
|
|
1fddbd0ee3 | ||
|
|
32be4760cd | ||
|
|
cc60420184 | ||
|
|
a5d96ae90f | ||
|
|
cf04776017 | ||
|
|
0d6d5ff541 | ||
|
|
362378a94a | ||
|
|
59fd6b0334 | ||
|
|
a2c18875f6 | ||
|
|
c57a723546 | ||
|
|
2eeacf071a | ||
|
|
bc94559e4d | ||
|
|
a731f979b0 | ||
|
|
7dc1c84031 | ||
|
|
c05eb0a5c7 | ||
|
|
3edd0994c6 | ||
|
|
e51bf3a056 | ||
|
|
3a91ff6da5 | ||
|
|
ac7976eea9 | ||
|
|
40a36c570e | ||
|
|
0d6f436e2f | ||
|
|
9cab0b0105 | ||
|
|
5817719a7c | ||
|
|
c24b0dad86 | ||
|
|
fef3cce6e0 | ||
|
|
45bffe9e26 | ||
|
|
141753d598 | ||
|
|
4c11fded37 | ||
|
|
bbcf72b0e4 | ||
|
|
ea8fd6991c | ||
|
|
aa2add89cd | ||
|
|
780c7ba10d | ||
|
|
eb02375ee5 | ||
|
|
7a946c5bf4 | ||
|
|
98654d6c0f | ||
|
|
47d61c3ae9 | ||
|
|
4fe6ea9c8a | ||
|
|
f8b59e9308 | ||
|
|
3baea33f46 | ||
|
|
d640f098b9 | ||
|
|
75cfdc06c6 | ||
|
|
a8ef006163 | ||
|
|
5bb235c02a | ||
|
|
4ffb6fe8bd | ||
|
|
318e1bfec8 | ||
|
|
925ec7555f | ||
|
|
e2ab98dea0 | ||
|
|
3ce0d62f83 | ||
|
|
96f6adb74b | ||
|
|
ca1655c25e | ||
|
|
af2b497fdf | ||
|
|
398021e77a | ||
|
|
f98832f587 | ||
|
|
35e75e3d55 | ||
|
|
6f9a14000c | ||
|
|
74be3a448f | ||
|
|
c6b3fb3aef | ||
|
|
a7c40760cd | ||
|
|
2d34e6f839 | ||
|
|
8a407d5ee9 | ||
|
|
0c7c379d46 | ||
|
|
0a70c8f525 | ||
|
|
f2a77335b0 | ||
|
|
d493ffcfde | ||
|
|
a3c78bffe6 | ||
|
|
8612a70ea3 | ||
|
|
429502815f | ||
|
|
80fe557cf3 | ||
|
|
3e3ebc6b8b | ||
|
|
c3ae096e67 | ||
|
|
a08f3c3e9c | ||
|
|
3f6a8abe1b | ||
|
|
255884b3fb | ||
|
|
e796cb0f27 | ||
|
|
428b24d51b | ||
|
|
2238500f22 | ||
|
|
b9be625e9b | ||
|
|
90cae7c6a5 | ||
|
|
04d031d33d | ||
|
|
629c0a315c | ||
|
|
3378831ba5 | ||
|
|
0905b2ba25 | ||
|
|
a2f665de76 | ||
|
|
71e01b58c0 | ||
|
|
1706552f25 | ||
|
|
55abae9d4f | ||
|
|
063bfe6cb7 | ||
|
|
a6d90aaeec | ||
|
|
f18da9078c | ||
|
|
0f49b18986 | ||
|
|
9a64c052cc | ||
|
|
2295cd130a | ||
|
|
5ab4d1d2f8 | ||
|
|
cd1007a972 | ||
|
|
9a7949c79d | ||
|
|
7cf87cb2a3 | ||
|
|
e04aa9639e | ||
|
|
ad72edfa49 | ||
|
|
2f8580c380 | ||
|
|
25a7b2ae22 | ||
|
|
ced0ffabbd | ||
|
|
522039cb60 | ||
|
|
17ddf81681 | ||
|
|
8b15b193a2 | ||
|
|
4793d80775 | ||
|
|
1e0aef10d8 | ||
|
|
2556a95c48 | ||
|
|
0d1c90a23e | ||
|
|
4d10540d8d | ||
|
|
e83991f533 | ||
|
|
78a60d9959 | ||
|
|
cea6f4751e | ||
|
|
6d0a4a9ce0 | ||
|
|
4be7b3dfa5 | ||
|
|
3588a1599f | ||
|
|
fa59fc325e | ||
|
|
375e023d8b | ||
|
|
97e0fbea33 | ||
|
|
21fbc5d6a6 | ||
|
|
8f4a99cc24 | ||
|
|
13d59d1427 | ||
|
|
8360226526 | ||
|
|
2c29e9f07c | ||
|
|
7dfb3c92ba | ||
|
|
6d1f518209 | ||
|
|
3fc90a8000 | ||
|
|
729490c212 | ||
|
|
a1c7298f9d | ||
|
|
622530ae68 | ||
|
|
4d92d60469 | ||
|
|
ce47e41665 | ||
|
|
bdef113184 | ||
|
|
254364ca11 | ||
|
|
77f33b6762 | ||
|
|
dd673a426f | ||
|
|
8248a41994 | ||
|
|
d5e9250405 | ||
|
|
102790400d | ||
|
|
63af2a556b | ||
|
|
17a2c4977e | ||
|
|
e60f0f3981 | ||
|
|
d3f3afa6e7 | ||
|
|
010a311ab7 | ||
|
|
3cddcb4482 | ||
|
|
775e473fb0 | ||
|
|
c6a224a6d1 | ||
|
|
c4b53d0710 | ||
|
|
060a309f82 | ||
|
|
ac77d6c7fe | ||
|
|
e0b23bbaea | ||
|
|
b11e35b7d4 | ||
|
|
74b078c3f1 | ||
|
|
4860deacf8 | ||
|
|
d5d4c551c5 | ||
|
|
f5f7a6cb2a | ||
|
|
70fb5304d0 | ||
|
|
a40ec68883 | ||
|
|
d0d5c84689 | ||
|
|
46cfcbdf43 | ||
|
|
75e9a65bcd | ||
|
|
78aae09a09 | ||
|
|
467f680968 | ||
|
|
862e62b9e4 | ||
|
|
10f6d88ba1 | ||
|
|
49b619cec2 | ||
|
|
439bf558cc | ||
|
|
5afc7363f0 | ||
|
|
45105f16c6 | ||
|
|
5627bb850e | ||
|
|
b6a56fb7e8 | ||
|
|
6ce38d28ae | ||
|
|
694f7dfee4 | ||
|
|
59a5eb4591 | ||
|
|
199f9d38ea | ||
|
|
2ca7e7e2b3 | ||
|
|
827f3da238 | ||
|
|
41cdf11b46 | ||
|
|
fe3fe78538 | ||
|
|
a0dad9f908 | ||
|
|
6dcf1995c1 | ||
|
|
b5d0c2797b | ||
|
|
a3aa9aac88 | ||
|
|
60cf3639ce | ||
|
|
3c387987ed | ||
|
|
b536e4101d | ||
|
|
1b071fe5a2 | ||
|
|
0cf7165841 | ||
|
|
23bbc93a92 | ||
|
|
85830c5f63 | ||
|
|
f3b298586f | ||
|
|
9b2329a49b | ||
|
|
eab8db26fe | ||
|
|
73e1381194 | ||
|
|
755170f752 | ||
|
|
3a75a34c31 | ||
|
|
b69fd5feb8 | ||
|
|
fe53d6ed3f | ||
|
|
2ed0d80be5 | ||
|
|
ea78c81da9 | ||
|
|
6f1f0ef1bf | ||
|
|
4ed7c62cca | ||
|
|
5ac74e31e0 | ||
|
|
6b753378bc | ||
|
|
40dd8e2702 | ||
|
|
74114081ef | ||
|
|
d76349f200 | ||
|
|
a8820459d5 | ||
|
|
d70c1e2149 | ||
|
|
1672c06a36 | ||
|
|
9abc993f08 | ||
|
|
f5c1d53512 | ||
|
|
04a416828b | ||
|
|
836fc810b3 | ||
|
|
3515a1818a | ||
|
|
f67cdb8e44 | ||
|
|
22a6938332 | ||
|
|
e471d036d1 | ||
|
|
319d1508c2 | ||
|
|
0a4b847f50 | ||
|
|
78a61585ce | ||
|
|
19a0a9b769 | ||
|
|
3c210cae1e | ||
|
|
d80d2a4c35 | ||
|
|
563a799de2 | ||
|
|
93ac463920 | ||
|
|
9ce25b36c4 | ||
|
|
14138da395 | ||
|
|
ca1654eae2 | ||
|
|
1ac26f9b67 | ||
|
|
9cd6325ee1 | ||
|
|
3feb7454c5 | ||
|
|
b96babed0a | ||
|
|
345609b5ac | ||
|
|
d8e018a044 | ||
|
|
c51a2b3a6c | ||
|
|
60c746ed21 | ||
|
|
8ac474583b | ||
|
|
dc6b14760d | ||
|
|
8340d30d77 | ||
|
|
b7477f4654 | ||
|
|
e024792e68 | ||
|
|
e41a2618f8 | ||
|
|
ae3c81e0a6 | ||
|
|
237d56ac16 | ||
|
|
60f9744253 | ||
|
|
ec29d3b4a1 | ||
|
|
7ab43d62db | ||
|
|
e08ea100a4 | ||
|
|
e5238c6fcf | ||
|
|
496bba9475 | ||
|
|
923a85f5cc | ||
|
|
2b9c2283db | ||
|
|
095367ac29 | ||
|
|
47a1e91c19 | ||
|
|
f648d5d0ab | ||
|
|
f88e8c3ba4 | ||
|
|
471884cdf4 | ||
|
|
9dd16696ef | ||
|
|
c03c2ef9f2 | ||
|
|
1b09e55129 | ||
|
|
5e36fd3351 | ||
|
|
7e68455893 | ||
|
|
076354168e | ||
|
|
9390536d79 | ||
|
|
4b489cd254 | ||
|
|
3c60c1918e | ||
|
|
4fb87d7c87 | ||
|
|
0adac61dad | ||
|
|
ae504890c7 | ||
|
|
0452b7c326 | ||
|
|
e9d7db6f61 | ||
|
|
0a279ebbbd | ||
|
|
153e30bb1c | ||
|
|
945d6a0188 | ||
|
|
31b5e111bf | ||
|
|
62746ef4ff | ||
|
|
d0894b8c33 | ||
|
|
39bc96fbd1 | ||
|
|
27e48672bb | ||
|
|
536611f0a2 | ||
|
|
c5897a8f81 | ||
|
|
bfb89ae937 | ||
|
|
59a08bb733 | ||
|
|
c9fce4aff9 | ||
|
|
91463b5a4e | ||
|
|
3d00f0ea37 | ||
|
|
bc8229b952 | ||
|
|
ef85335f8f | ||
|
|
9871983602 | ||
|
|
7c658fff27 | ||
|
|
de343361e5 | ||
|
|
1bbe040688 | ||
|
|
c6f26eff9e | ||
|
|
0331b0a1e2 | ||
|
|
7be94f7d44 | ||
|
|
eb0030af45 | ||
|
|
e69ccee1f7 | ||
|
|
beaaa19ada | ||
|
|
6aa3769e9f | ||
|
|
1e5253e9e5 | ||
|
|
f35c426e26 | ||
|
|
0bbda61037 | ||
|
|
eb703a6d80 | ||
|
|
3bb50c7b8a | ||
|
|
de51d1ee8e | ||
|
|
a5c0f64d5e | ||
|
|
160770d979 | ||
|
|
f3a6d7c3ce | ||
|
|
fc2e88758f | ||
|
|
d35a16c30f | ||
|
|
f78cbc818f | ||
|
|
9e61390e78 | ||
|
|
aeacaeb08f | ||
|
|
7cfd88dab7 | ||
|
|
187b008eb2 | ||
|
|
aab8668d4b | ||
|
|
50b2d9f4b8 | ||
|
|
c996384000 | ||
|
|
0930a80dd3 | ||
|
|
212579440e | ||
|
|
132ed11e0e | ||
|
|
ce561e5f3a | ||
|
|
fb8fc4e07c | ||
|
|
ebd44261fe | ||
|
|
77e82ac376 | ||
|
|
5f7937dd33 | ||
|
|
ca796567f3 | ||
|
|
c5fe8ce4dc | ||
|
|
c69f56bd2f | ||
|
|
846f27eebc | ||
|
|
846d9a0c2d | ||
|
|
3ea542769f | ||
|
|
c1bae75a85 | ||
|
|
b5c4cd7a00 | ||
|
|
6fb688f882 | ||
|
|
bbd5b115dd | ||
|
|
884a281dd4 | ||
|
|
89bbe4c782 | ||
|
|
e969c006b7 | ||
|
|
cfb3324b6f | ||
|
|
145326b368 | ||
|
|
5abd614e01 | ||
|
|
55f63a8a12 | ||
|
|
4133a3cbc3 | ||
|
|
6db629db4d | ||
|
|
0b484452fd | ||
|
|
2c2688a680 | ||
|
|
0991948d3e | ||
|
|
640f958d26 | ||
|
|
edae1fc950 | ||
|
|
88ea6fb11d | ||
|
|
74d48b9b91 | ||
|
|
80d363eac5 | ||
|
|
8116e3181f | ||
|
|
b4e4250144 | ||
|
|
df1b8c8f71 | ||
|
|
872cd52f99 | ||
|
|
f4e7c2f6ce | ||
|
|
819136660e | ||
|
|
9acc354608 | ||
|
|
959800d9b5 | ||
|
|
93c2a95860 | ||
|
|
4f94fb9ea0 | ||
|
|
32f1fc504c | ||
|
|
3a2030f3b6 | ||
|
|
6c762a19e7 | ||
|
|
feea5a269f | ||
|
|
a410519ff5 | ||
|
|
9f47676fa3 | ||
|
|
ba75d4c907 | ||
|
|
08ca9ba4a4 | ||
|
|
bd56763235 | ||
|
|
433346583e | ||
|
|
d899835b31 | ||
|
|
4d4854d610 | ||
|
|
4dda9a5183 | ||
|
|
035c115ca8 | ||
|
|
4e17f5b9a5 | ||
|
|
f72b739e21 | ||
|
|
6de2acea83 | ||
|
|
fcd2e936b4 | ||
|
|
41622dc2a9 | ||
|
|
0efc7ae07d | ||
|
|
4489801c4f | ||
|
|
faa0c191a4 | ||
|
|
f9f1db874f | ||
|
|
c6ace07201 | ||
|
|
649a32fa82 | ||
|
|
8dc5f90a88 | ||
|
|
08cc79e513 | ||
|
|
d2014ff946 | ||
|
|
d5148e0b0f | ||
|
|
a3b0f08d57 | ||
|
|
8f27f92269 | ||
|
|
e346f6fc74 | ||
|
|
3e2d693b37 | ||
|
|
e4a90bc417 | ||
|
|
0b941ef495 | ||
|
|
45238eea0f | ||
|
|
382c88eb17 | ||
|
|
97cd4953b0 | ||
|
|
ece95a2ee4 | ||
|
|
8af94099a3 | ||
|
|
324cbd8327 | ||
|
|
9877db53d9 | ||
|
|
493efb1bf7 | ||
|
|
0ffdfb4f76 | ||
|
|
b2c0f64992 | ||
|
|
e6f18b2838 | ||
|
|
630e5d8082 | ||
|
|
6d499785be | ||
|
|
424337507d | ||
|
|
876369b2f1 | ||
|
|
692d3702a1 | ||
|
|
3cb30fa873 | ||
|
|
673b1d79e2 | ||
|
|
28b3286e21 | ||
|
|
177e335cad | ||
|
|
3c7511780b | ||
|
|
6adc4ef78b | ||
|
|
9639f0a87b | ||
|
|
e77bde5e75 | ||
|
|
031d26deb4 | ||
|
|
9e528bef6f | ||
|
|
5ddf83ab5a | ||
|
|
281f83968c | ||
|
|
cb2b167849 | ||
|
|
896de3243e | ||
|
|
961d298b3f | ||
|
|
77f4f0f0c9 | ||
|
|
7d4d9c5c34 | ||
|
|
5a0140cf3a | ||
|
|
3ca2fcad1c | ||
|
|
6f5afaa410 | ||
|
|
0a8436a862 | ||
|
|
a26a4f7c9d | ||
|
|
4219306f55 | ||
|
|
ecf93dbf4f | ||
|
|
3245258560 | ||
|
|
e5820bdbaa | ||
|
|
0a237df13d | ||
|
|
ceee24a4cd | ||
|
|
01ac83b971 | ||
|
|
bfb60b8a33 | ||
|
|
1239449207 | ||
|
|
cfc9f38ccd | ||
|
|
0c5feb7493 | ||
|
|
61158d4693 | ||
|
|
97f8083ee0 | ||
|
|
8f8e0242d8 | ||
|
|
c2805a25bd | ||
|
|
037c2426ab | ||
|
|
669c5cf23f | ||
|
|
1a6f092a39 | ||
|
|
9c50da1e82 | ||
|
|
c754f6ca69 | ||
|
|
5cc2c0ccfc | ||
|
|
11695db3e3 | ||
|
|
0fd6417833 | ||
|
|
18376b38cf | ||
|
|
be68581019 | ||
|
|
debef378c9 | ||
|
|
ceff6f834a | ||
|
|
300ac178de | ||
|
|
70f8f5e921 | ||
|
|
143b2531bb | ||
|
|
56c9ada9e0 | ||
|
|
ec678ff800 | ||
|
|
9cb5c80981 | ||
|
|
0f42cf1bd9 | ||
|
|
3d5a9bc78c | ||
|
|
a7aa5d93ff | ||
|
|
3788350d7c | ||
|
|
56a28240ff | ||
|
|
cb96da9bfa | ||
|
|
b63bf2720c | ||
|
|
eb28fd80f9 | ||
|
|
0de3e4a0af | ||
|
|
2254b35256 | ||
|
|
26326c178e | ||
|
|
8addf6e9a5 | ||
|
|
da3976277f | ||
|
|
0329b9ef9a | ||
|
|
e32480406f | ||
|
|
caeb6b311d | ||
|
|
a92c8bf067 | ||
|
|
33a89a8684 | ||
|
|
9919cc1ba6 | ||
|
|
974e2f7d4a | ||
|
|
7e78bd904d | ||
|
|
78aaf2fd9d | ||
|
|
5bbac46b88 | ||
|
|
70df23f6f8 | ||
|
|
595cc41d9c | ||
|
|
184f06453a | ||
|
|
cb19bd1dd4 | ||
|
|
980953f861 | ||
|
|
d62336a718 | ||
|
|
4c956c400e | ||
|
|
9e6fe01229 | ||
|
|
e98c02b831 | ||
|
|
c6a49a018f | ||
|
|
7d1822d04e | ||
|
|
19477f95a9 | ||
|
|
fcaf1a73b4 | ||
|
|
0159b3297d | ||
|
|
9ddde1cf40 | ||
|
|
cb6b68a05f | ||
|
|
42162f7b37 | ||
|
|
df86573d4c | ||
|
|
96d9890d86 | ||
|
|
1335534aae | ||
|
|
c501c762cf | ||
|
|
fe2e67d1c6 | ||
|
|
7752bb27f6 | ||
|
|
8a95b29c86 | ||
|
|
a6ecac6f1d | ||
|
|
6bf947ee6e | ||
|
|
ad5c92044c | ||
|
|
8702a522d8 | ||
|
|
4b3e6a8ab6 | ||
|
|
8fd1977ab0 | ||
|
|
b2f0b281cd | ||
|
|
555c29971f | ||
|
|
9aac83a83e | ||
|
|
28036b3741 | ||
|
|
13a63ae5fe | ||
|
|
947461e31f | ||
|
|
53d6dfcb6b | ||
|
|
91aad0b28e | ||
|
|
24b7ad602a | ||
|
|
db43d1d8a7 | ||
|
|
3e4629b077 | ||
|
|
abc2ba9a3c | ||
|
|
149c764ca1 | ||
|
|
e188fe0956 | ||
|
|
b44e39cce8 | ||
|
|
c57d4ff268 | ||
|
|
ad40a77afd | ||
|
|
36adbe54a5 | ||
|
|
59861f883b | ||
|
|
17f5bc21e7 | ||
|
|
a0c21bf820 | ||
|
|
da54801353 | ||
|
|
552f5a3f61 | ||
|
|
8b718ee54b | ||
|
|
dbb351f078 | ||
|
|
00a2314999 | ||
|
|
7c5553640e | ||
|
|
5ced6d6aef | ||
|
|
3b2d51a96b | ||
|
|
eba14fa801 | ||
|
|
596c631a71 | ||
|
|
9d0ee46068 | ||
|
|
22d4d72ef4 | ||
|
|
86018d09e1 | ||
|
|
f7a6dc503c | ||
|
|
ed106b7feb | ||
|
|
d51281b576 | ||
|
|
f784236908 | ||
|
|
45f608bac0 | ||
|
|
fb16148641 | ||
|
|
3bc3818955 | ||
|
|
3860ab6f68 | ||
|
|
94634ace27 | ||
|
|
6f8b72bfb3 | ||
|
|
3ebe2a7176 | ||
|
|
87af36724b | ||
|
|
7fd4e395da | ||
|
|
981bea82f4 | ||
|
|
a761166dfa | ||
|
|
9291d87dab | ||
|
|
97e027db33 | ||
|
|
7d2ee932e9 | ||
|
|
79a736a9f6 | ||
|
|
541f3caf50 | ||
|
|
162eb9bb70 | ||
|
|
a0a3f2d2b6 | ||
|
|
eedc332a04 | ||
|
|
ee27adc926 | ||
|
|
de5ac65dd6 | ||
|
|
200034075d | ||
|
|
f793e823ec | ||
|
|
3d016f7385 | ||
|
|
02ff84337a | ||
|
|
ca44bfc681 | ||
|
|
aac1207beb | ||
|
|
c19358ee50 | ||
|
|
0595f74596 | ||
|
|
f932863ee1 | ||
|
|
5f638d7aac | ||
|
|
697ea6d946 | ||
|
|
cb2543df8a | ||
|
|
8129bf95a4 | ||
|
|
991df05826 | ||
|
|
83e08e04d7 | ||
|
|
d8ba814b26 | ||
|
|
11d442c0a0 | ||
|
|
784bd9ec54 | ||
|
|
84f0869fde | ||
|
|
3a076895bb | ||
|
|
b8bb269c72 | ||
|
|
baf5b74da2 | ||
|
|
8ffde3c86a | ||
|
|
e0926981a4 | ||
|
|
908eeaf9cd | ||
|
|
b40489973e | ||
|
|
256847556e | ||
|
|
36ef5b504b | ||
|
|
1d0f716a4e | ||
|
|
a43d257715 | ||
|
|
2672c87f68 | ||
|
|
ae2f236663 | ||
|
|
703eb4e7a0 | ||
|
|
591a0db767 | ||
|
|
ec2b3e61c6 | ||
|
|
9d54fe57f8 | ||
|
|
3030eb8cae | ||
|
|
f3bf7cd5bc | ||
|
|
5af21dfc79 | ||
|
|
42112db262 | ||
|
|
66c247ba9c | ||
|
|
c3d4d40d1b | ||
|
|
c967d1ab3a | ||
|
|
bfad7d30f0 | ||
|
|
6a4a13d041 | ||
|
|
a2599744f0 | ||
|
|
9092e509c6 | ||
|
|
b5009c57b4 | ||
|
|
f21743e213 | ||
|
|
dad1ab3b22 | ||
|
|
a968ce8437 | ||
|
|
225f1fb724 | ||
|
|
c6a51a39f0 | ||
|
|
b6dde9472f | ||
|
|
ecf5219493 | ||
|
|
b9bce39f1e | ||
|
|
c685aa11b5 | ||
|
|
d7716c5e5a | ||
|
|
9dbd1060ad | ||
|
|
5927f264a8 | ||
|
|
c84c57be67 | ||
|
|
14b982346f | ||
|
|
361613bb23 | ||
|
|
a0db745586 | ||
|
|
e1c67b1fba | ||
|
|
901d1b3af8 | ||
|
|
fc9f365b47 | ||
|
|
06c0a20b4d | ||
|
|
a7e97524e4 | ||
|
|
8217bef1eb | ||
|
|
7f74cabf12 | ||
|
|
cf8e8a5b96 | ||
|
|
023073b422 | ||
|
|
6dd1a052d3 | ||
|
|
c422c4e130 | ||
|
|
37320faecc | ||
|
|
f68d0ffb7d | ||
|
|
79eab3513d | ||
|
|
5d188dee44 | ||
|
|
729774d6f8 | ||
|
|
a067d1bc0d | ||
|
|
399a46eb92 | ||
|
|
f514411cea | ||
|
|
aee6a1648a | ||
|
|
f45f393b71 | ||
|
|
2acc260239 | ||
|
|
a184032321 | ||
|
|
4f3b82565f | ||
|
|
2934d628b5 | ||
|
|
3c76cbaa1e | ||
|
|
83d21d8076 | ||
|
|
d0fdcb18db | ||
|
|
5fd9c608ed | ||
|
|
3434e1c53f | ||
|
|
824293a681 | ||
|
|
c9a188825d | ||
|
|
d5a95fcac0 | ||
|
|
832bdeb3be | ||
|
|
965e75761d | ||
|
|
bcfca75b56 | ||
|
|
9932033365 | ||
|
|
a9dfdc494b | ||
|
|
f1a0c90fb1 | ||
|
|
4398053245 | ||
|
|
ec528b797e | ||
|
|
966213238a | ||
|
|
7a9d436a56 | ||
|
|
caf99ea472 | ||
|
|
db258b68ea | ||
|
|
f12ea12eda | ||
|
|
9e0ab0029b | ||
|
|
db795bc07a | ||
|
|
6382054ae5 | ||
|
|
441ba991fa | ||
|
|
f56f8f56f3 | ||
|
|
1cfe2b5dac | ||
|
|
0f04bc72bd | ||
|
|
5a84f07281 | ||
|
|
a4887558b8 | ||
|
|
15896e422c | ||
|
|
0bf57a9c64 | ||
|
|
53e3cd60d0 | ||
|
|
dd5b8dfabf | ||
|
|
4173e3c487 | ||
|
|
a254a8acb1 | ||
|
|
ce160b4f1a | ||
|
|
fef8659bf1 | ||
|
|
de21842485 | ||
|
|
674791bf91 | ||
|
|
6715e3b171 | ||
|
|
53255dcf48 | ||
|
|
d3d6e637d6 | ||
|
|
426c273de8 | ||
|
|
7d76f2829a | ||
|
|
64a9f1e5d7 | ||
|
|
ba47f9fe7c | ||
|
|
d1a2112163 | ||
|
|
b853ce1546 | ||
|
|
6ff4d852e1 | ||
|
|
629b8fdb88 | ||
|
|
3de71150a6 | ||
|
|
f2b68c8261 | ||
|
|
376c47c98f | ||
|
|
0e4311490c | ||
|
|
b5e1097890 | ||
|
|
bb8d6b5143 | ||
|
|
c8453bb3f7 | ||
|
|
4c75213caa | ||
|
|
725d3fa6ea | ||
|
|
52d743f223 | ||
|
|
b89155a64a | ||
|
|
66c571d217 | ||
|
|
fac31cce07 | ||
|
|
ad1feaf35c | ||
|
|
f2764393be | ||
|
|
851a68883c | ||
|
|
5bdb108e47 | ||
|
|
f2ff7661e4 | ||
|
|
4a91a6bf4b | ||
|
|
e8505e4434 | ||
|
|
7f174a46c3 | ||
|
|
8546fbe868 | ||
|
|
80155f7b4c | ||
|
|
1afbf0e20f | ||
|
|
0e39681621 | ||
|
|
0d63470af3 | ||
|
|
b683a21217 | ||
|
|
9f8f8c1a9c | ||
|
|
5c71bad6e1 | ||
|
|
ea73b04ef3 | ||
|
|
f14b5ead0e | ||
|
|
48cbb00cbe | ||
|
|
fe073353c0 | ||
|
|
5880700ab4 | ||
|
|
021d8d1fec | ||
|
|
c80f2c0817 | ||
|
|
6e53274b6a | ||
|
|
43e75cec60 | ||
|
|
4b2ac75e94 | ||
|
|
5f734a6210 | ||
|
|
c0becb6dc7 | ||
|
|
3dbb828d82 | ||
|
|
69e7c2d0ae | ||
|
|
5d1e9f0c86 | ||
|
|
787061ffd4 | ||
|
|
bc296e2dcc | ||
|
|
c21def03db | ||
|
|
916a65f5d6 | ||
|
|
c2dc6da49f | ||
|
|
0f84a92306 | ||
|
|
f0cb9591ec | ||
|
|
249314e586 | ||
|
|
10569743c8 | ||
|
|
1cd71875ac | ||
|
|
43fd3df629 | ||
|
|
7592c2cb1a | ||
|
|
7606d347a0 | ||
|
|
9c10e17f06 | ||
|
|
2d429613e6 | ||
|
|
2ff183fd2a | ||
|
|
b48d45c38d | ||
|
|
e2cfecffe3 | ||
|
|
847de065d6 | ||
|
|
9694054674 | ||
|
|
f3e2248cc4 | ||
|
|
ef48465b2a | ||
|
|
d112eb710c | ||
|
|
144ef77113 | ||
|
|
5c0660793d | ||
|
|
a91e33ce96 | ||
|
|
5b09f4211d | ||
|
|
4b31842ecc | ||
|
|
7e978197d2 | ||
|
|
1284cf0187 | ||
|
|
fb36b6b633 | ||
|
|
8b48512de7 | ||
|
|
70a5d416d1 | ||
|
|
42d0e056fb | ||
|
|
f055d610d3 | ||
|
|
5ac646f89f | ||
|
|
b493f98f39 | ||
|
|
2e947a5e91 | ||
|
|
c9c168d853 | ||
|
|
e494e09063 | ||
|
|
aab6140bfa | ||
|
|
98d06cffb2 | ||
|
|
de79024451 | ||
|
|
dcb4b71a3d | ||
|
|
d07e8114c6 | ||
|
|
67beb0c4d5 | ||
|
|
ca4cc6fe80 | ||
|
|
4ed4dab397 | ||
|
|
6b74749c12 | ||
|
|
b83ab7873e | ||
|
|
73153b484b | ||
|
|
40915d76c6 | ||
|
|
8668e313f8 | ||
|
|
a18c5dd9c4 | ||
|
|
53f6b51cde | ||
|
|
6a4d9703cc | ||
|
|
0d9459bdd6 | ||
|
|
57a2371a16 | ||
|
|
cd5fb7ea8c | ||
|
|
8ebd47f7d7 | ||
|
|
bccc87a808 | ||
|
|
478209a840 | ||
|
|
1c5cb87985 | ||
|
|
83103c314b | ||
|
|
bc759a2903 | ||
|
|
6bdc39213b | ||
|
|
0e7eb937b4 | ||
|
|
e63968056e | ||
|
|
9ef57888fa | ||
|
|
6710f21388 | ||
|
|
b5efab645f | ||
|
|
5d86ead6c0 | ||
|
|
7b4b53af21 | ||
|
|
2e5bf801a0 | ||
|
|
04cee55976 | ||
|
|
479827380c | ||
|
|
6f22e5b7d9 | ||
|
|
6de8b41da2 | ||
|
|
3e6e781c8d | ||
|
|
57acada057 | ||
|
|
68e92c8319 | ||
|
|
1b972eff60 | ||
|
|
b11d9ce683 | ||
|
|
1c19000977 | ||
|
|
eea5656df7 | ||
|
|
8749fb1da8 | ||
|
|
a90254c045 | ||
|
|
dacde83aae | ||
|
|
42c2a9754f | ||
|
|
44ccf469d9 | ||
|
|
1c9723afd7 | ||
|
|
23bf60a80e | ||
|
|
04e97ce36b | ||
|
|
0370ea6d61 | ||
|
|
a9bbf81f93 | ||
|
|
fa2547ddf7 | ||
|
|
a26a8318da | ||
|
|
206c33b6bc | ||
|
|
5acb12ebe0 | ||
|
|
040aa7115c | ||
|
|
531353e14d | ||
|
|
3f83d34dd9 | ||
|
|
5fc5b3c32d | ||
|
|
227a684c70 | ||
|
|
be932f0f5b | ||
|
|
37c3bced4b | ||
|
|
4eed0fe226 | ||
|
|
4d183a3757 | ||
|
|
177af75c93 | ||
|
|
f90babad30 | ||
|
|
8cbd17b1ba | ||
|
|
0db1db10b8 | ||
|
|
eb025dae5c | ||
|
|
cec503a1b4 | ||
|
|
5472fafa56 | ||
|
|
a0a7a48c3b | ||
|
|
89a37681fc | ||
|
|
7b6ed6733f | ||
|
|
78961d37c1 | ||
|
|
b391be598b | ||
|
|
d0e857ddb2 | ||
|
|
928e341f16 | ||
|
|
3759de23eb | ||
|
|
9c9976c121 | ||
|
|
eb3fc1d43e | ||
|
|
7b745d6fb2 | ||
|
|
d10d14acac | ||
|
|
ca5599714b | ||
|
|
f337b8df6d | ||
|
|
7cd58cabab | ||
|
|
8b4f21bd95 | ||
|
|
ab820d3083 | ||
|
|
fb23d440f0 | ||
|
|
f70b857d1b | ||
|
|
bd07643039 | ||
|
|
686e5af1bb | ||
|
|
34ccddfc2d | ||
|
|
b6f73fdc29 | ||
|
|
c19324dfea | ||
|
|
772b64fabd | ||
|
|
ef92740400 | ||
|
|
ee9c5be180 | ||
|
|
ca9a6feeb0 | ||
|
|
022cb596be | ||
|
|
9eb53c3d47 | ||
|
|
dfcfa9883b | ||
|
|
fb6d291d38 | ||
|
|
e4e29ae837 | ||
|
|
94534b7c15 | ||
|
|
491040b2c7 | ||
|
|
b4adc21f19 | ||
|
|
bae4084355 | ||
|
|
d394fe5dda | ||
|
|
dcfe4e8a97 | ||
|
|
be9e253a2f | ||
|
|
620216fb26 | ||
|
|
70d71f4355 | ||
|
|
6b87f1082e | ||
|
|
fd44c34a61 | ||
|
|
6c247029bd | ||
|
|
6bbdb92784 | ||
|
|
22182c0d7f | ||
|
|
87f66789de | ||
|
|
1879c8e724 | ||
|
|
693830b09a | ||
|
|
e3fa99632e | ||
|
|
b3d11b1fa5 | ||
|
|
2b6187a009 | ||
|
|
a8fc6009f7 | ||
|
|
92141b52ce | ||
|
|
b63f304db1 | ||
|
|
ec3e755168 | ||
|
|
a41ff68078 | ||
|
|
244e172413 | ||
|
|
da936740a6 | ||
|
|
35fae90a9d | ||
|
|
c5a739c68f | ||
|
|
dc92fe358e | ||
|
|
59996174b6 | ||
|
|
84f9364d4c | ||
|
|
a635fb0203 | ||
|
|
e3e1c5ac20 | ||
|
|
e3e9add8b1 | ||
|
|
ffd0d165a7 | ||
|
|
c1d5a0c721 | ||
|
|
3e743d78f3 | ||
|
|
90c847ca59 | ||
|
|
1b162c577e | ||
|
|
a5f4b01d82 | ||
|
|
c5508c7c0b | ||
|
|
80e349860b | ||
|
|
157b243956 | ||
|
|
eabf214312 | ||
|
|
d52117c8dd | ||
|
|
d457c50945 | ||
|
|
b294ab5042 | ||
|
|
9d0812746b | ||
|
|
9f203c9a17 | ||
|
|
0c92039ba4 | ||
|
|
cf6d084155 | ||
|
|
7e6a6f6de2 | ||
|
|
954d3a0326 | ||
|
|
6f6356e0b4 | ||
|
|
9e26d0e0c0 | ||
|
|
bf3ba84e92 | ||
|
|
7a790e48fb | ||
|
|
32bc0f2982 | ||
|
|
fb4a3fd479 | ||
|
|
ccdb8693ee | ||
|
|
a8c5699241 | ||
|
|
e0c4e4b686 | ||
|
|
8a40c25069 | ||
|
|
0fd729951a | ||
|
|
7a30dc4868 | ||
|
|
4b1965afbc | ||
|
|
b2b281f525 | ||
|
|
d2a6847715 | ||
|
|
2690f07cbd | ||
|
|
aa82964563 | ||
|
|
c636aba734 | ||
|
|
ce92663b0a | ||
|
|
a89ba7074f | ||
|
|
a71e706aa4 | ||
|
|
736a2d1022 | ||
|
|
17e13e9e71 | ||
|
|
9d7b94ba34 | ||
|
|
218f7ed718 | ||
|
|
cb0b2e08cf | ||
|
|
c2a990768d | ||
|
|
36537eccc0 | ||
|
|
6cdcb391fb | ||
|
|
9d9c9ae97b | ||
|
|
c478b62711 | ||
|
|
e7f7f33f60 | ||
|
|
c1f3dbba33 | ||
|
|
d5098fe70f | ||
|
|
469d075e77 | ||
|
|
2a4b3fd616 | ||
|
|
408dacc2aa | ||
|
|
7397122695 | ||
|
|
abcbc93b5d | ||
|
|
de6ce0fe74 | ||
|
|
b449b94b48 | ||
|
|
7d85a4c0b3 | ||
|
|
66ab97d2b0 | ||
|
|
241a7de970 | ||
|
|
41d580c9cf | ||
|
|
ec46d547c4 | ||
|
|
daa47964a5 | ||
|
|
ee63833f41 | ||
|
|
445d52de66 | ||
|
|
b82c00e153 | ||
|
|
972692cb1c | ||
|
|
bbfb511322 | ||
|
|
3f3bddef8f | ||
|
|
9f45dd0650 | ||
|
|
43a2b60360 | ||
|
|
14875e6ca5 | ||
|
|
d32de5df93 | ||
|
|
eeb944f6e3 | ||
|
|
ca28f34c8e | ||
|
|
625c309fa6 | ||
|
|
9f3928cd3a | ||
|
|
a65f05f29f | ||
|
|
6a6a84a274 | ||
|
|
4f80e81ee7 | ||
|
|
eb2b9d0bac | ||
|
|
792d315beb | ||
|
|
04e454d3c6 | ||
|
|
a1c2dadb2a | ||
|
|
b6381fad79 | ||
|
|
c9eb48d373 | ||
|
|
67d635ccd4 | ||
|
|
f37307bc06 | ||
|
|
2a4335787e | ||
|
|
1b5278f3d4 | ||
|
|
815b0e0f0f | ||
|
|
70c000b03e | ||
|
|
f59262745e | ||
|
|
cc4f8a793a | ||
|
|
52fee02e94 | ||
|
|
fee336890b | ||
|
|
0b6744bb91 | ||
|
|
e704ddc158 | ||
|
|
f7699474b8 | ||
|
|
6909adbf9c | ||
|
|
156775643e | ||
|
|
d41c902b12 | ||
|
|
43f003e959 | ||
|
|
ba1e51e914 | ||
|
|
66875f1bde | ||
|
|
8a7ee2ea50 | ||
|
|
e9850f2691 | ||
|
|
0122bc2dd7 | ||
|
|
c0085c2dd4 | ||
|
|
00d75279e7 | ||
|
|
c0d87aaa16 | ||
|
|
3c7fcfe81a | ||
|
|
4ff7e05f7e | ||
|
|
3df42a584c | ||
|
|
9c93cbdfaa | ||
|
|
1b36afae36 | ||
|
|
0ff3a17f5e | ||
|
|
d7abe0e8b6 | ||
|
|
20986fd6ea | ||
|
|
293dfd2c64 | ||
|
|
e1b8023da1 | ||
|
|
52d0f32e32 | ||
|
|
c8e426ffb8 | ||
|
|
b70b6ba980 | ||
|
|
c90c70bb84 | ||
|
|
a50f8ebe1c | ||
|
|
da898f1325 | ||
|
|
1e38fa0573 | ||
|
|
5a6676cc53 | ||
|
|
987ed39adb | ||
|
|
3d4a5efe99 | ||
|
|
46f5004866 | ||
|
|
df168727a6 | ||
|
|
2cc4735151 | ||
|
|
dd7e9436a2 | ||
|
|
8e154eb826 | ||
|
|
ca219d89e9 | ||
|
|
26999bb517 | ||
|
|
103659cd7b | ||
|
|
626ae9760f | ||
|
|
dcd8451347 | ||
|
|
882906b3c3 | ||
|
|
f586956618 | ||
|
|
6459b0bf5f | ||
|
|
1f56b2aa4c | ||
|
|
d1c0d1db13 | ||
|
|
b99ce86e16 | ||
|
|
bec394f7bd | ||
|
|
db19d06f61 | ||
|
|
e936aea1e1 | ||
|
|
31eab814f2 | ||
|
|
7f9dd27dc8 | ||
|
|
387191a2c7 | ||
|
|
cf3d3ad287 | ||
|
|
1bc30e42eb | ||
|
|
e271d9bbb8 | ||
|
|
a49f2d23f7 | ||
|
|
3c5d3c55af | ||
|
|
6d344b6702 | ||
|
|
8fa5a7b668 | ||
|
|
d12fef6c05 | ||
|
|
ed1ee8a3b4 | ||
|
|
3bb153d6bb | ||
|
|
df08133a04 | ||
|
|
06087a6bc3 | ||
|
|
fd4d46036a | ||
|
|
1e3ec09984 | ||
|
|
58c5d2d8ac | ||
|
|
410800127c | ||
|
|
1732114593 | ||
|
|
66eabbcddf | ||
|
|
468401cb81 | ||
|
|
cac6ffd8c2 | ||
|
|
d32d4e6ba0 | ||
|
|
5cad6f6aa7 | ||
|
|
e46c49e291 | ||
|
|
5a95c31414 | ||
|
|
f487f26e00 | ||
|
|
e95492dfb0 | ||
|
|
fefe15a844 | ||
|
|
3d2c33e277 | ||
|
|
2ea3be322d | ||
|
|
a849b751a9 | ||
|
|
ea337060ec | ||
|
|
33c81637db | ||
|
|
8bdec01d71 | ||
|
|
7556180ab3 | ||
|
|
09000449a4 | ||
|
|
68644410fb | ||
|
|
c2e988c3d5 | ||
|
|
d4a597912f | ||
|
|
682e5d9b8a | ||
|
|
f7027ba7e4 | ||
|
|
52a627589a | ||
|
|
5fc9fdf795 | ||
|
|
08c8edf314 | ||
|
|
603f82a578 | ||
|
|
8f81c858f8 | ||
|
|
6a21488f0c | ||
|
|
374ac8b21c | ||
|
|
770f321ea8 | ||
|
|
decda89fba | ||
|
|
ff46181ae0 | ||
|
|
dbb0d46ac2 | ||
|
|
d53ef52028 | ||
|
|
a91ff9e04b | ||
|
|
56a8cd53b6 | ||
|
|
0c2aee4835 | ||
|
|
cd78a1a27a | ||
|
|
309bbef3ea | ||
|
|
71cbd2c92f | ||
|
|
cb49888304 | ||
|
|
9479f61318 | ||
|
|
8d02182e12 | ||
|
|
aef211ad4e | ||
|
|
a33d0e8e14 | ||
|
|
4f40987ff0 | ||
|
|
ccfa0db0de | ||
|
|
6ac5841c7f | ||
|
|
f9c86fc6f6 | ||
|
|
a4ca3054f0 | ||
|
|
10ce06ff2b | ||
|
|
8d87404836 | ||
|
|
2d8dcaa2df | ||
|
|
d8d2068664 | ||
|
|
e1ef16649c | ||
|
|
6512a304a0 | ||
|
|
e75b8772ca | ||
|
|
d19105ef78 | ||
|
|
f9b105e07a | ||
|
|
218ce4596e | ||
|
|
8f7a447719 | ||
|
|
14a9b13fd3 | ||
|
|
d72ad93216 | ||
|
|
081413cfda | ||
|
|
f0d34942e3 | ||
|
|
959138af97 | ||
|
|
c61ea7ee53 | ||
|
|
22e4268cc7 | ||
|
|
e2c5191f0c | ||
|
|
7f0def8861 | ||
|
|
dac2f97109 | ||
|
|
3a528a7324 | ||
|
|
3534869cb5 | ||
|
|
e9b6045b5a | ||
|
|
a1a8fd99a0 | ||
|
|
d7fb9edfe2 | ||
|
|
58126396af | ||
|
|
55017702e2 | ||
|
|
7d312abd59 | ||
|
|
ba826bad5c | ||
|
|
4ba6e7a39c | ||
|
|
f838dd1047 | ||
|
|
6aaff51b39 | ||
|
|
f532b58045 | ||
|
|
576688fc10 | ||
|
|
72b83cca59 | ||
|
|
5edf93d2de | ||
|
|
dd0951f114 | ||
|
|
5779a88371 | ||
|
|
22c95138aa | ||
|
|
d0268a4ec1 | ||
|
|
112211eb3b | ||
|
|
d0444e3a04 | ||
|
|
9beb72e69b | ||
|
|
5fedca22ad | ||
|
|
b4ad7c46da | ||
|
|
c2229e5c60 | ||
|
|
11b3f3aa8a | ||
|
|
79411cb4b3 | ||
|
|
dd8505531b | ||
|
|
26f38cada3 | ||
|
|
c235c1a93d | ||
|
|
d16efbab98 | ||
|
|
57115f49cc | ||
|
|
5e8a571801 | ||
|
|
006c4b7a49 | ||
|
|
5662050ad3 | ||
|
|
6a08d40d15 | ||
|
|
fe6eed6c76 | ||
|
|
0ebd337637 | ||
|
|
ffb167e8b2 | ||
|
|
6860747f3e | ||
|
|
18dbfc024e | ||
|
|
e129db8343 | ||
|
|
b2b1167d7a | ||
|
|
6c9e4c84f0 | ||
|
|
6b38714690 | ||
|
|
80d385c291 | ||
|
|
37d01caabd | ||
|
|
7b39ce2cfa | ||
|
|
53a88ccd69 | ||
|
|
2d4614ca5a | ||
|
|
246f45c867 | ||
|
|
b544d3b401 | ||
|
|
5f41dcd958 | ||
|
|
9ea83d0838 | ||
|
|
45e2eea414 | ||
|
|
8b60227186 | ||
|
|
f0a6c2fbcf | ||
|
|
8636bd025e | ||
|
|
4d8c88e7b1 | ||
|
|
b4faacec8c | ||
|
|
eb15231cf4 | ||
|
|
cf947cedd3 | ||
|
|
e3bf7b5dc7 | ||
|
|
a5e9c4f8d1 | ||
|
|
8c874d4632 | ||
|
|
d267037189 | ||
|
|
ea8e311e5a | ||
|
|
3ab2889451 | ||
|
|
c693044013 | ||
|
|
3b3d3f16b4 | ||
|
|
4f071008c8 | ||
|
|
d77b2081c0 | ||
|
|
b097fe72a7 | ||
|
|
66d68121c8 | ||
|
|
5060a9fcd6 | ||
|
|
523457f6ee | ||
|
|
6babe9fccd | ||
|
|
ad815f1061 | ||
|
|
aa0f76a6cd | ||
|
|
c39e619032 | ||
|
|
4a2c2d89a0 | ||
|
|
468cdfd3eb | ||
|
|
83f3de1555 | ||
|
|
ef7ea116cd | ||
|
|
f4ab1bb6e6 | ||
|
|
98989fd9ca | ||
|
|
9932e38ab2 | ||
|
|
0b9b183085 | ||
|
|
4cc2986757 | ||
|
|
9f850cbb2d | ||
|
|
24204bca9f | ||
|
|
1e651a534a | ||
|
|
1b210a8104 | ||
|
|
a0f184e3d1 | ||
|
|
9b6c26ad14 | ||
|
|
89a757d6f9 | ||
|
|
518e817345 | ||
|
|
f9fa5df654 | ||
|
|
9e4b9fddab | ||
|
|
7f12f20be6 | ||
|
|
9019141137 | ||
|
|
af75a28622 | ||
|
|
c744b44b48 | ||
|
|
80d4c7ca2f | ||
|
|
c2d3d6ce4a | ||
|
|
47f5e79d96 | ||
|
|
2c7c97051b | ||
|
|
0d5c765070 | ||
|
|
01d4011dd6 | ||
|
|
7f3328678f | ||
|
|
d9fe7e9cf0 | ||
|
|
4e461a9860 | ||
|
|
3cdaf9f4ba | ||
|
|
0d0e2d2d22 | ||
|
|
8d659c015f | ||
|
|
695a914eb3 | ||
|
|
9b72991e27 | ||
|
|
8db2c12881 | ||
|
|
7e8d898bcb | ||
|
|
550e4d3cee | ||
|
|
271b83ecb3 | ||
|
|
ee3ef338db | ||
|
|
7e3e49082c | ||
|
|
0778ce4a9a | ||
|
|
7351e38ed5 | ||
|
|
bac0efbedb | ||
|
|
302608566a | ||
|
|
c814b9523d | ||
|
|
39891edd12 | ||
|
|
90df1e5b9a | ||
|
|
1e69d3458c | ||
|
|
6988358e29 | ||
|
|
49137da06b | ||
|
|
594a5bb49b | ||
|
|
e5a282c621 | ||
|
|
4ab54c85a8 | ||
|
|
7ac377c750 | ||
|
|
ad104f9164 | ||
|
|
1b8f41d3b2 | ||
|
|
b532117b2b | ||
|
|
bda5c8409c | ||
|
|
f6da80afd8 | ||
|
|
8a15a3f597 | ||
|
|
ae1e81adb1 | ||
|
|
0c0c3b7892 | ||
|
|
b0de601d5b | ||
|
|
7767012a6e | ||
|
|
bd06330739 | ||
|
|
84ed8ee7ef | ||
|
|
f3e35f5432 | ||
|
|
edcb838b98 | ||
|
|
c17a52c09d | ||
|
|
0032ebfeda | ||
|
|
582a0cc2aa | ||
|
|
dd5ceb7b97 | ||
|
|
470826f0c9 | ||
|
|
1cb39eff7e | ||
|
|
90c1dc7c06 | ||
|
|
39c37e9571 | ||
|
|
3ceada5482 | ||
|
|
3cab14d65e | ||
|
|
7efc02574d | ||
|
|
9f872a7ea0 | ||
|
|
ea5498cd99 | ||
|
|
455cd930ec | ||
|
|
335d55ff4a | ||
|
|
4301dfb7bf | ||
|
|
502a7a86af | ||
|
|
30ca0afe49 | ||
|
|
ad383cbdc0 | ||
|
|
165965eadc | ||
|
|
a6d53a6bcd | ||
|
|
df200afd46 | ||
|
|
9c3a416acd | ||
|
|
9e38bfa060 | ||
|
|
2d6eff961f | ||
|
|
0981b8857b | ||
|
|
69bdddd9ba | ||
|
|
4a36e98f5c | ||
|
|
3c2c03165b | ||
|
|
c4b4a08720 | ||
|
|
6d481ce4d6 | ||
|
|
6a9e49f683 | ||
|
|
1833451151 | ||
|
|
9f778655a6 | ||
|
|
f01e1431b0 | ||
|
|
415ae7e922 | ||
|
|
7b798175ad | ||
|
|
5481dd47a9 | ||
|
|
0a00b80726 | ||
|
|
6a4dc794a2 | ||
|
|
7c07f91e1c | ||
|
|
36c1f227ea | ||
|
|
1fe1bc8c09 | ||
|
|
4e7f357a26 | ||
|
|
9f776924d6 | ||
|
|
cb84476be0 | ||
|
|
d07b17ca5c | ||
|
|
58c679c94c | ||
|
|
e2e78ccd0a | ||
|
|
0d5a4693a7 | ||
|
|
95dd252a5b | ||
|
|
87c5817216 | ||
|
|
b6cfa32faa | ||
|
|
b9ebdc1a07 | ||
|
|
73b651052e | ||
|
|
6913efe107 | ||
|
|
3e7b7990f2 | ||
|
|
9c66801439 | ||
|
|
2976b590af | ||
|
|
a837112d99 | ||
|
|
13685d4bc0 | ||
|
|
45887f2b72 | ||
|
|
4d48191bcc | ||
|
|
fedaa3267a | ||
|
|
3d4feae541 | ||
|
|
88b487cd7b | ||
|
|
90a899316e | ||
|
|
08632dc7bd | ||
|
|
ae27a86236 | ||
|
|
fd0066f3a6 | ||
|
|
1092994a09 | ||
|
|
da7230a8eb | ||
|
|
1ca93d7aa1 | ||
|
|
9d8dd3f989 | ||
|
|
c5345aaaba | ||
|
|
fd23647c1c | ||
|
|
4724e96474 | ||
|
|
8df0cf17d6 | ||
|
|
37730ff9ca | ||
|
|
a1e7cc26f4 | ||
|
|
137fa9ebce | ||
|
|
0cacc96ed8 | ||
|
|
4a20e17a9b | ||
|
|
3bfc57ecd0 | ||
|
|
86d96452a3 | ||
|
|
e88028dcb9 | ||
|
|
1e1fc36653 | ||
|
|
cdebe97db8 | ||
|
|
08545984f4 | ||
|
|
b8e156100f | ||
|
|
9109aaaada | ||
|
|
b51fa518be | ||
|
|
c2b1975015 | ||
|
|
ca89e47aa4 | ||
|
|
26ba8cc8fd | ||
|
|
c94c590501 | ||
|
|
38a943d27a | ||
|
|
916b1b016e | ||
|
|
a72cc54578 | ||
|
|
9b6418c324 | ||
|
|
e03e8c7607 | ||
|
|
2cb8aae438 | ||
|
|
533d2bb940 | ||
|
|
828b4d62c9 | ||
|
|
7e31dee840 | ||
|
|
a4a5fc4bfa | ||
|
|
62f42d18f7 | ||
|
|
be9b72e273 | ||
|
|
79ea4bdea3 | ||
|
|
ab0db1c5fb | ||
|
|
5d5a09a5d0 | ||
|
|
9eb72b6ee8 | ||
|
|
f1a2fdaa43 | ||
|
|
bdc67c3332 | ||
|
|
a33d4cdbba | ||
|
|
94e069fde1 | ||
|
|
c89acc55c7 | ||
|
|
d068cf64b3 | ||
|
|
774ce1ecc3 | ||
|
|
dd1bcb3f60 | ||
|
|
317ab99ecf | ||
|
|
474d9d6e0f | ||
|
|
a9a0339ec1 | ||
|
|
27dcc7efc6 | ||
|
|
58b1dd5b6d | ||
|
|
82d5bad777 | ||
|
|
a7c0f30307 | ||
|
|
de22c41214 | ||
|
|
a21f936651 | ||
|
|
6cbb37051b | ||
|
|
550d1fa79e | ||
|
|
46dc90f366 | ||
|
|
8958cb6faf | ||
|
|
b5fa0675b6 | ||
|
|
8e680a6467 | ||
|
|
c4434ccbce | ||
|
|
1b251d6ab0 | ||
|
|
5376af0d04 | ||
|
|
00bd62d942 | ||
|
|
0abe5e195e | ||
|
|
4c0687f68b | ||
|
|
42be23b631 | ||
|
|
13d6e6815e | ||
|
|
92aecb175c | ||
|
|
a3f62d0255 | ||
|
|
080555fffd | ||
|
|
083dccb299 | ||
|
|
1bea1c6883 | ||
|
|
6da6316680 | ||
|
|
523134a5dc | ||
|
|
abb1fce8ff | ||
|
|
6010f7b584 | ||
|
|
a88bca3670 | ||
|
|
95510f8b4c | ||
|
|
2c4b17e464 | ||
|
|
c97e1a7bc2 | ||
|
|
c93761cadc | ||
|
|
aa4bae59e0 | ||
|
|
527726167a | ||
|
|
68a6231d11 | ||
|
|
ebed9d4804 | ||
|
|
5895758914 | ||
|
|
3c300d3e1c | ||
|
|
8443ef3f8d | ||
|
|
1188f0e810 | ||
|
|
1dba1f5328 | ||
|
|
20100c69c7 | ||
|
|
c504e2e22a | ||
|
|
31f96c6850 | ||
|
|
6eda6ac320 | ||
|
|
384bb7f6c4 | ||
|
|
4c265a7cc6 | ||
|
|
2bf16c5b2f | ||
|
|
0d48be448f | ||
|
|
f6b59970f6 | ||
|
|
1d463f136a | ||
|
|
773f0aa626 | ||
|
|
621f9f4ea9 | ||
|
|
198da9e822 | ||
|
|
5db647e661 | ||
|
|
3744019c53 | ||
|
|
5689e6ab64 | ||
|
|
4759d84bdd | ||
|
|
c2f189c855 | ||
|
|
822b1c557c | ||
|
|
744bc6845d | ||
|
|
ce098c78cb | ||
|
|
d1b3479a55 | ||
|
|
e682a47599 | ||
|
|
eebcf1b22c | ||
|
|
b31c9f4a4a | ||
|
|
e41876f32a | ||
|
|
eff0f36a5d | ||
|
|
6f8e6faa1f | ||
|
|
59fa458a20 | ||
|
|
ff9d23e4ec | ||
|
|
93672962a1 | ||
|
|
afc577b6c7 | ||
|
|
fe922d190d | ||
|
|
6e519cf02b | ||
|
|
f2e52892ac | ||
|
|
233b4aeee4 | ||
|
|
d90f26a8c5 | ||
|
|
0b07016f0b | ||
|
|
5894adfd67 | ||
|
|
14a3683f85 | ||
|
|
eebc753306 | ||
|
|
978dd0191a | ||
|
|
5b20e4fed2 | ||
|
|
c2f383773d | ||
|
|
ebc7a50d8f | ||
|
|
98c1d6868f | ||
|
|
c99e75a01b | ||
|
|
bb4210de79 | ||
|
|
b410ca7f8c | ||
|
|
25a8908e26 | ||
|
|
597d25decd | ||
|
|
eb823929a1 | ||
|
|
ef248ee65e | ||
|
|
e20ab23a4b | ||
|
|
5fb767966b | ||
|
|
3b991bd1ce | ||
|
|
15e9fd8cd5 | ||
|
|
73d8f05fb5 | ||
|
|
3ca5d2fcb6 | ||
|
|
8483d153f2 | ||
|
|
b95f4c8bfd | ||
|
|
801226a45c | ||
|
|
f16fdf4e7f | ||
|
|
d082a2b0a2 | ||
|
|
d5aa088876 | ||
|
|
8defe7ce53 | ||
|
|
69584eb0ca | ||
|
|
1eade4ac9d | ||
|
|
da4092cbdf | ||
|
|
c1fd560106 | ||
|
|
17caf7129e | ||
|
|
a520ccdbbc | ||
|
|
eeeff10a51 | ||
|
|
c75693c35a | ||
|
|
e1aef765a0 | ||
|
|
2943d957bb | ||
|
|
ec992b001c | ||
|
|
8304ce5eae | ||
|
|
8af636a3c1 | ||
|
|
3169067979 | ||
|
|
a241500a91 | ||
|
|
0473678491 | ||
|
|
fc59a0d703 | ||
|
|
17a12c0bd7 | ||
|
|
e2f49f412d | ||
|
|
d2493e4bc3 | ||
|
|
b124a6d7da | ||
|
|
267955e114 | ||
|
|
c5d95ce75d | ||
|
|
ebde08999f | ||
|
|
73da8c2a2c | ||
|
|
36af1e09be | ||
|
|
da8966a6c8 | ||
|
|
caa918f7d9 | ||
|
|
28960f5d32 | ||
|
|
ea298b258e | ||
|
|
a81a1917f5 | ||
|
|
2dc4c564e2 | ||
|
|
63324761c6 | ||
|
|
273ba7be86 | ||
|
|
aaf81a512b | ||
|
|
96969afa26 | ||
|
|
70c85c09b9 | ||
|
|
1eaf02a3e1 | ||
|
|
10b9e1a748 | ||
|
|
381355408e | ||
|
|
8c892e94eb | ||
|
|
150bf2e6d4 | ||
|
|
25ffbc9e0c | ||
|
|
706fe6d592 | ||
|
|
d99c21963d | ||
|
|
28be8af452 | ||
|
|
3e78acff56 | ||
|
|
e3acc1a9ed | ||
|
|
4001b657db | ||
|
|
2f56cb1cad | ||
|
|
6b9a8d8685 | ||
|
|
3287090f5b | ||
|
|
aa9d50ff5a | ||
|
|
4558cb8836 | ||
|
|
8bd6bcfde0 | ||
|
|
171f347998 | ||
|
|
fcf9595988 | ||
|
|
a54514d56f | ||
|
|
e9aa4befbb |
@@ -1,7 +0,0 @@
|
||||
/* collection of options, selected by including or excluding 'defines' */
|
||||
|
||||
/* Version number of the EM object code */
|
||||
# define VERSION 3 /* 16 bits number */
|
||||
|
||||
/* The default machine used by ack, acc, apc */
|
||||
# define ACKM "pdp"
|
||||
@@ -1,274 +0,0 @@
|
||||
#ifndef NORCSID
|
||||
static char rcsid[] = "$Header$";
|
||||
#endif
|
||||
|
||||
/*
|
||||
* (c) copyright 1983 by the Vrije Universiteit, Amsterdam, The Netherlands.
|
||||
*
|
||||
* This product is part of the Amsterdam Compiler Kit.
|
||||
*
|
||||
* Permission to use, sell, duplicate or disclose this software must be
|
||||
* obtained in writing. Requests for such permissions may be sent to
|
||||
*
|
||||
* Dr. Andrew S. Tanenbaum
|
||||
* Wiskundig Seminarium
|
||||
* Vrije Universiteit
|
||||
* Postbox 7161
|
||||
* 1007 MC Amsterdam
|
||||
* The Netherlands
|
||||
*
|
||||
*/
|
||||
|
||||
/*
|
||||
* machine dependent back end routines for the Motorola 68000
|
||||
*/
|
||||
|
||||
con_part(sz,w) register sz; word w; {
|
||||
|
||||
while (part_size % sz)
|
||||
part_size++;
|
||||
if (part_size == TEM_WSIZE)
|
||||
part_flush();
|
||||
if (sz == 1) {
|
||||
w &= 0xFF;
|
||||
if (part_size == 0)
|
||||
w <<= 8;
|
||||
part_word |= w;
|
||||
} else {
|
||||
assert(sz == 2);
|
||||
part_word = w;
|
||||
}
|
||||
part_size += sz;
|
||||
}
|
||||
|
||||
con_mult(sz) word sz; {
|
||||
|
||||
if (sz != 4)
|
||||
fatal("bad icon/ucon size");
|
||||
fprintf(codefile,".long %s\n",str);
|
||||
}
|
||||
|
||||
con_float() {
|
||||
|
||||
static int been_here;
|
||||
if (argval != 4 && argval != 8)
|
||||
fatal("bad fcon size");
|
||||
fprintf(codefile,".long\t");
|
||||
if (argval == 8)
|
||||
fprintf(codefile,"F_DUM,");
|
||||
fprintf(codefile,"F_DUM\n");
|
||||
if ( !been_here++)
|
||||
{
|
||||
fprintf(stderr,"Warning : dummy float-constant(s)\n");
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef REGVARS
|
||||
|
||||
|
||||
regscore(off,size,typ,score,totyp)
|
||||
long off;
|
||||
{
|
||||
if (score == 0) return -1;
|
||||
switch(typ) {
|
||||
case reg_float:
|
||||
return -1;
|
||||
case reg_pointer:
|
||||
if (size != 4 || totyp != reg_pointer) return -1;
|
||||
score *= 2;
|
||||
break;
|
||||
case reg_loop:
|
||||
score += 5;
|
||||
/* fall through .. */
|
||||
case reg_any:
|
||||
if (size != 2 || totyp == reg_pointer) return -1;
|
||||
break;
|
||||
}
|
||||
if (off >= 0) {
|
||||
/* parameters must be initialised with an instruction
|
||||
* like "move.w 4(a6),d0", which costs 2 words.
|
||||
*/
|
||||
score -= 2;
|
||||
}
|
||||
score -= 1; /* take save/restore into account */
|
||||
return score;
|
||||
}
|
||||
|
||||
|
||||
struct regsav_t {
|
||||
char *rs_reg; /* e.g. "a3" or "d5" */
|
||||
long rs_off; /* offset of variable */
|
||||
int rs_size; /* 2 or 4 bytes */
|
||||
} regsav[9];
|
||||
|
||||
|
||||
int regnr;
|
||||
int nr_a_regs,nr_d_regs;
|
||||
int TEM_BSIZE;
|
||||
static long nlocals;
|
||||
|
||||
prolog(n)
|
||||
{ nlocals = n; }
|
||||
|
||||
|
||||
i_regsave()
|
||||
{
|
||||
regnr = 0;
|
||||
nr_a_regs = 0;
|
||||
nr_d_regs = 0;
|
||||
TEM_BSIZE = 0;
|
||||
}
|
||||
|
||||
#define MOVEM_LIMIT 2
|
||||
/* If #registers to be saved exceeds MOVEM_LIMIT, we
|
||||
* use the movem instruction to save registers; else
|
||||
* we simply use several move.l's.
|
||||
*/
|
||||
|
||||
|
||||
save()
|
||||
{
|
||||
register struct regsav_t *p;
|
||||
int i;
|
||||
|
||||
if (regnr > MOVEM_LIMIT) {
|
||||
fprintf(codefile,"movem.l ");
|
||||
for (p = regsav; ;) {
|
||||
fprintf(codefile,"%s",p->rs_reg);
|
||||
if (++p == ®sav[regnr]) break;
|
||||
putc('/',codefile);
|
||||
}
|
||||
fprintf(codefile,",-(sp)\n");
|
||||
} else {
|
||||
/* Note that the order in which the registers are saved
|
||||
* is important; it is used by gto.s.
|
||||
*/
|
||||
for (i = 0; i < nr_a_regs; i++) {
|
||||
fprintf(codefile,"move.l a%d,-(sp)\n",5-i);
|
||||
}
|
||||
for (i = 0; i < nr_d_regs; i++) {
|
||||
fprintf(codefile,"move.l d%d,-(sp)\n",7-i);
|
||||
}
|
||||
}
|
||||
/* Push a mask that indicates which registers were saved */
|
||||
assert(nr_d_regs < 8 && nr_a_regs < 8);
|
||||
if (nr_d_regs == 0 && nr_a_regs == 0) {
|
||||
fprintf(codefile,"clr.w -(sp)\n");
|
||||
} else {
|
||||
fprintf(codefile,"move.w #%d,-(sp)\n",
|
||||
nr_d_regs + (nr_a_regs<<3));
|
||||
}
|
||||
|
||||
/* Compute AB - LB */
|
||||
TEM_BSIZE = 4 * (nr_d_regs + nr_a_regs) + 10;
|
||||
|
||||
/* allocate space for local variables */
|
||||
fprintf(codefile,"tst.b -%D(sp)\nlink\ta6,#-%D\n",nlocals+40,nlocals);
|
||||
|
||||
/* initialise register-parameters */
|
||||
for (p = regsav; p < ®sav[regnr]; p++) {
|
||||
if (p->rs_off >= 0) {
|
||||
fprintf(codefile,"move.%c %ld(a6),%s\n",
|
||||
(p->rs_size == 4 ? 'l' : 'w'),
|
||||
p->rs_off + TEM_BSIZE,
|
||||
p->rs_reg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
restr()
|
||||
{
|
||||
register struct regsav_t *p;
|
||||
int i;
|
||||
|
||||
fprintf(codefile,"unlk a6\n");
|
||||
fprintf(codefile,"add.l #2,sp\n"); /* pop mask */
|
||||
if (regnr > MOVEM_LIMIT) {
|
||||
fprintf(codefile,"movem.l (sp)+,");
|
||||
for (p = regsav; ;) {
|
||||
fprintf(codefile,"%s",p->rs_reg);
|
||||
if (++p == ®sav[regnr]) break;
|
||||
putc('/',codefile);
|
||||
}
|
||||
putc('\n',codefile);
|
||||
} else {
|
||||
for (i = nr_d_regs - 1; i >= 0; i--) {
|
||||
fprintf(codefile,"move.l (sp)+,d%d\n",7-i);
|
||||
}
|
||||
for (i = nr_a_regs - 1; i >= 0; i--) {
|
||||
fprintf(codefile,"move.l (sp)+,a%d\n",5-i);
|
||||
}
|
||||
}
|
||||
fprintf(codefile,"rts\n");
|
||||
}
|
||||
|
||||
|
||||
f_regsave()
|
||||
{
|
||||
save();
|
||||
}
|
||||
|
||||
regsave(str,off,size)
|
||||
char *str;
|
||||
long off;
|
||||
{
|
||||
assert (regnr < 9);
|
||||
regsav[regnr].rs_reg = str;
|
||||
if (str[0] == 'a') {
|
||||
nr_a_regs++;
|
||||
} else {
|
||||
assert(str[0] == 'd');
|
||||
nr_d_regs++;
|
||||
}
|
||||
regsav[regnr].rs_off = off;
|
||||
regsav[regnr++].rs_size = size;
|
||||
fprintf(codefile, "!Local %ld into %s\n",off,str);
|
||||
}
|
||||
|
||||
regreturn()
|
||||
{
|
||||
restr();
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#ifndef REGVARS
|
||||
|
||||
prolog(nlocals) full nlocals; {
|
||||
|
||||
fprintf(codefile,"tst.b -%D(sp)\nlink\ta6,#-%D\n",nlocals+40,nlocals);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
mes(type) word type ; {
|
||||
int argt ;
|
||||
|
||||
switch ( (int)type ) {
|
||||
case ms_ext :
|
||||
for (;;) {
|
||||
switch ( argt=getarg(
|
||||
ptyp(sp_cend)|ptyp(sp_pnam)|sym_ptyp) ) {
|
||||
case sp_cend :
|
||||
return ;
|
||||
default:
|
||||
strarg(argt) ;
|
||||
fprintf(codefile,".define %s\n",argstr) ;
|
||||
break ;
|
||||
}
|
||||
}
|
||||
default :
|
||||
while ( getarg(any_ptyp) != sp_cend ) ;
|
||||
break ;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
char *segname[] = {
|
||||
".text", /* SEGTXT */
|
||||
".data", /* SEGCON */
|
||||
".data", /* SEGROM */
|
||||
".bss" /* SEGBSS */
|
||||
};
|
||||
2652
mach/m68k2/cg/table
2652
mach/m68k2/cg/table
File diff suppressed because it is too large
Load Diff
@@ -1,42 +0,0 @@
|
||||
.define .dvi
|
||||
|
||||
! signed long divide
|
||||
.text
|
||||
.dvi:
|
||||
movem.l d0/d2,.savdvi
|
||||
move.l (sp)+,.retdvi
|
||||
move.l (sp)+,d0
|
||||
move.l (sp)+,d1
|
||||
clr.l d4
|
||||
tst.l d0 ! divisor
|
||||
bpl 1f
|
||||
neg.l d0
|
||||
not d4
|
||||
1:
|
||||
tst.l d1 ! dividend
|
||||
bpl 2f
|
||||
neg.l d1
|
||||
not d4
|
||||
swap d4
|
||||
not d4
|
||||
swap d4
|
||||
2:
|
||||
move.l d1,-(sp)
|
||||
move.l d0,-(sp)
|
||||
jsr .dvu
|
||||
tst d4
|
||||
beq 5f
|
||||
neg.l d1 ! quotient
|
||||
5:
|
||||
tst.l d4
|
||||
bpl 6f
|
||||
neg.l d3 ! remainder
|
||||
6:
|
||||
movem.l .savdvi,d0/d2
|
||||
move.l .retdvi,-(sp)
|
||||
rts
|
||||
.data
|
||||
.savdvi: .space 8
|
||||
.retdvi: .long 0
|
||||
.text
|
||||
.align 2
|
||||
32
util/LLgen/COPYING
Normal file
32
util/LLgen/COPYING
Normal file
@@ -0,0 +1,32 @@
|
||||
Copyright (c) 1987, 1990, 1993, 2005 Vrije Universiteit, Amsterdam, The Netherlands.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use of the Amsterdam Compiler Kit in source and
|
||||
binary forms, with or without modification, are permitted provided
|
||||
that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
|
||||
* Redistributions in binary form must reproduce the above
|
||||
copyright notice, this list of conditions and the following
|
||||
disclaimer in the documentation and/or other materials provided
|
||||
with the distribution.
|
||||
|
||||
* Neither the name of Vrije Universiteit nor the names of the
|
||||
software authors or contributors may be used to endorse or
|
||||
promote products derived from this software without specific
|
||||
prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS, AUTHORS, AND
|
||||
CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
IN NO EVENT SHALL VRIJE UNIVERSITEIT OR ANY AUTHORS OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
||||
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
84
util/LLgen/READ_ME
Normal file
84
util/LLgen/READ_ME
Normal file
@@ -0,0 +1,84 @@
|
||||
LLGEN V1.0
|
||||
==========
|
||||
|
||||
Copyright © 1991-2005 by the Vrije Universiteit, Amsterdam, the Netherlands.
|
||||
2006-02-03
|
||||
|
||||
INTRODUCTION
|
||||
============
|
||||
|
||||
LLgen is a LL(1) parser in the style of yacc. It will generate an efficient
|
||||
recursive descent parser for Extended Context-Free grammars, with an optional
|
||||
non-correcting error recovery mechanism.
|
||||
|
||||
For more information, see the white papers in the doc directory. (You may need
|
||||
to build LLgen first to be able to read them.)
|
||||
|
||||
INSTALLATION
|
||||
============
|
||||
|
||||
LLgen depends on the following software:
|
||||
|
||||
gcc: currently, LLgen only builds on gcc, due largely to the lack of any
|
||||
non-gcc test systems. Please contact the support mailing list (see
|
||||
below) if this is a problem.
|
||||
|
||||
groff: used to build the documentation.
|
||||
|
||||
LLgen uses Prime Mover as its build tool. To build, do:
|
||||
|
||||
./pm install
|
||||
|
||||
This will compile LLgen and install it into /usr/local (which you must be able
|
||||
to write to). If you want it installed elsewhere, use -D to change the PREFIX
|
||||
variable:
|
||||
|
||||
./pm -DPREFIX="/home/dg/" install
|
||||
|
||||
(If you do change the prefix, you must supply it whenever you invoke pm. And
|
||||
there must be a trailing / in the path you give it.)
|
||||
|
||||
Invoking ./pm by itself will compile it but not install it; look in the bin
|
||||
directory for an image of
|
||||
|
||||
USING LLGEN
|
||||
===========
|
||||
|
||||
Please see the white papers in PREFIX/share/doc/LLgen, or the man page (called
|
||||
LLgen).
|
||||
|
||||
LLgen itself uses a parser compiled in LLgen, so you can study the files in
|
||||
the src directory for examples. If you wish to modify LLgen's own parser, the
|
||||
bootstrap.sh script will update LLgen's source from the parser *.g files.
|
||||
LLgen itself may then be recompiled with pm in the usual way. (Although you
|
||||
may want to keep a copy of a known good LLgen around in case you break
|
||||
something!)
|
||||
|
||||
SUPPORT
|
||||
=======
|
||||
|
||||
LLgen is part of the Amsterdam Compiler Kit (although standalone and
|
||||
distributed seperately). For more details, please see:
|
||||
|
||||
http://tack.sourceforge.net
|
||||
|
||||
There is a mailing list available at:
|
||||
|
||||
http://sourceforge.net/mail/?group_id=130811
|
||||
|
||||
LICENSE
|
||||
=======
|
||||
|
||||
LLgen is © 1991-2005 by the Vrije Universiteit and is distributed under a
|
||||
license equivalent to the three-clause BSD license. See the COPYING file
|
||||
for details.
|
||||
|
||||
Prime Mover is © 2006 David Given and is distributed under the MIT license.
|
||||
Do './pm --license' for details.
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
David Given
|
||||
dg@cowlark.com
|
||||
2006-02-04
|
||||
|
||||
/* $Id$ */
|
||||
16
util/LLgen/bootstrap.sh
Executable file
16
util/LLgen/bootstrap.sh
Executable file
@@ -0,0 +1,16 @@
|
||||
#!/bin/sh
|
||||
# $Id$
|
||||
#
|
||||
# Script to rebuild LLgen's own parser with LLgen.
|
||||
|
||||
set -e
|
||||
|
||||
if ! (which LLgen > /dev/null); then
|
||||
echo "You can only bootstrap the LLgen parser if you've already got"
|
||||
echo "LLgen installed."
|
||||
fi
|
||||
|
||||
(cd src && LLgen -vvv -x tokens.g LLgen.g)
|
||||
|
||||
echo ""
|
||||
echo "You should now be able to rebuild LLgen with the new parser."
|
||||
144
util/LLgen/c.pm
Normal file
144
util/LLgen/c.pm
Normal file
@@ -0,0 +1,144 @@
|
||||
-- This file is part of Prime Mover v0.1pre1.
|
||||
-- (C) 2006 David Given
|
||||
--
|
||||
-- pm includefile to compile *host* C programs.
|
||||
|
||||
-- Standard Lua boilerplate.
|
||||
|
||||
local io_open = io.open
|
||||
local string_gsub = string.gsub
|
||||
local string_gfind = string.gfind
|
||||
local table_insert = table.insert
|
||||
local table_getn = table.getn
|
||||
local filetime = pm.filetime
|
||||
|
||||
-- Define some variables.
|
||||
|
||||
CC = "gcc %CBUILDFLAGS% %CDYNINCLUDES% %CINCLUDES% %CEXTRAFLAGS% -c -o %out% %in%"
|
||||
CPROGRAM = "gcc %CBUILDFLAGS% %CLINKFLAGS% %CEXTRAFLAGS% -o %out% %in% %CLIBRARIES%"
|
||||
CDEPENDS = "gcc %CBUILDFLAGS% %CDYNINCLUDES% %CINCLUDES% %CEXTRAFLAGS% -MM -MG -MF %out% %in%"
|
||||
AR = "%RM% %out% && ar cr %out% %in%"
|
||||
|
||||
CBUILDFLAGS = "-g -Os"
|
||||
CINCLUDES = {}
|
||||
CEXTRAFLAGS = ""
|
||||
CLINKFLAGS = ""
|
||||
CDYNINCLUDES = ""
|
||||
CLIBRARIES = ""
|
||||
|
||||
--- Manage C file dependencies ----------------------------------------------
|
||||
|
||||
local dependency_cache = {}
|
||||
local function load_dependency_file(fn)
|
||||
local o = dependency_cache[fn]
|
||||
if o then
|
||||
return o
|
||||
end
|
||||
|
||||
-- Read in the dependency file.
|
||||
|
||||
local f = io_open(fn)
|
||||
if not f then
|
||||
print("failed to open "..fn)
|
||||
return nil
|
||||
end
|
||||
f = f:read("*a")
|
||||
|
||||
-- Massage the dependency file into a string containing one unescaped
|
||||
-- filename per line.
|
||||
|
||||
f = string_gsub(f, "^.*[^\\]: *", "")
|
||||
f = string_gsub(f, "\\\r?\n", "")
|
||||
f = string_gsub(f, "([^\\]) +", "%1\n")
|
||||
f = string_gsub(f, "\\", "")
|
||||
|
||||
-- Parse the string.
|
||||
|
||||
o = {}
|
||||
for l in string_gfind(f, "[^\n]+") do
|
||||
table_insert(o, l)
|
||||
end
|
||||
|
||||
dependency_cache[fn] = o
|
||||
return o
|
||||
end
|
||||
|
||||
-- This clause specialises 'simple' to add support for smart dependencies of C
|
||||
-- files.
|
||||
|
||||
simple_with_clike_dependencies = simple {
|
||||
class = "simple_with_clike_dependencies",
|
||||
makedepends = {"%CDEPENDS%"},
|
||||
|
||||
__init = function(self, p)
|
||||
simple.__init(self, p)
|
||||
|
||||
-- If we're a class, don't verify.
|
||||
|
||||
if ((type(p) == "table") and p.class) then
|
||||
return
|
||||
end
|
||||
|
||||
-- If dynamicheaders is an object, turn it into a singleton list.
|
||||
|
||||
if self.dynamicheaders then
|
||||
if (type(self.dynamicheaders) ~= "table") then
|
||||
self:__error("doesn't know what to do with dynamicheaders, which ",
|
||||
"should be a list or an object but was a ", type(self.dynamicheaders))
|
||||
end
|
||||
if self.dynamicheaders.class then
|
||||
self.dynamicheaders = {self.dynamicheaders}
|
||||
end
|
||||
end
|
||||
end,
|
||||
|
||||
__dependencies = function(self, inputs, outputs)
|
||||
local obj = simple {
|
||||
CDYNINCLUDES = self.CDYNINCLUDES,
|
||||
command = self.makedepends,
|
||||
outputs = {"%U%-%I%.d"},
|
||||
unpack(inputs)
|
||||
}
|
||||
local o = obj:__build()
|
||||
local depends = load_dependency_file(o[1])
|
||||
if not depends then
|
||||
self:__error("could not determine the dependencies for ",
|
||||
pm.rendertable(inputs))
|
||||
end
|
||||
return depends
|
||||
end,
|
||||
|
||||
__buildadditionalchildren = function(self)
|
||||
self.CDYNINCLUDES = ""
|
||||
if self.dynamicheaders then
|
||||
for _, i in ipairs(self.dynamicheaders) do
|
||||
local o = i:__build()
|
||||
if o[1] then
|
||||
self.CDYNINCLUDES = self.CDYNINCLUDES..' "-I'..string_gsub(o[1], "/[^/]*$", "")..'"'
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
}
|
||||
|
||||
-- These are the publically useful clauses.
|
||||
|
||||
cfile = simple_with_clike_dependencies {
|
||||
class = "cfile",
|
||||
command = {"%CC%"},
|
||||
outputs = {"%U%-%I%.o"},
|
||||
}
|
||||
|
||||
cprogram = simple {
|
||||
class = "cprogram",
|
||||
command = {"%CPROGRAM%"},
|
||||
outputs = {"%U%-%I%"},
|
||||
}
|
||||
|
||||
clibrary = simple {
|
||||
class = "clibrary",
|
||||
command = {
|
||||
"%AR%"
|
||||
},
|
||||
outputs = {"%U%-%I%.a"},
|
||||
}
|
||||
139
util/LLgen/doc/LLgen.1
Normal file
139
util/LLgen/doc/LLgen.1
Normal file
@@ -0,0 +1,139 @@
|
||||
.\" $Id$
|
||||
.TH LLGEN 1 "$Revision$"
|
||||
.ad
|
||||
.SH NAME
|
||||
LLgen, an extended LL(1) parser generator
|
||||
.SH SYNOPSIS
|
||||
LLgen [ \-vxwans ] [ \-j[\fInum\fP] ] [ \-l\fInum\fP ] [ \-h\fInum\fP ] file ...
|
||||
.SH DESCRIPTION
|
||||
\fILLgen\fP
|
||||
converts a context-free grammar into a set of
|
||||
functions which form a recursive descent parser with no backtrack.
|
||||
The grammar may be ambiguous;
|
||||
ambiguities can be broken by user specifications.
|
||||
.PP
|
||||
\fILLgen\fP
|
||||
reads each
|
||||
\fIfile\fP
|
||||
in sequence.
|
||||
Together, these files must constitute a context-free grammar.
|
||||
For each file,
|
||||
\fILLgen\fP
|
||||
generates an output file, which must be compiled by the
|
||||
C-compiler.
|
||||
In addition, it generates the files
|
||||
\fILpars.c\fP
|
||||
and
|
||||
\fILpars.h.\fP
|
||||
\fILpars.h\fP
|
||||
contains the
|
||||
\fIdefine\fP
|
||||
statements that associate the
|
||||
\fILLgen\fP-assigned `token-codes' with user declared `token-names'.
|
||||
This allows other source files, for instance the source file
|
||||
containing the lexical analyzer,
|
||||
to access the token-codes by
|
||||
using the token-names.
|
||||
\fILpars.c\fP
|
||||
contains the error recovery routines and tables. It must also
|
||||
be compiled by the C-compiler. When the generated parser uses non-correcting
|
||||
error recovery (
|
||||
\fB\-n\fP
|
||||
option)
|
||||
\fILLgen\fP
|
||||
also generates a file
|
||||
\fILncor.c\fP
|
||||
that contains the non-correcting recovery mechanism.
|
||||
.PP
|
||||
\fILLgen\fP
|
||||
will only update those output files that differ from their previous
|
||||
version.
|
||||
This allows
|
||||
\fILLgen\fP
|
||||
to be used with
|
||||
\fImake\fP
|
||||
(1) convieniently.
|
||||
.PP
|
||||
To obtain a working program, the user must also supply a
|
||||
lexical analyzer, as well as
|
||||
\fImain\fP
|
||||
and
|
||||
\fILLmessage\fP,
|
||||
an error reporting routine;
|
||||
\fILex\fP
|
||||
(1) is a useful program for creating lexical analysers usable
|
||||
by
|
||||
\fILLgen\fP.
|
||||
.PP
|
||||
\fILLgen\fP accepts the following flags:
|
||||
.IP \fB\-v\fP
|
||||
create a file called
|
||||
\fILL.output\fP,
|
||||
which contains a description of the conflicts that
|
||||
were not resolved.
|
||||
If the flag is given more than once,
|
||||
\fILLgen\fP
|
||||
will be more "verbose".
|
||||
If it is given three times, a complete description of the
|
||||
grammar will be supplied.
|
||||
.IP \fB\-x\fP
|
||||
the sets that are computed are extended with the nonterminal
|
||||
symbols and these extended sets are also included in the
|
||||
\fILL.output\fP
|
||||
file.
|
||||
.IP \fB\-w\fP
|
||||
no warnings are given.
|
||||
.IP \fB\-a\fP
|
||||
Produce ANSI C function headers and prototypes.
|
||||
.IP \fB\-n\fP
|
||||
Produce a parser with non-correcting error recovery.
|
||||
.IP \fB\-s\fP
|
||||
Simulate the calling of all defined subparsers in all semantic actions. When
|
||||
using non-correcting error recovery, subparsers that are called in semantic
|
||||
actions may cause problems; this flag provides a `brute-force' solution.
|
||||
.IP \fB\-j\fP[\fInum\fP]
|
||||
when this flag is given, \fILLgen\fP will generate dense switches,
|
||||
so that the compiler can generate a jump table for it. This will only be
|
||||
done for switches that have density between
|
||||
\fIlow_percentage\fP and \fIhigh_percentage\fP, as explained below.
|
||||
Usually, compilers generate a jumptable when the density of the switch
|
||||
is above a certain threshold. When jump tables are to be used more often,
|
||||
\fIhigh_percentage\fP must be set to this threshold, and \fIlow_percentage\fP
|
||||
must be set to a minimum threshold. There is a time-space trade-off here.
|
||||
.I num
|
||||
is the minimum number of cases in a switch for the \fB\-j\fP option to be
|
||||
effective. The default value (if
|
||||
.I num
|
||||
is not given) is 8.
|
||||
.IP \fB\-l\fP\fInum\fP
|
||||
The \fIlow_percentage\fP, as described above. Default value is 10.
|
||||
.IP \fB\-h\fP\fInum\fP
|
||||
The \fIhigh_percentage\fP, as described above. Default value is 30.
|
||||
.SH FILES
|
||||
LL.output verbose output file
|
||||
.br
|
||||
Lpars.c the error recovery routines
|
||||
.br
|
||||
Lncor.c non-correcting error recovery mechanism
|
||||
.br
|
||||
Lpars.h defines for token names
|
||||
.SH "SEE ALSO"
|
||||
\fIlex\fP(1)
|
||||
.br
|
||||
\fImake\fP(1)
|
||||
.br
|
||||
\fILLgen, an Extended LL(1) Parser Generator\fP
|
||||
by C.J.H. Jacobs.
|
||||
.br
|
||||
\fITop-down Non-Correcting Error Recovery in LLgen\fP
|
||||
by A.W van Deudekom and P.J. Kooiman
|
||||
.SH DIAGNOSTICS
|
||||
Are intended to be self-explanatory. They are reported
|
||||
on standard error. A more detailed report is found in the
|
||||
\fILL.output\fP
|
||||
file.
|
||||
.SH AUTHOR
|
||||
Ceriel J. H. Jacobs
|
||||
.br
|
||||
The non-correcting error recovery mechanism is written by
|
||||
A.W van Deudekom and P.J. Kooiman.
|
||||
1077
util/LLgen/doc/LLgen.n
Normal file
1077
util/LLgen/doc/LLgen.n
Normal file
File diff suppressed because it is too large
Load Diff
54
util/LLgen/doc/LLgen.refs
Normal file
54
util/LLgen/doc/LLgen.refs
Normal file
@@ -0,0 +1,54 @@
|
||||
%T An ALL(1) Compiler Generator
|
||||
%A D. R. Milton
|
||||
%A L. W. Kirchhoff
|
||||
%A B. R. Rowland
|
||||
%B Proc. of the SIGPLAN '79 Symposium on Compiler Construction
|
||||
%D August 1979
|
||||
%J SIGPLAN Notices
|
||||
%N 8
|
||||
%P 152-157
|
||||
%V 14
|
||||
|
||||
%T Lex - A Lexical Analyser Generator
|
||||
%A M. E. Lesk
|
||||
%I Bell Laboratories
|
||||
%D October 1975
|
||||
%C Murray Hill, New Jersey
|
||||
%R Comp. Sci. Tech. Rep. No. 39
|
||||
|
||||
%T Yacc: Yet Another Compiler Compiler
|
||||
%A S. C. Johnson
|
||||
%I Bell Laboratories
|
||||
%D 1975
|
||||
%C Murray Hill, New Jersey
|
||||
%R Comp. Sci. Tech. Rep. No. 32
|
||||
|
||||
%T The C Programming Language
|
||||
%A B. W. Kernighan
|
||||
%A D. M. Ritchie
|
||||
%I Prentice-Hall, Inc.
|
||||
%C Englewood Cliffs, New Jersey
|
||||
%D 1978
|
||||
|
||||
%A M. Griffiths
|
||||
%T LL(1) Grammars and Analysers
|
||||
%E F. L. Bauer and J. Eickel
|
||||
%B Compiler Construction, An Advanced Course
|
||||
%I Springer-Verlag
|
||||
%C New York, N.Y.
|
||||
%D 1974
|
||||
|
||||
%T Make - A Program for Maintaining Computer Programs
|
||||
%A S. I. Feldman
|
||||
%J Software - Practice and Experience
|
||||
%V 10
|
||||
%N 8
|
||||
%P 255-265
|
||||
%D August 1979
|
||||
|
||||
%T Methods for the Automatic Construction of Error Correcting Parsers
|
||||
%A J. R\*:ohrich
|
||||
%J Acta Informatica
|
||||
%V 13
|
||||
%P 115-139
|
||||
%D 1980
|
||||
2712
util/LLgen/doc/LLgen_NCER.n
Normal file
2712
util/LLgen/doc/LLgen_NCER.n
Normal file
File diff suppressed because it is too large
Load Diff
68
util/LLgen/lib/incl
Normal file
68
util/LLgen/lib/incl
Normal file
@@ -0,0 +1,68 @@
|
||||
/* $Id$ */
|
||||
#ifdef LL_DEBUG
|
||||
#include <assert.h>
|
||||
#include <stdio.h>
|
||||
#define LL_assert(x) assert(x)
|
||||
#else
|
||||
#define LL_assert(x) /* nothing */
|
||||
#endif
|
||||
|
||||
extern int LLsymb;
|
||||
|
||||
#define LL_SAFE(x) /* Nothing */
|
||||
#define LL_SSCANDONE(x) if (LLsymb != x) LLsafeerror(x)
|
||||
#define LL_SCANDONE(x) if (LLsymb != x) LLerror(x)
|
||||
#define LL_NOSCANDONE(x) LLscan(x)
|
||||
#ifdef LL_FASTER
|
||||
#define LLscan(x) if ((LLsymb = LL_LEXI()) != x) LLerror(x)
|
||||
#endif
|
||||
|
||||
extern unsigned int LLscnt[];
|
||||
extern unsigned int LLtcnt[];
|
||||
extern int LLcsymb;
|
||||
|
||||
#if LL_NON_CORR
|
||||
extern int LLstartsymb;
|
||||
#endif
|
||||
|
||||
#define LLsdecr(d) {LL_assert(LLscnt[d] > 0); LLscnt[d]--;}
|
||||
#define LLtdecr(d) {LL_assert(LLtcnt[d] > 0); LLtcnt[d]--;}
|
||||
#define LLsincr(d) LLscnt[d]++
|
||||
#define LLtincr(d) LLtcnt[d]++
|
||||
|
||||
#if LL_ANSI_C
|
||||
extern int LL_LEXI(void);
|
||||
extern void LLread(void);
|
||||
extern int LLskip(void);
|
||||
extern int LLnext(int);
|
||||
extern void LLerror(int);
|
||||
extern void LLsafeerror(int);
|
||||
extern void LLnewlevel(unsigned int *);
|
||||
extern void LLoldlevel(unsigned int *);
|
||||
#ifndef LL_FASTER
|
||||
extern void LLscan(int);
|
||||
#endif
|
||||
#ifndef LLNOFIRSTS
|
||||
extern int LLfirst(int, int);
|
||||
#endif
|
||||
#if LL_NON_CORR
|
||||
extern void LLnc_recover(void);
|
||||
#endif
|
||||
#else /* not LL_ANSI_C */
|
||||
extern LLread();
|
||||
extern int LLskip();
|
||||
extern int LLnext();
|
||||
extern LLerror();
|
||||
extern LLsafeerror();
|
||||
extern LLnewlevel();
|
||||
extern LLoldlevel();
|
||||
#ifndef LL_FASTER
|
||||
extern LLscan();
|
||||
#endif
|
||||
#ifndef LLNOFIRSTS
|
||||
extern int LLfirst();
|
||||
#endif
|
||||
#if LL_NON_CORR
|
||||
extern LLnc_recover();
|
||||
#endif
|
||||
#endif /* not LL_ANSI_C */
|
||||
70
util/LLgen/lib/nc_incl
Normal file
70
util/LLgen/lib/nc_incl
Normal file
@@ -0,0 +1,70 @@
|
||||
#define LLALT 9999 /* Alternative is following */
|
||||
|
||||
#define LLTERMINAL 1 /* Symbol is a terminal */
|
||||
#define LLNONTERMINAL 2 /* Symbol is a nonterminal */
|
||||
#define LLEORULE 0 /* No more alternatives */
|
||||
|
||||
|
||||
struct lhs { /* LHS of a rule */
|
||||
int nr; /* Nr of the nonterminal */
|
||||
struct symbol *rhs; /* Pointer to RHS */
|
||||
char first[LLSETSIZE]; /* First set */
|
||||
char follow[LLSETSIZE]; /* Follow set */
|
||||
char empty; /* Set if nonterminal produces empty */
|
||||
};
|
||||
|
||||
struct symbol { /* Symbol in the RHS of a rule */
|
||||
int x; /* LLTERMINAL or LLNONTERMINAL */
|
||||
int nr; /* Nr of the symbol */
|
||||
struct symbol *link; /* Ptr to next rule with this symbol */
|
||||
struct symbol *next; /* Ptr to next symbol in this rule */
|
||||
struct lhs *lhs; /* Ptr to LHS */
|
||||
};
|
||||
|
||||
struct terminal { /* Array with links to terminals in a */
|
||||
struct symbol *link; /* rule */
|
||||
};
|
||||
|
||||
struct nonterminal { /* Array with links to nt's in a rule */
|
||||
struct symbol *link; /* and pointer to LHS's */
|
||||
struct lhs *rule;
|
||||
};
|
||||
|
||||
struct stack_elt { /* Stack element */
|
||||
int flags; /* Some flags */
|
||||
int nr; /* Nr of symbol */
|
||||
int ref_count; /* Nr of predecessors */
|
||||
int hyp_ref_count; /* Temporary nr of predecessors */
|
||||
int matched; /* Nr of LHS trying to match */
|
||||
int nr_nexts; /* Nr of successors */
|
||||
struct edge *edges; /* Array of edges to other stack elt's*/
|
||||
};
|
||||
|
||||
/* Possible flags in a stack element */
|
||||
#define LLHEAD 1 /* Stack element is a head */
|
||||
#define LLDUMMY 2 /* Stack element is substituted */
|
||||
#define LLGEN_SEARCH 8 /* Set by 'generate_heads()' */
|
||||
|
||||
|
||||
struct edge { /* Edges of a stack element */
|
||||
char flags; /* Some flags */
|
||||
struct stack_elt *ptr; /* Array with pointers to stack elt's */
|
||||
};
|
||||
|
||||
/* Possible flags in an edge */
|
||||
#define LLLOOP 1 /* Belongs to a loop */
|
||||
#define LLLOOP_SEARCH 2 /* Used by 'loop()' */
|
||||
#define LLHYP_SEARCH 4 /* Used by 'hyp_run()' */
|
||||
#define PRINT_SEARCH 8 /* DEBUG */
|
||||
#define LLMARK_SEARCH 16 /* Used by 'mark_loop()' */
|
||||
#define LLYES 32
|
||||
#define LLNO 64
|
||||
|
||||
#define LLEOSTACK -1 /* Indicates last element of a stack */
|
||||
#define LLHEADS_BUF_INCR 10 /* Nr of elements the buffer will be */
|
||||
#define LLCLEANUP_BUF_INCR 25 /* increased by */
|
||||
#define LL_VIS_INCR 200
|
||||
|
||||
/* Macro's to manipulate bit sets */
|
||||
#define LLIN(a, i) ((a)[(i)/8] & (1 << ((i) % 8)))
|
||||
#define LLPUTIN(a, i) ((a)[(i)/8] |= (1 << ((i) % 8)))
|
||||
1790
util/LLgen/lib/nc_rec
Normal file
1790
util/LLgen/lib/nc_rec
Normal file
File diff suppressed because it is too large
Load Diff
442
util/LLgen/lib/rec
Normal file
442
util/LLgen/lib/rec
Normal file
@@ -0,0 +1,442 @@
|
||||
/*
|
||||
* Some grammar independent code.
|
||||
* This file is copied into Lpars.c.
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
static char *rcsid = "$Id$";
|
||||
#endif
|
||||
|
||||
unsigned int LLtcnt[LL_NTERMINALS];
|
||||
unsigned int LLscnt[LL_NSETS];
|
||||
int LLcsymb, LLsymb;
|
||||
static int LLlevel;
|
||||
|
||||
#if LL_NON_CORR
|
||||
int LLstartsymb;
|
||||
static int fake_eof = 0;
|
||||
#endif
|
||||
|
||||
#if LL_ANSI_C
|
||||
#define LL_VOIDCST (void)
|
||||
void LLmessage(int);
|
||||
#else
|
||||
#define LL_VOIDCST
|
||||
#endif
|
||||
#ifdef LL_USERHOOK
|
||||
#if LL_ANSI_C
|
||||
static int LLdoskip(int);
|
||||
static int LLuserhook(int, int*);
|
||||
#else
|
||||
static int LLdoskip();
|
||||
static int LLuserhook();
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef LL_FASTER
|
||||
#if LL_ANSI_C
|
||||
void LLscan(int t)
|
||||
#else
|
||||
LLscan(t)
|
||||
int t;
|
||||
#endif
|
||||
{
|
||||
/*
|
||||
* Check if the next symbol is equal to the parameter
|
||||
*/
|
||||
|
||||
#if LL_NON_CORR
|
||||
/* See if the error recovery has eaten an eof */
|
||||
if (fake_eof) {
|
||||
LLsymb = EOFILE;
|
||||
fake_eof = 0;
|
||||
}
|
||||
else {
|
||||
LLsymb = LL_LEXI();
|
||||
}
|
||||
|
||||
if (LLsymb == t) {
|
||||
#else
|
||||
if ((LLsymb = LL_LEXI()) == t) {
|
||||
#endif
|
||||
|
||||
#if LL_NON_CORR
|
||||
/* Check if a previous parser has 'crashed', in that
|
||||
* case continue with non-correcting parser
|
||||
*/
|
||||
if (err_seen && !nc_done) {
|
||||
LLnc_recover();
|
||||
nc_done = 1;
|
||||
/* Remember that the error recovery has eaten an eof */
|
||||
fake_eof = 1;
|
||||
if (t != LLsymb) {
|
||||
LLerror(t);
|
||||
}
|
||||
else
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
return;
|
||||
}
|
||||
/*
|
||||
* If we come here, an error has been detected
|
||||
*/
|
||||
LLerror(t);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if LL_ANSI_C
|
||||
void LLread(void) {
|
||||
#else
|
||||
LLread() {
|
||||
#endif
|
||||
|
||||
#if LL_NON_CORR
|
||||
/* Again, check if another parser has crashed,
|
||||
* in that case intercept and go to the
|
||||
* non-correcting parser
|
||||
*/
|
||||
|
||||
if (err_seen && !nc_done) {
|
||||
LLnc_recover();
|
||||
nc_done = 1;
|
||||
/* Pretend we read end of file */
|
||||
LLsymb = EOFILE;
|
||||
LLcsymb = LLindex[EOFILE];
|
||||
fake_eof = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if (fake_eof) {
|
||||
LLsymb = EOFILE;
|
||||
LLcsymb = LLindex[EOFILE];
|
||||
fake_eof = 0;
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
for (;;) {
|
||||
if ((LLcsymb = LLindex[(LLsymb = LL_LEXI())]) >= 0) return;
|
||||
LLmessage(0);
|
||||
}
|
||||
/* NOTREACHED */
|
||||
}
|
||||
|
||||
#if LL_ANSI_C
|
||||
void LLerror(int t)
|
||||
#else
|
||||
LLerror(t)
|
||||
int t;
|
||||
#endif
|
||||
{
|
||||
register int i;
|
||||
|
||||
if (t == EOFILE && LLsymb <= 0) return;
|
||||
#ifdef LL_NEWMESS
|
||||
if (t == EOFILE) {
|
||||
#ifdef LL_USERHOOK
|
||||
static int lst[] = { EOFILE, 0 };
|
||||
LL_VOIDCST LLuserhook(EOFILE, lst);
|
||||
#endif /* LL_USERHOOK */
|
||||
if (LLsymb != EOFILE && LLsymb > 0) {
|
||||
LLmessage(-1);
|
||||
while ((LLsymb = LL_LEXI()) > 0 && LLsymb != EOFILE)
|
||||
/* nothing */ ;
|
||||
}
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if LL_NON_CORR
|
||||
if ((!nc_done) && (LLsymb > 0) && (LLsymb != EOFILE)) {
|
||||
LLmessage(0);
|
||||
LLnc_recover();
|
||||
nc_done = 1;
|
||||
LLsymb = EOFILE;
|
||||
}
|
||||
#endif
|
||||
|
||||
if ((LLcsymb = LLindex[LLsymb]) < 0) {
|
||||
LLmessage(0);
|
||||
LLread();
|
||||
}
|
||||
i = LLindex[t];
|
||||
LLtcnt[i]++;
|
||||
#ifdef LL_USERHOOK
|
||||
LL_VOIDCST LLdoskip(t);
|
||||
#else
|
||||
LL_VOIDCST LLskip();
|
||||
#endif
|
||||
LLtcnt[i]--;
|
||||
if (LLsymb != t) {
|
||||
#if LL_NON_CORR
|
||||
/* A little kludge here; when using non-correcting recovery
|
||||
* it can happen that a program is correct but incomplete.
|
||||
* Here, we test this, and make sure the appropriate
|
||||
* message is generated
|
||||
*/
|
||||
if (! nc_done) {
|
||||
int oldLLsymb;
|
||||
oldLLsymb = LLsymb;
|
||||
LLsymb = EOFILE;
|
||||
LLmessage(0);
|
||||
nc_done = 1;
|
||||
/* Not really, but to prevent more than 1 error message */
|
||||
LLsymb = oldLLsymb;
|
||||
}
|
||||
#endif
|
||||
LLmessage(t);
|
||||
}
|
||||
}
|
||||
|
||||
#if LL_ANSI_C
|
||||
void LLsafeerror(int t)
|
||||
#else
|
||||
LLsafeerror(t)
|
||||
int t;
|
||||
#endif
|
||||
{
|
||||
if (t == EOFILE && LLsymb <= 0) return;
|
||||
#ifdef LL_NEWMESS
|
||||
if (t == EOFILE) {
|
||||
#ifdef LL_USERHOOK
|
||||
static int lst[] = { EOFILE, 0 };
|
||||
LL_VOIDCST LLuserhook(EOFILE, lst);
|
||||
#endif /* LL_USERHOOK */
|
||||
if (LLsymb != EOFILE && LLsymb > 0) {
|
||||
LLmessage(-1);
|
||||
while ((LLsymb = LL_LEXI()) > 0 && LLsymb != EOFILE)
|
||||
/* nothing */ ;
|
||||
}
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
#if LL_NON_CORR
|
||||
if ((!nc_done) && (LLsymb > 0) && (LLsymb != EOFILE)) {
|
||||
LLmessage(0);
|
||||
LLnc_recover();
|
||||
nc_done = 1;
|
||||
LLsymb = EOFILE;
|
||||
}
|
||||
/* A little kludge here; when using non-correcting recovery
|
||||
* it can happen that a program is correct but incomplete.
|
||||
* Here, we test this, and make sure the appropriate
|
||||
* message is generated
|
||||
*/
|
||||
if (! nc_done) {
|
||||
int oldLLsymb;
|
||||
oldLLsymb = LLsymb;
|
||||
LLsymb = EOFILE;
|
||||
LLmessage(0);
|
||||
nc_done = 1;
|
||||
/* Not really, but to prevent more than 1 error message */
|
||||
LLsymb = oldLLsymb;
|
||||
}
|
||||
#endif
|
||||
LLmessage(t);
|
||||
}
|
||||
|
||||
#ifndef LLNOFIRSTS
|
||||
#if LL_ANSI_C
|
||||
int LLfirst(int x, int d) {
|
||||
#else
|
||||
int LLfirst(x, d) {
|
||||
#endif
|
||||
register int i;
|
||||
|
||||
return (i = LLindex[x]) >= 0 &&
|
||||
(LLsets[d + (i >> 3)] & (1 << (i & 07)));
|
||||
}
|
||||
#endif
|
||||
|
||||
#if LL_ANSI_C
|
||||
int LLnext(int n)
|
||||
#else
|
||||
int LLnext(n)
|
||||
int n;
|
||||
#endif
|
||||
{
|
||||
/* returns: 0 if the current symbol is'nt skipped, and it
|
||||
is'nt a member of "n",
|
||||
1 if we have a new symbol, but it is'nt a member,
|
||||
2 if the current symbol is a member,
|
||||
and 3 if we have a new symbol and it is a member.
|
||||
So, the low order bit indicates wether we have a new symbol,
|
||||
and the next bit indicates wether it is a member of "n".
|
||||
*/
|
||||
|
||||
int retval = 0;
|
||||
|
||||
if (LLskip()) retval = 1;
|
||||
if (n <= 0 && LLsets[(LLcsymb >> 3) - n] & (1 << (LLcsymb & 07))) {
|
||||
retval |= 2;
|
||||
}
|
||||
else if (n > 0 && LLcsymb == LLindex[n]) retval |= 2;
|
||||
return retval;
|
||||
}
|
||||
|
||||
#if LL_ANSI_C
|
||||
int LLskip(void) {
|
||||
#else
|
||||
int LLskip() {
|
||||
#endif
|
||||
/* returns 0 if the current symbol is'nt skipped, and
|
||||
1 if it is, t.i., we have a new symbol
|
||||
*/
|
||||
#ifdef LL_USERHOOK
|
||||
return LLdoskip(0);
|
||||
}
|
||||
|
||||
#if LL_ANSI_C
|
||||
extern void LL_USERHOOK(int, int *);
|
||||
static int LLuserhook(int e, int *list)
|
||||
#else
|
||||
static int LLuserhook(e, list)
|
||||
int e;
|
||||
int *list;
|
||||
#endif
|
||||
{
|
||||
int old = LLsymb;
|
||||
LL_USERHOOK(e, list);
|
||||
LLread();
|
||||
return LLsymb != old;
|
||||
}
|
||||
|
||||
#if LL_ANSI_C
|
||||
static void LLmklist(register int *list)
|
||||
#else
|
||||
static LLmklist(list)
|
||||
register int *list;
|
||||
#endif
|
||||
{
|
||||
char Xset[LL_SSIZE];
|
||||
register char *p;
|
||||
register int i;
|
||||
|
||||
for (p = &Xset[0]; p < &Xset[LL_SSIZE]; ) *p++ = 0;
|
||||
for (i = 0; i < LL_NTERMINALS; i++) {
|
||||
if (LLtcnt[i] != 0) Xset[i >> 3] |= (1 << (i & 07));
|
||||
}
|
||||
for (i = LL_NSETS - 1; i >= 0; i--) if (LLscnt[i] != 0) {
|
||||
register char *q = &LLsets[LL_SSIZE * i];
|
||||
|
||||
p = &Xset[0];
|
||||
while (p < &Xset[LL_SSIZE]) *p++ |= *q++;
|
||||
}
|
||||
for (i = 0; i < LL_NTERMINALS; i++) {
|
||||
if (Xset[i >> 3] & (1 << (i & 07))) {
|
||||
*list++ = LLtok[i];
|
||||
}
|
||||
}
|
||||
*list = 0;
|
||||
}
|
||||
|
||||
#if LL_ANSI_C
|
||||
static int LLdoskip(int e)
|
||||
#else
|
||||
static int LLdoskip(e)
|
||||
int e;
|
||||
#endif
|
||||
{
|
||||
int LLx;
|
||||
int list[LL_NTERMINALS+1];
|
||||
#endif /* LL_USERHOOK */
|
||||
register int i;
|
||||
int retval;
|
||||
int LLi, LLb;
|
||||
|
||||
retval = 0;
|
||||
#ifdef LL_USERHOOK
|
||||
LLmklist(list);
|
||||
LLx = LLuserhook(e, list);
|
||||
if (LLx) retval = 1;
|
||||
#endif /* LL_USERHOOK */
|
||||
for (;;) {
|
||||
if (LLtcnt[LLcsymb] != 0) {
|
||||
#ifdef LL_USERHOOK
|
||||
if (!e || !LLx || LLcsymb == LLindex[e])
|
||||
#endif
|
||||
return retval;
|
||||
}
|
||||
LLi = LLcsymb >> 3;
|
||||
LLb = 1 << (LLcsymb & 07);
|
||||
for (i = LL_NSETS - 1; i >= 0; i--) {
|
||||
if (LLscnt[i] != 0) {
|
||||
if (LLsets[LL_SSIZE*i+LLi] & LLb) {
|
||||
#ifdef LL_USERHOOK
|
||||
if (!e || !LLx || LLcsymb == LLindex[e])
|
||||
#endif
|
||||
return retval;
|
||||
}
|
||||
}
|
||||
}
|
||||
#ifdef LL_USERHOOK
|
||||
if (LLx) {
|
||||
LLx = LLuserhook(e, list);
|
||||
continue;
|
||||
}
|
||||
#endif /* LL_USERHOOK */
|
||||
#if LL_NON_CORR
|
||||
if ((!nc_done) && (LLsymb > 0)) {
|
||||
LLmessage(0);
|
||||
LLnc_recover();
|
||||
nc_done = 1;
|
||||
fake_eof = 1;
|
||||
}
|
||||
else {
|
||||
LLmessage(0);
|
||||
}
|
||||
#else
|
||||
LLmessage(0);
|
||||
#endif
|
||||
retval = 1;
|
||||
LLread();
|
||||
}
|
||||
/* NOTREACHED */
|
||||
}
|
||||
|
||||
#if LL_ANSI_C
|
||||
void LLnewlevel(unsigned int *LLsinfo) {
|
||||
#else
|
||||
LLnewlevel(LLsinfo) unsigned int *LLsinfo; {
|
||||
#endif
|
||||
register int i;
|
||||
|
||||
if (LLlevel++) {
|
||||
LLsinfo[LL_NSETS+LL_NTERMINALS] = (unsigned) LLsymb;
|
||||
LLsinfo[LL_NSETS+LL_NTERMINALS+1] = (unsigned) LLcsymb;
|
||||
for (i = LL_NTERMINALS - 1; i >= 0; i--) {
|
||||
LLsinfo[i] = LLtcnt[i];
|
||||
LLtcnt[i] = 0;
|
||||
}
|
||||
for (i = LL_NSETS - 1; i >= 0; i--) {
|
||||
LLsinfo[LL_NTERMINALS+i] = LLscnt[i];
|
||||
LLscnt[i] = 0;
|
||||
}
|
||||
}
|
||||
LLtincr(0);
|
||||
}
|
||||
|
||||
#if LL_ANSI_C
|
||||
void LLoldlevel(unsigned int *LLsinfo) {
|
||||
#else
|
||||
LLoldlevel(LLsinfo) unsigned int *LLsinfo; {
|
||||
#endif
|
||||
register int i;
|
||||
|
||||
LLtdecr(0);
|
||||
#ifdef LL_DEBUG
|
||||
for (i = 0; i < LL_NTERMINALS; i++) LL_assert(LLtcnt[i] == 0);
|
||||
for (i = 0; i < LL_NSETS; i++) LL_assert(LLscnt[i] == 0);
|
||||
#endif
|
||||
if (--LLlevel) {
|
||||
for (i = LL_NSETS - 1; i >= 0; i--) {
|
||||
LLscnt[i] = LLsinfo[LL_NTERMINALS+i];
|
||||
}
|
||||
for (i = LL_NTERMINALS - 1; i >= 0; i--) {
|
||||
LLtcnt[i] = LLsinfo[i];
|
||||
}
|
||||
LLsymb = (int) LLsinfo[LL_NSETS+LL_NTERMINALS];
|
||||
LLcsymb = (int) LLsinfo[LL_NSETS+LL_NTERMINALS+1];
|
||||
}
|
||||
}
|
||||
64
util/LLgen/mkdistr.sh
Executable file
64
util/LLgen/mkdistr.sh
Executable file
@@ -0,0 +1,64 @@
|
||||
#!/bin/sh
|
||||
# $Id$
|
||||
#
|
||||
# Script to build a distribution package.
|
||||
|
||||
set -e
|
||||
|
||||
if [ "$1" = "" ]; then
|
||||
echo "Please specify a version number!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -d ../LLgen-$1 ]; then
|
||||
echo "I think you've already generated version $1."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mkdir ../LLgen-$1
|
||||
cp -a --parents \
|
||||
pm \
|
||||
c.pm \
|
||||
pmfile \
|
||||
doc/LLgen.refs \
|
||||
doc/LLgen_NCER.n \
|
||||
doc/LLgen.1 \
|
||||
doc/LLgen.n \
|
||||
lib/rec \
|
||||
lib/incl \
|
||||
lib/nc_incl \
|
||||
lib/nc_rec \
|
||||
src/io.h \
|
||||
src/extern.h \
|
||||
src/reach.c \
|
||||
src/LLgen.c \
|
||||
src/LLgen.g \
|
||||
src/compute.c \
|
||||
src/savegram.c \
|
||||
src/global.c \
|
||||
src/gencode.c \
|
||||
src/main.c \
|
||||
src/name.c \
|
||||
src/types.h \
|
||||
src/sets.c \
|
||||
src/sets.h \
|
||||
src/tokens.c \
|
||||
src/tokens.g \
|
||||
src/Lpars.c \
|
||||
src/Lpars.h \
|
||||
src/cclass.c \
|
||||
src/cclass.h \
|
||||
src/alloc.c \
|
||||
src/check.c \
|
||||
src/machdep.c \
|
||||
mkdistr.sh \
|
||||
bootstrap.sh \
|
||||
COPYING \
|
||||
READ_ME \
|
||||
\
|
||||
../LLgen-$1
|
||||
|
||||
(cd .. && tar cvf LLgen-$1.tar.bz2 --bzip2 LLgen-$1)
|
||||
|
||||
echo ""
|
||||
echo "Done --- but did you remember to update the version number in the README?"
|
||||
BIN
util/LLgen/pm
Executable file
BIN
util/LLgen/pm
Executable file
Binary file not shown.
103
util/LLgen/pmfile
Normal file
103
util/LLgen/pmfile
Normal file
@@ -0,0 +1,103 @@
|
||||
-- $Id$
|
||||
--
|
||||
-- This is the build file used to compile LLgen. It should be run through
|
||||
-- Prime Mover (copy supplied). See the READ_ME file for more information.
|
||||
|
||||
include "c.pm"
|
||||
|
||||
-- Where is LLgen going to be installed eventually? (Needs trailing slash.)
|
||||
|
||||
PREFIX = PREFIX or "/usr/local/"
|
||||
|
||||
-- Where's LLgen's staging area? (Don't change. Needs trailing slash.)
|
||||
|
||||
INSTALLPATH = "bin/"
|
||||
|
||||
LLgen = cprogram {
|
||||
CEXTRAFLAGS = '-DLIBDIR=\\"'..PREFIX..'share/LLgen\\" -DNON_CORRECTING',
|
||||
|
||||
cfile "src/main.c",
|
||||
cfile "src/gencode.c",
|
||||
cfile "src/compute.c",
|
||||
cfile "src/check.c",
|
||||
cfile "src/reach.c",
|
||||
cfile "src/global.c",
|
||||
cfile "src/name.c",
|
||||
cfile "src/sets.c",
|
||||
cfile "src/alloc.c",
|
||||
cfile "src/machdep.c",
|
||||
cfile "src/cclass.c",
|
||||
cfile "src/savegram.c",
|
||||
|
||||
-- These use pre-LLgen'd version of the files. If LLgen.g gets updated,
|
||||
-- they need rebuilding. Use the bootstrap script to do this.
|
||||
|
||||
cfile "src/LLgen.c",
|
||||
cfile "src/Lpars.c",
|
||||
cfile "src/tokens.c",
|
||||
|
||||
outputs = {"%U%/LLgen"},
|
||||
install = pm.install( INSTALLPATH.."bin/LLgen")
|
||||
}
|
||||
|
||||
library = group {
|
||||
install = {
|
||||
pm.install("lib/rec", INSTALLPATH.."share/LLgen/rec"),
|
||||
pm.install("lib/incl", INSTALLPATH.."share/LLgen/incl"),
|
||||
pm.install("lib/nc_incl", INSTALLPATH.."share/LLgen/nc_incl"),
|
||||
pm.install("lib/nc_rec", INSTALLPATH.."share/LLgen/nc_rec"),
|
||||
}
|
||||
}
|
||||
|
||||
manpage = group {
|
||||
install = {
|
||||
pm.install("doc/LLgen.1", INSTALLPATH.."man/man1/LLgen.1"),
|
||||
}
|
||||
}
|
||||
|
||||
documentation = group {
|
||||
simple {
|
||||
outputs = {"%U%-%I%.ps.gz"},
|
||||
command = "refer -sA+T -p %in[1]% %in[2]% | groff -Tps -e -t -ms "..
|
||||
"| gzip -c9 > %out[1]%",
|
||||
|
||||
file "doc/LLgen.refs",
|
||||
file "doc/LLgen.n",
|
||||
|
||||
install = {
|
||||
pm.install(INSTALLPATH.."share/doc/LLgen/LLgen.ps.gz")
|
||||
}
|
||||
},
|
||||
|
||||
simple {
|
||||
outputs = {"%U%-%I%.ps.gz"},
|
||||
command = "groff -Tps -e -t -p -ms %in% | gzip -c9 > %out[1]%",
|
||||
|
||||
file "doc/LLgen_NCER.n",
|
||||
|
||||
install = {
|
||||
pm.install(INSTALLPATH.."share/doc/LLgen/NCER.ps.gz")
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
-- Default rule: builds everything into the staging area, but does nothing
|
||||
-- else.
|
||||
|
||||
default = group {
|
||||
LLgen, -- build LLgen itself
|
||||
library, -- copy over the library
|
||||
manpage, -- copy over the man page
|
||||
documentation, -- build the two white papers
|
||||
}
|
||||
|
||||
-- This rule will build everything, and then install it to its final location.
|
||||
|
||||
install = group {
|
||||
default,
|
||||
|
||||
install = {
|
||||
"mkdir -p %PREFIX%",
|
||||
"(cd bin && tar cf - .) | (cd %PREFIX% && tar xvf -)"
|
||||
}
|
||||
}
|
||||
665
util/LLgen/src/LLgen.g
Normal file
665
util/LLgen/src/LLgen.g
Normal file
@@ -0,0 +1,665 @@
|
||||
/* Copyright (c) 1991 by the Vrije Universiteit, Amsterdam, the Netherlands.
|
||||
* For full copyright and restrictions on use see the file COPYING in the top
|
||||
* level of the LLgen tree.
|
||||
*/
|
||||
|
||||
/*
|
||||
* L L G E N
|
||||
*
|
||||
* An Extended LL(1) Parser Generator
|
||||
*
|
||||
* Author : Ceriel J.H. Jacobs
|
||||
*/
|
||||
|
||||
/*
|
||||
* LLgen.g
|
||||
* Defines the grammar of LLgen.
|
||||
* Some routines that build the internal structure are also included
|
||||
*/
|
||||
|
||||
{
|
||||
# include <stdlib.h>
|
||||
# include <string.h>
|
||||
# include "types.h"
|
||||
# include "io.h"
|
||||
# include "extern.h"
|
||||
# include "assert.h"
|
||||
# include "cclass.h"
|
||||
|
||||
# ifndef NORCSID
|
||||
static string rcsid = "$Id$";
|
||||
# endif
|
||||
p_mem alloc(), ralloc();
|
||||
string store();
|
||||
p_gram search();
|
||||
long ftell();
|
||||
|
||||
static int acount; /* count #of global actions */
|
||||
static p_term t_list;
|
||||
static int t_cnt;
|
||||
static p_gram alt_table;
|
||||
static int n_alts;
|
||||
static int max_alts;
|
||||
#define ALTINCR 32
|
||||
|
||||
static p_gram rule_table;
|
||||
static int n_rules;
|
||||
static int max_rules;
|
||||
#define RULEINCR 32
|
||||
|
||||
/* Here are defined : */
|
||||
STATIC newnorder();
|
||||
STATIC newtorder();
|
||||
STATIC mkalt();
|
||||
STATIC mkterm();
|
||||
STATIC p_gram copyrule();
|
||||
/* and of course LLparse() */
|
||||
|
||||
STATIC
|
||||
newnorder(index) {
|
||||
static int porder;
|
||||
|
||||
if (norder != -1) {
|
||||
nonterms[porder].n_next = index;
|
||||
}
|
||||
else norder = index;
|
||||
porder = index;
|
||||
nonterms[porder].n_next = -1;
|
||||
}
|
||||
|
||||
STATIC
|
||||
newtorder(index) {
|
||||
static int porder;
|
||||
|
||||
if (torder != -1) {
|
||||
tokens[porder].t_next = index;
|
||||
}
|
||||
else torder = index;
|
||||
porder = index;
|
||||
tokens[porder].t_next = -1;
|
||||
}
|
||||
|
||||
p_init()
|
||||
{
|
||||
alt_table = (p_gram )alloc(ALTINCR*sizeof(t_gram));
|
||||
n_alts = 0;
|
||||
max_alts = ALTINCR;
|
||||
rule_table = (p_gram )alloc(RULEINCR*sizeof(t_gram));
|
||||
n_rules = 0;
|
||||
max_rules = RULEINCR;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
%start LLparse, spec;
|
||||
|
||||
spec : { acount = 0; p_init(); }
|
||||
[ %persistent def ]*
|
||||
{ /*
|
||||
* Put an endmarker in temporary file
|
||||
*/
|
||||
putc('\0', fact);
|
||||
putc('\0', fact);
|
||||
free((p_mem) rule_table);
|
||||
free((p_mem) alt_table);
|
||||
}
|
||||
;
|
||||
|
||||
def { register string p; }
|
||||
: rule
|
||||
/*
|
||||
* A grammar rule
|
||||
*/
|
||||
| C_TOKEN listel [ ',' listel ]* ';'
|
||||
/*
|
||||
* A token declaration
|
||||
*/
|
||||
| C_START C_IDENT
|
||||
{ p = store(lextoken.t_string); }
|
||||
',' C_IDENT
|
||||
/*
|
||||
* A start symbol declaration
|
||||
*/
|
||||
{ /*
|
||||
* Put the declaration in the list
|
||||
* of start symbols
|
||||
*/
|
||||
register p_gram temp;
|
||||
register p_start ff;
|
||||
|
||||
temp = search(NONTERM,lextoken.t_string,BOTH);
|
||||
ff = (p_start) alloc(sizeof(t_start));
|
||||
ff->ff_nont = g_getcont(temp);
|
||||
ff->ff_name = p;
|
||||
ff->ff_next = start;
|
||||
start = ff;
|
||||
while (ff = ff->ff_next) {
|
||||
if (! strcmp(p, ff->ff_name)) {
|
||||
error(linecount, "\"%s\" already used in a %%start", p);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
';'
|
||||
| C_LEXICAL C_IDENT
|
||||
/*
|
||||
* Declaration of a name for the lexical analyser.
|
||||
* May appear only once
|
||||
*/
|
||||
{ if (!lexical) {
|
||||
lexical = store(lextoken.t_string);
|
||||
}
|
||||
else error(linecount,"Duplicate %%lexical");
|
||||
}
|
||||
';'
|
||||
| C_PREFIX C_IDENT
|
||||
/*
|
||||
* Prefix of external names (default: LL)
|
||||
*/
|
||||
{ if (!prefix) {
|
||||
prefix = store(lextoken.t_string);
|
||||
if (strlen(prefix) > 6) {
|
||||
error(linecount,
|
||||
"%%prefix too long");
|
||||
prefix[6] = 0;
|
||||
}
|
||||
}
|
||||
else error(linecount,"Duplicate %%prefix");
|
||||
}
|
||||
';'
|
||||
| C_ONERROR C_IDENT
|
||||
{
|
||||
#ifdef NON_CORRECTING
|
||||
if (non_corr) {
|
||||
warning(linecount, "%%onerror conflicts with -n option");
|
||||
}
|
||||
else
|
||||
#endif
|
||||
if (! onerror) {
|
||||
onerror = store(lextoken.t_string);
|
||||
}
|
||||
else error(linecount,"Duplicate %%onerror");
|
||||
}
|
||||
';'
|
||||
| C_ACTION { acount++; }
|
||||
/*
|
||||
* A global C-declaration
|
||||
*/
|
||||
| firsts
|
||||
/*
|
||||
* declarations for macros
|
||||
*/
|
||||
;
|
||||
|
||||
listel : C_IDENT { p_gram temp = search(TERMINAL,lextoken.t_string,ENTERING);
|
||||
newtorder(g_getcont(temp));
|
||||
tokens[g_getcont(temp)].t_lineno = linecount;
|
||||
}
|
||||
;
|
||||
|
||||
rule { register p_nont p;
|
||||
p_gram rr;
|
||||
register p_gram temp;
|
||||
}
|
||||
: /*
|
||||
* grammar for a production rule
|
||||
*/
|
||||
C_IDENT { temp = search(NONTERM,lextoken.t_string,BOTH);
|
||||
p = &nonterms[g_getcont(temp)];
|
||||
if (p->n_rule) {
|
||||
error(linecount,
|
||||
"Nonterminal %s already defined", lextoken.t_string);
|
||||
}
|
||||
/*
|
||||
* Remember the order in which the nonterminals
|
||||
* were defined. Code must be generated in that
|
||||
* order to keep track with the actions on the
|
||||
* temporary file
|
||||
*/
|
||||
newnorder(p - nonterms);
|
||||
p->n_count = acount;
|
||||
acount = 0;
|
||||
p->n_lineno = linecount;
|
||||
p->n_off = ftell(fact);
|
||||
}
|
||||
[ C_PARAMS { if (lextoken.t_num > 0) {
|
||||
p->n_flags |= PARAMS;
|
||||
if (lextoken.t_num > 15) {
|
||||
error(linecount,"Too many parameters");
|
||||
}
|
||||
else setntparams(p,lextoken.t_num);
|
||||
}
|
||||
}
|
||||
]?
|
||||
[ C_ACTION { p->n_flags |= LOCALS; }
|
||||
]?
|
||||
':' { in_production = 1; }
|
||||
productions(&rr) ';'
|
||||
{ in_production = 0; }
|
||||
/*
|
||||
* Do not use p->n_rule now! The nonterms array
|
||||
* might have been re-allocated.
|
||||
*/
|
||||
{ nonterms[g_getcont(temp)].n_rule = rr;}
|
||||
;
|
||||
|
||||
productions(p_gram *p;)
|
||||
/*
|
||||
* One or more alternatives
|
||||
*/
|
||||
{ p_gram prod;
|
||||
int conflres = 0;
|
||||
int t = 0;
|
||||
int haddefault = 0;
|
||||
int altcnt = 0;
|
||||
int o_lc, n_lc;
|
||||
} :
|
||||
{ o_lc = linecount; }
|
||||
simpleproduction(p,&conflres)
|
||||
{ if (conflres & DEF) haddefault = 1; }
|
||||
[
|
||||
[ '|' { n_lc = linecount; }
|
||||
simpleproduction(&prod,&t)
|
||||
{ if (n_alts >= max_alts-2) {
|
||||
alt_table = (p_gram ) ralloc(
|
||||
(p_mem) alt_table,
|
||||
(unsigned)(max_alts+=ALTINCR)*sizeof(t_gram));
|
||||
}
|
||||
if (t & DEF) {
|
||||
if (haddefault) {
|
||||
error(n_lc,
|
||||
"More than one %%default in alternation");
|
||||
}
|
||||
haddefault = 1;
|
||||
}
|
||||
mkalt(*p,conflres,o_lc,&alt_table[n_alts++]);
|
||||
altcnt++;
|
||||
o_lc = n_lc;
|
||||
conflres = t;
|
||||
t = 0;
|
||||
*p = prod;
|
||||
}
|
||||
]+ { if (conflres & (COND|PREFERING|AVOIDING)) {
|
||||
error(n_lc,
|
||||
"Resolver on last alternative not allowed");
|
||||
}
|
||||
mkalt(*p,conflres,n_lc,&alt_table[n_alts++]);
|
||||
altcnt++;
|
||||
g_settype((&alt_table[n_alts]),EORULE);
|
||||
*p = copyrule(&alt_table[n_alts-altcnt],altcnt+1);
|
||||
}
|
||||
|
|
||||
{ if (conflres & (COND|PREFERING|AVOIDING)) {
|
||||
error(o_lc,
|
||||
"No alternation conflict resolver allowed here");
|
||||
}
|
||||
/*
|
||||
if (conflres & DEF) {
|
||||
error(o_lc,
|
||||
"No %%default allowed here");
|
||||
}
|
||||
*/
|
||||
}
|
||||
]
|
||||
{ n_alts -= altcnt; }
|
||||
;
|
||||
{
|
||||
|
||||
STATIC
|
||||
mkalt(prod,condition,lc,res) p_gram prod; register p_gram res; {
|
||||
/*
|
||||
* Create an alternation and initialise it.
|
||||
*/
|
||||
register p_link l;
|
||||
static p_link list;
|
||||
static int cnt;
|
||||
|
||||
if (! cnt) {
|
||||
cnt = 50;
|
||||
list = (p_link) alloc(50 * sizeof(t_link));
|
||||
}
|
||||
cnt--;
|
||||
l = list++;
|
||||
l->l_rule = prod;
|
||||
l->l_flag = condition;
|
||||
g_setlink(res,l);
|
||||
g_settype(res,ALTERNATION);
|
||||
res->g_lineno = lc;
|
||||
nalts++;
|
||||
}
|
||||
}
|
||||
|
||||
simpleproduction(p_gram *p; register int *conflres;)
|
||||
{ t_gram elem;
|
||||
int elmcnt = 0;
|
||||
int cnt, kind;
|
||||
int termdeleted = 0;
|
||||
} :
|
||||
[ C_DEFAULT { *conflres |= DEF; }
|
||||
]?
|
||||
[
|
||||
/*
|
||||
* Optional conflict reslover
|
||||
*/
|
||||
C_IF C_EXPR { *conflres |= COND; }
|
||||
| C_PREFER { *conflres |= PREFERING; }
|
||||
| C_AVOID { *conflres |= AVOIDING; }
|
||||
]?
|
||||
[ C_ILLEGAL {
|
||||
#ifdef NON_CORRECTING
|
||||
if (n_rules >= max_rules-2) {
|
||||
rule_table = (p_gram) ralloc(
|
||||
(p_mem) rule_table,
|
||||
(unsigned)(max_rules+=RULEINCR)*sizeof(t_gram));
|
||||
}
|
||||
elmcnt++;
|
||||
rule_table[n_rules++] =
|
||||
*search(TERMINAL, "LLILLEGAL", BOTH);
|
||||
if (*conflres & DEF) {
|
||||
error(linecount, "%%illegal not allowed in %%default rule");
|
||||
}
|
||||
#endif
|
||||
}
|
||||
]?
|
||||
[ %persistent elem(&elem)
|
||||
{ if (n_rules >= max_rules-2) {
|
||||
rule_table = (p_gram) ralloc(
|
||||
(p_mem) rule_table,
|
||||
(unsigned)(max_rules+=RULEINCR)*sizeof(t_gram));
|
||||
}
|
||||
kind = FIXED;
|
||||
cnt = 0;
|
||||
}
|
||||
[ repeats(&kind, &cnt)
|
||||
{ if (g_gettype(&elem) != TERM) {
|
||||
rule_table[n_rules] = elem;
|
||||
g_settype((&rule_table[n_rules+1]),EORULE);
|
||||
mkterm(copyrule(&rule_table[n_rules],2),
|
||||
0,
|
||||
elem.g_lineno,
|
||||
&elem);
|
||||
}
|
||||
}
|
||||
|
|
||||
{ if (g_gettype(&elem) == TERM) {
|
||||
register p_term q = g_getterm(&elem);
|
||||
|
||||
if (! (q->t_flags & RESOLVER) &&
|
||||
g_gettype(q->t_rule) != ALTERNATION &&
|
||||
g_gettype(q->t_rule) != EORULE) {
|
||||
while (g_gettype(q->t_rule) != EORULE) {
|
||||
rule_table[n_rules++] = *q->t_rule++;
|
||||
elmcnt++;
|
||||
if (n_rules >= max_rules-2) {
|
||||
rule_table = (p_gram) ralloc(
|
||||
(p_mem) rule_table,
|
||||
(unsigned)(max_rules+=RULEINCR)*sizeof(t_gram));
|
||||
}
|
||||
}
|
||||
elem = *--(q->t_rule);
|
||||
n_rules--;
|
||||
elmcnt--;
|
||||
if (q == t_list - 1) {
|
||||
t_list--;
|
||||
nterms--;
|
||||
t_cnt++;
|
||||
}
|
||||
termdeleted = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
] { if (!termdeleted && g_gettype(&elem) == TERM) {
|
||||
register p_term q;
|
||||
|
||||
q = g_getterm(&elem);
|
||||
r_setkind(q,kind);
|
||||
r_setnum(q,cnt);
|
||||
if ((q->t_flags & RESOLVER) &&
|
||||
(kind == PLUS || kind == FIXED)) {
|
||||
error(linecount,
|
||||
"%%while not allowed in this term");
|
||||
}
|
||||
/*
|
||||
* A persistent fixed term is the same
|
||||
* as a non-persistent fixed term.
|
||||
* Should we complain?
|
||||
if ((q->t_flags & PERSISTENT) &&
|
||||
kind == FIXED) {
|
||||
error(linecount,
|
||||
"Illegal %%persistent");
|
||||
}
|
||||
*/
|
||||
}
|
||||
termdeleted = 0;
|
||||
elmcnt++;
|
||||
rule_table[n_rules++] = elem;
|
||||
}
|
||||
]* { register p_term q;
|
||||
|
||||
g_settype((&rule_table[n_rules]),EORULE);
|
||||
*p = 0;
|
||||
n_rules -= elmcnt;
|
||||
if (g_gettype(&rule_table[n_rules]) == TERM &&
|
||||
elmcnt == 1) {
|
||||
q = g_getterm(&rule_table[n_rules]);
|
||||
if (r_getkind(q) == FIXED &&
|
||||
r_getnum(q) == 0) {
|
||||
*p = q->t_rule;
|
||||
}
|
||||
}
|
||||
if (!*p) *p = copyrule(&rule_table[n_rules],
|
||||
elmcnt+1);
|
||||
}
|
||||
;
|
||||
{
|
||||
|
||||
STATIC
|
||||
mkterm(prod,flags,lc,result) p_gram prod; register p_gram result; {
|
||||
/*
|
||||
* Create a term, initialise it and return
|
||||
* a grammar element containing it
|
||||
*/
|
||||
register p_term q;
|
||||
|
||||
if (! t_cnt) {
|
||||
t_cnt = 50;
|
||||
t_list = (p_term) alloc(50 * sizeof(t_term));
|
||||
}
|
||||
t_cnt--;
|
||||
q = t_list++;
|
||||
q->t_rule = prod;
|
||||
q->t_contains = 0;
|
||||
q->t_flags = flags;
|
||||
g_settype(result,TERM);
|
||||
g_setterm(result,q);
|
||||
result->g_lineno = lc;
|
||||
nterms++;
|
||||
}
|
||||
}
|
||||
|
||||
elem (register p_gram pres;)
|
||||
{ register int t = 0;
|
||||
p_gram p1;
|
||||
int ln;
|
||||
p_gram pe;
|
||||
#ifdef NON_CORRECTING
|
||||
int erroneous = 0;
|
||||
#endif
|
||||
} :
|
||||
'[' { ln = linecount; }
|
||||
[ C_WHILE C_EXPR { t |= RESOLVER; }
|
||||
]?
|
||||
[ C_PERSISTENT { t |= PERSISTENT; }
|
||||
]?
|
||||
productions(&p1)
|
||||
']' {
|
||||
mkterm(p1,t,ln,pres);
|
||||
}
|
||||
|
|
||||
[ C_ERRONEOUS {
|
||||
#ifdef NON_CORRECTING
|
||||
erroneous = 1;
|
||||
#endif
|
||||
}
|
||||
]?
|
||||
|
||||
[
|
||||
C_IDENT { pe = search(UNKNOWN,lextoken.t_string,BOTH);
|
||||
*pres = *pe;
|
||||
#ifdef NON_CORRECTING
|
||||
if (erroneous) {
|
||||
if (g_gettype(pres) != TERMINAL){
|
||||
warning(linecount,
|
||||
"Erroneous only allowed on terminal");
|
||||
erroneous = 0;
|
||||
}
|
||||
else
|
||||
pres->g_erroneous = 1;
|
||||
}
|
||||
#endif
|
||||
|
||||
}
|
||||
[ C_PARAMS { if (lextoken.t_num > 15) {
|
||||
error(linecount,"Too many parameters");
|
||||
} else g_setnpar(pres,lextoken.t_num);
|
||||
if (g_gettype(pres) == TERMINAL) {
|
||||
error(linecount,
|
||||
"Terminal with parameters");
|
||||
}
|
||||
}
|
||||
]?
|
||||
| C_LITERAL { pe = search(LITERAL,lextoken.t_string,BOTH);
|
||||
*pres = *pe;
|
||||
#ifdef NON_CORRECTING
|
||||
if (erroneous)
|
||||
pres->g_erroneous = 1;
|
||||
#endif
|
||||
}
|
||||
]
|
||||
| { g_settype(pres,ACTION);
|
||||
pres->g_lineno = linecount;
|
||||
#ifdef NON_CORRECTING
|
||||
g_setsubparse(pres, (p_start) 0);
|
||||
#endif
|
||||
}
|
||||
|
||||
[ C_SUBSTART
|
||||
|
||||
{
|
||||
#ifdef NON_CORRECTING
|
||||
nsubstarts++;
|
||||
#endif
|
||||
}
|
||||
|
||||
C_IDENT
|
||||
{
|
||||
#ifdef NON_CORRECTING
|
||||
register p_gram temp;
|
||||
register p_start subp;
|
||||
|
||||
temp = search(NONTERM,lextoken.t_string,BOTH);
|
||||
subp = (p_start) alloc (sizeof(t_start));
|
||||
|
||||
subp->ff_nont = g_getcont(temp);
|
||||
subp->ff_name = (string) 0;
|
||||
subp->ff_next = (p_start) 0;
|
||||
g_setsubparse(pres, subp);
|
||||
#endif
|
||||
}
|
||||
|
||||
[ ',' C_IDENT
|
||||
{
|
||||
#ifdef NON_CORRECTING
|
||||
register p_gram temp;
|
||||
register p_start ff;
|
||||
|
||||
temp = search(NONTERM,lextoken.t_string,BOTH);
|
||||
|
||||
ff = g_getsubparse(pres);
|
||||
while (ff) {
|
||||
if (ff->ff_nont == g_getcont(temp)) {
|
||||
warning(linecount, "\"%s\" used twice in %%substart", lextoken.t_string);
|
||||
break;
|
||||
}
|
||||
ff = ff->ff_next;
|
||||
|
||||
}
|
||||
|
||||
ff = (p_start) alloc(sizeof(t_start));
|
||||
ff->ff_nont = g_getcont(temp);
|
||||
ff->ff_name = (string) 0;
|
||||
ff->ff_next = g_getsubparse(pres);
|
||||
g_setsubparse(pres, ff);
|
||||
#endif
|
||||
}
|
||||
|
||||
]* ';'
|
||||
]?
|
||||
|
||||
C_ACTION
|
||||
;
|
||||
|
||||
repeats(int *kind; int *cnt;) { int t1 = 0; } :
|
||||
[
|
||||
'?' { *kind = OPT; }
|
||||
| [ '*' { *kind = STAR; }
|
||||
| '+' { *kind = PLUS; }
|
||||
]
|
||||
number(&t1)?
|
||||
{ if (t1 == 1) {
|
||||
t1 = 0;
|
||||
if (*kind == STAR) *kind = OPT;
|
||||
if (*kind == PLUS) *kind = FIXED;
|
||||
}
|
||||
}
|
||||
| number(&t1)
|
||||
] { *cnt = t1; }
|
||||
;
|
||||
|
||||
number(int *t;)
|
||||
: C_NUMBER
|
||||
{ *t = lextoken.t_num;
|
||||
if (*t <= 0 || *t >= 8192) {
|
||||
error(linecount,"Illegal number");
|
||||
}
|
||||
}
|
||||
;
|
||||
|
||||
firsts { register string p; }
|
||||
: C_FIRST C_IDENT
|
||||
{ p = store(lextoken.t_string); }
|
||||
',' C_IDENT ';'
|
||||
{ /*
|
||||
* Store this %first in the list belonging
|
||||
* to this input file
|
||||
*/
|
||||
p_gram temp;
|
||||
register p_first ff;
|
||||
|
||||
temp = search(NONTERM,lextoken.t_string,BOTH);
|
||||
ff = (p_first) alloc(sizeof(t_first));
|
||||
ff->ff_nont = g_getcont(temp);
|
||||
ff->ff_name = p;
|
||||
ff->ff_next = pfile->f_firsts;
|
||||
pfile->f_firsts = ff;
|
||||
}
|
||||
;
|
||||
{
|
||||
|
||||
STATIC p_gram
|
||||
copyrule(p,length) register p_gram p; {
|
||||
/*
|
||||
* Returns a pointer to a grammar rule that was created in
|
||||
* p. The space pointed to by p can now be reused
|
||||
*/
|
||||
register p_gram t;
|
||||
p_gram rule;
|
||||
|
||||
t = (p_gram) alloc((unsigned) length * sizeof(t_gram));
|
||||
rule = t;
|
||||
while (length--) {
|
||||
*t++ = *p++;
|
||||
}
|
||||
return rule;
|
||||
}
|
||||
}
|
||||
90
util/LLgen/src/alloc.c
Normal file
90
util/LLgen/src/alloc.c
Normal file
@@ -0,0 +1,90 @@
|
||||
/* Copyright (c) 1991 by the Vrije Universiteit, Amsterdam, the Netherlands.
|
||||
* For full copyright and restrictions on use see the file COPYING in the top
|
||||
* level of the LLgen tree.
|
||||
*/
|
||||
|
||||
/*
|
||||
* L L G E N
|
||||
*
|
||||
* An Extended LL(1) Parser Generator
|
||||
*
|
||||
* Author : Ceriel J.H. Jacobs
|
||||
*/
|
||||
|
||||
/*
|
||||
* alloc.c
|
||||
* Interface to malloc() and realloc()
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
# include "types.h"
|
||||
# include "extern.h"
|
||||
|
||||
# ifndef NORCSID
|
||||
static string rcsid = "$Id$";
|
||||
# endif
|
||||
|
||||
static string e_nomem = "Out of memory";
|
||||
|
||||
p_mem
|
||||
alloc(size) unsigned size; {
|
||||
/*
|
||||
Allocate "size" bytes. Panic if it fails
|
||||
*/
|
||||
p_mem p;
|
||||
|
||||
if ((p = malloc(size)) == 0) fatal(linecount,e_nomem);
|
||||
return p;
|
||||
}
|
||||
|
||||
p_mem
|
||||
ralloc(p,size) p_mem p; unsigned size; {
|
||||
/*
|
||||
Re-allocate the chunk of memory indicated by "p", to
|
||||
occupy "size" bytes
|
||||
*/
|
||||
if ((p = realloc(p,size)) == 0) fatal(linecount,e_nomem);
|
||||
return p;
|
||||
}
|
||||
|
||||
p_mem
|
||||
new_mem(p) register p_info p; {
|
||||
/*
|
||||
This routine implements arrays that can grow.
|
||||
It must be called every time a new element is added to it.
|
||||
Also, the array has associated with it a "info_alloc" structure,
|
||||
which contains info on the element size, total allocated size,
|
||||
a pointer to the array, a pointer to the first free element,
|
||||
and a pointer to the top.
|
||||
If the base of the array is remembered elsewhere, it should
|
||||
be updated each time this routine is called
|
||||
*/
|
||||
p_mem rp;
|
||||
unsigned sz;
|
||||
|
||||
if (p->i_max >= p->i_top) { /* No more free elements */
|
||||
sz = p->i_size;
|
||||
if (sizeof(char *) > 2) {
|
||||
/*
|
||||
Do not worry about size. Just double it.
|
||||
*/
|
||||
p->i_size += p->i_size;
|
||||
if (! p->i_size)
|
||||
p->i_size += p->i_incr * p->i_esize;
|
||||
}
|
||||
else {
|
||||
/*
|
||||
Worry about size, so only increment in chunks of i_incr.
|
||||
*/
|
||||
p->i_size += p->i_incr * p->i_esize;
|
||||
}
|
||||
p->i_ptr = !p->i_ptr ?
|
||||
alloc(p->i_size) :
|
||||
ralloc(p->i_ptr, p->i_size);
|
||||
p->i_max = p->i_ptr + sz;
|
||||
p->i_top = p->i_ptr + p->i_size;
|
||||
}
|
||||
rp = p->i_max;
|
||||
p->i_max += p->i_esize;
|
||||
return rp;
|
||||
}
|
||||
138
util/LLgen/src/cclass.c
Normal file
138
util/LLgen/src/cclass.c
Normal file
@@ -0,0 +1,138 @@
|
||||
/* Copyright (c) 1991 by the Vrije Universiteit, Amsterdam, the Netherlands.
|
||||
* For full copyright and restrictions on use see the file COPYING in the top
|
||||
* level of the LLgen tree.
|
||||
*/
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
#include "cclass.h"
|
||||
char c_class[] = {
|
||||
0, /* 00 */
|
||||
0, /* 01 */
|
||||
0, /* 02 */
|
||||
0, /* 03 */
|
||||
0, /* 04 */
|
||||
0, /* 05 */
|
||||
0, /* 06 */
|
||||
0, /* 07 */
|
||||
0, /* 010 */
|
||||
ISSPA, /* 011 */
|
||||
ISSPA, /* 012 */
|
||||
0, /* 013 */
|
||||
ISSPA, /* 014 */
|
||||
ISSPA, /* 015 */
|
||||
0, /* 016 */
|
||||
0, /* 017 */
|
||||
0, /* 020 */
|
||||
0, /* 021 */
|
||||
0, /* 022 */
|
||||
0, /* 023 */
|
||||
0, /* 024 */
|
||||
0, /* 025 */
|
||||
0, /* 026 */
|
||||
0, /* 027 */
|
||||
0, /* 030 */
|
||||
0, /* 031 */
|
||||
0, /* 032 */
|
||||
0, /* 033 */
|
||||
0, /* 034 */
|
||||
0, /* 035 */
|
||||
0, /* 036 */
|
||||
0, /* 037 */
|
||||
ISSPA, /* ' ' */
|
||||
0, /* '!' */
|
||||
0, /* '"' */
|
||||
0, /* '#' */
|
||||
0, /* '$' */
|
||||
ISKEY, /* '%' */
|
||||
0, /* '&' */
|
||||
ISLIT, /* ''' */
|
||||
ISACT, /* '(' */
|
||||
0, /* ')' */
|
||||
ISTOK, /* '*' */
|
||||
ISTOK, /* '+' */
|
||||
ISTOK, /* ',' */
|
||||
0, /* '-' */
|
||||
0, /* '.' */
|
||||
ISCOM, /* '/' */
|
||||
ISDIG, /* '0' */
|
||||
ISDIG, /* '1' */
|
||||
ISDIG, /* '2' */
|
||||
ISDIG, /* '3' */
|
||||
ISDIG, /* '4' */
|
||||
ISDIG, /* '5' */
|
||||
ISDIG, /* '6' */
|
||||
ISDIG, /* '7' */
|
||||
ISDIG, /* '8' */
|
||||
ISDIG, /* '9' */
|
||||
ISTOK, /* ':' */
|
||||
ISTOK, /* ';' */
|
||||
0, /* '<' */
|
||||
0, /* '=' */
|
||||
0, /* '>' */
|
||||
ISTOK, /* '?' */
|
||||
0, /* '@' */
|
||||
ISLET, /* 'A' */
|
||||
ISLET, /* 'B' */
|
||||
ISLET, /* 'C' */
|
||||
ISLET, /* 'D' */
|
||||
ISLET, /* 'E' */
|
||||
ISLET, /* 'F' */
|
||||
ISLET, /* 'G' */
|
||||
ISLET, /* 'H' */
|
||||
ISLET, /* 'I' */
|
||||
ISLET, /* 'J' */
|
||||
ISLET, /* 'K' */
|
||||
ISLET, /* 'L' */
|
||||
ISLET, /* 'M' */
|
||||
ISLET, /* 'N' */
|
||||
ISLET, /* 'O' */
|
||||
ISLET, /* 'P' */
|
||||
ISLET, /* 'Q' */
|
||||
ISLET, /* 'R' */
|
||||
ISLET, /* 'S' */
|
||||
ISLET, /* 'T' */
|
||||
ISLET, /* 'U' */
|
||||
ISLET, /* 'V' */
|
||||
ISLET, /* 'W' */
|
||||
ISLET, /* 'X' */
|
||||
ISLET, /* 'Y' */
|
||||
ISLET, /* 'Z' */
|
||||
ISTOK, /* '[' */
|
||||
0, /* '\' */
|
||||
ISTOK, /* ']' */
|
||||
0, /* '^' */
|
||||
ISLET, /* '_' */
|
||||
0, /* '`' */
|
||||
ISLET, /* 'a' */
|
||||
ISLET, /* 'b' */
|
||||
ISLET, /* 'c' */
|
||||
ISLET, /* 'd' */
|
||||
ISLET, /* 'e' */
|
||||
ISLET, /* 'f' */
|
||||
ISLET, /* 'g' */
|
||||
ISLET, /* 'h' */
|
||||
ISLET, /* 'i' */
|
||||
ISLET, /* 'j' */
|
||||
ISLET, /* 'k' */
|
||||
ISLET, /* 'l' */
|
||||
ISLET, /* 'm' */
|
||||
ISLET, /* 'n' */
|
||||
ISLET, /* 'o' */
|
||||
ISLET, /* 'p' */
|
||||
ISLET, /* 'q' */
|
||||
ISLET, /* 'r' */
|
||||
ISLET, /* 's' */
|
||||
ISLET, /* 't' */
|
||||
ISLET, /* 'u' */
|
||||
ISLET, /* 'v' */
|
||||
ISLET, /* 'w' */
|
||||
ISLET, /* 'x' */
|
||||
ISLET, /* 'y' */
|
||||
ISLET, /* 'z' */
|
||||
ISACT, /* '{' */
|
||||
ISTOK, /* '|' */
|
||||
0, /* '}' */
|
||||
0, /* '~' */
|
||||
0 /* 0177 */
|
||||
};
|
||||
17
util/LLgen/src/cclass.h
Normal file
17
util/LLgen/src/cclass.h
Normal file
@@ -0,0 +1,17 @@
|
||||
/* Copyright (c) 1991 by the Vrije Universiteit, Amsterdam, the Netherlands.
|
||||
* For full copyright and restrictions on use see the file COPYING in the top
|
||||
* level of the LLgen tree.
|
||||
*/
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
extern char c_class[];
|
||||
|
||||
#define ISLET 1
|
||||
#define ISDIG 2
|
||||
#define ISSPA 3
|
||||
#define ISKEY 4
|
||||
#define ISTOK 5
|
||||
#define ISCOM 6
|
||||
#define ISLIT 7
|
||||
#define ISACT 8
|
||||
474
util/LLgen/src/check.c
Normal file
474
util/LLgen/src/check.c
Normal file
@@ -0,0 +1,474 @@
|
||||
/* Copyright (c) 1991 by the Vrije Universiteit, Amsterdam, the Netherlands.
|
||||
* For full copyright and restrictions on use see the file COPYING in the top
|
||||
* level of the LLgen tree.
|
||||
*/
|
||||
|
||||
/*
|
||||
* L L G E N
|
||||
*
|
||||
* An Extended LL(1) Parser Generator
|
||||
*
|
||||
* Author : Ceriel J.H. Jacobs
|
||||
*/
|
||||
|
||||
/*
|
||||
* check.c
|
||||
* Several routines to perform checks and printouts
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
# include "types.h"
|
||||
# include "extern.h"
|
||||
# include "io.h"
|
||||
# include "sets.h"
|
||||
# include "assert.h"
|
||||
|
||||
# ifndef NORCSID
|
||||
static string rcsid1 = "$Id$";
|
||||
# endif
|
||||
|
||||
static string c_first = "> firstset ";
|
||||
static string c_contains = "> containset ";
|
||||
static string c_follow = "> followset ";
|
||||
p_set setalloc();
|
||||
static int level;
|
||||
|
||||
/* In this file are defined : */
|
||||
extern conflchecks();
|
||||
STATIC prline();
|
||||
STATIC printset();
|
||||
STATIC int check();
|
||||
STATIC moreverbose();
|
||||
STATIC prrule();
|
||||
STATIC cfcheck();
|
||||
STATIC resolve();
|
||||
STATIC propagate();
|
||||
STATIC spaces();
|
||||
|
||||
conflchecks() {
|
||||
/*
|
||||
* Check for conflicts, that is,
|
||||
* in a repeating term, the FIRST and FOLLOW must be disjunct,
|
||||
* unless there is a disambiguating condition.
|
||||
* in an alternation, the sets that determine the direction to take,
|
||||
* must be disjunct.
|
||||
*/
|
||||
register p_nont p;
|
||||
register int s;
|
||||
p_file x = files;
|
||||
|
||||
f_input = x->f_name;
|
||||
if (verbose >= 3) {
|
||||
for (p = nonterms; p < maxnt; p++) p->n_flags |= VERBOSE;
|
||||
}
|
||||
if (verbose) {
|
||||
if ((fout = fopen(f_out,"w")) == NULL) fatal(1,e_noopen,f_out);
|
||||
}
|
||||
/*
|
||||
* Check the rules in the order in which they are declared,
|
||||
* and input file by input file, to give proper error messages
|
||||
*/
|
||||
for (; x < maxfiles; x++) {
|
||||
f_input = x->f_name;
|
||||
for (s = x->f_nonterminals; s != -1; s = p->n_next) {
|
||||
p = &nonterms[s];
|
||||
if (check(p->n_rule)) p->n_flags |= VERBOSE;
|
||||
}
|
||||
}
|
||||
for (x = files; x < maxfiles; x++) {
|
||||
f_input = x->f_name;
|
||||
for (s = x->f_nonterminals; s != -1; s = p->n_next) {
|
||||
p = &nonterms[s];
|
||||
if (p->n_flags & RECURSIVE) {
|
||||
error(p->n_lineno,
|
||||
"Recursion in default for nonterminal %s",
|
||||
p->n_name);
|
||||
}
|
||||
/*
|
||||
* If a printout is needed for this rule in
|
||||
* LL.output, just do it
|
||||
*/
|
||||
if (verbose && (p->n_flags & VERBOSE)) {
|
||||
fprintf(fout,"\n%s :\n",p->n_name);
|
||||
printset(p->n_first,c_first);
|
||||
printset(p->n_contains,c_contains);
|
||||
printset(p->n_follow,c_follow);
|
||||
fprintf(fout,"> rule%s\n\t",
|
||||
p->n_flags&EMPTY ? "\t(EMPTY producing)" : "");
|
||||
level = 8;
|
||||
prrule(p->n_rule);
|
||||
level = 0;
|
||||
prline("\n");
|
||||
}
|
||||
/*
|
||||
* Now, the conflicts may be resolved
|
||||
*/
|
||||
resolve(p->n_rule);
|
||||
}
|
||||
}
|
||||
if (verbose) fclose(fout);
|
||||
}
|
||||
|
||||
STATIC
|
||||
prline(s) char *s; {
|
||||
fputs(s, fout);
|
||||
spaces();
|
||||
}
|
||||
|
||||
STATIC
|
||||
printset(p,s) register p_set p; string s; {
|
||||
/*
|
||||
* Print the elements of a set
|
||||
*/
|
||||
register int i;
|
||||
register int j;
|
||||
register p_token pt;
|
||||
string name;
|
||||
int k;
|
||||
int hulp;
|
||||
|
||||
k = strlen(s) + 2 + level;
|
||||
/*
|
||||
* k contains relative level of indentation
|
||||
*/
|
||||
fprintf(fout,"%s{ ",s);
|
||||
j = k;
|
||||
/*
|
||||
* j will gather the total length of the line
|
||||
*/
|
||||
for (i = 0, pt = tokens; i < ntokens; i++,pt++) {
|
||||
if (IN(p,i)) {
|
||||
hulp = strlen(pt->t_string)+1;
|
||||
if (pt->t_tokno < 0400) hulp += 2;
|
||||
if ((j += hulp) >= 78) {
|
||||
/*
|
||||
* Line becoming too long
|
||||
*/
|
||||
j = k+hulp;
|
||||
prline("\n");
|
||||
fprintf(fout,">%*c",k - level - 1,' ');
|
||||
}
|
||||
fprintf(fout, pt->t_tokno<0400 ? "'%s' " : "%s ",pt->t_string);
|
||||
}
|
||||
}
|
||||
if (ntprint) for (i = 0; i < nnonterms; i++) {
|
||||
/*
|
||||
* Nonterminals in the set must also be printed
|
||||
*/
|
||||
if (NTIN(p,i)) {
|
||||
name = nonterms[i].n_name;
|
||||
hulp = strlen(name) + 3;
|
||||
if ((j += hulp) >= 78) {
|
||||
j = k + hulp;
|
||||
prline("\n");
|
||||
fprintf(fout,">%*c",k - level - 1,' ');
|
||||
}
|
||||
fprintf(fout,"<%s> ",name);
|
||||
}
|
||||
}
|
||||
prline("}\n");
|
||||
}
|
||||
|
||||
STATIC int
|
||||
check(p) register p_gram p; {
|
||||
/*
|
||||
* Search for conflicts in a grammar rule.
|
||||
*/
|
||||
register p_set temp;
|
||||
register int retval;
|
||||
|
||||
retval = 0;
|
||||
for (;;) {
|
||||
switch (g_gettype(p)) {
|
||||
case EORULE :
|
||||
return retval;
|
||||
case NONTERM : {
|
||||
register p_nont n;
|
||||
|
||||
n = &nonterms[g_getcont(p)];
|
||||
if (g_getnpar(p) != getntparams(n)) {
|
||||
error(p->g_lineno,
|
||||
"Call of %s: parameter count mismatch",
|
||||
n->n_name);
|
||||
}
|
||||
break; }
|
||||
case TERM : {
|
||||
register p_term q;
|
||||
|
||||
q = g_getterm(p);
|
||||
retval |= check(q->t_rule);
|
||||
if (r_getkind(q) == FIXED) break;
|
||||
if (setempty(q->t_first)) {
|
||||
q->t_flags |= EMPTYFIRST;
|
||||
retval = 1;
|
||||
error(p->g_lineno, "No symbols in term");
|
||||
}
|
||||
if (empty(q->t_rule)) {
|
||||
q->t_flags |= EMPTYTERM;
|
||||
retval = 1;
|
||||
error(p->g_lineno, "Term with variable repetition count produces empty");
|
||||
}
|
||||
temp = setalloc();
|
||||
setunion(temp,q->t_first);
|
||||
if (!setintersect(temp,q->t_follow)) {
|
||||
/*
|
||||
* q->t_first * q->t_follow != EMPTY
|
||||
*/
|
||||
if (!(q->t_flags & RESOLVER)) {
|
||||
/*
|
||||
* No conflict resolver
|
||||
*/
|
||||
error(p->g_lineno,
|
||||
"Repetition conflict");
|
||||
retval = 1;
|
||||
moreverbose(temp);
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (q->t_flags & RESOLVER) {
|
||||
q->t_flags |= NOCONF;
|
||||
warning(p->g_lineno,
|
||||
"%%while without conflict");
|
||||
}
|
||||
}
|
||||
free((p_mem) temp);
|
||||
break; }
|
||||
case ALTERNATION : {
|
||||
register p_link l;
|
||||
|
||||
l = g_getlink(p);
|
||||
temp = setalloc();
|
||||
setunion(temp,l->l_symbs);
|
||||
if(!setintersect(temp,l->l_others)) {
|
||||
/*
|
||||
* temp now contains the conflicting
|
||||
* symbols
|
||||
*/
|
||||
if (!(l->l_flag & (COND|PREFERING|AVOIDING))) {
|
||||
error(p->g_lineno,
|
||||
"Alternation conflict");
|
||||
retval = 1;
|
||||
moreverbose(temp);
|
||||
}
|
||||
} else {
|
||||
if (l->l_flag & (COND|PREFERING|AVOIDING)) {
|
||||
l->l_flag |= NOCONF;
|
||||
warning(p->g_lineno,
|
||||
"Conflict resolver without conflict");
|
||||
}
|
||||
}
|
||||
free( (p_mem) temp);
|
||||
if (l->l_flag & PREFERING) propagate(l->l_symbs,p+1);
|
||||
retval |= check(l->l_rule);
|
||||
break; }
|
||||
}
|
||||
p++;
|
||||
}
|
||||
}
|
||||
|
||||
STATIC
|
||||
moreverbose(t) register p_set t; {
|
||||
/*
|
||||
* t points to a set containing conflicting symbols and pssibly
|
||||
* also containing nonterminals.
|
||||
* Take care that a printout will be prepared for these nonterminals
|
||||
*/
|
||||
register int i;
|
||||
register p_nont p;
|
||||
|
||||
if (verbose == 2) for (i = 0, p = nonterms; i < nnonterms; i++, p++) {
|
||||
if (NTIN(t,i)) p->n_flags |= VERBOSE;
|
||||
}
|
||||
}
|
||||
|
||||
STATIC
|
||||
prrule(p) register p_gram p; {
|
||||
/*
|
||||
* Create a verbose printout of grammar rule p
|
||||
*/
|
||||
register FILE *f;
|
||||
int present = 0;
|
||||
int firstalt = 1;
|
||||
|
||||
f = fout;
|
||||
for (;;) {
|
||||
switch (g_gettype(p)) {
|
||||
case EORULE :
|
||||
fputs("\n",f);
|
||||
return;
|
||||
case TERM : {
|
||||
register p_term q;
|
||||
register int c;
|
||||
|
||||
q = g_getterm(p);
|
||||
if (present) prline("\n");
|
||||
fputs("[ ",f);
|
||||
level += 4;
|
||||
if (q->t_flags & RESOLVER) {
|
||||
prline("%while (..)\n");
|
||||
}
|
||||
if (q->t_flags & PERSISTENT) {
|
||||
prline("%persistent\n");
|
||||
}
|
||||
if (r_getkind(q) != FIXED) {
|
||||
if (!(q->t_flags & PERSISTENT)) {
|
||||
prline("> continue repetition on the\n");
|
||||
}
|
||||
printset(q->t_first, c_first);
|
||||
if (q->t_flags & PERSISTENT) {
|
||||
prline("> continue repetition on the\n");
|
||||
}
|
||||
printset(q->t_contains, c_contains);
|
||||
prline("> terminate repetition on the\n");
|
||||
printset(q->t_follow,c_follow);
|
||||
if (q->t_flags & EMPTYFIRST) {
|
||||
prline(">>> empty first\n");
|
||||
}
|
||||
if (q->t_flags & EMPTYTERM) {
|
||||
prline(">>> term produces empty\n");
|
||||
}
|
||||
cfcheck(q->t_first,q->t_follow,
|
||||
q->t_flags & RESOLVER);
|
||||
}
|
||||
prrule(q->t_rule);
|
||||
level -= 4;
|
||||
spaces();
|
||||
c = r_getkind(q);
|
||||
fputs(c == STAR ? "]*" : c == PLUS ? "]+" :
|
||||
c == OPT ? "]?" : "]", f);
|
||||
if (c = r_getnum(q)) {
|
||||
fprintf(f,"%d",c);
|
||||
}
|
||||
prline("\n");
|
||||
break; }
|
||||
case ACTION :
|
||||
fputs("{..} ",f);
|
||||
break;
|
||||
case ALTERNATION : {
|
||||
register p_link l;
|
||||
|
||||
l = g_getlink(p);
|
||||
if (firstalt) {
|
||||
firstalt = 0;
|
||||
}
|
||||
else prline("|\n");
|
||||
printset(l->l_symbs,"> alternative on ");
|
||||
cfcheck(l->l_symbs,
|
||||
l->l_others,
|
||||
(int)(l->l_flag&(COND|PREFERING|AVOIDING)));
|
||||
fputs(" ",f);
|
||||
level += 4;
|
||||
if (l->l_flag & DEF) {
|
||||
prline("%default\n");
|
||||
}
|
||||
if (l->l_flag & AVOIDING) {
|
||||
prline("%avoid\n");
|
||||
}
|
||||
if (l->l_flag & PREFERING) {
|
||||
prline("%prefer\n");
|
||||
}
|
||||
if (l->l_flag & COND) {
|
||||
prline("%if ( ... )\n");
|
||||
}
|
||||
prrule(l->l_rule);
|
||||
level -= 4;
|
||||
if (g_gettype(p+1) == EORULE) {
|
||||
return;
|
||||
}
|
||||
spaces();
|
||||
p++; continue; }
|
||||
case LITERAL :
|
||||
case TERMINAL : {
|
||||
register p_token pt = &tokens[g_getcont(p)];
|
||||
|
||||
fprintf(f,pt->t_tokno<0400 ?
|
||||
"'%s' " : "%s ", pt->t_string);
|
||||
break; }
|
||||
case NONTERM :
|
||||
fprintf(f,"%s ",nonterms[g_getcont(p)].n_name);
|
||||
break;
|
||||
}
|
||||
p++;
|
||||
present = 1;
|
||||
}
|
||||
}
|
||||
|
||||
STATIC
|
||||
cfcheck(s1,s2,flag) p_set s1,s2; {
|
||||
/*
|
||||
* Check if s1 and s2 have elements in common.
|
||||
* If so, flag must be non-zero, indicating that there is a
|
||||
* conflict resolver, otherwise, flag must be zero, indicating
|
||||
* that there is not.
|
||||
*/
|
||||
register p_set temp;
|
||||
|
||||
temp = setalloc();
|
||||
setunion(temp,s1);
|
||||
if (!setintersect(temp,s2)) {
|
||||
if (! flag) {
|
||||
printset(temp,">>> conflict on ");
|
||||
prline("\n");
|
||||
}
|
||||
} else {
|
||||
if (flag) {
|
||||
prline(">>> %if/%while, no conflict\n");
|
||||
}
|
||||
}
|
||||
free((p_mem) temp);
|
||||
}
|
||||
|
||||
STATIC
|
||||
resolve(p) register p_gram p; {
|
||||
/*
|
||||
* resolve conflicts, as specified by the user
|
||||
*/
|
||||
for (;;) {
|
||||
switch (g_gettype(p)) {
|
||||
case EORULE :
|
||||
return;
|
||||
case TERM :
|
||||
resolve(g_getterm(p)->t_rule);
|
||||
break;
|
||||
case ALTERNATION : {
|
||||
register p_link l;
|
||||
|
||||
l = g_getlink(p);
|
||||
if (l->l_flag & AVOIDING) {
|
||||
/*
|
||||
* On conflicting symbols, this rule
|
||||
* is never chosen
|
||||
*/
|
||||
setminus(l->l_symbs,l->l_others);
|
||||
}
|
||||
if (setempty(l->l_symbs)) {
|
||||
/*
|
||||
* This may be caused by the statement above
|
||||
*/
|
||||
error(p->g_lineno,"Alternative never chosen");
|
||||
}
|
||||
resolve(l->l_rule);
|
||||
break; }
|
||||
}
|
||||
p++;
|
||||
}
|
||||
}
|
||||
|
||||
STATIC
|
||||
propagate(set,p) p_set set; register p_gram p; {
|
||||
/*
|
||||
* Propagate the fact that on the elements of set the grammar rule
|
||||
* p will not be chosen.
|
||||
*/
|
||||
while (g_gettype(p) != EORULE) {
|
||||
setminus(g_getlink(p)->l_symbs,set);
|
||||
p++;
|
||||
}
|
||||
}
|
||||
|
||||
STATIC
|
||||
spaces() {
|
||||
|
||||
if (level > 0) fprintf(fout,"%*c",level,' ');
|
||||
}
|
||||
1159
util/LLgen/src/compute.c
Normal file
1159
util/LLgen/src/compute.c
Normal file
File diff suppressed because it is too large
Load Diff
94
util/LLgen/src/extern.h
Normal file
94
util/LLgen/src/extern.h
Normal file
@@ -0,0 +1,94 @@
|
||||
/* Copyright (c) 1991 by the Vrije Universiteit, Amsterdam, the Netherlands.
|
||||
* For full copyright and restrictions on use see the file COPYING in the top
|
||||
* level of the LLgen tree.
|
||||
*/
|
||||
|
||||
/*
|
||||
* L L G E N
|
||||
*
|
||||
* An Extended LL(1) Parser Generator
|
||||
*
|
||||
* Author : Ceriel J.H. Jacobs
|
||||
*/
|
||||
|
||||
/*
|
||||
* $Id$
|
||||
* Miscellanious constants and
|
||||
* some variables that are visible in more than one file
|
||||
*/
|
||||
|
||||
# define LTEXTSZ 256 /* Size of longest token */
|
||||
|
||||
/*
|
||||
* options for the identifier search routine
|
||||
*/
|
||||
|
||||
# define ENTERING 1
|
||||
# define BOTH 2
|
||||
|
||||
/*
|
||||
* Now for some declarations
|
||||
*/
|
||||
|
||||
extern char ltext[]; /* input buffer */
|
||||
extern int nnonterms; /* number of nonterminals */
|
||||
extern int ntokens; /* number of terminals */
|
||||
extern int nterms; /* number of terms */
|
||||
extern int nalts; /* number of alternatives */
|
||||
extern p_start start; /* will contain startsymbols */
|
||||
#ifdef NON_CORRECTING
|
||||
extern int nsubstarts; /* number of subparserstarts */
|
||||
extern p_set start_firsts; /* Will contain the union of first sets of
|
||||
startsymbols when -n -s option is on */
|
||||
#endif
|
||||
extern int linecount; /* line number */
|
||||
extern int assval; /* to create difference between literals
|
||||
* and other terminals
|
||||
*/
|
||||
extern p_nont nonterms; /* the nonterminal array */
|
||||
extern p_nont maxnt; /* is filled up until here */
|
||||
extern p_token tokens; /* the token array */
|
||||
extern p_token maxt; /* is filled up until here */
|
||||
extern int norder, torder;
|
||||
/* order of nonterminals in the grammar,
|
||||
* important because actions are copied to
|
||||
* a temporary file in the order in which they
|
||||
* were read
|
||||
*/
|
||||
extern string e_noopen; /* Error message string used often */
|
||||
extern int verbose; /* Level of verbosity */
|
||||
extern int wflag; /* warnings? */
|
||||
extern string lexical; /* name of lexical analyser */
|
||||
extern string prefix; /* prefix of externals */
|
||||
extern string onerror; /* name of user error handler */
|
||||
extern int ntneeded; /* ntneeded = 1 if nonterminals are included
|
||||
* in the sets.
|
||||
*/
|
||||
extern int ntprint; /* ntprint = 1 if they must be printed too in
|
||||
* the LL.output file (-x option)
|
||||
*/
|
||||
# ifndef NDEBUG
|
||||
extern int debug;
|
||||
# endif /* not NDEBUG */
|
||||
extern p_file files,pfile; /* pointers to file structure.
|
||||
* "files" points to the start of the
|
||||
* list */
|
||||
extern p_file maxfiles;
|
||||
extern string LLgenid; /* LLgen identification string */
|
||||
extern t_token lextoken; /* the current token */
|
||||
extern int nerrors;
|
||||
extern string rec_file, incl_file;
|
||||
#ifdef NON_CORRECTING
|
||||
extern string nc_rec_file, nc_incl_file;
|
||||
#endif
|
||||
extern int low_percentage, high_percentage;
|
||||
extern int min_cases_for_jmptable;
|
||||
extern int jmptable_option;
|
||||
extern int ansi_c;
|
||||
#ifdef NON_CORRECTING
|
||||
extern int non_corr;
|
||||
extern int subpars_sim;
|
||||
extern p_gram illegal_gram;
|
||||
#endif
|
||||
extern int strip_grammar;
|
||||
extern int in_production;
|
||||
1360
util/LLgen/src/gencode.c
Normal file
1360
util/LLgen/src/gencode.c
Normal file
File diff suppressed because it is too large
Load Diff
89
util/LLgen/src/global.c
Normal file
89
util/LLgen/src/global.c
Normal file
@@ -0,0 +1,89 @@
|
||||
/* Copyright (c) 1991 by the Vrije Universiteit, Amsterdam, the Netherlands.
|
||||
* For full copyright and restrictions on use see the file COPYING in the top
|
||||
* level of the LLgen tree.
|
||||
*/
|
||||
|
||||
/*
|
||||
* L L G E N
|
||||
*
|
||||
* An Extended LL(1) Parser Generator
|
||||
*
|
||||
* Author : Ceriel J.H. Jacobs
|
||||
*/
|
||||
|
||||
/*
|
||||
* global.c
|
||||
* Contains declarations visible in several other source files
|
||||
*/
|
||||
|
||||
# include "types.h"
|
||||
# include "extern.h"
|
||||
# include "io.h"
|
||||
|
||||
# ifndef NORCSID
|
||||
static string rcsid4 = "$Id$";
|
||||
# endif
|
||||
|
||||
char ltext[LTEXTSZ];
|
||||
p_nont nonterms;
|
||||
p_nont maxnt;
|
||||
int nnonterms;
|
||||
p_token tokens;
|
||||
p_token maxt;
|
||||
int ntokens;
|
||||
int nterms, nalts;
|
||||
int norder, torder;
|
||||
#ifdef NON_CORRECTING
|
||||
int nsubstarts;
|
||||
p_set start_firsts;
|
||||
#endif
|
||||
p_start start;
|
||||
int linecount;
|
||||
int assval;
|
||||
FILE *fout;
|
||||
FILE *fpars;
|
||||
FILE *finput;
|
||||
FILE *fact;
|
||||
char f_pars[] = PARSERFILE;
|
||||
char f_temp[] = ACTFILE;
|
||||
#ifdef NON_CORRECTING
|
||||
char f_nc[20];
|
||||
#endif
|
||||
char f_out[20];
|
||||
string f_input;
|
||||
char f_include[20];
|
||||
char f_rec[20];
|
||||
string e_noopen = "Cannot open %s";
|
||||
int verbose;
|
||||
int wflag;
|
||||
string lexical;
|
||||
string prefix;
|
||||
string onerror;
|
||||
int ntneeded;
|
||||
int ntprint;
|
||||
# ifndef NDEBUG
|
||||
int debug;
|
||||
#endif /* not NDEBUG */
|
||||
p_file files;
|
||||
p_file maxfiles;
|
||||
p_file pfile;
|
||||
string LLgenid = "/* LLgen generated code from source %s */\n";
|
||||
t_token lextoken;
|
||||
int nerrors;
|
||||
string rec_file, incl_file;
|
||||
#ifdef NON_CORRECTING
|
||||
string nc_rec_file, nc_incl_file;
|
||||
#endif
|
||||
int low_percentage = 10, high_percentage = 30;
|
||||
int min_cases_for_jmptable = 8;
|
||||
int jmptable_option;
|
||||
int ansi_c = 0;
|
||||
#ifdef NON_CORRECTING
|
||||
int non_corr = 0;
|
||||
int subpars_sim = 0;
|
||||
p_gram illegal_gram;
|
||||
#endif
|
||||
int strip_grammar = 0;
|
||||
int in_production; /* set when the parser is reading a production
|
||||
rule.
|
||||
*/
|
||||
43
util/LLgen/src/io.h
Normal file
43
util/LLgen/src/io.h
Normal file
@@ -0,0 +1,43 @@
|
||||
/* Copyright (c) 1991 by the Vrije Universiteit, Amsterdam, the Netherlands.
|
||||
* For full copyright and restrictions on use see the file COPYING in the top
|
||||
* level of the LLgen tree.
|
||||
*/
|
||||
|
||||
/*
|
||||
* L L G E N
|
||||
*
|
||||
* An Extended LL(1) Parser Generator
|
||||
*
|
||||
* Author : Ceriel J.H. Jacobs
|
||||
*/
|
||||
|
||||
/*
|
||||
* $Id$
|
||||
* Some important file names and variables
|
||||
*/
|
||||
|
||||
# include <stdio.h>
|
||||
|
||||
/* FILES */
|
||||
|
||||
# define OUTFILE "%s.output" /* -v option */
|
||||
# define PARSERFILE "xxxXXXXXX" /* This is what we want */
|
||||
# define ACTFILE "tempXXXXXX" /* temporary file to save actions */
|
||||
# define HFILE "%spars.h" /* file for "#define's " */
|
||||
# define RFILE "%spars.c" /* Error recovery */
|
||||
#ifdef NON_CORRECTING
|
||||
# define NCFILE "%sncor.c" /* Non-corrcting error recovery */
|
||||
#endif
|
||||
extern FILE *finput;
|
||||
extern FILE *fpars;
|
||||
extern FILE *fact;
|
||||
extern FILE *fout;
|
||||
extern char f_pars[];
|
||||
extern char f_temp[];
|
||||
extern char f_out[];
|
||||
extern string f_input;
|
||||
extern char f_include[];
|
||||
extern char f_rec[];
|
||||
#ifdef NON_CORRECTING
|
||||
extern char f_nc[];
|
||||
#endif
|
||||
72
util/LLgen/src/machdep.c
Normal file
72
util/LLgen/src/machdep.c
Normal file
@@ -0,0 +1,72 @@
|
||||
/* Copyright (c) 1991 by the Vrije Universiteit, Amsterdam, the Netherlands.
|
||||
* For full copyright and restrictions on use see the file COPYING in the top
|
||||
* level of the LLgen tree.
|
||||
*/
|
||||
|
||||
/*
|
||||
* L L G E N
|
||||
*
|
||||
* An Extended LL(1) Parser Generator
|
||||
*
|
||||
* Author : Ceriel J.H. Jacobs
|
||||
*/
|
||||
|
||||
/*
|
||||
* machdep.c
|
||||
* Machine dependant things
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
# include "types.h"
|
||||
|
||||
# ifndef NORCSID
|
||||
static string rcsid5 = "$Id$";
|
||||
# endif
|
||||
|
||||
/* In this file the following routines are defined: */
|
||||
extern UNLINK();
|
||||
extern RENAME();
|
||||
extern string libpath();
|
||||
|
||||
UNLINK(x) string x; {
|
||||
/* Must remove the file "x" */
|
||||
|
||||
#ifdef USE_SYS
|
||||
sys_remove(x); /* systemcall to remove file */
|
||||
#else
|
||||
unlink(x);
|
||||
#endif
|
||||
}
|
||||
|
||||
RENAME(x,y) string x,y; {
|
||||
/* Must move the file "x" to the file "y" */
|
||||
|
||||
#ifdef USE_SYS
|
||||
if(! sys_rename(x,y)) fatal(1,"Cannot rename to %s",y);
|
||||
#else
|
||||
unlink(y);
|
||||
if (link(x,y) != 0) fatal(1,"Cannot rename to %s",y);
|
||||
unlink(x);
|
||||
#endif
|
||||
}
|
||||
|
||||
string
|
||||
libpath(s) string s; {
|
||||
/* Must deliver a full pathname to the library file "s" */
|
||||
|
||||
register string p;
|
||||
register length;
|
||||
p_mem alloc();
|
||||
string strcpy(), strcat();
|
||||
|
||||
char* libdir = getenv("LLGEN_LIB_DIR");
|
||||
if (!libdir)
|
||||
libdir = LIBDIR;
|
||||
length = strlen(libdir) + strlen(s) + 2;
|
||||
p = (string) alloc((unsigned) length);
|
||||
strcpy(p,libdir);
|
||||
strcat(p,"/");
|
||||
strcat(p,s);
|
||||
return p;
|
||||
}
|
||||
378
util/LLgen/src/main.c
Normal file
378
util/LLgen/src/main.c
Normal file
@@ -0,0 +1,378 @@
|
||||
/* Copyright (c) 1991 by the Vrije Universiteit, Amsterdam, the Netherlands.
|
||||
* For full copyright and restrictions on use see the file COPYING in the top
|
||||
* level of the LLgen tree.
|
||||
*/
|
||||
|
||||
/*
|
||||
* L L G E N
|
||||
*
|
||||
* An Extended LL(1) Parser Generator
|
||||
*
|
||||
* Author : Ceriel J.H. Jacobs
|
||||
*/
|
||||
|
||||
/*
|
||||
* main.c
|
||||
* Contains main program, and some error message routines
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
# include "types.h"
|
||||
# include "io.h"
|
||||
# include "extern.h"
|
||||
# include "sets.h"
|
||||
# include "assert.h"
|
||||
|
||||
# ifndef NORCSID
|
||||
static string rcsid6 = "$Id$";
|
||||
# endif
|
||||
|
||||
/* In this file the following routines are defined: */
|
||||
extern int main();
|
||||
STATIC readgrammar();
|
||||
STATIC doparse();
|
||||
extern error();
|
||||
extern fatal();
|
||||
extern comfatal();
|
||||
extern copyfile();
|
||||
extern install();
|
||||
extern char *mktemp();
|
||||
extern char *sbrk();
|
||||
|
||||
main(argc,argv) register string argv[]; {
|
||||
register string arg;
|
||||
string libpath();
|
||||
char *beg_sbrk = 0;
|
||||
|
||||
/* Initialize */
|
||||
|
||||
assval = 0400;
|
||||
/* read options */
|
||||
|
||||
while (argc >= 2 && (arg = argv[1], *arg == '-')) {
|
||||
while (*++arg) {
|
||||
switch(*arg) {
|
||||
case 'j':
|
||||
case 'J':
|
||||
jmptable_option = 1;
|
||||
if (*++arg)
|
||||
min_cases_for_jmptable = atoi(arg);
|
||||
break;
|
||||
case 'w':
|
||||
case 'W':
|
||||
wflag = 1;
|
||||
continue;
|
||||
case 'v':
|
||||
case 'V':
|
||||
verbose++;
|
||||
continue;
|
||||
case 'l':
|
||||
case 'L':
|
||||
low_percentage = atoi(++arg);
|
||||
break;
|
||||
case 'h':
|
||||
case 'H':
|
||||
high_percentage = atoi(++arg);
|
||||
break;
|
||||
# ifndef NDEBUG
|
||||
case 'd':
|
||||
case 'D':
|
||||
debug++;
|
||||
continue;
|
||||
case 'r':
|
||||
case 'R':
|
||||
if (rec_file) {
|
||||
fprintf(stderr,"duplicate -r flag\n");
|
||||
exit(1);
|
||||
}
|
||||
rec_file = ++arg;
|
||||
break;
|
||||
case 'i':
|
||||
case 'I':
|
||||
if (incl_file) {
|
||||
fprintf(stderr,"duplicate -i flag\n");
|
||||
exit(1);
|
||||
}
|
||||
incl_file = ++arg;
|
||||
break;
|
||||
#endif /* not NDEBUG */
|
||||
case 'x':
|
||||
case 'X':
|
||||
ntneeded = 1;
|
||||
ntprint = 1;
|
||||
continue;
|
||||
case 'a':
|
||||
case 'A':
|
||||
ansi_c = 1;
|
||||
continue;
|
||||
#ifdef NON_CORRECTING
|
||||
case 'n':
|
||||
case 'N':
|
||||
non_corr = 1;
|
||||
continue;
|
||||
case 's':
|
||||
case 'S':
|
||||
subpars_sim = 1;
|
||||
continue;
|
||||
#endif
|
||||
case 'g':
|
||||
case 'G':
|
||||
strip_grammar = 1;
|
||||
continue;
|
||||
default:
|
||||
fprintf(stderr,"illegal option : %c\n",*arg);
|
||||
exit(1);
|
||||
}
|
||||
break;
|
||||
}
|
||||
argv++;
|
||||
argc--;
|
||||
}
|
||||
|
||||
if (verbose) beg_sbrk = sbrk(0);
|
||||
|
||||
#ifdef NON_CORRECTING
|
||||
if ((subpars_sim) && (!non_corr)) {
|
||||
fprintf(stderr,"option -s illegal without -n, turned off\n");
|
||||
subpars_sim = 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Now check wether the sets should include nonterminals
|
||||
*/
|
||||
if (verbose == 2) ntneeded = 1;
|
||||
/*
|
||||
* Initialise
|
||||
*/
|
||||
# ifndef NDEBUG
|
||||
if (!rec_file) {
|
||||
# endif
|
||||
rec_file = libpath("rec");
|
||||
# ifndef NDEBUG
|
||||
}
|
||||
if (!incl_file) {
|
||||
# endif
|
||||
incl_file = libpath("incl");
|
||||
# ifndef NDEBUG
|
||||
}
|
||||
# endif
|
||||
#ifdef NON_CORRECTING
|
||||
if (non_corr) {
|
||||
nc_incl_file = libpath("nc_incl");
|
||||
nc_rec_file = libpath ("nc_rec");
|
||||
}
|
||||
#endif
|
||||
mktemp(f_temp);
|
||||
mktemp(f_pars);
|
||||
if ((fact = fopen(f_temp,"w")) == NULL) {
|
||||
fputs("Cannot create temporary\n",stderr);
|
||||
exit(1);
|
||||
}
|
||||
name_init();
|
||||
readgrammar(argc,argv);
|
||||
sprintf(f_out, OUTFILE, prefix ? prefix : "LL");
|
||||
|
||||
/* for the following two filenames only one L is used; historical
|
||||
reasons ...
|
||||
*/
|
||||
sprintf(f_include, HFILE, prefix ? prefix : "L");
|
||||
sprintf(f_rec, RFILE, prefix ? prefix : "L");
|
||||
#ifdef NON_CORRECTING
|
||||
if (non_corr)
|
||||
sprintf(f_nc, NCFILE, prefix ? prefix : "L");
|
||||
#endif
|
||||
setinit(ntneeded);
|
||||
maxnt = &nonterms[nnonterms];
|
||||
maxt = &tokens[ntokens];
|
||||
/*
|
||||
* Now, the grammar is read. Do some computations
|
||||
*/
|
||||
co_reach(); /* Check for undefined and unreachable */
|
||||
if (nerrors) comfatal();
|
||||
do_compute();
|
||||
conflchecks();
|
||||
if (nerrors) comfatal();
|
||||
fclose(fact);
|
||||
if (argc-- == 1) {
|
||||
fputs("No code generation for input from standard input\n",
|
||||
stderr);
|
||||
}
|
||||
else gencode(argc);
|
||||
UNLINK(f_temp);
|
||||
UNLINK(f_pars);
|
||||
if (verbose) {
|
||||
fprintf(stderr, "number of nonterminals: %d\n", nnonterms);
|
||||
fprintf(stderr, "number of tokens: %d\n", ntokens);
|
||||
fprintf(stderr, "number of term structures: %d\n", nterms);
|
||||
fprintf(stderr, "number of alternation structures: %d\n", nalts);
|
||||
fprintf(stderr, "total memory used: %ld\n", (long)(sbrk(0) - beg_sbrk));
|
||||
}
|
||||
exit(0);
|
||||
}
|
||||
|
||||
STATIC
|
||||
readgrammar(argc,argv) char *argv[]; {
|
||||
/*
|
||||
* Do just what the name suggests : read the grammar
|
||||
*/
|
||||
register p_file p;
|
||||
p_mem alloc();
|
||||
|
||||
linecount = 0;
|
||||
f_input = "no filename";
|
||||
/*
|
||||
* Build the file structure
|
||||
*/
|
||||
files = p = (p_file) alloc((unsigned) (argc+1) * sizeof(t_file));
|
||||
if (argc-- == 1) {
|
||||
finput = stdin;
|
||||
f_input = "standard input";
|
||||
doparse(p++);
|
||||
} else {
|
||||
while (argc--) {
|
||||
if ((finput = fopen(f_input=argv[1],"r")) == NULL) {
|
||||
fatal(0,e_noopen,f_input);
|
||||
}
|
||||
doparse(p++);
|
||||
argv++;
|
||||
fclose(finput);
|
||||
}
|
||||
}
|
||||
maxfiles = p;
|
||||
if (! lexical) lexical = "yylex";
|
||||
/*
|
||||
* There must be a start symbol!
|
||||
*/
|
||||
if (! nerrors && start == 0) {
|
||||
fatal(linecount,"Missing %%start");
|
||||
}
|
||||
if (nerrors) comfatal();
|
||||
}
|
||||
|
||||
STATIC
|
||||
doparse(p) register p_file p; {
|
||||
|
||||
linecount = 0;
|
||||
p->f_name = f_input;
|
||||
p->f_firsts = 0;
|
||||
pfile = p;
|
||||
torder = -1;
|
||||
norder = -1;
|
||||
LLparse();
|
||||
p->f_nonterminals = norder;
|
||||
p->f_terminals = torder;
|
||||
}
|
||||
|
||||
/* VARARGS1 */
|
||||
error(lineno,s,t,u) string s,t,u; {
|
||||
/*
|
||||
* Just an error message
|
||||
*/
|
||||
|
||||
++nerrors;
|
||||
if (!lineno) lineno = 1;
|
||||
fprintf(stderr,"\"%s\", line %d: ",f_input, lineno);
|
||||
fprintf(stderr,s,t,u);
|
||||
fputs("\n",stderr);
|
||||
}
|
||||
|
||||
/* VARARGS1 */
|
||||
warning(lineno,s,t,u) string s,t,u; {
|
||||
/*
|
||||
* Just a warning
|
||||
*/
|
||||
|
||||
if (wflag) return;
|
||||
if (!lineno) lineno = 1;
|
||||
fprintf(stderr,"\"%s\", line %d: (Warning) ",f_input, lineno);
|
||||
fprintf(stderr,s,t,u);
|
||||
fputs("\n",stderr);
|
||||
}
|
||||
|
||||
/* VARARGS1 */
|
||||
fatal(lineno,s,t,u) string s,t,u; {
|
||||
/*
|
||||
* Fatal error
|
||||
*/
|
||||
error(lineno,s,t,u);
|
||||
comfatal();
|
||||
}
|
||||
|
||||
comfatal() {
|
||||
/*
|
||||
* Some common code for exit on errors
|
||||
*/
|
||||
if (fact != NULL) {
|
||||
fclose(fact);
|
||||
UNLINK(f_temp);
|
||||
}
|
||||
if (fpars != NULL) fclose(fpars);
|
||||
UNLINK(f_pars);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
copyfile(file) string file; {
|
||||
/*
|
||||
* Copies a file indicated by the parameter to filedescriptor fpars.
|
||||
*/
|
||||
register int c;
|
||||
register FILE *f;
|
||||
|
||||
if ((f = fopen(file,"r")) == NULL) {
|
||||
fatal(0,"Cannot open library file %s, call an expert",file);
|
||||
}
|
||||
while ((c = getc(f)) != EOF) putc(c,fpars);
|
||||
fclose(f);
|
||||
}
|
||||
|
||||
install(target, source) string target, source; {
|
||||
/*
|
||||
* Copy the temporary file generated from source to target
|
||||
* if allowed (which means that the target must be generated
|
||||
* by LLgen from the source, or that the target is not present
|
||||
*/
|
||||
register int c1, c2;
|
||||
register FILE *f1, *f2;
|
||||
int cnt;
|
||||
|
||||
/*
|
||||
* First open temporary, generated for source
|
||||
*/
|
||||
if ((f1 = fopen(f_pars,"r")) == NULL) {
|
||||
fatal(0,e_noopen,f_pars);
|
||||
}
|
||||
/*
|
||||
* Now open target for reading
|
||||
*/
|
||||
if ((f2 = fopen(target,"r")) == NULL) {
|
||||
fclose(f1);
|
||||
RENAME(f_pars, target);
|
||||
return;
|
||||
}
|
||||
/*
|
||||
* Compute length of LLgen identification string. The target must
|
||||
* start with that!
|
||||
*/
|
||||
cnt = strlen(LLgenid) + strlen(source) - 2;
|
||||
/*
|
||||
* Now compare the target with the temporary
|
||||
*/
|
||||
do {
|
||||
c1 = getc(f1);
|
||||
c2 = getc(f2);
|
||||
if (cnt >= 0) cnt--;
|
||||
} while (c1 == c2 && c1 != EOF);
|
||||
fclose(f1);
|
||||
fclose(f2);
|
||||
/*
|
||||
* Here, if c1 != c2 the target must be recreated
|
||||
*/
|
||||
if (c1 != c2) {
|
||||
if (cnt >= 0) {
|
||||
fatal(0,"%s : not a file generated by LLgen",target);
|
||||
}
|
||||
RENAME(f_pars,target);
|
||||
}
|
||||
}
|
||||
251
util/LLgen/src/name.c
Normal file
251
util/LLgen/src/name.c
Normal file
@@ -0,0 +1,251 @@
|
||||
/* Copyright (c) 1991 by the Vrije Universiteit, Amsterdam, the Netherlands.
|
||||
* For full copyright and restrictions on use see the file COPYING in the top
|
||||
* level of the LLgen tree.
|
||||
*/
|
||||
|
||||
/*
|
||||
* L L G E N
|
||||
*
|
||||
* An Extended LL(1) Parser Generator
|
||||
*
|
||||
* Author : Ceriel J.H. Jacobs
|
||||
*/
|
||||
|
||||
/*
|
||||
* name.c
|
||||
* Defines the symboltable search routine, a name store routine and an
|
||||
* initialising routine.
|
||||
*/
|
||||
|
||||
# include "types.h"
|
||||
# include "extern.h"
|
||||
# include "assert.h"
|
||||
# include "io.h"
|
||||
|
||||
# ifndef NORCSID
|
||||
static string rcsid7 = "$Id$";
|
||||
# endif
|
||||
|
||||
# define HASHSIZE 128
|
||||
# define NMSIZ 2048 /* Room for names allocated NMSIZ bytes at a time */
|
||||
|
||||
static char *name, *maxname;
|
||||
static p_entry h_root[HASHSIZE]; /* hash table */
|
||||
static string e_literal = "Illegal literal";
|
||||
static p_entry entries, maxentries;
|
||||
static t_info token_info, nont_info;
|
||||
|
||||
/* Defined in this file are: */
|
||||
extern string store();
|
||||
extern name_init();
|
||||
STATIC int hash();
|
||||
STATIC p_entry newentry();
|
||||
extern p_gram search();
|
||||
|
||||
p_mem alloc();
|
||||
p_mem new_mem();
|
||||
|
||||
name_init() {
|
||||
token_info.i_esize = sizeof (t_token);
|
||||
token_info.i_incr = 50;
|
||||
nont_info.i_esize = sizeof (t_nont);
|
||||
nont_info.i_incr = 50;
|
||||
search(TERMINAL,"EOFILE",ENTERING);
|
||||
#ifdef NON_CORRECTING
|
||||
illegal_gram = search(TERMINAL,"LLILLEGAL",ENTERING);
|
||||
#endif
|
||||
}
|
||||
|
||||
STATIC p_entry
|
||||
newentry(str, next) string str; p_entry next; {
|
||||
register p_entry p;
|
||||
|
||||
if ((p = entries) == maxentries) {
|
||||
p = (p_entry) alloc(50 * sizeof(t_entry));
|
||||
maxentries = p + 50;
|
||||
}
|
||||
entries = p + 1;
|
||||
p->h_name = str;
|
||||
p->h_next = next;
|
||||
p->h_type.g_lineno = linecount;
|
||||
#ifdef NON_CORRECTING
|
||||
p->h_type.g_erroneous = 0;
|
||||
#endif
|
||||
return p;
|
||||
}
|
||||
|
||||
string
|
||||
store(s) string s; {
|
||||
/*
|
||||
* Store a string s in the name table
|
||||
*/
|
||||
register string s1, t ,u;
|
||||
|
||||
u = name;
|
||||
t = s;
|
||||
s1 = u;
|
||||
do {
|
||||
if (u >= maxname) {
|
||||
u = alloc(NMSIZ);
|
||||
maxname = u + NMSIZ;
|
||||
t = s;
|
||||
s1 = u;
|
||||
}
|
||||
*u++ = *t;
|
||||
} while (*t++);
|
||||
name = u;
|
||||
return s1;
|
||||
}
|
||||
|
||||
STATIC int
|
||||
hash(str) string str; {
|
||||
/*
|
||||
* Compute the hash for string str
|
||||
*/
|
||||
register int i;
|
||||
register string l;
|
||||
|
||||
l = str;
|
||||
i = 0;
|
||||
while (*l != '\0') i += *l++ & 0377;
|
||||
i += l - str;
|
||||
return i % HASHSIZE;
|
||||
}
|
||||
|
||||
p_gram
|
||||
search(type,str,option) register string str; {
|
||||
/*
|
||||
* Search for object str.
|
||||
* It has type UNKNOWN, LITERAL, TERMINAL or NONTERM.
|
||||
* option can be ENTERING or BOTH (also looking).
|
||||
*/
|
||||
register int val = 0;
|
||||
register p_entry p;
|
||||
register int i;
|
||||
int type1;
|
||||
|
||||
i = hash(str);
|
||||
/*
|
||||
* Walk hash chain
|
||||
*/
|
||||
for (p = h_root[i]; p != (p_entry) 0; p = p->h_next) {
|
||||
if(!strcmp(p->h_name,str)) {
|
||||
type1 = g_gettype(&(p->h_type));
|
||||
if (type1 != type) {
|
||||
if (type1 == LITERAL || type == LITERAL) {
|
||||
continue;
|
||||
}
|
||||
if (type == TERMINAL) {
|
||||
error(linecount,
|
||||
"%s: is already a nonterminal",
|
||||
str);
|
||||
continue;
|
||||
}
|
||||
else if (type == NONTERM) {
|
||||
error(linecount,
|
||||
"%s : is already a token",
|
||||
str);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
if (option==ENTERING) {
|
||||
error(linecount,
|
||||
"%s : is already defined",str);
|
||||
}
|
||||
p->h_type.g_lineno = linecount;
|
||||
return &(p->h_type);
|
||||
}
|
||||
}
|
||||
p = newentry(store(str), h_root[i]);
|
||||
h_root[i] = p;
|
||||
if (type == TERMINAL || type == LITERAL) {
|
||||
register p_token pt;
|
||||
|
||||
pt = (p_token) new_mem(&token_info);
|
||||
tokens = (p_token) token_info.i_ptr;
|
||||
pt->t_string = p->h_name;
|
||||
if (type == LITERAL) {
|
||||
if (str[0] == '\\') {
|
||||
/*
|
||||
* Handle escapes in literals
|
||||
*/
|
||||
if (str[2] == '\0') {
|
||||
switch(str[1]) {
|
||||
case 'n' :
|
||||
val = '\n';
|
||||
break;
|
||||
case 'r' :
|
||||
val = '\r';
|
||||
break;
|
||||
case 'b' :
|
||||
val = '\b';
|
||||
break;
|
||||
case 'f' :
|
||||
val = '\f';
|
||||
break;
|
||||
case 't' :
|
||||
val = '\t';
|
||||
break;
|
||||
case '\'':
|
||||
val = '\'';
|
||||
break;
|
||||
case '\\':
|
||||
val = '\\';
|
||||
break;
|
||||
default :
|
||||
error(linecount,e_literal);
|
||||
}
|
||||
} else {
|
||||
/*
|
||||
* Here, str[2] != '\0'
|
||||
*/
|
||||
if (str[1] > '3' || str[1] < '0' ||
|
||||
str[2] > '7' || str[2] < '0' ||
|
||||
str[3] > '7' || str[3] < '0' ||
|
||||
str[4] != '\0') error(linecount,e_literal);
|
||||
val = 64*str[1] - 73*'0' +
|
||||
8*str[2] + str[3];
|
||||
}
|
||||
} else {
|
||||
/*
|
||||
* No escape in literal
|
||||
*/
|
||||
if (str[1] == '\0') val = str[0];
|
||||
else error(linecount,e_literal);
|
||||
}
|
||||
pt->t_tokno = val;
|
||||
g_settype(&(p->h_type), LITERAL);
|
||||
} else {
|
||||
/*
|
||||
* Here, type = TERMINAL
|
||||
*/
|
||||
pt->t_tokno = assval++;
|
||||
g_settype(&(p->h_type), TERMINAL);
|
||||
}
|
||||
g_setcont(&(p->h_type), ntokens);
|
||||
ntokens++;
|
||||
return &(p->h_type);
|
||||
}
|
||||
/*
|
||||
* type == NONTERM || type == UNKNOWN
|
||||
* UNKNOWN and not yet declared means : NONTERM
|
||||
*/
|
||||
{
|
||||
register p_nont q;
|
||||
|
||||
q = (p_nont) new_mem(&nont_info);
|
||||
nonterms = (p_nont) nont_info.i_ptr;
|
||||
q->n_name = p->h_name;
|
||||
q->n_rule = 0;
|
||||
q->n_lineno = linecount;
|
||||
q->n_string = f_input;
|
||||
q->n_follow = 0;
|
||||
q->n_flags = 0;
|
||||
q->n_contains = 0;
|
||||
g_settype(&(p->h_type), NONTERM);
|
||||
g_setcont(&(p->h_type), nnonterms);
|
||||
g_setnpar(&(p->h_type), 0);
|
||||
nnonterms++;
|
||||
return &(p->h_type);
|
||||
}
|
||||
}
|
||||
135
util/LLgen/src/reach.c
Normal file
135
util/LLgen/src/reach.c
Normal file
@@ -0,0 +1,135 @@
|
||||
/* Copyright (c) 1991 by the Vrije Universiteit, Amsterdam, the Netherlands.
|
||||
* For full copyright and restrictions on use see the file COPYING in the top
|
||||
* level of the LLgen tree.
|
||||
*/
|
||||
|
||||
/*
|
||||
* L L G E N
|
||||
*
|
||||
* An Extended LL(1) Parser Generator
|
||||
*
|
||||
* Author : Ceriel J.H. Jacobs
|
||||
*/
|
||||
|
||||
/*
|
||||
* reach.c
|
||||
* Determine which nonterminals are reachable, and also check that they
|
||||
* are all defined.
|
||||
*/
|
||||
|
||||
# include "types.h"
|
||||
# include "extern.h"
|
||||
# include "io.h"
|
||||
# include "assert.h"
|
||||
|
||||
# ifndef NORCSID
|
||||
static string rcsid8 = "$Id$";
|
||||
# endif
|
||||
|
||||
/* In this file the following routines are defined: */
|
||||
extern co_reach();
|
||||
STATIC reachable();
|
||||
STATIC reachwalk();
|
||||
|
||||
co_reach() {
|
||||
/*
|
||||
* Check for undefined or unreachable nonterminals.
|
||||
*/
|
||||
register p_nont p;
|
||||
register p_token t;
|
||||
register p_start st;
|
||||
register p_file x;
|
||||
register int s;
|
||||
|
||||
/* Check for undefined nonterminals */
|
||||
for (p = nonterms; p < maxnt; p++) {
|
||||
if (! p->n_rule) { /* undefined */
|
||||
f_input = p->n_string;
|
||||
error(p->n_lineno,"Nonterminal %s not defined",
|
||||
p->n_name);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Walk the grammar rules, starting with the startsymbols
|
||||
* Mark the nonterminals that are encountered with the flag
|
||||
* REACHABLE, and walk their rules, if not done before
|
||||
*/
|
||||
for (st = start; st; st = st->ff_next) {
|
||||
reachable(&nonterms[st->ff_nont]);
|
||||
}
|
||||
/*
|
||||
* Now check for unreachable nonterminals
|
||||
*/
|
||||
for (x = files; x < maxfiles; x++) {
|
||||
f_input = x->f_name;
|
||||
for (s = x->f_nonterminals; s != -1; s = p->n_next) {
|
||||
p = &nonterms[s];
|
||||
if (! (p->n_flags & REACHABLE)) {
|
||||
warning(p->n_lineno,"nonterminal %s unreachable",
|
||||
p->n_name);
|
||||
}
|
||||
}
|
||||
for (s = x->f_terminals; s != -1; s = t->t_next) {
|
||||
t = &tokens[s];
|
||||
if (! (t->t_flags & REACHABLE)) {
|
||||
warning(t->t_lineno,"terminal %s not used",
|
||||
t->t_string);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
STATIC
|
||||
reachable(p) register p_nont p; {
|
||||
/*
|
||||
* Enter the fact that p is reachable, and look for implications
|
||||
*/
|
||||
if (! (p->n_flags & REACHABLE)) {
|
||||
p->n_flags |= REACHABLE;
|
||||
/*
|
||||
* Now walk its grammar rule
|
||||
*/
|
||||
if (p->n_rule) reachwalk(p->n_rule);
|
||||
}
|
||||
}
|
||||
|
||||
STATIC
|
||||
reachwalk(p) register p_gram p; {
|
||||
/*
|
||||
* Walk through rule p, looking for nonterminals.
|
||||
* The nonterminals found are entered as reachable
|
||||
*/
|
||||
|
||||
for (;;) {
|
||||
switch(g_gettype(p)) {
|
||||
case ALTERNATION :
|
||||
reachwalk(g_getlink(p)->l_rule);
|
||||
break;
|
||||
case TERM :
|
||||
reachwalk(g_getterm(p)->t_rule);
|
||||
break;
|
||||
case NONTERM : {
|
||||
register p_nont n = &nonterms[g_getcont(p)];
|
||||
|
||||
reachable(n);
|
||||
if (n->n_rule && g_gettype(n->n_rule) == EORULE &&
|
||||
! g_getnpar(p) && (getntparams(n) == 0)) {
|
||||
register p_gram np = p;
|
||||
do {
|
||||
*np = *(np + 1);
|
||||
np++;
|
||||
} while (g_gettype(np) != EORULE);
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case TERMINAL:
|
||||
tokens[g_getcont(p)].t_flags |= REACHABLE;
|
||||
break;
|
||||
case EORULE :
|
||||
return;
|
||||
}
|
||||
p++;
|
||||
}
|
||||
}
|
||||
385
util/LLgen/src/savegram.c
Normal file
385
util/LLgen/src/savegram.c
Normal file
@@ -0,0 +1,385 @@
|
||||
/* Copyright (c) 1991 by the Vrije Universiteit, Amsterdam, the Netherlands.
|
||||
* All rights reserved.
|
||||
*/
|
||||
|
||||
#ifdef NON_CORRECTING
|
||||
|
||||
/*
|
||||
* L L G E N
|
||||
*
|
||||
* An Extended LL(1) Parser Generator
|
||||
*
|
||||
* Author : Ceriel J.H. Jacobs
|
||||
*/
|
||||
|
||||
/*
|
||||
* savegram.c
|
||||
* Save the input grammar for non-correcting error recovery
|
||||
*
|
||||
* Grammar rules are `flattened' by introducing anonymous nonterminals.
|
||||
* [B]? becomes X; X: B | {empty}
|
||||
* [B]+ becomes X: B Y; Y: X | {empty}
|
||||
* [B]* becomes X; X: B X | {empty}
|
||||
* [B | C] becomes X; X: B | C
|
||||
* [B | C]* becomes X; X: B X | C X | {empty} etc.
|
||||
*/
|
||||
|
||||
|
||||
# include "types.h"
|
||||
# include "extern.h"
|
||||
# include "io.h"
|
||||
# include "assert.h"
|
||||
# include "sets.h"
|
||||
|
||||
#define LLALT 9999
|
||||
|
||||
static int nt_highest;
|
||||
extern int nbytes;
|
||||
extern p_mem alloc();
|
||||
extern p_set start_firsts;
|
||||
extern p_set setalloc();
|
||||
extern p_gram search();
|
||||
|
||||
STATIC save_rule();
|
||||
STATIC save_set();
|
||||
|
||||
/* t_list will contain terms to be `flattened' */
|
||||
static struct t_list {
|
||||
p_term term;
|
||||
int t_nt_num;
|
||||
} *t_list;
|
||||
|
||||
/* Subparse list will contain symbols in %substart */
|
||||
static struct subparse_list {
|
||||
p_gram sub_action;
|
||||
int sub_nt_num;
|
||||
} *sub_list;
|
||||
|
||||
/* Index in t_list */
|
||||
static int t_list_index;
|
||||
|
||||
/* Index in subparse_list */
|
||||
static int sub_list_index;
|
||||
|
||||
/* File to save grammar to */
|
||||
static FILE *fgram;
|
||||
|
||||
/* Nonterminal number to simulate parsers that get called in actions
|
||||
used when LLgen called with -n -s options */
|
||||
int act_nt;
|
||||
|
||||
save_grammar(f) FILE *f; {
|
||||
/*
|
||||
* Save the grammar
|
||||
*/
|
||||
register p_nont p;
|
||||
register p_start st;
|
||||
register int nt_nr;
|
||||
|
||||
fgram = f;
|
||||
|
||||
/* Compute highest nonterminal nr. */
|
||||
nt_highest = nnonterms + assval - 1;
|
||||
|
||||
|
||||
/* Generate some constants in the grammar file */
|
||||
|
||||
/* Allocate terms list */
|
||||
t_list = (struct t_list *) alloc((unsigned) nterms * sizeof(struct t_list));
|
||||
t_list_index = 0;
|
||||
|
||||
sub_list = (struct subparse_list *) alloc(nsubstarts * sizeof(struct subparse_list));
|
||||
|
||||
fputs("static ", fgram);
|
||||
fputs((prefix ? prefix : "LL"), fgram);
|
||||
fputs("grammar[] = {\n", fgram);
|
||||
|
||||
/* Check if -n -s option is on */
|
||||
if (subpars_sim) {
|
||||
|
||||
/* Allocate action simulation nt */
|
||||
|
||||
act_nt = ++nt_highest;
|
||||
|
||||
/* write simualtion rule */
|
||||
fprintf(fgram, "/* Simulation rule */\n");
|
||||
fprintf(fgram, "%d,\n", act_nt);
|
||||
|
||||
/* Put a firstset and a fake followset */
|
||||
/* Followset optimization is not implemented for
|
||||
-s because it would be hard, and does not
|
||||
bring enough improvement to jutify the effort
|
||||
*/
|
||||
save_set(start_firsts);
|
||||
save_set(start_firsts);
|
||||
/* Simulation rule procudes empty */
|
||||
fprintf(fgram, "%d,\n", 1);
|
||||
for (st = start; st; st = st->ff_next)
|
||||
{
|
||||
fprintf(fgram, "%d, %d, %d, \n", st->ff_nont + assval,
|
||||
act_nt, LLALT);
|
||||
}
|
||||
fprintf(fgram, "%d, \n", 0);
|
||||
|
||||
}
|
||||
|
||||
/* Now process all rules */
|
||||
for (p = nonterms, nt_nr = assval; p < maxnt; p++, nt_nr++) {
|
||||
fprintf(fgram, "/* nr. %d %s */\n", nt_nr, p->n_name);
|
||||
fprintf(fgram, "%d, ",nt_nr);
|
||||
if (! p->n_rule) { /* undefined */
|
||||
f_input = p->n_string;
|
||||
error(p->n_lineno,"Nonterminal %s not defined",
|
||||
p->n_name);
|
||||
}
|
||||
|
||||
/* Save the first_set and follow set */
|
||||
save_set(p->n_nc_first);
|
||||
save_set(p->n_nc_follow);
|
||||
|
||||
if (p->n_flags & EMPTY)
|
||||
fprintf(fgram, "%d,\n", 1);
|
||||
else
|
||||
fprintf(fgram, "%d,\n", 0);
|
||||
|
||||
save_rule(p->n_rule, 0);
|
||||
|
||||
fprintf(fgram, "%d,\n", 0);
|
||||
}
|
||||
|
||||
/* Resolve terms, they are on t_list */
|
||||
|
||||
fprintf(fgram, "/* Fresh nonterminals */\n");
|
||||
|
||||
{ int i;
|
||||
for (i = 0; i < t_list_index; i++)
|
||||
{
|
||||
|
||||
/* Terms of the form [] without + ? * or number produce
|
||||
a NIL pointer in the term-list */
|
||||
if ((t_list + i)->term == (struct term *) 0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
fprintf(fgram, "%d, ", (t_list + i)->t_nt_num);
|
||||
|
||||
/* Save the first and follow sets */
|
||||
|
||||
save_set((t_list + i)->term->t_nc_first);
|
||||
save_set((t_list + i)->term->t_nc_follow);
|
||||
|
||||
/* NOTE: A VARIABLE REPETITION COUNT TERMS RULE IS NOT
|
||||
ALLOWED TO PRODUCE EMPTY IN LLGEN
|
||||
*/
|
||||
|
||||
switch(r_getkind((t_list + i)->term)) {
|
||||
case FIXED:
|
||||
/* Already done by repeating new nonterminal */
|
||||
|
||||
/* FIXED term-rule may produce empty */
|
||||
if (empty((t_list +i)->term->t_rule))
|
||||
fprintf(fgram, "%d,\n", 1);
|
||||
else
|
||||
fprintf(fgram, "%d,\n", 0);
|
||||
|
||||
save_rule((t_list + i)->term->t_rule, 0);
|
||||
fprintf(fgram, "%d,\n", 0);
|
||||
break;
|
||||
case STAR:
|
||||
/* Save the rule, appending the new lhs for this rule */
|
||||
|
||||
/* Star rules always produce empty */
|
||||
fprintf(fgram, "1,\n");
|
||||
|
||||
save_rule((t_list + i)->term->t_rule,
|
||||
(t_list + i)->t_nt_num);
|
||||
fprintf(fgram, "%d,\n%d,\n", LLALT, 0);
|
||||
/* ALT EMPTY*/
|
||||
break;
|
||||
case PLUS:
|
||||
/* Save the rule appending a fresh nonterminal */
|
||||
|
||||
fprintf(fgram, "%d,\n", 0);
|
||||
|
||||
save_rule((t_list + i)->term->t_rule, ++nt_highest);
|
||||
fprintf(fgram, "%d,\n", 0); /* EOR */
|
||||
fprintf(fgram, "%d, ", nt_highest);
|
||||
/* First set of the extra nonterm is same as
|
||||
for the term */
|
||||
/* Except that the new nonterm also produces empty ! */
|
||||
save_set((t_list + i)->term->t_nc_first);
|
||||
save_set((t_list + i)->term->t_nc_follow);
|
||||
fprintf(fgram, "1,\n");
|
||||
fprintf(fgram, "%d, ", (t_list+i)->t_nt_num);
|
||||
fprintf(fgram, "%d,\n%d,\n", LLALT, 0); /* ALT EMPTY */
|
||||
break;
|
||||
case OPT:
|
||||
fprintf(fgram, "1,\n");
|
||||
save_rule((t_list + i)->term->t_rule, 0);
|
||||
fprintf(fgram, "%d,\n%d,\n", LLALT, 0); /* ALT EMPTY */
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Resolve %substarts */
|
||||
if (!subpars_sim) {
|
||||
int i,s,check;
|
||||
p_start ff, gg;
|
||||
p_set temp_set;
|
||||
|
||||
for (i = 0; i < sub_list_index; i++) {
|
||||
fprintf(fgram, "%d, ", (sub_list + i)->sub_nt_num);
|
||||
/* Compute the first set */
|
||||
temp_set = setalloc();
|
||||
for (ff = g_getsubparse((sub_list + i)->sub_action);
|
||||
ff; ff = ff->ff_next){
|
||||
s = setunion(temp_set,
|
||||
(&nonterms[ff->ff_nont])->n_first);
|
||||
check = 0;
|
||||
for (gg =start; gg; gg = gg->ff_next)
|
||||
if (ff->ff_nont == gg->ff_nont)
|
||||
check = 1;
|
||||
if (check == 0)
|
||||
warning((sub_list + i)->sub_action->g_lineno,
|
||||
"\"%s\" is not a startsymbol",
|
||||
(&nonterms[ff->ff_nont])->n_name);
|
||||
}
|
||||
save_set(temp_set);
|
||||
save_set(temp_set);
|
||||
free(temp_set);
|
||||
|
||||
/* Produces empty */
|
||||
fprintf(fgram, "1,\n");
|
||||
|
||||
ff = g_getsubparse((sub_list + i)->sub_action);
|
||||
|
||||
for (; ff; ff = ff->ff_next)
|
||||
fprintf(fgram, "%d, %d, %d, \n", ff->ff_nont + assval,
|
||||
(sub_list + i)->sub_nt_num,
|
||||
LLALT);
|
||||
fprintf(fgram, "%d, \n", 0);
|
||||
}
|
||||
}
|
||||
|
||||
fprintf(fgram, "%d\n};\n", 0);
|
||||
fprintf(fgram, "#define LLNNONTERMINALS %d\n", nt_highest - assval + 1);
|
||||
}
|
||||
|
||||
STATIC
|
||||
save_rule(p, tail) register p_gram p; int tail; {
|
||||
/*
|
||||
Walk through rule p, saving it. The non-terminal tail is
|
||||
appended to the rule. It needs to be appended in this function
|
||||
to process alt-rules correctly. Tail == 0 means don't append.
|
||||
*/
|
||||
|
||||
int in_alt;
|
||||
int illegal_num;
|
||||
/* Processing an alt needs some special care. When processing the
|
||||
first alternative, we don't want to write the alt-code;
|
||||
When appending something to the alt, it needs to be appended to
|
||||
every alternative and not at the end of the rule.
|
||||
*/
|
||||
|
||||
/* Look up the ILLEGAL token number */
|
||||
illegal_num = tokens[g_getcont(illegal_gram)].t_tokno;
|
||||
|
||||
in_alt = 0;
|
||||
for (;;) {
|
||||
switch(g_gettype(p)) {
|
||||
case ALTERNATION :
|
||||
if (in_alt)
|
||||
fprintf(fgram, "%d,\n", LLALT);
|
||||
else
|
||||
in_alt = 1;
|
||||
save_rule(g_getlink(p)->l_rule, tail);
|
||||
break;
|
||||
case TERM :
|
||||
/* Make entry in term list */
|
||||
(t_list + t_list_index)->term = g_getterm(p);
|
||||
/* Test for [] without specifier */
|
||||
if (g_getterm(p) == (struct term *) 0) {
|
||||
t_list_index++;
|
||||
break;
|
||||
}
|
||||
(t_list + t_list_index++)->t_nt_num = ++nt_highest;
|
||||
fprintf(fgram, "%d, ", nt_highest);
|
||||
/* Check if repetition, if so handle here */
|
||||
if (r_getkind(g_getterm(p)) == FIXED)
|
||||
{
|
||||
int k;
|
||||
for (k = 1; k < r_getnum(g_getterm(p)); k++)
|
||||
fprintf(fgram, "%d, ", nt_highest);
|
||||
}
|
||||
break;
|
||||
case NONTERM :
|
||||
fprintf(fgram, "%d, ", g_getcont(p) + assval);
|
||||
break;
|
||||
case TERMINAL:
|
||||
if (g_getcont(p) == g_getcont(illegal_gram)) {
|
||||
/* %illegal. Ignore. */
|
||||
break;
|
||||
}
|
||||
if (p->g_erroneous)
|
||||
fprintf(fgram, "%d, ", illegal_num);
|
||||
else
|
||||
fprintf(fgram, "%d, ",
|
||||
tokens[g_getcont(p)].t_tokno);
|
||||
break;
|
||||
case LITERAL:
|
||||
if (p->g_erroneous)
|
||||
fprintf(fgram, "%d, ", illegal_num);
|
||||
else
|
||||
fprintf(fgram, "%d, ",
|
||||
tokens[g_getcont(p)].t_tokno);
|
||||
break;
|
||||
case ACTION:
|
||||
if (subpars_sim) {
|
||||
fprintf(fgram, "%d, ", act_nt);
|
||||
}
|
||||
else if (g_getsubparse(p)) {
|
||||
/* Allocate nonterminal that will simulate
|
||||
subparser
|
||||
*/
|
||||
(sub_list + sub_list_index)->sub_nt_num =
|
||||
++nt_highest;
|
||||
(sub_list + sub_list_index++)->sub_action = p;
|
||||
|
||||
fprintf(fgram, "%d, ", nt_highest);
|
||||
}
|
||||
break;
|
||||
case EORULE :
|
||||
if ((! in_alt) && tail )
|
||||
/* If this rule is not an alt, append tail now.
|
||||
If it is an alt, the recursive call of this function
|
||||
has appended tail to each alternative
|
||||
*/
|
||||
fprintf(fgram, "%d, ", tail);
|
||||
return;
|
||||
}
|
||||
p++;
|
||||
}
|
||||
}
|
||||
|
||||
STATIC
|
||||
save_set(p) p_set p; {
|
||||
register int k;
|
||||
register unsigned i;
|
||||
int j;
|
||||
|
||||
j = nbytes;
|
||||
for (;;) {
|
||||
i = (unsigned) *p++;
|
||||
for (k = 0; k < sizeof(int); k++) {
|
||||
fprintf(fgram,"0%o,",(int)(i & 0377));
|
||||
i >>= 8;
|
||||
if (--j == 0) {
|
||||
fputs("\n",fgram);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
/* NOTREACHED */
|
||||
}
|
||||
#endif
|
||||
218
util/LLgen/src/sets.c
Normal file
218
util/LLgen/src/sets.c
Normal file
@@ -0,0 +1,218 @@
|
||||
/* Copyright (c) 1991 by the Vrije Universiteit, Amsterdam, the Netherlands.
|
||||
* For full copyright and restrictions on use see the file COPYING in the top
|
||||
* level of the LLgen tree.
|
||||
*/
|
||||
|
||||
/*
|
||||
* L L G E N
|
||||
*
|
||||
* An Extended LL(1) Parser Generator
|
||||
*
|
||||
* Author : Ceriel J.H. Jacobs
|
||||
*/
|
||||
|
||||
/*
|
||||
* sets.c
|
||||
* Set manipulation and allocation routines.
|
||||
*/
|
||||
|
||||
# include "types.h"
|
||||
# include "extern.h"
|
||||
# include "sets.h"
|
||||
# include "assert.h"
|
||||
|
||||
# ifndef NORCSID
|
||||
static string rcsid9 = "$Id$";
|
||||
# endif
|
||||
|
||||
/* In this file the following routines are defined: */
|
||||
extern setinit();
|
||||
extern p_set setalloc();
|
||||
extern p_set get_set();
|
||||
extern int setunion();
|
||||
extern int setintersect();
|
||||
extern setminus();
|
||||
extern int setempty();
|
||||
extern int findindex();
|
||||
extern int setcount();
|
||||
|
||||
int nbytes;
|
||||
static int setsize;
|
||||
int tsetsize;
|
||||
p_set *setptr, *maxptr;
|
||||
static t_info set_info;
|
||||
p_mem alloc();
|
||||
|
||||
setinit(nt_needed) {
|
||||
/*
|
||||
* Initialises some variables needed for setcomputations
|
||||
*/
|
||||
register int bitset;
|
||||
|
||||
nbytes = NBYTES(ntokens);
|
||||
bitset = ALIGN(nbytes);
|
||||
tsetsize = NINTS(bitset);
|
||||
if (nt_needed) {
|
||||
/* nonterminals must be included in the sets */
|
||||
bitset += NBYTES(nnonterms);
|
||||
}
|
||||
setsize = NINTS(bitset);
|
||||
set_info.i_esize = sizeof(p_set);
|
||||
set_info.i_incr = 20;
|
||||
}
|
||||
|
||||
p_set
|
||||
get_set() {
|
||||
/*
|
||||
* Allocate a set that cannot be freed
|
||||
*/
|
||||
register p_set p, q;
|
||||
static p_set sets, maxsets;
|
||||
|
||||
if ((p = sets) >= maxsets) {
|
||||
q = p = (p_set) alloc((unsigned) (50*setsize*sizeof(*sets)));
|
||||
maxsets = p + 50 * setsize;
|
||||
do {
|
||||
*q++ = 0;
|
||||
} while (q < maxsets);
|
||||
}
|
||||
sets = p + setsize;;
|
||||
return p;
|
||||
}
|
||||
|
||||
p_set
|
||||
setalloc() {
|
||||
/*
|
||||
* Allocate a set which can later be freed.
|
||||
*/
|
||||
register p_set p;
|
||||
register int size = setsize;
|
||||
|
||||
p = (p_set) alloc((unsigned) (size * sizeof(*p))) + size;
|
||||
do {
|
||||
*--p = 0;
|
||||
} while (--size);
|
||||
return p;
|
||||
}
|
||||
|
||||
int
|
||||
setunion(a,b) register p_set a,b; {
|
||||
/*
|
||||
* a = a union b.
|
||||
* Return 1 if the set a changed
|
||||
*/
|
||||
register int i;
|
||||
register int j;
|
||||
register int nsub = 0;
|
||||
|
||||
i = setsize;
|
||||
do {
|
||||
*a = (j = *a) | *b++;
|
||||
if (*a++ != j) {
|
||||
nsub = 1;
|
||||
}
|
||||
} while (--i);
|
||||
return nsub;
|
||||
}
|
||||
|
||||
int
|
||||
setintersect(a,b) register p_set a,b; {
|
||||
/*
|
||||
* a = a intersect b.
|
||||
* return 1 if the result is empty
|
||||
*/
|
||||
register int i;
|
||||
register int nempty;
|
||||
|
||||
nempty = 1;
|
||||
i = setsize;
|
||||
do {
|
||||
if (*a++ &= *b++) nempty = 0;
|
||||
} while (--i);
|
||||
return nempty;
|
||||
}
|
||||
|
||||
setminus(a,b) register p_set a,b; {
|
||||
/*
|
||||
* a = a setminus b
|
||||
*/
|
||||
register int i;
|
||||
|
||||
i = setsize;
|
||||
do {
|
||||
*a++ &= ~(*b++);
|
||||
} while (--i);
|
||||
}
|
||||
|
||||
int
|
||||
setempty(p) register p_set p; {
|
||||
/*
|
||||
* Return 1 if the set p is empty
|
||||
*/
|
||||
register int i;
|
||||
|
||||
i = tsetsize;
|
||||
do {
|
||||
if (*p++) return 0;
|
||||
} while (--i);
|
||||
return 1;
|
||||
}
|
||||
|
||||
int
|
||||
findindex(set) p_set set; {
|
||||
/*
|
||||
* The set "set" will serve as a recovery set.
|
||||
* Search for it in the table. If not present, enter it.
|
||||
* Here is room for improvement. At the moment, the list of
|
||||
* sets is examined with linear search.
|
||||
*/
|
||||
register p_set *t;
|
||||
p_mem new_mem();
|
||||
register p_set a;
|
||||
register p_set b;
|
||||
register int i;
|
||||
int saved;
|
||||
|
||||
/*
|
||||
* First search for the set in the table
|
||||
*/
|
||||
for (t = setptr; t < maxptr; t++) {
|
||||
a = *t;
|
||||
b = set;
|
||||
i = tsetsize;
|
||||
do {
|
||||
if (*a++ != *b++) break;
|
||||
} while (--i);
|
||||
if (i) continue;
|
||||
/*
|
||||
* Here, the sets are equal.
|
||||
*/
|
||||
return nbytes * (t - setptr);
|
||||
}
|
||||
/*
|
||||
* Now check if the set consists of only one element.
|
||||
* It would be a waste to use a set for that
|
||||
*/
|
||||
if (setcount(set, &saved) == 1) return -(saved + 1);
|
||||
/*
|
||||
* If it does, return its number as a negative number.
|
||||
*/
|
||||
maxptr = (p_set *) new_mem(&set_info);
|
||||
setptr = (p_set *) set_info.i_ptr;
|
||||
*maxptr = setalloc();
|
||||
setunion(*maxptr, set);
|
||||
return nbytes * (maxptr++ - setptr);
|
||||
}
|
||||
|
||||
int
|
||||
setcount(set, saved) register p_set set; int *saved; {
|
||||
register int i, j;
|
||||
|
||||
for (j = 0, i = 0; i < ntokens; i++) {
|
||||
if (IN(set,i)) {
|
||||
j++;
|
||||
*saved = i;
|
||||
}
|
||||
}
|
||||
return j;
|
||||
}
|
||||
33
util/LLgen/src/sets.h
Normal file
33
util/LLgen/src/sets.h
Normal file
@@ -0,0 +1,33 @@
|
||||
/* Copyright (c) 1991 by the Vrije Universiteit, Amsterdam, the Netherlands.
|
||||
* For full copyright and restrictions on use see the file COPYING in the top
|
||||
* level of the LLgen tree.
|
||||
*/
|
||||
|
||||
/*
|
||||
* L L G E N
|
||||
*
|
||||
* An Extended LL(1) Parser Generator
|
||||
*
|
||||
* Author : Ceriel J.H. Jacobs
|
||||
*/
|
||||
|
||||
/*
|
||||
* $Id$
|
||||
* Some macros that deal with bitsets and their size
|
||||
*/
|
||||
|
||||
# define BITS (8 * sizeof (int))
|
||||
# define IN(a,i) ((a)[(i)/BITS] & (1<<((i) % BITS)))
|
||||
# define NTIN(a,i) ((a)[(i)/BITS+tsetsize]&(1<<((i)%BITS)))
|
||||
# define PUTIN(a,i) ((a)[(i)/BITS] |=(1<<((i) % BITS)))
|
||||
# define NTPUTIN(a,i) ((a)[(i)/BITS+tsetsize]|=(1<<((i)%BITS)))
|
||||
# define NBYTES(n) (((n) + 7) / 8)
|
||||
/*
|
||||
* The next two macros operate on byte counts!
|
||||
*/
|
||||
# define NINTS(n) (((n) + (int) (sizeof(int) - 1)) / (int) sizeof(int))
|
||||
# define ALIGN(n) (NINTS(n) * (int) sizeof (int))
|
||||
|
||||
extern int tsetsize;
|
||||
extern p_set *setptr, *maxptr;
|
||||
extern int nbytes;
|
||||
604
util/LLgen/src/tokens.g
Normal file
604
util/LLgen/src/tokens.g
Normal file
@@ -0,0 +1,604 @@
|
||||
/* Copyright (c) 1991 by the Vrije Universiteit, Amsterdam, the Netherlands.
|
||||
* For full copyright and restrictions on use see the file COPYING in the top
|
||||
* level of the LLgen tree.
|
||||
*/
|
||||
|
||||
/*
|
||||
* L L G E N
|
||||
*
|
||||
* An Extended LL(1) Parser Generator
|
||||
*
|
||||
* Author : Ceriel J.H. Jacobs
|
||||
*/
|
||||
|
||||
/*
|
||||
* tokens.g
|
||||
* Defines the tokens for the grammar of LLgen.
|
||||
* The lexical analyser and LLmessage are also included here.
|
||||
*/
|
||||
|
||||
{
|
||||
# include "types.h"
|
||||
# include "io.h"
|
||||
# include "extern.h"
|
||||
# include "assert.h"
|
||||
# include "cclass.h"
|
||||
|
||||
# ifndef NORCSID
|
||||
static string rcsidc = "$Id$";
|
||||
# endif
|
||||
|
||||
/* Here are defined : */
|
||||
extern int scanner();
|
||||
extern LLmessage();
|
||||
extern int input();
|
||||
extern unput();
|
||||
extern skipcomment();
|
||||
# ifdef LINE_DIRECTIVE
|
||||
STATIC linedirective();
|
||||
# endif
|
||||
STATIC string cpy();
|
||||
STATIC string vallookup();
|
||||
STATIC copyact();
|
||||
|
||||
static int nparams;
|
||||
}
|
||||
/* Classes */
|
||||
|
||||
%token C_IDENT ; /* lextoken.t_string contains the identifier read */
|
||||
%token C_NUMBER ; /* lextoken.t_num contains the number read */
|
||||
%token C_LITERAL ; /* lextoken.t_string contains the literal read */
|
||||
%token C_EXPR ; /* A C expression (%if or %while) */
|
||||
%token C_PARAMS ; /* formal or actual parameters */
|
||||
%token C_ACTION ; /* a C action */
|
||||
|
||||
/* Keywords */
|
||||
|
||||
%token C_TOKEN ;
|
||||
%token C_START ;
|
||||
%token C_IF ;
|
||||
%token C_WHILE ;
|
||||
%token C_PERSISTENT ;
|
||||
%token C_FIRST ;
|
||||
%token C_LEXICAL ;
|
||||
%token C_PREFIX ;
|
||||
%token C_ONERROR ;
|
||||
%token C_AVOID ;
|
||||
%token C_PREFER ;
|
||||
%token C_DEFAULT ;
|
||||
%token C_SUBSTART ;
|
||||
%token C_ERRONEOUS ;
|
||||
%token C_ILLEGAL ;
|
||||
|
||||
%lexical scanner ;
|
||||
|
||||
{
|
||||
|
||||
/*
|
||||
* Structure for a keyword
|
||||
*/
|
||||
|
||||
typedef struct keyword {
|
||||
string w_word;
|
||||
int w_value;
|
||||
} t_keyw, *p_keyw;
|
||||
|
||||
/*
|
||||
* The list of keywords, the most often used keywords come first.
|
||||
* Linear search is used, as there are not many keywords
|
||||
*/
|
||||
|
||||
static t_keyw resword[] = {
|
||||
{ "token", C_TOKEN },
|
||||
{ "avoid", C_AVOID },
|
||||
{ "prefer", C_PREFER },
|
||||
{ "persistent", C_PERSISTENT },
|
||||
{ "default", C_DEFAULT },
|
||||
{ "if", C_IF },
|
||||
{ "while", C_WHILE },
|
||||
{ "first", C_FIRST },
|
||||
{ "start", C_START },
|
||||
{ "lexical", C_LEXICAL },
|
||||
{ "onerror", C_ONERROR },
|
||||
{ "prefix", C_PREFIX },
|
||||
#ifdef NON_CORRECTING
|
||||
{ "substart", C_SUBSTART },
|
||||
{ "erroneous", C_ERRONEOUS },
|
||||
{ "illegal", C_ILLEGAL },
|
||||
#endif
|
||||
{ 0, 0 }
|
||||
};
|
||||
|
||||
static t_token savedtok; /* to save lextoken in case of an insertion */
|
||||
# ifdef LINE_DIRECTIVE
|
||||
static int nostartline; /* = 0 if at the start of a line */
|
||||
# endif
|
||||
|
||||
STATIC
|
||||
copyact(ch1,ch2,flag,level) char ch1,ch2; {
|
||||
/*
|
||||
* Copy an action to file f. Opening bracket is ch1, closing bracket
|
||||
* is ch2.
|
||||
* If flag & 1, copy opening and closing parameters too.
|
||||
* If flag & 2, don't allow ','.
|
||||
*/
|
||||
static int text_seen = 0;
|
||||
register FILE *f;
|
||||
register ch; /* Current char */
|
||||
register match; /* used to read strings */
|
||||
int saved = linecount;
|
||||
/* save linecount */
|
||||
int sav_strip = strip_grammar;
|
||||
|
||||
f = fact;
|
||||
if (ch1 == '{' || flag != 1) strip_grammar = 0;
|
||||
if (!level) {
|
||||
text_seen = 0;
|
||||
nparams = 0; /* count comma's */
|
||||
putc('\0',f);
|
||||
fprintf(f,"# line %d \"%s\"\n", linecount,f_input);
|
||||
}
|
||||
if (level || (flag & 1)) putc(ch1,f);
|
||||
for (;;) {
|
||||
ch = input();
|
||||
if (ch == ch2) {
|
||||
if (!level) {
|
||||
if (text_seen) nparams++;
|
||||
}
|
||||
if (level || (flag & 1)) putc(ch,f);
|
||||
if (strip_grammar != sav_strip) {
|
||||
if (ch1 == '{' || flag != 1) putchar(ch);
|
||||
}
|
||||
strip_grammar = sav_strip;
|
||||
return;
|
||||
}
|
||||
switch(ch) {
|
||||
case ')':
|
||||
case '}':
|
||||
case ']':
|
||||
error(linecount,"Parentheses mismatch");
|
||||
break;
|
||||
case '(':
|
||||
text_seen = 1;
|
||||
copyact('(',')',flag,level+1);
|
||||
continue;
|
||||
case '{':
|
||||
text_seen = 1;
|
||||
copyact('{','}',flag,level+1);
|
||||
continue;
|
||||
case '[':
|
||||
text_seen = 1;
|
||||
copyact('[',']',flag,level+1);
|
||||
continue;
|
||||
case '/':
|
||||
ch = input();
|
||||
unput(ch);
|
||||
if (ch == '*') {
|
||||
putc('/', f);
|
||||
skipcomment(1);
|
||||
continue;
|
||||
}
|
||||
ch = '/';
|
||||
text_seen = 1;
|
||||
break;
|
||||
case ';':
|
||||
case ',':
|
||||
if (! level && text_seen) {
|
||||
text_seen = 0;
|
||||
nparams++;
|
||||
if (ch == ',' && (flag & 2)) {
|
||||
warning(linecount, "Parameters may not be separated with a ','");
|
||||
ch = ';';
|
||||
}
|
||||
}
|
||||
break;
|
||||
case '\'':
|
||||
case '"' :
|
||||
/*
|
||||
* watch out for brackets in strings, they do not
|
||||
* count !
|
||||
*/
|
||||
text_seen = 1;
|
||||
match = ch;
|
||||
putc(ch,f);
|
||||
while((ch = input())) {
|
||||
if (ch == match) break;
|
||||
if (ch == '\\') {
|
||||
putc(ch,f);
|
||||
ch = input();
|
||||
}
|
||||
if (ch == '\n') {
|
||||
error(linecount,"Newline in string");
|
||||
unput(match);
|
||||
}
|
||||
putc(ch,f);
|
||||
}
|
||||
if (ch == match) break;
|
||||
/* Fall through */
|
||||
case EOF :
|
||||
if (!level) error(saved,"Action does not terminate");
|
||||
strip_grammar = sav_strip;
|
||||
return;
|
||||
default:
|
||||
if (c_class[ch] != ISSPA) text_seen = 1;
|
||||
}
|
||||
putc(ch,f);
|
||||
}
|
||||
}
|
||||
|
||||
scanner() {
|
||||
/*
|
||||
* Lexical analyser, what else
|
||||
*/
|
||||
register int ch; /* Current char */
|
||||
register char *p = ltext;
|
||||
int reserved = 0; /* reserved word? */
|
||||
char *max = <ext[LTEXTSZ - 1];
|
||||
static int nextexpr;
|
||||
int expect_expr = nextexpr;
|
||||
long off;
|
||||
|
||||
nextexpr = 0;
|
||||
if (savedtok.t_tokno) {
|
||||
/* A token has been inserted.
|
||||
* Now deliver the last lextoken again
|
||||
*/
|
||||
lextoken = savedtok;
|
||||
savedtok.t_tokno = 0;
|
||||
return lextoken.t_tokno;
|
||||
}
|
||||
for (;;) {
|
||||
ch = input();
|
||||
if (ch == EOF) return ch;
|
||||
# ifdef LINE_DIRECTIVE
|
||||
if (ch == '#' && !nostartline) {
|
||||
linedirective();
|
||||
continue;
|
||||
}
|
||||
# endif
|
||||
switch(c_class[ch]) {
|
||||
case ISACT :
|
||||
if (ch == '{') {
|
||||
copyact('{', '}', in_production, 0);
|
||||
return C_ACTION;
|
||||
}
|
||||
assert(ch == '(');
|
||||
if (expect_expr) {
|
||||
copyact('(', ')', 1, 0);
|
||||
return C_EXPR;
|
||||
}
|
||||
off = ftell(fact);
|
||||
copyact('(', ')', in_production != 0 ? 0 : 2, 0);
|
||||
if (nparams == 0) fseek(fact, off, 0);
|
||||
lextoken.t_num = nparams;
|
||||
return C_PARAMS;
|
||||
case ISLIT :
|
||||
for (;;) {
|
||||
ch = input();
|
||||
if (ch == '\n' || ch == EOF) {
|
||||
error(linecount,"Missing '");
|
||||
break;
|
||||
}
|
||||
if (ch == '\'') break;
|
||||
if (ch == '\\') {
|
||||
*p++ = ch;
|
||||
ch = input();
|
||||
}
|
||||
*p++ = ch;
|
||||
if (p > max) p--;
|
||||
}
|
||||
*p = '\0';
|
||||
lextoken.t_string = ltext;
|
||||
return C_LITERAL;
|
||||
case ISCOM :
|
||||
skipcomment(0);
|
||||
/* Fall through */
|
||||
case ISSPA :
|
||||
continue;
|
||||
case ISDIG : {
|
||||
register i = 0;
|
||||
do {
|
||||
i = 10 * i + (ch - '0');
|
||||
ch= input();
|
||||
} while (c_class[ch] == ISDIG);
|
||||
lextoken.t_num = i;
|
||||
unput(ch);
|
||||
return C_NUMBER; }
|
||||
default:
|
||||
return ch;
|
||||
case ISKEY :
|
||||
reserved = 1;
|
||||
ch = input();
|
||||
/* Fall through */
|
||||
case ISLET :
|
||||
do {
|
||||
if (reserved && ch >= 'A' && ch <= 'Z') {
|
||||
ch += 'a' - 'A';
|
||||
}
|
||||
*p++ = ch;
|
||||
if (p > max) p--;
|
||||
ch = input();
|
||||
} while (c_class[ch] == ISDIG || c_class[ch] == ISLET);
|
||||
unput(ch);
|
||||
*p = '\0';
|
||||
if (reserved) { /*
|
||||
* Now search for the keyword
|
||||
*/
|
||||
register p_keyw w;
|
||||
|
||||
w = resword;
|
||||
while (w->w_word) {
|
||||
if (! strcmp(ltext,w->w_word)) {
|
||||
/*
|
||||
* Return token number.
|
||||
*/
|
||||
if (w->w_value == C_IF ||
|
||||
w->w_value == C_WHILE) {
|
||||
nextexpr = 1;
|
||||
}
|
||||
return w->w_value;
|
||||
}
|
||||
w++;
|
||||
}
|
||||
error(linecount,"Illegal reserved word");
|
||||
}
|
||||
lextoken.t_string = ltext;
|
||||
return C_IDENT;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static int backupc; /* for unput() */
|
||||
static int nonline; /* = 1 if last char read was a newline */
|
||||
|
||||
input() {
|
||||
/*
|
||||
* Low level input routine, used by all other input routines
|
||||
*/
|
||||
register c;
|
||||
|
||||
if (c = backupc) {
|
||||
/* Last char was "unput()". Deliver it again
|
||||
*/
|
||||
backupc = 0;
|
||||
return c;
|
||||
}
|
||||
if ((c = getc(finput)) == EOF) {
|
||||
nonline = 0;
|
||||
return c;
|
||||
}
|
||||
# ifdef LINE_DIRECTIVE
|
||||
nostartline = 1;
|
||||
# endif
|
||||
if (!nonline) {
|
||||
linecount++;
|
||||
# ifdef LINE_DIRECTIVE
|
||||
nostartline = 0;
|
||||
# endif
|
||||
nonline = 1;
|
||||
}
|
||||
if (c == '\n') nonline = 0;
|
||||
if (strip_grammar) putchar(c);
|
||||
return c;
|
||||
}
|
||||
|
||||
unput(c) {
|
||||
/*
|
||||
* "unread" c
|
||||
*/
|
||||
backupc = c;
|
||||
}
|
||||
|
||||
skipcomment(flag) {
|
||||
/*
|
||||
* Skip comment. If flag != 0, the comment is inside a fragment
|
||||
* of C-code, so keep it.
|
||||
*/
|
||||
register int ch;
|
||||
int saved; /* line count on which comment starts */
|
||||
|
||||
saved = linecount;
|
||||
if (input() != '*') error(linecount,"Illegal comment");
|
||||
if (flag) putc('*', fact);
|
||||
do {
|
||||
ch = input();
|
||||
if (flag) putc(ch, fact);
|
||||
while (ch == '*') {
|
||||
ch = input();
|
||||
if (flag) putc(ch, fact);
|
||||
if (ch == '/') return;
|
||||
}
|
||||
} while (ch != EOF);
|
||||
error(saved,"Comment does not terminate");
|
||||
}
|
||||
|
||||
# ifdef LINE_DIRECTIVE
|
||||
STATIC
|
||||
linedirective() {
|
||||
/*
|
||||
* Read a line directive
|
||||
*/
|
||||
register int ch;
|
||||
register int i;
|
||||
string s_error = "Illegal line directive";
|
||||
string store();
|
||||
register string c;
|
||||
|
||||
do { /*
|
||||
* Skip to next digit
|
||||
* Do not skip newlines
|
||||
*/
|
||||
ch = input();
|
||||
} while (ch != '\n' && c_class[ch] != ISDIG);
|
||||
if (ch == '\n') {
|
||||
error(linecount,s_error);
|
||||
return;
|
||||
}
|
||||
i = 0;
|
||||
do {
|
||||
i = i*10 + (ch - '0');
|
||||
ch = input();
|
||||
} while (c_class[ch] == ISDIG);
|
||||
while (ch != '\n' && ch != '"') ch = input();
|
||||
if (ch == '"') {
|
||||
c = ltext;
|
||||
do {
|
||||
*c++ = ch = input();
|
||||
} while (ch != '"' && ch != '\n');
|
||||
if (ch == '\n') {
|
||||
error(linecount,s_error);
|
||||
return;
|
||||
}
|
||||
*--c = '\0';
|
||||
do {
|
||||
ch = input();
|
||||
} while (ch != '\n');
|
||||
/*
|
||||
* Remember the file name
|
||||
*/
|
||||
if (strcmp(f_input,ltext)) f_input = store(ltext);
|
||||
}
|
||||
linecount = i;
|
||||
}
|
||||
# endif
|
||||
|
||||
STATIC string
|
||||
vallookup(s) {
|
||||
/*
|
||||
* Look up the keyword that has token number s
|
||||
*/
|
||||
register p_keyw p = resword;
|
||||
|
||||
while (p->w_value) {
|
||||
if (p->w_value == s) return p->w_word;
|
||||
p++;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
STATIC string
|
||||
cpy(s,p,inserted) register string p; {
|
||||
/*
|
||||
* Create a piece of error message for token s and put it at p.
|
||||
* inserted = 0 if the token s was deleted (in which case we have
|
||||
* attributes), else it was inserted
|
||||
*/
|
||||
register string t = 0;
|
||||
|
||||
switch(s) {
|
||||
case C_IDENT :
|
||||
if (!inserted) t = lextoken.t_string;
|
||||
else t = "identifier";
|
||||
break;
|
||||
case C_NUMBER :
|
||||
t = "number";
|
||||
break;
|
||||
case C_LITERAL :
|
||||
if (!inserted) {
|
||||
*p++ = '\'';
|
||||
t = lextoken.t_string;
|
||||
break;
|
||||
}
|
||||
t = "literal";
|
||||
break;
|
||||
case C_ACTION:
|
||||
t = "C action";
|
||||
break;
|
||||
case C_PARAMS:
|
||||
t = "C parameter section";
|
||||
break;
|
||||
case C_EXPR:
|
||||
t = "C expression";
|
||||
break;
|
||||
case EOFILE :
|
||||
t = "end-of-file";
|
||||
break;
|
||||
}
|
||||
if (!t && (t = vallookup(s))) {
|
||||
*p++ = '%';
|
||||
}
|
||||
if (t) { /*
|
||||
* We have a string for the token. Copy it
|
||||
*/
|
||||
while (*t) *p++ = *t++;
|
||||
if (s == C_LITERAL && !inserted) {
|
||||
*p++ = '\'';
|
||||
}
|
||||
return p;
|
||||
}
|
||||
/*
|
||||
* The token is a literal
|
||||
*/
|
||||
*p++ = '\'';
|
||||
if (s >= 040 && s <= 0176) *p++ = s;
|
||||
else {
|
||||
*p++ = '\\';
|
||||
switch(s) {
|
||||
case '\b' : *p++ = 'b'; break;
|
||||
case '\f' : *p++ = 'f'; break;
|
||||
case '\n' : *p++ = 'n'; break;
|
||||
case '\r' : *p++ = 'r'; break;
|
||||
case '\t' : *p++ = 't'; break;
|
||||
default : *p++='0'+((s&0377)>>6); *p++='0'+((s>>3)&07);
|
||||
*p++='0'+(s&07);
|
||||
}
|
||||
}
|
||||
*p++ = '\'';
|
||||
return p;
|
||||
}
|
||||
|
||||
string strcpy();
|
||||
|
||||
LLmessage(d) {
|
||||
/*
|
||||
* d is either 0, in which case the current token has been deleted,
|
||||
* or non-zero, in which case it represents a token that is inserted
|
||||
* before the current token
|
||||
*/
|
||||
register string s,t;
|
||||
char buf[128];
|
||||
|
||||
nerrors++;
|
||||
s = buf;
|
||||
if (d < 0) {
|
||||
strcpy(buf, "end-of-file expected");
|
||||
}
|
||||
else if (d == 0) {
|
||||
#ifdef LLNONCORR
|
||||
t = " unexpected";
|
||||
#else
|
||||
t = " deleted";
|
||||
#endif
|
||||
s = cpy(LLsymb,s,0);
|
||||
do *s++ = *t; while (*t++);
|
||||
} else {
|
||||
s = cpy(d,s,1);
|
||||
t = " inserted in front of ";
|
||||
do *s++ = *t++; while (*t);
|
||||
s = cpy(LLsymb,s,0);
|
||||
*s = '\0';
|
||||
}
|
||||
if (d > 0) { /*
|
||||
* Save the current token and make up some
|
||||
* attributes for the inserted token
|
||||
*/
|
||||
savedtok = lextoken;
|
||||
savedtok.t_tokno = LLsymb;
|
||||
if (d == C_IDENT) lextoken.t_string = "dummy_identifier";
|
||||
else if (d == C_LITERAL) lextoken.t_string = "dummy_literal";
|
||||
else if (d == C_NUMBER) lextoken.t_num = 1;
|
||||
}
|
||||
#ifdef LLNONCORR
|
||||
else
|
||||
#endif
|
||||
error(linecount, "%s", buf);
|
||||
/* Don't change this line to
|
||||
* error(linecount, buf).
|
||||
* The string in "buf" might contain '%' ...
|
||||
*/
|
||||
#ifdef LLNONCORR
|
||||
in_production = 1;
|
||||
/* To prevent warnings from copyact */
|
||||
#endif
|
||||
}
|
||||
}
|
||||
272
util/LLgen/src/types.h
Normal file
272
util/LLgen/src/types.h
Normal file
@@ -0,0 +1,272 @@
|
||||
/* Copyright (c) 1991 by the Vrije Universiteit, Amsterdam, the Netherlands.
|
||||
* For full copyright and restrictions on use see the file COPYING in the top
|
||||
* level of the LLgen tree.
|
||||
*/
|
||||
|
||||
/*
|
||||
* L L G E N
|
||||
*
|
||||
* An Extended LL(1) Parser Generator
|
||||
*
|
||||
* Author : Ceriel J.H. Jacobs
|
||||
*/
|
||||
|
||||
/*
|
||||
* $Id$
|
||||
* Type and structure definitions
|
||||
*/
|
||||
|
||||
typedef int *p_set; /* pointer to bitset */
|
||||
typedef char *p_mem; /* pointer to some core */
|
||||
typedef char *string;
|
||||
|
||||
/*
|
||||
* structure for a token
|
||||
*/
|
||||
typedef struct token {
|
||||
int t_tokno; /* Lexical token number */
|
||||
union {
|
||||
string t_s; /* Attribute is either a string or */
|
||||
int t_v; /* an integer */
|
||||
} t_x;
|
||||
# define t_string t_x.t_s
|
||||
# define t_num t_x.t_v
|
||||
int t_flags;
|
||||
int t_next;
|
||||
int t_lineno;
|
||||
} t_token, *p_token;
|
||||
|
||||
/*
|
||||
* structure for the grammar elements
|
||||
*/
|
||||
typedef struct gram {
|
||||
int x; /* for lay-out see comment below */
|
||||
int g_lineno; /* element found on this line number */
|
||||
#ifdef NON_CORRECTING
|
||||
int g_erroneous; /* 1 if element declared erroneous */
|
||||
#endif
|
||||
union {
|
||||
int g_index;
|
||||
struct term * g_term;
|
||||
struct link * g_link;
|
||||
#ifdef NON_CORRECTING
|
||||
/* If this is an action with a %substart g_subparse
|
||||
points to the list of startsymbols of the subparser */
|
||||
struct ff_firsts *g_subparse;
|
||||
#endif
|
||||
} g_i;
|
||||
} t_gram,*p_gram;
|
||||
|
||||
/*
|
||||
* Layout of the field x:
|
||||
*
|
||||
* 15 ....... 7 6 ........ 3 2 .... 0
|
||||
* -----------------------------------
|
||||
* | unused | | nparams | | type |
|
||||
* -----------------------------------
|
||||
*/
|
||||
# define EORULE 00 /* End of (sub)rule */
|
||||
# define ACTION 01 /* Imbedded action */
|
||||
# define NONTERM 02 /* A nonterminal */
|
||||
# define TERMINAL 03 /* A terminal */
|
||||
# define TERM 04 /* Something between square brackets */
|
||||
# define ALTERNATION 05 /* Alternation (|) */
|
||||
# define LITERAL 06 /* Also a terminal */
|
||||
|
||||
/*
|
||||
* Access macros for the x-field of a grammar element
|
||||
*/
|
||||
# define g_gettype(p) ((p)->x&07)
|
||||
# define g_getcont(p) ((p)->g_i.g_index)
|
||||
# define g_getterm(p) ((p)->g_i.g_term)
|
||||
# define g_getlink(p) ((p)->g_i.g_link)
|
||||
# define g_getnpar(p) (((p)->x>>3)&017)
|
||||
# define g_settype(p,s) { assert(((unsigned)(s))<=07);(p)->x=((p)->x&~07)|(s);}
|
||||
# define g_setcont(p,s) ((p)->g_i.g_index=(s))
|
||||
# define g_setterm(p,s) ((p)->g_i.g_term = (s))
|
||||
# define g_setlink(p,s) ((p)->g_i.g_link = (s))
|
||||
# define g_setnpar(p,s) { assert(((unsigned)(s))<=017);(p)->x=((p)->x&~0170)|((s)<<3);}
|
||||
#ifdef NON_CORRECTING
|
||||
# define g_getsubparse(p) ((p)->g_i.g_subparse)
|
||||
# define g_setsubparse(p,s) ((p)->g_i.g_subparse = (s))
|
||||
#endif
|
||||
/*
|
||||
* Some constants to communicate with the symbol table search routine
|
||||
*/
|
||||
# define UNKNOWN 00 /* Not equal to NONTERM, TERMINAL or LITERAL */
|
||||
|
||||
/*
|
||||
* Some constants for safety
|
||||
*/
|
||||
# define SAFE 0 /* Indicates that a scan is done, and that the
|
||||
* token is correct
|
||||
*/
|
||||
# define SAFESCANDONE 1 /* Indicates that a scan is done, and that the
|
||||
* token will not be skipped
|
||||
*/
|
||||
# define SCANDONE 2 /* Indicates that a scan is done */
|
||||
# define NOSCANDONE 3 /* Indicates that no scan is done */
|
||||
# define NOSAFETY 4 /* Safety not yet computed */
|
||||
|
||||
/*
|
||||
* nonterminal structure
|
||||
*/
|
||||
typedef struct {
|
||||
int n_flags; /* low order four bits are reserved
|
||||
* the parameter count
|
||||
*/
|
||||
# define getntparams(p) ((p)->n_flags&017)
|
||||
# define setntparams(p,i) {assert(((unsigned)(i))<=017);(p)->n_flags&=~017;(p)->n_flags|=(i);}
|
||||
# define GENSTATIC 01000 /* set if routine can be made static */
|
||||
# define RECURSIVE 02000 /* Set if the default rule is recursive */
|
||||
# define PARAMS 04000 /* tells if a nonterminal has parameters */
|
||||
# define EMPTY 010000 /* tells if a nonterminal produces empty */
|
||||
# define LOCALS 020000 /* local declarations ? */
|
||||
# define REACHABLE 040000 /* can this nonterminal be reached ? */
|
||||
# define VERBOSE 0100000 /* Set if in LL.output file */
|
||||
char n_insafety;
|
||||
char n_outsafety;
|
||||
# define getntsafe(p) ((p)->n_insafety)
|
||||
# define setntsafe(p,i) {assert(((unsigned)(i))<=NOSAFETY);(p)->n_insafety=(i);}
|
||||
# define getntout(p) ((p)->n_outsafety)
|
||||
# define setntout(p,i) {assert(((unsigned)(i))<=NOSAFETY);(p)->n_outsafety=(i);}
|
||||
int n_count; /* pieces of code before this rule */
|
||||
int n_lineno; /* declared on line ... */
|
||||
p_gram n_rule; /* pointer to right hand side of rule */
|
||||
union {
|
||||
p_set n_f; /* ptr to "first" set */
|
||||
string n_s; /* If this nonterminal is not declared,
|
||||
* This field indicates the filename in
|
||||
* which it occurred
|
||||
*/
|
||||
} n_x;
|
||||
# define n_first n_x.n_f
|
||||
# define n_string n_x.n_s
|
||||
#ifdef NON_CORRECTING
|
||||
p_set n_nc_first; /* Pointer to non-corr first set */
|
||||
p_set n_nc_follow; /* Pointer to non-corr follow set */
|
||||
#endif
|
||||
p_set n_follow; /* pointer to the "follow" set */
|
||||
p_set n_contains; /* pointer to symbols that can be produced */
|
||||
string n_name; /* name of nonterminal */
|
||||
int n_next; /* index of next nonterminal */
|
||||
long n_off; /* index of parameters in action file */
|
||||
} t_nont, *p_nont;
|
||||
|
||||
/*
|
||||
* hash table structure
|
||||
*/
|
||||
typedef struct h_entry {
|
||||
string h_name; /* pointer to name */
|
||||
t_gram h_type; /* Type and index */
|
||||
struct h_entry *h_next; /* next in hash chain */
|
||||
} t_entry, *p_entry;
|
||||
|
||||
/*
|
||||
* link structure to link alternations
|
||||
*/
|
||||
typedef struct link {
|
||||
unsigned int l_flag;
|
||||
# define COND 01 /* Set if this alternative has a %if */
|
||||
# define DEF 02 /* This alternative is default */
|
||||
# define PREFERING 010 /* %prefer */
|
||||
# define AVOIDING 020 /* %avoid */
|
||||
# define NOCONF 01000 /* Set if there is a resolver without
|
||||
* conflict
|
||||
*/
|
||||
p_gram l_rule; /* pointer to this rule */
|
||||
p_set l_symbs; /* set, when to take this rule */
|
||||
#ifdef NON_CORRECTING
|
||||
p_set l_nc_symbs;
|
||||
#endif
|
||||
p_set l_others; /* set, when to take another rule */
|
||||
} t_link, *p_link;
|
||||
|
||||
/*
|
||||
* Structure for a repitition specification
|
||||
*/
|
||||
typedef int t_reps,*p_reps;
|
||||
|
||||
# define FIXED 00 /* a fixed number */
|
||||
# define STAR 01 /* 0 or more times */
|
||||
# define PLUS 02 /* 1 or more times */
|
||||
# define OPT 03 /* 0 or 1 times */
|
||||
|
||||
/*
|
||||
* Access macros for repitition in term
|
||||
*/
|
||||
# define r_getkind(q) ((q)->t_repeats&03)
|
||||
# define r_getnum(q) (((q)->t_repeats>>2)&037777)
|
||||
# define r_setkind(q,s) { assert(((unsigned)(s))<=03);(q)->t_repeats=((q)->t_repeats&0177774)|(s);}
|
||||
# define r_setnum(q,s) { assert(((unsigned)(s))<=037777);(q)->t_repeats=((q)->t_repeats&03)|((s)<<2);}
|
||||
|
||||
/*
|
||||
* header structure for a term
|
||||
*/
|
||||
typedef struct term {
|
||||
t_reps t_repeats;
|
||||
int t_flags; /* Low order three bits for safety */
|
||||
# define gettout(q) ((q)->t_flags&07)
|
||||
# define settout(q,i) {assert(((unsigned)(i))<=NOSAFETY);(q)->t_flags&=~07;(q)->t_flags|=i;}
|
||||
# define PERSISTENT 010 /* Set if this term has %persistent */
|
||||
# define RESOLVER 020 /* Set if this term has %while */
|
||||
# define EMPTYFIRST 0100 /* Error, empty first */
|
||||
# define EMPTYTERM 0200 /* Error, term can produce empty */
|
||||
/* # define NOCONF 01000 see link structure */
|
||||
|
||||
p_gram t_rule; /* pointer to this term */
|
||||
p_set t_follow; /* set of followers */
|
||||
p_set t_first; /* set of firsts */
|
||||
#ifdef NON_CORRECTING
|
||||
p_set t_nc_first; /* set of non corr firsts */
|
||||
p_set t_nc_follow; /* set of non corr followers */
|
||||
#endif
|
||||
p_set t_contains; /* contains set */
|
||||
} t_term, *p_term;
|
||||
|
||||
/*
|
||||
* structure for firstmacros list
|
||||
*/
|
||||
typedef struct ff_firsts {
|
||||
string ff_name; /* Name of the macro */
|
||||
int ff_nont; /* for this nonterminal */
|
||||
struct ff_firsts *ff_next;
|
||||
} t_first, *p_first;
|
||||
|
||||
/*
|
||||
* structure for start symbol list
|
||||
*/
|
||||
typedef t_first t_start;
|
||||
typedef p_first p_start;
|
||||
|
||||
/*
|
||||
* structure for file names and info
|
||||
*/
|
||||
typedef struct f_file {
|
||||
string f_name; /* File name */
|
||||
p_first f_firsts; /* ptr to list of firstmacros that must be
|
||||
* generated in the target file for this
|
||||
* grammar file
|
||||
*/
|
||||
int f_nonterminals; /* list of nonterminals in this file */
|
||||
int f_terminals; /* list of terminals in this file */
|
||||
p_set f_used; /* set of nonterminals used in this file */
|
||||
} t_file, *p_file;
|
||||
|
||||
typedef struct info_alloc {
|
||||
/*
|
||||
* Structure used for dynamically growing arrays
|
||||
*/
|
||||
unsigned i_size; /* Size of the array */
|
||||
unsigned i_esize; /* Size of an element */
|
||||
unsigned i_incr; /* When filled, add room for i_incr elements */
|
||||
p_mem i_ptr; /* ptr to base of array */
|
||||
p_mem i_max; /* ptr to first free */
|
||||
p_mem i_top; /* ptr to top of array */
|
||||
} t_info, *p_info;
|
||||
|
||||
# ifdef NDEBUG
|
||||
# define STATIC static
|
||||
# else /* not NDEBUG */
|
||||
# define STATIC extern
|
||||
# endif /* not NDEBUG */
|
||||
@@ -1,78 +0,0 @@
|
||||
d=../..
|
||||
l=$d/mach/m68k2/lib
|
||||
h=$d/h
|
||||
ASS_PATH=$l/em_ass
|
||||
CC=pmds
|
||||
|
||||
SEP_OPT=-n
|
||||
|
||||
CFLAGS=-O -.c
|
||||
|
||||
all: ass$(SEP_OPT)
|
||||
|
||||
clean:
|
||||
-rm -f ass-i ass-n *.o maktab *.old asstb.c
|
||||
|
||||
install : all
|
||||
cp ass$(SEP_OPT) $(ASS_PATH)
|
||||
|
||||
cmp : all
|
||||
cmp ass$(SEP_OPT) $(ASS_PATH)
|
||||
|
||||
lint: ass00.c ass30.c ass40.c ass50.c ass60.c ass70.c \
|
||||
ass80.c assci.c assda.c assrl.c asstb.c asscm.c
|
||||
lint -hpvbx \
|
||||
ass00.c ass30.c ass40.c ass50.c ass60.c ass70.c \
|
||||
ass80.c assci.c assda.c assrl.c asstb.c asscm.c
|
||||
|
||||
|
||||
ass-n: ass00.o ass30.o ass40.o ass50.o ass60.o ass70.o \
|
||||
ass80.o assci.o assda.o assrl.o asstb.o asscm.o \
|
||||
$l/em_data.a
|
||||
$(CC) $(CFLAGS) -s -o ass-n \
|
||||
ass00.o ass30.o ass40.o ass50.o ass60.o ass70.o \
|
||||
ass80.o assci.o assda.o assrl.o asstb.o asscm.o \
|
||||
$l/em_data.a >ass.symb
|
||||
|
||||
ass-i: ass00.o ass30.o ass40.o ass50.o ass60.o ass70.o \
|
||||
ass80.o assci.o assda.o assrl.o asstb.o asscm.o \
|
||||
$l/em_data.a
|
||||
$(CC) -i $(CFLAGS) -o ass-i \
|
||||
ass00.o ass30.o ass40.o ass50.o ass60.o ass70.o \
|
||||
ass80.o assci.o assda.o assrl.o asstb.o asscm.o \
|
||||
$l/em_data.a
|
||||
|
||||
ass00.o ass40.o ass60.o ass70.o ass80.o assrl.o: \
|
||||
$h/local.h $h/em_spec.h $h/as_spec.h \
|
||||
$h/em_flag.h $h/arch.h ass00.h assex.h
|
||||
|
||||
assci.o: $h/local.h $h/em_spec.h $h/as_spec.h \
|
||||
$h/em_flag.h $h/em_mes.h $h/em_pseu.h \
|
||||
$h/em_ptyp.h $h/arch.h ass00.h assex.h
|
||||
|
||||
ass30.o ass50.o : \
|
||||
$h/local.h $h/em_spec.h $h/as_spec.h \
|
||||
$h/em_flag.h ip_spec.h ass00.h assex.h
|
||||
|
||||
ass80.o: $h/em_path.h
|
||||
|
||||
assda.o: $h/local.h $h/em_spec.h $h/as_spec.h \
|
||||
$h/em_flag.h $h/arch.h ass00.h
|
||||
|
||||
asscm.o: ass00.h
|
||||
|
||||
asstb.o: asstb.c
|
||||
|
||||
asstb.c: maktab ip_spec.t
|
||||
maktab ip_spec.t asstb.c
|
||||
|
||||
maktab: maktab.c $h/em_spec.h ip_spec.h $h/em_flag.h \
|
||||
$l/em_data.a
|
||||
$(CC) -O -o maktab maktab.c $l/em_data.a
|
||||
|
||||
opr:
|
||||
make pr ^ opr
|
||||
|
||||
pr:
|
||||
@(pr ass00.h assex.h ip_spec.h ass?0.c ass[rcd]?.c \
|
||||
maktab.c ; pr -3 ip_spec.t)
|
||||
Reference in New Issue
Block a user