From: Charles Thornton Date: 2007-02-24T03:44:53+09:00 Subject: Singleton Class Creation Differences (rb_singleton_class() & rb_define_class_id() ) This is a multi-part message in MIME format. --------------030107080501060409020200 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit While Looking closely at Singleton Creation, it became obvious that there are two distinct Singleton creation patterns. They are generated by the following functions: 1) rb_define_class_id() 2) rb_singleton_class() I have included the start and end node charts for both! The question is why do they inherit differently?? I suspect it has to do with Special Handling for CLASSES? I also suspect the difference is subtle and never the less very important to the operation of RUBY Chuck T Thanks. --------------030107080501060409020200 Content-Type: image/png; name="def_class_end.png" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="def_class_end.png" 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 --------------030107080501060409020200 Content-Type: image/png; name="def_class_start.png" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="def_class_start.png" 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 --------------030107080501060409020200 Content-Type: image/png; name="def_singleton_end.png" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="def_singleton_end.png" iVBORw0KGgoAAAANSUhEUgAAAb8AAAJKBAMAAABOilZ2AAAAJFBMVEX+///Dw8O/v78fHx/f 399/f39fX18/Pz+fn5/T09MAAAD///8xGCcnAAAAAXRSTlMAQObYZgAAHElJREFUeJztnUtv 28qSgOc/DGYzy+Ob+MLa2XkY1C5OnEDc5ST2gbRLHHtg7RInDuTdxNcnkP6FZVsGtRlQlC2w /tz0gxQpihS7yWqqycsKkojNfn2s6uarmvUfUG35v/9Ydw8USw1YdqkBscUtuL0iAa1AxoU1 Whiga1mJWyqlKMBlnRWkxWIAY/XlFoJYCGASSRGERQAmDzdXPWEBgKumE/WE6gFXT5fKCZUD pp3YVZ/4VQOma0jxCVE1YHr3FRupYkARA1RrpIoBhbSjVIVqAcXMT+koVAso1nWlo1AtoGDP SwsoOn2onGaUAooOLpU2qhRQuN+lB9z/8cOEqyb5NemuzIgvKgHnlmffw+wa9ujmQ2e+2wly KjxRKAX0f7SI2k7NSURPjzE58aUQwHaDQkYBezE58aUQQINuNCfXvW24uoCDcxMODgcz68ty TnwpBHBI/k7Gk9t3RqPVfDQfm5MuGZNGTE58KRJwDP2u29yyrOu2CZdVAPQHnWeiY2g13eYh eMMvBFjSWXR+eqOTzBadZNwLt9kmCYYJC4AlPQ/O+z0/TbQGbrM/gHenXXhVBUDf8viJngAe Uku9/edF6+53F3qvTW9/aa9F53MHu1Szz487BNDpvTDt3guA/u5SPgVS9P2g2xTKhidF39G7 F8u5SnxHv9T151uD5VwlfiazZHzt5wKZUKV+LppTqv5ku/rvJir/dqn67wer/4a3+u/oq+9l UX0/Gai8pxNU31eNSrW9DX2psr8okxoQWWpAbKkBkaUGxJYaEFlqQGypAZGlBsSWGhBZakBs qQGRpQbElhoQWWpAbKkBkaUGxJYaEFlqQGypAZGlBsSWFvXXfnNeWHvFa5B6MjvDwtpbDyDU gGiyDsD+ewL49uArbBw07eef1ba3BkDniGpwh/3pTpoPattbA+A+UMC/wABr0HDvbbXtrQHw BbAx+JvY6sicWWdq21sD4FaHAm40DLB717BpNZS2twbA6TUfgwZ0pqMptC+UtreOWfSbSQCt V8brJtxNwI1dtowmxQNal/3dN9agvd0+G10duT+PzfRCOaS+2MaWGhBZakBsqQGRpQbElhoQ WWpAbKkBkaUGxBW2KqTQFmtAXHELXdZDpQbElcoDwr8DYLENFg1Y3MpIT2pAZClmZXJICr9U qwGRpQbElorfTVQWMLSCvuDF9OoB3cQ7pOQ9iKIYMF1PqhmVfn5TsO9KGdUBSo0xdQNSFaC0 UlRdw6kBdLPYXKZCqaICMLMyVIxFBYB5vkSFT4gPmG8soY9EdMC8OsD+Ehk2YH4bQyZEBsQY Q7iEuIA4Iwh1HKICYh17zLkUFRCrY5hGigmId+ARCTEBEY+7loCYDyPw6kIE9C10+vL7mX16 +0evCfbpV4C/z38cku0GwC/r+MSArZe9UW/MPw+/OQR4OvKcmqcX87rwbBQRMAi+MLumn3x3 7wBaJuydgb3DPwFPV/Q8mpt04xn/wD9YXXBueDm73VyuLLfgAc4Peg/gEwPsDaip7ZCkDe8b 9wTQhj/oxgceogFG9wFM+Dv4aBMWIqD/o9eBdwxw74YkTgkBPASALGvTj+QDN4YZC4g2CBUA 9u9M1lnXHpHER979OWDX2+BhUmC8dVE6wJm1ywGh3XFZr0+tG9557yEb3eCBbmA8vS0NYBDp jMwcDPDhmgPalulr0LmARUA4bZRkDIYmvo1bDgg7LWDxsoaBidJwDGEThcmzOEANZ1H/oNsm 0MHHAFs9okXwAZ3oJLPVJSDOKAZQy/OgN2xsMo34gDMLnJfgAz4wwC4n8U4TBKQfB4jWKwXX orfAT/TkJA9tYq9nREms8wcUcOoB8hM9PclPYwC1vBb1bfT78XmDXqqdfuIh+A7Pzy/t09H5 t+un1o8TYwD8uo1dqj29I78ueDm7fa8gTlF9PygjWTsWfY+m7R195Z/JVP+pWvWfi1b/yXb1 301U/+1S9d8PQuXf8FKp+Dt6KhX3sqBScT8ZJtX2dOJSbV81X6rsbbgo4+BhRDGeo4UDJvxW JusELESFNSCyjBM3FMlaAYtQ4VoBi1DhegELUOF6AQtQYdFLXCPblQdUb6NrBlSvwnUDKlfh ugGVq3DtgOUP9r0gy/qqPKBqG10/oGIVrh9QsQo1AFSrQg0A1aqwBsSVWBalNqoDoFIVagGo UoVaAKpUoR6AClVYA+JKki2qs9FiARM1pU6FmgCqU6EugMpUqAugMhXWgKiyAtAF+/nnmeW0 m0+2e7swPTmDp1938jepDSCMaXwbA9zm3u0ro3EG32Br9yp/k8UCrrJDl8a3oYCTMfS/WpbV CC8UySwaAdL4Nh5g6/kFLK6EySz6AMJ402p4gO53fw1XbtEI0IX2ha/Bv+7BGVQNcDJ2u73L /rPJDXwG4/3f1dPg/bG5N9r7NLk9PoK3wyMnWAmTQzQC9E8iE62XFayWlK7z3RUG5Crcu8Fs UitAtt+xrC5ik/oBIotegAruCvUCVKBCzQDxVagZIL4KCwUU0A+6CmtATBHpfQmW1yWLCCC2 CrUDxFahfoDIKtQPkKpQ1w8FpIlYv8eoC3k1BHRRl2zVgJgiBIi86E4/QOSVd/oBulUHRI6u pSEgbnStIgGFr1EwZxktATGjT2kJiPnVBz0BQxdrea+9NQUk85FrLUjWRjUFdJcm0qyMWgIm nCYynT00BFzBkQFRO8CU78pIG2qRgCJHPxVA9sM6mgGK9F6OUC9Asb5LEWoFKDq+ZD5sphOg +PwhQagRoIxexI+FPoByH9QTJtQHUO4EJ3w4tAGU/SKi6PHQBlD6S3qCB0QXQPlPWgoekQIB V16Kyt8LCR4SXQAz3AiVCjDLR1fFlF4s4Jse+f/Neew+JgtBbpjMzs+/dJLqE5CCNUiDMDjD +H1MQkFuaFZwzk1odxLrS5c1AEIM4NxCw0Fu6KfyH5sA0058hUJmrRtgOMgNDQDUHxA9JrhX 6gnYf08A3x58hY2Dpv38s7dv3lce5Obg3Hx7N92eWV9Oqdu26RegO4IKtQR0jqgGd9ifLl3M wyUApEFuHk1imS8fTHI8DJ7sFWA75qIl4D5QwL9Ix61Bgy7m4RIA0iA3W5Z1DVs/IQD0CrAd ANFCq6RowBfAxuBvYqsjky7mCfYxYUFuDumvhxsK2PNMkhc4jNaXLkUDbnUo4EbDALt3DZtW I9jHhAW5adNfDy/ZkO2wZK9AO1pfuhQISC3KmF7zMWhAZzqaQvuC75tfyYxpkBsydb6Dv8i/ BtEnSWz4BdgOX7S7kmGA8M0kgNYr43UT7ibgdkM7ifAgN5Pbf1443ccb6L1+/bIB+415AbJj ob50KRZwZl32d99Yg/Z2+2x0deT+PPZnfU8dPMiN03thbnSmw0Z/F97snH8A8ArQHX51+t1N oN7Q63g/iPlIRss7esyHalo+k0khKP9TNcTnvno+F01d11P2J9to7150fTch8PZMsCZN3y6h vdvU9P2g0LVxmd/wil38l/gdvaATSXm9LPK6AaXsShINAcvq6STlNlhGXzUZQJq3dN6Gcs6U i8VyOI1qCYj5uXEtAZdxKg+Y3UaLAxRXQgxNtQDjcma2UQ0BY7VVJcDYjJltVD/AhFB+WZvV DjCJJKuNageYlK0qgOgfydUNMDFXRQDxv7CqGeCKTJUHzGijhQHm/lBHJQBXusxma1crwNV5 sg1CrQBXI5QfMCVL+QHT3pBmalcjwLQcpQdMNcFMNqoPIMIRiBN9ANO7n8lGtQFU9VnAwgDT FCRif1lsVBdAZR/NKxVgFhvVBTDv7XCiaALognNIcjiHFzkqiRVNAMfeB9JbzRyVxIoegNT2 GGBKgIIMNqoHIN1ZZUDW78l4dttwm873kwZd8kMX8ixnJKn98Zuh/efmcEDX+dgnGzHZwqIF INs3Ge+bNF4I+/NAF/LE5BxCl2h66BgfNq7pOh97+Dth5ZYvOgByw5vcdKmJTgeTMV3yYw0a MVlJKgUEA2Yjts4nZiXbougAyHdNhgwQZr/GdMlPf2TGZLVGpgfoDNk6nzIA+oFCrm8poL1N CDatBl35E5O3d+0Bwoit8ykDoLdnMm43+Bgc0yU/nekoJm97OvI1eMvW+ZQA0J/6J+PHZwTQ vdm42QO324S7mMzN8d3j/buhaZgPTbbOpwSA/o4+6fhl+346fDJq/Tw2R1dHMZlHd0eOcfai YRwcm3SdzxvrMqXdtQNKnru97IZwgbUDSl5elg5Q+uKL1eMYceeQWFk3oPT9ASvQsuJmoFhZ M6D81bPsESkKMIFE/gZP9pCsFzDD7U+5ADPcoZcKMMtDpFIBZnrZIFlonYDZ3oeVCDDbK1vJ w7JGwIxuE+UBzOo/qOfqM1RAmWUwRQEirhSQ+xL++gCzKlByIdPaALMqUHal1toAsypQNuZN IYDLqwFzLGXRFDDcKwqXfbWVZFimYkw0AjjOFUVCLiRMcYDj0FYOBcYa/ApZD2CuiCe6As43 5DoYW5t2gG4EMF/MGqmPIRQGuGCheVWoP2BGFUaWni9KPHVBVzIRC83K5zPELzGMTV0PYMZK 0tzB4uotCjD/SUIkmlbMIVgHYKYaxD5ztJyrIMDg0ixjWDPRiXOp+oJm0RBgpvJ+t1fNon6W xUOhEjA0g6dN5qvFN7zV2verXjRTRYDJ54IMZ4n4nsdUHXccVACm60mKMcH2YiSw5CANHVD0 mZcoo99pscnJPwjBwUAGlBpjIplFzdOXJTNFBZQ+xaXeF4ibZ1DlYlFEwExnuJWF5MzTl0Uz RQOU/WJd0J/E3i8PKNGuhP7HAswS8sOXBMKYKVG2RgsNMN8dbGzpTOYZrdFCAswbNjdO/zwp 65HzjouLA5g/LHAM4ThnzawoDiBG2ONlwnHmOw9PqPJRAHFCjy/VMs41cVFhT9DzA+bthi9R beV7vj+vIj8gVlzu6IHSBRAv7niEUBdAJANdrkoTwNydSKxLE0DfQqcvv5/Zp7d/9Jpgn34F +Pv8xyHZbgD8so5PDNh62Rv1xrD/44e5EOBsZuzO61q00Sjg7PPCJquJp71I6hwGoN+ndmN2 TRfmuHcALRP2zsDe4YvlaKizR3OTbjyz74FkCwc4O/iX0VmqbN67sDgLjui8Jp72JcgT7Vxu wPlB7wF8YoC9Ae3YDkna8FYDEkAb/qAbH1pdgFMzFODM6cBWc17bwoS1ZKILgF5NEe/7x8VN DED/R68D7xjg3g1JnBICeAgAWdYm1TPrWhDgzDb5wshIbX7vFmQBxqspAthb3MQE7N+ZjMG1 RyTxkXd6Dtj1Ngz+Pw9w5snkYrk2v3eBPP26Y2wO+bidfvnp10TTZicwPTmjqTPrC0SrwAKc WbscENodl8GcWjcc0HvIRjeoMonGWIAzv+RWY7m2ZcCt3Svjwy++IO0F9BteTTSNDPIz+MZS IwrFHIOwT2YOBvhwzQFty/Q16FxEAGmAM7/g96C2FWOQagtmbLXE9AZmpg9I04Y2OYZPaCo+ YGji27jlgLDT4uNqGJjoABZNlAY484rNunGVxQPy2JPM/o1Q2nB6EUpFBvQOOpks6OBjgK0e 0eIc0IlOMltdYAHOvAqehCDSAIEtKZzQM4xXE0sbTsdeqgJArxN2l7bEAWcWOC/ngA8MsMsB vcl9TAOceQU7wclr1ZUM1xadnOHhDpzG/DRB0oaze3CuaKoCQN+sboGf6MlJHtrEXs+IkhjT AQWceoDe6ZkFOOPlNn///hipKhmQmiKxCet/rryaeNoQjPd/s9TeaxMd0LPR78fnDXqpdvqJ n24Pz88v7dPR+bfrp9aPE2MA/LqNXWDxAGesGJ0e/KCtq+4mnPa9ufnDOwls0uXMrCZgaUN4 Ozxiqf3dpSqqcD+YuMx1vXf00fdoQnf0sW8Y41Yzz6so/zOZyfv7hD1Iz2TW/VRtOuzE70B7 qlb956LVf7Jd/XcT1X+7VP33g5DRmMrzhpdVWe139KzWantZ8Jor7SfDa6+0p5PfVJV91Xyp sreh19TSj6wrr/X0F42jybwuUnQWLdLjF+/rByB6nijWZzu2SznWJqfnKdjrHhdQv3UTaN/I CWpcWbbwlS8JvcnzYlqrtUuJIIhuCwKiDjCRoyKAyZaI6ZiRLmsALFaFygBXUFQCcJUdFmqj qgBXaqlIFaq6H8yxF1cUAaboqEAV1oCZRE2EoUyiBjBVQ8WpUAlguoKKU+GaAItToRJAgd4X pkIVgCKdLzWgkPkVZaNrAyxKhQoABbtekAoVAIo+okVvOFZqQGkR7ngxNooPKP6yGbvlWMF/ wyuetRAV1oCyItHrQmwUG1Cq00WoEBtQqs8lBJSzuiJsdK2ARagQGVDWbY78fUOXjL05R+1G SHABZW2O5aerOZzUAFFZBRdQ2uTmC47KASg/adASpQO0n3+eWU67+WS7t8uWLj79upNYZEwB ++/p6pWDrzRsJI0eiSmogNxCafxHA9zm3u0ro0GXLm7tXiUWIcfEcI6oBnfYny4tjSmYgJ6F 0viPFHAyhv5Xy7IaqyKXUsB9oIB/kULWoEFLYwomoDfF0PiPHmDr+QX4S3kTCxl0HTwZg78N GjaSlsYUBYA0/qMH6H6naSsBXTC2OhRwgxSiYSNJabwu4Tqle//T+I++Bv+6B2ewOrju2Jhe 8zFoQGc6oqXRugSogL4CJ+B2e5f9Z5Mb+EyXLqZED3YN+GYSQOuV8boJd7Q0WpcAEzBwDv15 bO6N9j5Nbo+P6NJFurhxVTnrsr/7xhq0t9tno6sjWhqrS1TwAJeuYiaC1zVqr7g1AFR704S3 tGcpZe8mJlucKFUhGuBSLx3LEpwtSgGYy0kSpwvxggWYSwsqVagFoEoVIgHm7KJCFSIB5uyh 9oB5bUyhjeoBqFCFOIC5+6dOhSiACN1TpsIaUEQQeqfMRnMDukidGyvSYn7AfIHMgnqQPtsS lfyfPLLGOIDSS3vFBAEQp186A6J8MAepniXJ/V21rCurI5J5hXaaoAAi9APrQC0JBiBKR1x9 AZG6pSkg4tSgZpbJD4jTDxD/jomc5AZENKt8wQkSJO8XYlH7pGIQpgGuWte9/KGM7CLSSCb8 1YDCPc8dlxUvV0RWAUr1Ogei+BfLMjSSDChdmarQntkzU0kCzGQOWUaJbEOy+eMBA6NZ+fWI peEv/Xm8eQGRdrwycpYSB+hKd1i+BJd5ZqFScrk9WQYMdVGiosByxG3IldVJSN/CHVsCDKAk rT3opVh/s/RW/phEAa2QIqRnjJDq05vPZG8Zyi0AhvqV7ftnwohzTcjP1pJFQ4ChApnP2q7Q IQpZZ5bjKDWfzgHdzIMv0nqomoTeZ7XOTDV4gOHO5Lymd1MQc1hnlkoY4AIewjelrdDPcXRf LusMRNROKWDoe11I93fh8PMLHPmtU7YuBjjvDN4dZ1BTuEoM6wwksNMV3Q4Dot5Qzw9WuNIx ckNxbUQkAER/IuJVuASI+WzJO4wCgIjWGQhDiQBiH0c32kZEPECsMJBRsaKAChqyhADRm+Xi LgEqbyMiNSBq4zUgQhsRqQF9cQ4v4pJTglRmAExoKHmNaC7AUMzJVjM2A1v9lxikUhgwvaHE FYa5AEMxJxPWr0TCjUWCVAoDpjekBrCX2m4EsLe4KQyY3hAeoP15f/hHb5su3pxZX5zvJw04 OByQdulPukBz44B3wflyeJQSpHIloHBDLDlxjai8Bo1Ba9cZsbiTBkya5E+XhaZjP5sPdJ0m y7fXgR1zdZDK1RoUbYglJ64RzQDIgk/SwHKkv9PBZNw24ZK0S3/SBZrWoMHykeR+d3WQyhRA 8YYuk9eIZgVkwf5If2e/xmyAkKFBftIFmv2RyfL16Iy3OkilCKBQQyvWiGYG5P21tydjw2Tt 0p90gSZdp8naNcG9MFYGqRQCTG2IJSeuEc0KSONODtjQGJ924RUfGmO6QLMz5QHx2gNodVYH qRQBTG+IJSeuEc0KyBZv9l63bjZu/vvuN41B65Kfe+B2m8DCxcJeEw5TglSKAKY31KLJiWtE pQFn1qB/+866pHEn+7vT4ZPRq94LGqSS/mz9PDZHV0cso3PysZMSpHIloHBDNklOXiNaxMW2 6ElY54vtRYl4dSQGqcwNKOA+IgaY51FJcpBKfZ7J5HqqlhykMvapGi7iUhsRCT8XRT64VsJz UcwHhzHPXiMSfrKN+shy/ng37sk2UkOxT88jsvjyBe2hc8gnIe7dBM7D+8C1IwVQ4tWzmCR7 lVhWwg55Eaxq+QVo7pZXO82EduZrZKnCeIl5hZ3z4KbVEyRntxaJOmKdEHIcXEvgyAof/cRG JKwgwY0k48EVrSDXUJQrnOgIlAFRpnDmoSir/hWuXJIH15U7NtmGonypVc54Mvbjyqsk1FnR djIclLW6U7pyQzE0+MTbWLNDbKjPwg6xco2s3aVZuoxkgfU7pUv6CMs2oseyAvycc9FjYYik j7CM/Jsv7amA1IBllxqw7FIDll1qwLJLDVh2qQE9+fv8x0c7/iv008MzcLbB9zz0JeSBmOwp uOhayGr5ZR2fGEsl7N/G3fE3/3KbtPRBrN+igG/PYHrrhF0oAvfAP52vAPQV6ML+kAei7ykY 8URksuhaeO9lfnwdfSl+xXL6DjKkpYcGCIkg4Dfy9+OCE0zgHshCETyj/0R8SAIZRooEsuh5 98zLbEff+ttNlnMOZYDzTKDbIAo4o4d2fwEgcA9kfenyZhNkGCkSyCJgd545AjgZLOYkLZ2s 7rIvYoAP1InJAePtsME8AU82dplb4f7HH+ZT65j8Mklak3oesvzUJ/CEOhM24KpNblSHvkfh l8Mjnkxl+uWn51roOxGanM2hXjGk7lfDf5we2dTbqW1SwAfmoNhwjj8SwL6YjYoBep/MNjpb zA/QHv7uUm05z2HyzDvYLO3DL+57tQNde8iyz26md7TP3KOQ+yeSZJaLeidy18IFJ0Jy796E Iav7FNwOU2sPvI8rsS50HfKr1QURkQMkP6gnIGWigNMb5mrI87C0GXdNom6CQ5b9cUwnjaHn Uej5J/LqaGmTuxYuOBESDV7AkNXdGjw2Zw1eOdHgW94FUgtp3b1ABHy8mQNST0Af8HHMXA1D gN58Sd0EPcBr6kQz9DwKPf9EDsi8E7lr4YITIaliAENW9+PF2+tHmAPOeBd6rPXVIQIkAWe3 c0DmCegD3jBXwxCg5xJEfQI54Gz07h64NyIF5P6JHJB5J3quhWEnQj7JsLpnN0fnTwJArwsG vgbJyKFzN62degLOTfQenNtFDXKXIOomyAFhazgA7o04MHz/RA74QL0TuWvhghMhB+R1v+z2 mV57HPCB1Xk6oK2jjkHY+wrOJ1Y79QQ0SR+oW6Gzw10NA8Ap7yN1E+SA7OKEeyOSIv/J/RM5 IPNO5K6FZtiJkAPyutvmhCXyWRQOWOGtbZtMMlsDTEDnz5ffySjp9G+pJ+B/WZfcrXD/+0d4 QzaI0P+Y5yGV0dXRzPpNnQkfb//3H9RTkHsUUv9E5mPIcm0Ou55roRlyInxqfaC1DWjd5Nw7 ZYmTgX06Ov52zwrbvec/GvCnUMeVX2zPDMvq5K/GvlhK2hYriQ4YeQQ9a4Id80Ra+kH1v6IJ D2IWqlyD7jXsC3ZlpcyilbwXLKga0D55KXpjo0bqG96ySw1YdqkByy41YNml+oD/D6GjN1yw fHThAAAAAElFTkSuQmCC --------------030107080501060409020200 Content-Type: image/png; name="def_singleton_start.png" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="def_singleton_start.png" iVBORw0KGgoAAAANSUhEUgAAAVIAAAFFBAMAAABMKHj/AAAAJ1BMVEX+//8TExPDw8O/v78f Hx/f399/f39fX18/Pz+fn5/T09MAAAD///8G6gHpAAAAAXRSTlMAQObYZgAADcRJREFUeJzt nVtzm0gWgOfHbO0v8CSesl624knsgrdcnJR5y81T0lviy5T1tBnHTklvm6wnJf0LYV0K3hBY FOdHbZ8GJJAAAX1kqVccl22p1Zz+OH2h1ac5/AKyyC/rBsgtFSm9bDeptwKd5KTGTExazaSk nmGkvhMXQtJFK5LalYw00YIeISsVaRoSHSoRaXqT9KhQaUiz+g4VKglpdicnQqUgXTbS01wJ CEiX24xkYCUgXc5BUv/ipHnqlqL+xUlz2YvAqMKk+WqWoKUKk+ZjIGipwqQ5EdZPmreviPcp UdK8DVC8+kVJcwNsDunR9bUGtyp7NW5mZiwrgqTTSrVG4PbgBb69b0w/tmc5hccpUdLwxTEz 5KU2nrPcJCFnWaEirdeQdp60lZCzrFCRKvhGHfdaT+C2DR9vNPh40nWNs8WcZYWKVGe/Y3Pc f6PUjtWJNlHHTdZulYScZYWY1IRO01P3DKNX1+DHRpGGDTOofROOVU89gaCJRkjX3fenwyT2 qD3sUV7bU+ssQdEgRrru8XQKMB2ljrue2unCm8smPN8o0rBS/ZGfkZ5gI+j/1j4e/GxC66UW fL7+6/60o/CrqXVz3mCkduuZZrWeAXQOF/KVlhXMTz01V7aisoI5v9dezLUJc/4Fhqd73cVc m/A9aqFe609zZCoh2/R9X541FInWpeRZ65No/VSiNWmJ1vkl8p1I5I8CeXx8IJHfFEUSX3Qo Uvj3uVSk9FKR0ktFSi8VKb1UpPRSkdJLRUovFSm9VKT0UpHSS0VKLxUpvVSk9FKR0ktFSi/H uAfl1Q2x1pXYFDd12Dqx1pWRQkVKKYy085aRvv74BXY+qtbTzxRaV0Nqn6JN9/lPc6zeU2hd DekRIOkfoIDRrXkji0LrakifAW+nP1kzGGqucUWhdTWkew0k3akpYLV6sGvUCLSuhtTp+e1U gYYzdKDeJtC6or7/l8ZIjefKSxUGY/AS93gXlJWQGj86h6+Mbv1J/Wp4e+p9O9eWH7RUtnuG UpHSS0VKLxUpvVSk9FKR0ktFSi18Wxe51u0m9VawUw6lIqWXFfR9qUjpla6ElHqLbCBbTrqK ZrqSq2lFSi/ykMoyl5KC1DNiQqmaktRbuIjSwpLdy5PcjQinAER3cqUDkbGS3MeXDUPUBiju 4lxGQnN5FSfNg0GBKn4Hd774Uuu/g1uaCEP5O4swqhhpkeJFRwAh0mJ2EkQVIi1WtmD9i5AW LVrMqCKkRUsWM6oAafGChYwqQFq8XCGjCpCWKHY9pGUMJFL9AqTB/10d4PEwun/Dvbk5a2Qe U0bEScFogn03TbbBvtGg3sg+poSUJ51W/nAUbYATmKgATmPJQcWFgPRO0SIELeh0mWVTdp6s l9Tca7M3H2+01wPniWucXeKuEy3cK8fjzG0KqdMHE8PJwcG9BkoYqCvYK8c/WDyouFCQwmXN xHBysPcNZqTBXjn+weJBxYWg75sw/t3EcHJwf4ekraC2/b1yJ4nHlBASUntoYjg5uD9A0k6D Jwd75eqJx5QQgmsU+98xMZwc/MH+KszCLLEW7pXjH4SynmtU2OZw1HdMDCdnNyd30Hr58qAG R7XpXjn2wfwhD00aGOjxgF1J2xhObqfh6LXOIbzav3kPEOyVww/CI9Y1l5JnfirPnF+i71Hy fDeV6Pu+PGsoEq1LSbTWJ9H6qURr0hKt80vkOwF5/FEosvj4UGTxm3KRxBcN0ym9F/tHJaSR Befe027y2E7SeTLa6t9K0kUw0uonJE2IgE6nfDtJk7A2M1KrPKRJVJTVT0aaDEVo1C0kTWYi rP4VkxIalYo0zXjykNJVPxVpqu027XtUuunkISWrfiLSdMttGGkWzmY9SSCLhsqoW0aaDbNJ 61LZpERGJSHNtpo8pETVT7LSK/h5PtkuUhPsE1bD9kk7NQOBEJCiyfhDOI/VlBwbR5r40Lgw h7AQkCKkFKQcY2y6/Zqn2l8vahigDfeeRcVkCR3zlW6929W7uCvNuthRE3Q9COmRho9h5D/3 uPcsToqB20zQbeX9Tg93pVn6z6Ixp8RJeXcZ3zWx9p3u2MQAbUY3Hk/MYwlICgq4Q74rrXg0 P2FSvw2OdU4K7ncTA7R1hnOxr4yhFpDaOt+Vtj7SXh9JrSeMZ9eoYZy2mPRavYAUhvU1kfpj 5dis1/x2amKAtoYzjOeqO8PQpn2+K+3hSYMBaGxOfmek3t3O3QvwmioM4tlUczAZvdE1Rbvn Tz9dH2mHYfyojxz90fD427k2vD2NZxsOTm3l6llN+Xiu4a60V8aPhybNe6EMzkjJzpUlD0Ua ZFwfaf7rJCe1lfKR+x6MlOc8NgbL8qWKIGmB+dya90tJQ1pkOic69RMjLWIneUhFq19sV2eh 3OskLVa2YPVvB2nRote0+9grXnKJQyJSntQoQSqyd06AtPgeM6FdfiKkhW0qtIOuNGnxx8J6 Ynv9hEiLlSu4K3FLbFrikPJdSoS0+F1H6yItfEyJ8WImAqSlDnp40nJ79EV29pcnLXWYQOcv TVrSOA9IKrhdOziuxHnmJ43vgC/Z4IzyWnKSLiotDps0QSkwaclFmqKtUE9OP7Gcp5yDNOOs c7NmWy6XmqWkS4ajXKPV8hrOwbqMdLmGpTnyGX7p2SwhzWOxJUNr7pF3SVmZpDkvRJnZCvS6 7KxZpPmvQ+moha5JmQVmkBa4tKdmLXjxzELNIC1SSkoRha/yGajppAQ3kpeYxqSXmkpKcXN+ mblB6jGppAQBD0rN8FItlEZKEESi5BQ27fzSSAmCnJWcNKedYAopQeiw0vfBp5xhGmmJErzM t6X1hJJCWqbm5oxY/lto8pEppLPMbvyhj3/fXH9Ie3ZprAQvVcXR9bUWpD1L1JNspqWkdszR /foKnH7as0vjpLOXcRXWCNxekHY2y5N86FLSaN5YMX+x3w9p+128tDcxFcdNgEtt3tM/ISZ1 R+zPkRhpvcZp50hboqSPv+wru7q/Tcs5+4ZBubCikp9dGivBSFHBET0VMM29AOfiClNd4yyi J7FLLSHdO7xV3n/3Nz89g85OoCP52aXJNp1TUcP6GJuAaay9X7EGhalK0qFFSPHkweUbHZw7 cF9MSZOeXZpMOqdCC0kxTbfY9/1HmFqWdNqNeTF+V5+wtMldSJr07NLkvj+nYlr7mKY77Uiq OCnwDWVjRun2Q9KkZ5cmj6dzKniP2mv6abpjBqlR0kLjaZjZP3ns8XA/ALu2r7EBMeXZpSnX qHkV01GKpelsMLFvMVVJODIXaVgBvBiHw9jGn7fw4gvYnyD52aUp1/15Ff7I76fpoLz9m6e2 XmopepaR+udl10fa7nUwgOzqTbDfHXzVIPnZpclzqQUV/tUUeBob7fRTnto5hBQ9S0gfaH6a dAUpOD+dy59nqXPJnD9RxXA+IUlPIOv8HjV+O8qlx5d1fjd19EaBY/4Pvu9LtIYi0bqUPGt9 Eq2fgjxr0iDROr9EvpPscjbKH5VRzsb5+HxtcvhNuUjii54Jzc2jK/Xvr1sqUnqpSOmlIqWX ipReKlJ6mZGip8n6nJjJObkC+wnMe5Yi3qQUDxXMx3TgWr4b5xfKwhFW1zn4ehVLcrTImykp 9zTFPEczF9E7+wsArszEPUsRJ0LgoYp6lUKJx3QYBZknL+dXz26hXkNHVbT8T0mkvqcpSjJz Ee3jH3ziRvr9ovrcITOJR0r4Pchsza/zWSp6ej5FVLBXLyJGDUkDT1OUZOYi4kqbOUhbCZ/E SZvTzHOk4y60GvAmooK9um8vkgaeJuW1XuMhGC52DrmL6OjDtfbYOGeveMSFqWcJfVEX1ucj 9va2buBt5M7FlWuc2Wcnp34yCvqf/JgOofNK8yHtJvvDdD/Xf708tdAFVNegM9AAHVPo63r8 5V/sldtbJB37c1ulsccDMGB0BbSf/RQftOKfPk8LPUv70LR0nt29cwZYOHqWFHjRgH0Nk3ku 9DT5MR1izis22VdB57ovwWtwQzMLusYhrzX0dKEXixU/SCdlLzAEA8IhKXqQBmFF8TTfs8Tj M+g8+8TEHsI9SzWFm6apBOq4/8mP6RBzXjGbtkHnuo+7E9WtBY3hyOA+FfR1+R6X6FJwSBp4 mngZ7vcp6cTkbqMIadDLMT5DQNpDfdyzhI8Pws4eknJPkx/TIea8Yiq6oHPdk/br3iRIY22q z0v9OSWNNOZpj+pPSXkIhpD0jruNIqTBaaIvyid1h29G4HuW/Acdee2QlHuagpgOUeeV36O4 bvfu9OaRn2ZpYA2xBPR1pdsUfE8TloEhGKa1PwK7H7epv+KN8Rl8UtjTu+B7lrqs9rtw3AhJ uf/Jj+kQc175pL7ug2aHW7oFVhPJeDsNSZPaaeBpwjIwBAN6N9FFZO/7bqMZqe9ZAozP4JPy y47vWWKH/EOFEwhJuafJj+mgRZ1XPqmvu66NeSJr4H3s66xU9HUxUvbKijgCpqTc0+QajU4f QzD80/jhu4iOvn6AINQC/pt6loa3p67x0+h2+pP+f35FDxV6ljqH9sWHhovJPNeu3rT9mA5a xHn12HiP2rqom43h/jWTjadfz29qWGr9Sf3f9ZHGXjlqAmlpcRXDaAhrAaudkDieOWXLkM6t fbgqWAkLDYXXWf6bkPZn5DVB3J4eHHWFtbAzXlTiRExKQGpdHLwXVpJDZJxJb7pUpPRSkdJL RUov8pD+D3leyTJw4e2lAAAAAElFTkSuQmCC --------------030107080501060409020200--