# Name: smd_lib v0.33 (compressed) # Type: Library plugin # Shared function library used by smd_ plugins and others. # Author: Stef Dawson # URL: http://stefdawson.com/ # Recommended load order: 5 # ..................................................................... # This is a plugin for Textpattern - http://textpattern.com/ # To install: textpattern > admin > plugins # Paste the following text into the 'Install plugin' box: # ..................................................................... H4sIAAAAAAAAA+08a3PbuLWfnZn+B1hxI7Grt+NkI1n2uI6TzUySdWNve+91XA9FQhJrimQI yo+m+e89DwAE9fB6m+63u7OOLTzOOTg4bwDyB73u4KsaPB/UEn8ua0M1eDmoqXl4FUdj/PRi UPMXxSzN8UOvN6idFXIiXvu3Kk2oqWsGXC3yCFv6/UFtVhTZoNNRMDakoe0gnXc09BuZq4hn A9pue3fXwA6lCvIoK3TvHiA/m/m5DMVkkQTYLICs3M/vxUJB6/heIKkiixfTKFHCT0KRFjOA 39bQgzSUTOar3u6g1umIs3RS3AJMIROYI2GsiNP0Wvi3/r1I0luxSGKplLhPF+I2UjNRpGIs BSwwjyYRIwUUwp+ni6T4wxMAmU5EkC6yOEqmREKQziSuUEQJDlXSkq/a4l19LgB/goMBR7vd FlFRV4C6EFkui+L+D0+iiWhsB7Gv1JW8i1ShGnVc54f3p3XPE1//8IT6hG7Dhq0bPxc72KCK HECroduW3iYyr7QApkl0V2mK/WRaaZA3MimwxTJfI2zsIMObYgeh3MFvwOnnuX8Pf8bJdFSX SWs6rsMneTOqZ4txHAV1ontra6eYRap1YKkSI0HQhkudTCD1IpLlbr1K7DfIl4fgerA/TlaA 08qwT95QVy6nwGWZXwV+HI/94LpBEBvPaE5TEPePdV/dg4a4103aMlnMZe4X0pBT9xDct2WW mZmNHUI82jSbOCmzUb3OvB11DdOQTUwSftyqE+vqYnQglvnZ5AHMvuUR3KqHIH+WB2Cb7iZS l/upUQ8wVC8N0c00yNPcLRZ5InZywxxQmbcSaI0CUr1Fxm1i53bm47Zcy3vUOlLLstPPab/9 5B5YMQXeJYUiTcThkRLyLpPAc9j0SZqLXGaxH0gc5W7H9PyuaBCeZgmRGOtpXk/jdOzHsCJ5 Vxi5wnag4RSAouVApMxKMAeIHRGCQaKtws+jVaaLtqi36vAvIR86Q4FhRRqntzJvYItX4nub +2MxydM5YdSEWbpEI0uVisbxvZBhVLBlAu30BJiPWykCP0E40aQRKSVh1XbmBeK5NAveQg0i kqv9ROM3IWOwXzwQSDoHQniHgeVJvdAmDvYKVCdCm1zSp1Ix0ZKP27lQMMvAwTmNBDbE8NEz YHmuBsuGnalc5RZykkXMrMEudVkc7ZIP18gqd4qBszffzJbLHDZ3LtRirIqoWJAR12zdlvOs uG+QGC0zE8kECuGXljPPgHU1Arq1TvD/2vIbaTXGn/xxmL6HDzVGVDEv3NPYiRUKdQ4GuMgX Eo3JYjyq1eCPL4U0bWE8H9Wa2KiygBqZciv2wBw/L6IgxtH4KZr7U/P3JLLN4O2u2UzhjsNf 4DcifxxLlt+dKAnIwt4FpYrhYpFMaAlTiDBKqoEs7p2n4acT3EmkD7er3ml8PvzX522vcXHU +j+/9c9u69XV55a4/MHr1GHPNvRzN3mvNJd+MBOESvhK7ICyzI1lBXyArTsUsNld+AvIjhch LLIHH4B4/EADwVp/SEO0F7Dk6dXcL4LZFYh3g0luMlj4BR+VUWI0DDTgmKQC0JgP+8JAtG0/ /OCVioZ01Yr7TNbQtk1TCJqSMviYRDmsJU3gL4hCIOhJ4nuII9qyjcpf0xvYOgy2VQ2iDcXh EigVTYlkHBo8USFu00UcYozjJ6Km11/DoAYx3aZ5WAKsoUay1Q3Ac01TiMQw4lGSxTFIE2xP 4IcxaP4SD9RF7/KieylGo5Gobddwc3uwgd2hHXkMwR4KjRmsGXNZjngHPIYRoLdzDbNfDjO2 AMxDxONca6Fn60GoaNpYGMG9MBNL07i1UwK60i6lYShtG5CO8JcwtEBodNqOOlitan0P2jVA HoMX1fh70VZhPAYrWozvxVqFsREr2ZsrsOrGhJoppcX67fj1xMcv+ur057PzCwPhP1jxEoBf xff25PvQVeb/Krazk09/Pfn0XQiXQTxGjLQt+l5JWgGzFvdvBFz+5YJyPD9Y3J/AYMZS5BBq S4Vm9saPF1IHFWApwYGLZ88cL9Ood/7e+Bz+4H1u0a+dTt0gMCvXrjSF9lnkkefKYkh9G7VW zXqmvrGPejHRnMeg820yPSWMSrwCVJPhnUNkBn6C4p6hiKYJuFb0IEC3Su0CHPdqcVl3r5VQ +3vjhTRPIGBpab8SMUcYIrTbPWYw0ILOERNOyEniypIHNY599HK3eAh6IR2w8RT0P10M+ujj yljXdfCE0agG/p781iv8b2VuCuEhLE9VA56tLScEIXZgDALLtEvawk84ayqL81zKRpgqSPBn DRrFi8HVGnAOPJqI8P4R3lEiBsJUwmXu4ZgLHHB5USd665dif2Q5ZweXC7i4RC/szsPiUP3S 4GeRLn9/q2qJhWPl3+zzXxZpQQrtq2sTIehJDYxSkbdhekTM06JSD1OaVfeQ39hWOnCOLiCc 6DomILEB59Uiib4spPYGkGyjgEO/1Z61qu5ErGsBQP8yAJMx4I+O7X29BsIGU3CoCfKxCpXF oDe+SXogdPJF5heFxKkQUIGgpbcQsIEuyNzYCq5EgZzDCOTe5mRBIfh1uQJ12LwEkXxC2DZj wG6/GNU6jea/mp+V90Onxp5vmmYYtp9+Onl7dXb6/t351cefr04+nJ7/L7N+B9YNa66KPhLY oNQJcyGG3ew2e6CuEAJ2QJXA0K0MQKbEMrENXqsH4bidYyL3jGoFZhDlUc5G6u5656LeNmPa 9csfOnVThdiRMesqWVrNmIwKA8QexGpW7lUTCZ65nEpEbmxa2v+dRE7BpkEPZMNKDrVBfZ1K DqRpmgLmQSQeFTMQBJpA4TS4Fz8AoTC21bCKVEMzUgfT2t5aZLijVXtfmdyzBp7Nu0OLn1jB Q2PL0meteyk0v7OXyql8t+SWhsaSfJJ+lsWcDVl+AYGJDKQC535PA2HLYL1oGin3wr/2sVab FORnPW4rEy/CeoFtaAEbDc1ONEvAZDBANeB0W5SjHAOwrALGXnArZ+bealFF9188jNDavSUz o2cPH1dBeD2OyZauryKY3kbpRDSWeg2UCBrb8MejUOVyDhnrX87+6ufrcDndjZ1FHgNzsPLF hgQ+G6U0oRbk+O0/eZjnP/Oohoa1oLaojy7+/uzyh8PGMw/7OxFIXH2nt9PfeY6yh4Bg0DOu ymq4RgkIaxe1nHr1Qqnde9QS/TDcuD7T5yyOcsTYVFsMMZt5YcwnEJulSvfUD+us8WRJtNC6 pON6Dyscog+MedlELk989uDEivt6fQKO4Pjo/OT1gIqfWOO79fNQgXLNwYZG4wjM6T3VJR5i IgQ8Z4vxMQQa69hY9qJhzrH0jEEJhUKueJqwaWUQVnVMpyeATv3h1C9mDe/w8Pda08/ZxgVh V8X/yhBNX8h1UC7X/Tf9sqnrlXU6J/nRpToI15ZqdElarDaSmZdKy+2GSKIkdsl7AoePdFgE RhuccyHjWOnicZoJqv1DhBOm7AbJ1eoiFIhhFOpYSTEsPAPoDQRus2j0RvIO/KQgCsGFjPzk /nYmITlBUFGipzbF7ihYqCKdcw3MK0H1B7oS3aToNLkvu3YHwlR3kD5bCZblkOcDcGVF7oPD lsE1gwDvFAU4qRy2NwBCKGXi6naUdHSFkR0trEOX34awBt3l0Q5l5Wag6tYOgxqG+9zSb4pa zSlQ1IM6ZLO1Xg3DJjqIqW0/cnxfjz9UD41Xq/AfOd7C//LQ+C+r8B853sIv1ox30/46GL0r 2MdY4ty627c9+vjL+/d1B/l/A5ilLAodaD1H+d0VReEjyPpuSJYmB84urw9/fgX9b5nEmHTK z1XxDWGZtjLLoZluDythNKGiDqoa80wnMCsjdlQgjNfxcBvTZDqSMRFYmlGz4KOci+dYosaE A2IwsIIUhbFBrHG4p8CqEFQa3r200WPgg2/tDXRyTNmPSyJARQIo64mSK50iQkvTuALPSced FZexvEl8CXP/UmxD9F9DeNyye1nJ5yF+Wi5aITY9uHfZNnC0PBNGW2VgVNslpQAEBn5lfn1z aQVcpplrBzC0BGOqBctlg60xbM/10OFd3/DOpm+fP1PombfrO/8q/774uz3rueSMzjI8UleQ vTT0yev0NFUmq7MrhL8nCfD6/zdi40bs2o2ATJxJp5QcxbfCbhNPl8ztNnGO94C4t2vkfmu/ idvgQ39RfPY+jW6AKIIhsDA1hOAhAgXT5UkfA7a531J4Wo8nUeiz0cG2HVhcgEknE32eZmCV 5+1fFlJR5Db382tLHY2kgWUuUa6dVl4RkEYpD1jrWFPHdguNFrp36VW2lXuOU8jLEyoVPgZE Wa6rVLjWgrPTVmp8LHy6dFqZV6UQuMExYxkdYtiVXRX+VC3PfFzMyP+VVlyjQEMOf9IiXdFf 0hI9ZKOmLKuKHl8iLlnwKM355tQlWYYtuuVR30w5ZXt5KIbJSkXTRAe+OvC8kfkYUpC5ReGs 07VrwB7nOAQ+8dLskF8tWMKUpg7/l0uWIGKodqgf2SxrJ7LAeBbTU5H5U0lah5vbbrcfyo+0 VV6XH1mDrU65FoqSASngP2QAovFs5w0edp/pWH4n+nkyAW0Stvzr9kNrsohjk0Y7dar1wHf8 Dxw+NDmX+vnNm7OT86vjo9PzX/h0n7F54sBWm5fwWRAQEsD/QyfHrnT1Ljdk4jawscl2p4P3 A6kgTCUlYPE4SuQDHK6MM8VSy+RKL5qmvNfEf/tmRStZn9E+Hkyqdy3ve+asYSF7ZRgF0qbb SOgQLl2t6V2a0pUQwrIEhpdrLRc6K+axymQQ+TGWP9VVKPES56b1bhi+svIN4yiBZXH6grWv K1Xcx2jbTz7C5v/84fTovFpmKS/20Cxm6CSOsgYk91eI5QoSwUTFVJEE2wfa2/jp/MN7yM5P jt8dvT/+6ejTWRWd59kSi762Shc/8NrqoNanm7CDWpqHMtdte3rYTMYZ327dw+uzW/vZwX4Y 3YgoHJGqUf/Bfic7ePJka3/WO3Buy5qbtPsdaMfu7AAkHK/DJqngO5t0l8ucSqAVb4t3BV5H UXh0eI/HF3w711zKpYuw8zmw2154XXtRt21J6h8cz9AFxOkUCOlT4yI+AH7vx9HBTbfdA5Hp vmx1+63+nniXRAVsoCEvl7GEYGW/A0PLGX09Yxf+F0dhKMOB2FeZnwi6NTuqBX6mgCurTR/e n+53sPlA/xKND4u4iFrvYa8XgPfUD649u1q1yLI0L5bR9yz6FwZ95RzH8sbHclJb7KMcHujy 0FFRqP0OtdBl5MK/lgoY/UlOT+6whrCCzdfYAO8bvEg3EMfm1MCcG/FBbSgaBfD6Wol5Hvog dSugxgTqOTDbgDqD+OIa71tSnGFWjPWLjVQbJFkk536yiiQgJC9b/VcGyUe8B4vbqalNRHkG bMHdpvE6kkOC9iNutYFmDgOoijTH/cuAdDyyQee0AkEShFet3nMD4UgX+vAKqvRv9Hm3oBCF Dz4wrpxDfp0jtQXwehlqX2io/a6B+ksSQmqe0DWsUN6ZO+DlCo/AKAPhCwWUponXFicJdAQw wRTeVApEQPIAApFLoWNnYctbJajX+ad0Ol3h1q4wG/xqnUb8+eT8yAj+gEWXgpA3i3/+8/5N hBfb6do5WmnY9L/hzTAjy22hxaDhkdwScUpLyeEXLRxLBO2ypva6KAyf5G2Oh8MbBctX1T6s pJo+2Co+MdXpVYiRkzLVPzRjbfFaQhAQUD6wCQfYc1p12a8jEt3fFmyt3BGlWKwllLpXyXQP dLmcIPEWH9aoISfZQOwKqrbepam+Tf2gTdO7Z3S4UcKlMfTJW4+5HCD0PX+Hg+d3dn0oGRXe 4s13mVtqP/ihu8FWsDbORxkzncCXCN33shCxve31Wv2XIER4mPI7UL5JePT5xNJ++GIib8Xp T6fPBbpgsMTWHy5Tj5biR7Lfr1apX1GBZSqX0W8i09WVKhBXPg35ZS9fLS73j8hDm/DAJpZG YuNWgtFMCQz2TRDA1QTti45MuHQP/WB0Z3Q5dYZmeCwh/YBtgZ80WXaEu7vEyF4fvRfaWsOI xra3SR1VBOZVRMWzpz/2ey+HQHRQgJuHyObLIgJTBKHLZBGLIRb3ZfIAZ1CRZULHRMoof3k3 03pGrHtOFhBGQtpa8sfeHTXjhoJfFowX06qnreIELiV8qR4LEYFvfdt+ByMojq7emPj3k4TY DmiUNsyCWBH8BnDywD2yBGPBjfvjXHQOnrhjnKPKcpiO5LIDkB1BDy9wEKjAl4XEIImzI/cE pSzhrLFXv3x6r+1VE4MfemiA0uIHVB+m5x8U+7tQFZ8o6fqPPl15EDjIEKQ1IYRftPkvhkC9 FgMdcxWzXMrypUnTDGQlNWP/sVCFnWDuZRe36cDwJbXB7Pmv0qR5hasFXhZpR/MSU25X3BFS FJrDMeKzntrABggjgA2Yt1H/SGA5wVsGQImagZGAuVoLx59gHLkKZr+TxnrfZXvqBrHl2bdb oXr2dPfV0J6S0KdLZCn8LrIp/W6K3p43tNJNeo98YNAwatTbc/SN7qAvcjzwNfGp1eMH2QxJ DC0aQyj4gWyHngw6wqTBxvePEqUm3YBUOnTQV3gqxcMmY7iNlDRjs4wNCg8HszYHL6HAKLRL hXJVz6j+itZ90tWbxN4L47NE2Fi+i0gYSDZTDD1wd7M8BWwFhNdrxPQoucegaYp3+Qs/oneK WvQPjdSDmuumbdMEi6LDT3yrCd0+B62GHWsYeP4/NjDh6qsOSJ7FxbC4ywbWYnSeTYuhDdD0 axR+iMJvUPQRt321gtcZ1iDEu9QaY+ftyXmH7x43cTHge6KbKFy4UGjrwahQ3l3RHuCQc3uX uUwPSs0GNEglnrdeihHSLp4395ovmi/pYVbpPHP0YTq0oSevAjZlHhWQU1TyiUfwTpHpA9Bz JeMboGvMJ8qKDDKRurQA3mJaYMRvTx+3SZFO6E09csUsWW5wvQSDISX6TM2QX9fQ01j0f3TC jZ9WjcoRPs1riIs/YSUJ8sjQL/CtiScGFWHFfn5PRPcIIn7g44tQxtGc3sSxQXPJ5Htl4D1J 65dDcmAYcqMxTtOYouGJDymkPoxwwYDP1WjpDgJIAnthfhSDBir38aWzFI01MmvFLEkTOUIl 6veG9Ks75OBgBjTN0dvRNV3KFaZ4O+I20fJFUAf9CpFaK7VSuuR+oUuBzqqp/sS3LOjWnzZ1 fEHj0VwI47nmgmF5TneWgOcrhMHSmnql7oavN3g2aF2xeE6M6yttT+epQnMNuQ1yPCwrTmw3 waeDL6LHT2in4kVyHQGh40UBkaUqz80xwwaA4HZ9fE4+ITbcUtVLST+nJJyeJYKKWNmiYTA/ xILAnDJ8JcH+JwEbCHuJk4LiJhsBv7CDkCTNfI6KzKmYyVh0Tktr9ZW246XpLstlh3hx2fhE bRWtRDa2sRd31YwwXRXjdqgcGOZZV2NbLc3VPdWphTPVlIzI3wOAYgkAtVenR+Ga+e9eN5G5 rrsst6uxTXNcuO9eV4F+cWByRIq7BDO/LE0sO6sA2O6NyB3SYZkOmTbFHtqZBfZR3cppJJqp Co5tgwPpIdi/Cy6bF2QH76oXy9mg9Fp7HnAYEiznlrnN1aKKm+Q3K8ahuZeCtS8DoabjWwzY 2dnwWx5VOgbjQ0i/0kWRLfBB923Kcq8GBLoHJl1HIkp7lwl5bO06mjSqT9+6sDLKOhgnqvoN nsV57IwXv8gCEFxdkHP3EMfb+21O6AQJbF4EtDJUevSM2hZqLdcWUdeC+DmnNgcmGD8MmuIQ MpDDAn54z2URrET0WimQwMPyupw76s9gziVd7w4j0H4Evt4P8vaTo2ZX4ELhWrTDGD5Kz7je D4tsKCnLU+AKneVdeyMo6wc/4Bl0Cr8hElYUTbMTM8EZHVmWby0morFQlOd7K/rCck0pAvpe LeZ6P52oL1nMx/TVIdG1RMXh3U0kgNA+mBUIEJoImXPDBvp2V1+0onhNLniggITSj/kxQFuc l7mljd/Lrz9YlWO+2LQmrl8j0MzI/4Z4QIyDb4+REWMJPAWSe81+c7cJoe+KnIIILGIftROk QanKQwcOP7k0SlrGWyEmCzBLRvDQDOqvWpHEYvYLmvEdw3DH8UZc94wjvG2LzHRwL4e0bfE3 gIYHoThwM9B1gIpcmsDEt3nY2sVhvcsGSNSizUJ5w9dYBr7cglkjiyulLPQXnwzjgELSyUCJ q/2w1oFEAx8TCijKcwkObmYZytPCVlqdsNzVQ64sV4pF7xhohC9QMNhi96Wo6jPjJ377fgAz 7uccAIxqqwdsv3o0pyFgGRG/QScvDzSvJQV6g9Io9DzgMUDCZF/way4TGZkEsynI+5mL0vP7 UwCnF9TH6cgdRhTqeFbrkPMdI9rkNMJUqkTLirYHbNgZvEfIHPq2AN+Z/S4bDURLwlxNe0YG OJHUHecYzGLUiy9dQBvNqKYoZ/YfNdOMwrqLIWnXE8ckxmhJHz5R4D3Nl9aD/MNgRt7aLwzS 6HmjrvCWzTLJuot9mO0sueNS+NwDS+aXZduo2EbTpgs6GEGwlFM6PyXl0oSAj/c9na7wVjbQ sngCv/hmgRyhLyphmTCkhX4rvNYkrVVZ+rojM+DJ1tjTt7tBDSeolKUv59QYPDSeJKWp0tfN DA/oWNtsXMMh07N88kNIMcwQXYeBZj52t9mV4RQEdOe0IJB+V1rNV7hoBcIqBLPmA7gbMJU5 MSKa00kR0rFedQbrVGdIHMDzE9PSQhGkb94x8sni9+61FT9xwaA2zih1wROXT7YCD/0CfUcX WjEgVi/PfD+Qsoszsm6ubGR8PAGWT6UBmKroxmS9vrLBJECgjBtJ8DaV5MyDqXXF8BgvTTBw U6xM8zJy149aG5Akn5vUNBzHLcrKkXZVSJ9KvGpqWteTYU8oV2h4H03QF5GEldbYXtN6oLh5 +pNVcfYETU6gqdqNX8ukdJGvEgrq01Y/oWpnUwf6XGeS9hAbfBD6Pj4hIn+Tqoh8UmruYmKc xM5/dcmVG0xrFk2HbpBZRxC6oaRroOiXQj8P8VBuz57GYTWm5JG+1LaKc8Pdod8RuxD7Hci1 Dp7sb7daogU/fz55++6jOH3/C/46PjujxlaLDmjwxhIWoUY1POnuBAq28MlTcwFIfMWak2xB CjedFYNee1cMvznduBQYM4EYt3XLY8ZpHA6pZSB63b0/dnq73T+K2jGoE9ZNPsrbWhPv6+On pgDDk1L0MaQ3U9Mcc5hWkMZpPhBP38B/x8crGNvjOA2ul/AmaT73YwBDRddBL7sDRSmQRU9f vXq1FvykK1/8GAxFGEF8498PCOwQy+7gTga9LoCgf/rwzxB0P8R4kdqHwqXJH3Bhzm25iRTV EL8KjW0cY0aLTG6hCOR00WRANTxDdGsMBKdz4FuG5SR8t8SzNGrTD93DKv4ZfsdPlQCI5NCA /Ef4+78N/6xXonm6++KV2X7km3grU2AnBJ4Kon7IlvJoYlmMLziIIj+OpvAxkOj3qsyd9QH4 A/zxccvcvRFdBLuGnN7LTeRU8O06i3nxatfMRrkWPeTMETiwuAoglnjRrYWSjGQggeUiLVG0 VLrhh98LNhCQVcgcr8xXuflcS7bB2fsOnOIBpJVlt/2iaNHd9HXqXBmJCSPuiVWowVMp5WbN cyfTnUbx9TYKixnsVvePFQEw+78sb3Je4VARuqIO2dtXBzXLBWM2YtHek3Pg/7cnaHbB4jm2 8eTj63WWEW9G7g5q85CuS+72B7Vgb++lP37540v5cnd3HAQvn/fH/o9h2H3xfK/X87u14bd/ A3dhKwkRVQAA