OberonCore https://forum.oberoncore.ru/ |
|
Введение в блок кучи дополнительных полей https://forum.oberoncore.ru/viewtopic.php?f=2&t=5945 |
Страница 1 из 1 |
Автор: | Илья Ермаков [ Воскресенье, 06 Ноябрь, 2016 00:03 ] |
Заголовок сообщения: | Введение в блок кучи дополнительных полей |
Как известно, для каждого динамического объекта (записи или массива) в куче выделяется блок, имеющий структуру Kernel.Block (не экспортирована). При этом реально указатель указывает на ADR(block)+4, т.е. тег оказывается по смещению -4 от адреса указателя. При модификации управления может понадобиться ввести в структуру блока дополнительное поле/поля. Таким образом, получается, что смещение указателя относительно начала блока уже не +4, а +N байт. Однако это смещение захардкордено во многих местах ядра, без введения какой-либо константы. (Увы, это касается и констант, характерных для 32битности, и кое-чего ещё....). Публикую требуемые исправления (переход к единой константе). Предлагаю внести их в ядра сборок, чтобы заинтересованные в изменениях управления памятью люди уже не мучались. Также в паре мест при увеличении размера блока используется "магический литерал" + 19 (а затем DIV 16 * 16). Я не понял с ходу, что это (ниже будет видно в коде). Эту константу я тоже вынес, как const19, и увеличиваю её на разницу между новой длиной заголовка блока и 4. Итак, для стандартного Block blockDataOffs = 4. Если вы вводите в Block в начале (до tag) какие-то поля, то увеличиваете эту константу на их размер. Код: CONST blockDataOffs = 4; const19 = 19 + blockDataOffs - 4; Код: PROCEDURE Mark (this: Block); .... IF (flag >= 2) & (actual < this.last) & (offset < -blockDataOffs) THEN (* next array element *) .... S.GET(actual + offset, son); IF son # NIL THEN DEC(S.VAL(INTEGER, son), blockDataOffs); ... Код: PROCEDURE MarkGlobals; ... IF p # 0 THEN Mark(S.VAL(Block, p - blockDataOffs)) END Далее, процедура Next. При модифицированном блоке либо модернизировать вариант в машкодах (позиция поля tag-то уже не та), либо перейти на высокоуровневую процедуру (раскомментировать её и закомментировать маш. код). Тут же встречается магическая константа 19: Код: PROCEDURE Next (b: Block): Block; (* next block in same cluster *) VAR size: INTEGER; BEGIN S.GET(S.VAL(INTEGER, b.tag) DIV 4 * 4, size); IF ODD(S.VAL(INTEGER, b.tag) DIV 2) THEN INC(size, b.last - S.ADR(b.last)) END; RETURN S.VAL(Block, S.VAL(INTEGER, b) + (size + const19) DIV 16 * 16) END Next; Код: PROCEDURE Insert (blk: FreeBlock; size: INTEGER); (* insert block in free list *) VAR i: INTEGER; BEGIN blk.size := size - blockDataOffs; blk.tag := S.VAL(Type, S.ADR(blk.size)); .. Код: PROCEDURE OldBlock (size: INTEGER): FreeBlock; (* ... s := size - blockDataOffs; Код: PROCEDURE LastBlock (limit: INTEGER): FreeBlock; (* size MOD 16 = 0 *) ..... s := limit - blockDataOffs; В NewBlock снова встречается магическое 19: Код: PROCEDURE NewBlock (size: INTEGER): Block; VAR tsize, a, s: INTEGER; b: FreeBlock; new, c: Cluster; r: Reducer; BEGIN ASSERT(size >= 0, 20); IF size > MAX(INTEGER) - const19 THEN RETURN NIL END; (* Этого не было до release 1.6 *) tsize := (size + const19) DIV 16 * 16; .... IF b = NIL THEN IF dllMem THEN .... b.size := (new.size - 12) DIV 16 * 16 - blockDataOffs ..... ELSE .... b.size := (root.size - a + b.size + 4) DIV 16 * 16 - blockDataOffs ELSE b := S.VAL(FreeBlock, S.VAL(INTEGER, root) + a); b.size := (root.size - a) DIV 16 * 16 - blockDataOffs END END; END; (* b # NIL *) a := b.size + blockDataOffs - tsize; Код: PROCEDURE Init;
.... free[i].size := (root.size - 12) DIV 16 * 16 - blockDataOffs; |
Автор: | Илья Ермаков [ Воскресенье, 06 Ноябрь, 2016 00:17 ] |
Заголовок сообщения: | Re: Введение в блок кучи дополнительных полей |
Остальным модулям среды (в том числе каким-нибудь отладочным) наплевать на любые изменения заголовка блока. Не наплевать только тем, кто пытается обходить кучу именно по кластерам. Всем, кому надо знать это смещение, экспортируем переменную в Kernel. Переменную, во-первых, чтобы не возникало зависимостей времени компиляции от константы, во-вторых, чтобы заинтересованные модули могли работать с любым ядром (добывая это значение через Meta, при наличии переменной в Kernel, и принимая его за 4, если переменная не существует. Код: VAR ... heapBlockOffs-: INTEGER; ... В инициализации модуля: BEGIN heapBlockOffs := blockDataOffs; ... А из всех модулей ББ влияет это только DevHeapSpy. При этом он воспроизводит у себя структуру Block. Если в DevHeapSpy Block не меняется (а его и не нужно менять), то при взятии первого блока кластера смещаемся на heapBlockOffs - 4 (т.е. становимся на старую часть блока), и потом прыгаем от блока к блоку по heapBlockOffs. Ниже - изменения DevHeapSpy, работающего как со стандартным ядром, так и с ядром, экспортировавшим heapBlockOffs. Предлагаю также внести изменения в сборки. Код: IMPORT .... Meta; VAR .... heapBlockOffs, const19: INTEGER; PROCEDURE GetHeapBlockOffs; VAR it: Meta.Item; BEGIN heapBlockOffs := 4; Meta.LookupPath("Kernel.heapBlockOffs", it); IF it.Valid() & (it.obj = Meta.varObj) & (it.typ = Meta.intTyp) THEN heapBlockOffs := it.IntVal() END; const19 := 19 + heapBlockOffs - 4 END GetHeapBlockOffs; В Init модуля вызываем GetHeapBlockOffs. Ниже - закодированный модуль с изменениями (изменения - синим). Код: StdCoder.Decode ..,, ..Nt3...3Qw7uP5PRPPNR9Rbf9b8R79FTvMf1GomCrlAy2xhX,Cb2x
hXhC6FU1xhiZiVBhihgmRiioedhgrZcZRiXFfaqmSrtuGfa4700zdGrr8rmCLLCJuyKtYcZRiX 7.2.s,crv00k,5TWyql.bnayKmKKqGomC5XzET1.PuP.MHT9N9ntumaU2,CJuyKtQC98P9PP7O NbXmb.2.YZRl2EGq3,6.,U08J99SdfJHPNjvQCJuGKfaqmY6MwdONl1QCh0708T,U..w.otQV. sUGpmWbBxhYhAbndMHT9NY6Mw.sQq2Y6cwB.0.PuKw,gcPF.0E.kue.86.QC18RdfQHfMf9R9v Q7ONb17.,.D,0.p.,6.M.EJYjyC.6.VQ.k7k.8Mtr.2.C10E.c4E.k.0.e0M.6YE.G.4.2Uegi JQeFK.3Qwb8R79G9PM7PNZvQRdJ.0U1.,UH,,Uy.,c.o2rFHoA2lqK.o27HHQ52C2FI3YjyC.E 6V.A..2UeEeWQ1Iklb8IepZhZJinpZHZCZORNX2hgnRg.AS.QiiIepZhZ7F6.Z52.KAS.i80E. QE.sQRtIQeoBjghg2hgn7.X5.u0n9PU.Iy5.,.60cM6.,U00.umUG5.E.Y.2..EK0.,M.6.,.V Ngp00kXat.wnjl.k.E,2kmI.,iSV.16OE.6.vvq1EnXE,IklT879HHfPLvQR7HHfPL9F9vQs.E .sHE.cFE.AUyUHZiYRchZgnpZD3iZphIxhjZh2BhVZhjxgcwYHBjnZiZhhjIenJiXxZ,Jgjhio xYg2YbAcWxB0GVmqkCqp8orWrHaW0Ikmj,6.Q46.I12U.kzV.IZ..5.V2A0AU.E.q5.ZD36.c6 E.606..4E60E.6.MT..0.040.O22.1cDsI......kH.66..X.16.2Ux,.6.c66.,U6U..M.R.1 6.MT..0.q32.C20E.AUvUH,.8ItyqvCrm8LISGWyqlKrL8IVqGaaqlKKrCrmSGK0mH8Iq4qlUU YddRgZ,HF,y.4E.ky..2.I22U.E2E..AUCU,2.AqXD.B54DOormKmCLLOormKmGomCrl.0E.cW 61MR,.,.sUZz0E..y.S30E.UqU.Ikmj,6..EBU.U,.J,A.2G6.j.zT1HM9,NKnOKnOHP8F789, dPR99,d9Rd9PM01.49.ZT3E.s861M2E.A.6U2.k.q.4E.6.X3.U.Ey0.N.D1,6..526..T.H00 .o4cU.,..e,2.A.c8.6YE.aU.szELuGL.0kM,.6.Q3Y,A06.4.2E0.M.3E.AU.U.IZpFYFtz.0 E.6Ps,MKE.QEX.0.E2kTE.0.3o7U...77.2U,.,.V,2U.w6.k.E.0.1M,k2l,8Mtr.0E.MoE.c 4E.sz,.,c8,.0.,6Y1.G.0kEk.KF.6.J.1c,6.h.1cA,U.Y,AU3.d.1616.B.1s0EAk.WV.6.j .1c96.r,SH.6.x.1s3k0l.eV.6.F11626.1O.AUX.x.1c76.v.W00E5k,00,6.16.QUuV2Ikmj ,2U.EKE.EBE.0.z50EJYDI.2GE,k,45KE,9z4E.0.X,0.p.,6.wT6.JFA0z.U.2GkFk,W,0E88 .BcUZT1E..UO.,.1.eWwV.E.mP,6.O.Q0oU4.T..V.B.Y,o.EtE1U.I4o.6.l1B.A3o.kKG.16 6,E.0E,1.5M16.v9.o.6.N11M5,U.Iu.k.40YU,2.Bc,6.5i.AUQU.Q5QUFE.o6QUGU.YAAUe. P21616.F05M16.P,1s,6.n,.dW.QU5.nP,AU3E.0EI8E.0k.y.,kpl,q.YU.k.C.0kUG.B.o9o .6.bQ.o.E05.1s0k63U.AUL.ZX.AUSU.o8AUl2.,6.z,5M2EmF1U.20o.E4k.y.0ERE1U.A1AU M2.0E0E1.b.B.oCAU,U.wi0k.q.Y5QUB.HE.AUIU.I.0U,U.I6s.6.3.4.o9oU6U.gU0k,4.,k Nk.K.I.AU,.16.AU4U.Ib,E1G.0EO4.5M22U.2b1k,4.gc,k,4.oE,k.4.,EAO.1M,kbVAU.oj ,U4U.gb8E1W.0kZF1a.o8Q.,.F,Bc06.x9.QUF.dY.wzBxd2heAhcUYcZpi6hgV3iH3itRbB2Z eIZBIU0AVkJijJhZRgoBVx2YWIcgBgX,3N1HsPZvN1fPHfS19RHvPRP0v763tRjvRRtP3PNZvP Rf959O3N1HsMTfPdfQHfMwhmRi7gbUIYDJgZJC0mqaql8rrCrwCLusQ3N1HcR9fQbPOTfPH.3s InvQdXjsQC4E,8m4akl2itJidxgcZi7gbU....mqoCqmk2qHE8W2xhX,sME,8m4aklWqkuqnKq takS003c6PM0HvQbPR9vQHMD.3M1Jd8HN1PM0HOHVuHZ8JPM0HsI,dCv76bOKb8J9OHN76LONZ fP99PN76b8RZPORvNb99PM0H6ITfQdvQN76PuP71N76hOO9ntmGECpm8LvaqlKqtmGECJuy4mG E0JtyKsKKtGroKqtmGEGoo44mGECoruKuwhgZhZJinZZUYcjRAP1mW2hgqZcZJgpxgg2YBhgoB gvgVBAV1xdCReIhVBgV7AVmhgnxhghioBhj76v76ltC,78J76TfP996VPOlPNN96ZPNVfQ9vQ9 fPdvQ,dQ9vQT1ElaLuKqt0GJam4ak2mqouqmSJEqHEKnM8nR0GIe06PHfP996HvQ,NBXdA,7QW 5b96NvPRvNN76Hf99f9,dQ99QQiZ,fNAIZUIiZtP...EY0mS0mOiHEWGJ.EEQCNPORHY2id3D6 OHvNF96JN8P.cJ9fQdPH,ND,tAr76Fd8qqk8rnaKr0GlKKuSrmKKr0GuSrr0Gqa4b96J,U6xhm hdUgbUIav2Yc...Orm8Luaql4Kq0mlmquCLuKKt0mmGqnKKE4KrGKEmqouan,QgghiL3Yx6PHX Lt8,dAJ7PHfP99GsCPM0HsM2djJC,VoQbU23CKqKLYUkBBElKKu.NPNB9R,dRHPN0mmGqn.Orm 85.C5.emIq.6JT9QP86vFQ.6JEsa4.UXZBb1b96JN8M1HM0j86vFI8HJCKqKLYUf2YXZhpxed2 Ye2YExhmZCR7QTPOR9RrN1PM0dOKVOFPM0HcENvP5vO,ND,7ITOGR8J9eI,7JT86ZOF5uHZ8F, tKffPdPMDvN99NvO1Hk2GrkSKR0mZKKtELGpw0rmin4aU7QidJjZJbUAdCZe3xc3JevAV72Ze2 YnBhuhgUwha3YaJiZhgUIggxhXtQ,d8H,4qlGru4KqeHEaIb.qk2aUaBhmRioJbUA7UBAV7gcC ZcvgV7AV1ZhpRC2Yx2YE,83...UnVu.S2rN0Fd8,7RT9R19P,tQHfS0GJa0ohZ3joJbUQcghin VvgV7MFk4AVKBhZlS00Ed..FdJHPNCLLUdgV7M0FPNHvNF9Rp76H0DWB.M0q.PuP7PN0mS0Gc. ZWD,UBxhYltumaUdgV7AV7AggZhjRgu2Y7p7S2..4olGroyKrg5.Z0.sI9fQUiAcXZidlI0mWu IWiXBkaCrn0mS0GdKoV.P0C59vQbPMDPNH769eHM0cJ1eIPM0qqmqKR0mayKmsCPM00rk8rKeH E8pWC2qk2ak2.19R99NPdC,NGsFQbU23uquqKlKKt0mrOKE8qwUXhimJiZphoZht3YVZhgxBEE emIk2C4b1bP9p76H0...59PC52YXhCZ1...WaV3inBBqGR0mY.0GIeGEG5cMn9R...Uaxhm3Yc hgV76JN8MFk46OcENvP5nbOKnCLK0mlyKrCLu4nQeHEa2kRqk4aEc8pbCoWGoe8pW0mXKKuWom 4Ks.kRqk2aEf4YUAhoJbUgdZZCRNGdPNPvCPM03OFDOGRO1HM0F1.66pNDGnRqk2gdZZiV7HTv PLPRV9I19RF983tG9fQR1FPN11.8GK0moGrIin4ak2aIX0moGLLOpkmqoGKIaGEOGEWmoGLLyK leKEqHEqomG5hPMZvH3fOH76B76EuaLs0mS0maUdphoZet3id2YI3d3pdBA,H..EEkoGLLaIrG Lf4KqWmIqk2g6M0CqruqtEEenS0mMaHEiGEWqm44.M9,7BPM09eH0mXKKu..Q5PM0.kU0LsKKr GKEWGf4Id0mteHE4Id8pUaJEyIX0mVWoU8pR0GueHE4Id..HtCPM0O3mqmuKK0momGEeKR0mYu 2EECKoeHECIYsCPM030EqKKr0GRqHEmoWuIICrIin4aUd3Yug5VtC,tJFOGNOF,tQrOOv86576 V7K,7FT86HeH588HP8,NF.J96pNDEdKIcKoUGJECKo0GRqHEGrheqiiHECrha4pNDCKoiHEaIb cOHtC,NGRWdleuIeaIa0GICKo0mS2aMBZUwdG3YcAhUgbUYhZphdQbBktiJqKKr0mK0mMqJEe1 V7KPM09018QV1rN1P..Qe,3ikhA00sQ.cF.,7R.UH3dDJeIRc6B6H,O3YimJbUAcG,ZNBh76Te F,tEsCP..b9RZ96pNDGLGiHE4Is05WmtmGECLu8rIqk2KIbsI18QkR..MOpPNTeN,78BfC,tIF 0UUU9hAEekIeHEa2UBM0EweHEa2.82U1BcHhcUogUwd4hV7AVw3YkIcMJ5ZOFdOJZeH,7APM0H 6T4HgmGE8HgmGEGHgeHE83kMqk2aEyQaMZZUgaMJbUI8UmgV7A,WHgmGE0nUWJR00UsgV7A,4n M.UopZnBBqk2Umk4ak2aEw0GRqXHpZKBcA3Z7pdI,N76df93PMbPNr8AvO8rN1Hk2a2l967OGh 86ZNBhlF0GM0GeWoW2Ys3Yug5df931c9H9N,NHT8F,7B,t8,NAh769eH70Ie3ZeJ,UU66bOOpn b2ZH3dDFICIY8JIWrIaGK0Guu0UdgV7AV3ZdHhcUIe3Z86BPM0HMFRm4akW66aKxkRqk4..BuP ZPPTeN,FueHE..sIF050q..a2be9h0.kI0GWaIf.v76V76dmWg,a.UH3723sIRdJ..AZdgV7Ea M1HM0H...Aaq2Yf2YopZdZgU.dN8HN1HkWuYB.,dFTfQsCak2qUE,ULJidZiZpdVhhZ3YcYiu. .QbUoe,J8bfC.y2kIUKViBghhgu2Y9hAEb4qqQbUogu22kVkRcE.OKEenSocj,F7RHtCPU1,.m bk2fu2Y2BhVVigdV3iHZimVcIYXYcZpiugeiZgZpgdphZZgWYZUQidgV7AVwNAleC,tQ,dCvFF 8obyIaKoUuIFqk2a.Z7Kp76b1Qe6xdG,8m4a.CXu2Yn,CIY4Id.GHgsQU0BfIhcWgV7Up29.C3 AdCZeWgV7Uq2fu22U7pdIh6IYB.j7Kp76.b08pW4Ia8m4a.WXu22UGhc,Z7Ut2fu22UHhcIJYB .VNE.6HTeHDOGR8J3,cE22U,pdNJe3RcWgV7A,QcMJbU.UEZeGJYB.GIgeHE.0pbaIbgcGJYB. KIgeHE.IeDR6EFqk2U43fu22UHZeGBdCxcWgV7Ul2aMZZUAal69,NAbVBA,HMGBGIoZdFWa2kF M8,d7YCPvP7f9ZPNBvMR9R,dDv76VN8,7J.akt0GRqXoNPcP1PP997r761023IYiIYdQbBk2ak ZKKtu4SomGLeaLsKKb44F7RN76RPMPnIiHECpU05.RPMM1Hk2KIaAd43Ya3Yx2YlAaM3YI3d3, akt..67..3FdKoVy23N8r76PM0HM090.CHg0GeW2k2C5IYEx7.MFg6M0b1cI..9eHqU7YDZ7Al eC,,sETOHRNGfePLfPTvRRf6PUwlMWJR00.wcJBd2JYBA,cAleC,,.8pWCpemIe8m4MFNWUYcd BA...sOR1BuPZPP19R379,,akWu2K2,tJZPO.rN1Hk428.0GbKKwGLEWGleHE8IqkIeHE8IqkR aEIeWihgsZC39PTXUAhi3YnBghhgUQgghC66JN8Pk2O3CrocCkWS2r764qneX9hAEekRqU0,6R 2Yug5b0QdZJC.mGECJLO3a2EKIgiYiVxgd2Y2B7GHEeGEGnIi1HsQHXUIbx6R1vNRtQH1L76.s HU7MGBmbGIWWmduGf....ZN8,7JFWUQidVuElumtaKxM9,tIRNE7eIFdMRtQM8,t8,tQHfS0mW u2sQER68bPOpXfMAfN8,7FHWloaUIZUAaqQbBAV7I8.R,8Iqy4N76be9kY.kI0mJQCAZBAV3VC hgstCPM1I8.CIqK52dZBhbFEWmta4p,UdIbU.sCPUcI3F1sPB9619659PUUAhi3YkBhsVUIZd. cPTfNNPORnteHEa2.82UixhaZB66p,FtQHXUYc7FtK4MOkJ2ZgBhihgLhZlAZd2Y2VgBBQbBA, Z0cPT1QCJ76F7PHX63Yf2YgBBO3qoI0mJYB.in4akWu258Pf1W2sCP..cJHPNWoma4WmIeHEa2 .aEI.662YqBhZ76HfPKLraKvKKtAgg3YpphdZin3Ye.klm4cC,tEN1QbU2huMGR0U0,sMN12Yu g5bGfkVmquUg2Y9hAEdyqrGLIamIiHEWKEenS2avgV7sJFOGNWXZBEECGEuoYmIEGobqk2ak2a IbCIIWKK0GICKqKLeMH,t8,tENPREY.FtMNntELCroM8H76J76VuP.HXdQbBM0C4EEe159PUio hZ3DA,9WvU7,Qgg7JEJ00..I8UcRbBAV3FEOpo6GUvM1kV.0pkaKrGraKqq0GIOKRoedhAbHX8 rkqqm2YoxhkZZUIgjZioxhhJbU.M8rN1o8UnVu.kRIgkYZUIggRhgcP99SeX0ZBQbUggiZgu2Y 7,Q5ak2.Y8VXX,2dg6SN76lPAN76nfCa2UU23KLrYC.H6NT9RN76VPMHfPKKmmGE8ruuKqKKre HEa2UBUXZZUQgkIbUAdC,EV.YA0GRqXc2ejJCko667OGogiYgjZidc8,dNR,rN1akYOYYxho3Y x22.7vPI5OKLG4,NFR8Fklm46J2Yug5V,.22Q8kV.m0..g,S3.EEC06Fk2aIbsMNPREe69EeEJ GqrGrIin4kl.WIEe158P.91W0C5umtUUI37vPi1Ad47859PUIFEqGECKqY82Yw2YWxBM8,tHZW Xlt.QZUQAU63Yy2YoxBH76d0PU7AVapZ2JiVxiGhgXZicQgg7GTnaeGmyagsMQCY8mWcU6VfQg ghiLd87vP.b166.6GNN1HM0HM06IT1OqomKqmGE0pr85SKtKqw8nOamRq.aEIsQ5PMR9651661 fP7Hm8rk2YWZhjlt.AVWZhf3Yug5b0I669C3MG.Nllm4M8,t84HN0mJ0Go.sH660WdQ5M09fP7 96pND..Elmad2Yf2YcQgg,u02YhMAZN8,7FHWl66Uh2YchgV,.iGEGnRqk2M039A,dCvFlmqpi HECKM0GRM9XtCPM0AVt3Yukl.G36P.IZYlRU72CHfP66pND4HP0GWaIfIC.QbU23uqr2YkBBkk mKtKqkGqw0Gs4qo.TfP,tMffQZ1,7PHXUIZd.H6SEICKq27qYgBhihg6xB2iVBhiVdIZYxBU7w 8kdu0..A3t769fP7967uHk2A7C3..c9dPMDXx2YHpZ,,NvOCroM8GJY66Fd8OKt.TXUIZd.HUX 3YukK66RPNlHEe1bGfEVUg.MG.Uds88KqiKLUUQ3F1UDVdgV7A,HkWmY7lM0mYuIECJLUHhcIZ ZUIAYC6JF0MMZfQ1PS,d8H,a.510pr858KqKrmiHEu4UChAWGlmqpam4a.HkWMFWGJ0GtQgjJi Y3YeA3M0QApVExBcQ99Nr76RPN22Q8EVUg.MG..,VcIggd9c9.CqruaolI0GWkMc8M8PM0A,9e Hi1A,HeFCKECGECKMYe6l4k2cQffPNXUI5Wmdu0..A3P76b0..VN8H767GfICb1UBAV7M0w8Et KLrUy2YgBBSpK0rka42Y2x7M06SX76pNDQA.N1F0ULBZe.k2kY680HECGEqmMaGEOGE2jUYbU2 jlAZUY8.H.O4cIEwmGEaLK0GwY3n96LFqEY0GJ0Gm6903cNUX3adgV7k2kW.A,Yc3RccIippBY 3NPOweh.M8r76VPMH10GR6AU7Us3223.U6xBaGJGqr66H0n99,78NPOs8NPORHfUdc8kI.HU3, M0A78ruu400V76d0k2kYsMV76EEGJY66Bf97eQ..WLEiGE8ruu4eGmyKumWt32U632EK28..0m Wu2k2kYu2VPMH1m0Ud66H0l99,dQUeUd.a.90k2cM008KqiqR6Ae15P1HM0aU3,M08KqcCohZ3 DPM0AV3,M0HeFkF.M1M08566pVcQ8..KKrAZUgZU..UW,...aUL,.o5N1j0UUY6k2cN..aLK2Z X,qoJU6xB.jO8EKAjU.2dU.6I..QbBU7EW.EK.jO9.a0.0GR6AU7EwUcQA.EYy4H,i1MS6PkJU K,.a0M0K2U7MGICEE6AUU..Ug6S.c869aLE.WIE.NFc..66.AV3l4A,sCklm466pVXZBb1RdPs CkYu2516JY359PU6BZvg,K2PkW66VOMHXBlRqk4cIC2ka4KtiKVmqrCaU2ZaJ5..CrmmKR0GVU vsPRfC,dETuHN0HtCPUK,.p,UvcP9Xu.km69,tPBfNb99GqrG55vPNfC,NG.r76BvPfXucET0Q bBk2C4EeUsZ3mWmZZUggu2Y7,EIeWpFu.8oW.G4e1F7ITfQ6Qa4G2OaYlI00Bf9sCPU7p67XUg 5.G4e1B10mW.C4.0GR6A.UUUH,C2EK..UUogjVUI5OoUmodKoRq.j02ZX,2YX.H76BFzOqrKLr 6Fk2K4e1b0A7UgsM.HlJA46851c9b1qWlU2Vl66kRU7p7.Y8mWXZBdWBd8G4HtCU478be9..kt kIYbx2YH,.ktKKqamI0GH2ZH,..2Yw2YZlIY8g,ak2OqrKLr22YeGhe3RbBA,KIaM1M0HeH.6J kVm46G91.c9kII3.M05166pVX,oZiVv.9eHqU7g6i1aIXogjhCYe6FEW0bPNN96HvQ,tMTHu4q ouqmGKEaKr0ml.0GJk2A7yKr0GeWoWsMT9P,dCvFcy4wAKKrqk2aU3Z7H0.kdUnhAR7R1vNH,. .Elk4a.MF,tMT9P.EtM1Hk2o7k2uqm66cH68bPNNP8rN1cQ,dC2ZXFYEE6Pkr.kfaGE.r,y40G Rkd.H0.66L76F1UD,Fd8GrkSKEemI0mK0md..sMQCAZd22cQku.kwUX,Yej76LFIWmrOKn6FHe Jm4.Flo6GL,O3kJYB.c8G4Us,FtM27.6GT12ZjpAgdDZ6NPOw8H76J,.996pNDWLEi0be9..uq mM8,N9..ktkIY6IC.2Ye2YY,sJUZ3YygbUIiUYcDh,AVap3..Ut32m4WIE.N76VGtEnUUsPamR q.akYu2nXc.Q3N1h0.AZv.H6SEI..6GTXd2Ye.r,akmUsVZ3Yh2YmRbBA,K2U7p6996x76l96d 8GcNG2..999,NS.2Ye.N,..2Y3,g6qU3FEqok85kRqk4U1,YecBhnRcghC66FdN..EwmGECrwe HE.AZusEN1QbBEf.C5e1.r767vPdXXZBEe69C4EYe1R0QbBcEcH6NcC2ZExB6Qa4,,OaYlI00B 1i1a27XUg5.G4e1B10mW.C4EEe1ROGNuCPM0a2FtMNHYEEeGEG4mnS0mtWrI00CLw0GS0GIC4U fcA.T1YBw8,,A3d0PU7QA.sIU1,Y3..M1A,.dWUI501sJUXltEEC022U7AdCll.G3N,G3.Q5M0 516G,dCQ6.91UnViQC.sCk2aIX.Ee66tNDAjd2YaUt3YwsM.kJQgg,WoI0GeEE8pW.59PUBA,a kWm2aIbC2.dWg.EYQbUQgg,0GRsM.RdPsCk2KIbg,H.kWsCcI..in4g60GeWqo.UB.50.8Iqy4 ,Fn.....a030iX7cJ.ER.sC,dMNHKoBI5m42YaxBRHRsH.AV7YAmWgBBuqrmGEyKn69KKrY319 NZfC,NG.r,C4Ee..FeC.U0,6N2YuEIwBUd,.AZUI3B1i1a27XUg5.G4e1B10mW.EICLw.27UgV 6VdUYlIwdGFICKq.,,..w8.,7D6S.PU7I8d0uoYmo4a.Q5QAUUUH,.Y3....G3,dC0nR0Gny40 GR2Y4ldQ5w8EIktEEC0A3BFz.G2AV7p7.Y8m0Y8.AZv.516G,,50km.sQc9b1.i1Ad4ll.G3,7 DMSEIAD..i0.FO8,,0Gny4I5G3qk2aU3Z700.6JY3.WYv.EEe151c9R1r,o7P.Q5A7O46JEI68 b9SN,HFsyqouanNOR9RT9659PUUI3Eqa4RHEenS2ZcMSqWX,Y8aW2VYxBH7670F7PHX63Yf6Pc JUvg,akrEEe1...UY,PuH7GIm4W2UK,2YcEvK4H1yKnMNd96HfPm400kY68N1h0P86tNDyKnOa d2Ya22TfN2Yw2YgBBW2UK,H76d0P.HsPERktWLEGoY.g36GkK0Gqa4FuPQbU23Wqr8LEyKnOaZ Fn8rrqKEmqmO4HfPdXgBB00k24Km8LEe1b0A7UgsMQCAZUQ3F7PcPIZUYhdlf0WUwhapAHFJIC MRkRM0aEIsR9v7ZPN,7PTvPaKrSKEOqr8LEGLoKKE8Kqy4,7RFPMd965vPRnksQ,NM79NKqtCL E4Km8LEemIU7IAI5.82Y3b0A7...X,W4.T0,N9k4k2KKrcC..UWZBHlJ2ZX,oZnVUkMEWkM224 Xv.HsJUH,..6DKKr6FU7cP66cH9XcIAQbBU7MGAgYJCt76b0.UiVd6J.a.HWH,.Elc9wACGECJ L4YG,C5aWIVUI8UWZhfhV7k2MFN0Z0cH2YcIZUIgg76HvQ,NM,dNZPN.0GJg,A,KIbg,ak2gcA VWtOe1R1P.HkWu2M09Wv.HcI.M1MFN0FVcEK..84UoxCUnlI0GdK2.UCN1gcAVG,.cHMF22F1k Rqk4cIC2kdKqk8rlWKc4Ku2YcYicBhnZZUYicBAp76m42YKBcG7Q19RFfC42aZDp6HeHUv2YKB 6m4p,UdQ5o8ogVZichgmZ3bvPRfC,Fq.dPMeX9,Y8KqR0GnmqkSKK0mrkmYZUsMdPRYZUAhu22 .rFngCe1TW3,82UddCAav2Yghgi3YuEM2Ya,,dCo6CZvU7FzyIWGII..Y3d9OHHLGrkM8,7JM1 AVaBgo3B0GRcHHmRk2mobyIcqk2ak2akYu2be9h0...in4k2OKq4qn0GRsI...UUgdDFOin4k2 G5.kZK4.mWH,a2..kKoggBAHtCP.HMGBGnmqk2YygbUIaUYe6FE4qlG50GRqXo3hdFnaKtCbv2 Yo3hdlkCKuK5kkCKuk4ak2AV3Z70mkC422Q810d9OHXnBBg,Hk2KIbQ5M0N0k2A7WGuW4,ND,7 RFPMaGEOWy,Ye6VghAkoiHEOqrUuEeEEKIb.aUj,0GR6R1HL0Lu8rrOKnCrh0niin4a.HkYsPB XZFS0GM0Gek4k2MGR0..MMDP8N76T1s8,7BHtCW0ZXoxhm76dPM0GJg,A,aIX2ZaZhVFTkI0GH 2ZVRgo,t76d9Oo3EEO0T16DqGoKqk.y2aWIVU23uqmWbUAgmJCggghA9XUIZd.H.HeHAgX,NFu 4aiQCsC,7RF1112Yukk.P.HU3Z723KLs0GJ.H.d9OHvQGrk2Yukdo8Q7..U7,.aGEiWaZBamRU 7U7p6BPMUxcHHGEGJYEd.KIb.a.CrruKEenSYicBBr76d9O2YuEn4KukRYc3RccAhdQ5M0cN66 sI..6Oo3AZUg7.A,YiV,.i2..kY...q0M8r,a.y4K4pVoBAR7Q.r0k2kYEq66x,,,AAEEUcVV, gcARe3NM.pVHNE.QC6690k2kdumXKIeWmkC4s8,tPMNmWaBgoVdQbUQei2eJZecAA..sIRNEsQ TfPRtQH1HtCP.H.HeHQ8..AAH79GnIqk2M0gcCN1aU7MFNWBU7kd...UnxBHtCk2MGBGICrruK ECGEkIEz.GJYM1M06FsIR,.ktM8N76dlRq.a.a2x1...uGu4qnAZU.,78YAjfP,d8H,a.A7aKE mXAhcC7Q19RaGEUBU7.a2B1mHE8HEG30Gs44rOOv86sPB1qk2aU7.K20Gs4Ku.MM.P76b0YC.2 YfsP.M0U3p7k2U3lRU7.HeHAhd.a.YicVoBA,dCQ8h0L0.UKV7,EuEEiWaVdQ5M0kd2eJ,d1i0 UgcN.ogVZC2YuEukR.,,bvPRvCPk2A,MFlOGdO1HU7U3p7P.HU3lRU7kYkd...m0q.aU3l4k2K 2.kWU3FECpm44UvgVB..8pmCrmGra4KtQivgV7cJsM.p,UvcMIbUIcgVvMNI5H0sCPEV.QAUUU H,C2EKQ7UG,.j0QAUUQ26670aEl..82YZUQ8kY.mWX,AZUQ3X,.kbEE.kmER...3Xd2Yf68.u0 2241G266kRM0S3sI...mXZFEGYUgcMRcA3ZHp3sIElc9dXdEMamR0GlmaUUChAW0aW3p7UX,2Y ukl.uGrk4.P.0GdKqt.k4cI.Q8kUuqlW4,7839Pe1kRo8ZGsER.U1Vd.h0P99,NPT9Np76LONU BxhYhighgv2YmhgaZZUwhaFKAhgEK0mpmGE0LK0GwMMN76RfC,NG.r76TfNgAbfC,,MA,tHBmY .g,aEEGLK0GneHEC3Q6QbUYgZRCp76L06JsCuqkqag2YoBhoZhZJbUQ7UCNPiXoBANFuaLseHE i2EeMNqU0,MPT9N,dCvFbaYv2YjpA0GR6Aq.P96pNDiom856OHHayqkGqmGqayacIY6xhnZiLB hiZgjxinJYdQbBM0HeFqKECWCFEG3q.HcQ9fN,dCghiIiZpgnRbUQdZJCsFIeZpgEJijRgcIiZ pAWLKoBAZvg,akY6SCGE0HE.M0ZGcK2PM0HM0HkZ..Opk8LI8rmO4d99,FK0GmKqtY3199AAg, AVJpdIB7YiUQYUAaMBZUwdG78RPMPHEqHE8mvaa,phX3B8mIin4k2a2d96v76X7K,7J.aUHtFM PR7N19R196L76199,7QHtCP.HkY6Q,t6,7A.M0QeZBgmFcEICJLU0,NFs0mK0GOYZUIggRhgsP MNYZUohdQbBU7kYcP,dD,,66TfN22AaUgcCN1M0K2P.HMF..9WvUh,L0MPTHaaqtGrRq.j02Zh xhY3Yx2YClIEI.v76VN8O0P965,6FTO1AV7lquGtsM222aU.P.HMOEMi1AVL,..O0HHSghiohj pgkZimRid2Y2x7M0CJL..ghi2ioJCrOOv89,7Q.HkY6Q..a.bON.....EEUZ,.a.HWi,UUghjZ ApVhRbUwhaFEe1uGs.0mWu2AV7MF.aU7p7aaBU7g6q.kRUh,ohZ3DMF.ZONbPN.A,HeFy4QYU2 4k4kYMPTXX2YCVI,M0VHuWKEe1yKmu0Y242uac2iVZCN763d93,AV7IC.cQOqt.kX.V0.l1M8r ,akY6S6A.M08pW.AV7kZ..O3.d100.u4g,A,f0.41Uj,xND4qI00y4Y5196Llda4TGIOKK00AZ dQ5M0a2d1X,KYUQe,3C.Er.M0KIakU0Ls.UWwbzwbWAZBA,aU3p7P.HMF.m205008mv6N2YgBh nZiWg,cHi1ABMArN1HUL,AhUEraGEO0H1N0TfNBnmM8H767uHk2CJLUk3YhEK0GuM8r,akYMAo dUc9kdUoVUY8MEV9Q.Y3ipi8mIq.akWm2P.Hkp0GRqXk.aUG,U7EuaLs0GRqXoBARdM1vQQhRR bUA7QhdQbUIhUIbx6AU7kf.eKEmHEGrwoZaBhZZhYRiiohphhd2YaEuaLs.sP3fOreOve9TfNB HECWjpAK4rOOaGEGYUA7IB,NFQbBU7MJ.J96..u4w7QhUobUYiVloGKEGoYUUgdDZ6XdBHtCP. HkYcO,7D.H1UUYe6l4A,HU9,UDJgepdVhBFlw0bhxBN76bmUUt3CB1sPQ9aGK0Gr44HtCk2MEV 9Q91.u00md42.ErUBU7MF.a.10.c6yHFam4k2gcCN1M09Wv.HsI.iGE.Ug.,NGMOU3l4MFNWU. ,,3d6PU3p7g60md.10QbBg,8Z1,6OTvR38PTXU2ZWFRI6M8rN1o82YoBBkU836AZ7B,tHB8650 2iVZCp,..UBAV0,sI91.WGlmqpmWkBgoN8rN1Ad4lk665763d6,7JF0AVoBhoZB,dCvVDdO9vM d961fP5199N,Fr0GFin4AV7A6K4GroG5N76VPMA3MFN0dPOdXU..uqrGLESKqyKl4Kqmqw0mku ql.3N1gcCtC6F9fR7Glc9b8OSLYKqkwdWJhZFICJL4284RtQHXdYZUYidVdgV7g60WcxB30in4 ..8Iqy4HePBvP,783Xu.QbU.bfCUN3YDp6kIUKVoBAp,UIBD9HECLu8LRA6ENkb22sCI6.dPMU WZBR7RQbBA,HWD,O3aIb.NFu4ad6FHeJ8nIY8AVcIZUAAEJ.7OF...698nIin4M0HWcYiVxgig hjd9R1,,LONEFaGEO0EnaqmUiVx2YlAZUY8g,ak2G5Eu.Ujlh0niumtGbpRgohV7AV7g6i1wem Bho,WWVxggsQ8rIi1QiUUWAcGJe,lbc6r7618QUnltk4MFNW72ZecQC4I3M0j0..HV7gcCN1K2 ,dENvPA7QbBg,.EYK4HePBvP,Ff42bPOYZUohjpgXZhpVmRiuMGR0AZvUKVX,I5.in4a..RvPC 4kt0GR6A0mta4,dCUXZBEEkd.5069.uGd.UL3d7VX,2YX.GYBk2aIbcPTfN.CrIiHEa2Croebg sM.RtQM8rN1sM.,dCQAUioBU3lRMF2Y6hgV,i1.Ucoiu2YKVd2YI3BqorGqmmKEWmIeXBlmQii sPKavEV.I8d0qqmqq4g6Y8.M103..UGhgnZC2YcoAO3C5kRYhg2YoZ3Z998KR0mY..h0FfCa2k R.UEBgd7R68B99,7RNFlamREo0GRcJHX6lnkIi1aIX2hUQ2hf9FPNHvN2YI370GvumlyKrGrmW LuumdKKuCpoebcweg2YcBZUg6kWEd.in4q...Ud6G1fP79P9vEdfQNPHbvN,78PM0HcNp76kt. cJMPbvNp765uPRHt.umaK4sC,dJcNTvMfvQp76hOOEfk4akIi1O3WLK0mwe1.0moCLWyqvuKR0 WD7HsC,dMY33fC8IqkRghu2YHhcIRbUQgg2YgBgnZi1JbUQcg,i1HM0bfC,NEUl6A,tHBmVUUo hphhu2Y,,o4T0k4I6.jOGd8G,NPbvNsP.Ee8rkCqpqotSKEGobq.84EbsCmqkC5,dC.Pk2I8V0 AV7AVapZ7phkhio3ZsZ3mWhZZUAB70HtCk2CKEe1d8OQ6Ucogg2YsVdQbUIgUIbx.822ZaZZU. g,AV7FI8KECGE8KqA3TeIQgUQ2NPMM8,7JFWBk2aU7Fl0mFo70GeEE8IqkYEI8KK0mtamRU7MF NmYsM,VC,kt008mlmquUUwha3YghAD9RF963tCPk2A,a25f9bPO2YBx72amkS2aU.P.H.b8RZP OQiiAdiZiIxhHZimBBWmlumtU2Vl2am69,dPfPPHtC,NEV1UihC..8GEiIV8mIqk2AV7kWMF,t IdfQHXn,.23UgcPf1.Ui,.UWcMn13N8P.HU3p7r,a.1Gs.kkGLE4KmGaZtQ8mIi1A,C3sQ..Bu PZPPFtIRdJMG.NllaGK0mdGLtkt2BlPM7PN5POPPMN99aHK0GF0HFmGEGJdKZgcPk4k2ME.cPM 1HM0aU3Z7QiUI5I2M0KIb.aU2BhVZBQecldGrkGruCLICrIqU7M090k2mqkCLu22Qgvg,AV7p6 313XUYe6h6k2A7YBCGE.66POMZHVUcUWZhfZ3BOENWd2Y3,M084e13vCk2A7EEC06J...Y383H 76M1M09WBUJ,uroCLWy4rN168Ad43YyZcdBggVn3BCrdGrkEEOGEWmt0mF0GF8mI0GeU2BBkdk aCrnWmtaGEK2r76JN8kY.,VC,FWBU7gdVJif,.Y3B0Q5M0b8OTvR3mrElmqpam4A,9Wvg,Y6.s IUcIYWAZvg,KIaM1gcCN1K2,7G1fP.NPHQbBg,...H,kayKmKaBRib3Yco8gBMHT1bXZ,amRcE .S3.Qib7F0GfaqmQCf8Q7PMdPNFdRN76hOOkpKqm0LX8rkqanBZBA,m2Ebg,66.UBlR...kI.2 emxhkhdnxgU23.2emxB919HLqom......6IZPNBPNZPNRvM9967uHPU7w8...8pmCroebEJiZp gUYcD3YhRibpZaBhshgY3YuEe83PU7YDPvQe1.EXyql6IZPNB1ELWqrGLXyqlKbUI5..I585.C poe5.ELSLEenSwev2YhRCWKEe1h0F023M0KIa.o7Pk2KIa.9eHMF22.MHQ5qk203.ghu2YB,H7 65uPVPSBeQTPPWWjhimRgZJbUQeoxBCLLCJuICH79Koa0JeapRqk4q..kkeHE4olGroyad6FTv CPM0O34KqmaXZZUQidJDNVj,kte1RW5lRghndCq2AV0h6UVZB2YukZ.4Iqm411FN8kYOYhhARN MN9PTHECWVZhgVI37k2qqmo3Uukkm4in4AV7gdjVndEZvP19N5PMb9RFNP9PPN76PvQamRA,0b mpZVZhglkEE.sCEYKqk05sQH1..Hl4kYcPT1.,t60rk8LLCKq.Y82YkBgm,.pVixha,U3pd2,k ta4,t6,7Q6O9PMCroEeW2..I5Croe59eH.70MJV12iVJidg,kRkdKKtO56FT9H19R9fQFNMN76 bONZ16JHvMLvQFN8,t8ggm,IiZtPKLuUBAV3FEGoriXBA,.sI6Gc8rN1HEfEveHEUv2YVRgoBB eHE4olUv2YYJbUYcjRAK4bf97ml.rl282UChcL3ZqBZv2Yqp3a40GRcJ6GUc.GKEEWyql.bHma KtuGbKqvWGvmGESJK0GvuGo.H,OpoKantHVPN4ouWLIGKK0GFWom4aUYdVBjjhioJYdgV7.b8O .rN1P..w64IrCajd8,7819NZfCa2.TOJd8611IbUAcG,T0M8rV0,sI44.Wmdu0I6694Km8LEqG EU0,T0H79,NMR1amRMFsF.Q5PUG,kdkUuqlW4J,I5.a082.FX0tP2ZHp3.Y31XUEOamIMFsIME Uv.Z0U7phdZivgV7A,1WVRAcCQAsCPEV.wcZZi6,kbkREbkqKqqamR0mqKqqu0666Aqk2QeoxB Cb7phdZi2xhhBgdphcghZhhdM1aEbkkCKukIiHECpm.Y6N0sMd1N76bON.uqrSrIqk2KIbMGRP OiXBIc3x60mYuqogV3pd27F9HYAAb8Qum48ssHpmWb1xhi,ELCZYRcoJigZcZRiX3Ul1.UiQcj pB.7ONbH.QcjlkaKrKKto3cQ...sQR,.G20EtH.,6.63,E.0.a.2..AU0u10U.2.44,s,0E.a3 0E.QEU..2V.6.zF.2U.E,9D6..EGE.4E.E.EECOh2U.2U.gwzB.rhJAU.kEE.0.3o42.0..o16 ..AcmBhVZB,DX1.0E65.2..xtrobTHj8shobAQbyIklbcj,kVy4..l6.,E...F.,.W.0EUipt2 oZQo.2cyh.,eT9E.qxq2gbiH,.FS0... --- end of encoding --- |
Автор: | Kemet [ Воскресенье, 06 Ноябрь, 2016 15:44 ] |
Заголовок сообщения: | Re: Введение в блок кучи дополнительных полей |
Все эти платформозависимые константы... неужели в ББ нельзя сделать что-то типа sizeof(address) и тп? |
Автор: | Илья Ермаков [ Воскресенье, 06 Ноябрь, 2016 16:10 ] |
Заголовок сообщения: | Re: Введение в блок кучи дополнительных полей |
Вообще, можно. Допустим, ADR(rec.field1) - ADR(rec.field2). Но будет громоздко в коде, думаю. А, и это уже будет не константа. Если добавочный заголовок сделать типом, то да, можно SIZE(ExtHeader). В итоге, поскольку на уровне такого кода поля используются многовариантно, для экономии и т.п., то вряд ли это что-то улучшить Если только отрефакторить с union. |
Автор: | Илья Ермаков [ Воскресенье, 06 Ноябрь, 2016 16:16 ] |
Заголовок сообщения: | Re: Введение в блок кучи дополнительных полей |
Когда-то я экспериментировал с разделением ядра на несколько модулей, и т.п. Связность высокая достаточно этого кода. Сложность только возрастает. В итоге, возможно, оптимальный вариант именно такой - монолитный модуль. |
Автор: | prospero78 [ Среда, 09 Ноябрь, 2016 12:42 ] |
Заголовок сообщения: | Re: Введение в блок кучи дополнительных полей |
Хм.... Швейцарцы либо накосячили, либо из своих соображений решили магией заняться)) |
Автор: | Илья Ермаков [ Пятница, 25 Ноябрь, 2016 12:12 ] |
Заголовок сообщения: | Re: Введение в блок кучи дополнительных полей |
Что-то я ступил с "магической константой" 19. Это просто 4 + 15, где 15 = 16-1. 4 - стандартное смещение данных в блоке, а 15 добавляется для округления в большую сторону до 16 через DIV 16 MOD 16. С учётом этого выше const19 выбрасывается и заменяется на blockDataOffs + 15. Ну и DevHeapSpy целиком: Код: StdCoder.Decode ..,, ..wr3...3Qw7uP5PRPPNR9Rbf9b8R79FTvMf1GomCrlAy2xhX,Cb2x
hXhC6FU1xhiZiVBhihgmRiioedhgrZcZRiXFfaqmSrtuGfa4700zdGrr8rmCLLCJuyKtYcZRiX 7.2.s,MUv00k,5TWyql.bnayKmKKqGomC5XzET1.PuP.MHT9N9ntumaU2,CJuyKtQC98P9PP7O NbXmb.2.wtQl2kXn3,6.cUGpmWLuOpoKqvCbHZiYpedhA704TeKKw.bHfEWUmL.6..D.X9L6.C cIhgsNHT9N9ntQ8qorG4704D.CbB,708T1U.Esf3TE.2xOF.2.Qb8U00.bnUGLu8ro8quGrmCL WKqtE0E.kHE.0.p.,6.M.6.JFyuv.U.2m,.b.1cUZT1E.sA6.,UO.,.16.c8U,UE0,6,M.E.em uKld4N,IklTeoZg6hgVZgZJinpZK,6.C.2.C32.u12U0EHQ5BFnE2PP,EHYABlREsE2FJEyuv. .V20k..E.e0d8mBE,5TeEdKLqKKtCLLCJuIepZBGomCrl0ks,ktuGdKLqKa2V.ISE.Mls,se6. ,k,,UnpZHldGrwmqmGomCb.AS.c9Ajg,0EtT.2.U6UWV.2.86.c918R..,E0E...N,,M.6.,.V Ngp00kXat.wnjl.k.E,2kmI.,iSV.16OE.6.vvq1EnXE,IklT879HHfPLvQR7HHfPL9F9vQs.E .sHE.cFE.AUyUHZiYRchZgnpZD3iZphIxhjZh2BhVZhjxgcwYHBjnZiZhhjIenJiXxZ,Jgjhio xYg2YbAcWxB0GVmqkCqp8orWrHaW0Ikmj,6.Q46.I12U.kzV.IZ..5.V2A0AU.E.q5.ZD36.c6 E.606..4E60E.6.MT..0.040.O22.1cDsI......kH.66..X.16.2Ux,.6.c66.,U6U..M.R.1 6.MT..0.q32.C20E.AUvUH,.8ItyqvCrm8LISGWyqlKrL8IVqGaaqlKKrCrmSGK0mH8Iq4qlUU YddRgZ,HF,y.4E.ky..2.I22U.E2E..AUCU,2.AqXD.B54DOormKmCLLOormKmGomCrl.0E.cW 61MRE..CMtj.2.UDULV.2.cB6.3gwP.0..I16.M.EJ.1.V20k9kzrk2qGEapgapgqoaGIWmGEu KrmGEuGLum4ak.Ul0EtL,2.i0m.4,2.1.06,.AUBU,2.0kM,.6.Yj.E4knE.0.k,,0.k5kYU.. h,86E..UO.,.1.e0.072U76.yDoZio3U.AK..0.L,N.X.0U,.,Y..4E,2.16.6.JNR2NIyDU.2 .m4S.a32.5o6U..2,w52U.E,R06..EGE.4.2.24E.0kX..1.,6.AU3.H25cUZT16.,UF1,UO., Uz5.2Ue2.6.2UEC.6,6.1,1M3,U.I,AU4U.o0AUm2.0E4k.K.Y0AUAU.o.AU9.l.1640U.w0AU iU.Qb.Ur2.0EDk.S,gEAUO6.0Eok.0,0kU4.1s6EDk.O00kCUcU.o,QUL.16.QUuV2Ikmj,2U. kMU.EBE.0.z50EJYDI.2GE,k,S6YW0k08Mtr.2..c46.,.1.e06.2UwK.0U4.b.9c,k5.E6k0. N.9.ICg.6.Z,9.0Ewk0.H,9.gZ2k.0G.2U.Ik.k,q.0ky0.9.0Eqk.qF.6.ZC.AUV.7M.,k0O. 0kV9.1656.r,5M22.B05c26.711c8k4l.m.0EYk,q.0kKk.S.0kQ.Ee6.5c2kwK.1M,2U.2Z02 U.AUDE.QRQUB.76.AU1U.Ac2k0.x09.0k75.9.Yk,k.i.AG,6.1s3Et6.1c56.h01MA,E.0kTk ,4,YQg.6.V.9.Y,AUDU.I5g.6.n.164,U.Y.g.k7k0.h11M.6.jf.AUB.t,5M1k22.1636.3U. M.6.30C.0E,U,.x09606.9c.QU,E.Q4AU3.3.1M.k.0.1c,6.pN.gU2E.0EO4.5M22U.2b1k,4 .gc,k,4.oE,k.4.,EAO.1M,kb1.m.0Ez4.O.0kSe.9606.L49M0Efk,2.23gU8E.0Ez0.5M2E8 lzrobGoemoW0GWKKvWom4KsCJsarRqEIeGJqE,8k20LtyKpKqlGr2qHE8GVmqkC4IYBAVjJibB giBhuBgoBhjph7gbUIYrxirpZjJgZJijphiQgcJYBAVXxhiZimBhWlr8rtakS0GFyIlKKt66PP O5fQTvQnvQdXnJYBAVqhgmRidxhiB,IUHBjnZCyWntM.3c6PM05HsaLtaqnWKuakS00...6PHv M91HMD,d6GorC4UX,3c6PM059O1fPDPNbP0v76IUWgV7AhnRiphgnBVx.IUBIZeAZBgV7AdB3e DJeIhV7AVH3YugbUQeNReIhcBZZUQdZJiihggZZUQeoJidphbRiggV7AVExhmZinZZUgdjZAYZ UoedhAb99,tI9fQhPO5PNb99,tIdvP69,7IZvPVPNZ9RHPNb99,7FHPM69,tETfPdnrmKqKKtC LK0GWyqlgB69GomOLWKKlKrnmGEqomGrkin4qk2CobuodGp4qk4ak28rmCrrmquGroyaUgbU2b v2YcIZUwhihgU2id3jZZhUIiZ3imhgnhgiZin3YmhgnxB.3PSdPNb96JN8PM0H6PHfP9vJ,ND, NBXdAr76Fd8UgBhihgUAhn3YpAam2Yk7SQiUYhjphbZZUAhiggi2YmhgkltK4galEJ0GtKaj,. ..F86v76ftC,78J,.,ltYhdpBFGsaKwUcBhb3hUIZdg,UKhgmZiB3Yx2YnQbU2ZeMP1fQDPOR9 63PNdvR9PNR96dvRT96NPOQiUI3.Wor8ra0mS0GNiHEW0..cR9fQdPO5PMN9659PfvQdPNZ969 9NDPN,NMR9N,7PHfPC5klmquSJEqXgBBSZf2YmIZgBhihg6VvgV7AVXFYyKt22GnR0GIsMNPRF 00ro.3PNd1YhZpgo3YqBhZ7699ND1cR9fQ.sQ.c8HN1UIxhkhdUg5l,UI,VPO..CKqQCQiUIZd UBAV7weUg5FdAJtMNPRF0iGECKqKrfaGEeGE0pr8LuoZkxhdphoRbBgV7YeN3e3hV7AV0ZhjRg f3Yx2YExd7pdIhcG3YIxdUIe3RcDJe23YPhiiZiVxgbhgYhfBA,H6R1vNp76LONZ1R7Jn9Q9vC PM0aktaKxKKR0mYuIeKoXKIdin2aEIeGECroerm0mrOKEOKtKqm0GlmqrCan3YeA3MM59RfPMN fC,NGR0M1HM0Oqo8rtGLR0mY.qk2akWuIWin4ak2CIqKrtEEqHE03cI....C5e1sFQb72Ze2Yo xhoBgg3YnBhu76JN8ErKKwGLR0mVmquC5in4aU3,Pk2OpoK4v76.Z0.2ZKBhZtQR,am4aU72hZ Bhb3hoJbUA7w6q.U7M1gdjZgZ76v76V0I8y2.qorG4bf9P0am4ak2akkmKqyqleHEaIbsF..ME 59RHvPRnS.I8.UHhgm,umUCKua4H769eH7uCq.PuQD96v76ZOF50g7sQggnRiVxgZBZUgcCV7U KBcGhV7MP9PPp76PuP7XvgV76Q1fQPdC,dI9uEM1HM0H.AgohgYhZu2Y7V5lR0GIcPfPP3PNZ9 6TfN,dMn1Cqu8LtKKrGLqaLE4Kqmqr.,d8H,HsMQCQihIbUA7...QggtQEECquIC...6O4KsCr oM9p76H066Fd8,7RUWBjo,...Oqr8LEWqm4aUIZdU3,PUcV0ZhjRATeNBvQp76.in4qk20Jdyo VKIWKJdKIESomGLYKqk05.in4ak2OpU2YdZiu2YBhgod9H8R9PPrN1HcE9uFHeHPM0H6O..,dC vFOin4aUBhgoBANuPTvOf9QVOMd9OFd6LONZfP6O9PM.EFmGEaKuamRqk2akYOIEaKuuGf4Kqa KmWmI0GH0GIaKuumr8Kp0mS0maKKucR1fQTeMJP8,d7,,Grw0LEqHEq2AhiZiIBjkBZUYe6hcC hV7M0..00aKuumYuKuOpkmKIam4aU3l4akWuYUwcZZC..rl4a..Ack3iZphY3Ycoe,JeUQiu2Y ,JeGBcN3YDpcUQc6BcGRbUYiu2Y,J8.kIin4aUKVghgiZZUAhg2YeJbUAdC,2YX3hu2Y137in4 aEV.YhZphUIbx2YAhcC3ZnBZvgV7MO,dCv76VtC,tJFOGNOF,tQrOOv86576V7K,7FT86HeH58 8HP8,NFk2IhUIbx.ZOFVOF18J,tMF96pND,7RreOvuC,tQrOOIbxsMFvC,NGRWeBZv2Y7p7a4f eHdOGN86FtMF96vFMWpI0mb8JEWmo0mS0GqKKramRq.bvKNPNR96P76XNL,dC2aMhV7g6Ack3C QbBg,.kd4Is0rm66Un,U4,2Yo,.CJYyIdGpVWoUA3cJEu8LR0mU83IapoaUwd43Y1Vvg,.QioJ iUIbx6R7tC,NEV9Q68b99,tQdfQHN1HMFRWHBck,r,.UdJjZxda3Ycogu2YH37.00iom.d0HdC ,NG.qU7.lfC,NG.cE.CoUCpW0Gn0mbOo4ak2mLE0HVWJRIe3ZeJJeC3YkgV7AVwNAl89,dAl89 ,7BleC,dI.XN1HM0tnNWJK0mOWJR0Gd.8n4ak26Cl89,7A18Kp76.Wn4ak2MAX,.GLLCroM1H. 81PM0HM0l96pNDCJLOpUmIIaIbG3YZUYiiIgVRiZRfkgfdQbBA,HMG2jUYc7peUIapo4576V76 d8G9GEWLEenSYiiIAUiAhY3YBxd23Yo2Yf2YloaUgcCZ6EdKIeK3.0WUQedJDTGICJYy2FtEFe IF7SHN8N76df9.am4ak2KIaCpW0GdKIeUogV7MFRm4UUMOp1rN1P..ocjJihxda32dfC,,.UH3 7Q6M1.MGQeio8..H767OGh0gbU2aUY89m4M0.CJYEIUHpZK,.kIam4a.NWBAV7A,..kMOHEiGE GLLaKm00YadAZBA,9eHq.2Y4xhmVvM0HM103.SJtaKuKKb4qqKKEWGue1.kR0Gf4IdQiu.sH.H ,O3uqkqqmeHEiom.ROMPnR0GneHE.50rV0,cN,dCvFXy42ZoBZvg,C2.6T0HgeHEGoo44uma4K sCJu85WGFCGWKKveneuKmKKnaKrKKm8GK0mtam4ak2mbl2fu2Yn3Yug53dETuHNOF1eH3N1HM0 IaMJbUQCkdWob83c6PM0sAeHEC5sEFOEZ06BlWn,8ogGpW8m4a.KHg.sIkYuIe8m4a.OHgeHE. aIbGpWEFq.waMJbU.Q8cI9OENe6PM06CeHE.8pW4Ia.aHgeHE.CpWGJFq.2a,,UAxdCxc7pdIJ 2U0FE.4IbaJdKoV8m4ak2kVWJR00.0Je8JFq.6FleC,,6ITOGRmW8JFq.MFleC,,EdyoV.3N1H .OIgeHE.CJe8pYuoX8m4a.4HMWJK0mM4Xg2YlQ4qk2AV7p6FFLa47OG.5Vd2YaEughjZgiIiZp gXpho3YygbU2ad2YI,M0b96pNDGbhViBghhgYQbUA6EIEFuGFamRq.HM0LONZfPsF99RdOSVPN ROM2ZoZZUohVhBHtC,tI18Q.ohVVBA,HMFNmYOIEOKEqHE4nMWJEGJYK2M0b1.UY..I2ZOF5uH IYdQbUgV7AV7g6.sAl86d8G.HsQEF0pb.U3lWU7QCUG,.gcCN1aEyIak2fu22U1xdBpZ7heiRh ixhrphWg,m5X7Kp76.kXKpYGIFqk2Um2fu22.cI9uIf8Hde6PU3Z70GWaqk...UfpBocjJihBg oJYg22M09eHMF2YLJid,QbBA,PEc.66RONl9R,783fC,dEN1HdC,dEN1rN0Fd8uqmWLuIggxB0 mouKECrkqqm0mlmquUUIZdg,HcJsQHXu.9uFQbUMMDfCiom.d0rN182UoFEenSQ8kZKKt.69,t IRdJMG.NFluGu4qnaGEGoY6B,d8,7BHtCAVnBB0GRqXoBgbpZnBBQZU2hZBAUD,aU7p6T8F788 be9h0...Iad2YI370mta4e13f9bPOpXh2YHpZ,ZcG3ZWpZnVd2Yf2YnBhu769eHUn,pVcQidJD iWlgad2Y2B74HP0GJ0mMOnRqk2aEd.o3cENvPYZUQei.H0.H76L76b1HN1HMFcH99Sin4q.Z0U 1Zhp,FONHvN2YcQidFR.M8p76H0sCPUcI3F1sPB9619659PUUAhi3YkBhsVUIZd.cPTfNNPORn teHEa2.82UixhaZB66p,FtQHXUYc7FtK4MOkJ2ZgBhihgLhZlAZd2Y2VgBBQbBA,Z0cPT1QCJ7 6F7PHX63Yf2YgBBO3qoI0mJYB.in4akWu258Pf1W2sCP..cJHPNWoma4WmIeHEa2.aEI.662Yq BhZ76HfPKLraKvKKtAgg3YpphdZin3Ye.klm4cC,tEN1QbU2huMGR0U0,sM.,dCvldo8QcghC6 9,tG91Iejxho3ZdAZv2Yc3Yug5VtCPM0SJYaIasMN12YX2YCBdA3Y2xdBAV7AV7pd13ZcZZU2Z XZhpZ8qIEiGECIqK527EICKqQCoZnBBamI0GJ0Gcy4koM8rN1aUX,2Yuklm4c9RPNl1HkWsCMG .59PG3IZU...Z06OrN1HMF2YKBBW2sCq.Q6UEBgdphohdZhhU2ZaJ5hOO9ntocmBghhA,7RT9Q N763vPd9RTPPp76.amRq.h0sQcC.Q539AN7639PL99uqmWbucEN1r769fP7fC,NG.rV7A,.dGs sM.F89WLK0Gw4HK0mweX7,66FVppBd1k2GqrGLK0Gs4qouaZZgg2YmhiiZhZphu2Y7,M1sMN76 59Ap76HeH.I6.7XUIbx68VuPZ1AB0GWa2Bf97vPdP8eGEOKLkRqU7Ad47NT9R,ND,,Emy4pVap ZYFEKIbG2Qgg,G3,dCvFM..,,b0Q6Ug...PUL,.2YX.G2AV7p7CKqK5Y8m0Y8IZYxhoBZvg,QA U63YukVm4kmUcUnViQC66JFmyav.HeFWmlm46J2Yh2YXZBd0,7D,dMT1aGEyIdsMQC.L76516G ,dD,7RTnI0Gek4M0HcNR7FZPMjfI9vMd9859PWorgdeYgj79C4b1dWg686Gs859PfvJeGmy4kt .00.WIKqk2ak2a.0prUaBhgZhg2YExhmVbJiZBjmgadQbBU723Crl4Kr0ml.0mkuKmYgmBA,dM NvPQC.HcMNvO,dCvld.30mWH,a2EKQgg,aGEiWlIaUQZU2B.y20mK0GOamRU7ggiZgUIbx...3 9PaGEiGEWmlm4c9EEqWlIad2Y2B74XU.qGEWqm44.s8,7BrN1HU7Igk2Yug539PLvC,tMV76pV hAavgV7k2aLEenSQAUI,m4.J7NQ5M0Vnou40GRqXloaUYc7p8Z1.r76FVixB,7QH1AggJiZBgY BjU2iVBBkruKECqu8LtEEmqo66JN8k2W52ZXZBFWB7PHfP99GT1VPMHfPM8J7NT1M0j0Qei... HFS0mmuKm0GWy2A,HWH,..uGu4qnMD,tIRNEEqianBBaWI370GIeWaJCkr66JN8k2sM,dCg30G rKKw2Yukdo8I669.a2.M8iWWZhfp366LFo.sHM8PM0Hk2gcANGAaUAdC3YHp3sI98JN7631d1G JY.4Kt8rkaLEemIU7klUExhmVWZhphgv2Yi,cH9XcIggRhdgV7k2g6KYcIZUIC5vPZ9N,d8H,a .5HR6IT18rmGqR0GrK4,,b0I669.a2.EE6839Pu0u0Uc,kbEEMAfV2VlEJkIqk2M0KIbQ5M0aI XQgUQYUQgk6JFWBU7EtKLrm4,dC2ZHp3..M8qGEC3..0nIaGEGYKdQC5.PM0Hk2sJUmhii,x76 NPOweh2iVBB667uHk2Ew4HEenSsM.m4W2.jO8J,U7U7FI2aUQYUgZlAZUoYU6S,7D,7SXN8,7J .a.oAEdUsZZUAjg2Ys79aLEiWgV63Ye2YYFK28En.59AHN1HU7U3,M06F9uEFdQffP69mqosJP ,kIiHE0rka42YuEM.H.l9668..FuPAZeYgjFEa2aLK0GImqokJmqouaK,HFJUd.a.90k2MGIip pB220HEG3U7U7ll0HEUUYe6FEOKLGIt..2jUQZUIippBIZYxhoZ3n96.F86Ug6I..2Y3p7U7U7 p70rka4Y3.HFEa2WLK0Gt.J,H,A,K2U7El22IggRhv.pVXhV7A,HkW.A,39PI5uqmWbBA,akW. AV7p6s6.g,A,Z12YuEIC3..9fPaGEqGE..El....Hkf..uXgVL,EEG2M0oA..n99Wml.Pu8EYy 4ULB369aLE.WIE.28..in4k26F.69ULh3.H,.,dC24k26SEIC4.6GTXd.r,ADYBs8Ef..H,A,9 0k2A7856624EE..EK2D.I3Y3n96.F86Ug6I..22.akWM1a.Q5sMN12YuklmanVioBQ5MGRWX,Y 8mWXZBEYamRq.9WBMF2YEBgdlasCPM1I850MH1fQLfENvP5HEWGne1..bPNNfC,dEkRwhiJbUI cDxdAVdQbBEf.Uu.kRohZFR.MNYZUwhapgnZZUYgjZCCqrmKR0mY.iHEOqrK5pFVy2sCPU7QAU I,l99Y3Z99,NNp76H0UcI3fXo,Ic3,YAI5WGcyKtEsABY6oA7Xd22OKLkRq.HeFG4,ND.YAI5O 42Y3,QA.2YuEM..,,b0Q6Ug...,dNT1,dCoc,ZdHhcvg,S36851665,aGEOWypgjhiiFWU7gAI 5C3MG.Nll.aWfMAZ,FtM.RtQkKA4Y6A4,,i1AdC,UIFKQgg7Jg7JFmM8r,o6FtIR,..C5aWwgb UQ8..CrmmqIaGEOWcQ8..UUYbUgAaWIVBk2aEnyquuaUUIJeJhcvgV7kWm2P.HMGR0.d0CIq.F ON..R,aWe..HsM.,dCQAUioBQ5MFRm4AV3lRkYOYaxhpVI370GIsQ99P,NOb965vPR9R1PORPN 796HfP,tM.,d8M0a2TfP,7JFOFQgjZhUIbx6IT1S49fPPM0HkWmY7,.sIktKaiYiVxgd...cMM 1H.gcUQgjZB.cQgV7M0u2M0RPN22o72ZnhggBZvg,IiUI5Wml6G66YBsP.sJH76Uv.T1,dCsIU 7,.2Yf2Yc,kbUcI3dPMD96JN8,N9,tI..QAC5amI0GWEtUp,Ut,516JTHEiWc2ZjpgaFWaIfYB .WWdFYi0o8Uf6P.EJYA.l1Wml6G.EYy468TfNMHT8FmqosJaGEe0.KKEenS2jUQ3CJL..ohZlI 0mK..UnVd6FcQ.66J7671kf.996xND,dQ,7FTO1M0Bf9...n96YB2dU.mGE0ZmVa,,lrAZvg,A V7p7a5F,s8m4O3.M8r,aEwUc..EYy4H76J,i1AVZ,l1996P76ZvCPM0g6.HeFKKEuHEWLEGJYE nY6..KKK0mw.66J,m0..6690MFg,9WUgdVJCUvgVB.506JFPObvENPREEWGn..UsZZUQitJbU. M8plVm4sCPUK,QCI5.iHEGqrG559PUIFKQAU6J5u2sCPEVEbEmER68VuPEsAB00oA7Xd22O4Q5 A7G4,ND.YAI5O42Y3,QAUUI5uoYmoRqk2A7Wmlma6VUIZUYAYbx2Yn3jd22Qis3Yw2YcQA.LFN .y46PsJ00M8G3q.HsM.kd.5069..k4M0.G3,dC24kf.5XnVUQ266.HMGRWX,Y8m0Y8.sCk2C4E Y0GRsE.K4.b1RtQ.kRU7Ad4,UIFEmnSMSH76B,n96tll.UfsMN12dd2YIVUIe3,CKq.PM0AV3Z 7AdCR6.G3N,U6tC,tMN12Yukl.uGrkRU7gcCN1a.U3lREd..QbBMF2YI3hd,.P.C2.IcgxB0Wa ,....A382Q5HEf.Uu.kR0GlmagcPcCYB66BvPuaukb.M0H6NY3NPOohjZZUwhaFKggi794Km8L R0mY.i1QAUI,.WIR..30Em66pVcsP.H1.M8,d8O4Q5A7G4,ND.YAI5O42Y3,UcQis,6G.N1F0H ,7XdsHZWcQgg,00..sJ.0GSEw.q.HcIG3od7ZdBA,sCsM.,,b0.69....Y80GR2av2YaxB2Yu6 6BWHtCsJUcUnVUQ2M8OWy,Y6M0HeH.6JY36J.M8r,C4EY00C2UZ,ktELC5.Q5MGBWX,Y80GSkw UcMS..Q3.WoI002YaxBcCY8gV7A,98H22.Ee69.27r,UUI5C4ELu4i1cHq.sCMGoAEeUcEICLw m0aWkxhdpBbnouKuyKECKq.,d8UgBBuaUIbx68Flwg3516JA3707vPaGEG2WGqa4F86LFqEf.r N1AVjVUI5....71qobGYcYB27.h066FVqhAa4whalmGLEaKrYB22U7FIm4O3qIEmnSwhapAH76 B76yKn66t76NPO27.h0aGEG3q.akrUuUn3jUYc7,M9EYUh2YgBBWorsC,782hjJiUwhapA9XaJ ijhhUYhZpAaKrG5NPO22U7AgYJiUI5C3MG.NllsQM8,t8WGqErc8,7PHXL32,tPBfNaWecQkuU vk2AVckvKqH8rm0GqyqrAhixgUogjJiUYichgUIggxB0GuWqkGLECqruaVlt0mkGKmggnRiUAg YJiUIZd.HcMcC.I669C3MG...412B.y20mKUBU7ggiFR...39PaWf6851c9b1,VlU2Vl66A4r, akf.b0..ESggiFW.HErEEEbK4FdMsCP.HkYMM7fQmHEC3..R1HFe.A,a2b0.UWFLsNQYUQeiA6 Z0QCA3d0,dI.39PLP1HU7kWm283Eb66Fd8,dMNHEaqt0mk0Gn8rm.2YeM1M0gcCN1AV7MFN03n pI5u4q.aU3p7k2K2r,aEd.k4kWm2W0FVg..IA.dvR.bXd2YGh6..Rm4MFN0Z0.EbkW66W4UvgV BEdQ6UHhgVJiX3hEBgo76F7RFPOb99,7RFPMeHEYB66hOEZGs4KuWKRA6A9TeFaIb.r76hOEYB e1.HtCcJcN19RFPNZ99CrruKR0Wg,GrkI5L06Jggv2YaZhVxgg2YjVZ79,llGru69,NOp76.iX aNRI5y290I6.HHRMAr76NPNR96pVk66B10GRcFQ8r,HWyxd2Zcc..69GLoaaiYiVlI0Gek4M0B PMd9O2YuEbaYvU7YdDxdEhV7AV7AV7p7CJLO3...QbBU7oggBgb3Yukd....,NHTWoQbBU7YC. U9hA.Y3b0A7..UhcNNPMamRq.akYOYaZhV76xND,dA,7JFWUAgXZC2Yug5d9OHXaBhmRCr76d9 OHXVRgohCUVRgoVBAV7M098H2YVRA66sI42GLoa4bPOM1aU7gcCtCk2m2U7MG2Zo3B0mS0GuWq kAZUo2x16JF0NPNUdRbUogj,pVIVUgcC,A,T12YuEu4ai2ioJijpgaRiP3aRRbBA,aU7lrO49X w2Yk2YIVBU7kYu2..kkSqImGEy4kJ0GOamR2385dvPZHEGrk2YeM1M0Ad478B9P1XyUd2Ya681 vMd1mHEGLoc9UUo2y4ESgZchgV,w7A3d0,78ohZ3D,NMZfQMNNPNK4,d8H,a.aIbMM51mWoBAR tQkR0GuW44466pVV,q.a.98H68gik3Ye.a.GLoaqtYiV76pVHdJsG...H0.AZUQ3B9PAZv.H.H eFOqk.vFbaYUYe6VG,gcC,A,QijphUIbx6RFPOiHEGLo66pVaBgoVv6F9uEFNOHtCk2EnEEkd. .Eoc9M8,NH.M06R11.Q7..U7,..g3kIi1A,wBgAe1dPMuGs.i3U7U7VgFEu100MMUU.F111MFN uI9mk.e1bmU.sQEEK2U7UHpZ5hcI3ZVRAkJ0mrkmY3BPMd1HtC,tIR7If8JFNM..kdumUktyKr umta4amRq.a.aIbsI..MMaGKYadgV7k2MFRm4A,HkWm2P.HUH,...bvPamRU7kYOYcQijphUQY UUdUy,Ye6l4k2EWkdu0.UnlImGEGXvg,A,A7u5...oZoBgbN8,,0GI6NSLr0GJa0A,MGAhUY5N OFRGs4KuAZU.P.H.A7O4YbUIaUY82YkBAipoqJEkrO4gV7A,H.g62YkBgo,kk.qGEC36R.66Ll r.k2.9eHU7.9Wv.H.aIbMOH,A,6RF1dPM0GRsIO3i2..h0H0UoVUQ3B1HtCk2UH7If0G5Q3.NF n.cN19R66pVoVv.00CrruqRqU7M0kWWpYGp4a.H.9eHq.a.9Wv.HU7VH,..Y3g,A,9WBU7g6.U 3,9WUQeZBA.rN1P..IeZRiZZiBBgmtQrN1HEfkl.e1.rFlcC,dEN1rlmcCa2kRqU0,sM.,,b0Q 6UgsG.Z0.S3sM.,t6EEG2AVW,.I669,tIU7,Y351M8,t841.UDVU.UZVu...84H76LFI.o366A 4Y6EEUvk2w8kd...Y59XUY6,NFluEN88be9kdUWFLG5HVkAZv2YWZB,,RON23A39eH.5166pVX ,oZiVB.q.2YGhgn,UBEd.sIU,phX3B0GI8KqI5UvcJ8ZkVu..50H,O3qKK0mqyKmeHEiom.PuP 7PRNPNr76ZPNB99,tPBXgMONVg2YfZZU2ig2YslkmGEuKR0mY.iHEyKnMNCLR00kM0mbOY7,M1 AVUYig2YaJbUQ8sEsC,7N9vQeHEi2EekRohVhBN76dPOd9P9fC,tG.RmqQ5dPMmWoBjkJbUQ7U Ilmg,30kqyKm0GRqXCB7r76TfN2YuEMg,qKEenSQdZJCEoaaAxhVZgZZgBxBFd6FuPb9RjOOR9 NTvRbf6HtCPk2aIXghUQ2RWUY8g,aEtKKn0GRMPRdQ9fNbvC,tG9fQkXcI9fNVeQTvMFdQ9fN2 jgcPM8rN1AV7FwQYU2aU.k28ZEh6qk2ak2aU9,.oeVJicIiZpAGLK0Wg2YYhgn794KKMMM1M0f eHdOG6R,t6,NAlO8,tHZGIuqkqaUgbUIYrBB1eP59OIYdQbBU7A7GLEqHE4Hg0Ge.A,bmXkquG m4Ku4KEiGE4KK0GsamRq.aU7Fs0mF0GM.k2sI9PMZXEVcQei.30mWk3Yh2Yo69,dMNvONlrkm6 9,dPHtCP.HU7Fr0GT00EEyKn66MA,NFRm4k2g6q.akW..K2r,P1i2kqyaABhnZivg,S368PvP7 96v76RWdUc.qHE0nIo2qKEC0EWyo4M0HWhpZmll666A,,q.akoUkQ5M0j0..o2aawMPRdPTfNV 9RZvQH767uHk2Qei..MPR7QdfQipoqJK0Gs.aU7Fs..A,Cpm.....UU.91.A,a2R1.,NPT9Ne1 PvC,tPBXUI5oZk,2Y3p7M0HkW.A,HeHABP.HMFg,Uv.P1cP99SkW.8pmCrm.M0aIXwBs6,7AUB U7lqy4576R0d0k20bo3hUI5whYp367A6oBF7Q19RmGE8GL80M0HcQ.Etogn,U5,03.W5kIi1AV 7FwEM.k2Ie3,M0HU9,.o8.G522.oBM1M0K3.A4.T1unSAgd22wB6D4KEiWHBByYcogg22M8HtC k2A7G541g6,tI18Q.Ui,k2gcAV,3ik,.3tDztD3N8PM0A,9eHq.akW.Y72C22IYrFm66NPOb9R 3N1EbQ5MOkMin4a.j0MO,ViBZUo2a4m2yKnOaZlIaGEGobU7Qei.V96PVg2YolIi1AV7lMcH,F LUH,d1,7JkU0Ls.69QfRJYdg,AV3Z7q.aUf3Yug5V,A,Z0.HUoBjk3Yug5dPMuGl4qtsOvuC,N GsOHtC,dOenS24k2sJ.J96t76dPSuGnaqmmKmCLLuquqqI0GH6Rn9Q.whWJhPJhRpZjpga765l rO49XPBBH767GEa2eaUg6in4k2g8Ue32..R1y2iKEuHEGrkMO7967OGEEqobGYloadQbBU7MGI hUY5Ud,EEGJYM1aU7kZ.kb8KpuokqacMSVnqyag2YHNEkw0ba,wBi3H79,dP1XdQ5M0Ack3iZ, .R,,tI10.cPk4k2g6.HU,,.I2zd6HN1M0KIbg,AV3lRU7Q8.L76.EKUUA7ABkWM1gcAFEUUUWI YBkWu2K2,tIU,,in4q.ZmV.2hjxi0ZhjFEWGlcC82AZvg,O30Gua4MEZ02amYaUwd43Y1,0rkG bu...k4aEV.QeZ,.FdMNvONFs4KuAZvg,aIXMM2YX2YWIYUYe6,aEuaKumaUIbxkbIhZRgo3YV phXVZZgUcP,d6rN1ak24291dPOdXg2YkBAa0gcAVoBhoFE..RvPd96D9PTfM19PNPS,NMRvMUW g,KIbQ5YcZpi2dMoZH3Bj9G9PMyIleqm68be9103XiQidlImGEGrokIqk2K2,Foya0,rN1..38 PTX7phaxhU2ZWFR.iHEUnJ5kg0mbO2M8EfEu4au.EeabZ76b9RZfC42cAsH00Q582UoBAElmai YCin4aU7lb.h0HeHUg6R1nIYc7p8ZN8G3aEIeGE44c8U2h6...Y3ZN8rN1AV7FIGrkSKLqqroZ iVUU9hAc6H76B,cNHPNErkS0mMaGEG3q.HM0d16R.krsKVNLRtQdnuCKuqk2ak2K2r,SJtaKu. FlkSKKQCZP8r,CLEEF4Id8pUsHIYv2Y,3CktsQM1gcAl2WGJIC51e0AVL,.Udk2KIbg,9WUIcg xBa2in4q..6G9X7phaxhUcJ1WnBBmGEuqrOqlmquEtCLRAdC,amREfkl.e1.rN1H.UixB51sQ, dC24,tQHXUI5klm466sIU1,Y3.RdI.kfWoYkl.0mF.7m4M0HeHohjpA.bP8r76H0bPOpHKQAUi QCAZvg,QAUUI5C4ELu4kWsCg60GYKqk.r,.EIOLR0GfkI0GeW4PuP7PNN96FN8plaMNCLLwB9n RcE.8ZI,PPNPP1K2G3.g,V0..EdKqtG50GIO4h0b1sCmKK0GumWmZ33fC,NG.UKVcJ5H0sC.Ec 4qoYC2ZaZZUYigcMHtC6O,dCoedFYsNM8r,HeFWKECWqpZchgdxA0GeW2,dRRtMTfPdPNl9RRt I99RbOOpHISJK0GoaGEK2MFcI.rN1P...kI2dVphYZhZRcoJighdnxgU2ZBAV7ogu22sQ.o8gh nxgu2Y1xhidQ.RNH91QbUo8ogjRgpRiu2YKBBcJM1HM8r,h0l99,NSp,.,NOb9FTvRRfC,lbY7 QbUIAmWWJ538PsCqKR0mdKIeiHECKK0Gq4qtGrVeHECIq.rV7AVnJbUA6kM2aUwd4tEEEuquqK R0mU.OXD,M182ULBdI3dUghnxAwB.6JZPM5vOPuQD967uHP.31cHQ5NPMbXUI5UBM08ZE,ak2a EnumYuKsKLuWGwm0NlqmGEaa2VdQ5M0596pVI3BC2EIOKK0GwkIiHE8KEenS.30WGnmGE.q.ak Y6839657639PaWDJ8CKECWgBAAZUYe6l4M0HkYcM,t6u2,7J6638PMG68399,tQHtCk2gcANGQ gUEb.sQ,,3tMNPREEyKn0GqKabZic3YWQbBM0a.HWXpZnBB0may20HNMD0HEUBU7UHZimBBCLL aIrGLeyqdGLta4FtMRtQEWkM0HNYZUohphhdQbUAck,ErK5..376LeE3N8PM0ak2MFgcUQeoJi dlt..W0EKohp,.Er..EFIgtVWAZBU7kWuYv.HU,7Q.MMd9619N7nmQC3N8r,a.b0QC.U4xhmhh cQeio8A7UgsMH79,tIdfQsQWasBgYhgXBhhBggZ3n79,d6Vd6N76deIfGKoBM1M0A6.oBgV7A, HkWm2CLEe180A,9eH.HEWaqkm4CJosIdPMdPRb98bP8Pk2AV3,M0NPMb9R00CqRq.akYOYWVWF EGJYK2M0a2m4576.2YBBgmdEEIElmqpmW4BcAlI0mW.A,31pVWR5M0a2665,Y8...m0ZWd22g, AV3l4ke.xPOb9FTXvg,23aIX0GzGoo4KqktW4bvIdPM66B76FtQ,t6,d63N8,7JEWa4sIMHbvN FtQH769Wv2YeA3MGUUEbU6l4k2qok8rp..mW4,i1AVH3hjxi0tPcMNvOHN1aU3lRq.G2.Q8EI8 GFamRq.98Hg,KIbg,9WU2dVpBUgh7in4q...Ud.MHT9N9naCrn0GIO3q4gdjVnlm.HtCI6.j0. CrnY6,dJHPNCbJ3iYBgohgcoig2YKBBsO9PNVfFZPMPntam4a.N0cHq.22.kasC...M8.0JtyK sqotSKEW0.0JtyaZVZd9PON......2emhgahgmhgiRgZ3Y2xdBk2S3...ZONbPOpHc8rmOKEGo b0mqCrnuGnaKwKKm0GR6JZWBk2mbhRCp,.cFTvM2emhga,c9FvPdfFTvMfHEe1..e1Z1.bOOp1 .c9j96pNDSpR0mqC5F96pVKV6,W0A,98H.uYBM098HU3p7g600.g7i1PM0V0.qKR0maUd2Y1xh kBj4JijhBFlrKLtCqmeHECJuy4bf9b8R8bdY39OHV8JnuCPM1P..MMp761uMdPOTnIYcjRbBA, h019PNnlmGECroebgkr.sQpVClXsCqqtI5P0aEVK2kkm40GRsG.18PNXVVcA3MGBmqKaiAggZh j765lkmKqEeW2M0PPNu0ERMMN1rN1ak2qorktIcmxhVZgXBgnZicghZhhg2YhRCHtCa.VHtumk mKqMM66.Q56G9PMV1Qid,.UdM1MGohj,UUQ2VPMZf959P.G30Gs4Kt.UuEryKn.kWuIW.sQHXU QYU2C2hZBAbPO6JF0..e1bPOpX3p7U2,gek,0rk8rIq.sCsI9fQh1YcjZdVZiZJicAgg2YHhgm ,YedRgfRicAZUQ3KKt.8rmwBf9Rk4akW667uPrl4a..Q827IZvgV7cJcRp76kR0mkCKua4p761 uMkR0GmeHEGorC49XnpZ2tMUvM030EbKofWGvamR0Gvu0H1,dCo827EI.7966FTvMUn7NHfQRd H9vRFdRN76j89,dRR7OUd.hOO9ntwdkhA1ORl98799,d6FON1HEmokarrKLu8mIqk2UH3BUvgV B..S21eP5nrIZU2ZVZgmJ5H0UDheI3YV,eHE4IdUD,AZvEV.Q811.FtIR,82Y319NZ96P76EVU DVdYZUAgi,HtCg6w6.iXBEd.sIMERvMFXe.e1.H,30UcFVwBWmdu0.mWVFE6BHN8g6Q8A6kRUG ,kYuqoGrRqk2aU,lkC4I5C4QbBcE.SomGLY.sHsCcHMP9PPHtC,NP9PPR,2224PM0CJuy4bnYu qoGLWyqq4qouKIqqmqqIg,HcHMM59RM8r76bON.GYA,QgoVg2YHhA.RvPjP8PM09eHAdiBBrl4 8oWS2,NGRPOqkWuIWYcZ7G4aH3CRN13QwdONlnVyKr.c9bGmCIu8LqGomCrl0ks,.ELCoru4U2 hgn7.CorMMHfP9fQu0IC...Qii..70,cw7U.2.YW.6.,.H.0..4E,x,,E.0.1X.w.,6.n0,6.C 6E..WE.2Uz6.0E.cUZ52..676.16.6.665hK0E.0E.Kyz4Uvq84E.M66.,U0O10.,..u,2..4I taqkmaUbl,.,6Y1.0.UywPunjdL3wKuH4iHT8ssHor.sET1.UM2U.6..U6U..F.,6EruQ0uGCO .0IzKU.pj36.vSP0qHrd..We,... --- end of encoding --- |
Автор: | Илья Ермаков [ Воскресенье, 27 Ноябрь, 2016 03:45 ] |
Заголовок сообщения: | Re: Введение в блок кучи дополнительных полей |
Код: PROCEDURE Mark (this: Block); .... IF (flag >= 2) & (actual < this.last) & (offset < -4) THEN (* next array element *) .... S.GET(actual + offset, son); IF son # NIL THEN DEC(S.VAL(INTEGER, son), blockDataOffs); ... Здесь вверху -4 так и должно остаться -4. Mark - единственная непонятная мне лично в Kernel до конца из-за переоптимизации процедура. Там рекурсия, реализованная через циклы (при этом массива для хранения стека пути по ссылкам они не используют). Вот это -4 мне непонятно. |
Автор: | Rifat [ Воскресенье, 27 Ноябрь, 2016 14:55 ] |
Заголовок сообщения: | Re: Введение в блок кучи дополнительных полей |
В книге Вирта "Compiler Construction" хорошо описан алгоритм как проходить по дереву не используя стек, а "вращая" указатели. Также вы можете посмотреть реализацию в сборщике мусора Memory.ob7, который идет в примерах с моим компилятором. |
Автор: | Илья Ермаков [ Понедельник, 28 Ноябрь, 2016 13:23 ] |
Заголовок сообщения: | Re: Введение в блок кучи дополнительных полей |
Спасибо! Я пытался найти в Проекте Оберон, а там просто указано, что "ядро написано на ассемблере". |
Автор: | Илья Ермаков [ Понедельник, 28 Ноябрь, 2016 16:53 ] |
Заголовок сообщения: | Re: Введение в блок кучи дополнительных полей |
Хм, и что-то я не нашёл вообще информации по сборке мусора в этой книге. Может быть, речь о самом последнем издании? |
Автор: | Rifat [ Понедельник, 28 Ноябрь, 2016 17:39 ] |
Заголовок сообщения: | Re: Введение в блок кучи дополнительных полей |
Да, извиняюсь, не в "Compiler Construction" оказывается, а в "Project Oberon" раздел 8.2 (раньше был раздел 8.3): https://www.inf.ethz.ch/personal/wirth/ProjectOberon/PO.System.pdf |
Автор: | Роман М. [ Суббота, 04 Февраль, 2017 20:19 ] |
Заголовок сообщения: | Re: Введение в блок кучи дополнительных полей |
Илья Ермаков писал(а): Что-то я ступил с "магической константой" 19. Это просто 4 + 15, где 15 = 16-1. 4 - стандартное смещение данных в блоке, а 15 добавляется для округления в большую сторону до 16 через DIV 16 MOD 16. С учётом этого выше const19 выбрасывается и заменяется на blockDataOffs + 15. Поздно заметил эту тему. Жаль. Как-то я уже интересовался данными магическими цифрами и пользователь maliya разъяснил некоторые из них. После этого я решил внести эти константы в код в экспериментальной ветке kernel-refactoring: https://github.com/romiras/BlackBox-Com ... 59ec9e0e20 Код не претендует на правильность, это лишь гипотеза. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |