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
0cb53989ccdbefda256ef0056a258ae12e596b6f,f67793022e16edfabd65a70f2f01f4aa5fb4492d,60c68a7301a86b44a9cb910dedc8246749e704b3
5da79e7ffaf1a011ce33f15c6b1bf9c5af5770e8,57fa801ed228056c3090065a74c3a265f40d95d4,5d4aa763f24a8f766ffc4734a2abdf366a022e70
c357977a1ee3df9cf918c2bf1ba0370dd7b063fd,cc950e79741ac8a9ec97cc1132f11a9cd43fdd4c,7378994ec553d600cfc96d1dcb1b5dfb13b2fcbc
79529a0cc066c48508a72a39a369bb1cd327b32b,7f592bb331b1d8e7d80dae91260dab4ee38c313e,4537f34c825959537b41c5c1af51b6a5b109b805
4b9ca326d0b7f7e01653d87b55834702a1645b0b,6cdf023a21cbc7e357d9bb65bf389bd3acfd3be0,a8f5fada572b30304198e356bd106954055a5f46
04ec431edae6f2a622476ae04cdf902bf8ebbf9a,b2543a0f18cf9ca4672cd468949ef5e705d72c34,422cf466be643fed3c3ec869637f7726f7829d12
3e5323476d3694fd59b5a82c7033b3253d6b5b95,c7f406b1f9ad5301e802a47cabbfee3525342af2,24bbfe2c45eb62502e917ec84289d2bb45238cbe
b3dad1f6b1eed6fc6d9dd4b9948fbbe7fd6df725,6593231fe49d306bc6dead82e850fb44db0d9c72,0707b5f7ca971119a9015fc2d063f57bce28ec5e
cf147f7a497dfedfc10e7db51ce19fc5ef5b31ab,151a3124e032a91d96c944d08fde6777346ef5a1,2c6d0fb7f29d67255c97ea2164da154a2bc1b0e2
352f864210d4a79ad26a0ac0190d57a2b105826b,ef5824a4d24f277d23c58c749cdd74eb033ebd88,8058aaad9c43462db46784c659656803332d12db
f126fbe2cfc71ae1a7c78321ead4381548da971d,6183327b18284addf62e93cbb6859a759f3f0688,e6e5c1724dc6c9c86a0261d898c1f872ed3d6489
dcca8ab6fdf86773372135b014bdc9c15a876d33,0fe1317c820cddd59f5b303458fb27957edfafe7,100bdd5b0c6bc1533a31097aade59f4da2150fa8
a99f330e3baf50ce852e8397413268a23c1c588e,a057c967170808c0e0c1a9b51208cfcd95b238a3,d312b46d1b34f605a3540b21c5a4c3c5f22e4c09
a3828c8e3e5cc5801cf0fced38fc8622b331a0f2,8307b72f747b1368899e125cddb86a213b24942d,d23863c821820dca29230b270ae0e4eaebfd9aec
d3df269339192d521f266809d7fb00e9a9893201,cad28fa07520dbb36e7ea8d24def0c612f339d35,96d1f229b50eb1632a985f0f0f9f7c2bf9b29a11
864f097053e5050508472d4aac637f2929ec805d,93def13823a527a1b5d611cf11ac563e86747da7,00439969cea540f5089b22b9df9955435d2f5a1f
46785d3884438cfd7252183cc6fb531926d18062,1a0a36f928f6d929f2ed1a146054ea23df1c72e0,6913f674b0d5e5c160c370380a0d346317a10b7f
699cdca74dbe3509156134b1fc7dd639fdc32e7e,18f0d90ba692cb84c5315a3d9decc37657d08ad2,1ddbb6a6623d9334cd0f4ca3468dcc38bdf17d85
ce140620b9a78dd8e0edddd01e6d1dc6d6f3f9e8,043f6188af4bad9a22b70c506b4bf687e5ead2be,7256f8be25aab8c91cf7ade2e257993be522ee7f
14091abda5f962de254084aeeed11b530138678c,234c5cdc5a11ff0b4debd1c7221d0663d629c6ba,ae9cc5ed1833a2e6b65c68a5e76b911416ef15f3
42928f997372ad04e4d2b5fb31e93ca1f79fdcda,eba6b08625f7648ad264429b12907b98ad88ac0d,95654bcaa571980efa862f58d49195a0ba2fbcbf
359e551c7fb0d3edff33a19aa3a73578860a2e71,38350a9701a9b03e214fc4e0761d9249d0dd501e,679281a7d357d16f36e624394e842a7699f7fb3b
88ba748ef09b5fcd283082938a93c077fd38f08c,ba290bb35831c75ab2bcf13d81ac89f00f93b443,25f3dad01de01b325d1313ece23f9470fc554c16
484c45340983f494c6a86e110eb79b749e196f1b,19541da2ad1c1a6da877f4b7cbb57f2b74f67c81,069e4c77bcbe8f8cf6006d5369c9c473b8d62b7e
f063c5b611abcd64078dff948b4ea1b8a98e4e2d,d05bcd846ea9f296e9acb855de4810e2c24448a0,3cc17229479045475c1168cf4621d4f1faa36a51
9e083789bacd4e660c2474ac8216445e981980f1,22d290491e837d0dfc7a2003aaa0791890014351,d201478f852ed4d7314ecf5abbdbdc449ffa3d84
71226c3bb2fd9ba8139a544785d0b958e2217bcd,b3a5a031630516bbf4c6463a5a67d7f6ed070feb,779604d6a3b3fb68793d372cb1c110329663b805
7ef30a4081075ecc5cc68427f0e3677cda1db12f,a2321b38c7b2083ab94a8053ba1e0a0fe97a5014,ca8b0f094880ad9b11fa7579f1360da2230a973b
ff4c0ecd900126c1d8c69d00110d309a3766b507,dc096609ffdf6112565449464b54b097d87129bc,ef0f5d4fa406ba982998356c778b2d41fc0d1108
ac62ae5ce59a542e810022441c6beb7c45959c0b,b3aaf78961599acd6842acef7ed79ebf608c2749,610b269a123ba588cb3fe99a2d0775e9cc7ab7be
600a9a4d98e225f9a9d119ad4a9811a9bf1cee2d,d1c34f3ac0cac05172c80dc2a874c1b320d048d1,91318fdea20fe3e65faf7ac7e72f1364fdb48305
325b3e4d4247f1ea25bfdeb8fcf11a2ab73d3456,a3d722dfe93d3fcc5291f7930098945cd9de15ec,83e5ae792e643c8b3bf3f4da36f94dd7d46c5506
c2e666b6c769fc878b78fd35f1297bed7c654023,e289d78b28724554c73f8714145b91b6199d576e,093d78071e4bf32bf628231870fdb54899934a50
3391c2661ce3c2e180f4919766d396d2c5a4f219,07db64412887d74519c1a76141a525ec110e7a5a,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,217978b5422aef69a7c405d1de1dfab57c41aff9,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,c41900dbe448fdeb18cfd95bfac707eef75eb4fa
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
2420b630de50469884649cd17f45915edb600415,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,29ca7c45ed736b9f382c5882249c890d14e5d888,d5bb15994a9be6565d21ccb3e04beec3c413240d
2a85b186886d27f2fd853852112c28b6f8685401,3eb0f608f7e3e7c747f58f1b91d96e1f6e653116,b5d9ffbdb4906a84fc59f078a43e47b4f2fcb85b
68cbdbc87f6c1b3356ba7c04634dd0c2c9ceff5f,99f848880956de7e5924bbd5075426c84c166fa5,a2c5902f2e271bf4fae5cc2b5d5cd070f0411990
29926235246963112166369e54fadfdf859439e0,19db130ee9ffade44abdf88e20caf9c873345ea8,cbf54a297df2e68a97ef9d1024aa3e845c705190
52acdc044d2d48264b8e8fbac2557559bb599921,a7f5a4b5b9b6477971e9ec450ab74a4fb9e3e08e,bc89123653269b34be8a7fda3df0b4cea7243ef4
aa3a4ed280bde7b6df01e28b1b08e5596c1d394f,861a2de8bb200e97b75d2085b7c91ba841494889,cb3daffc0059c4f848bfc65c1749d1664c1f0613
934a5b4e3401a53008427df40009756f90ae4301,809e33c6837d8e39e87d928aaffc257c5488b1c4,c7318aa95ff0aebd273e4e143e181f1e62b6fd05
1b90309f40ad373157237bbfb406c3a181d0b5ab,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
e79413499e60ca23c8493893dbdbf52abc07db70,8d42e433a125619280576ff8e8025fcc0c3b5702,3220c80c7b8480d1a1c776a9bb7d780bbd950272
061bd82c1eddf34646591ce31e751122c290155f,09e22c81fa130271fc73d09b04ce32b98828f957,e120901f95fdf00b55ef444b11c07924b22d31c3
7a3b8fd1a6246080cfe1419333e6b214778c970b,349d6b53a7e7a77189ae64cbd436af63d45396cd,4d85f18f6ddea6a2bd7fed8b8175af838225857e
9437b581f0e79c10d938869c021c3ec5decbdeb6,9936961be6474a674b061b79f8893a5b1e50af1e,e7192fa328456ae5cb3e1cdd8ab9b281ddae8917
9a01e5064bd913bdc06bef200d418e94a7cdca9f,876bcfb0c563c7e05e44034dda3b81ae842c5d09,8c232bf1bc61549824e09e274fa0694539c8b12b
14f2a116bdf44fdbc712ef4a815362b7544663f5,b0c95c73a1f20cb8d1f8537a52324d0c01d1f210,dcac9c4b86ca0e457624121e3383996f4d1d799c
6ac21f8259cbd876083866605819fdf39583e7f4,c0544cf4866e53d004b3dc81f7d1f0c7d257aa12,4acef83a977e92c606c762614367538eb61ed16f
1308ba8fd28ed9a3c11324f0c15dd15098cc034c,a51906a8de6b5f485385669c1e703d272badf16c,50208d40a0f447b5d50bb1d282f3e82ca6475aea
abaaabbd1f60031806920697c646cdb3ef8aba8c,0e357320bc93cd3d4e573e5a4040e2e8c7eb5a80,e101fb8c8f94d729c76426150f217516d3b2322f
a35b05285c3ab7695e304137dd47d5f3549b9dc0,71bea350a623482598c7b0077a91b584454d9a24,c8b3d19b57dbbbe2bfc5b150f8e8145c5250e47b
224b4de787e486c969d2997764a7c828196c58e2,3944ccf2d6e47990ed064204d6ad4687f3a48e7a,cf49e4123fb20bb3a8efb16e774cf17a0aeb8a21
a4ea549e6e576d04def7845837ffe9b369aa204a,50174fbb3f6453ac924db1b4eeef19e5911518a2,79149efb488179ef9602697685edc57da328273c
d68b80000faee69d48cd10393ef0c0fb03659b04,6eff1fa2261def749674eb8c5882e54782fa3de2,afe4d4122eadcd4d1fefc7ed8a62b937855fc6fc
6e94f6a2b8d217f6af3adb1849b0a2ea6058acac,a6ba2fbb8cae72140f5b4fe4f608dc3ae14ef47a,76c7e2040ce6095236e17741e2bf4fa773d71229
5966866f7f00fc045615f305aa317267a3dfe8ba,c2d361500fe168783602994952e1ea90420f3b5d,759421d0d042d0d578efc0e1777cd05bc90c33c0
071acd2a13a48b2e50724f8bd5dca43c3f4f76d2,4eeca3f1f2d72ad418a578fa1a894d815ef9f0e9,a6a9dcdd726c8fd9fe1d6da31f17867e536afda3
4349a99b6cab3c02d3349d0b1e20e5cb52506f97,bd00799b5d70bc08297dd9d779ef1d1d97461586,f3902178d27634d1d07551da7bba07082dcdcf3f
2c186e418570ea2038e8ce95a4f4f0046b5cd7ff,3a8a06b81181f2da9cc3eeac30a0be9aa7da61a4,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,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,d9210f4c07eb6e1492cdfa43b6206e57721ec27e
991012f10e37b2ac52e1e7bedd3b93388a903fec,2003506270154938121f250e6324f309b78de9b2,879a40b5c3c0ff75be6aba8fcd306688d630cbb9
ab81ca2034a55dce9fd62e203e08cd0928ec8541,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
9d7df48dc0be925ab23f63ca4b7bc8133a11991e,39d141fe1a0de17969c8f75d2fda67810192f993,177557f39cd36a48cb37f7f019caeeebdc440870
832721f1511474e9466fa63962c3654979755dd3,e495acb7715d932ea2e5a6f1ced2c80a53699097,a2e411704537b13579203fbe81cd5c05442870fe
896f6fac636bd207d9edba022634c2e85a5871bb,81141e894b48c93b16286bdc3ccace77563ae88f,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,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
4623d8e15d9d8c8abea70250b9aff428e9d974cc,0779eb4d3d06a25bf010f896bc42002c81e96c10,f2f727aecd28cee0f2dbdf3051a16f1438ee2649
256855e448beb6762d082981d0b69c51fb8cec5b,8a4a00ecc90dd3070f69bc44b8cfa286f2f4ad55,12b182e2775889a9e5227921a7a98c543e8594e2
20e80cb58ee82aa253b284ac16b2a7b056d6a4b4,f010f2a76ca070c316b3bd9bb77a402b0cb33f73,5f27c95bfc8726df434766a349aac92fbd0abdb2
c71f0a97c82fdad9b5de7d04d66eb22cfe6282f3,c59ff3bfa007ec5c791c5ac97ad814c5f84e6381,da51c1dbb31678e77baa936a6883214537866d5e
1d09bd90ce83f7ea8c9509d6b31bb7b0ed046e39,0a5b2e21c6cc3fcfdd084676e11818737b0360ab,68562a8c932d004d2e634790af163ae1a05880ca
5bc6b342bbfad2ffc449a0dc5b64d936779c886e,0888628c13ea31030025c138303465349ce88e18,07a7fe0ab492da0a97cee17bca8d90e1beeb829c
4c819f49fb0ebfcd50ad9693f0fb49a3aa9304a6,223fee3f10e086a420a80ccfa2eccec6fbd90e07,bf1f7bf1a0cff2c138ae528c1cac5f16aa6fb2d3
1fabd0862d0fa8d2ab94b0798793e4ca75dc7c64,45568f8faeadfcde185c23b890a90eb688a5a37f,1525044ef0b5307a38009e6b9e44adeabf40d75c
eb7c453de65678a2435df47994e8afb66260a101,926ce63b63c714cd3af9ba8b8f540c05abdb1cfc,467d2eb3ba6120bec27ac18a72d265d4338d393a
3538e5a47329392da37d41dee440e0053e4b8602,505525221d4939568c4c2440ac404aff861803d1,887db5bbf319359fef32890fb757643c585bc7fc
ca5532be92c78d817336e3d1ce05ad1744cf88b5,fe05d8268b1e52da6ed9a0df13aa223e4482ac96,8e4afd765b661a4ff1f8e13fa22fe600c37afad6
87b2c89817f4dcb387c97854679e214feadb3c82,18b17994ca08d1ad76b947a1fd071e3fb7ed405e,56e3c76ff61ac6b6ade730c1525a6f2602715eb8
a71bbb3648da33ace80308e9e4b82f1c171ecf18,83bc6a3607b6cd9e2fbbdc0d64c0a33274523268,b547bdf6d80983d7f2a43465986f688e3298bfb1
9bea73ddc8fda2d1adddb1ece04430bba081fb64,72dd5a75ed7cf4f38b84493a8a51efd1386bbe0e,ae2ad24d07b3422e1bd006e1ebfb0a39c9e483bb
c1bc3b5746a778776c10a3fcf73c71c945c1089e,61fde65af89fdf29a7a6fd83b026a21706e19b1f,fff7aafb5bfde3c4afddd1b63cf18e0cb3d679d4
0a8f9f04a52e86348e6c629b68db486b7e4cf7fa,c0b5fa07df0670fd616aa52b7f407ee1cdcf522e,5101fbfdc50e44efa9566705bbb71e5bcbf2b15f
46ae4ad58c8e7b8aef3596b3f65ba95248f3f08f,dd48f532927b2239313879bb7134463a3df750f4,5f04e7dfb901ec8cca1cc80bfed57ee82d7cba86
c3fce0b7e38734ae4aaede6a23a3d912958c77f6,6cd9fc69cc53dcf0db1ee566dba8db0a6c7c932d,54e411e57d80442853dc0c53d21c11601f829f09
3b43359826642c41c787a370fe676029bececff4,ee9470519336bb36d60acc93f4586c766c121fe6,8a4bd264a2d146632af9fedc9f907ab0e6d166ae
60e5befc08af7d02683be9a87c4f6fd82dac7c4c,c020cb3ceedfc2b0189a326643c35ec47e1ab48c,94c8c51ac689e4322e4e7015a0eb77f1b115cbcf
89d123fd75b256b9fa587a992c550dc49ca49d0b,83661909431c0443d3b6f019c5d90964e2ee4342,49fe99af023bc9306a09273fd2633b524aead06f
ec1344208cb52a7dd431fbbb46b133b95ee2ed41,b93a949164f17aa8152cd0e28c3fbc7ef9ac26e2,10336ddadbbd2e3629806b9b935981b7a50bb558
406a5b6ac25e8c113d0d2f530d17ef7c2177bdf3,c5f920a67ff3eb1b3d4ea0b7ef686ac44cd7c6b5,00d27fdcdc8a3b163f69315ff1a9a18f1d89f1df
ce5ad5555fb7482348804e76c169fe81da7be0c2,118936a11dfb4708390c56b7a27623a33ab57f8e,dfac6820480b639184f09996f37007bf63ef3f6f
a1aacdd31b877a800cdf85c8fd5cbff8d35a6427,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,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,963a1a5333504b76bad5f85e5939d4bc8dfdb1de
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,0abd4ce8eaed232e2b635a31213ea4316020dde7
a750e812377dccf83f41a8ccb2e07567a2fcd3d2,ba5b5a14f6a031d7d2f5b740cffe4d2202d8f6f4,633b25e41387ae36130ace7edb489e11c40b7340
a2330be6774990a32d5d24bb22b07f2483be35dd,a18eb242d5234616b1177b58299d04259b42de3f,5ef0700a7eced12aada57d8b5719612628b4d839
cf7c059e01f4ba71e90140e05a8e2c2daf6a83d0,14b2b0de312f6b1ce6f018e312790886b3c1f88f,50dd478cc1f653a5ee52496742f030ebbbf3f76f
d3785814e45ea245a350fdb4e773b725515593a3,288fd6dfa4857b8cb60e07357c5a6a1a210c132f,9325db226568a6f6390b1ad059a9037f4c3d47fe
1d6fbb2d42d28b76e8c2e4ed97c1b680e4eb6347,d2f4761d19762dba3d57a288cf0df84e8bdbcc9b,34d663271babb20ca7a78c17e2f32343afb48b52
520765b3a588c576e13d3c0bb225e0b08392d330,963f7126dc0e13654b2fe14cc6dfc8fb1c6dfdaa,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,9521f1f61fc0c71692ac360593a486065f23d9db,161107db2974fa57a4cfddc1b52c14e4f902d0d3
76dccbfc8ba1a1c076fd2c07b3f3e29be717db31,9253dcbbd942067315538879ee00a023fc201a0e,c96b912c1c9d4ae5639e1cd8e515a5c34ff84b81
3047ca16235f5de3f61cf4e73f6b4cdc77a893c1,a098c08dca2e404e31365340952dfe3f9a0d91ff,401227920119eee56764002e897c3a488b9f384a
bbfe1e95c73d5fc8e8df2ba720d342785fa8bb76,fbfaea7499ffbe07aa1d565af655123aca511d60,390e903b22063a2c2bdb8ed433cced4b212192ed
acae2b0ff8eb492355213972cad1b4f50856d6ae,c34566969a1de0ac087d2e00153f4189a2f21212,ddb0d42b8fe9a2921c7805f58482f485a0534674
272e8a798ea5dc6c42033e5ca68662108d3f83e2,e6c701605309e6453fdb10572e7c5047ff8acbd6,5b7b1d23874d9af3d4262cf111a7b4fc1effe38d
32cc81f9b5baa703002565a39628897c8ffc9da7,794de9ec480f8b98f19f85d07dbf2861a8b33ea7,5eacf58ba94a5f8fb6ac5807d19a0b48d9ac5ff0
05429039239fc23c68086f5c1e447fcd899f92fd,74c30df903f1b6b04f915fb7790653116cd7b3f3,6f9b52f3d20bf8d4dd7bf1a91666922978928878
d134a4ccd27ec86c5e33d360dbf60c724dbacd11,02faec960733d6aab18cc0bac2e04ff80ba7e9a2,784d831cd40b967d79c12b6cde305594db7d0e81
7a225486bcc98b9ee69ee9b542853d3ead8a82b6,11d75a8b276c0042ebe059a28d047cb041456fea,d7faf5b1b6d13d84a50e80be43bc850dbf10ae75
7a76e3ffb54d8edc0e04fa36ccd212e652c1293c,6457f7f0a607a4bc51bfa453b39c11ac72ffa4ad,975105202c8be60c30851ce37ceffc2ab50c8aa8
f4c13cbe9b27b3e85dcb9d04e2108451ae8f19e8,046ccb517fef094ff839b67d97483b860d6f0fb1,0a142bef364462fac14ba38061b3ee3f0c4bd06e
043d25b2219e0a14cb31a452cc84af9e29c3689b,a6c342346ec1ec32fa5b41e555b3efcd020c086f,fd255bb4e1a5828365fe95fe9eeaf2fbf5aacc67
2881a326b89d570a9957ce25106bf269af39953b,a73ed10a6d94c3cd1f4c0e25a06aad051d170b88,a5599ddcf25a76679a693ee00195e33316f9c661
a42776edafd1d70bf5cfa427f224dd216c8597ed,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,8baaf094531f7107b890713f14e11c86ef049970
b73420f8ff753ae58125832648b25871d473a191,d9f24774931caa9d150caf203dde336041598eb2,306f3f4b6d46c2d1cd26ff3a492c953086012734
705c90c91a5ad7e0a9dfa7a49df6b7f2bab4c78d,ec52637d69dd9d156e920e94d9771ea4c7fe39d3,f5b9b2174c9492535ef3498928dd96775bb542e0
5348f83166287c68731f03d4c5a6b9675427a114,cd74bb447848c9d63429b3d8a4369732343ed4d6,fa51767875e16b9ab7ae8f37c8817bcb90452fae
a673f5bf034b068c0968323937d41bc9774d57fc,446e6249f5d93f2783083a42ca7c402ec76714cd,002331ff781b324319c91ced2a774a3c2dc60f8f
ad0cc76ae260998242ca0b68d618f4897858a3f8,5fb90502d4684ad2a1d21c9db177cc994ee20e4c,0b2c4df4d96b7ed1fe9d5abbc59c7804bd74f05f
5e259b5e61709068ff4f29240f65dfe31e5223fb,788a1f2d64b8e1181fcc82ad08c2b07969aacf0a,6cbed05f6bd5b7d325d3fc827d256e4565207aef
71bbf6afd65f888f0079767967d4859e6519c86c,427724e6542bfc4f50cf50d8ecd422829a69d787,45087d969b4cd796574967f695cd97ab840845f0
a5f8d7fe624e476b94f9fad88d63fcadc364aaa3,0309e3f521f6025d14f45fa4396d87a63b2d93c3,94ac74fb243fadea50f2500d8d14fa563b1db02d
f6e75168dc33ded05b65b43c048dc0ff5aef77b5,56fb42265b095026283237e4f17d39c02bf04a09,816b4667b9408d824ea285eacb4d80f8a161c1a5
9f358369bd1a6a422640bb0f3aa9b593d8e71fb7,9144ca292d88f47e0e2c9ac736e21527e15f0564,25312ba10ee91394555afa864d711ceb20c4ec21
0fea6714767c47ecf190715931bf0385dc0a3700,085e8cac27f9f8634f9d1ea03729f8b9e77e715f,ff32a7f08315cb4b6a97ec8338e8a169e9c8299a
53741e7f20ec5b1459896de2886024d388ae4128,0d76f2fb7fa92e0a62641da8dcf2b4d418c97d5b,730d2968679e6489caca79d4282b19b1edc2af00
8e4853dba8115e85fd1e57d000eddf6ffef29030,2b354c8f2027b6f831fb17514b2c93b897e3b4d0,fab9306b34a7065c229e72daecbd23a742383079
5185af18291e62ffae3b15b6b72866afeef83206,796a5a33a8ec14ded2117df176139075eb5d3ed4,02595c0b7d167ca7a0e34c42e36f7d97de40de02
e335d582fff7d0558e9440e62785b75e6264fdf0,f50bddc44df57ccb6d97af5e7fa77fe6883ee792,ad8a57f92079cca7fc4f1c031539253d4e47e887
5129d584ec6122153ee2cdfff4fbf6fdc1759e22,e604288791e35aa4bd931ab5b7547959dd48f16f,fcdc474f160f3d41592d0bbbadb3a7f335123147
4428d53db18cc761fcfd641605e67b45b374051d,8a9f1af9ffc49e8984a6014a183dbefa381e81f6,16ead61f11f27f936be3f793eca88a8a37bd58ae
5f4d3963154f72434e067b0dc7537a2a229d7614,25d18a56b13a2ae1a2760ade7c5960847811f622,6cb7014c397672cc0e1a6f9e49f2984574271550
1484de032963cd03449cc5b762f50da34b917c0b,171b48a1071044ebcc5f6353280f4f4f6bad3907,402bbc829c5fd16b9a8c211796eba4328562a16f
e987a78371986ca4618174a257e7c2fd97efbe5e,36243d4efdb744352a40b6d03dfa880c7ea5924d,46766671a3fdbfafca28d1b108886a6c3199e749
5d6992dae3ce5f00f49df66acc74ec21b1241092,02fa54b931e7d3a2366251484ff65250caec8874,1b8d4f0b59d23c0483f08b09e0b0b6bd202053c0
3ed4f45ab04ed09033d0a191734023b0bf98751e,1e25e648d2103608730d2f26bd1177305a6ff8ae,c940a01ec87f19346fdc5bb62a265e4a3a3f2ae7
a4c468fd2652679209f96e611a88cc764009f395,7df00b2b4ea025d3a39244bcbfbbbd3a1f9a37df,642a284ee6a0e2b8f116194cec7c2c81ba4a933d
291d37f9d19ca32117b849b8e68913cbe95b19c8,31313373bfae2fadcefe41f3c937352819f79ae0,5a1434bc053d07417cb01b20807d931d80e7c278
2ba909c6f77c78167a060ac1d710b90da935a865,0dad7ee90d844f8c4f3db21cb14dac789fbbd347,25815fd946e419843064d56198be15f29b87a77d
8708b61fe2905265f710450d78573622e4c5b523,60369758cbe591e1c40f4d9ecbe00b973c0c9fd8,345cb360132cf050a997bc87865c8022067a2950
938135c876ae5511ed27a50dda312d9c052597cb,aff1a9c76967dd8e35ac6fbb4e25c5052b76aa49,33beccdac53a08198007bcd19014ee4d26ba1093
82d7ad2cee8a50aab4da743888af8baa08e53de3,aced56ce35d7edb845620e9c6cffde08aec07ccc,c1ea5553759cc15f1dd2d943aee4553a8dca124c
62545dc51ba888098eea9b1f1221cdebd4f9f1f1,21cf224a5870d8d0afd6fa7ea076cada286a3ef3,64a953cf405e3af1f0a32829e434e435d8763d04
e5d5dbd2885181d88ba1568ca968e3eb8926a97c,8859960c03e0ce7a8d41e479bd04da705a659635,3f9ea418a294b249613e3e585f36dd398316bfa9
f6f61de7cf9a179cdbc4064b30a5729fe291d840,ef86089d1a04edee0ca01adb840d3e76fc4e18e8,645be6c8072623c3ba01538e8a1ee003928dde42
b2a65fd46fb6d82b148b47bfd17f764a71538a1d,6f6260fd5fbb0c3466ba8b22821dcd10c2f997de,98e23f7d3c289e1c11b79172cbb260d6219a9071
4a06a31b1b50b8f5449b7522d9832feae1689dff,69f5bcffd3710d64339ccf22060aab74d198d9cb,baeab1605dd03bf13089f7f3ceb31764e77dfd1f
63691892f861f1ba3bd4b84b9606e8c49cf419b2,ba1d208293e119e731e94bf5cee9e970859bf41f,efc59fce191fc2376fb8c6ad3f59ce21764d829c
0ad58246cf687a9516be70f3435ae1542d0e1f5c,a438250f8c116d464c6a59e7ec7a3a4ffe3a2552,6db551c97da833221163ab5d7ce960c509f4e657
a99f92b44c8bb9a9e3cf9c7813d2f1de691fb363,a5105bfe67a317278a6dcf7aa6eafc48c6079a59,6210adb482d6f56cf7032b5c6229046bf291896a
eb7f5996c70fcd0085714a412f4d75d95c0e4067,bc94d466c95e622aa8cf0b722d2637b64453ef59,429c16b79b29ba6a5faddf3ac3954975dc8cd2dc
3bff5091a8c371cb2625edcc734427ea2a4c7baf,fbd7ff24c9b32924314bf6efa4a1bfe748ab93d5,c79068420141f42bca7458822b8b35d3b3a78eac
c94c8753ec11894e47218b9d4f9f8a12c7087429,fe7c8ac1b50aec9a4ef2a55357696c0a03443510,11e5ad1fcc94b485a015ce75eb24ee6b657a4190
527153851f597be582f2652b63233d315af077e1,923e43969a6f16b1729a95d73084133ca656faa8,82197d8f98e073779c633fc7ef5b9592bb93016b
20e18660ec817dab647c2522822f79559eb40716,e9ec4d95c38285045358019ad5bb94d3c1950809,c6e1cb8a73842fd7f10bc239d017bba80a7fec5e
dbdf06af9503e2f685386da378409ae7378cd70f,9fb5dd32ae24aa9e9274790cc62b5a9d0a103bab,f85deaa5a1787100147b81e1dafd3d9ef6aa11f6
34a27540d721a5d3bb693b294e59a21086752b84,f323f2f8ec6ec1a966072a8dcd2c0144cf95f87c,7527b89b823451ec0949ffa99e2f340499fa399e
92d80da856bc20032e16c5a43d0617d7eeabaafc,76e72ab4a1c7a044ee3b412e4528b0fb8e996038,11daada3c4222e16d02e0fbf3a8180bb3a81c9ac
2f24bcccc9237a6dbcae9e5714f8341fd26b436f,a1cefd5b9c5572b521f13314d961174509355377,6527a29b7bd4be1198adf89a1926e72b7f5cd231
fec7cd9bd08caf9428eec496b664c0ab8eb8b9a5,1b6d94ab1c56b12a4e1e212f91ac4731c1d9ff52,08b1953d8d4284b9ac10bfa80d53a64138ca94b2
387f0d007953d66a05cd8ded93cb953e73654f11,396d1e0be7510161af6e10db68546ede7e8e9ffa,2577d3f59e2e9c92558591b64e106edea5b4c5b0
77a2c21ffe5911478ba385bc00829573931fba1d,3e8323c735236341a50a036f88d5257d3fefa01e,9251f5aca196bbad4d1b67c0f9afc26734204165
46764a3bbc54e29ac1a2ee3b0a50b19d1735c7d7,de57c783dd63049a37d19aac3d966f6f2dc80e0d,4614c0be76fb8289ebb29752dac35ef35139542a
e1e32858a6dd2f22ee26df6a61c5a3f3de22fe39,89f45783cd772227cd9821d6876ab369bc61f5a1,34cad14422973ed06622830f32090945cc7ec10d
00503fdb46f195a795dcc9a62781d7b2913dedec,ef8eff0ef157f84eb7d52e60d7e1cf45c3a01551,53d5da34f9d04ad3ffabba5068678ae7c532de7e
4b33ed3413544610e01ec03a8a1bd079d8650b80,6992ac9079305657152e47c04854cf10d1a224c7,89479027407268826d84d27bfbf37144fa0adbb5
be6ad443e4d4acfa21a9fba74ff00c0898ae0b1f,78b370b9327a6d429581d6b480aeb226ccf0f33e,af538477546984d50edb9b88eb5f1daa6e8f1a9a
1af7d660936ef4e5edceaec7f71ca75e676d0661,71a2c8b3142c6f4913a7f4b8422bfe8cae0a1902,9212f87742931f898d0b60ec278921230aa8adf4
99e2d073f7a0d9b5909f464210914122d866836b,a4e1d1326be4b3ba9165af57325031d4f48fb4c3,9598d91f5f46f52113561d83ade2bd1ad93c0e80
b81a56518ce95f7a9153e78f1cd865cb89c0f3ad,588e623fb2d4f87b9ad504a4cac7e1518420c247,557e41d972588e47b8429fea4d0418517cd1b5a1
8850e777d45bc52325eeaea1b619e420ec487577,206581ee8bb9cf4f7f91d9420b971b29dd381b57,cc3d8abfcc1f6d7bc21ceebe6956fcdfecc7915d
9b2d51bd83230efae1520e540d91a366af537690,f3d60f50f89bf0fb5b63bbe8a1fde712a5db5f5d,4bcce6fa6c22811a6c4c30a500e8a3b5559d549e
70b667fe221bf38201e9777267318bcb28d3e3ab,19f3d093cb2117e603a6573e7f3cc46319f4754a,df3f73938e3868154b3e8c95f99e8c455ed34a4d
5fa05eced594c6a3c0cb4e5d71eac34da3b93cd3,1a16115d1397b125387313542475132e0f8c95f1,d3994d9d4fc2052be294620ac754455157b5f375
64aac9a816afef20039ceb5bf81c935fe6c5b735,f05b0075b170d337f5fba4a81cf06070adde1f0e,a88d828c256d366558be11662c815295d8f422a2
9945e63dd65cd6b5629c606ad57e8cb5f1fa3211,72122c5b05ae1edd3146f9afb71a31f4d464dcb4,403f092fb103ae0cd45411f053585125ed60e6c8
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 libxml
* Dotted filenames for package os2units
* Dotted filenames for package gstreamer
* Dotted filenames for package iconvenc
* Dotted filenames for package bfd
* Dotted filenames for package libgc
* Dotted filenames for package opengles
* Dotted filenames for package fpgtk
* Dotted filenames for package ptc
* Dotted filenames for package cairo
* Dotted filenames for package opencl
* Dotted filenames for package odbc
* Dotted filenames for package libndsfpc
* Dotted filenames for package libffi
* Dotted filenames for package imlib
* Dotted filenames for package pxlib
* Dotted filenames for package libcurl
* Dotted filenames for package cocoaint
* Dotted filenames for package mysql
* Dotted filenames for package bzip2
* Dotted filenames for package libfontconfig
* Dotted filenames for package unzip
* Dotted filenames for package newt
* Dotted filenames for package gdbm
* Dotted filenames for package symbolic
* Dotted filenames for package ncurses
* Dotted filenames for package users
* Dotted filenames for package dblib
* Dotted filenames for package httpd13
* Dotted filenames for package sndfile
* Dotted filenames for package tcl
* Dotted filenames for package zorba
* Dotted filenames for package libenet
* Dotted filenames for package ggi
* Dotted filenames for package graph
* Dotted filenames for package gnutls
* Dotted filenames for package oracle
* Dotted filenames for package libgbafpc
* Dotted filenames for package numlib
* Dotted filenames for package gtk2
* Dotted filenames for package libpng
* Dotted filenames for package winceunits
* Dotted filenames for package dbus
* Dotted filenames for package syslog
* Dotted filenames for package cdrom
* Dotted filenames for package libogcfpc
* Dotted filenames for package fcl-sound
* Dotted filenames for package ldap
* Dotted filenames for package a52
* Dotted filenames for package libcups
* Dotted filenames for package imagemagick
* Dotted filenames for package proj4
* Dotted filenames for package hermes
* Dotted filenames for package fastcgi
* Dotted filenames for package fftw
* Dotted filenames for package dts
* Dotted filenames for package rexx
* Dotted filenames for package objcrtl
* Dotted filenames for package libmagic
* Dotted filenames for package libusb
* Dotted filenames for package unixutil
* Dotted filenames for package odata
* Dotted filenames for package httpd22
* Dotted filenames for package pthreads
* Dotted filenames for package jni
* Dotted filenames for package libnettle
* Dotted filenames for package libc
* Dotted filenames for package xforms
* Dotted filenames for package mad
* Dotted filenames for package pcap
* Dotted filenames for package gnome1
* Dotted filenames for package postgres
* Dotted filenames for package oggvorbis
* Dotted filenames for package winunits-jedi
* Dotted filenames for package fcl-async
* Dotted filenames for package matroska
* Dotted filenames for package gtk1
* Dotted filenames for package libsee
* Dotted filenames for package httpd24
* Dotted filenames for package libgd
* Dotted filenames for package libmicrohttpd
* Dotted filenames for package utmp
* Dotted filenames for package tplylib
* Dotted filenames for package gdbint
* Dotted filenames for package libvlc
* Dotted filenames for package gmp
* Dotted filenames for package librsvg
* Dotted filenames for package lua
* Dotted filenames for package modplug
* Dotted filenames for package nvapi
* Dotted filenames for package svgalib
* Dotted filenames for package openal
* Dotted filenames for package ibase
* Dotted filenames for package rtl-unicode
* Dotted filenames for package ami-extra
* Dotted filenames for package aspell
* Dotted filenames for package httpd20
* Dotted filenames for package zlib
* Dotted filenames for package sdl
* Dotted filenames for package chm
* Dotted filenames for package iosxlocale
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
* integrate page offset into reference if possible
+ 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
Reinstate FV standart FileDialog user interface layout.
* 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.
* use cdynset unit for set constants
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
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
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.
* 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
+ 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.
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
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).
* Allow to write default config in fpsonar
* Clarify difference between suppression and disabling a rule
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
+ 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: 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: fix the index of the first PMGL chunk in the directory header
chm: accept quoted file names in #include in [ALIAS] and [MAP]
Microsoft HHC does accept such include.
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: reset the script and style state for each indexed file
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
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
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
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
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.
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
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: per-IFD sample range, orientation, errors
* fcl-image: gray conversion and SetSize fixes
* 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: JPEGError raises through RaiseJPEGError
* fcl-image: CreateWebSafePalette fills every entry
* fcl-image: own palette copy, color search fixes
* 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: octree depth, progress and empty images
* 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: new RaiseJPEGError
* fcl-image: rewrite blurs on real and 64-bit sums
* fcl-image: pHYs, Paeth, IHDR checks and InternalSize
* fcl-image: fix conversions between colour spaces
* 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: SetColor clips against DeviceClipRect
* fcl-image: TRectF conversion uses Y resolution
* fcl-image: pen modes via DrawPenPixel, hatch fill
* fcl-image: AlphaBlend returns non-premultiplied colour
* fcl-image: decode directly from the input stream
* 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/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: Insert frees or reuses existing entry data
* fcl-image:register writer as 'GIF Graphics'
* fcl-image: GetBits calls QRgetModule, assert removed
* fcl-image: validated header, per-mode pixel decoding
* fcl-image: Strict text parsing, 16-bit raw samples
* fcl-image: 15/16-bit colour, full alpha, bounds
* fcl-image: text formats, gray and colour-depth guess
* fcl-image: layouts, palette, indexed pixels, progress
* fcl-image: valid C header, None for any transparent
* fcl-image: OS/2 headers, V4/V5 masks, alpha, RLE
* fcl-image: X11 colour names, full color key parsing
* fcl-image: new SwapPCXHeader
* fcl-image: decoder rewritten, header validated
* fcl-image: raise on unknown type, Integer sizes
* fcl-image: orientation mapping, sort, cleanup
* fcl-image: Fix zero-based code 128 A/B table lookups (was 1 based, past end of table)
* fcl-image: rewrite the QOI encoder
* fcl-image: RLE, even line length, resolution units
* 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: 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: rewrite pixel decoding and validation
* fcl-image: V5 header for alpha, resolution units
* fcl-image:new table of X11 colour names
* 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.
* 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.
Show assembler instruction mnemonics in color of reserved words on x86_64 target.
* 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
* 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.
* Fixed issues where division and modulus with Currency operands get scaling incorrect
* 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
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
WASM: fix checked multiplication and unsigned addition
* fix of wrong type of two attributes in TDIVE_CAPS
* 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
openssl: add smartsslsockets, which picks bundled OpenSSL or the system TLS
On Windows and macOS, using smartsslsockets selects OpenSSL if its
libraries load from the application directory, and otherwise the system
TLS: Schannel on Windows, Network.framework on macOS. On other systems it
is the same as using opensslsockets. Existing units are unchanged.
Co-Authored-By: Claude Opus 5.5
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).
PS1: change textureInfo type
padding added
PS1: Setup PCSX-Redux heap viewer
PS1: Advanced MemAlloc Functions
procedure GetMemFrom(var FromHere: Pointer; var P: Pointer; Size: PtrUInt);
function GetNextFreeAddress(Size: PtrUInt): Pointer;
function GetAddressAfterBlock(P: Pointer): Pointer;
* Fix TDirectory.Delete on non-existing dir. Fixes issue
gitlab 0041911
* Fix treatment of empty JSON
FileList: first mouse click "re-focus" already focused item.
PS1: Detect PCSX-Redux Emulator correctly
Fix WildCard assignment in a file dialog initialization.
History window adapt to resize of terminal.
Espressifs controllers do not support the xtensa data cache ISA option
Espressif binutils do not support endian flag
PS1: Link PSY-Q-SDK the right way
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
fcl-css: TCSSResolverParser.GetValueAsString url element with quotes
PS1: Correct linker behavier
Delphi-compatible TFormatSettings.Invariant
TRttiType.GetProperties: list all properties - also inherited
TRttiType.GetProperties: list all properties - add test
implement TRttiType.GetPropertiesInDeclOrder
TRttiType.GetPropertiesInDeclOrder - test
Bug fix for compilation with -CE option (arm, aarch64, riscv32 and riscv64)
compiler/cgobj.pas:
+ Add extra parameter to g_check_for_fpu_exception method called
preserve_flags used to store and reload the flags
when floating compare sets result location to LOC_FLAGS.
+ Add maybe_check_for_fpu_compare_exception method.
compiler/aarch64/cgcpu.pas:
compiler/arm/cgcpu.pas:
Adapt to extra g_check_for_fpu_exception parameter,
by store/reload of flags into a register.
compiler/riscv/cgcpu.pas:
Adapt to extra g_check_for_fpu_exception parameter,
no code generation change as floating point compare
location already is in a register in that case.
compiler/aarch64/ncpuadd.pas:
compiler/arm/narmadd.pas:
compiler/riscv/nrvadd.pas:
Call maybe_check_for_fpu_compare_exception
instead of maybe_check_for_fpu_exception
inside second_cmpfloat methods.
* Remove hardcoded dependency on TJSONParser, move it to program instead where applicable
* div/mod by 1 now works properly for Currency divisors
* Fix loading of dynamically linked program with suid/sgid set. Fixes issue
gitlab 0017806
+ added a WASI global var (threadvar, when threading is enabled) __fpc_wasm_LastOSError
+ added private helper function MaybeUpdateLastOSError to the WASI system unit
* Use 32-bit versions of some gid/uid/chown routines
+ WASI: call MaybeUpdateLastOSError with the result of all file and dir API calls
+ added GetLastOSError to WASI sysutils
* __fpc_wasm_LastOSError renamed __fpc_wasi_LastOSError
+ WASI: call MaybeUpdateLastOSError with the result of most WASI API calls
+ added errno description strings in unit wasiapi
+ implemented SysUtils.SysErrorMessage with proper error messages for the WASI platform
* WASI SysUtils, function FileGetSymLinkTarget: use SysErrorMessage (which is now implemented) to form the message of the EDirectoryNotFoundException
* Allow to read/write Delphi-compatible binary streams. Fixes issue
gitlab 0029654
* TThread: Wrong order of calls in ThreadFunc (special case of freeing thread in OnTerminate. Fixes issue
gitlab 0032759
* Fix endianness differences between platforms in resolver. Fixes issue
gitlab 0034531
* Fix memory leak (RE needs to be freed)
WASM: compute checked 32-bit products once, guard unsigned carry check
Perform checked 32-bit multiplication once at 64 bits and test whether
the product equals its extended low half. Raise an internal error if the
unsigned carry check is reached for anything but OP_ADD. The overflow
test is not WebAssembly-specific, so rename it to toverflow2.pp.
Update revision to '2026-01-01 hash 6a6275f51f'
* Test for big file opening
fcl-css: resolver: store order of attribute
* Additional fixes in WrapText
fcl-css: resolver: store order of attribute
tests: ppu: added test for touching lfm resource
tests: ppu: disabled as ToDo: test for touching lfm resource
* Fixes in BCD arithmetic
* Fix explicit and implicit conversion of custom variants to simple types. Fixes issue
gitlab 0039815
Fix host endianness of cross compilers built on FreeBSD/powerpc64le
system_powerpc64_freebsd_info only gets endian_little when POWERPC64 is
defined. That is the code generator define, so it is only set while
building the native powerpc64 compiler. A cross compiler built on a
FreeBSD/powerpc64le host (ppcrosswasm32 for example) ends up with
source_info.endian = endian_big, assumes it is cross-endian, switches to
the external assembler and fails with "Assembler llvm-mc not found".
Test the host CPU define CPUPOWERPC64 instead, like the Linux target
info does.
* Fix offset in GetLineInfo. Use GetLineInfoReturnAddress to get back old behaviour. Fixes issue
gitlab 0040471
* Handle some UTF8 calls with system unit routines instead of relying on cwstring. Maybe fixes issue
gitlab 0040588
* Fix lookup cache for line info
* Correct TMBCSEncoding handling of wrong chacters. Fixes issue
gitlab 0041804
* Make val() results more uniform across string types. Fixes issue
gitlab 0041981
fcl-css: fixed SkipBrackets
* C operators improvements
* Correctly Initialize stdio in threads (external thread). Fixes issue
gitlab 0034163
Use MSR instead of FMXR instuction to restore flags, hopefully fixes
gitlab 0041998
* Do not use new val() functions on ms-dos, blows up exe size
* fix serReadTimeout when serial device disconnects. Fixes issue
gitlab 0036566
* Added SortRange() to generic list TFPSList. Fixes issue
gitlab 0036802
Explicitly disable range andoverflow checks to avoid false failures
Disable range check explicitly for rtti25.pp test
Disable range and overflow check as the test uses uninitialized result value on purpose
Avoid range check error inside stackfill helper procedure
* Add TCountDownEvent for Delphi compatibility. Fixes issue
gitlab 0037495
* Generics & operator fixes
+ CMP/Jcc/MOV -> MOV/CMP/Jcc assembler optimization
* Some array type compatibiliy changes
* Extend dynamic loading manager to convert address to symbol name, use it to improve debug info stacktraces. Fixes issue
gitlab 0038739
Fix issue
gitlab 0042005
Use proposed patch and add proposed test
as tests/webtbs/tw42005.pp
* x86: factor out the operand read/write checks of the instruction change flags
* Add some Delphi compatibility methods to TArrayHelper. Fixes issue
gitlab 0040512
* Only linux has serial unit
* Add FreeValues for Delphi compatibility
* Add some overloads to dateutils Inc* functions. Fixes issue
gitlab 0040616
* Small refactoring of GetDelimitedText. Fixes issue 41078
* Read debug info from default locations, handle debug-id. Fixes issue
gitlab 0041396
* Fix comma-separated directives, add corrections in IFOPT
Also fix fixup_jmps method for mips CPU
Run test/cg/tfixupjmps1.pp for mips CPU family
Fix PowerPC fixup_jmps confusing labels of different types
fixup_jmps keeps the label positions in a list indexed by labelnr, but
label numbers are only unique per label type (FNextLabelNr is an array
over TAsmLabelType), so e.g. the jump label .Lj2 and the CFI label .Lc2
share a slot. The second pass updates the slot of every label it walks
past. When a label with the same number as the target of a forward
branch comes before the branch, the branch is measured against that
label instead of its target and is not fixed.
The CFI labels at the procedure entry are enough to trigger this for the
conditional branch after fpc_setjmp, which jumps over the whole body to
the implicit finally handler. Once the procedure has more than 32 KiB of
code, the bc displacement does not fit and assembling fails with
Error: operand out of range (0x9060 is not between
0xffffffffffff8000 and 0x7ffc)
at any optimization level. This was hit by the cqrlog ham radio logger,
whose TfrmPreferences.btnOKClick makes more than 400 calls with an
AnsiString temporary.
Branch targets are always jump labels (code generator labels, Pascal
labels and local labels in assembler blocks are all created with
getjumplabel or getglobaljumplabel), so only record jump labels and only
check branches to jump labels, as suggested by Pierre Muller. While
here, grow the list with >= in the second pass too, like in the first
one.
Avoid compile time error in TFPgtkWindow.GetAccelGroups
* Allow expressions in range definitions
List all differences in test tw7756
Fix test for big endian CPUs
* Allow to use recommended config dir in Darwin, but keep backwards compatibility by default. Fixes issue
gitlab 0020706
* fix fpu sizes in topsize2memsize
* Allow to make findfirst/next case insensitive. Fixes issue
gitlab 0027018
* Add locale-string-based constructor for formatsettings. Fixes issue
gitlab 0030987
* Fix signature of callback
* Make RTLEventWaitFor a function with boolean result. Fixes issue
gitlab 0034284
* fix wrong type declaration discovered by Gert Renkema
Simplify BackTraceHexStr.
* fcl-web shall be built also for targets os2 and emx, a.o. due to googleapi depending on fcl-web
* Fix function parameters overload misdetection
+ added {%skiptarget=$nothread } to test tchecksyncbound.pp
+ added {%skiptarget=$nothread } to test tfreeinonterminate.pp
+ added {%skiptarget=$nothread } to test tthreadfinished.pp
+ enabled compilation of unit real48util for the WASI target
+ enabled compilation of unit ucomplex for the WASI target
* reenabled compilation of unit ucomplex for the WASI target (previous commit actually disabled it by mistake)
* trying to make test more robust so it does not fail that easily under heavy load, i.e. when testing with -j
* avoid GOT access if possible
Fixed out of bounds access custom background for TexmodeIDE.
* Reformatting for readability
fpmkunit: store file time stamps in Int64
Since
gitlab 0001302bc47d, FileAge and FileGetDate return Int64, but TBuildEngine
still stored their results in 32-bit variables, so on 64-bit Unix every
time stamp after 2038-01-19 wrapped to a negative value:
- FileNewer considered a freshly compiled unit older than its source,
so "fpmake install" recompiled everything.
- SysCopyFile gave every installed file a 1906 mtime.
Related to issue
gitlab 0040552
This was found while working on reproducible builds for openSUSE
by building at a simulated date in 2042 (https://reproducible-builds.org/).
* x86: improve genlinearlist
* Fix array helper issue after adding methods. Fixes issue
gitlab 0042019
Move trtti27 and trtti28 tests from compiler to rtl-objpas
tests.rtti.value: fix failure on non-US systems. Use TFormatSettings.Invariant instead of DefaultFormatSettings
Avoid calling GetEnvironmentVariable with empty string, as it generates SIGSEGV on Linux RTL compiled using libc
Avoid linker error multiple definition of FPC_THREADVAR_RELOCATE for RTL compiled with libc for powerpc/powerpc64 CPUs
Set unit_env to LINUXUNITS for all Linux systems
Set unit_env to AIXUNITS for all AIX systems
Use same value BSDUNITS for unit_env field all BSD systems
Set unit_env field for all systems except embedded systems
Fix compilation of tdwarfmalformed.pp on 32-bit systems
Fix compilation of classes unit when FPC_DOUBLE_HILO_SWAPPED macro is defined
Limit tclone1.pp to i386, x86_64 and aarch64, the olny three PUS for which clone function is implemented
* improve genlinearlist:
- unnecessary jumps removed
- more compact code
Fix compilation of BackTraceHexStr function for win16 target OS
Fix compilation of sysutils unit for win16 target OS