Description: Revisions to merge not in other sets
This file as text.
(active) Revisions in this set:
a34d4e715ce6bfda8a0c07be4fbfb53f1690808a,6a612f90032fe3b129865fcfa59ed5191638faab,aa7bddc62129bf70e79272e11a492f2b66a15d17
4212b6a92f513812e59fe0072a1f66b79326da90,4f573b50adbd33a2b3d9daacc86cefe5edb68b48,5db8d6bd5eca39bd1205cf3b355a953d219fb9bc
fe47db32be35d0de7ee99d09e0fc6f51c0bac52e,a51c06f90760b864d865b1956eb754062cf77857,47b8bf5924b835920fbf3d2f27137437c3c056de
d9c109a4dd3e17405a567f2ebd657723dd86d259,6f411d6355156913f10c37aa700e1559a1a498c2,5c20481c7b0e0521e0747df6355b969dfee293ba
ad6897ffd87d759c5140bd4c4f7de76c2d8898b9,25878f9eb2e6859a2b9a64639a8f3fff25a6ff7c,e53cb61b1122262554c744b8a9a5e10f11bdc870
d6c5a1799ced537479b012392478218b5aa59ef6,008c1436d808d779dc129b38155ca2c5d7d68f23,c652cd629acfb86e787765e3d1c4e88b5b1f32b1
b7dd63094fd75b6cb8e04498806eb0d98f2709b1,84ebe96d41c2fbcbccbcc2573bb7783e18bcaf68,bfb4b885cadeb195c7c404c95cd6720b14e9455a
d8298c9f14ffe98e06a766597f8af54c81ead38a,90d2982977b802d664d3f9f2d5028693d894ceba,b3c579f49c891b155f6b89539ad22bd12630555f
81848157808ef123a1cb244b71d366abeee39aa7,22ab6dd329e69675fb1a213e2860c743539e7082,df28fdcbf8b4ab20479d264ddf92b0737d5585f0
6b9d3ead7a3c196651d09b8b6c12d8fadb556022,38d0a9af48bf9668da9b831a5c7248cc002242ee,47b5d0b92edf48e9dc7580137262bf2b60076412
c8307d402283288be0859c18336a8a7446f3c765,375cc2b44343b143fef34d06aeec506708a59d22,48617611500cd54cb7f8fa6b32f3ba665251815b
3a76f9f477ae96a04700f8db2a66913830df3dfc,c474b95dfcb780807fbc982182cabe6a586e05f1,41b17115895bc992f9c34aa8385be55f4079c75e
f3c377f8d1e689d70f39e831701ab243162030c2,25c6f3a667b24d7d9f9f165e0a5eb6b37dadb357,c152796bf3a25f2a9fbc9fdd67f0d1cdb31dbca4
5c898fe795be88b59ae3c650abe9d5981a9dcead,bfa5bf80e20e47101e4253f920895acb098436b4,4e06d66d7fb98e634e4e86a1d43f3856da429fec
96c52ef16d0848d46da5c47e5981d09cca082d94,f095bc59b01f7edce0764dab8c3634c19bbfbb50,1e1c17cb61713093bef48b63540533a7692e6e22
8cf26b7a0fd84602757dd7e2bd0dc788f6ed3c4b,08949c86bf39b7432bc36bfd13f219aecac21646,ef099b20756f61a6c9a9be44f63314907393ff83
4b84de6a72df0b82b9217cb336190203b263055a,d72170f9a33cc70bff2748a07978964d28526d38,7e0c21fa5fffcbf548f70ca3d59e436ff3d6a045
297f468cd6677a0d16b78c36ae34df5f33f1f63e,a17ad61240ee2a0c6ab6c3b384437a0d1836fb52,e35e5ad34914c11ae2c76a7c2f45334cde844503
40b7af10257e530132327cf4d3d90f911fbc5269,4f05523db92992b8fd91fc7d7620c5ae267b08bc,98d3473a1a699919fa8e27f616cb2e2e660c2430
514db355b1fce2eaedf4efd2ac2b637946f4efe4,b5725ac3ed071ec564e8f49a80e89b9d46b54bf6,38ddf2e8c5883189c13fdce704f28862c91fec07
5dbd9eb2e059de506eb9e13317b7645db130918a,de62cb8b021a39dcbd2835e2c8459d492afee10f,2b73b5bf9a867a8d7b6527835bcd0c9cf657aab6
5677ef4bdd585b07b2669cc38e3aa519a528a4d6,26253b9e88b568da27460734798b26555ec58eac,9bc0f62f45d9fb8291d16e760abdd7d60b7199db
80bd080293c5e81123da68799d866a28a1dc55e8,4ab485225c97d77ecd8e9bb7d1836d97da0ab461,8c06529ae21c71b8f9251628d1265ec31c2b0ae2
0c22ee86781c2aae8457bddae8b88fbfc38b6cfb,71887b902b76261ed14f8cdab37723f585c89125,00efaece74a2d399971a8aece991fac38cc7fc70
8735d09894a9162ff2e4d73181f8c2748bef6b6c,d399df83ba9478ed63150abb045fb2db9fb2a186,4c209a7dc2aa1f0fe43b104255d7d7670942bd4d
7fbda0e0e8b1d071e72ccbc5e487dbb1c2173c63,2ed3bfb58771edfb9882e193506554f1a52051d2,869f6993911b6bbfbe48c424077413f6510eb3ea
2d255cec9146f690285cf34bd56e49a6065da38b,3ea0c335c9e22f066f59fdb7f0e6cf4529d701ac,ff71c51e4ec7950e7297c57178a3e575ed2bd83e
9b61b538d8216a27fc02e03c203ddaaf5ca1b96b,0d895c5826f0425712611001128e5575e06b392b,8b779975aa1d93f7a4e64b280ff02179dcff0d70
d712c64236a3e5d684975ee2a94a77c17141ceb0,e6f01065ec67ea82b1d8a4484f07d4680be82b8e,755c574a87c2505c793dc7fa51fdcb2c572ace70
4166e8c46409c6730e19c5dd3b1cc651b7bcc1de,8f61df817aa2d6f254ab5f118f569b826079806d,822b46009626d3893cf23c2159d3a632f2c1168a
3c205f895c6499b31004cb82a58942d69c34a42b,4de8ca83938b98367f4326d5cdb993521173288a,90afbc81146d59c0cd85d73f7cb8e8091fdc4c8c
73448deda64923dae27270f9eaf7f3b9b9bf2987,97b2f7a5e13190319754c19a688e000f8a6f50d7,4236bee6f1832b11845869ffe99cb8ea0a96a230
5ca73c61f4d95f688a592a93cea607417a734c9c,6c0b79c258dbb242931b90418c458b610ef018ea,fafee8b85b91942bd60adba63c1348a6d89d5177
cebf880df914dceb662155d130bc6b565dc65a35,f0d92b74c1341cc1d09177718accb889d3791aa3,c5a128fae7e1c7671b05bbe286b4bf927a6c67b2
5d826cfe3cf1bcb0c5da68e0d584ddeb6a3220f9,352435cb75c53e081baf0dd311fc6cf90a804884,777d536d9bc826fcf5d580dd80ba2c25a73de1ee
d354428f42a29010872e8aa19afc7cc2c3b1418d,26f4d957a0e50653dfac5a7e594d30154146fe89,bfe3afbc62ae65e79ffac64f12a2ce2e884388d2
bff09e8e9e2f6e09d351387fd22b1849c5975ce8,bdc826cc18a03a833735853c0c91268c992e8592,e1698a59691361696e8ba2db1914f70b9d195762
b876a02daf2e8ea67b4b6a3aad8a3a96a6445e0d,f4580ff612b2e24eccac30c99a709019ef4dd457,b760863046f7d2f921c8a9144c94374863a806da
cd6bc9aeb7642f5430b0a3aaf49143a6e1c41041,e994bacbba097fa4cf38f59e9772c7b9b5ccbaed,b0459a19f48ea41596fd1f0ca61afa1f7598d5d7
d9eae2c2c593f27253aeaea98b12199929d9db3e,567409379f3af31904f0a0ba408d8d178bcd34f3,5dcdfeb1260176b94ee89e1e1d0d1e77bc7b811b
b00fdb72059306064217faf72a99cd3e315515ab,b54068d1a457de5db08ca831f0edd5470c23fa71,dde8f54ee70849c6a179f126f085c6dcc5eff9eb
f590e65c7b45c8b5c559574decca3eec95b39c13,bb182470a563483803883b01f1a9b4ea3cd7d0fc,4aebfe97a95cd9b3dfb331f1329854e37691ae0e
ebdb90b1a5788b56d4a0396cef9a0f83c40b04ab,8362ee0e5f818a1b5ddb2d0b090676d412ceb360,a5811a35a91f955918edf249650b67fd7d8e3dad
1aed740440643b0fe4a0dfb28d26e2a6cf4aa88d,9b7f24841c7302b0bd35fba42f00e9409097e622,2e8321e0fa8ade82c71aebe4ec31a1f52f742584
1e90a4db3e9908fe0f06bafb801c967aa9c1c0c5,fecb72fea3fe979c2875c8a94cfcc7da6f1249f9,a237aaa1f5c4938272e7424dcc806d16d78ea78f
93494bf8bf41ca0dc37b698bc2852cb82687b609,a4e2d7462665ffdcb27d9d25ec1b2acd58063887,22b3268ac75ebf44e095572f57af6fd97576bae1
c9ec57bd737aa00cc132ea3418d2f4ef07dd3fdf,685f72ca2f5682d153800a11dc5d25acbe97e455,46ab8d79a28979dd94e0a36eece2420e57c67ceb
f56b6728a522fec1494b28f36aa18d89db1e97b2,79cf1dd9cfe47b43d7c057709006b0206e8a0079,3c5d6e72240dbb968f42f50c8fe7eb0783a0c16a
af49e3dc9f1e35a1d036e119934985b5e5fe1e3a,12ef9a4a223ec54c16cbe96a8107c7aa26380cbe,0b1734cc04e76d2a7972c39ffc77b7d0bcb16455
c223ae3610c215340a1fe34c61c9e6b7f8f454b1,850ba0bc7432168157aa582698976ea2e80b6cc3,38706a17134fb8307724dee4fa8fbb1dfbc523a8
ecef61e9c5413d254616d4bae10e0c993177d3ab,39836e2d37ae11f4052cfa527394994d61495a44,f8358977616796818531c57569d61af710be69c2
dea81f4f60174483f0c61a77dfb2a63dc117efb3,49f45764ec0dcb35b5fdb3cdf86473752dd63d61,39627cbdfb488c9dd0653f576737448098284226
0d03cad279240f219a5f01b21207e751e4c38609,82ccc863efd606b8c2592bf947b7381f17759609,a68884f7502941e37b4a51b525b1698a04d4eb3d
f183b2952ea5438993f4395e47bbc8694f3ea6b5,652e75f8ec7e0705b4c394cbf906894afece306e,31f74f65b082f33402f3e59ca04ed36461c0f1c7
6bbefcae9e4c96887653d17331b3dd616a654440,bdd26766ed25c0cc6b9dd83861d2f3dadbbb2022,ac95c20c5a0fa5387aa87a963ef224fb86bcffe7
b90b6f2b872f203eca409cd31f863fc8567f6445,4e5916d17d69e79b1b2fd27032fd8bdd7b996b23,bcdc75cecfae395076c02ecb822f670d41632971
4df9da6c15e8b2492a75f7fd2dcb75a047307bc3,86b774e792a8454aaa2523b45f6492b488dd42cf,5d6ef0f70cd44d289fc6619e57826bf53e4aee7b
41dbedfe2275bb536a9eff35bb1054ce1f64b2b3,ec97a511d5ff005877006ba199a287a7f4287872,a45ba3add5f08399745e8f6f4e4eff58a63c5853
be4a317cb463f031e91527ca4e74ce03c7e3d661,7bcefd287d8109ed80190797e33bb5422395436a,c89848a00f59cc2539c5ff3862a547218129f594
229d88c50fc0b4d07f7c1c51923f7acf59c896a7,ae4c8359aabf282d0e1047ab9b5d89cfda3e8928,e63cc73cfa4672c92b7ebfd3600aa18683bab528
36073c1b6511134bc0a2312abc943844d22261ae,78666090c2673dd7eeb75864797301aea9adcab1,e2d86ad66a13ed9fece73ed3afa086a728441da9
12aa48602bcd35b2013f97782520ca209bd4bd30,3e6d4bf1cc120e5885356af1cc3b0e93101fddaf,18243942d2ef5265f6e976cb233629ec53949d2f
1e84d0a56abaa84936d378ab9f7cfa413d693b10,cb669e7e747db5666fe9db6c630e1dbb4031a378,4614ce4ea24cf825a08157b3b67b57ec00af4af1
ec3190b85b1fcc4463aad5d3f054bda8c51b266d,be0b4965884892bc78bc0b8f2daa37e1e397f81f,6577f42034f4de81acaffe07cad30c8d2e8fe996
eeb9753d1851b53146986891f05606b87f19c890,16186735c45755b13f45a1b24fb58f05f1cdb7a2,e928b0a48cd1d6687f1e590ebe63d0a8d359876b
64af662b4114eb3c7305246c27e166f3ef169ecc,25c96e9227111284e52b3375ac341e4985b2bb88,4f45d7afc4550ba12695e7c9057eb062a92e4713
911df41c60b480d6efeee1a5e29968c52a8656f7,d65de901db648e6a8254722bbddc6be1075cd119,2c77416da0bf340fdafd5fb0acb896ca43c02ec6
4b1681aa1e9a16b3afcc3af4a4fffc0520d4d850,a2caccd31fc027a71216ac85372336fea1a209d8,7cba4bffa14f25487f58850c74d80bcb29e6b912
306e156b2bd329bd6e56267a23379291f1857614,7c538b17976e30802293f19690d9c54b2ec6a3e6,bd2b954ae59fdee3e94f7bafeb43a527a5e8c2e2
fc32211dd22c4f5b2ebbdf25a901e20c68627b37,a7cc9d55cf1b0677ee6e212d0bdda7d5f0e0c8e2,810f54ac071f95fa1022874a8b737b7f14bab199
45b5f58c4ae667abe3541fc213540ab9922743f2,304372262a90db77c9fa5b24b358c4de63693054,af5a10946de0e9a3f4a12a5ed30007509043ac99
2ca6f178fb4439be72b093c25c318396eab5238b,88459e680cdc6ee850c95189ee2dec658370b2db,8f6b6ccde59d9fadf63b6e40ed88fee0993ba0be
1d331117b5edf89f43cfa71036b9029186d5eb18,83cad83c35b4340170ed66fb58c97966f344dd26,57353df68fbf82350fb2dbb70492bf35b7ea6e84
485944b49288e248294564139ffc378d4caff964,4e9c267af949d7c625a1b84c08f6530ae8126d48,f96476b4fc116fb4a4d0e457841a1b99543d926e
a5ad266065adf90fd69fefc6230ad8779f066f03,24d2bcebdd0f2ddc1f28a9f60d40f7a596210901,a17efde2a32938708ba22689d8d29558601030a0
5ce739135b524b05d003f5daecbc7b31f5866363,46ca9f437ae89a6e82d3472ea59ffbf72002a48b,b849d92589642d3712afa9becd310756e21dae32
abd1e72e9db3d30201a1b0d15561da90b274529c,8c39b9376ba26cae71101c0d12a1f4c82d1ec50a,9d9df104b96b20c59924d245e80f5cc8dd9b4c61
6032bd09ba30de71d72ab5e8404177035a6257cd,28b4189a9a704b284e75ff7436d1cb808e569382,aa3a5f83248e6accfc32dca36745a2e647c42582
0f7f9a73a842be9cd7af283a6c9e9478fbb9ef49,ef98dd877a2c801f67b20fc28fd9d11422c0fba7,3d88722d8ff537e43b3bef57f643b2b6ac095aae
a6e499264b726eaa190c3adda9e0926f853a2d81,cd8af229a8b207484a1e7105b798a353cfebfe75,c19b1d2fd5a61cfe059a28710b0ed2eed6c7ed0e
216c55871a1a939702e94dc083f4d6df940cb2a4,53b50327e9305adb60f1502d33f600552009a3de,53679400847938b202185636c1f019e43e12c545
79d906795db2d2a7b6453264762d12162b46e987,21d0a2d299414e1829a26ba7cef58c76fffac3e4,0135ff90f675ac7dccf5843004358b0b617e096e
cf17bd27339bfc947060c4fc9e0530808da14da6,552c2146d8e959b4fbfefd3995f1d921bb13f20a,05620b271debce0aced38264f258bfb8fb4bf5fb
08200fffa11124994727e235fd6f1304df396e64,59016499dcfc94c8ba0f5c0b6ce58b207808c60f,e9ce7ebd4b89a1fae646fa58fb872799b48b43ed
bf1af7a962f51924c99dce37dec930b6f28ff69c,1e587e1150f7d64dcd9bd6a523b2743ac1912312,29c36aa4072cd3f300f5cc53b76f05a48cf4ace8
c8551879f7b259d56c9de254c1b3a28b658b009b,40bb7d9bdf7eadada9b57f8f85234e47de59787b,2677ad9f868406d8e5cababe04cb549b853f35f0
6cc315d4da71821165c3e80218512d0b4734a9c8,6535a72a08a68a4c023cd19c6dd14deb7ce46f6d,64e41e44199bed417da98f26a255855d4d84f665
1ea3c8486099f1d633329b7ed12c0e213a0881f1,a9b29137dfeec494f09a2a2849661626f8376c3d,5e1dc65865cd1ea132a5ca5ff358701f7277fb24
733f59a35cc8481c8e46d15333d4996cdac4de1b,58037dfaaafb8820f76a140a0c1da60873bf5868,d81c42424163729e6fc5b1ff26be5751aa43df3b
d6cf5f1386731fed65bda7cbbdf80f138809561b,d75405e47a8b4c109ab1f66e119ddf903295cbb4,79fd772870ea992ff9a0123a130b2ba44065d23d
07450440b182474c26e2bd1db93c615b394a0030,660248ec41ff0fd453d851b12f53795d8647e757,0ffc8de07722cf18f732b8315d9c7e11b604b511
9e7110e244008d9c0bf86b454572488858dc9f3a,382f6fc6776e0a507c1d48cf0fa0fe00cbe30bbe,09d4f7f4c1092655e362b50315ca025c1a703176
584b43db81aea71ac257e35a1709d50545a16670,23e397cb35664bcf8ea051aa327392198a055a2e,574ddada392690cbeb4070f052d32065352f1cad
63e7f4feb6726581e9d04c98477c7c6c37b30f5d,0b35f53ddb96fb45233967529584f4f664aa8544,85f81b64a2e12f467892ee03b1d426f6bcc923b4
ef651f72662e5f911b75fb956207d1fa264f4795,c7ec598bf9112d3be4f1f28c59112314474c7d73,8cb2c3f606458887e0ef313e6f0a33825dbd3aaa
c8b2b5e060ab7f3866f4378cef8b3b5b1610c960,33a41603f33c16b0ed69ef9b249a45c6083af0ac,be6b57e35870308544c3578de92d959d23618d94
b1ca0cdeecaa291311ddaa5dd74c6de7ef88464a,d6e9c5e18a76fecfd6d0884fc3a0264c0034385d,afaea85c9f2504772eaad8be29ce01fafde6b121
a6f41f9f1c3efed49b2f90dca97c144ec8656f6f,7e6f9a1806aaaf115c2c84c7d159143faa4aa075,622215005ec9abc9afbeaaaa3f85ef58b8f327d1
239224f99e9b37a6ee516d6de0eed97dc64cc3e0,219a57d90501a86a137ddbc4b5cfe577c1b90a23,ee3059f4400e6c065dc6d556de107ce0d3940087
adc1723f97d69e461e163675104166a3348f00b1,1c0760619f59effe144c528e2e68f7c84f218171,56c75c40fa3801c4a20c8b1cb6abcc5094e273e3
cd58f233417cc3761708039cfb439a08f689390e,cc4521b7b5e5bb7b499e248c6750a9cb1ccf6dca,a4265d4c64bde36119f6c398e8edddcfe130ba9d
4a15ca0cbe42d741b845527faa9ed0303662afbd,7a23cfb2c8b6ba155b35de941a675ddaee4a8843,3798dd8d531f791f52cd7e44f039af05945645b0
8e6782d9078f4075b45e6ed8061ec1f2b97f0eba,85ee8b25ebb4bd0f96c9ea03b1755f180b984f0d,54292a28aa32dd61229ef8c6073da370390ee9af
2bca50e10a1ded6aca38605605fa80434bbf5501,5b868bfda25e950947272c7974403c0902b43f5c,52ebf638b84d099715b89bddb3b739bd4ee8f0e2
83b8edacd24d1cee90722360965d9532b038f2bf,239fe6806b50f810a7085ef0b6e0c5c5f80a14dd,92df6c234b696903416ad484226941588776cfcd
657b16d13f1b72b4927a18975f87b1c4bc558be9,89b91dfd74e8bdcd16ee16c564bb5a41b879672b,0923dfaf5a563bdf8d02ffe44bc8619aa9968e65
1a8b08197eb351d435d0cd032d7cb66a0de20fd9,a1466c7057f18e4c77abb04017c8907fd25dd486,616727791ef96eb0f9fdccff97d0abb3a18b2de5
a2570f806cdf85bd57baec8b18d212e377bb23b8,88ff885ab5a62b652f679e96c5bc86c50ea60fe4,25fe5694bf7ba5a811a5870098e85c922b64da2b
e3c9e0d26730a72dbeebcb7d2fbe1772f2bbdacd,88c52bc23edcb0ccd9f27143d174c3db8cf7f297,280aceea65036e74485e42164d641b41305382c9
85dcdf751cbffca9febf95e891c40a2101b9b9cc,4a2214baf775cf288e8a4abb8e39d934eb19df29,a0dbd61f08c5c1b07444077121f99cc432a1ab73
878e9349e83c30a03c8a97f0ca64b1f1e9bcd927,4072e73f12ea856d77a6c333adda2a541cc78e53,4fd74f8471e595045d89e5645aa50355d3a3f273
c33af225a5fda133e93d76a346a7b5614fa2083b,2ad71a49ed49ad06cb6bcb95cc9e0caf166e1d39,bec52928dc3d98a2b05dbb189cb3c4183503dc8c
00f7bfc43d4854a572c3f66182028330f913b765,ee4c0673bded4e3b97e29bd0f625d4610fb3a803,cb69602418a9f121b657d08f9e395c617ceee5da
324eb595893225f4f5a5e540218d0719bd05329e,0454ec3f2f5bf361f5109bfa62fdf3b052449d11,0e965ad02d5538551b40edbc3ccc03f119b1ff5a
7e1f1a31b0e9637d1cae9c0a21c76c2018ca2ec5,147c93d38e4a1e9be02d3b19033f250af7843746,721e0b51d5c1864628fa95744611d996ef0e9f33
62accca3a9da0a60f7f46a5125acdc36ad5aaa7a,414a55c3cee502d868e1ac4f85e323caae7d3a96,6a92202ce5d922b6899932fd749341c798a00be2
0a798a4b723cf091084712dc1f0798acea1f0610,9683219322b69da71fe640ff1d665a017b55ecc7,7231cd8f3865829a3b47912ed45ec25d6055fedb
39c29ffae2ab4e29b3aabc17e5f8d64f4388144f,46ab62fbb94646e4413856a9bb738a7771f10e9c,a846897f6850eefdebd9add40db27afda1185918
8b3544192e890f6678dc9b45c31efd1c2f5f6b9f,5691f2a2c0e00943762aa4dbf85b165f438da3df,524589231fb1fc8b21c9c76f6dffb61190f44f45
7688f50c905a762be3f13e69655717ac8104a930,1db41363370f842807c215c5a151e904ea304fa5,08b14f06ef1ef3831849441ba238c02a70ca050b
e40f6e13f03a9b6874bc2f17ee210616df5a909a,30698ea06c93820a218861007154f3b25d8fffa6,da12cfc867e3c522d7af9ff0cf3b6b7924d7be99
d36e96ea74202f3a5d22e691ca6046e356b0ef67,71863e1b2cd5e954df0d2988b7e1ea33fdd73718,eff26797abf1d1eec6b68c6ec1895ae4cbc9547e
61bee98af90f0c17fe8b4600955b192f1a067271,513c8983e0b7fa03529185436c6da150346f5f11,b72317811792b2332741e8a7b15d07e0a1939d6b
7cc94fc000e6c6631ebb706044ef0349b3006c50,ee16fc7b96129dfb1eb6ca7e11fb54e2eafc852b,e42a11fbfea9d54fd84a11d03e71af92ddea311a
5d4aa763f24a8f766ffc4734a2abdf366a022e70,7f592bb331b1d8e7d80dae91260dab4ee38c313e,0cb53989ccdbefda256ef0056a258ae12e596b6f
60c68a7301a86b44a9cb910dedc8246749e704b3,4537f34c825959537b41c5c1af51b6a5b109b805,5da79e7ffaf1a011ce33f15c6b1bf9c5af5770e8
f67793022e16edfabd65a70f2f01f4aa5fb4492d,79529a0cc066c48508a72a39a369bb1cd327b32b,c357977a1ee3df9cf918c2bf1ba0370dd7b063fd
7378994ec553d600cfc96d1dcb1b5dfb13b2fcbc,cc950e79741ac8a9ec97cc1132f11a9cd43fdd4c,57fa801ed228056c3090065a74c3a265f40d95d4
b2543a0f18cf9ca4672cd468949ef5e705d72c34,3e5323476d3694fd59b5a82c7033b3253d6b5b95,04ec431edae6f2a622476ae04cdf902bf8ebbf9a
a8f5fada572b30304198e356bd106954055a5f46,422cf466be643fed3c3ec869637f7726f7829d12,6cdf023a21cbc7e357d9bb65bf389bd3acfd3be0
4b9ca326d0b7f7e01653d87b55834702a1645b0b,c7f406b1f9ad5301e802a47cabbfee3525342af2,2c6d0fb7f29d67255c97ea2164da154a2bc1b0e2
352f864210d4a79ad26a0ac0190d57a2b105826b,0707b5f7ca971119a9015fc2d063f57bce28ec5e,24bbfe2c45eb62502e917ec84289d2bb45238cbe
151a3124e032a91d96c944d08fde6777346ef5a1,6593231fe49d306bc6dead82e850fb44db0d9c72,cf147f7a497dfedfc10e7db51ce19fc5ef5b31ab
b3dad1f6b1eed6fc6d9dd4b9948fbbe7fd6df725,ef5824a4d24f277d23c58c749cdd74eb033ebd88,100bdd5b0c6bc1533a31097aade59f4da2150fa8
8058aaad9c43462db46784c659656803332d12db,0fe1317c820cddd59f5b303458fb27957edfafe7,f126fbe2cfc71ae1a7c78321ead4381548da971d
a057c967170808c0e0c1a9b51208cfcd95b238a3,dcca8ab6fdf86773372135b014bdc9c15a876d33,6183327b18284addf62e93cbb6859a759f3f0688
a99f330e3baf50ce852e8397413268a23c1c588e,d312b46d1b34f605a3540b21c5a4c3c5f22e4c09,e6e5c1724dc6c9c86a0261d898c1f872ed3d6489
a3828c8e3e5cc5801cf0fced38fc8622b331a0f2,d3df269339192d521f266809d7fb00e9a9893201,cad28fa07520dbb36e7ea8d24def0c612f339d35
d23863c821820dca29230b270ae0e4eaebfd9aec,8307b72f747b1368899e125cddb86a213b24942d,18f0d90ba692cb84c5315a3d9decc37657d08ad2
00439969cea540f5089b22b9df9955435d2f5a1f,864f097053e5050508472d4aac637f2929ec805d,46785d3884438cfd7252183cc6fb531926d18062
93def13823a527a1b5d611cf11ac563e86747da7,6913f674b0d5e5c160c370380a0d346317a10b7f,14091abda5f962de254084aeeed11b530138678c
7256f8be25aab8c91cf7ade2e257993be522ee7f,1ddbb6a6623d9334cd0f4ca3468dcc38bdf17d85,699cdca74dbe3509156134b1fc7dd639fdc32e7e
043f6188af4bad9a22b70c506b4bf687e5ead2be,96d1f229b50eb1632a985f0f0f9f7c2bf9b29a11,ce140620b9a78dd8e0edddd01e6d1dc6d6f3f9e8
1a0a36f928f6d929f2ed1a146054ea23df1c72e0,ae9cc5ed1833a2e6b65c68a5e76b911416ef15f3,eba6b08625f7648ad264429b12907b98ad88ac0d
42928f997372ad04e4d2b5fb31e93ca1f79fdcda,234c5cdc5a11ff0b4debd1c7221d0663d629c6ba,95654bcaa571980efa862f58d49195a0ba2fbcbf
359e551c7fb0d3edff33a19aa3a73578860a2e71,679281a7d357d16f36e624394e842a7699f7fb3b,25f3dad01de01b325d1313ece23f9470fc554c16
38350a9701a9b03e214fc4e0761d9249d0dd501e,ba290bb35831c75ab2bcf13d81ac89f00f93b443,88ba748ef09b5fcd283082938a93c077fd38f08c
069e4c77bcbe8f8cf6006d5369c9c473b8d62b7e,484c45340983f494c6a86e110eb79b749e196f1b,19541da2ad1c1a6da877f4b7cbb57f2b74f67c81
3cc17229479045475c1168cf4621d4f1faa36a51,22d290491e837d0dfc7a2003aaa0791890014351,d05bcd846ea9f296e9acb855de4810e2c24448a0
f063c5b611abcd64078dff948b4ea1b8a98e4e2d,9e083789bacd4e660c2474ac8216445e981980f1,a2321b38c7b2083ab94a8053ba1e0a0fe97a5014
7ef30a4081075ecc5cc68427f0e3677cda1db12f,71226c3bb2fd9ba8139a544785d0b958e2217bcd,d201478f852ed4d7314ecf5abbdbdc449ffa3d84
b3a5a031630516bbf4c6463a5a67d7f6ed070feb,ff4c0ecd900126c1d8c69d00110d309a3766b507,779604d6a3b3fb68793d372cb1c110329663b805
ca8b0f094880ad9b11fa7579f1360da2230a973b,ac62ae5ce59a542e810022441c6beb7c45959c0b,600a9a4d98e225f9a9d119ad4a9811a9bf1cee2d
ef0f5d4fa406ba982998356c778b2d41fc0d1108,91318fdea20fe3e65faf7ac7e72f1364fdb48305,610b269a123ba588cb3fe99a2d0775e9cc7ab7be
dc096609ffdf6112565449464b54b097d87129bc,b3aaf78961599acd6842acef7ed79ebf608c2749,d1c34f3ac0cac05172c80dc2a874c1b320d048d1
c2e666b6c769fc878b78fd35f1297bed7c654023,83e5ae792e643c8b3bf3f4da36f94dd7d46c5506,325b3e4d4247f1ea25bfdeb8fcf11a2ab73d3456
093d78071e4bf32bf628231870fdb54899934a50,e289d78b28724554c73f8714145b91b6199d576e,a3d722dfe93d3fcc5291f7930098945cd9de15ec
07db64412887d74519c1a76141a525ec110e7a5a,3391c2661ce3c2e180f4919766d396d2c5a4f219,8e884d9acd2463ed0f6397e52dd87dd5f6373d2c
9f491a40c7b4a1c627b2f11553e1aa5d315a2c18,c07f36b30bde00274997123525e364d608e79d61,b56cbad50e1913235114311ccd2c943678e63ace
a4c324ee237674950e4675894df386519b75a130,8d5d7b480ddc11daa0f7554e8f60ba8b90a21cc4,669d41172cfd95e0b6b52416744960638798e642
b468793c6347bc84f3d536c36fa1028b80db3076,9d8b801e4c27a898d267126ae0500b102d62b7e8,75256399b829a2645c1738cc8a82c27cc9a1db14
78368d4432091c520d31d2b8b012ff2807f24379,e83bb1964235a108b810e01a42930cb72c4af167,8b00faa4eb9a740db2a89944e4a0e000a3ba292b
9249506a2ed9ff9482094f70081610dd78f2dac2,f20c7b9ae9bbfeb808668d66218c22f723216eae,702ec640acafe9234c6c469b605a76aea748c473
61e53fd42ac3f84169467eead72671b030d8365c,0c3c9982b960f6e10cdfc30f1186f1e1ceeaf254,706aefb2aac30597c26d4f4e3d9633949bfe8248
e776368ac8063128ebf61ddca10a4b902442400b,873492006d3e22bf1b07d7fa44cf735008a288ba,28b8d069ba74fdfc1bf26aba4c7fc9a9b883f20b
ab5b3a6e1c47a3d213663ea29a73daad4dc187f1,340ee21b34577cfac0514abef4ed144db00552e8,11e3b123542732fad685478a5d08f15cae60619c
9552d2b757dce8f48bb3645d0f00618259000702,adabc721c49e1e6cb43aa855160197ac54941721,cd275db151c5f5aa234c6f8fc8a8075c86785211
5a809d4dada723107408dfc95d98f82c4b05a4d4,ce41aa9557a7493ec7dad5820d0e547e22e2b25b,cc1cb13f274bda877ece8ea87bcbd6481d857c45
f96700f7db3c62260fbb9f08f35770d92ba8a0b8,fad52c62ed69a9a8fc935d08a969196ffeaa29f2,a77c50728f79d18e626fe7f1dde0caed0fe6e809
c4e8dcd2e3bcbfefd088a06db340ebbb86c4ec53,5bc82beab34d738db75a7e3007e7a3dc66bce2c0,816079a7cc2aee849b35f7aa3173285e8af5a831
b877b2a978ce1db4e10d3d817aa34a5fa32caeca,e917b5c083f364c07ecbe3bf30e1cd630d6e5da3,67ba21f8a865e521ca949f76f6b2f4127f36843d
ed734996fcf75d27e38cdd3649fa96d9ed15564b,12a084d6c016d1e348a5b3be810eccc7887b3a0f,e16364b567be80ad7a555d24f8d9ab9775f08dab
2dca69f2accda9ee4f6af3a81469afb628ea20d8,f9667df16f143da6863a995dd118edb839e42f04,1ca9f9af51d7edd44af9c777a51adcfd2e3a6abd
30a1cde7a5527cb0a4417a2e053dea2de0f9d736,52fdfcd8dbb03330dc84aa6b1ca75d0a09e706b1,5a323e966e3880e8455896ec7160c6533ebb29e0
19540f5a0ad8041582f00f432d431de7c8972cdf,77b498752d7a514e2e57c87cfe52e4e3f3b60088,7e9561abf865c63a7f5d53d65f50f36c0b30c29b
31911bc2f9ff5fdd58e588d7c92d514805c3cde7,cf1683d14c6f6b9f981ed352b99cd53da37852a7,8fb803bba637103350909423865821dc143204f4
d9c1efe7f06a6f1408898f0b59b10f58231d691f,2ad20b37874268e9fa5157d1da4073c5b6619913,a23441394b658df01247b5b8d874156356e92a97
c1be8e590d38ee004ebf1a5206759669c77ed5e1,59fe173cc7e2f1da36571d050776b370dc72b211,44e2c05ef75525f337bca10995423900840bf4e7
0e426db5de52a548c18c13f041eb748b27fa62cf,48385fce80c853402b1d95c930e54861e1d34aa5,e00ab511856c3dd35f876468cb541eefcb305b52
0bc1d8d446274effc390d271a3abd643b0a5bd5e,8e024b26068dc29318759d15afe6963d9b6a3a01,d2f3426bda0753986075c88b558c5cb7e9d8f8da
407fb4b1da9d6ea4072909d0dfb90b5d4b0f9d72,e87e14c7cc463e3bd752d4ba00c442b463b5cc52,3e96ac0c4c7b51cc0694c837c5907a12be26fbd3
c29dd86bb2cc182eae1540af0f0dfd4d32f0f95e,704ad21b239bb328e15f2d7fbfd6ccf4a23a89ad,5be05044ddfa3efd3baa1dc808e2a2478682b612
cde3dd3a877ec719ae8e9cb3e07e46d0a344697c,7bcd8dc88352e49a34d92b2d4e2db7b469a3342d,cbcc7c8d353de5e128ff76745e7232675f66fc23
b164817e18ec4a6672cd42e24be79e3dcc2a805a,d287788b573958f0d316252f15fcd71244e8b095,1ec03269951024d920fa0335717e9190ce1e90f9
55deb8cb43ea8826c8b150be438eb7bca3fe6c97,6f8fb64d36221000fabd6caaa0b1e6c7bd8c774e,c6fbebf6adbd5906a098cdee68dfd5830e340946
42abb3395a72bb437e1e115f24890c9a270287c9,7ecb19f906f3e9010174bd3d70dddea65a415867,fef24dabd65ed9ed71eeddd256e6ff9f8e687095
932849c1bf6043f7c7f4f114bf26542f4f8ba59e,60473c7eadc02e6f1a1f9750bbb3bcfdb38e75f8,1fdd4f8c9028cb0a55fe0e4289faba89bdf6d821
d7812f6c05dbae4b3de71b75b6df7a01ca952563,a009cc5c350ca2cc1ab2a6cc96935e5eaf8c3aec,5c93f3e271bc5c51f9be06f6c17b8804fa2f71ed
1e066ba0bd9d9f54e46037266eee818120080f84,0750777fc8212c43ae7510aa096383f77b382128,e867fce88370c0d2a029b4d3099c0f0566eb0b0a
93a257ab295c315fd190a953f2fec2f84aa0ac5c,70839bd7f4cce7b299474c14c32fe06eefe8afbc,14cee4c15272f8b8ff2a968a23d5466a4603f536
ecc56d7e680907486fa248a6405ffc7d34342980,34519c67a10288a961093e22eca9796e3b77903d,8ceeb8d1651cb79690f96b46f2be35c4ea288789
005cb5914c39af54a599465582c494e88ae45bf8,2648f8151db723ff3f52a5ee6a321b378fb65d1e,a9ad18e6238ce217278b76b9ad173e03466f7a0b
0d5f7fa66bf1a9c5b39bac5b98b7eab5dbe0f194,f14aced9c576e0c376ebc7c19d5e661f18147149,8310b169b780171ba1aac906602bada424b9eb76
c38280ef3e41458d1d3de009a90da945bae90445,952f6ebf239740e13a243653f96c30ebf1fabaab,f206de703072bef927158670efb22490999ac01d
722711d675561a9268d197c8e245f58295c6750b,6ce266212830dc63dcb641cf767711761a025ab1,087b6cadda7f43c047d97715e950caff1735340c
35345fe14584eb877b5953c3bc1dc358f6fd4038,7b4ca051782a3f68b834b205c3aad52819a2914f,3dfb2f6aeae0148fcfba705b411f83d282d1541f
9c617dca4fc671f53613317095bc374b86634e9d,cfa0fa726fb1022cf8c500b05b7a1b134bf00eab,b1e1a107d351ef6c293b5f67b9689ba8f07f2bcd
e4a0b1adb4d632b9059ecf71f06770e73aa4ae7b,f506df022e10bbba50e997c925c93b9e750bb39a,e395166cb75a8fadd72ac24fa87c73edac0970a5
0b5998ee8bf31b127aa942905f6b8aee4e6edd03,12f18177ae17ec738eeb11d2bbd9fbeab7cf925b,7bf502ad40afd7b63b163f9d898442daac4cad08
4fd5237c0e22ce13bed0b7b6363670c79a8eb24f,1cda7d8e36eda043c1ace77c7f10ac09e193b1d9,e5b47310c804353f6756d2643058c88c176da5dc
02115833885e048304d5f3de15b2d04f434e1924,2d6294eb26af80ef9e82db6ef7b7b1c7817129e6,e42209457e17148913fc706aa32b153ba7a9735e
0790b98277f8d8b8fa55ddbecc0044cb3fe04c74,8baa4f41dbe67945a372587a7695d8e7221f2fd1,cbc938900f236d05850fd70754c14dbe0d7b2f9e
11f076f0e7b29bc71e6ff5866a954315098d9142,a35577593b7de8cf5e66919f9e40a9a0914ff377,c47fc710baec550d5ac0997b0b986f55b99a4124
aed429201730ac92169075dbe23b8b899361052a,628e0cdbd16ce55994a413776e2e3752582c9b22,77673c5e3779c75eb6daa9ab4c9c13f8053fa2dc
6c8acf28cd4726182ab940354e9c763441896b96,22e9033076ff4d60135b90efcb35990a39260591,bad42011abeef21e7b27f7fcda79f8e726029f79
ce6db34224fe9e3966bf8cc802541f3497337410,5f7a4e30d8bc05b528e7ad0b0eff0b4e16a3567a,b87e22151a25cb17f44db5cf2bb6ea696ca6feee
c5d1a4798e015241b8bf7e9c28a12c08ae20fbec,8b7dbb81b1a2a93f7f9368275d2055a28e986481,484dab553bfb2287bf7cb4f4fb57356381a59bba
0655b342d4d170bac9171fc74d3fe8754805f3d5,01d4461fe3b816ecddf60365cc9fceeb998ed862,6777dbcec01b16574032e7c68adfc7f21660793a
3302adc31a551db2969ae8e71235e514886ec7c6,998760469addf13f644fd4d5f327c3bdfa89a466,d8bb764d7fd2f0aec9509003f8ba45c88ba3ceb6
03fcef52339c0f74207414615e7cd243dcee2fb1,ea8e645b5ec9d2db84339b5e61ed9bc560df058d,10700fb4f77674dc6ae4175edd40606087f7e858
6a983e533ab832290f31faa6e97c45e4f478a080,142c851b58d66ceffbeaebac4337201c3b3f5835,f8559610e0b474c6945971804f4f38798ae15a69
67a614e48ddce29273c68bcbba113b831b5e8240,567187d4bac30ba7e2acd4e83ad014de60fddd67,ea271c1088641a3cc2ecf534fd92ade565d60d92
bdef7af09e23fd6033670380f1ea372791af087d,9d957cd6b393ce64e7ffced79af5d1c5d6edc30e,40c3dc5809eb9842bf7a283ec5655b60d0f0c557
713c9eea6a8e91d8dbb8a408575f740bbc79f2c3,8bf2dc3f2b4b28a68dcfea9386f353ee8c14536a,061c8b5f25b97ff9ddb7c03d6de1a1ea899b128c
8032b65442c198b1cc1a14176190d41eea7c8ca0,37d699ed606c23139ae2aa501c2675ce8104ab05,3ee412a4a5468ca156f3a6dd4715fba1a43f98a5
8d7517b43014cb5c7936638480d5689415332746,e571bd869376b0cfac853f82a15513f86bf899ed,e788fa7e3f7284a6516569ba282983e36ab12917
c20178b6e1622a7da4abc72815c3b9882a9b16ca,bcaf8d14095489a4420c09f9c81e61f941d4c1de,1cea95e8e0a2832325572daf6f47a7622ad91801
13dfd1cafd67261b0d44079a243186308553b6fc,ca0e04a346d37e96f7b6ec65dc678f9cfd03c8d2,258211e0389cd78dfdafd9915f8c074ff5aa52b3
43660084b6d2e00a6d7785329d630604d7ad0331,781560f3e01579422da5ac66c0d88fcc0fc3d4de,db05be80bdb6e831c819f3f746326aa89c77ea69
8c3829e6981523efc6046c5aeea5426cf1b737fc,00d5351b55bb27987494d07f39660522d235ca23,68d3ef0980325877b9036bafdcff7f7df7ed5a5d
214c72655d18824573664455e529a414e093abf2,5c91c89aea81931b071f69738752fe5056e16ea1,0adf046ea07a0b08578b7a79a0cab5e2c1fce678
231bb3df8d25606f84aca047230a79ed363a6e9e,ccdef04de63e8c42579d46afda4fbb0c929d8975,dad2f47c3199e4e54dc12bc590eccb570e9dacaa
696aaa4a4fb6e085af2d7e75b18f954c850ad7e3,b6390354150470f83457c679541360a9b387cef1,4ec7099fad12d619331a03e8728c3fb180708098
213918037918f4bebdefed4074e5f71b72931dbb,fc039aab28d32444a74aa0a9b3ceff02ef11fed1,3a9024f0b77a16b942c6b6afe42ab42ba859717b
a95cb9f35af90ed8f48c816e705deedbe3e09056,1b26f5c3a3acfb77403de38b8a5271bb03fb24ff,353f952e6ce1690c9edb35346f66a0e06211ae89
976baccc6c3d782ebd31d78b66b040091013977f,9b78d5a476ef857c9c9c16e6c0d03e4d2fba7e31,abdbe4065b8a62f30500c0f5d112b2ef33c98d56
73a02301420f4bcd00bb97ad3d4bfc2ee8856c1b,2edf279a1b71e2dcbbc6020eb55a652d1366b5f4,f9ffdeaf9e0066ba0d4c09e065e8200e570c35c5
6914d812fd90dd2ba82ca62ef8c4d4fd55642d74,9662462d10429c9a6cc7f17fcd5ea25af0e956a8,f3ffadb2173f7771cf81da3c17b93428ceb44f40
9eaf79d30c7edfb8dd0c7005f8c3a97dafbe4784,73aa2fd2661a9c3eb215c77ec503045891638e0a,fe6e7430cebb9ae654c7a0351f453d9e1b6ed960
987d2174a392b313c304dcf70b1003c91c8d05d8,4db579c71f2aa3fbd1a2f8a617d4a8491512d061,3d0cea88e958ceec83fad9cc86247aa4ad7fcab8
ccc6fa0ec6d2d4efbdbff40232d50e2ec10866c6,53df6927c5101107ea921e4a68dc36d535c9d57b,c883760ae7b4469d893a1f8f094080d073010d47
6f17e9122991ff051faad0d348aada972cd7ec90,b1b623232aa0147f35d551617dd49e01bd29a740,dfcdb1e742d327840d87c5cb7bcba0a79e82a03e
bb218b2fb1265c5f413c76f3a8c7c7ad92d11071,25c1112898f1582a967e784b111762808ace8a73,9fc475923843d43e9fb47c4cb1bbc250cb936121
978b1212c5aeb6b033d786f9f198d87eee4dbd5c,dc843bf86c3380661c9092be452985dea9df5621,b201ab9d1dc597842b64a6970eeab0c964e26dc0
28831a7734810f0bff7cb0cb7c67fc4293ba7fb1,3d868d13491b82ff41be7246daccec8e330af3de,0b3f80d231e504a0d942ecb694e81dc3d0d15ca2
4e877c3c11da6a50e4a349398935fcaf779c56a3,eb29d4fa95153879d9087c30f5381fc631da98be,cc0c46becec5ff1afd53093cb81583a19f7cf1af
5f7c9b17993b96112b4b2a971b02d5c82ad21206,9143abf069b233f8e1478150de2bd68d76f748cb,63d5c0078df75a9493867921dae6c9070dcc907c
ab9c4996508936b4f113a12220f68bd34c467ad9,f768ad909462fc45f70d81875597d5e85331d26f,16e7b07f0fce34375fc5b498ab2a65b643570f30
e55ff3763e0ae97e5107738d44fff2c4a7570d48,b693af69a65283bd65883d88be7cef1034eddb48,54dcfa78f88fa0e0bdc48642bd5ee3b27758f121
6e655eb5a3f59cf4a6e89c0d3e3061d092bae4a6,5d0e2993fa99cebdc739dcabd6c07ae3b906ac56,bcdef8341e0216ed104673fb40c5d61189d3a4e4
bc03b48632954b3960c85c502deb2bdcc016bc32,c3ad885277c002e7638959e14921f697fb00661e,12f0ccbb0191ae2658189b83d6ebfb655637a2cf
1b44d17899751257fbc91703ccacb8290ede4ee3,e9107bbf4fcd7547d5ad0ccd8a13350227884ddc,25954d39e4779f6b4a8a8e1c0b58ac5169eb1ee9
f6402d6ff56ffbd048e1ca5505a55da833f1ecce,28e9ebc7da23e7afdef9b8849717f9084360fb3f,09f3600cc4518e997ac7e517241c2dcd68a7f9d2
d1db5d21043516e6a04b651343d83e5d6bbd659f,c8b649186fe1bc92d15736ab58bbdaa8c2dbf6b7,072f1bfb29d954596ffa94d129cfd1c2b928f707
295d3f0969c886c51a99b6f6e05aa948063943a6,ba7e87aff39460175a57063e388219653dd45537,73e96f8f1e80f882ec7e09ed5c7dedd22c828e32
e471c08cf84ba3451feaaabd837798d56c5f13bc,1ce0204088233e082773a1d1c27cc2e5c2c3db8b,5d6c8130a0e503120a1fa13dcec305d2ce652e81
60b8dd4276f5d0350fc869201f887a54bf7cc54b,2e54ad65fbbc3e6bf100689e572a6b15bfbaf084,7be06582b243e0c500716e9b3478cf71a31dbf65
5a6f7b3e29a675feefb8fb987fa5559fab1b3d75,fdd0ebeed90b99e423335fed1e63e30976a96a6f,5346faa02c531c2f9439e173f02542e9985fe5c2
20d9ddf5aef09214b613679820d325e35a619afa,19d908a964b40ea8494961c0b8b7823777c903d2,128a87a2dc61425e3fa6718be3774aec102d9f06
9b302983b079c826aa39b405137b4dda20aad420,f38cfbb23f182406164c1622ef22659400e4d343,f3e0494ab7536f68c7a623181056c74b6c6810e1
bb43afd26d9fd96d9cefbdf658a73b566caa8b6b,94a1f33f6035c5475713f144bc3cf8f1ef01d716,498ff5c56c49f6fba330c221d08741e8c1f92da5
349003662c046a66c1ba05c14ec8973c3c082b55,df365a56cfa06d600aa5734401f8edfa54354587,5af16b3da3ade743edac011cc0f7d6e26817cfa3
7f77aada6b3960f2c346f7666674a78fba003e24,c229096983d325ab5ca2a077abc6ecdb167076cf,d18f31d156ee93f67962e4b053d2b0a7665bf241
6c61f17e04e786d1969dba25b436e1c2c50296a0,9cac8e61839f0426093b8d1974181f04ee1d7732,ca53c5e7d451643247a3b0544d4e99da5a00b6a5
c6a68abfb6a9bc4e660ac3ad63df9dd06489e83b,f8c09568d8011a9a9c4b40266e1611972e75d8c6,cd7656233940e163fa50d2d0cbe2ab961b6a4d9f
212b0fb7a834df33f9192ad64dac8eebe35921ec,27e17e318610b2ac62a0b35b83228fefa164d64f,e920651b4d01ae157a684ff41934ba27e3b987cd
610972b26cd6e8847e6fb31370fde0839ec81cc9,22345e4a281c0d754644682eea303b87fad04fdf,90faca9e69eefca34849ab5b290b1a1361e9689b
9328dd648970778be0ecc10f575d6038d6278937,8870c72d91842c08da7d51ad432a86ccf4b5136c,28c14ff345a75d5408d41ff6032d6250c2aa8474
ddd846ede494e86e85832d1bb3a1043c4196bea2,91667644f4680967908c455496ac2b2e70832a5a,282f4aa06022f30f1347f161ac44f13a0162f178
fb126e32f966918932da974d7f566443ff80c74d,6e964d153eb3cddd861b302d68e6052cd1f80f00,baa6f2a1ef98019e5db9b34a4d04976fea804799
7dfc45cfeab2cde98e23e10733a7f623a23ffd01,9cb7e6353567937a0b50661173ace82cd9e6a204,eb9bc5532e4deb01624054017418796dfb206f39
a27d35d3491366e0631bee81aa1c2c994ec3973c,c3b358d25b61b58de842c4166c328e3bedf9108b,4cbd3ab6fad6548337cd59e5b5637342eeceba7d
1e6fff947363a916c35c54ee6ac0130d4277d68d,2d351ba50d2a7b9d368c3d16e7f8951c634d7741,602761fe442d0ea4513b655f4eb86d3514c19ce7
80883ee7c0c067545bf11e8d7de07ce245176117,4459510e5c4686eaa2c836f8e7e0c3f6be4c6920,757e668d4068f3b14ba13e6878de19d5eac5ec76
a951461289656f9933040118874e4af6ea61d552,5c0a5ba2b8c132455010f910891add2d1b68cf7b,7d2e2bbd868f6f996aeecb995e036670295d703f
28b54dc9de1c26402e1ffcaf0449cb46d9769f99,c8d931cd3f78298f9c438eab315e8ab0fe5e0a68,27772975cd31a261b83b96cd673effa307c92259
9577540d2b61463db47e95ef5b2f3071317a2523,b64fb10cc7746159710de6bc43c90d0a32b6faf7,136a2692ac916c0c8852842772aec2edf579f346
fdf911339875cb872b5ee102c56860d1fc8189a8,cfda495a78332f865d60bb5cc909cbc40b81d716,7dfd188a9bc0ea329f4ba181fb0346c249bab832
32062dbecc438e197b747abfc1894cfef8c31fa2,1deec48879a667ccd5ba04f4c3bd44c56550eae1,e1d1109205302796debf0814d33c174a26a333da
101b2ed7f40b0375661a859710dfab0a7a5fda3f,d72363d84df791d6e6a8d96617d04b4b3355ba49,9df9f1a0ff0a35b6abcad7e37d77086194d9fc66
65473dc5bc6a4499b52bf1f9c9f07ee71559bffe,4cbd57891f605bcfa87c2bfb8340e15870b7b5bb,c60ea93da776371ddee010a30e7e08cecc487eac
bc9f78750f083002996acd757245a77759e0d80a,ec0dbac1b809b8ef26adc731cb896c5458984c3d,bb9806940b435eeb6aeabe1e4590dd7127a68c73
9472851a1dc4d778d72ea24e331b3fc3c60850f5,12a43c01703fde61a383be15c03338c3b21f2957,e17e9d14f2aea90cd86265095af690be440ab16a
b7ff6363c8825aec865483d8f64547e72724bcb4,c90f945db27821d4cac7f923a40d71be1a9110cf,a066952b934e260d43870b25ee12cd8ddcebb65c
073b11b1b0d62ee04801a5d8805b41ec57c980ac,5f81c871a3a8578cc70af56feeb96367ca6faa72,9ecc83420a00ceb75286b8d78d55c2cbdc25508b
62e79c32835024a23c912bc28fceedc4495a4357,2833eb6383fd02655d116965044efddff145d46b,1a06faf039c6a9f8207e01ca585179cd96844432
b0dbdf0a67599914a6bd55b388f21899b998e2fd,1d1794404b97e8f2c11380a7feab9c0b62e37af5,3a77574acc7fbe8522585b350bd1aed3147d8af3
44e92f7b00853839deffd5d2dcb1c3567749728a,c5a0a0daa252bbf9f8be3e6cd0c19097a34179af,14c6ba6991001a6c7e67d2fef0e7456f96391118
354b1066bf6e1228aa6a093e36c15bfe3e7c42fe,771d0aa49bcfa46d8e0112d5f710a38f498a0d70,ed52887c0200355436a4b260009c40925436defd
254debcdf1fc077778d63920964270b1bd372b85,7a4c1b0960a3a63bf1ea2acd67ae2568824b86af,3f0c76aa45a64f015f6e1224889997471fbcebbe
c4bd58077345a8d4ca50df52f00bbe032577c60c,44aea2cacf30f006670951399d6709338b6022d5,1b9a107eef549c92a18b8f88133e416b9c7e2390
7c75393d407b5181702cd0cb14701895ed0c6783,ea9999fb03cd0d9f95b3c307f0164cbdacc3f274,5aba42b0f46a39189f64beab6b40948868afa0a5
497513ee40520f3f57b92c5f254e78391f6f994c,49a31a7c923c883933820bfffdc4eeadd6961597,ab7c7238315a035f24616c2e349c4e39d372784e
d3180ca2259a1e07b8ca4df764efc04a090c8f14,7917051df28770d23f77fd8856d40852da639aec,db65e3243bb9d7a4e46b288639770cdc3b9bf67f
4a205d33ae7675b4c6c4e3322ff11217be6946a6,900f7131016f0fa8ed5366ee4f64f6928441f769,b60874ba674a1d8b609b1f487d1520788ef8d031
fbfa049075a0b18047add22810031d8eb614de45,5ae4191d624ae9b51d68dc7a1567dd9b5081b5df,d7d46ee6d9025b370ea6910f513354394d256a06
c8524d924fc6404d4ca41a845ea34913d2f00eeb,9e4ac8d7ea2a87dd909d829122d0b3b66f42ed02,a39d48b22dd3506d726db4488523fd7cfbe7d09e
206064c9fcba198059a6e27d254eea064881d6e7,1375424dfea11445eea25133e7df2431791443fd,cda74dc3beea4360861b751d22cc9d9ca141d583
a31bd7b0e9397ca559887fcb8ad82eccefdf314a,af4da1fd6f7080ca34b387de1fdd8247b00a9a80,3fd9657559c4c8e76e41c6e84fe10238c9977791
13957fce44ad2f4e1d6b23cf073238a852f2eda2,fddc08144e3872ff5e59b72a7c75798f63aa2672,fdebcbdbcde927ea41767cb95ca31343aaaa29f0
c69a054cac302409da2296a9a9b2d31d288705d3,e4e8bfff3e5bf73b0ac1272b2abc9dd509b765b1,c12f81f2a43283a330a7aa6d94a4e6faf5fec79f
812f8fb69cb7088bd33f5387da74a80b5cf1d464,c4247a2d27b4a1cc817c5ccca01074420b289066,46d65bd00a9446e50acc2c28c9948e3a4207d018
cd4a0d1fcc6ddb5b56e084305dfe14a8f519a539,66e38aa68f26975fa2700469e329a8d4a3458520,e76b0f468b964722d16467a9e4f7a88e0bc1deed
0e24b9fc24fbfba4f090802c04e3227e2ccc7b58,5175683441eb5423898cff0df8e4f57bd0a06b1c,8295a1cc762b157657e62c2fb50dfd7e031c4942
1e5356432243eb79db14812afcd3abe2cdb46b90,cba442e60600e2d145cc0ca01dec0bf1436835ee,651bd9c74bf4780e84e60a020c4325df4f1e5374
480c6b00aee75a391a161d163148caaf673c43c8,245b8e935eabac6b346888f75800bcaea0f95994,691903f8eb666d9993a46655213eead16b976255
935dea326379f8b141e7c7358147002426fa1416,ee2760058e4cce317d3786ca6d38be450aaa5968,7bdf98d50a54ff6f311b37c529b3c30cffb438a0
bdc92e0f8a1c72c40432f0348f27d3f84b61a63a,19b234064cfa7e4ec32f9da3ffb022b97c45d04b,9afa109f54f063b87c2821485f76cbc1b6a87098
5f47388c7eea1e48ea35ec29a9210ffb340c6e4e,191f62d45a9add01c2493481f76d5d0db581787e,5616c480aef0992c29f51401801d0bd4104b72a4
0d852437124d61989adce8426b7909974c8771cf,6d929e1e72a2da01d2440ea49f8eaccf0637059c,708603c134f2d6576254d9644993c32817d3d7b0
dd05115585eceabc706619a546e9198238b3d677,5c62789f346a848108fb6d7e66f636a46f13b955,f1a57f0c71c6c15dbcd86d35b96c3a80f057025d
7b774e62fddafead3bd586b731ab343e54f01d55,57d8161d1dac89cfcf4378782a8a496a9deb1cde,2c1b8365efcc6f6a40650509a55e7cc6de6ea447
c70fb56575714bc1178d0a2184a5c24d56412552,c2ae8ae921bb92d35c0dd14d8af9f668d32929af,6b686751ff5dbadb080fc332d8210678811d9abd
8a29bcbb15507927aab625edcc00c7781f7dc21c,c7bd5711247cb8115c36cfbd660f307a2397e490,86fbcf3e811bc9329ca65f0841ef290a1820fd43
985d0f6ad9f7c267ebfbfe04519ee578bbcc6faa,e48ce1c6aa60ce12ebab4761867f82e64494ac90,9bd3c010dcece8397d2325fd7ca466dd693cfaf9
3bf32e7e264164b6cc3b1d3bd1a8b6f1f5743901,a236118efaaaacb9b0e438401536c4a933f55ef2,9cc44529dc5c39ee64938ff3b54ad03d381738c9
c13a9618f032733c828e7490896e4dbef03a21b2,312682f3bfb63e93c2101496c15de7bec494de1f,fdd2da4a4a82fa59447e1dcf782f9e8541e1d323
b1a5d50376b2c425c01009c81c191da1e2744058,72e132bea5cb1ba9ed372e5b89b19a56d9a71fa3,117e6c3326ac540eb7c60043f50c9a44342ba38b
c2fa262893b353e7098558abb0be123063a0eca8,8485babdb5e695b90d47056e07a77c1ff24ed434,29ca7c45ed736b9f382c5882249c890d14e5d888
d5bb15994a9be6565d21ccb3e04beec3c413240d,2a85b186886d27f2fd853852112c28b6f8685401,3eb0f608f7e3e7c747f58f1b91d96e1f6e653116
b5d9ffbdb4906a84fc59f078a43e47b4f2fcb85b,68cbdbc87f6c1b3356ba7c04634dd0c2c9ceff5f,99f848880956de7e5924bbd5075426c84c166fa5
a2c5902f2e271bf4fae5cc2b5d5cd070f0411990,29926235246963112166369e54fadfdf859439e0,19db130ee9ffade44abdf88e20caf9c873345ea8
b33766ad2168553c3d7ac6e938ec374bb1c3300f,cbf54a297df2e68a97ef9d1024aa3e845c705190,52acdc044d2d48264b8e8fbac2557559bb599921
a7f5a4b5b9b6477971e9ec450ab74a4fb9e3e08e,bc89123653269b34be8a7fda3df0b4cea7243ef4,aa3a4ed280bde7b6df01e28b1b08e5596c1d394f
861a2de8bb200e97b75d2085b7c91ba841494889,cb3daffc0059c4f848bfc65c1749d1664c1f0613,934a5b4e3401a53008427df40009756f90ae4301
809e33c6837d8e39e87d928aaffc257c5488b1c4,c7318aa95ff0aebd273e4e143e181f1e62b6fd05,1b90309f40ad373157237bbfb406c3a181d0b5ab
fd77041d7d18feea18ac06742cc8a5748b77a326,da03e1a61021ce647db2117732e145d960692741,339f2ed7e23a2ecbbcca52a8fb96c3112673d796
c08132632c866f469fd3f1030e09260d31fb2173,8036833189309aadf62af43293e03b4da85e79dc,6c342d7e114342b434aa371636aa511c5f7cf947
c192e372472b5db9e78070edf6f6dce3d3ec56b0,90faad59251d0dcc4c1cf0b41aef0274d490296e,3e473b45193dfbf812a8df16b887a0eb1e1ea916
2cb68b6ed3585a9b8a09d7d9854b2b86118069cd,03d8e62c9b4be3a20769a0ac26403fbb065867c3,12e1aceca3b3fd35bc93e08599b89df09a4a901e
92bb99049d0969073f8c7e3cdb72f6f6c875f284,b54851afb12f754d0a14de21ba5b229ccaa21085,f2a78cb634f0e5675b9ab1b573d18e9b5eb739ff
badb90a1252cf00ab85a31d3d24d23ef7b3b17d5,1d8b2781722db3381fd6b56482069c004eaa8ecd,05489f63d84cf87fce482d921e26d0a50d4a7fd7
d5589051a7eecd32bdf8e44de1413fd2317629e0,bb45630e794ac2e19bc04c3ef9aec71c23802443,9e81a4bdb474079f53999a7e220fe99b08a4047d
db5538ae2bb9d66a984a165a659082f9c275ff7a,9d712abab161a022f969cf8b3461960f0a94f101,59a7559193a190a1f8146b77ad8b7732bd19b824
19ecb6290a64c04c7f5e513cbaaa48f8cb9a4912,58619e1acc39981e4d141ca16a09c325fb8ed42a,6eb5d43a1f981f5e948d7ab9305f0a76b9bb9de7
42cd00764a1442da061f46f8ac1887a69eb966f3,ad078f5deadb146290a894989f1685816e7b0d4b,fcdde3162a9fe223d559d8adf1ae3eb02d2ecffd
79e21c926bdb6764748cfd0a4c6d3430344c5e3d,8cfe9f910561e347734eabfca84596b5869816da,dc70162e2623a62e3db8d0a2f0e7d129e1752ec3
237f57cf69b35f8564fa70e3a668c26d75d332bb,5165355dae3651c04e0af0b1b77d64a22bc546ea,c21bb67d952b95687db40bb43a51d6f9e8d5973b
aeb7c12198cca406a58e3e734a6dce9ccf7c37ef,de7d15d196c39465e3a3ee95703e6ca9dcc0af5a,c3514a28f214dc4754c82519881b6fb13360287e
e9d8f8693f75cc597eb9bdb409749d1e8fea0764,5d5a6eafa4dabe1de0ee71db13663a18b760f9a5,d5807bfde8a4de49fb62a9aac2ef683f12046685
afaaf8936112c45a6db3f5f3c5639d929ea25e3c,d7aa47c779013aaeec28f2a16d490d9728d3f4e5,c56b6f84dcf5f80aff1ae07894af4f589aa8aae7
8f38be12bc95ba0fe6fb76e0db25512b2f6bdee1,253fa8c733caf4a235d4e3e9384414e14d95098d,e79413499e60ca23c8493893dbdbf52abc07db70
f0aff4d1d3cf4bee789d391f10e2b162733231dd,8f958d2c7426e584b1ec4d28d288cb1140636931,606cab8be60019b9387ee4d99bbdc98ff2b3bce0
8d42e433a125619280576ff8e8025fcc0c3b5702,3220c80c7b8480d1a1c776a9bb7d780bbd950272,74183de560ddedcc6f0e57e6375e539c0e0fe19b
061bd82c1eddf34646591ce31e751122c290155f,09e22c81fa130271fc73d09b04ce32b98828f957,e120901f95fdf00b55ef444b11c07924b22d31c3
7a3b8fd1a6246080cfe1419333e6b214778c970b,349d6b53a7e7a77189ae64cbd436af63d45396cd,4d85f18f6ddea6a2bd7fed8b8175af838225857e
9437b581f0e79c10d938869c021c3ec5decbdeb6,9936961be6474a674b061b79f8893a5b1e50af1e,e7192fa328456ae5cb3e1cdd8ab9b281ddae8917
9a01e5064bd913bdc06bef200d418e94a7cdca9f,876bcfb0c563c7e05e44034dda3b81ae842c5d09,8c232bf1bc61549824e09e274fa0694539c8b12b
7f61148ad44e902573650ffaab4f722c088bb658,e57fd2deaddf412fcf44567e75b4ff9159d884b9,14f2a116bdf44fdbc712ef4a815362b7544663f5
b0c95c73a1f20cb8d1f8537a52324d0c01d1f210,dcac9c4b86ca0e457624121e3383996f4d1d799c,6ac21f8259cbd876083866605819fdf39583e7f4
dbd4286ed46f690d82bb6dfe98294f674dd70a66,c0544cf4866e53d004b3dc81f7d1f0c7d257aa12,4acef83a977e92c606c762614367538eb61ed16f
1308ba8fd28ed9a3c11324f0c15dd15098cc034c,a51906a8de6b5f485385669c1e703d272badf16c,50208d40a0f447b5d50bb1d282f3e82ca6475aea
abaaabbd1f60031806920697c646cdb3ef8aba8c,0e357320bc93cd3d4e573e5a4040e2e8c7eb5a80,e101fb8c8f94d729c76426150f217516d3b2322f
a35b05285c3ab7695e304137dd47d5f3549b9dc0,c8b3d19b57dbbbe2bfc5b150f8e8145c5250e47b,71bea350a623482598c7b0077a91b584454d9a24
224b4de787e486c969d2997764a7c828196c58e2,3944ccf2d6e47990ed064204d6ad4687f3a48e7a,cf49e4123fb20bb3a8efb16e774cf17a0aeb8a21
a4ea549e6e576d04def7845837ffe9b369aa204a,50174fbb3f6453ac924db1b4eeef19e5911518a2,79149efb488179ef9602697685edc57da328273c
d68b80000faee69d48cd10393ef0c0fb03659b04,6eff1fa2261def749674eb8c5882e54782fa3de2,afe4d4122eadcd4d1fefc7ed8a62b937855fc6fc
6e94f6a2b8d217f6af3adb1849b0a2ea6058acac,a6ba2fbb8cae72140f5b4fe4f608dc3ae14ef47a,76c7e2040ce6095236e17741e2bf4fa773d71229
5966866f7f00fc045615f305aa317267a3dfe8ba,c2d361500fe168783602994952e1ea90420f3b5d,759421d0d042d0d578efc0e1777cd05bc90c33c0
071acd2a13a48b2e50724f8bd5dca43c3f4f76d2,4eeca3f1f2d72ad418a578fa1a894d815ef9f0e9,a6a9dcdd726c8fd9fe1d6da31f17867e536afda3
4349a99b6cab3c02d3349d0b1e20e5cb52506f97,bd00799b5d70bc08297dd9d779ef1d1d97461586,f3902178d27634d1d07551da7bba07082dcdcf3f
9fc7e4cd5d1236c293feb42c3426d47323ee10a9,2c186e418570ea2038e8ce95a4f4f0046b5cd7ff,3a8a06b81181f2da9cc3eeac30a0be9aa7da61a4
158e8faf0a7a4662a7ad90a83457cb83ba7db367,5a80e258efe44d116ec7db98e792fbc87fcf5e88,2bf88900e6130a04c7a195174855f3f1aad1d614
d4cb63fbd8b7aa97932ed4df83e6deae73951632,dbbe1a42c58de485ac2557790cd70dc34862a206,2998c0679c655affc42b708f51f086b192787055
7e2f52256b3c86426da2e4cf2ee12a1c93757a09,0e86e84d65aa7c87d99bf2ee8fe8cb8f89fcbeb0,978499740d994476efb7ff4acf6d82f824e4aeb2
58996ea77edea2a8963ac4a8080369a8fd9e6ca3,bb7ab3100a16e5de482a741da504fc501c8c8785,d347d3213a471d74333fcc820fdd1bd2798cd9d2
b234ead16ad886d63bd4b81c59d5e386527c34db,d84bcf1d6c47df15b98108a2100c2187ab6c6c40,3b01ac7dd6b6b6c9bc9e21e8ef1dcfcc50a71d5f
9dfb9ece166dc00b7856d0e831863632ac65070b,f88ebd27f3bac0d9f45838aaf4af5d1056e600d9,c52577a7140c94c94ebfb5b4225fbcff8cbad524
1f5a3bf9c666ed45fcc1128097dbc4205a44a22a,44c03299489c1c6542fe42f194187330eba6b4a1,1e9b0b1d5492a167d1060d6479f7a495bef8d5b1
942f3d2b71f1a67613fc5780e2db5e7bb2ec7547,95f3bf67546eb8b015d8ea72684d3f5b36c40a26,ffc03b34d8cafb85ddcf0686de1c5551601dacb2
943ade46c4cdbd03e1d3c11bb24312308bb22ea2,174478cd3401134bfa538e1786609de807117bdf,0457baac0b345b240bb2b6d33ba59aa4af604c76
2efddc1b1ca2fe3a0f9e72db1f32c1b72d4d320a,e9e886b4fa7724a2ad58436fe533e318fbef1b98,0f4e6e2d8efd29d141af625eb65d4e25dd588404
8243192eef173c08039e5b6a92199f47cfc57429,da0e7a0797ce414cfe56c732b1894de64659405e,df1499d6219a76bb523405e522731dfdd0e93b25
428aff651b70e1a78483d8f0b4cbecc95b6ab55f,d20dbd4a5817adfeac536e8c71b8a05799acc59f,5bf782238978e197611e0047adbc8ae837054633
ecb6360d04e9656e397a10015ceef5c3fc2e6c71,c0ac2209cb0c4996d388f92bceb1447dd3fd0943,a8e7ad4e2f2f6d3bdc240850075d85e659a42ff8
2034f2b4b9e5dae8a3eee5996d2ecec3c1932376,8f59be06932c674a947075b43264f7fc76811fd6,babd6978076a906e1d094b1b19aaf140acfae481
d076a73b1a80e0df86a005a241696c7af57833b3,1471f46bda77b3532f2a3c521e0021b6ec5b78e5,b1d9d30fbd9a3fe9cf091de81e2489c4991f3aaf
8d5b0bf29f5d761c1789e76029941a9622c90aa5,ee72937977c455f90467c5e8b5775b96560932ae,a5183aecbe321f5e52e85e5af7226f1ec3657871
586a748a4212a1be3a5e6e39e668be39af032907,d7b753592eb2c1548e1d0e9b67f55c7052a08b7e,68950904706b5b1fce13bccde642c299187b8b09
1708449be3bb51b0adfee0fb064d5685fc3e94d4,24bb2d56355285ab46b4c7e1d2d5fe1e8d1f1f7e,32465947cda71d94425e2a07affd1c635b983d9b
c5192fd1c531a20b919ae7e75861e12fa21904d3,a8977713dec9d4f808af1de2ad3a074ce67a9abb,1c2b84aebdcc7d03325bfc8566e6704e36a8e0fa
9376e4f4b38568266505379d46fdfdeed2c5f174,b04a6f6cc58dfd87f5de5d166c88daba09f53cc9,b8dc69d94b86cce305cb5ee8ca7811b39ffd3d0a
3095698a96498400a0eedffc26f10ab23007f65e,b273f928afebc663353b6007e733d62ac1dd5b56,775b13cb21cfba261aac8f01295328855dabd938
44d9e9c1e66eb156df2057bb8c6e306ca07eef32,c00bb70546c0aabb0efe11e2edcaf1d91b489653,d66ee12c65f53787233e3f27be40b73f64dedd5b
711384e4152a7198dedbbbd74b7b995bdeaf542b,4b568a34c145ecdf4c02f47d679a3e9fa5444a56,d1530435e20b4e969a106f9f2896110344581d60
4542cf63117ace1f12e0cc33d30c9f0149ed3983,df631c5be2884d1a9be23fa7d7250536a4a5b7f5,d7f522a5611b13f37164c5eac87ade49b2f5b324
6b9497f380af7c612f1aba009a8e667f4961526b,953e6451ca35850f263a5ec528a48ffc439fea19,c04a25c81974b14b09ff7ecd5b5b36f0adaec8e1
51917d3193fef1b0d7d8c023f1ce341ae8761bb0,9a151054e9611f0d0f3f407ea3531568c46eacd7,fa4cff4b931d2c35a2f70fa597ae8ed7abbadbf4
974694003e4d238f80a92880804b0e3173506658,7dd95d3ce97f7b000088ee668cdef7f150543611,6b46bbee2c75cea73d418596786d808c6ca59c08
d12a405032dc8932a0426e569d1d6f19de5ffb65,aaf1907c9daec74a3ed9c7beb6b086217db50c3f,3e222eb4a6d6053d4981d7ecdd94e1e5348234b7
429935c366ccc986a4ac4079e9d80b77d032d40a,33222beb8d3d131813de1de41a0456b341a975ed,f731b72110a246759bdab91b42616d130ffd1f18
4c0c7875784f3b27bbccf23b1af906ddee344b02,7c19a68e47273bbe7616524c04d3c08b3ecda6af,07cd9bbbafd86e189aff11c41337612f1f5e1fce
13ad10c9812eca3fd7ac18840a24cd991838f4f1,c5065ab4aa79009e169c32fb2f78c10a9700af89,2003506270154938121f250e6324f309b78de9b2
d9210f4c07eb6e1492cdfa43b6206e57721ec27e,ab81ca2034a55dce9fd62e203e08cd0928ec8541,879a40b5c3c0ff75be6aba8fcd306688d630cbb9
991012f10e37b2ac52e1e7bedd3b93388a903fec,f4cfaf74862d82c206cd36cf504481be89221256,d3b0bd5cb86013f302320cab58fe4332add9cae8
abc2520ea2f43bb8fe950e992763abf888c14dcc,416b51be8722c3ca3b3cc307e0df1afe64a1d5cd,71e1d0b48e352f79a803c25bf706d4bb64e7dd78
88097af46e930089a58d13f554851532d128d39f,6b6241c51cf6d1651cb11707cceed190abf72464,1718bf1a998d8ed19b9cd932ec7d4d2cdbda1745
ac50de7608071d75e868e1cf1db6247716bc05e4,02da7dc88e019fd20f9082abbbbd7df0e6db2a84,4052a1ef9a0c4300c38aba298280c4cc59db3c94
8b278c5f46b927279097e22c65549e986dbef781,ad5b381d3d60ac2bebfe1f4d5e615e1710875431,5008dc5ce2fd37aa8f71044671b9f77091ab232e
71c996e11cd07d1b56a6b96d23e223fd7bffc801,3d0b18d620b76c281eeb5702043f3abdfa340288,98eae409cdac264ea6888b9520c888293a0a7b5a
be63fafe7ab2d7bf24abb0ac1c0bc401094fb162,c001260189171c440bd16dbff8963e912f737f13,35304a897953f135d2e7163744485f2bfb568e7c
4e33a15cd9539071d14c6c18b455451f649cf65a,e0fce7f8b0b379daa7d1067bf224ee0d27f3289c,2520889a806e7bb2a0ed89bf81f5cf5071f5e06d
25ca163e6a55859d8c734af32059a870e76afbbe,b0f9783e3dbe8e21201197506c675d02c0a9a373,1dba64b372152be61b4c9b289b0b5f2286f0f4ab
658f9a14a8363bf906faa5cca4b8a0237da00ce9,551ab370bb4b8241f77e91207a7f7db1997a1cdb,7ed6179558eb492a1ff6efce978ad38650c7f41b
9da1e785b0d7bfb138b63e4cf51d7bb60a29404f,baf0b50fcdb5b797b022aa2f86fcee8f4f86c089,fa27a25f05e54ce9e263e0a7e2a5aa9737fe0f78
38625e805189dbfe1ee87e96cae3cbc7ffc932ed,451c1afd71a725f39a5ef0f99a64f7150c906611,66a5015dced1b202a00e5fb90213e18616a66567
de69d52048cf52c72ebfeef61617c04c9bc2005c,462c23b60961afcd84a3ccfbca86e9aa32208d9f,325146b5feb8dee66ca7149f761c30d3939a4f28
1e6e1056f29555fe81d6ccaee2b0f596ed9f1668,e58a4af47fd6b272a34397c8dab9ead44829aa27,b31fe7aac4a4219f259fa8f5158ad9525980e5c9
1c08995eef15daf953bf51cf00691169ba06c5fb,d82e39bd4970bf332c5ebebd182b4e7d2aa8018e,bea615ce7f1ef82fb0a54684b20eaefc8f7f7c38
7e7ab8d8e9d2917234ba53b9c3e8146e71d2fcdb,346dc1c1ffc93134a2ff6922738df650cb1b336b,62154f73b9970ef298d94dc4f5c4cbd4259288e6
df28424218a39c5493811342d5f69880eecac289,46f1744ea211694cf79d17b24fdccf477fcfcd1f,58f95f0e579ea6ae6fc94eedb09d1fd8daf42c9b
917eeda86c4336e5faf8a166e8068806b9de551b,02fbd240ca8e0fc0bb1768483f80cae1e9c18e2c,79c1ba20c6e25c322971d31835bc6821124dfdc1
545abb476142e98996a795a3140744a061a6f02a,d1f217945e4e1a11152e512255913699188c5d49,433dd176e60a948ccbde628559cc31c5a0254f81
fc64eecd81180e25021f2152dc2fa63e9f450ccb,ebc02725e5eec2db4b8949f67eb9ed4d33e7177f,8794ed7c8f2f2f4516acf345f4871efe5bbd6aad
da1ba1f311a80829c1a44f4577b32616e18b70ea,0e22f63079050605f7a013f32d96fedbc48241c3,b6d1d37be3b7e13097218cc23f04804f32d9b53a
da47439dd51b003bc45f1ad41bd2ca24614d13f7,67976b585b9f0d6ba51b0ceb8451c5971e4e25ad,2ae9d278b7438e1b9b48f5bd4060d022f090e5fa
e7b134060233b44fc51d19651cd683ba1257ba9c,9fb871420c0f4f732b38c31645a4c8c324a849e6,e0f1c43283ddd084653bd52a64f692e60fcb8aeb
5c18130748b813f67caea55975d374434a05cbc2,a92f381365576b6b64be9eb9b8a2db5b4609d8a5,2940687c6a3c8172040cf1fca4dd766f5118bb90
d1e2ce13231ff2a86c386a034fd6a3c40298410f,9b7663facf62668e80c58f46cab2f6022dcadd4b,d2935d03e2259cf761486932a16675fc6dfdf8e9
816113639f4a979622412f3771863272a3e7ec51,672c20e8bbf596816b8ed80cc898542816ed7016,739399e83fcfe0d4dc4f01c77bd8ace3f7c8dd93
dacce784a3c23b8885ade59c3092709d0ba5dae6,9d7df48dc0be925ab23f63ca4b7bc8133a11991e,39d141fe1a0de17969c8f75d2fda67810192f993
d23155882a4bb2e28fafff85b70ffb74d8278885,00b9d401bb737c31bd31ca63657bd9d764108c23,177557f39cd36a48cb37f7f019caeeebdc440870
832721f1511474e9466fa63962c3654979755dd3,e495acb7715d932ea2e5a6f1ced2c80a53699097,a2e411704537b13579203fbe81cd5c05442870fe
896f6fac636bd207d9edba022634c2e85a5871bb,81141e894b48c93b16286bdc3ccace77563ae88f,a4a83b72d492e24ba82e382dd2dad96ce9e2dddf
695611fdb32c67f22e3eb730eaf31afbb5b9f810,93e1f1baa5a2997e819d42b23722e401c51a4472,9bdb963a5ca71e97b5902bf0610a579daea9c25b
148834640e99f4a4ff5ac5a9dc6933cb85d5889b,9acfe7c237cd3f8bfd73597bad26226335263c27,ec9b41e07bff463c89b7b7163e30adc540a07f6b
2601092c2b3c40b49ab763119d7d7e25e9d2cfe2,e00ee391e1666ae7e85ad286681a14732a4a1625,a205e76e122a1afaa93af3804e780d4e3eff4c45
5c13220a4abe57aef3380a46ded942f6f838d0b2,eff59420f3fbe0f82ad2e717829e45670118e576,6460b5bae71c1bc651f63e7a4b86500294eb8144
4b09a525e71bad36d4109cefaae58b971ef5e6d8,486aecbd693dd231ca900f3f6c2ffaa56b381cda,dfb084ad05b0e6823e57b8b083cbebb307080512
7191eb5add1200767d145a587d8735f865e4c2ab,163853182c96db9f80cea6fda0cd4887d8d03055,8604d19b1124207fb053128ee4c8b5bf91eb1bdf
a89f9b19844b665efc6b05509a98a28406e7bdcb,e505559df847b29099c7c938ba08dddb21636630,465a77363dd7bfc5e88a493e9127e06e464664d0
30cbad270b6542d475ed44b2b9e02036a1af5235,3a45bc79b77d8f7d31b4a2bb5902147e660957ff,ad7115f1141e9bb9a3939226a17cd80f41934684
00152d58c951b22a2a1165d18367c60d57c5abdd,8dd3c49417d3da9e135735712b168e4fa5aaba52,7819b69a2d7352c6c2bef6fff039f01d439ccc21
15c06e64f98805eaf9b897d5395110bb4215d437,5f541a6436591c28bf3e1a0fc2cc5b5a6ba291e6,892bbac6e00ee5d6a0a8dc677d520719d61fecf8
aecf80f5857f332566162a143ed56e2a34d552f5,6df1621a23fd34934957579f64a03a7941cae4fc,ba87afede8de1775a19eaf0a282048d11c8389c1
c98dd8eeee82a9c776b2c1463d3e91d7487e1c8c,e686ffcad850abf5aaff9cfed99c640bc281c6ff,2e31dfb2f39b3f73dd354edd482e8596e95309c4
d7b731751f0a6d13d425aa35df34161d6a84d6a5,31047daa4222053863901266a442a6a06ae4762e,d02c855580df7717f6e682f3e24f2707cef84d7c
5656e8bee0d40dcb28063d5d9e90d4d7f12a59f4,248945ee51309044be3e5001240ba25bf3d446ac,aefc08d01c8f8e4cb1c6f478b513e11ddec8c4b4
78915f3aa06e554fbbc41254c5afc6b43b328703,13647609644921670c5b4fbb38744021d1bdde4d,1235fc759501dc2faefb21fc8db71a0bd177fa48
7cfbcb500df11e9c723dec093ff85a9a718a611d,ee8d8b12bc231fe451e18660cbd3850151581dbf,88aa7bc5b7ab997c0fda2c888fcd0bde2da91a30
c1072d77b5e3874acb499ba96d51dc3505055830,320449f9415999e8dd39ad242a7b3f1d9535e719,4c16df70f2cfd0cb8f94e98b8d8fea99c552b3e4
199f286593a999c67fb8fc814e1f8bdd693295e2,a9e212347a0748121e366c95449b7307b915585b,2f94bf26d61579f00de17a777b97adf333de4249
bebfe894588fa9e5d648af486ce3a18f8fe08622,4ff22520b2dd4f51b0fe1af931a8d02880f66673,b2d08e9776525a5f8e11c4a6111837bee4ed4446
a93d8911181d2e4fdf8346106f5db2eac584aa6c,b4a85062ee4bfc3bb466a29129a0890780c0d016,fd643096c53675b374b83a706197a8ddf00bbcdd
cca5a90e0fcf3128c5abf7af583970f09c04d597,de51e96fc5529ecbf7663bdb835a1295857e8394,843eb4a6ac1e7c995c0af626c88639e4b1aeaf0d
7dcd6471c491377fb5a097399965d0003de6aac3,070aff4023626b1b3b84c0a41b3733da1bc4ca71,983a22990d8c704d799dab3a599f5d628a0f69b6
52d834850ba158221a2af8d58eb58bbf86075b05,1498312d0f8dd086c456abe018ba341978e2801d,5df43270bb941350ce1f10436d38f3e786e6f77b
da789cfa9ff00a2cac1d79da5e234eb993719a8f,cb4c9b1c3c635cb5fdfb32cc5a2b3381cc52b804,d570e84e704f4e12d72237e2a0d35a2bef17d333
37b8a1a9af0aaf119ec79f817b79e28f307feb5d,f20abf59ded127876ce7366d080f0c5b17eccdc3,f2611f574af74d25d683efe27504d72c6a3fe320
bc51fac77886d8acc49f0664235731bdcd87730f,847b9e7e1c3bdb24b295c3e034cab3fca7ef295c,16463d2dc00b74cca1a10932149e1d674a7829a2
0779eb4d3d06a25bf010f896bc42002c81e96c10,4623d8e15d9d8c8abea70250b9aff428e9d974cc,f2f727aecd28cee0f2dbdf3051a16f1438ee2649
256855e448beb6762d082981d0b69c51fb8cec5b,8a4a00ecc90dd3070f69bc44b8cfa286f2f4ad55,12b182e2775889a9e5227921a7a98c543e8594e2
20e80cb58ee82aa253b284ac16b2a7b056d6a4b4,f010f2a76ca070c316b3bd9bb77a402b0cb33f73,5f27c95bfc8726df434766a349aac92fbd0abdb2
c71f0a97c82fdad9b5de7d04d66eb22cfe6282f3,c59ff3bfa007ec5c791c5ac97ad814c5f84e6381,da51c1dbb31678e77baa936a6883214537866d5e
1d09bd90ce83f7ea8c9509d6b31bb7b0ed046e39,0a5b2e21c6cc3fcfdd084676e11818737b0360ab,68562a8c932d004d2e634790af163ae1a05880ca
5bc6b342bbfad2ffc449a0dc5b64d936779c886e,0888628c13ea31030025c138303465349ce88e18,505525221d4939568c4c2440ac404aff861803d1
926ce63b63c714cd3af9ba8b8f540c05abdb1cfc,1525044ef0b5307a38009e6b9e44adeabf40d75c,3538e5a47329392da37d41dee440e0053e4b8602
4c819f49fb0ebfcd50ad9693f0fb49a3aa9304a6,56e3c76ff61ac6b6ade730c1525a6f2602715eb8,eb7c453de65678a2435df47994e8afb66260a101
887db5bbf319359fef32890fb757643c585bc7fc,18b17994ca08d1ad76b947a1fd071e3fb7ed405e,ca5532be92c78d817336e3d1ce05ad1744cf88b5
223fee3f10e086a420a80ccfa2eccec6fbd90e07,8e4afd765b661a4ff1f8e13fa22fe600c37afad6,467d2eb3ba6120bec27ac18a72d265d4338d393a
a71bbb3648da33ace80308e9e4b82f1c171ecf18,83bc6a3607b6cd9e2fbbdc0d64c0a33274523268,87b2c89817f4dcb387c97854679e214feadb3c82
9bea73ddc8fda2d1adddb1ece04430bba081fb64,fe05d8268b1e52da6ed9a0df13aa223e4482ac96,07a7fe0ab492da0a97cee17bca8d90e1beeb829c
bf1f7bf1a0cff2c138ae528c1cac5f16aa6fb2d3,1fabd0862d0fa8d2ab94b0798793e4ca75dc7c64,45568f8faeadfcde185c23b890a90eb688a5a37f
b547bdf6d80983d7f2a43465986f688e3298bfb1,54e411e57d80442853dc0c53d21c11601f829f09,49fe99af023bc9306a09273fd2633b524aead06f
89d123fd75b256b9fa587a992c550dc49ca49d0b,c020cb3ceedfc2b0189a326643c35ec47e1ab48c,94c8c51ac689e4322e4e7015a0eb77f1b115cbcf
fff7aafb5bfde3c4afddd1b63cf18e0cb3d679d4,3b43359826642c41c787a370fe676029bececff4,72dd5a75ed7cf4f38b84493a8a51efd1386bbe0e
60e5befc08af7d02683be9a87c4f6fd82dac7c4c,61fde65af89fdf29a7a6fd83b026a21706e19b1f,0a8f9f04a52e86348e6c629b68db486b7e4cf7fa
8a4bd264a2d146632af9fedc9f907ab0e6d166ae,5f04e7dfb901ec8cca1cc80bfed57ee82d7cba86,dd48f532927b2239313879bb7134463a3df750f4
ee9470519336bb36d60acc93f4586c766c121fe6,ae2ad24d07b3422e1bd006e1ebfb0a39c9e483bb,c3fce0b7e38734ae4aaede6a23a3d912958c77f6
6cd9fc69cc53dcf0db1ee566dba8db0a6c7c932d,46ae4ad58c8e7b8aef3596b3f65ba95248f3f08f,83661909431c0443d3b6f019c5d90964e2ee4342
5101fbfdc50e44efa9566705bbb71e5bcbf2b15f,c0b5fa07df0670fd616aa52b7f407ee1cdcf522e,c1bc3b5746a778776c10a3fcf73c71c945c1089e
ec1344208cb52a7dd431fbbb46b133b95ee2ed41,b93a949164f17aa8152cd0e28c3fbc7ef9ac26e2,10336ddadbbd2e3629806b9b935981b7a50bb558
4b34e48afbff229b1b88cb316677fb6aadb71f59,406a5b6ac25e8c113d0d2f530d17ef7c2177bdf3,c5f920a67ff3eb1b3d4ea0b7ef686ac44cd7c6b5
00d27fdcdc8a3b163f69315ff1a9a18f1d89f1df,ce5ad5555fb7482348804e76c169fe81da7be0c2,118936a11dfb4708390c56b7a27623a33ab57f8e
dfac6820480b639184f09996f37007bf63ef3f6f,a1aacdd31b877a800cdf85c8fd5cbff8d35a6427,a518412012e05c7bf4b8164bfb58725fadd75eb2
678fdaa64df461e6b9bfbc7c248c27c02d7f64ff,33cfd79aabc811c4971a8b7fb981e542ed0f1c89,b19181d6df2e80aaeba9dcb1153dc1b65128c882
c4868bc07e7304810fa2218d137b4db7743bc8c9,9e660ecfb4e7d2c66c6caf4a2f3c81ac6d6d7ca6,f80a4d39df618fbb962e3432eae1b2fe8e7e0d5a
d60d941e251dee0cf68b885df4084ca3be9057a3,568bb557ad20bc8abb50f7456f7cc379df763b1a,6955df1974be8f72830e35f7a18f5b2838858c79
a0db2f77c59aca5d471be9a28182ec78ab6819de,12a0ab07e4a21f4200f7e4b33f4ed1794f73cf88,9badcfcde633b8e39446149e78327f739b479743
9662376426dba6ed99c7cc919ccadf37fcee07bd,3280be5be0d301fe2e7e8ae769dc1f002652c100,125f3b5bc0dcf05eca402ea577ccd594e6704fae
6074abf937d056457f15d384106cd3110a260fcf,d1fcb61bf26000f9756162fe09477c246296c3c5,2b15b1e45cc1daf40b0ef0c0d2fdaf8d060aea60
4fed30473029fecad759be219ca03b35931a864a,e1de046225eccff34de4da7c32344675e00f4d33,2df1219d67c61a49d234d2df0d1c557078f68116
f5cef6b76e9eb44a836d05503deb5a6acda49fa7,0e1fa70be35289f1336cce9649eec579b924e3f7,96ec4dbadbc6429414e8d5fc749b125597d39f7a
7d4436adeabddf2d6cdcb13723139ece50ecc88a,f901740f3e177355c46eae29a4f2e3b0152749a5,816a1039e86498f79cee887f2f5e8a6f76ec381e
28c09b9eb8352049b878f026814a186346025ad7,3827e580f7be7d671824f299a7daa9cdd2f6c72f,01927368a4f0e65172674e29dd84ca0303232fa6
4041c2707cdef4a494663b0b132c2bb0538c49b6,af899cdf040854f94ce5fc867f6e0bc9e03793e4,3837a3438a2e0aa644b3a2ba6743ca6d4824826b
c7820e5279ff60df7fb94af2d3cf1f47cb731994,c393246fe6d67b7be868cdd065884a5238fa9806,83da87622e2e7833e70838b171ce56b001c168df
553fa6ee5d46d28e7193e5def6fb1de332fd1e27,e709b138be4aaf941609c20f4cdb6ec01c989127,a38253bf88a3d17846a2129661241019c0297735
c01cfd88e061269af550cd9cd9b869d81099399c,8a59b3e5c7419815ec85205a7e65fc0e8e49c8d9,b351c26299f573a86f94efad1a9cbc00678bc741
12c0712fdeef6ca95a7b3df3e92151f9289e9259,76a58b56d54c0e7cf4f64913fdedf9231e603024,ad9edd5b02955bcbfc085599bb7e8ffe5ed14d96
7225e07ab1c695d9fd5d245b9233d55cb49c0b91,e6b5b7a5dc62069e8dc1b7fb388db9fdde24133f,36bea460c2528f2ff6c790e79c030fda883f5286
3effe17091e9432dadd26083f8f34b034960b626,f0067862144bf79dabba55012cbbceda2860d833,924b074fd412a40dc4075be167812f340aaa1afc
2274f72c94e05ef25f41355c161d8069d62caea7,563131e5da25b5ff40c4111352ad5b2047734886,d7d31c92e74d7a91099217e15324ae476e151665
66a2c13512fb150032d7257d8368c7a14cc8cff5,25034b699713aee456fc3cc1ef84c6f06eef5f15,0c0c2363464bb0b7e923a850f64578b6247d0be6
9f73aa83755bd63fb14d32d291dcdbfd3edb9678,4e7e856a7bd0d2a8ce7076262a49aba0b8648722,88a3a2a14b843afd81dc2c99fe83c4ebf326c805
261591becc7fe92ea6e2dde2ee198bd309814a6d,f5a70639134243a1fa5cb631d476a7ab5b5a7cc6,21d5f948fb1ef2cfe0648ed01ce76fdcfd99e243
c16f97e6e08afbf47007a5a509fe6b774aa78145,b164e2a2e5de967f72b20906641d9f215927eb99,8a5b7323cb1e7218bb04ac6e5b9e06480d6fb6a4
d2ed6d3b3f400bbbe8ddd7b0b70bbaa16bc9ed04,9d112453a55c48969b26cb90c1ed1ccb8825a4b6,4abd006a4aab544deb3cfcbd30a3dba15557d0cf
0efe3918d519b0eb28ff7294c953877af0d2bbe0,fcb9ca974a6bebecd3813223d8cbe442997cc5ed,5d6fa823654ad461045f02b6c56a7e8dc835602c
dac445e3ecf4ae9f9a08932384fdbc690ad6378a,9224df926ddc535694f10aa4f11fa700e5354517,8d3c79dc9ec631a2b73c0bf9c904d254d47bd8b0
35a44a912d2230ea2afdfc37962c734c99c48dff,ae99f598d248a600f22472dd23c5bcb1e623ea62,42c81ee5ca50101d014f25b60d146e842f3aa803
78b68b247a6a95bd49adfbfcb92ba9e85b66a7cb,84a6a403773cb308d28f8542d73f78ae4f12822a,02a591b311a43230d5651cb9d2207c6eeca4b0fc
175c65bc528543940049b72cbeaa20032602cee8,e5761ae96524cf9df81bc740a2d906269a5d4228,e6a559f1a4e7213d0f8c8b377e713e882739383a
bcd728860dcd953cb6f3bbda788eab07b0d16c85,9635987bef4bc905fe36f6ab049bb2fc586cd7a3,3cdb3c61aea49e2f493eeb429093a0044b0eed07
c5c9be30d6280a22620fe7e37af63d5262aac606,86f0cc9080b07e4aa218bf9a008c91926423c5a0,3f714ecd7c8420d6512d57ecebfd8f72b52a4e78
afbffe1f7ffe02a8764476b08f6aa704438d5e84,86b25cea89a6bf257b4a90258ae0d0473fb3116f,494e994f18081f8c9ed591675743c2d93bcb2834
b71cceb1fbcbdbf646c1baa475bfb0b7f6d9a319,5b4acdc127274f176bcc548ad77dcdddd4d2604e,cce3bef6f5f6eb5ec6d07af08f92911502087774
c094c4c5df9c4b87d4b02be219cb8d97bd115bd9,752580f425a6c6129e2cf24ddb2aee4e3badfb8d,2613e5d885f807ea20e71d96b84cd4da05bef649
c08dcc44bb29ab295c618d3b36d1f8c0086662fd,19c16dc55ffdd561efe08693d0b5e77af0939f16,8c170dbf481fb7e628ccb077dd658782bcac2c84
7cb1f0d720653b1b0523620f2996b0c0fa4587dd,0e4385bbe220e5e9c9e5f4c6855695dfc033fb36,aaca2b66630c502aabcbbc4e458b060404f4a226
82cbd6e6db69ea810f79c756e0281652d5feffb3,e965b20df46e3e616bda89c25ff5458c93e5f4e4,771c64e5355314f388f0bbe1caf6f6e8186513eb
b846d38b351ad53676cffa2d9c562aa924a4b56a,14e936a503aa7857870f58cc9453f01a2fa92e4c,0982c802111a69c8aed14f326a78a9a19731fd91
7cd12607cf8f88b40361643ec9108ed3b44adf87,0113062d087fd29eb1ffe14f4507642e56a87e29,02e797be1e1b26fcaad1c8f5949890dbce017ca5
9896b7fb4ede2820af9b07039492a9ae7c85a248,3e6a1a0dffbeeb0f91a425a558b24036c6a318d7,221ee21263e2afa513a99c92c2b7040a77120fa7
f60116ecb3b0a8e19330766a19781c96d8aa9a61,9f7e26cef466ba32abd59cd0e3a62e927af9e540,5620507067e05a4b5fd4b77832e1c09bf39fbc72
3e232dce520bdd626b46aa76fbd32be54172cf24,7ab2fb1c77a3581d7c90e113017316d699b8a1ae,36979f872bc374050aea7bdce9e3f71739929e2a
2cc1ca811fb36a930405abe28c18cc1dbf52cf49,a6358425b7b4ea9922b31078ce40559f294835c4,8e7e15f4fa8d89a784de13aeacfae08957bae56e
589a609f430586444ea816d65759df0713016493,2d2bab944d1b669739a43757e83d8c063ad230cd,de310dd13e80342ef5f06d445eeca6b9ed72ad1d
c6afcc3a8807f94537c46d8eef1ce8f4bbab6a4e,0e6710079aab85c5bf12b6c8c290774104fab7d0,bdf9c8749da47340adec0359a533b530bb702106
0a41f8c7f22a9f34674326a546c922ddf826aa97,2444602fabbf23f3f92e3e6cc0d10dd0809b0fc3,2afb6b0300d84a3849226d9fc558bde75749b0e7
db5e53c7cbd2540fb3979a2d631e39126d5d1f90,56900cd3a58b32cf3c0f8a3b48443a139bab8e0d,8c0a573a105f89ccebf4a9d51653dfa9c35808e6
e3ec9b3f8f8517a728311a8f596c91939de6ba17,a215ec20f5119dff5425e65608814f51db93dd80,fe9975e8ca645c43bfcfbc4a51df417a8fdf8bd6
a0009b9e26f0221f1bcce37a55fd2a7b61a87132,53e398009f70c8334e846ec4d8c63c19da75404c,ba185ad22841c201e75b1dcc83649766d93d4745
bdcbedfc7039beb93f20e3210013adf46b661bba,05ac5f5f353425bfc4a91bf190993f59c8c5c959,0e357533efcb30ef2d56b7ada61cd8af11c6065d
a6a4825be42eb676181a15810679dfc858393b54,095e59fa540923c174f27814a7109f4438f1ac19,0abd4ce8eaed232e2b635a31213ea4316020dde7
a750e812377dccf83f41a8ccb2e07567a2fcd3d2,ba5b5a14f6a031d7d2f5b740cffe4d2202d8f6f4,633b25e41387ae36130ace7edb489e11c40b7340
a2330be6774990a32d5d24bb22b07f2483be35dd,a18eb242d5234616b1177b58299d04259b42de3f,5ef0700a7eced12aada57d8b5719612628b4d839
cf7c059e01f4ba71e90140e05a8e2c2daf6a83d0,14b2b0de312f6b1ce6f018e312790886b3c1f88f,50dd478cc1f653a5ee52496742f030ebbbf3f76f
d3785814e45ea245a350fdb4e773b725515593a3,9325db226568a6f6390b1ad059a9037f4c3d47fe,1d6fbb2d42d28b76e8c2e4ed97c1b680e4eb6347
d2f4761d19762dba3d57a288cf0df84e8bdbcc9b,34d663271babb20ca7a78c17e2f32343afb48b52,520765b3a588c576e13d3c0bb225e0b08392d330
963f7126dc0e13654b2fe14cc6dfc8fb1c6dfdaa,898c0417d18d71efef63f780c0bc32f10e4ee868,7c1b9eee6ca5847766c2ea72429aa59a7474ecd1
08d47e2cbd6859c849ff229e8e135d88420511ff,07f8208f9d11e5520c5328eeb1bdd9f87f665303,ec3995919d4bdb0cccbbefd2929eca74206b1047
aabf0d77c241e87a147b09b170bdbf0409b2a43c,f0fe23c0149e7cdca40195a05ef6c8b0f30f9708,dbebc71f871e9fad39b52a638c1a03e73e6f8b1b
d772bba89fdfa7bde6dbc06d4e7d1c9d350358a9,7a7ff6e7315db58f451c3a81a091a2fb6e0b0088,33b7c8d43289fff2ba7e8a1b5a2c46e13853546c
c17d323f2e224370f4a5a7ef8e2a3e548b71e22d,f0f7269b367e07dd358be96fd413266385a7ddf6,2ec3f7a440e3c7b80cba4f7d2a7814c7bb36947b
fecef0222be6e9d777a37872caf780c200f4e564,b6819a170d084f1f2cfe3190e2b4e6cdfba3e91e,348a84184e17cd8dfda4f46ea25118ed60f94a86
5031402db581bdc2255398db207fdd97a329cf8e,0745a3b90183aacc09abdbc2ff49cd6693680764,0cf3a39d61c8bce004ffbd3e17beb0a72232de4a
a0e7954b622b555fa095e496d9115e40bc1af2a8,df65a84bcde010cc00243555f494f28ef1d721c3,2fc8867acec7bc29f04f47f295794a232c36c382
4fcfc21bb552e490aee12c2345a3bea7a08170c1,e2126fcbbdb09b633f4829171e2e7746f76b2dab,517648c5738bf14b583985f489e68b98028d7b99
61c6d474c0d4e2c148975250fb1fbd6bf494f90e,aff2a7881dcb32b5733d259d3ac5c3a98bfb6034,3f33d411285bd355ccac6012b69c5442ddc491ea
05be34c09a822699dbdecb7fe76c6416188417fb,caac13c8ac67728db0e317dd9c6180d545db1607,6bc02c7761476712d7744d1cd9c98b0f5c3374aa
1be3ed157c22e884204379220d318156510d83f9,08c25674315121eb485e08a613fa8b83da30c858,54199936e3a48b8ae7cda24d37e1e10043fcf92c
c08fe283d733a3be95ef1744d741ac8f9dc2fcb4,ebad25286cd684edc40d69e8f828f9c0010a38d5,d56d588ef338a8a260e16f8f763c4221b5ed9b98
5022e75129c923dd83628db1eb9a1286a4f14a5f,d5167dcc5f6b81fa6b375eaa1beed9f53c1f037e,821a81cac297b3d30b6ed4853f8e43fb314228a1
4d0e69b6f493df4aeabb9e6c5161d05c9a7fcb5b,e6ebfa33c29b4932d9c7da1cf67714fa27851d11,5d04d0df9b1523f140148add681d0c87cd2aced6
9524aaa2f4fb43e5e2dc89f0e99b5ae81b864ec5,ca313231a24c1137ca364215af69b2fc3c7f7003,9d49376e7c972b0b142d609eed527354f4e6b295
b79db07e12eadbf268da1d0511cb7334b75df67b,2933f5ca60d86087451a1f8d5c726bc1c7ed5dff,0edc4c6bfc348e0a485d70e48e42f1c480057162
767e3f64203021d3c7a499ca8d50c16a2f304d19,2b2a1c092c4769fc665ed05011eec40e5f81fcf6,08b08ef703a14391ad8b21f99be58ead8611f4e5
86125b587067db5bc22f5fa12426aacd7fd9d4e0,f14a28b5d49e39bc5105e131729717a793e7c1bb,9521f1f61fc0c71692ac360593a486065f23d9db
161107db2974fa57a4cfddc1b52c14e4f902d0d3,2d5bd92b8d69b03a83621119e3ee8e40bf6fa565,76dccbfc8ba1a1c076fd2c07b3f3e29be717db31
9253dcbbd942067315538879ee00a023fc201a0e,c96b912c1c9d4ae5639e1cd8e515a5c34ff84b81,3047ca16235f5de3f61cf4e73f6b4cdc77a893c1
a098c08dca2e404e31365340952dfe3f9a0d91ff,401227920119eee56764002e897c3a488b9f384a,fbfaea7499ffbe07aa1d565af655123aca511d60
390e903b22063a2c2bdb8ed433cced4b212192ed,a06e244ae5c83103938f996df9b067181e13aa6f,acae2b0ff8eb492355213972cad1b4f50856d6ae
c34566969a1de0ac087d2e00153f4189a2f21212,ddb0d42b8fe9a2921c7805f58482f485a0534674,31d83d4e22842fce0bf37b86615bc617c048d860
272e8a798ea5dc6c42033e5ca68662108d3f83e2,e6c701605309e6453fdb10572e7c5047ff8acbd6,5b7b1d23874d9af3d4262cf111a7b4fc1effe38d
32cc81f9b5baa703002565a39628897c8ffc9da7,794de9ec480f8b98f19f85d07dbf2861a8b33ea7,5eacf58ba94a5f8fb6ac5807d19a0b48d9ac5ff0
05429039239fc23c68086f5c1e447fcd899f92fd,74c30df903f1b6b04f915fb7790653116cd7b3f3,6f9b52f3d20bf8d4dd7bf1a91666922978928878
d134a4ccd27ec86c5e33d360dbf60c724dbacd11,02faec960733d6aab18cc0bac2e04ff80ba7e9a2,784d831cd40b967d79c12b6cde305594db7d0e81
7a225486bcc98b9ee69ee9b542853d3ead8a82b6,11d75a8b276c0042ebe059a28d047cb041456fea,d7faf5b1b6d13d84a50e80be43bc850dbf10ae75
7a76e3ffb54d8edc0e04fa36ccd212e652c1293c,6457f7f0a607a4bc51bfa453b39c11ac72ffa4ad,324b84cb7e8ca2618587765ddfdda55e357181ba
975105202c8be60c30851ce37ceffc2ab50c8aa8,f4c13cbe9b27b3e85dcb9d04e2108451ae8f19e8,046ccb517fef094ff839b67d97483b860d6f0fb1
0a142bef364462fac14ba38061b3ee3f0c4bd06e,043d25b2219e0a14cb31a452cc84af9e29c3689b,a6c342346ec1ec32fa5b41e555b3efcd020c086f
fd255bb4e1a5828365fe95fe9eeaf2fbf5aacc67,2881a326b89d570a9957ce25106bf269af39953b,a73ed10a6d94c3cd1f4c0e25a06aad051d170b88
a5599ddcf25a76679a693ee00195e33316f9c661,d1e31072f2206c09adb71391273004d1e99bcd04,b979c141af49892598e558c023632a66188c75aa
398990abcf7b7cf28a7257b49a2beac53c6f9487,e9de0d870e4fbfa25346836ea1ac66a1b033b7ed,ee1005a77e25da22c60cd99cd224e8bea9d691f3
e774e4880e1f930f2e6aeb2388b6ccce35597e3c,32bf754a372975d6e1f734f7315d1ca1f52f90f9,3d56fd766d13135a526ba9ded69622ccfd1bc505
48314fa0a29dc80907d0839ed47531f4803a4e13,334b1ecdb9ac59ab0c903bb5ff223e16d597b8bd,dad0af336021cdd2d86d379ec082ea5d212a5846
d6bfb13a2796d4699f18bbf09a75e08e98488700,4c5213a9c33a8fcc95a1ab678a86e7d2c438a9e6,da2520cafb8cc56f1b6b9af89b4ac606e999b5e0
2613731a889f91e223808f6e126449b68d8ca6a0,814ece0205a6b9c2c6dad74c8069ebb2ae50d1c7,8f8585d93dbe23ae6ddba1b847ed452d85501548
1ab5f097080f95fd6bc3a64231da7693f5f8d3e2,90b66bad388565a21ac2fc885bd9521acd098997,0d2208f0b380c73fd159da42c906ced7a9f990c4
8cea523d1e78b9bf9a244e7f6965efc867817af0,8ae95e278b4315d522aaff33c891ce65fd528e26,bca99b8a155c08d91c90a90418c655b417210743
920e91d9815be1a67e1a83c89fd3fc4040b6cbe8,e0b111918c854cb1e63aeea68ee8b55312ad160b,306f3f4b6d46c2d1cd26ff3a492c953086012734
705c90c91a5ad7e0a9dfa7a49df6b7f2bab4c78d,5348f83166287c68731f03d4c5a6b9675427a114,cd74bb447848c9d63429b3d8a4369732343ed4d6
fa51767875e16b9ab7ae8f37c8817bcb90452fae,427724e6542bfc4f50cf50d8ecd422829a69d787,45087d969b4cd796574967f695cd97ab840845f0
a5f8d7fe624e476b94f9fad88d63fcadc364aaa3
Clicking a revision will expand files
Merge: 7082b6e34a 88f83280dc
Merged riscv_new branch
+ created branch for keyboard/video/mouse unit unicode support development
+ add svn:needs-lock to kbd_us.ods, because it's a binary file (and therefore,
unmerge-able)
* access the Default8087CW global variable directly from within inline asm,
instead of copying it to a local var first, since the concern about PIC code
(this asm code started out as a copy of the i386 rtl code) doesn't exist on
the i8086, since there's no such thing as PIC code on the i8086
* optimize the i8086 backwards move by using movsw instead of movsb in the Move
and MoveData procedures
+ added asm optimized version of fpc_pwidechar_length for i8086
* place the "external" directives in the interface instead of in the
implementation, because we don't support "external" in the implementation
for C varargs functions for LLVM (can't generate a stub for them)
o having "external" in the implementation also causes useless overhead
with code generators that do support this
+ added the initial implementation of my C structure checker code generator
tool, named h2paschk. This is currently a separate tool, that requires a
manually crafted input file with a special syntax (example is included as a
comment in the source code), that contains descriptions of all the records
that need to be checked, but it is planned to add support to h2pas to generate
these files automatically, since this would be very useful.
+ added h2paschk structure checker files for the DirectDraw and DirectInput
header translations, used by PTCPas.
Avoid C 64-bit compiler warnings by using %lu instead of %u for sizeof and offsetof
* fixed floating point div-by-zero RTE code on Darwin (208 instead of 200,
fixes webtbs/tw32671)
* fixed Darwin/AArch64 flt/int-div-by-zero error codes (fix for 42045, as
noted by AlexeyT)
put #ifdef TARGETOS / #endif around the gcclib section, otherwise the various host paths can cause a hard to debug mess during crosscompiling in some cases
Add support for softfloat in RISCV RTL.
Avoid range check error when compiled -Criot option
Fix bug report 35937 by simple assembly code change and add test
* the final build of packages and rtl are compiled with the general tls model on i386 as they could be used in dyn. libraries.
This does not hurt much as the linker optimized the threadvar access if possible
* arm uses the same approach as i386: during the final build of the rtl and the packages, the general dynamic tls model is selected
Define FPC_IS_SYSTEM at start of all system.pp source
Add riscv32 mathu inculde file, redirecting to ../riscv64/mathu.inc file (this file seems to have no 64-bit specific code)
Try to correctly handle m68k exceptions bits inside SetExceptionMask function
Wipe out any pre-existing exception on SetExceptionMask call for m68k cpu
* ensure that the includes for the new mm related files are indeed enabled
* ensure that the new mm related procs are only used for 3.3.1 and newer as 3.2 and older don't support the corresponding SSE types
* disabled mm procs again, they are not usable yet neither supposed to be
used
Pass old value of OPT to FPCMAKEOPT
Add '.built.on.$(SOURCESUFFIX)' for snapshots generated on another target using singlezipinstall
atari: added the fpwidestring unit to the RTL build
* use getpagesize function instead of reading external variables to restore
ability to compile against SDKs < OS X 10.9 (mantis
0036653)
* allow FPC 3.2.0 as bootstrap version
Try to fix problems for more recent GDB versions.
Move GDB_NEW_UI macro def. to GDB_VER_GE_712
Add GDB_INTERP_LOOKUP_HAS_UI and GDB_HAS_SAVED_COMMAND_LINE_BUT_NO_SIZE
to same GDB_VER_GE_712.
Use stdio_filopen to create gdb_stdout and gdb_stderr
if GDB_HAS_GET_STDIN macro is set.
* Fix compilation of gdbint unit for go32v2, should resolve bug report 36923.
Replace cint type by longint (as gdbint unit does not use ctypes unit).
* disable some x86_64 specific assembly routines
* disable CPU and Signals units for Windows on AArch64 for now
* use accessor functions to work with the TContext record
* the prefetch bug handling is specific to x86_64
* rename RunErrorCodex64 to a more appropriate RunErrorCodeSEH
* enable is_prefetch only for x86 code
* inside the Win64 system unit convert FPC_USE_WIN64_SEH to a SYSTEM_USE_WIN_SEH
+ implement RTL functionality for SEH for aarch64-win64
+ implement a main_wrapper for the default exception handler for aarch64-win64
+ add ability to generate a flat binary file instead of a tape file
* simplify code: simply raising an exception is enough, it's not necessary to call ShowException and Terminate
Fix conversion between TFPURoundMode and bits of get_fsr according to SPARC-V8 specifications
+ readd Randomize with parameter
* import library function with a name that does not conflict with the functions exported in the interface
* Optimized Handle_I8086_Error by using smaller int types.
Fix compilation for watcom RTL
Fix NDS RTL compilation for default armv4 CPU, which does not have CLZ instruction
Use // comments as curly brackets not recognized as comment start inside aarch64 assembly blocks
Adapt to change of chr function in commit 47353, to change chr() a real intrinsics
Add missing CPULLVM versions for fpc_abs_real and fpc_sqr_real in x86_64/math.inc
Use pascal code for LLVM fpc_sqr_real, because fmultp instruction is not accepted by llvm
+ RTMSupport function
+ if available use RTM to support InterlockedCompareExchange128 on i386
* i386: disable InterlockedCompareExchange128 implementation if PIC is enabled
* darwin/AArch64: always clear fpu exception flags regardless of the
triggered signal, as the kernel currently triggers SIGILL rather
than SIGFPE for FPU exceptions
* while not official supported, bootstrapping with 3.0.4 fixed
Fix spelling error of revision 48023
Introduce USE_REAL_INSTRUCTIONS to handle expressions not accepted by old assemblers
* do not execute xend twice which was introduced in
0048430
* fixed the parse-collations script/bat file
* fixed the file name in the cldrparser help screen
* updated readme with URLs of the Unicode 9.0 and CLDR 30 data files (to the best of my knowledge)
+ added tool for parsing GraphemeBreakProperty.txt and converting it to code
+ added unit GraphemeBreakProperty, containing the grapheme break property character data from Unicode 9.0
+ added modified LGPL license header to the new graphemebreakproperty.pp unit
+ added and implemented a TUnicodeStringExtendedGraphemeClustersEnumerator class
in the graphemebreakproperty unit - an enumerator that splits a UTF-16 string
into extended grapheme clusters (i.e. user-perceived characters), conforming
to the Unicode 9.0 algorithm:
https://www.unicode.org/reports/tr29/tr29-29.html
+ added an eawparser tool - tool for parsing the EastAsianWidth.txt unicode
property table and converting it to code
+ added unit EastAsianWidth, which contains the EastAsianWidth unicode data property
Fixed free_fun function signature in zlib
fix! 2d00cab5
+ RiscV32: setjmp/longjmp implementation, based on the RiscV64 one
* RiscV32: fpc_longjmp needs nostackframe directive
* RiscV: unified procedure directives of fpc_*jmp
* support building with FPC 3.2.2
Add missing go32v2 zips and corresponding sources
Replace p2fp by p2fm as short version for pas2fpm utils package and add some missing -3.3.1 to long source zip names
Remove double source entry for utils lexyacc package
Use utils also for short version for OS/2 and emx
Fix short name for utils-fpcres for OS/2 and EMX
* thumb2: Make fillchar smaller, faster and more reliable. Some gas versions remove the "mov r0,r0" making the calculated branch break
* thumb2: Optimize fillchar a bit more with a wider inner loop chunk size
+ Aarch64: use LSE if available for atomic intrinsics
* Darwin/BSD: fixed StackBottom calculation
atari: implemented stacktop for working stacktraces, implemented stacksize dependent stackmargin, and a system specific backtracestr. however, offs display still doesn't work properly, due to a linker issue (reported)
* fix bootstrapping on aarch64-linux with 3.2.x
* LLVM does not have an intrinsic for int/frac, so don't replace frac with
a call to runerror(207) there
* fpcr and fpsr are 64 bit on aarch64
* RiscV: unified cpu initialization and FPU exception handling, resolves
0038893
* Windows: Prevent removal of the TLS directory by the linker when RTL is compiled with -O4 or when inlining is enabled.
Exchange REQUIREDVERSION and REQUIREDVERSION2 values to get 3.2.2 version in reuired release version message
* win64: factored out cpu specific code
+ CPU.BMI1Support and CPU.BMI2Support
+ AVX512*Support functions
* call cpuid with eax=7 only if it is supported by the CPU
* x86-64: removed some fwait instructions from fpc_frac_real, they shouldn't be necessary
* x86-64: fpc_frac_real further improved: memory loads of extendeds are expensive
- x86_64: some more fwaits removed
* Gitlab client + example
* Some additional filters
* extended routines int/frac/trunc shouldn't mess with precision or exception flags, should fix
gitlab 0039275
+ CPU units: check for SHA support
* x86-64: do not jump in inc/declocked to return but return directly
* when compiling with the main branch compiler, p2align with 3 parameters can be used now
* the libc unit might be deprecated, but it's no reason for wrong declarations, in this case values that should be declared as octal but were declared as decimal with the same literal text
Fix compilation of nds and wii OS rtl
* fixed the ptccrt key codes for the ctrl+numpad keys
* Add missing definitions
+ initial files for intrinsics support on AArch64
Also add short format version of build unit BUnit.pp to ignore list
* updated ptcpas and ptcgraph to the latest 0.99.16 release candidate
* ptcpas update: support the F13..F35 function keys on platforms that recognize them
* ptcpas keyboard handling improvements for macOS and X11
* libffi: fix abi declarations for x86_64
+ LZCNTSupport
+ test extended
* out and var are reserved words
* Prepend T when writing pointer types and PrependTypes is set
+ x86: ADXSupport
+ x86: RDSEEDSupport
* Remove debugging statements
Java: adapt FPC_ANSISTR_UNIQUE signature
Conform to change made in 800bb3adc23
Fix compilation of jvm-java and jvm-android rtl
+ routines to test for AVX512VNNI and AVX512BITALG support
* rtl/atari: get rid of the old prt0.as startup code, which is not in use any more. this way, we do not require GAS any more for a build
atari: implement ARGV protocol for runtime startup
rtl/atari: check for application/acc at startup
* rtl/atari: use the haltproc declared in the startup code instead of calling pterm in the system unit directly.
* rtl/atari: fix haltproc external name. apparently the atari target uses a different Cprefix in the compiler, so copy-pasting this stuff from the Amiga port don't work 1:1
rtl/atari: implement environment functions also in dos unit
* rtl/atari: add the standalone softfpu units to the Atari build. this fixes the Atari native compiler build after recent changes
atari/sysos: use the symbolic names for error numbers
rtl/atari: fix readln from console
+ skeletons for mips64el specific files
+ store also ecx and edx after cpuid call with eax=7
+ test VNNI and BIGALG instructions
* m68k: implement basic support for interlocked functions using a TAS based global spinlock on CPUs which don't have the CAS instruction
* m68k: some CPUs don't have TAS either (for example some CF)
rtl/atari: move common code of getenv
rtl/atari: try to convert argv[0] to absolute pathname
atari: support ARGV protocol in ExecuteProcess
* fix declocked(longint) for aarch64 without LSE, resolves
gitlab 0039569
* m68k: fix an instruction which doesn't exist on ColdFire
- removed superfluous comment
Add missing rtl/mips64 files and fix some rtl/mips64el files
* Extra options for more flexibility
* nds: the embedded stub DOS unit was just a copy of the NDS one with minor fixes, so lets make the NDS port use the current cleaned one as well
+ AVX512VBMISupport and AVX512VBMI2Support
* i386: make use of *fence instructions
Make pas2jni use cthreads on Unices
+ introduced PTCKEY_LESS (the 102th key on international keyboards, <> when
used with US keyboard layout)
* use v*csr instructions if they are available
* CGI demo for css minimizer/classname extractor
* check more cpuid flags in the cpu units
* Changed -1 to $FFFFFFFF on DWord writes to suppress range check errors
* Add examples for syshelpers from Zeljko Avramovic. Fix issue
gitlab 0039541
* Libnettle & dynamically loadable version of libgmp
* Add libnettle into build
+ some more cpu specfic files for mips64(el)
Fix compilation ofrtl/nds/classes.pp unit
Remove accidently added binaries in commit 0e142c00
* x86-64: math helpers do not need a stackframe
FIX: DARWIN: aarch64: tstatfs.fstypename length error (
gitlab 0039873)
powerpc64le: fix reading FPU control word after
gitlab 000758aa1143
Also, missing rest of the commit message for that change:
The default implementation of SysResetFPU now sets the FPU control word that
was last set from any thread (Delphi and FPC i386/x86-64-compatible). No longer
call SysInitFPU when starting a new thread, only SysResetFPU. Combined, this
means that new FPC-started threads will always start out with that control
word on all architectures.
Added generic fpc_cpuinit implementation that is used unless
FPC_SYSTEM_HAS_FPC_CPUINIT has been defined.
Ensure that the softfloat exception mask is initially set to the same
value as the hardware fpu exception mask on architectures that use both.
SafeLoadLibrary now saves/restores the FPU control word on all platforms.
Removed outdated fpc_mtfsb0_corrected define check in powerpc64.inc
Resolves
gitlab 0038230
Thumb(2): fix compilation after FPU control word changes
Resolves
gitlab 0039966
Darwin/AArch64: detect when SIGILL indicates an FPU exception
Parse the ESR (ESR_ELx, Exception Syndrome Register (ELx)), return run error
as in float_raise
Darwin/AArch64: future-proof version check
* Add gstreamer library import unit (gst)
add ppsuf so that we can compiler loongarch fpc now
Add TBits.Find / FindRev / Find0 / Find0Rev / Find1 / Find1Rev that store no state inside TBits.
Add TBits.MoveRange, and change TBitsBase to unsigned type.
Fix ScanFor1 truncating result to TBitsBase.
Enhance GitLab CI and use official docker images
Add TBits.NotRange, And/Or/Xor/AndNot/OpRange, Clear/SetRange.
Add TBits.PopCount and IntersectionPopCount / HasIntersection.
Add TBits.DumpBinary / LoadBinary.
Add TBits.DumpText / LoadText.
Add TBitsBase = byte support, and use universal formula for TBITS_SHIFT.
Useful for debugging, as byte versions of certain intrinsics have different return types.
Assumes ln() is intrinsic everywhere, unlike Bsr*.
Keep tarball artifacts for a longer time
Limit amount of used cpu cores to six
Use platform and architecture independent approach to get ppc executable
Fix YAML usage to make CI linter happy
see https://yaml.org/type/merge.html
Add PIC code for solaris/i386/start.inc
- remove apparently accidently added files
* Fix compilation with unicodertl
* alternative declaration for SDL_CreateThread added to keep old code working, resolves
gitlab 0040112
+ support of octal literals
Improved CompareByte for i386 and x86_64.
* Prevent writing pointer types twice
Improved CompareWord for i386 and x86_64.
Improved CompareDWord for i386 and x86_64.
IndexWord and IndexDWord for i386 without REP SCAS.
Fix compilation error for loongarch64 system unit with -dFPC_USE_LIBC option
Fix compilation error with -dFPC_USE_LIBC for loongarch64 cpu
Even better CompareByte for x64.
Tries to handle tails with a SIMD unit as well.
* Dotted filenames for package uuid
* Dotted filenames for package libgc
* Dotted filenames for package opencl
* Dotted filenames for package libxml
* Dotted filenames for package gstreamer
* Dotted filenames for package odbc
* Dotted filenames for package iconvenc
* Dotted filenames for package os2units
* Dotted filenames for package cairo
* Dotted filenames for package opengles
* Dotted filenames for package ptc
* Dotted filenames for package fpgtk
* Dotted filenames for package bfd
* Dotted filenames for package libcurl
* Dotted filenames for package mysql
* Dotted filenames for package pxlib
* Dotted filenames for package imlib
* Dotted filenames for package cocoaint
* Dotted filenames for package libffi
* Dotted filenames for package libndsfpc
* Dotted filenames for package bzip2
* Dotted filenames for package users
* Dotted filenames for package dblib
* Dotted filenames for package gdbm
* Dotted filenames for package libfontconfig
* Dotted filenames for package ncurses
* Dotted filenames for package newt
* Dotted filenames for package symbolic
* Dotted filenames for package unzip
* Dotted filenames for package httpd13
* Dotted filenames for package gnutls
* Dotted filenames for package sndfile
* Dotted filenames for package graph
* Dotted filenames for package tcl
* Dotted filenames for package libgbafpc
* Dotted filenames for package ggi
* Dotted filenames for package zorba
* Dotted filenames for package oracle
* Dotted filenames for package numlib
* Dotted filenames for package libenet
* Dotted filenames for package gtk2
* Dotted filenames for package dbus
* Dotted filenames for package syslog
* Dotted filenames for package winceunits
* Dotted filenames for package libpng
* Dotted filenames for package hermes
* Dotted filenames for package ldap
* Dotted filenames for package libogcfpc
* Dotted filenames for package a52
* Dotted filenames for package fcl-sound
* Dotted filenames for package imagemagick
* Dotted filenames for package objcrtl
* Dotted filenames for package rexx
* Dotted filenames for package fastcgi
* Dotted filenames for package proj4
* Dotted filenames for package dts
* Dotted filenames for package cdrom
* Dotted filenames for package fftw
* Dotted filenames for package libcups
* Dotted filenames for package libusb
* Dotted filenames for package odata
* Dotted filenames for package unixutil
* Dotted filenames for package libmagic
* Dotted filenames for package httpd22
* Dotted filenames for package pthreads
* Dotted filenames for package libnettle
* Dotted filenames for package mad
* Dotted filenames for package jni
* Dotted filenames for package xforms
* Dotted filenames for package libc
* Dotted filenames for package postgres
* Dotted filenames for package pcap
* Dotted filenames for package gnome1
* Dotted filenames for package fcl-async
* Dotted filenames for package gtk1
* Dotted filenames for package winunits-jedi
* Dotted filenames for package oggvorbis
* Dotted filenames for package matroska
* Dotted filenames for package tplylib
* Dotted filenames for package utmp
* Dotted filenames for package httpd24
* Dotted filenames for package libsee
* Dotted filenames for package libgd
* Dotted filenames for package libvlc
* Dotted filenames for package libmicrohttpd
* Dotted filenames for package gdbint
* Dotted filenames for package lua
* Dotted filenames for package svgalib
* Dotted filenames for package librsvg
* Dotted filenames for package ibase
* Dotted filenames for package nvapi
* Dotted filenames for package gmp
* Dotted filenames for package modplug
* Dotted filenames for package openal
* Dotted filenames for package httpd20
* Dotted filenames for package aspell
* Dotted filenames for package rtl-unicode
* Dotted filenames for package sdl
* Dotted filenames for package zlib
* Dotted filenames for package ami-extra
* Dotted filenames for package iosxlocale
* Dotted filenames for package chm
Handle Index* / Compare* tail by directly reading last VECSIZE bytes, if there was at least one full vector.
Post-modern CompareByte for i386/SSE2.
Post-modern CompareByte for x86-64/SSE2.
Supposedly faster FillChar for x64.
Fill* for x64, physically sharing half of the code with FillChar.
Supposedly faster Move for x64.
Fix UTF-8 symbols in comments.
Index/Compare refined by hand instead of mostly being GCC output.
Improve i386 fpc_shortstr_to_shortstr(), fpc_shortstr_compare(), and add fpc_shortstr_compare_equal().
Specialized IndexQWord for i386.
Remove accidentally added binary file
Shorter i386.inc:fpc_AnsiStr_Decr_Ref.
Shorter x86_64.inc:inc/declocked.
* Fix variant record definition for CIF
Rename variable called section to _section to avoid parsing error for morphos OS
Added changes that didn't commit in merge 427
Fix the init state of LoongArch FPU exception bit
Working i386 fpc_pchar_to_shortstr; previous version didn’t support length limits smaller than 255 and was often slower.
* Replace string -> shortstring
* ansichar is the basic type
* Better detection of ansichar
Delay-load ole32.dll in WinDirs.
Fix order of parameters of FillChar as suggested by Alexey Torgashin
* Script to regenerate makefiles with proper options
Handle macos directory, which target name is now macosclassic
Handle path conversion using cygpath utility on Cygwin system
Avoid using namespcaced/win32 directory
Temporary fix for win32/initc unit which is not yet handled in namespaced
Add dotted version of Dos unit in msdos/sysutils source
Add required FPC_DOTTEDUNITS changes
Remove unwanted space in EmbeddedApi.sc32442b.pp name
Adapt sources to FPC_DOTTEDUNITS
Specialized fpc_varset_OP_sets for i386 and x86-64.
Remove ancient i386 implementations of (large)set_(add/mul/sub/symdif/contains)_sets that were kept as references until someone implements varset_* versions, according to the comment.
* fix
gitlab 0040421: implement assembly variants of the SwapEndian functions for Aarch64
* corrected version provided by Yuri Prokushev, the original author; fix for
gitlab 0040322
Adding record composition with fields
Allows access to members of a field directly through the record
Activated with {$ModeSwitch RecordComposition}
Adding test cases for record composition
Adding generics support for record composition
Now records can compose generic symbols
E.g.
```pascal
generic TComposed = record
uses child: T;
B: Double;
end;
```
Fixing record composition within variant parts
Fixed name collision of hidden fields with variant parts
* patch by Rika: In i386/set.inc, use “pop mem” instead of “pop reg; mov mem ← reg”, resolves
gitlab 0040443
Revert " * patch by Rika: In i386/set.inc, use “pop mem” instead of “pop reg; mov mem ← reg”, resolves
gitlab 0040443"
This reverts commit cf1683d14c6f6b9f981ed352b99cd53da37852a7.
Update fpcsrc level Makefile using lakest trunk fpcmake utility
Add pseudo PIC code for 32-bit powerpc, probably wrong :-(
Add calls to FcGetVersion, FcConfigGetFilename and FcConfigFilename
Set calling convention for fontconfig library import unit
x86_64.inc: shorten Interlocked*, perform macro-fused test+jz in Index* early.
On i386 and x86_64, add cpu.CPUID — high-level wrapper to CPUID instruction, and cpu.CPUBrandString — convenience for CPUID leaves 80000002, 80000003, and 80000004.
Deny effective RTM support if CPUID bit RTM_ALWAYS_ABORT is set.
* Fix by Dokkie8844 to treat error codes by GnuTLS in a more graceful manner. Fixes issue
gitlab 0040195
* pthread_mutex_timedlock
Make some i386.inc functions “nostackframe”.
iosxwstr: use kCFCompareNonliteral
Patch by @modersohn
Fixes tunistr7/twidestr7, resolves
gitlab 0040507
Remove runtime ABI adapter in x86_64.inc:IndexByte/Word, and save two jumps in the common case.
+ centralized cpu capability detection
* detect avx support also in the i386 system unit
m68k: first bit of a Human68k RTL - a very dummy startup code
human68k: have a README for the RTL
Revert wrong commit about PIC code for powerpc-linux
* check also for XGETBV support, resolves problem reported by Pierre
REP STOS branch for x64 Fill* (only for System V ABI for now).
* Do not ignore .lpi files in general
Fix a typo in CompareWord_Plain.
* remove some artifact file
human68k: implemented some basic file and I/O handling functions
human68k: fixed a dumb typo on the bss start calculation. fixes FPC binaries under run68.
human68k: minimal DOS calls error handling/inoutres mapping
human68k: refactored some type naming used in the startup code
human68k: parse the arguments passed to the program, fill out argc/argv, make ParamCount and ParamStr() to work
human68k: actually, the comm field coming from the OS is in ph68kdos_comline format, so use it accordingly
human68k: fix zero termination of the last argument
human68k: fixed argv[0] generation, after figuring out that length() is something very different to strlen()
human68k: also fill the entire args buffer with zeros, for proper last argument termination
human68k: one more rework after advices/reports from Pierre Muller, hopefully this fixes all remaning edge cases
Supposedly better fastmove.inc.
human68k: implemented do_open (based on the Atari version)
human68k: try not to nuke immediately during argument parsing, if memory allocation fails
human68k: cosmetics, no functional change
human68k: implemented do_getdir (based on the Atari version)
Attempt to save push/pop ebx on small non-GPR moves.
human68k: implemented do_chdir
human68k: pre-fetch the version number of the OS during startup. and store it for easy access
human68k: implemented do_rename
human68k: implemented some trivial functions in sysutils
h68units: new package with and for Human68k support units
Increase non-temporal i386 & x64 Fill* thresholds to 4 Mb.
Attempt to ERMS backward i386 ‘Move’s.
Move ERMS branch into a separate function instead of runtime checks of fast_large_repmovstosb.
human68k: added a totally untested DOS unit to the RTL
* Namespaced version of testinsight units
* No static versions for 5.6 and 5.7
Fix FillQWord_SSE2 stack usage.
Adding `symrefsym` to ppu (de)serialization
Adding recommendations by PascalDragon on Merge Request
https://gitlab.com/freepascal.org/fpc/source/-/merge_requests/498#note_1602310877
Removed support for compositing with classes and objects
Adding tests for PPU loading, operators and function collisions
Fix compilation of syscall unit for i386-beos target
Use ERMS in all eligible cases, again.
Namely, when Move.count > NtThreshold but move distance is too short. 8310b169b780171ba1aac906602bada424b9eb76 messed with the logic and made this case fall back to a regular loop instead of more preferable ERMS.
Add missing syscall_nr_futimens for NetBSD OS
Check for Move overlaps in more obvious way (that also does no jumps in forward case).
Write two last values after 2× loops unconditionally instead of an extra check.
Simplify x86_64.inc:Move non-temporal loops, and adjust thresholds for move distances considered too short for NT.
Change Mov*DQ to Mov*PS; they are always equivalent because no operations but the memory transfers are performed, and 1 byte shorter each.
* mask FPU exceptions during libxml initialization to avoid an fpu exception with newer libxml, resolves
gitlab 0040622
REP MOVSB branch for x64 Move.
Supposedly faster i386 int() and frac().
* Fix compilation in dotted units
JVM: fix system unit compilation error
Apply same change as to systemh.inc in bccc0b195e
* Fix wrong assigned check pointed out by Gareth Moreton
Don’t misalign FillChar pattern.
SSE set operations (i386).
* Fix compilation in unicode RTL
+ MMXSupport added to cpu unit
* mmx unit makes more use of cpu unit
Better i386.inc:fpc_ansistr_unique.
Shortcut Compare*(a, a) before entering the aligned loop.
* Constant propagation now evaluates real-valued constants
Use non-conservative Fill thresholds.
* "TRealConstNode.docompare" now explicitly makes sure positive and negative zeroes do not equate
Update after commit b0076a4709 to fix jvm rtl compilation error
+ add a batch file to also regenerate the RTL makefiles on Windows
Adding new error message for composition:
* Composition with non record type
* Duplicate method or array property cannot be overloaded
Using more appropriate error message for record composition
Adding tests for composition of other non record types
Adding test cases that contains is usable when recordcomposition is
deactivated
Adding alias composition for existing fields
Also minor fix: Don't allow for contains in class and object fields
Adding tests for alias composition
Adding fields for composition if visible for the record
- remove file that's generated again by the Makefile
+ added wasmwriter to namespaces.lst
* Small output improvement
Make int64 division helpers “nostackframe”.
* corrected rte number after last merge
* fix TSC support bit as mentioned by Rika
Fix directory for varutils unit
Adapt namespaces.lst to removal of src/win/varutils.pp separate source file
Simplify CPU units (70 LoC + 500 b code + 500 b data).
fix ffi_cif record for loongarch
The ffi_closure_alloc return fCode is real do
human68k: sync h68kdos.inc file between packages and rtl
human68k: add interface function to h68kdos_super call
h68units: fixed dottedunits inclusion
h68units: added an initial version of an IOCS API unit with some graphics related calls, and an example program using it
h68units: fix copyright year in h68iocs unit. no functional change
h68units: added some more IOCS calls, mostly related to hardware sprite handling
h68units: also credit Federico Roviralta for his X68K related work
* get rid of a couple of more tabs
Faster path for IndexBytes with a match at the beginning.
* Fix wrong raise statement
* Constant propagation disabled on "tests/test/tsafecall3"
and "tests/test/tsafecall4" to prevent false failure on
high optimisation settings
* Constant propagation disabled for tests/webtbs/tw3160* to prevent false failures on high optimisation settings
* avr: take advantage of sbiw in mod/div_word
+ test
* Overhaul and bug fixes on how Currency types are propagated
Change prt0.as and cprt0.as to allow to generate FreeBSD aarch64 13.2 executables
* Load nodes now automatically set nf_is_currency for Currency-type variables in the typecheck
* New explicit constructor to create Currency scalar and set appropriate flags
remove of the build scripts
moved the psy-q-sdk to the rtl/ps1 folder
* Extra protections against overflows and compiler bugs if real constants aren't floating-point
+ PS1 system unit: include the softfpu code, in case the softfpu is enabled in
the compiler (it is still disabled by default)
+ define FPC_IS_SYSTEM in the PS1 system unit
- removed /psy-q-sdk/lib/* from .gitignore
- MIPS: removed functions get_fsr and set_fsr from the RTL in case the SoftFPU
is enabled, because they contain inline assembler, containing FPU code
* For safety, "is_currency" now returns false if def is nil rather than causing unpredictable behaviour
* Typo correction in webtbs/tw40624.pp
Fixing symrefsyms not being recognized in with statement
Typo in comment (windirs unit)
Adding correct file positioning to error messages
Adding composition fields to RTTI
This includes the cange mentioned in
gitlab 0040932
if that does not turn out to be desired, this change has to be reverted
* PS1: initialize exceptions on system unit startup
+ PS1: initialize the unicode string manager
+ PS1: implemented debug output via write/writeln (visible in emulator logs, same effect as printf)
+ PS1: set the IsConsole and IsLibrary in the system unit startup
+ comment (no functional changes)
+ PS1: initialize the thread manager in the system unit
ordinary malloc doesn't work, so malloc2
all the strings.h functions are in libstd.pas
* New test for
gitlab 0040928 to catch intermediate overflow in some Currency calculations
removed unpreaty line endings / beginnings
+ added package ptckvm - a console driver for the keyboard, video and mouse units, implemented on top of the PTCPas library
* fixed ptckvm compilation with dotted units
* unit ptckvm renamed PTC.KVM if dotted units are used
* fix memory leaks after ptckvm finalization
+ started integrating my fpterm terminal emulator (from https://sourceforge.net/projects/fpterm/)
as a part of FPC's packages, for potential use and future integration with the
console IDE, Lazarus, WebAssembly, Pas2Js, etc. This commit adds the first
unit: System.Terminal.Base
+ added unit System.Terminal.View
+ added unit System.Terminal.Model
+ added unit System.Terminal.InputOutputConnection
+ added unit System.Terminal.PointingDeviceInput
+ added unit System.Terminal.Logger
+ added unit System.Terminal.Controller
+ added unit System.Terminal.KeyboardInput
+ added unit System.Terminal
+ added unit System.Terminal.KeyboardInput.Keyboard
+ added unit System.Terminal.PointingDeviceInput.Mouse
+ added unit System.Terminal.View.Video.Base
+ added unit System.Terminal.View.Video
+ added unit System.Terminal.KVM
+ added unit System.Terminal.View.Video.PTC.KVM
+ added unit System.Terminal.PTC.KVM
+ added unit System.Terminal.Pseudoterminal.Unix
+ added unit System.Terminal.InputOutputConnection.UnixPTY
* system.terminal renamed fpterm
Remove fpc_varset_* indirections if SSE support is guaranteed.
* fix
gitlab 0040992: correctly handle padding inside the FFI Invoke manager
+ added test
* correctly declare KNONVOLATILE_CONTEXT_POINTERS.IntegerContext for ARM64
set stack top to 801FFFF0 as in system.cnf
* made dblib/fpmake.pp to use the same structure as other fpmake files => avoids hint on unused variable during make all
* fix
gitlab 0041004: correctly determine the instruction pointer for leaf functions and set the CONTEXT_UNWOUND_TO_CALL context flag
* Patch from Евгений Савин to fix passing records to invoke. Fixes issue
gitlab 0041006
* OpenAPI to pascal conversion tool
* Correct command-line working
Darwin: disable new assembler fill*word variants
They use interprocedural gotos at the assembler level, which is incompatible
with auto-generated CFI
* patch by Lipinast Lekrisov: fix building ffi.pp on macOS, resolves
gitlab 0041035
Darwin: re-enable new assembler fill*word variants
Work around with an extra jump to an extra function.
+ SysResetFPU for Aarch64
* switch i386 RTL to provide the atomic intrinsics instead of Interlocked* functions
* switch x86_64 RTL to provide the atomic intrinsics instead of Interlocked* functions
* switch Aarch64 RTL to provide atomic intrinsic helpers instead of Interlocked* functions
* switch ARM RTL to provide atomic intrinsic helpers instead of Interlocked* functions
* switch i8086 RTL to provide atomic intrinsic helpers instead of Interlocked* functions
* switch SPARC 32 RTL to provide atomic intrinsic helpers instead of Interlocked* functions
* switch SPARC 64 RTL to provide atomic intrinsic helpers instead of Interlocked* functions
* switch MIPS RTL to provide atomic intrinsic helpers instead of Interlocked* functions
* switch PowerPC 32 RTL to provide atomic intrinsic helpers instead of Interlocked* functions
* switch PowerPC 64 RTL to provide atomic intrinsic helpers instead of Interlocked* functions
* switch RISC-V 32 RTL to provide atomic intrinsic helpers instead of Interlocked* functions
* switch RISC-V 64 RTL to provide atomic intrinsic helpers instead of Interlocked* functions
* switch AVR RTL to provide atomic intrinsic helpers instead of Interlocked* functions
* switch LoongArch 64 RTL to provide atomic intrinsic helpers instead of Interlocked* functions
* Append extension, needed for Laz codetools. Fixes issue
gitlab 0041061
* Functions added to globals to evaluate floating-point positive and negative zeroes
Add more specialized atomics for i386 and x86-64.
Shorten i386 and x86-64 atomic implementations to offset the LoC cost of the previous commit.
* Allow to read YAML files.
* Fix extensions in filenames
* Use IsYAMLFileName, detect other extensions
* apply patch by Michael Ring to fix compilation for ARM THUMB
* package sndfile (whose compilation has been disabled for quite a while) renamed libsndfile
+ fix fpmake.pp and enable compilation of package libsndfile
- libsndfile: removed the ctypes. prefix from all types, in order to fix compilation with the dotted units RTL
* Ensure Extended and Currency types aren't passed through SSE/AVX under i386 and under
+ add an SysInitFPU implementation
* unify SysInitFPU and SysResetFPU on RiscV
* RiscV: unify memory barrier functions
* RiscV: unify stack related functions
+ atomic operations for RV32
+ RiscV64: make use of rev8 instruction
* Remove outdated version number
Fix compilation of rtl for mipsel-ps1 target
Fix compilation of mips-linux rtl using 3.2.X compiler
* fix further instances where reallocmem instead of sysreallocmem is used to allocate the cmdline buffer, resolves
gitlab 0041168
+ RiscV: UMul64x64_128 assembler implementation
+ test
+ Aarch64: UMul64x64_128 assembler implementation
fpc_cpuinit: add destroyed register lists to assembler blocks
Otherwise the compiler assumes no registers are overwritten. And while the
regular code generator won't use register variables if assembler blocks are
present, LLVM is not restricted like that (and it could still cause issues
even with the default code generator in case PIC-rebased addresses are
accessed).
Add definitions of ALUSInt and ALUUInt types in java/jsystemh_types.inc
* RtlUnwind destroys register, so save and restore them afterwards
* use sametext instead of converting case
* x86-64: New optimised "exp" routine
+ add balign before commonly used label
Avoid TOO NEW instructions if OLD_ASSEMBLER is defined.
Few more functions to test x86 cpu supported instruction sets.
Prioritize less initialization code over data.
* x86-64: Fixed minor inaccuracy with "Exp" function at extreme values
Save little of data space (12 bytes).
* Fix compilation for 16/8 bit platforms
Use al register to load a byte by value parameter in SetCGAPalette and SetCGABorder procedures
Fix compilation for win16 OS by using USE_WINDOWS_UNIT macro, defined for other Windows OSes
SSESupport SEE2Support return true allays in 64 bit mode. +More bugfixes.
Adding expression parsing for if and case
Adding StatementExpressions Modeswitch
Adding try-except expression
Adding test cases for statement expressions
* Place a copy of COPYING.FPC so people do not need to look for it in rtl
Use 'libgstreamer-1.0' for all targets but Windows OSes
* Add simple redis client by Mario Ray Mahardhika. Manual merge of MR !466
libxml: update nad fix libxml2 headers, added dynamic loading capability, libxslt and libexslt headers.
Allowing to composite generic fields to not throw errors
* Actually use SubStrLen in pos() function. Fixes issue
gitlab 0041350
* Fix compilation with namespaces
Adding PascalDragons suggestions
* check for FPC_ABI_WIN64 instead of just WIN64 in x86_64 specific RTL files
* also check for FPC_ABI_WIN64 instead of WIN64 for the jmp_buf declaration
code hidden by FPU defines
Regenerate main Makefile after last change to fpcmake.ini
* Arrays used in CreateCIF must remain allocated while calling ffi_call.
* tag from cvs times removed
Add missing test object files
Fix typo in directory name of intrinsics.inc
Correct directory naming in rtl/bsd/powerpc64
Update SIGFPE handling in sighnd.inc
Update SIGFPE fault codes
Update SignalToRunerror codes in sighnd.inc
* RiscV32: assembler implementations of SwapEndian
Update PowerPC64 syscall.inc
Update PowerPC64 syscall.inc
Add missing file rtl/powerpc/cpuinnr.inc
Add missing rtl/powerpc/cpuprocs.inc
Add missing rtl/powerpc/intrinsics.pp
Do not use FPC_USE_INTRINSICS on some old target OSes
Fix erroneous double inclusion of classesh.inc file
Fix compilation of i386-win32 target
* Added missing namespaced System.Intrinsics.pp
Typo fix in comments for installer.
Mas typo fixes in strings for utils.
Fix compilation of i386-nativent RTL
Allways count frames on VSync IRQ
psy-q-sdk is now a package
+ added makefiles for fpalsa
* Add missing namespaces.lst
my personal build script thrown away
Allow LLVM for freebsd OS
AArch64-Win64: Document xdata header format and set epilog start index
Add comments clarifying the ARM64 xdata header bit layout and set
the epilog start index to 1.
AArch64-Win64: Skip mov sp,fp in exceptfilter epilog
The prolog already skips mov fp,sp for exceptfilters (since the
exceptfilter receives the parent's FP). However, commit 959804798c
added mov sp,fp to the epilog without a corresponding exceptfilter
check. Since the exceptfilter's FP points to the parent's frame (not
its own local frame), executing mov sp,fp corrupts the stack. This
causes memory corruption when -O2 optimization is used, as
callee-saved registers (x19-x28) trigger the regsstored code path
which includes this instruction.
Add potype_exceptfilter checks at all three locations in g_proc_exit
where mov sp,fp is generated.
AArch64-Win64: Implement g_local_unwind for SEH
Generate call to _fpc_local_unwind(FP+16, target_label) for
Exit/Break/Continue in try/finally blocks. Pass FP+16 as TargetFrame
to satisfy RtlUnwindEx validation that TargetFrame >= EstablisherFrame
(which Windows computes as SP-at-function-entry = FP + 16 due to the
standard ARM64 prolog stp fp,lr,[sp,#-16]!).
Change _fpc_local_unwind declaration from FPC_USE_WIN64_SEH to
SYSTEM_USE_WIN_SEH to make it available on ARM64.
Include PascalDragon's adjustments to ncpuflw.pas for deferred
finally handler generation.
AArch64-Win64: Fix exceptfilter temp and ref adjustment
The exceptfilter ($fin$) handler has its own SP but receives the
parent's FP. Temps allocated as [SP + X] in the parent must be
converted to [FP + (X - total_stackframe_size)] in the handler.
Add adjust_exceptfilter_ref virtual method to tcg, overridden in
tcgaarch64, called from temprefnode (ncgbas) and
finalizetempvariables/final_paras (hlcgobj) to convert SP-relative
references to FP-relative for exceptfilter handlers.
Track parent/handler temp boundary via exceptfilter_parent_tempend
and discard the TG free list before generating exceptfilter code to
prevent handler temps from reusing freed parent slots.
Store total_stackframe_size (offset from FP to SP after prolog) in
tcpuprocinfo for use by the ref adjustment. Allocate enough stack
space in exceptfilter prolog for handler temps and outgoing calls.
AArch64-Win64: Initialise handler-local managed temps in exceptfilters
gen_initialize_code skips inittempvariables for exceptfilters, which is
correct on x86_64-Win64 where handlers reuse parent stack slots. However,
on AArch64-Win64 discard_freelist forces new SP-relative allocations in
handler space that share the parent's temp allocator. These handler-local
managed temps (e.g. implicit IInterface results) were never zero-initialised,
causing access violations when finalization tried to release garbage pointers.
Fix by allowing inittempvariables to run for AArch64-Win64 exceptfilters,
and filtering out parent temps (which are already initialised) by checking
whether adjust_exceptfilter_ref converts the reference to FP-relative.
TRy to handle solaris specific sparc code
SDO: Fixed compilation of "XSD2Pas" example on Windows with the "cwstring" unit
Changed the inc files to compile the RTL package too.
Update file names to correct names.
Allow to define the output unit directory.
Fixed AV on application start
* TCallParaNodes now have their parent callnode properly set when loading from PPU files
Add missing double char ops
Added the following missing double char operators. Otherwise ptop will
break sources when formatting.
* plusequals: +=
* minusequals: -=
* divideequals: /=
* timesequals: *=
* exponential: **
* Added additional -O3 test for "tests/test/cg/tstr.pp" to verify constant
propagation and simplifying Str, and moved to "tests/test/units/system/"
* New "tests/test/units/system/tstr3.pp" test to verify correctness of
leading zeroes and string truncation
Fix fpc_atomic_add_64 to return old value for loongarch64 CPU
git: Ignore generated HTML files for the compiler
Reduce the amount of nonvolatile registers used by SysGetMem from 5 to 3.
Make more use of the previous commit.
Remove build optimization
Use parallel matrix and CI inputs
Fix inputs usage for image option
Update images to use still supported versions
Comment out platform info
currently not used but maybe helpful
since it describes Docker platform
Only download artifacts from same architecture
refactor: Further split ptopu into units
fix: FCL's eventlog unit name
Allow Orphan to work from other threads.
Fix HeapTrc.StackTracesRegistry.CollectGarbage.
Redesign TWalkBlockInfo and (re)use WalkHeap for Report.
Allow easier generation of bug by adding faulty optimization locally
Fill the freed memory outside the lock without taking it twice if possible.
const fpc_in_gtecommand_x moved to rtl/mips/cpuinnr.inc
Fix compilation on powerpc64-freebsd by regenerating Makefile's using up-to-date trunk fpcmake utility
Ensure len=-1 is treated a infinite for IndexXXX for powerpc CPU
Update East Asian width, grapheme break property to Unicode version 17.
Add .note.GNU-stack section to all startup powerpc64-freebsd assembly sources
Correctly attribute math function to libm for Linux/BSD and AIX OSes
Modify mathlibname for Haiku and Solaris systems
* Added register tracking information to exception prologue
* patch by Kirill Kranz: cd free size overhead of the data pointer
Update Unicode data and collations to version 17., CLDR 48.2.
Generate collations units with doted units in mind. Remove trailing spaces.
Update to Unicode version 17.
Fix dynamic linker for musl
Makefiles don't detect correct linker on Alpine Linux
with musl libc
Find correct compiler executable for tests
Adjust collation weights.
Update collation test data with files from CLDR 48.2.
Change DUCET version to 17.0.0.
feat: Ask for confirmation if out file = source file
refactor: Simpler messages
* x86: New "CorrectRefMove" helper routine for transferring a reference from one instruction to another
* x86: Added missing register tracking to "MovxOp2Op 1" optimisation with reference
* x86: Forgot to allocate destination register over first instruction for "MovxMov2Movx" peephole optimisation
* x86: Added missing register tracking to "MovxAndTest2Test" peephole optimisation
* x86: Added missing register tracking to "MOV/CMP - (memory check)" peephole optimisation
* x86: Added missing register tracking to "MovLea2Add" peephole optimisation
* Make non-recursive mutex really non-recursive
Disable utils/ptop for human68k and sinclairql OSes because these systems do not support fcl-base package
Change debug conditional debug into DEBUG_PTOP to avoid compilation failure with make DEBUG=1 variable
* synchronize main branch install.dat with changes performed in fixes_3_2
* changes in install.dat necessary also for fixes_3_2 (mainly addition of fcl-hash)
* fix in install.dat needed only in main branch
* additional changes intended only for main branch (not for fixes_3_2)
* RTL (wasm): Actually wait for lock to free in the LockMutexTimeoutWait loop
* RTL (wasm): Wait for mutex using small timeslices, to allow host Javascript to react periodically to messages
* FCL-XML: escape html prior to writing
Avoid compile time range error
* FCL-Net: correct deprecated message
* in case of using a different name (Linux, FreeBSD), the .dat file needs to have the same name
Do no activate inline with '{$inline on}' if DISABLE_SYSTEMINLINE macro is set
* RTL-Objpas: add securecompare, string compare in constant time
Fix lnfodwrf reading line-info-table for Version 4 and 5. Issue
gitlab 0041572
Fix lnfodwrf reading compilation-unit (function name) for Version 4 and 5. Issue
gitlab 0041572
Fix lnfodwrf add DW_FORM to SkipAttr for Version 4 and 5. Issue
gitlab 0041572
* free local allocations before raising exception. Fixes
gitlab 0041775
* fix calling put properties by adding DISPATCH_PROPERTYPUT to invokekind, fixes
gitlab 0041776
* test for procedure parameter count
Do not use assembler code in rtl/powerpc/math.inc for pic powerpc-linux
Allow allocations without the initialized thread manager in case of no HAS_SYSOSFREE.
Dismantle the showcase for the codegen bug fixed in f7c919c2f8cca593e8d3316702dee8ab31a2207c.
Reenable tplylib for ps1 OS to fix compilation of utils-lexyacc
Disable utils-ptop for ps1 OS as it depends on unsupported fcl-base packages
* Move implementation detail constant to implementation
* RTL: Hide implementation detail constant
Remove some redundant operations.
* Correctly handle EINTR for close operations. Fixes issue
gitlab 0041783
Parameter count limit was 255 (fix comments).
Fix minor typo in dwriter.de.po
Order memory leaks chronologically, again.
* Use RTLString for TGUID.FromString
* Add const, better comment, based on remarks of A. Torgashin
* Change TGUID.FromString to use shortstring, consistent with AsString which already returns shortstring
Fix the corner case of heaptrc.ReallocMem.
Fix incorrect use of unaligned
No need for wide string manager in legacy Video with cp437.
It was a regression to require wide string manager for non Unicode Free Vision apps in Unix.
Warn when aligned or unaligned is used at a useless place
* Prevent integer overflow
Add DISABLE_DL to be able to use heaptrc without loading libc
removed RangeCheck errors
For CheckPointer, iterate allNodes instead of the hashtable.
data2inc: Fix memory access in WriteByteFile
Fix compilation for msdos if cpu is different from 8086
* Fix decode of unicode string
Fix NOGOTO path, avoid infinite loop
* Fix DecodeStringBase64 in UTF16
* Updated rtl/inc readme, fixes bug
gitlab 0041768
objc and resource parts can do with a bit more detailing.
Disable conditional jump optimizations for powerpc cpus
* fix typos and trailing dots.
Add sparc-linux version of tcext7 object using GNU gcc compiler
Add sparc64-linux version of tcext7 object using GNU gcc compiler
* Implement TVirtualMethodInterceptor
fcl-css: fixed test stuie
fcl-css: fixed test suite
* Use queue that manages lifetime correctly
* Fail gracefully if no extended RTTI is available. Fixes
gitlab 0041799
* Fixes in color output, and add italic/underline/inverse and URL output
* ANSI (terminal) markdown renderer
* Fix size mismatch error (2010092801) in case of no debug info on wasm
* Fix unicodertl compilation
* Compile fpAnsi also for wasm
rtl-unicode: enable base things to be build on a number of small OSes
rtl-console: since unit FPAnsi depends on strutils, add rtl-objpas as direct dependency
rtl-console: enable rtl-console build on a number of small systems
+ test for last merge request
* Record IsVarDef in for loop
Reduce fixed header size to 2 bytes.
Redesign the 32-bit chunk sizes.
Grammer: outcoming → outgoing, HeaderAndPayload → ChunkSize.
Use 64 KB pages on Windows.
* patch from bug
gitlab 0032459
* adds pointer to argument of clCreateCommandQueue
* changes some var parameters to pointers to allow for NIL values.
Optimize IsLeapYear function. Propsed by user Zvoni in the forum.
* One branch only.
* Testing mod 100 first is beneficial because the compiler has
implemented "Test for Zero Remainder" optimization.
Superior version of DaysInAMonth. Proposed by user Zvoni in the forum.
* Call IsLeapYear only if month of the interest is February.
* Drop usege of the lookup table MonthDays. Use integer maths to calculate
day count in the month.
Make use of faster DaysInAMonth function.
Use common lowercase pattern for add_odata procedure real name
Use pattern add_PACKAGENAME for googleapi
Adapt to change add_Google -> add_googleapi
Restore alphabetical order as suggested in packages/fpmake.pp
Use canonical names for add_PACKAGENAME for vcl-compat and psy-q-sdk packages
Restore alphabetical order as generated by shell script described inside packages/fpmake.pp
Add add_fcl_md procedure to be able to insert NoAnsiTargets which allow to skip markdown.ansirender.pas unit of targets that do not support Ansi escape sequences
Adapt to introduction of add_fcl_md procedure
Fix jvm targets compilation by disabling system unit inline
Fix compilation of heaptrc unit with -dDISABLE_DL (as noticed by Rika)
* Automatically handle .md -> .html conversion
* Enable index page generation
Gracefully degrade SysOSAlloc requests.
[fcl-pdf] Changes:
1. Internal links, go to page X, now default to the top of the page instead of maintaining the scroll state. A procedure has been added to mimic the old behavior.
2. Bookmarks: You can now customize the text of individual section pages using the SetPageTitle(APage, ATitle) procedure.
* Handle preflight connection from Chrome
* Handle preflight connection from Chrome
Remove needs keyword because FPC does not support reusing zipinstall for tests
related to c749101fd2c2b38c6f7dc07dd7d5d7a1b47492af
Cleanup, rename variables and format code
Increase timeout for tests because it may take more than 1h on slow runners
Allow CI tests to fail on Alpine Linux
currently the tests won't work on Alpine because
musl does not provide libgdb.a
* Allow polled single-thread
* Allow polled single-thread
* Remove unused TCollectionItem.UpdateCount
hlcgobj: add a delegate to generate the proc's start symbol and record code/data
Will enable the LLVM code generator to generate an LLVM-style proc symbol start
for pure assembler routines generated by the architecture's FPC code generator
* Add test program for thread mode
fcl-css: TCSSResolver.Insert/DeleteStyleSheet
* Add possibility to log exceptions before they are raised
* Direct access to console.log
fcl-css: added CSSSpecificityElement
* Some fixes in exception/logging handling: UTF16/8 swapped, added loglevel
fcl-css: added TCSSResolver stamp
* fix
gitlab 0041802: define CPUARM64 for AArch64 as ARM64 is a common alias for AArch64; don't define CPUARM however as that is the main CPU define for 32-bit ARM.
fix dynarray + chain aliasing operands (
gitlab 0041087,
gitlab 0041798)
each operand was passed to fpc_dynarray_concat_multi as a bare
pointer, so function-call and literal temps were freed before
the call and all aliased the last operand.
LLVM: no longer emit pure assembler functions as module-level assembly
Instead emit them as regular, naked, functions, with only a single asm
statement as body, followed by an unreachable instruction (similar to how
clang deals with -fasm-blocks MSVC-style inline assembler functions).
* Fix double run, causing error in a52
* Allow to write default config in fpsonar
* Clarify difference between suppression and disabling a rule
fcl-sonar: disable the build for a bunch of legacy and small systems
Replace subst by patsubst to avoid substitution in the middle of file name for PPULOGLIST
Regenerate Makefile after: Replace subst by patsubst to avoid substitution in the middle of file name for PPULOGLIST
llvm aarch64: remove readonly for value parameters passed by address
On AArch64, pass-by-reference value parameters are copied on the caller
side rather than on the callee side. This means that the value that gets
passed in can be modified.
tw40598 & tstack: prevent endless loop when compiled with LLVM
LLVM compiled the endless recursion as tail recursion, so it never triggered
a stack overflow
* Fix fenced code block starting with lots of spaces
* Add pas2js dialect and resolver handling
* Indented lines in fenced code block offset by 1
* CLI part of handling pas2js
* Fix handling of pas2js asm blocks
* Remove mistakenly committed binary
* Let fcl-passrc report missing files
* Hardening of search path handling
patch to fix the tarray23 regression introduced in a6a9dcdd7
* Refactor config to use methods of record
* Refactory TFpSonarFpcSourceConfig
* Refactor, use class/record methods where possible
fcl-css: fixed uses and added utility
* Corrected CSE Boolean shortcutting problem and improved CSE results (Fixes
gitlab 0041809)
Reduce VarHeader size back to 8 bytes.
Manually optimize away barriers.
* Added new tests to evaluate CSE Boolean shortcutting fix
* Avoid memory corruption for externally created threads
* Avoid using arenas after freeing them
* Lock queues more aggressively
* introduce some thread-safety
* More thread safety fixes
* Fix ref counting in wasm
* x86: Fixed "AND/CMP -> CMP" optimisation causing assembler errors on i386 (Fixes
gitlab 0041816)
Save a register in AllocVar.
* Make dec_locked/inc_locked atomic when using threads
Avoid keeping dangling pointers as tstatemetnode.next field in tcallnode.add_done_statement method
TProcess: fix FStartupOptions for SetWindowLeft&SetWindowHeight
* Fixed missing initialization
fppkg: fixed creating zombie fpc
fcl-process: fixed deadlock on unix when FCurrentDirectory codepage is converted while another thread does conversions too
llvm: caller-side copied parameters can't alias
LLVM: fix TP-style object constructors with nested functions
If the nested function access a field, self will get captured in
the parentfpstruct. Self is also the result of such constructors,
but in practice we have to return a pointer to self rather than
the object contents. This was not handled when copying back
the self pointer from the parentfpstruct to the original self
variable.
Fix compilation with -Oodfa
* is_c_macro must be set for definec directive as well. Fixes issue
gitlab 0041731
fix compilation errors on Linux
+ add message for a CORBA/raw interface not having a name when using the as-operator
* if a CORBA/raw interface has no name then trigger an error if it's used with an as-operator, otherwise this might lead to TObject.GetInterface() returning the first reference it finds which might be wrong with multiple interfaces that don't have a valid name (this is also consistent with the conversion of CORBA/raw interface to string)
+ added test
* when converting an interface to a string use the appropriate error message
Fix a memory leak in the TFPFontCacheList.ReadStandardFonts
Results of FcInitLoadConfigAndFonts() and FcConfigFilename() are not freed.
Whole FontConfigLib is finalized and unloaded in the finalization section.
Discovered by valgrind.
Allow outlines (bookmarks) even with only one section.
Initialize deflate_state in ZDeflate
Without this, valgrind emits many: Conditional jump or move depends on uninitialised value(s)
in
TREES_$$__TR_FLUSH_BLOCK$DEFLATE_STATE$PBYTE$LONGINT$BOOLEAN$$LONGINT
ZDEFLATE_$$_LONGEST_MATCH$DEFLATE_STATE$LONGWORD$$LONGWORD
riscv: ILP32E calling convention for the 16-register rv32e/rv32ec variants
The E variants of RV32 have only 16 integer registers (x0..x15), so the
standard calling convention cannot be used unchanged: a6/a7 are not
addressable and s2..s11 do not exist. Parameters were still being assigned
up to a7 and s2..s11 were still being treated as callee-saved, which
produces code referencing registers the core does not implement.
Without this the rv32ec RTL cannot be built at all: the compiler allocates
x16..x31 and the assembler rejects the resulting system.s.
Select the ILP32E register assignment when CPURV_HAS_16REGISTERS is set for
the active cputype:
- integer argument registers stop at a5 (x15) instead of a7 (x17);
further parameters are passed on the stack,
- the volatile set is limited to x0..x15 less sp, s0 and s1,
- the callee-saved set is sp, s0, s1.
Non-E cputypes are unaffected.
Also corrects the callee-saved list used by the non-E path: saved_regs
listed RS_X26 twice and omitted RS_X25, so s9 was never treated as
callee-saved.
Co-Authored-By: Claude Opus 5
Claude-Session: https://claude.ai/code/session_01FSFSW5dfdGk7KgfzvMhqEf
* fixes
gitlab 0041835 Properly bound hash that doesn't have a mpdulo to do so.
fcl-css: resolver transfer disabled attribtes of inline styles
fcl-css: TCSSResolvedRuleElement.HasDisabledDecls
fcl-css: parse and resolve a { div:hover {} }
fcl-css: test unclosed media rules
* fix
gitlab 0041834: don't check for a valid interface string/GUID if the interface in question is a generic type parameter; this will instead be checked during specialization
+ added tests
fcl-css: tests skipping invalid declaration
Range check error in Int128ToBCD
Input aValue in range (9223372036854775808 to 18446744073709551615) cause Range check error in call IntegerToBCD(aValue.Lo).
Because IntegerToBCD has argument type Int64 and aValue.Lo is QWord.
For input -170141183460469231731687303715884105728 must be disabled
overflow checking for: not v128.Lo + 1
pastojs: started operator overload
* fix
gitlab 0041815: when copying from register to register explicitly sign extend signed 8/16-bit register to 32-bit register moves
+ added test
* sign extension from S8 and S16 to S32 is now done inside a_load_reg_reg()
Tests for Int128ToBCD and BCDToInt128
For number -170141183460469231731687303715884105728 must be disabled
overflow checking in BCDToInt128 for: not v128.Lo + 1
Same as in IntegerToBCD commit df631c5b.
* fcl-report demo fixes
* Fixed polygon positioning in PDF rendering
* Modified initial definitions; now includes what's defined by demos.inc instead of defining your own.
* Make filer independent of codegen backend
* Family 12, ttc support, sparse storage
* Fixed aggregates calculation & demos
* pipes: add APipeBufferSize default parameter to CreatePipeStreams and use pass it through CreatePipeHandles.
* process: pass FPipeBufferSize to CreatePipeHandles, fixes bug
gitlab 0041847
fcl-css: fixed more skipping
* Class function without class...
fcl-css: added css time units
Fix the parameter order of the FPC_MOVE call built by g_concatcopy_move
tcg.g_concatcopy_move filled the three parameter locations of the
FPC_MOVE helper call in the order 3, 2, 1 without checking
pd.is_pushleftright. On a target that pushes parameters from left to
right -- i8086, whose default pocall_register convention is listed in
pushleftright_pocalls -- this produces a stack that is the reverse of the
one read by the hand-written assembler Move in rtl/i8086/i8086.inc: the
helper received @source where it expected count, and so copied '@source'
bytes from an address equal to the length of the copy.
Select the fill order by pd.is_pushleftright, the way
thlcgobj.g_copyshortstring, g_copyvariant, g_incrrefcount, ncgmem and
cgexcept already do. This was the only place in cgobj that builds a
helper call with more than one parameter and did not perform the check.
The else branch is the previous code verbatim, so targets that inherit
tabstractprocdef.is_pushleftright are not affected.
The defect stayed invisible because getcopymode only selects
copy_fpc_move for a copy longer than 3*sizeof(aword) inside a routine
that already makes a call, and because cs_opt_size makes getcopymode
return copy_string unconditionally, so -Os avoided the affected path.
The path itself became reachable for x86 with b826ad8b7e.
This also repairs the i8086-msdos target at run time. The RTL is itself
full of record assignments, so the reversed call corrupted memory at the
first access to the file structures, which surfaced as runtime error 200
and as text output that never returned.
tests/webtbs/tw41850.pp assigns a 100-byte record and verifies every
byte. The test is portable, but note that it can only fail on a target
whose is_pushleftright is true.
Fixes
gitlab 0041850.
fcl-css: fixed tokenize custom identifier
* Implemented built-in Currency multiplication routine to prevent overflows and lack of proper multiplier support
(Special thanks to @rasberryrabbit) - Fixes
gitlab 0040928
fcl-css: parse @starting-style
fcl-css: parse nested at rules
fcl-css: fixed parsing @media (width:100px)
chm: accept quoted file names in #include in [ALIAS] and [MAP]
Microsoft HHC does accept such include.
chm: end a script even when the parser ran past its closing tag
The HTML parser ends a tag at the next '>', so a '<' in the script itself,
as in the "for (var i = 0; i < navItems.length; i++)" that doxygen writes into
its member index pages, makes it run past the real and report it as
part of one long bogus tag. The indexer only looked at the start of the tag, so
it never noticed that the script had ended, and skipped the rest of the file,
which for those pages is all of their content.
chm: reset the script and style state for each indexed file
chm: index words containing underscores and keep the words in byte order
To be compatible with Microsoft HHC which does allow searching shared_ptr
for example.
chm: fix the index of the first PMGL chunk in the directory header
fcl-css: resolve @starting-style
fcl-css: fixed units s and ms
* Restore joStrict behaviour
* Corrected non-ascii, error during generation
* Entity string <-> unicode corrections
* Various fixes for nested markup and html entities rendering
* Fix use of glyph by multiple codepoints
* Add material theme to fpdoc
* Recognize tmux terminal. Patch from Germán Luis Aracil Boned
* Better handling of missing font glyphs
* Handle frontmatter blocks
Try to fix IE 200109051 for powerpc and sparc CPUs
Fix SetRoundMode return value for sparc
m68k: internalerror when the compiler tries to generate 64bit MULs on CPUs that can't support it (this behavior matches other CGs)
Fix SetRoundMode return value for sparc64
human68k: added declarations for the getenv/setenv DOS call
fcl-css: parse @keyframes
fcl-css: cache @media results
fcl-css: changed FStamp to integer
fcl-css: fixed origin specifity
fcl-css: TCSSResolver: store origin and source index in rule
fcl-css: removed unneeded sibling matching
fcl-css: skip sub rules of non-matching @media rules
* fix
gitlab 0041851: apply (slightly adjusted) patch by Fibonacci to recover from an incorrect generic constraint by falling back to an ordinary undefineddef
+ added test
chm: exit with an error status when the project file is not found
chmcmd printed "Can't find project file" and then exited with 0, so a build
system running it could not tell that nothing had been compiled and happily
went on using a CHM which was never written, or an older one.
All the other error paths already exit with 1, as they call Usage, which ends
with Halt(1), so this was the only place giving a success status after failing.
chm: write the URL hash in #URLTBL and order the table by it
chm: count the last word of a title like all the others
chm: don't index the digits of a character entity as a word
chm: split the words starting with a digit like the Microsoft compiler
Use 64-bit %xrr flags for pointer comparison for sparc64
* fix
gitlab 0041859: apply patch by Sven Harazim to adjust the addition of the reloation addend for RELOC_ADR_PREL_LO21 from page-wise to byte-wise
+ added tests
* check the correct sign bit of relocation addends for RELOC_ADR_PREL_LO21 and RELOC_ADR_PREL_PG_HI21
* fix
gitlab 0041870: apply patch by Sven Harazim to set the epilog start index to 0 as it is 0 based
+ added test
* fix
gitlab 0041871: apply patch by Sven Harazim to generate the SEH instruction for stack allocation also when more than 4k of stack space is required by a routine
+ added test
fcl-css: ComputeStartingStyle: only @starting-style rules
* extract adjusting a symbol's name to the maximum identifier length to a new class function tsymtable.maybe_adjust_symname()
* fix
gitlab 0041860: use the new tsymtable.maybe_adjust_symname() to adjust the symbol name to the maximum identifier length
+ added test
* Fix accidental with error
fcl-css: fixed currentColor and color names are case insensitive
fcl-css: TCSSBaseResolver.Identifier on demand
* Correct a bug in FPC - WaitTime resolves when it should not
Unix mmap call with MAP_ANONYMOUS requires fd parameter to be -1
Both DragonFly and FreeBSD 'man mmap' state that:
mmap will fail with EINVAL error for this case:
[EINVAL] MAP_ANON was specified and the fd argument was not -1.
Linux 'man mmap' states:
MAP_ANONYMOUS
The mapping is not backed by any file; its contents are initialized to zero.
The fd argument is ignored; however, some implementations require fd to be -1
if MAP_ANONYMOUS (or MAP_ANON) is specified, and portable applications
should ensure this. The offset argument should be zero.
Support for MAP_ANONYMOUS in conjunction with MAP_SHARED was added in Linux 2.4.
For these reasons, using fd=-1 is safe for all Unix platforms.
fcl-css: tokenize colors depending on attribute
fcl-css: TokenizeHexColor
* Initialize result with Nil
* Capture takes optional options
* Content indent of a block
* Fix recursion, allow customizing text processor
* Fixes for indented markdown blocks
Add System unit specifier for TTime type to avoid picking up UnixType TTime type
* Availability check Correction in inflate. Fixes issue
gitlab 0041866
Make option "Return to last directory" on by default.
Add '$' prefix (internal type marker) directly
inside get_dynstring_rec_name method.
This fixes LLVM compilation failure.
* calculate index of -Ttext= in ExtraOptions only once
* avoid magic constant value by using a String constant and using that constant's length
* use a char-based String access instead of calling Copy()
* Add FT_Outline_Embolden and FT_Outline_EmboldenXY
Add missing tcext7.o for i386-freebsd and x86_64-freebsd targets
* leave the loop iterating through the extra options once the first unexpected character is found
* also recover gracefully if a function has empty parameter parenthesis
+ added test
* Fixed issue where negating a Currency value did not propagate the scaling flag
* needed apptype setting added directly to source code - as suggested by ghr in forum
+ add this package for OS/2
* fix duplicate inclusion of examples for some packages
* fix a typo in package description (_g_ryptography)
fcl-css: resolver ComputeKeyframes
fcl-css: bump resolver.SourceStamp on stylesheet change
* Added new tests to evaluate Currency correctness
* Fixed issue where inlined functions that return Currency types didn't propagate the "nf_is_currency" flag
Increase CurrentPPULongVersion to 33, due to introduction of fpc_mul_currency and fpc_mul_currency_checkoverflow
* don't list the same example twice
inlining: copy inlinelevel with the call node (fixes upstream
gitlab 0041184)
tcallnode.dogetcopy did not carry the transient inlinelevel, so a
recursive inline call copied through an initialization or argument tree
started again at level 0 and bypassed the growth heuristic until the
compiler ran out of stack.
Copy inlinelevel together with the rest of the call node state.
Non-recursive inlining is unchanged.
FPC issue: https://gitlab.com/freepascal.org/fpc/source/-/issues/41184
Co-Authored-By: Claude Fable 5.1
x86: normalize immediates when narrowing folded arithmetic (fixes upstream
gitlab 0041480)
Three peephole folds that narrow an arithmetic instruction to the size
of a following MOV/MOVZX changed the operand size but kept the constant
in the wider immediate domain, so under -O2/-O3 the assembler received
a value that does not fit the narrowed encoding ("word value exceeds
bounds 65536").
Route the three paths through ChangeArithmeticOpSize, which masks the
constant only on an actual narrowing. Equal width, widening and register
operands are unchanged.
FPC issue: https://gitlab.com/freepascal.org/fpc/source/-/issues/41480
Co-Authored-By: Claude Fable 5.1
x86: derive the asm memory width of by-reference formals (fixes upstream
gitlab 0041630)
In the Intel inline assembler a register parameter is converted to a
reference and only then is the width of the addressed memory
determined. For a by-reference formal the register holds the address of
the parameter's own type, but the width was reset to unknown, so an
instruction that takes its operand size from that memory operand was
rejected as an invalid combination of opcode and operands.
After the conversion set the width from a scalar vardef of a var, out or
constref parameter; a value Pointer or an ABI-indirect aggregate keeps
the width unknown and an explicit "ptr" stays authoritative.
FPC issue: https://gitlab.com/freepascal.org/fpc/source/-/issues/41630
Co-Authored-By: Claude Fable 5.1
* apply patch to fix more complex safecall properties, closes
gitlab 0041887
Remove unit SysUtils from uses in Free Vision.
fcl-css: resolver: rgb() and rgba()
`* Fix records containing logbrush with a -32 version that changes ULONG_PTR to ULONG for same sized structures on 32 and 64-bit. Fixes
gitlab 0041841
* Fixed issues where changing floating-point divisions to multiplications caused problems with Currency numerators
Test asm reference widths and explicit-size precedence
Exercise var/out/constref scalar widths with immediate operations and guarded runtime stores, plus value-pointer SSE/AVX and explicit-size rejection. The runtime matrix detects removal of by-reference inference independently of the original pointer regression.
Add missing tcext7.o for AIX targets
* Fix uninitialized result
fcl-css: resolver: simplified tokenized commas and brackets
* Patch from Sven Harazim to create certificatedata in TWebSocketServer. Fixes issue
gitlab 0041900
* TCertificateData.Assign now also copies TrustedCertsDir. Patch by Sven Harazim, fixes issue
gitlab 0041902
fcl-passrc: fixed TestCFG_EveryImplElementDescendantIsCovered for different currentdir
fcl-passrc: skip not implemented tests
pastojs: tests: do not write all sources
* Fix ambiguity in CanWrite
Original Turbo Vision File dialog layout for Textmode IDE.
* fix
gitlab 0041859: apply patch from Sven Harazim for RELOC_ADR_PREL_PG_HI21 relocations
ToDo: try to find a test that triggers a RELOC_ADR_PREL_LO21 relocation which was accidentally changed in 325146b5feb8dee66ca7149f761c30d3939a4f28, but which does not appear to trigger any issues
compiler: a is not b alias for not(a is b)
fcl-js: fixed writing comma lists
pastojs: try-except expression
Show files first in the Textmode IDE File dialog.
compiler: statement expressions:
new modeswitch m_statement_expressions, enabled in mode delphi+delphiunicode
case-expression now requires end keyword,
support anonymous functions,
split if/case/try_statement,
no change to the ISO/ExtPascal mode, so else is still allowed
Allow unordered element removal by Clear method for dictionnaries
compiler: case-statement/expression in ISO/ExtPas mode require otherwise, forbid else
compiler: new modeswitch DelphiSlang, turned on in mode delphi+delphiunicode, enabling the is-not operator
compiler: not-in operator in modeswitch delphislang
Path provided by Anton Kavalenkato fix issue 39427: Dynamic libraries do not load in dlopen under FreeBSD
* Add loadfromstring, make loadfromstream public. Fixes issue
gitlab 0041914
* Clear filename when loading from string
compiler: added NameOf intrinsic
Avoid object check error with -CR option for THackComponent use
Add required '$mode objfpc' and '$h+' to fix direct compilation
Disable range and overflow checks locally to avoid unwanted failures
Avoid range check error when aArgs is empty in FFIInvoke function
Align to 16-byte boundary in x86_64-freebsd target startup code
* Patch by Roger Olsson, fixing various lifetime issues
Fix TTestSimpleDictionary.DoValueNotify method for unordered removal
Include Sonar demo into examples.
Disable fprcp and tply for ps1 target
compiler: renamed modeswitch delphislang to reorderedoperators
* Fix connection leak in case of failed connection. Fixes issue
gitlab 0041907
* Allow to read multiple images in gif
* GIF writer with support for multiple frames
* Correct namespaced compilation
* Fix CompareStr/Text when string=unicodestring
* Fix case where string=unicodestring
* Fix functioning under unicode rtl
* Fix unicode-rtl functioning
* check for target_info.abi if ilp32e shall be used instead of cpu capabilities
* SVG reading & rendering
* fcl-web: fpcunit tests for the websocket client lifetime handling
Ports the standalone shutdown/lifetime harness (37 scenarios plus the pump-first and interrupt-race cases) to fpcunit: 44 tests in a separate runner, testwebsocketclient. Test servers bind to OS-assigned loopback ports and join their accept and connection threads at teardown, callbacks under test are held until the overlapping operation is proven, and a per-test watchdog ends the process instead of hanging. TLS tests are ignored without OpenSSL.
* Additions to PDF functionalities: shadings, forms, gradients, transform matrix, allow adding raw PDF
* Only unload fontconfig if we loaded it
* Changed exception class in Send
rtl-extra/amiga: add SHUT_RD, SHUT_WR, SHUT_RDWR constants for cross-platform compatibility
rtl-extra/aros: add SHUT_RD, SHUT_WR, SHUT_RDWR constants for cross-platform compatibility
Fix compilation for Solaris OS by introducing UsesFontsConf macro at top of source
compiler: added modeswitch TypeInquiry and type-of operator
fcl-passrc, pastojs: modeswitch TypeInquiry, type-of operator
Fix compilation for BSD OSes with -dDEBUG_MONITOR and add debug information for PulseAll method
Properly initialize function result.
* Added additional currency tests for evaluating the overhaul
Unix keyboard: quit instead of spinning when the terminal is closed
Once the terminal is gone the read never succeeds again: EIO on a hung up
pty, or end of file. The first loops forever and burns a whole CPU, the
second keeps handing the caller stale bytes out of InBuf, which an event
loop spins on just as happily.
Closing a terminal normally kills the process through SIGHUP, so this is
only reachable where that signal is ignored or blocked: a session manager,
an LTSP session, nohup. The text mode IDE has been stuck that way for years.
The function returns a single character and cannot report the condition. The
exit bypasses the normal one because writing to the dead terminal fails,
which would turn it into a runtime error 101.
Link: https://bugzilla.altlinux.org/24788
compiler: Choose the error message language from the locale
-Fr names one message file, so the language is fixed by whoever writes
fpc.cfg and a distribution can only hardwire one of them for every user and
every build system. Debian and ALT both do.
Only UTF-8 translations are selectable, and only for a locale that asks for
UTF-8, because the other message files are DOS and ANSI codepages.
Link: https://bugzilla.altlinux.org/45589
Fix comment continuation in errortr.msg
The file fails to load at all -- "error in line 523: no = found" -- so
Turkish messages have never worked.
Clarify handling of return value address
+ Add inside_create_paraloc_info and use_r4_as_funcretloc
boolean fields of MIPS cpu para manager
to handle special use of R4 register for address
of return value address.
Fix invalid typecast error inside taddnode.simplify
fcl-css: TCSSResTokenParser
Non blocking Kitty keyboard protocol test.
Fix compilation for BSD targets with -dDEBUG_MONITOR
* More memory leaks fixes
* Close pthreads lib, silence unreleased bytes error from valgrind
* fcl-image: colLtGreen and colLime use X11/CSS values
* fcl-image: add ClipLine, Cohen-Sutherland line clipping
* fcl-image: pHYs, Paeth, IHDR checks and InternalSize
* fcl-image: pixel-centre fills, pen and hatch
- New TPolygonInfo.GatherPixelSpans and private GetCentreIntersections collect where the edges cross the centre line of a pixel row
- FillPolygonSolid, FillPolygonPattern and FillPolygonImage fill the pixels whose centre lies inside the polygon,
iterating rows from OrigBounds.Top to OrigBounds.Bottom-1, and ignore an unpaired last crossing.
- New type TPolygonPointF and public FillPolygonPenF: a non-zero winding fill of a polygon with double coordinates,
pixel-centre sampled, limited to aClip (Right and Bottom included), drawing with TFPCustomCanvas.DrawPenPixel.
- New public FillPolygonHatch fills the polygon with the hatch aStyle anchored at (aOriginX, aOriginY), using HatchPixel.
- FillPolygonPattern takes the pattern row from y and the bit from x modulo PatternBitCount, with the most significant bit leftmost.
- FillPolygonImage wraps negative offsets into the image with a non-negative modulo.
- InternalFillColor draws spans with DrawBrushLine instead of DrawSolidLine.
* fcl-image: RectangleMode, pen shapes, resampler
- New type TRectangleMode (rmInclude, rmExclude)
- New type TEllipseMode (emCentered, emInside)
- New type THatchOrigin (hoDefault, hoShape, hoCanvas)
- TFPCustomCanvas: new public properties RectangleMode and EllipseMode
- TFPCustomCanvas: new protected BeginPenShape and EndPenShape
- TFPCustomCanvas: new protected UserRect and DeviceRect, virtual GetDeviceClipRect and property DeviceClipRect
- TFPCustomCanvas: new public DrawPenPixel, combining the pen colour with the destination pixel by Pen.Mode.
- New function PenModeColor(aMode, aPen, aDest): the per-channel RGBresult of every TFPPenMode
- TFPBaseInterpolation: private CreatePixelWeights declaration removed.
- The deprecated alias TMitchelInterpolation now refers to TMitchellInterpolation instead of TFPBaseInterpolation.
- New unit-level types TInterpolationKernel, TPixelWeights and TPixelWeightTable, and routine PixelWeightTable
- New routine ResampleImage: separable horizontal then vertical pass over the weight tables
- TFPBoxInterpolation.Execute uses ResampleImage with kernel-less tables
- TFPBaseInterpolation.Execute uses ResampleImage with Filter
- TFPBaseInterpolation.CreatePixelWeights implementation removed
- TFPBaseInterpolation.Filter returns 1.0 - Abs(x).
- GetClipRect returns the clip bounds in user coordinates: in rmExclude mode Right and Bottom are one past the last clipped pixel.
- SetClipRect sorts the rectangle and, in rmExclude mode, decrements Right and Bottom before storing it in the clip region.
- New UserRect sorts a rectangle and, in rmExclude mode, converts it to inclusive bounds; it returns False for an empty rectangle.
- New DeviceRect applies UserRect and then the canvas transform to the pixel extent, returning False when the result is empty.
- Ellipse, FillRect, Rectangle (with and without rotation), RadialPie, GradientFill and CopyRect interpret their rectangle through UserRect or DeviceRect
- EllipseC passes Rect(x-rx,y-ry,x+rx+1,y+ry+1) in rmExclude mode, so the ellipse has the same extent in both modes.
- New unit-level ArcPoints computes the polyline of an elliptic arc from a start angle and length in 1/16 degree, counter-clockwise from 3 o'clock
- Both TFPCustomCanvas.Arc overloads implemented
- DoRadialPie implemented
- DoPolyBezier computes NumPts div 4 segments in non-continuous mode
- Clear fills Rect(0,0,Width-1,Height-1) instead of Rect(0,0,Width,Height).
- New BeginPenShape and EndPenShape bracket a pen stroke; when the pen mode is not pmCopy or the drawing mode is not dmOpaque, a per-pixel bitmap records the pixels already painted.
- New DrawPenPixel paints a pen pixel and applies PenModeColor for pen modes other than pmCopy.
- GradientFill uses the inclusive rectangle from UserRect, spreads the gradient over all its rows or columns
- Draw clips against DeviceClipRect instead of ClipRect.
- StretchDraw creates TMitchellInterpolation instead of TMitchelInterpolation.
* fcl-image: rewrite blurs on real and 64-bit sums
* fcl-image: gray conversion and SetSize fixes
* fcl-image: decode directly from the input stream
* fcl-image: octree depth, progress and empty images
* fcl-image: fix conversions between colour spaces
* fcl-image: AlphaBlend returns non-premultiplied colour
* fcl-image:
- TFPCustomImage.SaveToStream and TFPCustomImageWriter.ImageWrite have a new aTruncate parameter (default True);
with False the image is written at the current stream position without emptying the stream.
- TFPCustomImage.SaveToStream has a new aTruncate parameter (default True), passed on to TFPCustomImageWriter.ImageWrite.
- TFPCustomImage.LoadFromFile(filename) returns True after a successful load.
- CheckPaletteIndex rejects index -1.
- Assign copies the source palette with Palette.Copy instead of clearing the count and merging.
- TFPMemoryImage.SetSize copies the overlapping rows in bytes using the element size (integer or TFPColor). The rest of the new buffer stays zeroed.
- TFPMemoryImage.SetUsePalette(False) converts the palette indices into a separately allocated TFPColor buffer and then installs it as FData
- TFPCustomImageReader.ImageRead frees the image it created itself when Img is nil and the read raises an exception, then re-raises.
- TFPCustomImageWriter.ImageWrite has a new aTruncate parameter (default True). With aTruncate False the stream is not reset and emptied, and the image is written at the current position.
* fcl-image: thick strokes, HatchOrigin, pen shapes
- New property TFPPixelCanvas.HatchOrigin (THatchOrigin).
When it is not hoDefault and the brush is a hatch style,
DoRectangleFill,DoEllipseFill, DoPolygonFill and DoFloodFill use
FillRectangleHatch, FillEllipseHatch, FillPolygonHatch and FillFloodHatch
with the hatch anchored at the canvas origin,
or at the shape's top-left (the seed point for flood fill) for hoShape.
- New private HatchByOrigin tests for that case.
- DoRectangle, DoEllipse, DoPolygon, DoPolyline and DoLine wrap new
private PenRectangle, PenEllipse, PenPolygon, PenPolyline and PenLine in BeginPenShape/EndPenShape.
- New private StrokeThick draws solid pens wider than one pixel as filled polygons (FillPolygonPenF) with pixel centres at +0.5:
the width is measured across each segment, ends follow Pen.EndCap (pecRound, pecSquare, flat) and corners follow Pen.JoinStyle
(pjsRound, pjsMiter with a miter limit of 10, bevel for the rest).
- PenLine, PenPolygon and PenPolyline use StrokeThick for solid pens wider than one pixel
- Line clipping uses ClipLine against DeviceClipRect and skips lines entirely outside it.
Patterned lines are now clipped as well.
- DoRectangleFill clips against DeviceClipRect instead of ClipRect.
- DoCopyRect writes to Colors[x+w,y+h] instead of Colors[x+h,y+h].
* fcl-image: TRectF conversion uses Y resolution
* fcl-image: new RaiseJPEGError
* fcl-image: TTiffIFD.MinSampleValue and MaxSampleValue
* fcl-image: line buffers, pHYs, IDAT, other fixes
- New types TPNGByteArray (array[0..MaxInt-1] of byte) and PPNGByteArray. (fix range checking errors for large images)
- TChunk.data is a PPNGByteArray instead of a PByteArray. (fix range checking errors for large images)
- FSwitchLine, FCurrentLine, FPreviousLine and the ChunkDataBuffer property are typed PPNGByteArray
- FillScanLine indexes the line through a PPNGByteArray local and Gatherdata casts to PByteArray for FillScanLine and DetermineFilter.
- WriteResolutionValues no longer changes TheImage.ResolutionUnit;
- InternalWrite only writes the pHYs chunk when the rounded ResolutionX and ResolutionY are both positive.
- WriteIDAT calls FinalWriteIDAT in a finally block;
- FinalWriteIDAT and WriteCompressedData release Compressor and ZData with FreeAndNil.
* fcl-image: pen modes via DrawPenPixel, hatch fill
* fcl-image: Insert frees or reuses existing entry data
* fcl-image: SetColor clips against DeviceClipRect
* fcl-image: per-IFD sample range, orientation, errors
* fcl-image: JPEGError raises through RaiseJPEGError
* fcl-image: CreateWebSafePalette fills every entry
* fcl-image: own palette copy, color search fixes
* fcl-image: pen/brush pixels, hatch fills, flood fill
- New public DrawBrushLine draws a line with DrawPixel (DrawingMode applies, Pen.Mode does not).
- New public HatchPixel, FillRectangleHatch and FillFloodHatch: hatch lines aWidth apart for bsHorizontal, bsVertical, bsFDiagonal,
bsBDiagonal, bsCross and bsDiagCross, counted from (aOriginX, aOriginY).
- PutPixelCopy, PutPixelXor, PutPixelOr and PutPixelAnd removed;
- The line body of DrawSolidLine moved into LineWith, which takes the pixel routine; DrawSolidLine and DrawBrushLine use it.
- DrawPatternLine indexes the pattern by the x coordinate (or y for steep lines) masked with PatternBitCount-1, instead of by x mod, y mod or the step counter.
- FillRectanglePattern sorts the corners and draws each pattern bitwith DrawPixel, indexing rows by y and bits by x, instead of calling DrawPatternLine per row.
- The recursive CheckFloodFillColor and CheckFloodFill replaced by FloodFill
- SetFloodPattern indexes the pattern plane as [y, x] and draws with DrawPixel instead of assigning Colors.
- SetFloodImageRel wraps negative offsets with width+xi and height+yi instead of width-xi and height-yi.
- FillFloodHash clamps Width to at least 1.
- The width locals of SetFloodHashBDiag, SetFloodHashCross and SetFloodHashDiagCross are integer instead of 0..PatternBitCount-1.
* fcl-image: orientation mapping, sort, cleanup
* fcl-image:new table of X11 colour names
* fcl-image: rewrite pixel decoding and validation
* fcl-image: rework drawing, add text, images and Shadow
- new exception class EPostScriptCanvas.
- Real numbers are written with PSFormat
- colours are written by PSColor as components from 0 to 1
- TPSPattern XStep and YStep use PSFormat.
- New WritePen: pen colour, integer width, line cap, line join and dash array (PenStrokeSettings, PatternDash) for psDash, psDot,
psDashDot, psDashDotDot and psPattern; a non-pmCopy pen writes PenModeColor of the pen over black.
- TPSPen.AsString also writes the stroke settings.
- Every primitive clips to DeviceClipRect when Clipping is on (BeginClip, EndClip) and skips the stroke for psClear and the fill for bsClear.
- DoLineTo strokes a separate segment from the last position;
- DoLine no longer closes its path;
- DoPolyline strokes a single path.
- New overrides DoPolygon, DoPolygonFill and DoPolyBezier (curveto);
polygon and Bezier fills use eofill unless the new property PolygonNonZeroWindingRule is set.
- DrawRectangle orders the corners and insets a thick outline by (Pen.Width-1)/2;
- a filled rectangle is no longer stroked.
- DrawEllipse scales a unit circle with real-valued centre and radii and restores the matrix before painting;
- EllipseMode emInside shrinks the radii by (Pen.Width-1)/2.
- New Arc and DoRadialPie overrides;
- AddFill paints bsSolid, the six hatch styles
- TextOut replaced by a DoTextOut override: the UTF-8 text is converted to ISO 8859-1 and shown in a core font
- New DoGetTextSize, DoGetTextHeight and DoGetTextWidth overrides, computed from the core font metrics (record TPSFontMetrics).
- New SetColor override writing a one-pixel rectfill.
- New Draw, StretchDraw, CopyRect, DoDraw and DoCopyRect overrides writing ASCIIHex images (WriteImage).
- New GradientFill override writing an axial shading (ShadingType 2).
- New property Shadow keeping a TFPMemoryImage copy of the page drawn by a TFPImageCanvas.
- GetColor returns the Shadow pixel and raises EPostScriptCanvas without Shadow.
- new DoFloodFill fills the region found in the Shadow as a pixel-outline path (WriteRegionPath).
- Pen modes that read the page, dmCustom and alpha blending of translucent colours are drawn into the Shadow only.
- TPostScript: UpdateBoundingBox passes Width and Height to the canvas.
- The %%BoundingBox header uses FWidth and FHeight instead of 612x792; BeginDoc sets FDocStarted.
- TPSPattern.SetBBox is enabled: it sets the width and height of the pattern canvas and calls Changed.
- TPSBrush.GetAsString returns the brush colour with setrgbcolor.
* fcl-image: bars on baseline, rmInclude while drawing
* fcl-image: 15/16-bit colour, full alpha, bounds
* fcl-image: Fix zero-based code 128 A/B table lookups (was 1 based, past end of table)
* fcl-image:register writer as 'GIF Graphics'
* fcl-image: new metrics table of PS core fonts
- New include file with the constant PSCoreFonts: array[0..11] of TPSFontMetrics, used by pscanvas.
- One entry per Latin core PostScript font: Helvetica, Times and Courier,
each in regular, bold, oblique/italic and bold oblique/italic.
- Each entry has Name, Ascender, Descender, UnderlinePosition, UnderlineThickness, XHeight
and 256 character Widths in 1/1000 em, indexed by ISO 8859-1 code; unmapped codes have width 0.
- The header contains the Adobe copyright notice of the AFM data.
* fcl-image: Strict text parsing, 16-bit raw samples
* fcl-image: text formats, gray and colour-depth guess
* fcl-image: RLE, even line length, resolution units
* fcl-image: new SwapPCXHeader
* fcl-image: X11 colour names, full color key parsing
* fcl-image: rewrite the QOI encoder
* fcl-image: GetBits calls QRgetModule, assert removed
* fcl-image: decoder rewritten, header validated
* fcl-image: raise on unknown type, Integer sizes
* fcl-image: OS/2 headers, V4/V5 masks, alpha, RLE
* fcl-image: V5 header for alpha, resolution units
* fcl-image: valid C header, None for any transparent
* fcl-image: layouts, palette, indexed pixels, progress
* fcl-image: validated header, per-mode pixel decoding
* Add includes and example
* fcl-image: Add missing LCL methods to TFPCustomCanvas, adapt example.
xtensa - do not invoke DPFR for LX106 subarch.
fcl-image: keep it buildable on systems w/o feature threading
* fcl-pdf: add pdfcanvas, a TFPCustomCanvas descendant that outputs to PDF
* fcl-image: ICO and CUR readers and writers
* fcl-image: frame API (TFPImageList) for files with several images, binary metadata
* fcl-image: Support for animated PNG
* fcl-image: lossless WebP reader and writer
* Some visibility issues, detected while parsing lazarus code
* Fixes for issues discovered parsing lazarus sources
* fcl-image: lossy WebP decoder
* fcl-image: EXIF, ICC and XMP metadata in JPEG, PNG, TIFF and WebP
Fix tcext7.c source for 32-bit CPUs.
tcalext7.pp test uses int64, but tcext7.c was
using 'unsigned long' type, which is a 32-bit type
on 32-bit CPU and a 64-bit type on 64-bit CPU.
Fix it by changing 'unsigned long' to 'unsigned long long'
in tcext7.c
Regenerate test/cg/obj/linux/i386/tcext7.o after that change.
Update test/cg/obj/reademe.txt
Add informtion about corrected i386-linux tcext7.o
Reformat file.
powerpc-aix tcext7.o file recompiled using gcc (GCC) 13.3.0
compiler: type of GenericParamPointerType^
* fcl-image: PAM, PFM, Radiance HDR and DDS
Compile linux/mips/tcext7.o and linux/mipsel/tcext7.o
compiler: record composition: use current_scanner.token
Co-Authored-By: Claude Opus 5.5 (1M context)
Update after fix to tcext7.c for 32-bit
Recompile linux/powerpc/tcext7.o
Recompile solaris/i386/tcext7.o
compiler: RecordComposition: added header comments to tests, removed duplicates
Recompile linux/sparc/tcext7.o
compiler: RecordComposition: renumbered tests, added tests for managed types
* fcl-image: the surfaces of a DDS file as frames
* h2pas: Added an fpcunit test suite for h2pas and fixed the parsing of the -p option.
* h2pas: Pointer types are declared next to their target type, and -t/-T give pointer types the right names.
* h2pas: Names of the ctypes unit get no T prefix.
* h2pas: Functions with a pointer result use P types in the interface.
* h2pas: With -P the uses clause is written at the start of the implementation.
* h2pas: Every variable of a multiple declaration (int a, b;) is written.
* h2pas: unsigned char is mapped to byte.
* h2pas: signed char is mapped to shortint.
* h2pas: A (void) parameter list gives no parameter in procedure type typedefs.
* h2pas: Function pointer parameters get named procedural types.
* h2pas: The alias of a typedef of a struct tag points in the right direction.
* h2pas: The stdcall and cdecl calling conventions are written.
* h2pas: Varargs functions, -e typedef aliases and bit field accessor names are converted correctly.
* h2pas: tply: plex allocates the full node for regular expressions.
* h2pas: The scanner uses the state and routines of scanbase.
* h2pas: Fixes in the grammar and the scanner.
* h2pas: Crashes after syntax errors are fixed.
* h2pas: The indentation of the output stays balanced.
* h2pas: Pointer to pointer types are declared, and function typedefs are converted.
* h2pas: C++ reference parameters become var parameters.
* h2pas: Any expression is accepted as the value of a #define.
Add libffi package for Solaris OS
* h2pas: Parenthesized macro parameters are no typecasts.
* h2pas: (name * expr) is parsed as a product, not as the cast of a dereference.
* h2pas: #elif is written as $elseif.
* h2pas: The conditions of #if and #elif are translated to FPC expressions.
* h2pas: Pointer casts with more than one pointer level are converted.
* h2pas: Dereferences in expressions are written as postfix ^.
* h2pas: Qualifiers, attributes, static inline functions, anonymous variables, array parameters and wide bit fields are handled.
* h2pas: Bit field setters are written, static declarations are handled, and extern functions with a body are converted.
* h2pas: All Pascal reserved words used as identifiers get an underscore prefix.
* h2pas: Enum values that use other enum members are written with ord().
* h2pas: Functions returning a function pointer are converted.
* h2pas: Arrays of and pointers to function pointers are converted.
* h2pas: Pointer and array typedefs of an inline struct, union or enum are converted.
* h2pas: Escapes in character and string literals are translated.
* h2pas: A define whose value is its own name is ignored.
* h2pas: Float literals with suffixes or without leading or trailing digits are converted.
* h2pas: Adjacent string literals are joined.
* h2pas: Macros with statements or side effects are skipped with a comment.
* h2pas: #pragma pack is translated to $PACKRECORDS.
* h2pas: #include of system headers is ignored.
* h2pas: Returning 0 or NULL from a function with a pointer result gives nil.
* h2pas: Standard C type names (int8_t, size_t, ...) are mapped to Pascal types.
fcl-passrc: parse and resolve record composition
* h2pas: Flexible array members become arrays of one element.
* h2pas: Macros that are comparisons get a boolean result.
* h2pas: Expressions follow the C operator precedence.
* h2pas: A ternary whose condition is a value is compared to 0.
* h2pas: The logical not ! is translated.
* h2pas: New option -E runs the C preprocessor on the input and keeps the text of the file itself.
* h2pas: Character literals are integers in integer expressions.
* h2pas: Defines inside braces follow the declaration, defines of declaration keywords are skipped.
compiler: fixed record rtti exclude static fields
AVR - remove redundant leading and trailing bytes from stack.
* h2pas: Opaque structs, reserved macro names and defines of h2pas keywords are handled.
* h2pas: off_t, va_list and type macros are converted.
compiler: check invalid type-of cycles
* h2pas: Typedefs of the same Pascal type and defines that differ in case only are skipped.
* h2pas: Records used before their declaration move to their first use, and defines of empty defines are handled.
Introduce systems_supports_data_rel_ro and add systems_linux and systems_bsd to it
* h2pas: New option -1 writes all types in one type section, after the constants they use.
compiler: fixed crash on non-constant default parameter, issue
gitlab 0041934
* h2pas: Function aliases (#define A f) and wrapper macros become proper aliases, and reserved word type names are escaped.
* h2pas: An enum type named like one of its members gets a T prefix.
* h2pas: The result type of a macro function is derived from its body.
* h2pas: The parameter types of a macro function are derived from its body.
* h2pas: A macro that calls a procedure is written as a procedure.
* h2pas: Function pointer arguments and results of struct members get named types.
* h2pas: Structs defined inside a member are declared as record types of their own.
New test for $J- for dynamically loaded executable.
This test checks if read-only
data section specified by $J-
changes the section to read-only after
relocation done by dynamic linker.
.data.ro is only handled by dynamic loader,
static executables treat this section as read-write.
* h2pas: Pointers to pointers outside argument lists are written as ^ followed by the named pointer type.
* h2pas: Readability and simplification of the h2pas sources, with fixes for in_args, an unterminated comment at the end of the file and large array sizes.
* h2pas: Function pointer results of variables, typedefs and arguments get named types.
* h2pas: The lexer accepts input lines longer than 2047 characters.
* h2pas: (* and *) in the C text of a syntax error comment are split.
* h2pas: A marker after the comments of an argument list is moved to a line of its own.
* h2pas: A syntax error gives one comment, however often the parser retries its recovery.
* h2pas: Global names that differ in case only get an underscore, keeping their C symbol.
* h2pas: A bit field getter named like a reserved word gets an underscore prefix.
* h2pas: The array that a pointer points to is declared as a named type.
* h2pas: A define that names an identifier declared later is written after that declaration.
* h2pas: A define written a second time in the same conditional section is left out.
* h2pas: Enum members in arithmetic are written with ord().
* h2pas: Character arguments of macro functions are ordinal values, and a parameter whose members are accessed with -> points to the struct with those members.
* h2pas: The arguments of the preprocessor options are stored in AnsiStrings.
* h2pas: New option -Ek@listfile reads the list of kept files from a file, one per line.
* h2pas: A function or variable that points to a struct declared later moves that struct before it, or writes an empty record for a struct never declared.
* h2pas: A forward declaration struct tag; no longer declares the struct twice.
* h2pas: Pointer types to a struct that cannot move to its first use are untyped pointers there.
* h2pas: With -E, the defines of the preprocessor itself (__GNUC__, ...) that the header uses are kept, and __builtin_expect(e,c) is written as e.
* h2pas: System types (time_t, dev_t, pid_t, socklen_t, ...) and the limits of stdint.h and limits.h are mapped to Pascal.
* h2pas: With -E, an alias of a name that is never declared is left out with a comment.
* h2pas: #ifdef with spaces or tabs after the # is recognised.
* fcl-image: HEIF (HEIC and AVIF) reader and writer through libheif
fcl-image: fix build on all 32bit platforms
add WPF_ASYNCWINDOWPLACEMENT
Set macro support_rodata for m68k and all MIPS family
Fix compilation for Darwin target OS after commit 221ee212
Set support_rodata for sparc and sparc64 compiler
Add tcext7.o and information about used GCC versions for riscv64-linux target
Add -Otime option to change default 60 seconds timeout for execution of individual test
* Fixes for enums with assigned values
* Fix resolve issues with "with" and records picking the wrong scope
Fix ScanCode value for Enter key for win32 keyboard protocol.
Remove absolute code after ListViewer double click fix.
* Support for TZif footer (Version 3) by Pavel Řezníček. Fixes issue
gitlab 0041926
TListViewer trigger SelectItem on double click. Discovered by Germán Luis Aracil Boned.
TOutlineViewer trigger Selected on double click.
* fcl-web: INitialize some variables
* Allow to use properties and change tracking
* Allow to use properties and change tracking, handle UTC to local time conversion
* Make CreateAPIData public
* Cannot check possibility of delete operaion against response type
* Rework google APIs to use openapi code generator
fcl-base: Fix ascii85 encoder padding
* Let objects free object & object array properties
* Regenerated with objects freeing their children
* Only build for OSes that have openssl
* Fix so it compiles using command-line
* Move SSL stack injection to main program
* fcl-md: various fixes and small additions:
- Allow HTML comment blocks
- Allow definition list extension
- Allow github-style Alerts
- Allow attributes {.id }
- Support for footnotes.
- Various renderer fixes.
* fcl-sonar: true and false are not keywords
* Fix lists in blockquote
* Split resolver out in domain-specific include files
* Do not mix rtlevent and basicevent
Add functions now also available for iOS, with information about minimal iphone version
Exit statement is not allowed inside finally block
Remove test about exit inside finally block
from test/texception14.pp to new test/texception18.pp
Add %FAIL dotest specifier for texception18.pp source.
* tests for reopened issue to confirm it was actually fixed, Fixes issue
gitlab 0039884
* Define maxextended as maxdouble when extended is not present. Fixes issue
gitlab 0036108
Fix troubles regarding verbosity.
options.pas: Change init_settings.verbosity
on '-v' option and on '-Se' option.
parser.pas: Set status.verbosity to init_settings.verbosity
in compile_module procedure.
* Correct GetCharacterPlacementW parameters. Fixes issue
gitlab 0037874
* Fix wrong CP conversion
* GoLang syntax highlighter
* Add missing ScreenWidth/ScreenHeight, patch from Michalgw. Fixes issue
gitlab 0039621
* Do not finalize resourcestrings twice: sysutils already does it. Fixes issue
gitlab 0041003
* Correct GetLocalTimeOffset for southern hemispheres. Fixes issue
gitlab 0041672
* Fix wrong overload being picked in setstring() call. Fixes issue
gitlab 0041745
* Fix behaviour when /etc/timezone is a directory (as in SuSE). Fixes issue
gitlab 0041883
* Add EnumResourceTypesExA import plus some extra constants + test. Fixes issue
gitlab 0035110
Treat zero char as ordinary space char in Video output.
Zero char width is zero, but we can't have Video cell to be zero width. It does
mess up alignment for following cells.
* Use new constructor for EInOutError
Test internproc fpc_in_lo_word
The test source tw41340.pp
was first moved from webtbs to webtbf
but this leads to troubles with
the testsuite database.
Thus a successful test
is reintroduced in webtbs directory.
Note: This test relies on
the value of the constant fpc_in_lo_word
from rtl/inc/innr.inc
Remove %norun dotest specifier
* Correct type for errorpos
* Test for dynarrrefcount
* Fix for paramstr() AV when argv/argc no longer matches. Fixes issue
gitlab 0020752
* Fix invalid memory read
* Emit DECTERM escape sequence for showing/hiding cursor instead of linux-specific ones. Fixes issue
gitlab 0021377.
* Free last exception object in case of unhandled exception. Fixes issue
gitlab 0024864
* Handle unicode thousand separater more gracefully, like Lazarus does. Fixes issue
gitlab 0026803
Do not use halt inside threads
Replace by a common error variable
that is use at exit to call halt(error).
This change tries to avoid a deadlock that seems
to happen otherwise, particularly for aarch64 CPU.
The purpose of this test is to check fpu exception
masking, not issues related to deadlocks
between threads.
* Handle unicode thousand separater more gracefully, like Lazarus does. Fixes issue
gitlab 0027099
* Fix potential access violation in ThreadQueueAppend, synchronize treatment across OSes. Fixes issue
gitlab 0031267
* Corrections in UCS4StringToUnicodeString, tries to encode illegal codepoints. Fixes issue
gitlab 0033613
tfexpand2.pp should be tested on OS/2 as well
* Improvements to GetEnvironmentVariable and GetFileVersion. Fixes issue
gitlab 0033764
fcl-net: add a native Schannel HTTPS client
Use Windows system TLS, trust and hostname validation.
Include the package units and Pascal client tests.
* Better error in DateTimeToTimeStamp when incoming value is out of range. Fixes issue
gitlab 0034214
* Make some enumeration routines return Boolean32, to comply with original windows headers. Fixes issue
gitlab 0035205
* fix
gitlab 0041948: apply patch by raspberryrabbit to store the position of an actively replayed tokenbuffer in case it is being replayed again
+ added test
- removed unneeded example which wasn't compilable any longer and not really bringing any value compared to baspm.pas or pmdemo1.pp
* Better rules for fpcmemdll.dll
Reset syntax hghlight to default after file is saved with a new name.
* Correction for different number of resources depending on wine/actual windows
fcl-net: allow a socket handler to establish the connection itself
Add TSocketHandler.HandlesConnect. When it returns True, TInetSocket.Connect
does not connect the socket handle but leaves the connection to the
handler's Connect. This is needed for platform APIs which own both TCP and
TLS and cannot take over an existing socket, such as macOS
Network.framework. Existing handlers are not affected.
Co-Authored-By: Claude Opus 5.5
fcl-net: add a native macOS Network.framework TLS client
TNetworkFrameworkSocketHandler uses Network.framework for TCP and TLS, with
the system trust store and host name validation. Network.framework owns the
TCP connection, so the handler establishes it itself through
TSocketHandler.HandlesConnect. Client only, macOS 10.14 or later.
Co-Authored-By: Claude Opus 5.5
Fix "Save as" for the file that is open more than once at a time.
* Tentative to fix fpgetrlimit/fpugetrlimit. Fixes issue
gitlab 0037345
* fix of wrong type of two attributes in TDIVE_CAPS
* Remove fpcmemdll building
* Tests for the new signals
Free asmlists after successful object generation to save memory.
* Correct wraptext to be delphi compatible. Fixes issue
gitlab 0039624
* Better handling of EINTR in system read/write. Fixes issue
gitlab 0039636
* Read params from /proc/self/cmdline instead of using a heuristic. Fixes issue
gitlab 0039985
* Do not rely on exception for division by zero.
* Follow-up for currency streaming: allow for vaCurrency
* Fix exception stack memory leaks, also fix memory leaks when finally raises. Hopefully completely Fixes issue
gitlab 0041950
Try to fix alpine failures, by changing image to full version.
* Larger precision for float reading in .ini file, added ReadExFloat to read exended on platforms that support it. Fixes issue
gitlab 0040972
* Use SizeInt where possible for stringreplace and friends. Fixes issue
gitlab 0041110
* Fix boyer-moore for unicode rtl
* Fix fileexists() when reparse junctions are used on windows. Fixes issue
gitlab 0041150
* Fix AV during TestExceptionReraise on win64
Constant strings to resource strings.
* Fix waiting on a thread with freeonterminate set. Fixes issue
gitlab 0041378
* Do not use heap in showexception error message formatting. Fixes issue
gitlab 0041467
* Do not use PTHREAD_EXPLICIT_SCHED. Fixes issue 41807.md
* Improve SSE2 fpc_exp_real handling of negative values. Fixes
gitlab 0041837
Ignore empty string received via bracketed paste.
Add Alt+Shift+Number in Unix keyboard.
Fix compilation of strutils unit for systems without threading feature
Fix compilation of windows unit with release 3.2.2 compiler
* Fix changed behaviour of Utf8ToUnicode
Add debug code to inspect treal48 failure
Explicitly use -gwl option to force dwarf debugging format, as this is not the default for all CPUs on Linux OS
Set ScanCode for Ctrl+Key (Unix keyboard).
* Fix TDirectory.Delete on non-existing dir. Fixes issue
gitlab 0041911
* Fix treatment of empty JSON
Fix change of 4349a99b related to removal of pure assembler functions
Skip test on targets who do not support libheif package
* Fix unicode type parameters