[{"data":1,"prerenderedAt":95},["ShallowReactive",2],{"rendered-post-d7bb3d7c":3},{"abbrlink":4,"title":5,"date":6,"categories":7,"tags":9,"excerpt":11,"htmlChunkEnds":12,"toc":21,"htmlGzip":94},"d7bb3d7c","CUDA编程: CUDA内存管理（三）","2024-01-23",[8],"CUDA 编程",[10],"CUDA","摘要 CUDA C 编程中的简单的内存管理，线程操作，如何编写核函数，使用 Thrust 库，并行计算，性能分析工具。",[13,14,15,16,17,18,19,20],12819,27157,39172,51201,63400,75419,95761,101700,[22,26,29,32,36,39,42,45,48,51,54,57,61,64,67,70,73,76,79,82,85,88,91],{"id":23,"text":24,"html":24,"level":25},"post-heading-摘要","摘要",2,{"id":27,"text":28,"html":28,"level":25},"post-heading-获取-gpu-信息","获取 GPU 信息",{"id":30,"text":31,"html":31,"level":25},"post-heading-初步内存管理","初步内存管理",{"id":33,"text":34,"html":34,"level":35},"post-heading-主机与设备的数据拷贝","主机与设备的数据拷贝",3,{"id":37,"text":38,"html":38,"level":25},"post-heading-kernel-函数","Kernel 函数",{"id":40,"text":41,"html":41,"level":35},"post-heading-kernel-限定词","kernel 限定词",{"id":43,"text":44,"html":44,"level":35},"post-heading-kernel-调用方式","kernel 调用方式",{"id":46,"text":47,"html":47,"level":25},"post-heading-cuda-的-thrust-库","CUDA 的 Thrust 库",{"id":49,"text":50,"html":50,"level":35},"post-heading-vector-容器","Vector 容器",{"id":52,"text":53,"html":53,"level":35},"post-heading-指针","指针",{"id":55,"text":56,"html":56,"level":35},"post-heading-数值操作","数值操作",{"id":58,"text":59,"html":59,"level":60},"post-heading-transformations","Transformations",4,{"id":62,"text":63,"html":63,"level":60},"post-heading-saxpy","SAXPY",{"id":65,"text":66,"html":66,"level":60},"post-heading-reductions","Reductions",{"id":68,"text":69,"html":69,"level":60},"post-heading-sorting","Sorting",{"id":71,"text":72,"html":72,"level":60},"post-heading-max-element-min-element","max_element(min_element)",{"id":74,"text":75,"html":75,"level":60},"post-heading-unique","unique",{"id":77,"text":78,"html":78,"level":25},"post-heading-建立-cuda-的并行线程计算","建立 CUDA 的并行线程计算",{"id":80,"text":81,"html":81,"level":35},"post-heading-矩阵加法","矩阵加法",{"id":83,"text":84,"html":84,"level":35},"post-heading-矩阵乘法","矩阵乘法",{"id":86,"text":87,"html":87,"level":25},"post-heading-为运行程序计时","为运行程序计时",{"id":89,"text":90,"html":90,"level":35},"post-heading-nvprof","nvprof",{"id":92,"text":93,"html":93,"level":35},"post-heading-cudaevent-计时函数","cudaEvent 计时函数","H4sIAAAAAAAAA+19bXPTSNbo582v6MdP7RYJiZ04TgiQuAqS3WFqFy61MPPMPHunUoqtxHqwJY8kh2TnUhXekkBegQAhhAFmEsjCEGcWFhzbIf\u002Flrlp2PvEX7u1uSZZsSW7nhQRGVBFb8unTp093n+4+5\u002FQ5nbEg4KJdvqQgyU0xloly\u002FECTemu++OyyL0w+OwOxYLiuMxnu\u002FqrnBOgGhfy9wsqEknlVWLhWWB2BU3cLC9fg6HX4ar6w+rQwO\u002FohP1nIbhZWJtQ7U8rG4of8JHx2Rdm4W8jfg6MP1CcZOLah3l37kJ9UNjYLcyvgfExMSTKA2TsIdv1t8elkcfVpYfX+h\u002FykOvK8eHUDjo+qP87Cd8vw+rt\u002Fj1zpDCTDdZ12pBen38GZe00DyVSTsvlUvZz2hckr8MXZrwB5ZW0QUGdmlfcPlewoHHtSeD5VAV5YuKbeW1df3\u002F2QnyxuPtgam1RyE4XclJIZUTITWyMLxc2x4tpV1JDOiBBlw5FUlOkVU7zMJVh\u002FrDOAXxJ+gRNnvwTw\u002FX04voZrKCxcQ2iyD+GvP6ojz42m9cWFyIXvU4LMYkLh4gphHtD7YGUCZmfU+28\u002F5CdB8dlluDaq3htTcm\u002FhrQ04O6VkshotDf5ISqMA8TszUhz\u002FReM6PxiJAHhrQ8ktFfL3iulbxc3Z4tNJDJbFFWm1YMSoK+bS6uRl0B3oPnwYFNOv1Nd3DYIDFoqj3CCIxBlJ6vKhqpvwjz4QZWSmqfQiXAEnC0K8jxF94U4pyfCWn+IMP5BiBlhfOHL4cGcA\u002FR7u7EvJssADeTjJdvnIg89SKiIkh416k8O4csCIHNMUZ\u002FrYeJcPLk3B8bdK7ufCk8s+IHNynC17Ge6UBgfAIMdePCkMdfmaQTMIhkAw5AMXuagc6\u002FK1tPtAjOUGYjL5jtHHuGiU5bt8sphifaBfiKQkpg\u002Fh7mfiEnrDxeNdPl7gWR+QZFG4wHb5IilRZHm5W4gLov62Sa\u002FE32G8inM8G2GSXT5RSPFRy+v\u002FEThefx\u002FuFNmIDIa6fB0+MIz\u002F6shaTRS3+oA41OUL+gLhziQjx0C0y3e6pR10fN3GBEEQoAY3NwWbgqcszyA4eLT0DIIgGGtFKALS4EC4M0A6I9wZiHKDlf2MuJkURNlX+RNqRROfSvSxomTHSzI0wi36EMB\u002Fg5anVstTyPLUZnlqtzwdsTx1WJ6OWp5amq2PVmparOS0WOlpsRLUYlBEWJUUWZ0fsfj\u002FSD4gM30cH2XR0PNZhi4Zn0govb0Ox7JwdQNmn6n338KZtLryAs7eUnML8OaKL0wkgWVKIdRNCVZmfOH\u002FrPzhAjt8URCjvjDHR+KpKGsm2AIoySLHD\u002FjCf4jLxzlBkkWWSfxhQD5uNAl\u002F1O111Ujg+mP7VHFJ0lMR0J\u002FiIzIn8D4b1EiOIQJkrTiwAUESyhdOMBzvSGGSEZmE5AsfqjfwkM8f6gAAdkjL642yg6DLBpDMS19YH\u002F7HMULEhR52kIuwZ0UhiQqjz+MOlfWluLjcy\u002FE+vE5+wcqloqwoc6yk4T70ByaRPK4ha0RY6wlKSY4eOxYRUjJAXYD+29Ri9BJako6jpZZUA84wCZa81BtrYEGtpkZ5DDhjQRT7eSbBlt5iolk+Gt92G86dBt1CiperVpxIxWXurChEWEkSRFxmV+mIMSIbBafZhCAOg3Pc31mQZEW0h2OZKDiJFvaqJEoYx2k2cZYVcQkQcBltLc3BkL+5Alk1QsGfTzqQsXMmkNZKtbc8wQxpZY2m7xFZ507XRsxpy7DZTar+ixGTu0KT2yBpDVbrZheZL7JySuSdpW6l3LtUp+2qOwNJkdUXb\u002FwXbdjJhppsrskGeU+3xH2MFPP2xN6e+OPsJPHBMRJjIxfImvol3y+I\u002FkgKNAkVr92nSfH9HVTfsytKZuJDfvLcaaDeXdsam0EH0NZmdORMzyiZF0SbAB\u002FdR4qG678q2ZdE3YDAQh1\u002FPlkJqC7eAGjZAMZLAwagWtDPba3tLj+HOko\u002Fqo8ee5PYm8Sf4sF2j0VB2ca6+Rg48\u002FWXPV+eAF+wfxLECAv+ev4b0Nrc3gz+wiRlIYmUXnWlnWxrcx3VdjLUAf58ss5504Wmel355gdN8Drr3iPU4SaP7PSJcPyR+mrZrN30hSvfGRpFJZNTF7Pw9mRx9T1cGoOz14pjL9SJZXXxRmHil8LLCUNV+iE\u002F2Q3IL+qTMTg2CrN34ExayS0TlASTBRyp\u002FoiyUtckElBSlxkU6SUf\u002FaTOp0E3gLcnidawsHBt6+oKHB81U05UsUS6yWgio0\u002FUePQp4odwd2dAjmlfv+o5UXqCNx8Xr25ozwEMHjAK9wnRYQNJNJxg4nEh0hmQo+QZHf5Ol72D46Nb16cIedpbgtVAwiYiyeEyJGXviIxzRyKxcgUSy7vi6vvCxqoLkn6RZa0o\u002FmR5szV2U517b4MgoDMmoLM71lo57EjvK5lpo2\u002FVu2vq1Ko68a745pEv7P57ZyDWqg1HNA6Qnh5rcpXMe+X9BNJ0Y3080QMXNx8Wn066IzRU9Up21KTk1vtPVy+bftE6Bb\u002FAQ7D0G2GU9otuCSBf4MZPcOYK2Q+QMZmKh+s64xxuDUHR2xsTJLm3F6sd\u002FiiKgtgrgxI14NCgwEUbGvCBQhYbgcT9ne2V8Ud9afKbUBO0BFwDOAZgfqT4\u002FjHhAZo4z+6pk2Nbt8c7A5gYoxhCW1aosHBNm\u002F1knv0ju3X\u002FzdbdTZh9ppUO4KoNTDRtw\u002FwkTQNRSW4EEYGXZEBeSGLEaGcESdZGU6E\u002Fc3wUXOD4qGvrJdloReHhqtH9pAnOrRcjRjE1O0vKOEJj0krwBNjMFwMSkVsCxEOw8GsO\u002FjhhM8jI8nNeOCWY2qDkpnUJfIsMbYIF\u002FB9AW14T5bO3CCLH8qicS2nK2smnLf3m+rc9gNCkA\u002Fr4wUPdOhxscJXNCI2emfmtsRm9f0slCUVI4twsbq6R2YwmwuYcfPgjHMmT7tu6uoEWpRITNBJNFqrcsvrjgpJ5j0RBfkbZfARfzcPZa4XnU1tzD4rpNEFEqk6G1Ydv4NICMVyhXQqut5h+Vnz+c\u002FH55U4GxES2v8sXk+WkdCwQiAoRyc8PclGO8UeERACRgP80aUrcJibJBdD2SBxg5S5fb1+c4S\u002F4gMjiPa2QZHlWBLwgsv2sKCKNAFydR8bBe2Pq0587A0z4I5wTPPuXd0z4HO1f5NFKUouVphYrUS1WqoJWqoJlPLJSFbRSFbRSFbRSFbRSFbRSFbRSFbRS1WqlqtVKVWtZ11mparVS1WqlqtVKVauVqlYrVa1WqkJWqkJWqkJWqkJlI8pKVchKVchKVchKVchKVcig6sBbP93U3Htrg6SouUYj5C5TMMhGZEHcj5r31Ohcpe4EI8ds+f1JWX374wJjsvvK0t+czR\u002F6zP7OBUaXDd+BLkBqRv9+cC5gCOJGN+tOiAKorZ0C6IgOdKmRhjpjaXPDSdUEQ0xSAVFSF6ShjgbIENNUQHTUHd0trlB1bHttrDM2C67DjoYrbTRNOFJG3SUnm2RESCRYXvaFAwGAtux48w5kAQwkU7qAobbDGoINKQeEft2zAk3zels7Kb2oaIiyg70IUckHRD9vsqIIuvCbc6kIMt0SEPK6mkOIrlMilB5yogWdZA1SGup1XxFMkV0\u002FuHGivqp9mNMLgEOoFf9haV29Sc65tS4pcrxs1FzNaG7SaPUzXJyN\u002FofFcK7RvEt2bV3IEaSXqDx3dBWfzkid99vpAbO+iuhTiD5k+x4\u002F3UKSY6PG5Pni7Ff+\u002F81bOOg42M0zcICVQR8TuYCmIsKHyMRIzVORar5gvYzD+urGmgA1OA0Z9d\u002FRuWVZOxfPLqMB2BdrWxPN3M1mtduOu7lfFBKkb3BnyQJmd2WPb7MWo+lYyerowkLNDAOfvRCuMqn7BdGQRhS7Sa7Led4b\u002FiwcomFfB+Zx7vBhsyS16abSFOK+q8ENzGYMXHIaCVV7wTpNiCnDKgHrNcGyjXEWFXi2ctD+bhcEvNlxyeZ4YhZ5xCdDyWSdD1LGBk\u002Ffl9XZiNs697lZVz6paKqh2ILTHCJotpo0Rwi3FbWlOgwNzcb+eIcwxkmB5qBAcwTYIczR3WkWTXe1U+AxTgM0hwGaswDNUYBivn48kDosfNzdtZTMTYs5GZuEHczB6qPlwtzrYvqd2RaK7cijSnaykHuDDES5a0pmSp1eKU7NFjcfKOvj8PICMgYvroALrMizcVDcnC2s3lfvvy2+v7r1ch4ZJvGFMHXqMVz6VfeKKOQeIJmVLUN9pzC3UrqbhqnR\u002FB3KaD7LyZFYyQgFF1cI1Vv335DCxPpG7lsp64+Lzy5XNB7vaoI9GpaSYdvRpG212NlbszFh4BCwtWk3gCT62TD9YuuG8UQMHKBeI4jK3l14\u002FI+t+X8Z1l83w3fSxLJjQPPceDUPr6zAB5jpWCFbXgqTWLJymnoLjt\u002FHjihWeNII2wLI4mcUKDOIUlnTgz06Y4lFXeNbVGOqk4Fdqs50W\u002FO7c09U2N5JN1SxvUetPYDaoE4iezFyDgr2AH0SvDJmAOkSYmSFr+4Xb15RMlk4dVfZmELuj\u002FNpRLWSQfOomM7BmXvqvXXl\u002FSYaxOn1rY3Z4uZYJS44k0b3M5eeK9lpdL3w6SS8frXw5gmcekJGEFz9cevBdd0TxtV\u002FgKrdkrXdkhgBVO12H4qSGDGwBHsMHG4tMrhpXLbEKBvI5vcQ2uPWG+LUdVjbVY6M5+YR7vlGbMM3gnz3rPGeNd6zxnvW+KRnjae1xpPRaaWqzUpVm0GVZ7r3TPee6d6hWs9075nuPdP9b8J0T2Yl0QTo0xLvcV1jKejToxasmm7HDW37NtDikzUpsIc+BgfExUDT+RFqt+lngB81fRA1Z2jaXt+g6ZVIT3seCnQeCrTOM1VHiKHM1Qez3uNaZ9do\u002Fa6py\u002FdyIDV6fhYH0M+iNNDKPS32ZixUDOePNOQ8n48D5\u002FNBVNakpzwXDCcXjF1cyOg9MTxHjGowniOG54jxm3TEQM4SmSUl80K7Np+dK6aXlfyCsrGpO07gy7fatVjkxjAzX3j8CtlrHz5BBku88ANi14Wz03AmDVd\u002FLEyvgYG40MfEAbGcFi\u002FPwdnx4urm1v1V4rvh5jkBb1cYIA1\u002FCCW\u002FAGfm1es\u002FGSSo6TklM1LIvUHuBjhQMFxaQLEJME2I\u002FJGrxQe3nEP9koY2ERb4wn8m7dYDWuCAHHahFbRiWw9m4epCMT3lC2scM95o4RPK\u002FTSiePfS21tyetDdRJTMTfXGcxI7F868QPZw008kNvCH\u002FMNK\u002FwTCbGqUepAGN5TE5cGM0ChVFSGO5mu5zu3QdqOnK5qg5H4uPl3RhqVdY5DDD44jvDVyG27cJm8INaSUsnEHDb6f19T56a1HD9SRy+TO+Yf8pPkRptdhdk7JTnef\u002FQo7rLxB4ZqwX1Jh7jG8tYG8FXBcJ4JfXbyBBvnMPIo4MHMFO+c81K+ROzTG1EwLWwlG5Bvwr3fEDwgZM0Ymq3PLgoaEeylDo0WOe7CCZsziCug++xWOn4Ei7cDZa5oxODOi5DYIv4wQzMg\u002Fa0p9l4M3nxhDmXgsEcCt3HxxdQntJ+yIIY5NcO1XdT5dOWhMlag3RlA0m4VruqTRLt3jm\u002F6Wa\u002F5Id4L5P2cFJT\u002FD\u002FBX11XIZepcJS4aoem8d5meMOWt+qU1bz9rvWfsPnLX\u002Fo5tIS1arklRzVKCYlZyOFiwy43oRYmdYw5KFv4A4J8m0Ni2zOsjv9+snjUt1poqNcxz63zPQCHr6GsEZqRGcQ7Y8\u002FT8w137cbSdlXeKpkJdcr+bTxDm18MszOHpdnU8bmQ3QeoTlmr7QTMJbN4vpG4ZsLwUswYGY4Gwa3lwxipcv6j0DRqUDIhdFW7tC7g3MPoO3J+FaFqYz\u002F1\u002FKRrlEKzAcwdRrKIYizlDwghRC69\u002FSAly7hd5gEVhRTZ9RDf7dvh7gUhEpZqlJxkHZyqs6IxlVfciPw5n01siND\u002FkbOMDUNIm9RaIxYoxbD5aU7Ki2+GNHU7T6SJbAccilcekeImhxBEWEubqBOOoMD5eewzW0pyD+j2hL3Dcss0DJTG0tjqCMCqbiyP04vQxH8kom26yO3yssXi7cXVYyU3D0QXnTztm2DJ+7ib1b4x3yI9RHR\u002FHpSmEpW0wvG0MALl1DG6I7L5TMC\u002FVfl5V1lG+jbG9GclGo47eU3C9k804yUhR++QX5yb58glgxO41STLyfgK9mjbhwZQ7cSta0qycqunPDfCQmCnwpuJVlb0+A\u002FsrikGlWd+fi85+3xm5Wd3cGpV0ScKv3GFA2NjVn7PkcfPojHF+Dq5Pq+CzZh8AbU1uPfiqm36m\u002FXkEtzeXgzae6W3hLi78doNPNu3\u002FCPNoouHoIV7YKTfL3MD+zNTeipi\u002FD9bdq5vrWgyW4cQfemCpuPiRpUIygafD66+LlOTz5EWnFf11Ts4jr5Iu2zR2dKv700jhRad6z6Xxx7I26+AKuLijrN4jrJ1b8WDq8MPerkp0mwfyIqQaf8kgMVeJ6jfKE3IGj\u002F1Qy+KyHDnZrcHYSbbQWs2hfkV9ATMu9JRtDMtS1YYCd+7VjJS6i7cczr5RcDs9zNMnREVOr3BB2aL++uq5kDM9OVBrPrdeogZhALzCStzk7oJsz\u002FNdzxfz0HfkkOcoJ++fJ98n4EO7+4QCvCCQA75doqJgH2G64upltW0OgS9tWfhkd8g+Bw2TfSR4ayEMPl\u002FAPubuamFEOW1AOm1EOm1EOu6NM8RI3wLNu7KqoOoqaww03lMgGDXjHTr4fBpxjOyqdPw6Z+dLl5h5kWDywxRn\u002FsXDAtXCLTWFTH7iWbXYrS1lv\u002FR54s5DG93JRcOj30cbfR+sJVeYXEUEQoxzPyCx+BX4frW\u002FU9eVYQILfB6OgzHjYaB6r5ofhRhPPTN+HGwE31Ag49BkdqnewEx5Er9QSTfiM6FgrGt3Va3WxERmsrT6+3WCM4eQCq5GsHZi3TzONEyxNu8pptpioq9nKbQ5ZZHJozhjlUtysEEGdpo1SszrkkKNrmsUXy67yQ\u002FXH9RFVA\u002FXa+cxC90c1y9MESCgRbogVF\u002FeNijFL0f2u3NIlF0WdzbtVZ0k41tJSihlcLmNd5s8Ro0ecVX6VmTVJf6r332pmHZId0\u002FAdaURfAcmrSWJ5m+H0RJ5K5qZdIkw7uyWON1xYuNYk47SnTTB7xxfWI\u002FSbcqFa05Raf0P2k8dZJTtNcgeoK0\u002FVR5swewecO\u002F8XDGqUQbk6jZ+R\u002Fo4kLFUy03ouUXRxe3a8ZMe6eaWweBkZYpeeo1Qs+Xk4eQ\u002FdwX+N8rwSazJSJW0+KqYRGLmPr2SmYX4EztxS744Xpse0S\u002Fy4hvOCEL\u002FAyUDJvIKT1+HsS60dSFl3\u002F8nW4sjWT4\u002Fg0j24eqP483VindxaHIHpPLy+XHiYgdk5uPTGSEKKOowYfe6\u002F1bqKnC4IN43A8qb+Ikll4doGziwzZWg8tIIpieMHAErXJiWZCIu6W9fyoiyncGa5ZDaXjR5ANjnEbJi9s\u002FXoR5jJwKUFdF9+bArOTjkbs8h9mya4ug4frPjCX+NHQB6NsP1aPyOGYYUQCmxA0kG8TBu5JQov0zh77FLh+RQgaBGd46Nw\u002FCUphnoA67fIr\u002F4YNiRqajfjHVEVkdQAZr2dp6rxVDWequagqmrIo3dr1vy4vVuzn7rSiyxJAYug3w89lEZH2fJywG6WfiInafNx4xSIMRKQZEFkBljQL4ggBDheZgdYUU+VW\u002FU8Tvrm2DHTILEP+FfeYGxOd2z0qd04EVOeZM0s4XhO5pg4yhXG8VFukIummDhg4yyCsDDllMt1V116fOd6j67Fej\u002FPDWELFcJgMzXCIBVCQ0hWR9hKhTBkvTt4yu+qZUtJsV7kUO6saDN8cvX2UOkMTvklrCQA5AgvATnGYg91IPRr+11wytzX2\u002FD21+YWQupwv8O98ZJZh1LDFQZzO7HSBUWbktHgRY075T6tzYX7BfEQKs6BLtB8HHBAI1rS9CvoRoc7NpsrJjZdaEAxKVkwdNfHTtW7XRbhtskRkcU9YmGDez+QEtVHYNkA3NaI4YWLB2DUdKPbjSZxDk6hCx2WxRf0mBmoLwEWkBoWgR7QBU4dBxSk6XIYDeUeEGF40MeChBDl+jnDNILR9OxYOB89apFUbgjphHNHRw3LUOXM7dnDudazJ3PtFGD4KOgBjMgCVF+CkbkIE48PgygbZ2U2Ci7GWB7LXn07oQtkyrZ+DA2sSY67LD\u002FOG9CKxd7tglNzdRhjSXaBCVFcpjJWzLoyuVNdxLndFjtaHaaj1AK3iyi6RvL65eJqxqJV6zJUaIaTZHpd+80ktypTRFoElP4zcll7mFGyt0v5KNcf29T6N+47vYiSmVCfjBFPqyqo4ew15PSEo\u002FyRay7qfBqnxnxQeD6F8ru9vksQYa\u002FEEfWXp1tXN4jzFFFGVsSuK3nVm+OVFt9fhUvPkZouO1dcW1GvTxPq\u002Fz1yBWg5W4k739qokpso5KaQz1X2ofrwDUoTe3ccKWBvjqiL6ZLHPyoEf71bWMrq6mEjRSwce1J4PoXYri0I5JoNQoKbhOiYvK5O\u002FALHH8HnE3DyHnZWm4AjeSOWICezIlPilqca9FSDnmrwN6Ma9HRjn5tuTKMESct9JQAJyH0lQGK\u002FT7F8ZJ\u002FC7n1eKkqTPo6Jx4HM8oaGEp2KmLJzqSwAXXZRay63e2x15EZPdVa4nBNoIpDV6KpjZqjEyuTIxYmSDCR2kOUtx2oGlFh51MxKnV1u6gc09fTTZ4+roqKPHTCGzKH6RlALNDjsdvOegn16u6iUheYRaFGLXOTkmImV\u002Fdwga1VQHHwVeo8fc5Z0gPbVlbttOx94ZhZhzVJzI2hpBMFG0Npovp1HO+Z0aasPD3cFWfm4c4dm+agBS+eNhnRnSFDhxunBUFCzccU8cgcpHxo0jUR497qBtU1CKnYQNdbeqq6iUUrlVTX9q10ooe0EEToYcXso4oLQhK+pDkIT4KY6CEWsGAoQihbVALKNjDXGhUd9UpMVUVfYoOt9q1dL2irr5qVMIaLpVLTMMDhkA7nlq95\u002Fq\u002F48oj5eBraKFEtgjuLmPIm6YITLQEcoFOPlBYliUfzpZeH5mpLJkkuwxbWrJPWEem0G3npdeDRC3hBg9Z9P0e1D44pxfmRrbsTZI41k2fCF9Wwbmg+aXOmDZuVHUi7xgGSL0e8Ew407Sv4JvL5cug2NcZMcF4b3mpZZx3QR0UioU1FFcfMhuk69drn483VPB+XpoD5rHdRH17rYxQI+4+4VUVoOq9hqROYiSAroOCiWLJQggW\u002FhOy+QFafaBoQICYTjru72288gTO4jaZU0gjOgwW3XQBcVs0Q\u002F2om58+miyCQtzMInF+PonJRF4Mwux\u002FNyUt6VUwoKrIiFcbWzisa\u002FipOHe9tTEmtuJ8frftZMfEAQOTmWMIyNtR5wNcpJzFOE\u002FDA400gTQ9PutkP5ts09uIjtYnt3DY7kyZ7BFzY\u002FaQtvLFRZSBYZXuoXRGSbFXjJFz5vfdEZiIWINc76HoUogel1cm8f7UqvLxcnr8KHb0hyLGLLMgxfMDuHvOoxMWgRXxst5O6oPy6WIgvkHqCgUmYMuhlJ22aRPVbmFXz3z0JuBjhusgAJM6VFDSmjGtW9ehWujZKa4Oh1I6ICIZTEB0ER5CbH4OoCHMn\u002Fe+RKWWQLcjOjtGfRiSidQ\u002FXdnvV3kU3GGeefjZ4wmfcevoFLC+WNACgixePlwuJEJwNiItvf5YvJclI6FggQXP4BTo6l+vycEIgKkcCAKKSSvb1lPe2PyYk4EvziACt3+Xr74gx\u002FwQdEFq\u002FrQpLlWRHwgsj2s6KIBiZcnUd9cm9MffpzZ4DxzHXeVunz3iqR2j1znflxe578n4mp7+CY2AxZ\u002Fhs2c3nWRo0AbV+xv0zQDgnMPrHi87J54kMmCgWBbnizVgunRA5vLc22dxJqOL7tnp3pm+pcoDjtU1qUPkJ7vv3M2vPfH7M9DpbTb4ihr6Ux2EisfDs2831TkxXMHXobZr5EMiWz4FvQBZq+qbUppqPe3ralEXxbE2Ya4nl2oBSIgX54UjIWrabgvzXT+kVBqpW1Zv3Mf9fUdndoK1er28tqHkXfoGsMIHiAh1Jt7Nz9gZcQoql4Stqrkadto4iXUYwFAs9KSF34rTYYWb7mwWhofEg7a2OJOzTteKTJU9nSXMugJSb9b2vlhdmBYe8YgW3zbuDaPrG3ZDKtdTSZgre47EltHAqch+E+RxSqxWNgdxKSfOZoXDX3Nkp4iRlKDvvC5058c\u002FZbQ+GOnz7kx89FmDgjghPxZIwB34Cz8ZQEvv2Qv2EouVEolpN\u002FOXHuQ378JCNxEfAXjmdxiQG2T2TAuVRfUhQG0E7vQ\u002F6GntXlDrnKQZTtRohluP5WycyVUK+\u002FRabx2VsoKcbStcLsqLqY\u002FZAf1\u002FwVkqKAUkCi4DA3kGo+kynMraCwwatPUVAf4r0wOabklrAeP6s+GUNhctbn1dd3UdxvgvfmExL+p5C7BmfHERHProBO9nvrfvUCI7NDPpt3TSjhciLuC3eiL2AoEeclohE\u002FFghcvHjRf7HVL4gDgZajRzsCpxk5hv+c\u002FgvCxSYYXuYiUrgzIQoXw50JLjzcGUhw4c6EgG4ZJQT8jjHe\u002Fd\u002Fx+8bbIePtYeOdVjpA0DE8L8hY3Q5YPiKgvu7yMclknIvgt4GhJtwoFCKSaUABGYc7A6VCaKtdojCAmqfvvm3YQPT5TmpUHbaPkcpfSbKYkpFueRhprYm2+Fizvz3YxiaOD7IivrTXxMS5Af5YU7O\u002F5WgoxCaO+2xJSQhiFCBCeWRoiBtYE4w4wPFNooa7ubXtKMYxbIsEx0pyKhs8cqTDuX6RjftQz+0Yqw0Get6F2ttaqXkUZrZBbjAYdK6gD610eKjuGO+O2NDe3n7Edgw1d7TWwB\u002FbiK875s\u002FhfefOR51g9h\u002Fs99gr7fpbJfNq\u002F2Tu0Lak5tDBkZWh1ub2bYxnxz4hV1b3eQmsdRE7ON1xQGYWUDJZssdBxv796k1mW73JHJzerG1yMVTdQnaiMJMhSc7KPDxMkRGxFwnW0eJQijiNobZP99wfPPcHz\u002F3B\u002FOjk\u002FvDR7f8lX0pZTEWqmfLIm15fGJ\u002FDe7XZrhdyTx4QEXjJDX9lEnmmejxtOzqo0qODXqYe2GVZLuHW5eMhBPrDpapWKZukSi4R8m1IcjRLCUmLCs7FOlVfHWTX+odkDRiyjde+E4zD9dXKWBGTzx+AweyaVIcMaABYn1DKL36p7pKtQ3V1YzhVlg48ZrffT5Yhc6Kx9pBSFo6jAPKY69\u002FsGqZvjVhnetdQ6MqxYkfvigNs2tlNhXw5dM2C7kQ9TkxRow5VZKOpiObD\u002FFfju6FNtQnnjTxyoynDIVdLOUacmgu5a+TiEbkcZHguk0y0JFuf7uD8Ttm4Q7ytSRY8FOuapLq1olJ\u002FvYIy3Xn7Rm\u002Ff+DH3jft048fkQSWlEiQHEoXBlExIIgh2M4CAVd7t0h0NOrt1cttG62rXT+H4fZS6EwOhUJ31oNnIIp4lRhhk3CERuEyBt3SqEWXYe46XSZ2l0lo4r1+ekTuX5N6nFvpfxwdvTxpgWjLw1atK7hd1Pk3ygZM64cMn6qsl44itZJbUR0+LOPkBvD1ZukX76oaSe2fcejAwO9924Ae5KMeYbjtozohMkiOXHiT97kNpcfCuPXjy+9OS39ZzvyfN90ya216jPPDNr7ZMOFwy67XsfUm0S3V6Gc7ch0sLKDG0IdgfLdvsY0fynhz05KCn\u002F6TTf5LH3+z1L\u002FL42WQCLr+DpYnS3\u002FT9mwN3Q27fw3JGkFGS7jqSJUja9ylGZBGC8\u002FhSh+YirmWowD+SIH1EcoL+Q0P1oAmDDjUMObfOaITMJpJxUyZF+yNpCXw4yaL0dTo4psoNf40WF9yiaqYWOmvE+YNkajiv2RE+qtYfpXce2g2N\u002F4EJ+Yl6GzCiyFi051RGhCGXhA36GogSNvzgDNbip4nFGaSCaqWCChlQl2h88ckaZI5+486mHVw2K7eKuAR06aVI0T7UiI0i1btoe4EmU0nAiAOpivuRJfFK3c4Uz4jDvULyuMVwo6vOqNH0cRY8VEMYTQTXUEnNNXBFv2zElyxK9JSgQqCr+vUK6XvRSKBcm5Gr13pcjvYO1XRgrgZv1RjofdqIWdxY6px65+w9mAUHIghkLXc62vyhI0eMI0BNAQ3LLWFYnwzXX6v31pHz\u002FugUzI+o99ZJOEGUDGL0gfr6LopTuPQcLj0nyX1Jhop\u002Fj1zRggTa3X4QRBlvm86RL4bNDqbXLUa46dswi1zp4Ptx46oBeQlvPi5e3fBSzXoaCk9DcbA1FJ\u002FJ4R\u002FJrIN84Pf7\u002FY7KbCoHJtMJwD1aYymfIwWqE387U23LTbNJptmUU8B0UMC0UcDoE+PScaoQgmjs6HuRE43gBAobWDWE4wnASThN1w8kVHqoEbQ1giONoOOSoVk4oJ0OALjADkta19vtlSo73w0qRAUVpILqoIJqo4IyDQPHXogxhl\u002FpIBNPsZLjhDDm\u002FH8OBY8cZ8iHy2C0wvfVCB+pET5aIzxbI3y\u002FBb6GidXbN9x7gTVumqOB14iHHwnOSZhedbbhAtqEA2jMtqCuD6I\u002FIfSnDf05gv6Upp87RlKxMYktvdoILJ2gP\u002FZZH1nrY7\u002F1UeuQAy8MvBUADVQZbcB77RYCOpeiAZFlZHYbwQuqxwouLTQdeH1pw2tNsBG0lEZ6lUOk8n6CXCsvD5Bqbjb+hVicUWjY8XfFsRfEv0hNzxXfXzVSOzofHBPMUJMWBKspwfH6d6SaHOrVHg4lOF7\u002FXm+cLNVfr6iLIzhd4jhcm0HX4j2Ltnde\u002FETOi5\u002FJGYodkkU2wTieXxxV1GjOoDLHjulRXHDmDEq3HJNwMJSNg2ykBm3jh\u002Fxk1RLlLjrVV8akIHH4XmYXaU0TqJGs43UIJ0DtG2TioAs0IDxV3IPg9beGT7sR9qO4+UrJ\u002FQwfrBjZM4rT7+DMvUqZqd4YQclGNqYKG6tIMzc6Bd\u002Ffh+NrJLy3s+hO8dz3aEaQz5LGb23UrHJUMq\u002FU3NPi29fqo6dK7i1S95FsIK8ebo3cgGNZ9dEyqnUmbSwe5CcC7wl0T6B\u002FEgJd+hgKwM9k1SASowal1zY9EzipVzL5PfxQ9zs3c6qdX8LvbEoQqd8nCPEqdOyHzwK2+LWSZCXJFsobkJZCQeOS3O+0Lz\u002FYssHBOHYo2eIf6upKBv1DWs4U4kWB3g\u002Fj98MV7\u002F+O3\u002F+9\u002Fnjd74i\u002FA80eQF92yMqZrMnS6A5tsTO6AVrH16H6+kZ6xMfrqsCKjGRg\u002FqT4sS12VHOBJq0DRsYwYi2EMy\u002FQHb21UZothnofByl7+AadWMefbD1YKiUWy92Bs+N60lR06sXs16rTkovhItp2KFi5HYK5bOHlRBPKMNSECMRh1wrZTZSeDZtdfWECArq\u002F6jkBbEE6A7GgdgK3BLNAQUiWnsPVt2p+rrCUVXLLeHN2Tdm4Q7KqkSQsCP7xP7bm\u002F0WwoW3V7HQh96rw8knx5hUlv6DefUDwaFcpIykUdA7A7B2tjZginRanjHCkDhLzzRc2PxnZ4croJ9hxupX9CqHSbRMT7oRN9LeT2wq10g26sO7n5MEJudJeS3wup0A5R1raMI5uWySffIy3I7sT3OzENtrxKQQ3240R1NZMKDpZRlLZB4rpY5YkRHVILmNbJeGrsiSdpZRupxmeGWCj+n0YPR5mYXUETt1VHy0X029w4ip0r5tIfBQeaH0C3pgqrv4TnXgXrpXj1JHdnjT9wiYiKE4CflF4dYMkqixuXi48z6kT74pvHqElyLhuPvYC3lwhMIXVp4XZUbQW3VtX3m+S7Xkhfw+OPkCU5W8WXqZJpk9wgRV5Ng7UG89Jmk4lv7D1YErZmNZ\u002FwVmv8I93xwvTY6j84opZ3qNqxm8puV+U\u002FEIx\u002FayQGy2u\u002FrP4\u002FGecKOt1aRUyUeadtr3Ttnfatj7uu7sNeTzgF4LIo5WqVitVrVaqWq1UtVqparVS1WqlKmSlKmSlKmSlKlQ2oqxUhaxUhaxUhaxUhaxUhaxUtVmparNS1Walqs2g6sArddx1OmhF3CM3quoV94opXuYSe3Vxy50Al4RFe121JEc5gbLR21SenWZkkdNvAVSJoGYygVx09403QcZq8KJvGDxe9SJMSW23w6BmA6z8NXL1qK6SIzwCDSecFW2mBovCRSq4iBC3v3JTk5f6CXyjbPBvonARNGhPF8FhhP07B\u002F\u002F0mnhJF1Fs\u002F1npDGcZDYPOLHfjJOgCgxTcHIgLfUx8p9wkPDoRjdbETv3rydLX7lrGlx3ziZ2WZaJfRof8w+AwwEcC8tBAHnq4hN8Uuo6usyx4h8x4h8x4h9zwmtNNWUbfoe5GMnAcRoXJN6es4IlSwXrbG0\u002FORU+aitZXHSkUXHIcHbt7ma9SsLsnfNfBjNs1zrDBaleeKpeKvarbNE3Q\u002FGjorh7Y00bfQHqaJpN8Q0M9NnvYSjmH7PGERufMM7tM2smDS1r3LpJWMcb4k8PojnYXQEI+Bhroq6JZXz4Wi7S1qlFrzkcbNPtTbXdFtXWlBRsJDW2Pqa\u002FZXfr29GQ5xMlyiO5yiO5yCJfx0V8KPUwR2AhwdBdEAYclHBmgx8Hhw1w9qNylcN+5C0u\u002FVQKWGl+1aLCs6KW6qleUo1yi1XnFwuv5Oe7vFNtDZ6paaZyEDaCaM3q6t2BA5KJ0DTh0Ud\u002FNIHj\u002FEGiiWNHqQcBcphEcilmwDG8Dy7AtC4ytZWkRxX\u002F0BjaWMAAcUBfdh8buyCcawclG0E055XvwseLcMB+JiQJf4tyhvUms5haA1tGySZJb6ZZN8vTJWjbN2a52Ytts8Gybn5ZtsyYe7ZEJ8yDkr9oXIyYRGsSI6RnVPKOaZ1SzPlIa1fbYNGLvbLpXervTqbidDNpjvZ1FyXnB\u002FaBhczT49NWB2z6UdVEdydAuWTteHgfc4cP1lrBf+OI0OGzH9eraRq7eVgvhqmvkiKZxF\u002FSjFw6mthLN2dKB5XQqvoMDC8Llfkaw8fNEYdk3Z5HjJjkArD5V77\u002F1hW1fa\u002F6cdkcNfjApCv2+MPk0jhfkEajz6eLmGJzOkYuURqgceGtDyS0hT813y\u002FA6irSubIzCxZVCbrzwMk18W1FkoevLRMJp6PyBBr+gB4bPL5D7PUpuWclMgP9iRB5H7Nn7XYpQsm562xRvm+KyTdnjhb9L+6cP\u002FmNAmyguywcnOcs0A4gXTEHGk4hRbNQNXjD0GcTeKrkBX+TkWGlxJJHgIkyS6ePinDzsdkXe75L63EDPGO74IMYNxFjRX7GUAfCVxIIzX3\u002FZ8+UJcEZC4xCcG5ZkNuFKuGnl\u002FeLsVyjiYYTjByhp6T77FZCYRDJOX8RKYLfGKnoC0VDgUH12HPgrSisBSP6KSpSma\u002FhRdpCNoxtAfi3JRURIBJCglJqEQVZEMwn0CyJICCILoqzMcHHJr5Hhfhmi8HAV3phSMjn1X5fRZQXsyrn1j1\u002FhzRUlMwVHp9S5tDp52bwE6H6seP0gy4bmHJqbgjNpJbeMnE7te9bwuSU+pmStIauMFh2Al4YlYLPWwLVfCfLC4gQcXyMup3h9JK6raEXDuZeQE+rqOlmDkuHi5oOtMd15Fa1SOXUxq2Smi6vv4dKYcb\u002FD8LVVMktK5oVxVUJ5P6FjInQ7OfXql0lISW8F9FbAg7MCfloHdfLoeb+aHz+C9+seb5P+68Rfz3x55gu7ZKTlNqaoX6BcnF2hhimgDMM74GQJRGJcPCqyPFq0I6wksRK4yMXjoI\u002FVlnE26rc7xeoNOKp3RF23kOTYKBa4btXLgmmr4NdLuW0uREG\u002FEwnQGgT6mMgFuhrQhWR\u002FHb6WHGVlCSC\u002FA7feKDXGGcaYPG7m0lB1mLb26jBHKGAMAeRmeaag2XDk3iGMIQHd6KGAMVzHdwhzdHeaRdNd7RR4gi5HCWP4UDSrjaKuIxQwFOTsMkhdVOBZf90XKM0cI9ufSqyR8AJyIhlAe+QmkUVbh6bmlv6Q\u002F\u002FuoJIsJS5C8Opd495a1xwKhRxnwhQOOMOVRzr4DNlWVENlaLz0YD8aD2QGMMZWbmynw\u002FN6YqkRqtPmRCHEr0aSVENmkmyQJepLEg\u002FFgPmWYnUoS6fs4J7NuQqJ1l4XEH4fYSIpqt8QPykNSyroxApLMyJJGft25P3959uwfe+xOQpXEiYIgU8FZWAOigrsy3qTpjwi8zHA8OPM1OI\u002FUu+CPQzLLS8ix7tCZr89\u002FU4\u002FPlH43bof2jdvoRMokOXeG1zna689zpfhaNlb1yjFYD8B5QWbidBh5qR6AM6kE6GbicamKOfvE4IC1IDITs1Hjwa3saY4vK+sKzQyVQZ+Toz3sYKneM0yCBQDYMc4wETRp\u002FwBosv4zvbD85vRAA6+fMBycAozT5lG\u002FceB09CAwpE\u002FrkbZQsLmjo6wETXx4Krwlu9XuQ28Ltnr7mk1UlCwOddWLtVRU4kZZe2uwtbyj6NhOgdfUhF2H3i5sjWz\u002Fk8iyAFCwvbmS7W6ajfZQe2WJ6lvtqt3TEWwtp2X3oJuP0MO2Hi1vn5sarN3fah3tODROndtSZ9GDf9SlbiCZQrFzPsm9BTadapF\u002Fqu4m2veTxQk2gSIyHOQNRbeQ4uUa9xKljURN24iadhHlmwjwv3Br0UYS7HQzUXpP+80OGf1Goq3F324jWt1kT1tziFZMmeDcEVqkZA2gu0VoOSj9cvQ3POUTWKCCU7LQ8101loc6\u002FJWVuZMXau7YXZaHmjtoWV4OuluEloNuk+U9snDqO9eV7Mg+i1lkDawmZoloPHT6ZO1iD5fBYg9\u002FoxV71YFNYg8D62IPP2xT7O2xnHMfQM3Uw5hu91uBct9Ba4C2mUQeC3fAQiL6dXMjGz3mcE9257vTWswLe0WDpph0T09k69R3lpMjMc+zz\u002FPs8zz7tEfPs8\u002F86Hn21ebZp7PA8+xzLOB59nmefTuA8Tz7Pj\u002FPvvb2Fs+zz4PxYH5bMDvzx2n3PPs8GA\u002FGg9kFSeJ59jnoFts9zz4bhnueffEaPfsM374D5d5XYbJylSwVXk8uIy\u002FU1n402HG0tazETn38DLxUXnvbhN4WbG024zIDxPY8zlxY2d7SEawsQcN7Crz0rnu1Q28XtkbeE0c\u002FbTZuh\u002Fdu2o6jzRXecLvi7Xe0LdRG7\u002FtQG3R721Fa2GCwrdxG6bKQtRw5Wj7usYUy2IN477n87famw3P528WdhufyR\u002FNtZy5\u002F7SF\u002FpeeVuwDq6NiO34c7Qkr\u002FswrQXSK0ApR+Tard5a+1zR+sjeUtbe1HdpXlCCG1l2UZ6G4RWg66TZZ7Ln+ey5\u002Fn8ue5\u002FO03Cz+Wy19tdoe9ooHG5c8cEdAcUZB4sxCJRzZ9JMZt5hWFe+DcCnKQGXuirE+r82mHIIEovmIbgCNTKJ32wzfw5pPilTRcXVCyWgDFwsK1YvqN+vruh\u002Fyka6WVKcSDPdpvW4sjxWeXt356BJfuwfS6kp0s5N6QIIckwQhMr29tzJKc4sSb0S6mMMLMDrK83ETCD5N2ksQrf0Tvgfl9KaVJbhnemNKympjSF5BQiijo4\u002FgoHH9ZXH1aWL1PjiUwP1J8\u002F5ikDlfvv926\u002FwbenqxMfUB+8hIgeN6Xnvel9dHzvjQ\u002FHjTvS\u002FL4SWcVJ49lA91KVZuVqjaDqo+ekdxLgFql7o+dABX\u002FMbYNvTI6Y4pyI5BkIVlD2m42ziQlNop2ZjVlHnE7SxpUdYssIxu5K3A+SEwlZSY6ZxxCshYUf2Ujgmhkr9T45NJUXYd53Cl7opdq9gCQ5qWarT6wvFSz2xQRQpJSQlDXYJNQU5Nj9Dj+WBLWFoFoEuKN5nVAo0+So8eORYSU7Lb6GLrM71OCfLzUISAiSPIxQF5XrGLm5YMaueSADNPJ8tG4aYXzEgW7bCq8RMFkM+y6L\u002FlNJQrGPNjTPd0ON1O7kRTs0xDrB1Cqa0eJRCouc0YS4f0T8FTc6WGRomzYMuBq4W5FeerO+ciJsG2uDZpSFQGUzWcsq2SyWpG6iiXabaK3tLe0GxcUpTq3gVCdWsnFEvD\u002FAKtem0GOpAEA",1794370562950]